From 00a4d56bca370fcee63ac5c70e22dde381802f71 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期四, 11 六月 2020 16:49:26 +0800 Subject: [PATCH] # --- /dev/null | 98 ------------------- src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java | 4 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | 10 +- src/main/java/com/zy/asrs/mapper/LocMastMapper.java | 5 + src/main/java/com/zy/common/model/Shelves.java | 4 src/main/java/com/zy/asrs/service/LocMastService.java | 5 + src/main/java/com/zy/common/service/CommonService.java | 134 ++++++++++++++++++++++++++ 7 files changed, 155 insertions(+), 105 deletions(-) diff --git a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java index 70bc032..1dde7eb 100644 --- a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java +++ b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java @@ -3,10 +3,15 @@ import com.baomidou.mybatisplus.mapper.BaseMapper; import com.zy.asrs.entity.LocMast; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; import org.springframework.stereotype.Repository; @Mapper @Repository public interface LocMastMapper extends BaseMapper<LocMast> { + @Select("select top 1 * from asr_loc_mast where row1=#{row} and loc_sts='O' and loc_type=#{locType} order by loc_type desc ,lev1 asc,bay1 asc") + LocMast queryFreeLocMast(@Param("row") Integer row, @Param("locType") Integer locType); + } diff --git a/src/main/java/com/zy/asrs/service/LocMastService.java b/src/main/java/com/zy/asrs/service/LocMastService.java index f44f783..4583f00 100644 --- a/src/main/java/com/zy/asrs/service/LocMastService.java +++ b/src/main/java/com/zy/asrs/service/LocMastService.java @@ -5,4 +5,9 @@ public interface LocMastService extends IService<LocMast> { + /** + * 妫�绱㈠彲鐢ㄥ簱浣� + */ + LocMast queryFreeLocMast(Integer row, Integer locType); + } diff --git a/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java index d42f920..5c6f1c7 100644 --- a/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java @@ -9,4 +9,8 @@ @Service("locMastService") public class LocMastServiceImpl extends ServiceImpl<LocMastMapper, LocMast> implements LocMastService { + @Override + public LocMast queryFreeLocMast(Integer row, Integer locType) { + return this.baseMapper.queryFreeLocMast(row, locType); + } } diff --git a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java index 6517a0e..783dda8 100644 --- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java @@ -7,7 +7,7 @@ import com.zy.asrs.service.BasDevpService; import com.zy.asrs.service.WorkService; import com.zy.asrs.service.WrkMastService; -import com.zy.common.service.DoubleDeepService; +import com.zy.common.service.CommonService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -23,7 +23,7 @@ @Autowired private BasDevpService basDevpService; @Autowired - private DoubleDeepService doubleDeepService; + private CommonService commonService; @Override @Transactional @@ -35,7 +35,7 @@ // 绔欑偣鐘舵�佹娴� basDevpService.checkSiteStatus(param.getDevpNo()); // 鐢熸垚宸ヤ綔鍙� - int workNo = doubleDeepService.getWorkNo(0); + int workNo = commonService.getWorkNo(0); if (workNo == 0) { throw new CoolException("鐢熸垚宸ヤ綔鍙峰け璐ワ紝璇疯仈绯荤鐞嗗憳"); } else { @@ -43,8 +43,8 @@ throw new CoolException("鐢熸垚宸ヤ綔鍙�" + workNo + "鍦ㄥ伐浣滄。涓凡瀛樺湪"); } } - // 搴撲綅妫�绱� - String locNo = doubleDeepService.getLocNo(1); + // 妫�绱㈠簱浣� + String locNo = commonService.getLocNo(1, param.getDevpNo()); // if (staNo == null || staNo.get) diff --git a/src/main/java/com/zy/common/model/Shelves.java b/src/main/java/com/zy/common/model/Shelves.java index 0fe0ec8..8f9c058 100644 --- a/src/main/java/com/zy/common/model/Shelves.java +++ b/src/main/java/com/zy/common/model/Shelves.java @@ -20,7 +20,7 @@ private final int offset; // 璐ф灦瀹炰緥鑺傜偣闆嗗悎 - private List<List<Integer>> nodes; + public List<List<Integer>> nodes; public Shelves(int size, int group) { this(size, group, 0); @@ -94,7 +94,7 @@ } } } - return 0; + return -1; } diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java new file mode 100644 index 0000000..062b200 --- /dev/null +++ b/src/main/java/com/zy/common/service/CommonService.java @@ -0,0 +1,134 @@ +package com.zy.common.service; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.mapper.Wrapper; +import com.core.common.Cools; +import com.core.exception.CoolException; +import com.zy.asrs.entity.*; +import com.zy.asrs.service.*; +import com.zy.common.model.Shelves; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 鍙屾繁寮忚揣鏋舵牳蹇冨姛鑳� + * Created by vincent on 2020/6/11 + */ +@Service +public class CommonService { + + @Autowired + private WrkMastService wrkMastService; + @Autowired + private WrkLastnoService wrkLastnoService; + @Autowired + private RowLastnoService rowLastnoService; + @Autowired + private BasCrnpService basCrnpService; + @Autowired + private StaDescService staDescService; + @Autowired + private BasDevpService basDevpService; + @Autowired + private LocMastService locMastService; + + /** + * 鐢熸垚宸ヤ綔鍙� + * @param wrkMk 0:鍏ュ嚭搴� ; 1:鍏朵粬 + * @return workNo(宸ヤ綔鍙�) + */ + public int getWorkNo(Integer wrkMk) { + WrkLastno wrkLastno = wrkLastnoService.selectById(wrkMk); + if (Cools.isEmpty(wrkLastno)) { + throw new CoolException("鏁版嵁寮傚父锛岃鑱旂郴绠$悊鍛�"); + } + int workNo = 0; + // 鍏ュ嚭搴撶被鍨� + if (wrkLastno.getWrkMk() == 0) { + workNo = wrkLastno.getWrkNo(); + int sNo = wrkLastno.getSNo(); + int eNo = wrkLastno.getENo(); + + workNo = workNo>=eNo ? sNo : workNo+1; + + while (true) { + WrkMast wrkMast = wrkMastService.selectById(workNo); + if (null != wrkMast) { + workNo = workNo>=eNo ? sNo : workNo+1; + } else { + break; + } + } + if (workNo > 0){ + // todo + wrkLastno.setWrkNo(workNo); + wrkLastnoService.updateById(wrkLastno); + } + } + return workNo; + } + + /** + * 妫�绱㈠簱浣嶅彿 + * @param whsType 绫诲瀷 1:鍙屾繁寮忚揣鏋� + * @param sourceStaNo 婧愮珯 + * @return locNo 妫�绱㈠埌鐨勫簱浣嶅彿 + */ + public String getLocNo(Integer whsType, String sourceStaNo) { + RowLastno rowLastno = rowLastnoService.selectById(whsType); + if (Cools.isEmpty(rowLastno)) { + throw new CoolException("鏁版嵁寮傚父锛岃鑱旂郴绠$悊鍛�"); + } + String locNo = null; + if (rowLastno.getWhsType() == 1){ + int curRow = rowLastno.getCurrentRow(); + int sRow = rowLastno.getsRow(); + int eRow = rowLastno.geteRow(); + int crn_qty = rowLastno.getCrnQty(); + + // 鑾峰彇鐩爣绔欐墍鍦ㄨ揣鏋舵帓鍙� + Shelves shelves = new Shelves(8, crn_qty); + curRow = shelves.start(curRow); + if (curRow < 0) { + throw new CoolException("妫�绱㈠簱浣嶅け璐ワ紝璇疯仈绯荤鐞嗗憳"); + } + // 鍫嗗灈鏈哄彿 + int crnNo = 0; + for (List<Integer> node : shelves.nodes){ + if (node.contains(curRow)) { + crnNo = shelves.nodes.indexOf(node) + 1; + } + } + BasCrnp crnp = basCrnpService.selectById(crnNo); + if (Cools.isEmpty(crnp)) { + throw new CoolException("鍫嗗灈鏈虹紪鍙烽敊璇�"); + } + if (!"Y".equals(crnp.getInEnable())) { + throw new CoolException("褰撳墠鍫嗗灈鏈烘棤娉曞叆搴�"); + } + // 鑾峰彇鐩爣绔� + Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>() + .eq("type_no", 1) + .eq("stnNo", sourceStaNo) + .eq("crn_no", crnNo); + StaDesc staDesc = staDescService.selectOne(wrapper); + if (Cools.isEmpty(staDesc)) { + throw new CoolException("鍏ュ簱璺緞涓嶅瓨鍦�"); + } + BasDevp staNo = basDevpService.selectById(staDesc.getCrnStn()); + int inQty = staNo.getInQty(); + if (staNo.getInEnable().equals("Y") && staNo.getAutoing().equals("Y") && inQty<2) { + // 鏌ユ壘搴撲綅 todo + LocMast locMast = locMastService.queryFreeLocMast(curRow, 1); + } + + + rowLastno.setCurrentRow(curRow); + rowLastnoService.updateById(rowLastno); + } + return locNo; + } + +} \ No newline at end of file diff --git a/src/main/java/com/zy/common/service/DoubleDeepService.java b/src/main/java/com/zy/common/service/DoubleDeepService.java deleted file mode 100644 index 0e0ff7b..0000000 --- a/src/main/java/com/zy/common/service/DoubleDeepService.java +++ /dev/null @@ -1,98 +0,0 @@ -package com.zy.common.service; - -import com.core.common.Cools; -import com.core.exception.CoolException; -import com.zy.asrs.entity.RowLastno; -import com.zy.asrs.entity.WrkLastno; -import com.zy.asrs.entity.WrkMast; -import com.zy.asrs.service.RowLastnoService; -import com.zy.asrs.service.WrkLastnoService; -import com.zy.asrs.service.WrkMastService; -import com.zy.common.model.Shelves; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -/** - * 鍙屾繁寮忚揣鏋舵牳蹇冨姛鑳� - * Created by vincent on 2020/6/11 - */ -@Service -public class DoubleDeepService { - - @Autowired - private WrkMastService wrkMastService; - @Autowired - private WrkLastnoService wrkLastnoService; - @Autowired - private RowLastnoService rowLastnoService; - - /** - * 鐢熸垚宸ヤ綔鍙� - * @param wrkMk 0:鍏ュ嚭搴� ; 1:鍏朵粬 - * @return workNo(宸ヤ綔鍙�) - */ - public int getWorkNo(Integer wrkMk) { - WrkLastno wrkLastno = wrkLastnoService.selectById(wrkMk); - if (Cools.isEmpty(wrkLastno)) { - throw new CoolException("鏁版嵁寮傚父锛岃鑱旂郴绠$悊鍛�"); - } - int workNo = 0; - // 鍏ュ嚭搴撶被鍨� - if (wrkLastno.getWrkMk() == 0) { - workNo = wrkLastno.getWrkNo(); - int sNo = wrkLastno.getSNo(); - int eNo = wrkLastno.getENo(); - - workNo = workNo>=eNo ? sNo : workNo+1; - - while (true) { - WrkMast wrkMast = wrkMastService.selectById(workNo); - if (null != wrkMast) { - workNo = workNo>=eNo ? sNo : workNo+1; - } else { - break; - } - } - if (workNo > 0){ - // todo - wrkLastno.setWrkNo(workNo); - wrkLastnoService.updateById(wrkLastno); - } - } - return workNo; - } - - /** - * 妫�绱㈠簱浣嶅彿 - * @param whsType 绫诲瀷 1:鍙屾繁寮忚揣鏋� - * @return locNo 妫�绱㈠埌鐨勫簱浣嶅彿 - */ - public String getLocNo(Integer whsType) { - RowLastno rowLastno = rowLastnoService.selectById(whsType); - if (Cools.isEmpty(rowLastno)) { - throw new CoolException("鏁版嵁寮傚父锛岃鑱旂郴绠$悊鍛�"); - } - String locNo = null; - if (rowLastno.getWhsType() == 1){ - int curRow = rowLastno.getCurrentRow(); - int sRow = rowLastno.getsRow(); - int eRow = rowLastno.geteRow(); - int crn_qty = rowLastno.getCrnQty(); - - Shelves shelves = new Shelves(8, crn_qty); - curRow = shelves.start(curRow); - - if (curRow != 0) { - - - rowLastno.setCurrentRow(curRow); - rowLastnoService.updateById(rowLastno); - } - - } - - return locNo; - } - - -} \ No newline at end of file -- Gitblit v1.9.1