From f64082f012503105373eb4ca36a2ecfd2ad8415e Mon Sep 17 00:00:00 2001 From: 野心家 <1051256694@qq.com> Date: 星期五, 08 十一月 2024 10:12:27 +0800 Subject: [PATCH] 自动出空板到入库口 --- src/main/java/com/zy/asrs/controller/LocMastController.java | 1 src/main/resources/mapper/LocDetlMapper.xml | 1 src/main/java/com/zy/asrs/entity/WrkMast.java | 2 src/main/java/com/zy/asrs/task/EmptyOutWing.java | 130 +++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/zy/common/web/WcsController.java | 18 ++++-- src/main/java/com/zy/common/service/CommonService.java | 20 +++++- src/main/resources/license.lic | 0 src/main/resources/application.yml | 2 8 files changed, 163 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/LocMastController.java b/src/main/java/com/zy/asrs/controller/LocMastController.java index 2eae903..98dacdb 100644 --- a/src/main/java/com/zy/asrs/controller/LocMastController.java +++ b/src/main/java/com/zy/asrs/controller/LocMastController.java @@ -67,6 +67,7 @@ excludeTrash(param); EntityWrapper<LocMast> wrapper = new EntityWrapper<>(); convert(param, wrapper); + wrapper.orderBy("modi_time",true); if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} return R.ok(locMastService.selectPage(new Page<>(curr, limit), wrapper)); } diff --git a/src/main/java/com/zy/asrs/entity/WrkMast.java b/src/main/java/com/zy/asrs/entity/WrkMast.java index 565499e..5b0bd1b 100644 --- a/src/main/java/com/zy/asrs/entity/WrkMast.java +++ b/src/main/java/com/zy/asrs/entity/WrkMast.java @@ -137,7 +137,7 @@ @TableField("exit_mk") private String exitMk; - @ApiModelProperty(value= "") + @ApiModelProperty(value= "绌烘澘娑堥櫎鏍囪") @TableField("plt_type") private Integer pltType; diff --git a/src/main/java/com/zy/asrs/task/EmptyOutWing.java b/src/main/java/com/zy/asrs/task/EmptyOutWing.java new file mode 100644 index 0000000..c32d84f --- /dev/null +++ b/src/main/java/com/zy/asrs/task/EmptyOutWing.java @@ -0,0 +1,130 @@ +package com.zy.asrs.task; + +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.LocMast; +import com.zy.asrs.entity.StaDesc; +import com.zy.asrs.entity.WrkMast; +import com.zy.asrs.service.LocMastService; +import com.zy.asrs.service.StaDescService; +import com.zy.asrs.service.WrkMastService; +import com.zy.common.model.enums.WorkNoType; +import com.zy.common.service.CommonService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import java.util.Date; +import java.util.List; + +@Component +public class EmptyOutWing { + + @Autowired + private WrkMastService wrkMastService; + @Autowired + private LocMastService locMastService; + @Autowired + private StaDescService staDescService; + @Autowired + private CommonService commonService; + + + @Scheduled(cron = "0/3 * * * * ? ") + private void execute() { + int count = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("io_type", 110)); + if (count > 0) { + WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("io_type", 110).eq("wrk_sts", 7)); + if (Cools.isEmpty(wrkMast)) { + return; + } + WrkMast wrkMast1 = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("io_type", 1).eq("wrk_sts", 2).eq("full_plt", "N")); + if (Cools.isEmpty(wrkMast1)) { + return; + } + wrkMast1.setFullPlt("Y"); + wrkMastService.updateById(wrkMast1); + wrkMast.setWrkSts(14L); + wrkMastService.updateById(wrkMast); + } else { + List<LocMast> locMastss =locMastService.selectList(new EntityWrapper<LocMast>().eq("loc_sts", "D").orderBy("bay1")); + if (Cools.isEmpty(locMastss)) { + return; + } + for (LocMast locMasta : locMastss) { + // 鑾峰彇宸ヤ綔鍙� + int workNo = commonService.getWorkNo(WorkNoType.PAKOUT.type); + // 鑾峰彇搴撲綅 + LocMast locMast = locMastService.selectById(locMasta.getLocNo()); + if (Cools.isEmpty(locMast)) { + throw new CoolException(locMasta.getLocNo()+"搴撲綅涓嶅瓨鍦�"); + } + if (!locMast.getLocSts().equals("D")){ + throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篋鐨勫簱浣嶏紝搴撲綅鍙凤細"+locMast.getLocNo()+" 銆佸綋鍓嶇姸鎬侊細"+locMast.getLocSts()+"-"+locMast.getLocSts$()); + } + boolean res1 = true; + + List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>() + .eq("lev1", locMast.getLev1()) + .orderBy("bay1",res1)); + for (LocMast locMast1 : locMasts) { + if (locMast1.getLocNo().equals(locMast.getLocNo())) { + break; + } + if (locMast1.getLocSts().equals("D") || locMast1.getLocSts().equals("F")) { + throw new CoolException(locMasta.getLocNo()+"搴撲綅鍫靛锛岀姝㈠嚭搴�"); + } + } + // 鑾峰彇婧愮珯 + Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>() + .eq("type_no", 110) + .eq("stn_no", 100) + .eq("crn_no", locMast.getCrnNo()); + StaDesc staDesc = staDescService.selectOne(wrapper); + Integer sourceStaNo = staDesc.getCrnStn(); + if (Cools.isEmpty(sourceStaNo)) { + throw new CoolException("妫�绱㈡簮绔欏け璐�"); + } + Date now = new Date(); + // 淇濆瓨宸ヤ綔妗� + WrkMast wrkMast = new WrkMast(); + wrkMast.setWrkNo(workNo); + wrkMast.setIoTime(now); + wrkMast.setWrkSts(0L); // 宸ヤ綔鐘舵�侊細0.寰呭彂閫� + wrkMast.setIoType(110); // 鍏ュ嚭搴撶姸鎬侊細 110.绌烘澘鍑哄簱 + wrkMast.setIoPri(10D); + wrkMast.setSourceStaNo(sourceStaNo); // 婧愮珯 + wrkMast.setStaNo(100); // 鐩爣绔� + wrkMast.setCrnNo(locMast.getCrnNo()); + wrkMast.setSourceLocNo(locMasta.getLocNo()); // 婧愬簱浣� + wrkMast.setFullPlt("N"); // 婊℃澘锛歒 + wrkMast.setPicking("N"); // 鎷f枡 + wrkMast.setExitMk("N"); // 閫�鍑� + wrkMast.setEmptyMk("Y"); // 绌烘澘 + wrkMast.setLinkMis("N"); + wrkMast.setAppeUser(9998L); + wrkMast.setAppeTime(now); + wrkMast.setModiUser(9998L); + wrkMast.setModiTime(now); + boolean res = wrkMastService.insert(wrkMast); + if (!res) { + throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�"); + } + // 鏇存柊搴撲綅鐘舵�� D.绌烘澘 -> R.鍑哄簱棰勭害 + if (locMast.getLocSts().equals("D")){ + locMast.setLocSts("R"); + locMast.setModiUser(9998L); + locMast.setModiTime(now); + if (!locMastService.updateById(locMast)) { + throw new CoolException("鏇存柊搴撲綅鐘舵�佸け璐�"); + } + break; + } + + } + } + + } +} diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java index 1fdf82b..00ae205 100644 --- a/src/main/java/com/zy/common/service/CommonService.java +++ b/src/main/java/com/zy/common/service/CommonService.java @@ -475,7 +475,7 @@ if (Cools.isEmpty(locMast1)) { continue; } - if (locMast1.getLev1() != lev && locMast1.getLev1() !=2) { + if (locMast1.getLev1() != lev && locMast1.getLev1() !=3) { List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>() .eq("lev1", locMast1.getLev1()) .orderBy("bay1",false)); @@ -501,9 +501,23 @@ if (locMast2.getLocSts().equals("O") ) { if (locMast == null){ locMast = locMast2; - }else if (locMast2.getLocSts().equals("F")){ - locMast = null; } + }else if (locMast2.getLocSts().equals("F")){ + locMast = null; + } + } + } + if(Cools.isEmpty(locMast)){ + List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>() + .eq("lev1", 2) + .orderBy("bay1",false)); + for (LocMast locMast2 : locMasts) { + if (locMast2.getLocSts().equals("O") ) { + if (locMast == null){ + locMast = locMast2; + } + }else if (locMast2.getLocSts().equals("F")){ + locMast = null; } } } diff --git a/src/main/java/com/zy/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java index 5a4001e..7e5b636 100644 --- a/src/main/java/com/zy/common/web/WcsController.java +++ b/src/main/java/com/zy/common/web/WcsController.java @@ -76,7 +76,7 @@ if (param.getFromPort().equals("100")) { //鏈夌┖鏉垮嚭搴撴椂绂佹鍏ュ簱 - int wrkCount = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("io_type",110).eq("sta_no",100)); + int wrkCount = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("io_type",110).eq("sta_no",100).notIn("wrk_sts",7)); if(wrkCount > 0){ return Re.error("鏈夌┖鏉垮嚭搴撳埌100绔欐椂鏃剁姝㈠叆搴�"); } @@ -216,6 +216,7 @@ wrkMast.setLinkMis("Y"); wrkMast.setCtnType(sourceStaNo.getCtnType()); // 瀹瑰櫒绫诲瀷 wrkMast.setMk("N");//鏄惁瀹屾垚涓婃姤wcs + wrkMast.setFullPlt("N");//鍑哄簱绌烘澘娑堥櫎鏍囪 // 鎿嶄綔浜哄憳鏁版嵁 wrkMast.setAppeTime(now); wrkMast.setModiTime(now); @@ -321,8 +322,12 @@ @ResponseBody public Re status(@RequestBody StatusParam statusParam) { WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", statusParam.getTaskId())); - if(Cools.isEmpty(wrkMast)){ + if(Cools.isEmpty(wrkMast)&&statusParam.getTaskStatus()!=8){ return Re.error("娌℃湁鎵惧埌:"+statusParam.getTaskId()+"杩欐潯浠诲姟"); + }else if(Cools.isEmpty(wrkMast)&&statusParam.getTaskStatus()==8){ + return Re.ok(); + }else if(!Cools.isEmpty(wrkMast)&&statusParam.getTaskStatus()==8&&wrkMast.getIoType()==110){ + return Re.ok(); } /** * 浠诲姟鐘舵�� @@ -341,13 +346,14 @@ wrkMast.setWrkSts(3L);//3.鍙栬揣瀹屾垚 }else if (statusParam.getTaskStatus()==3){ wrkMast.setWrkSts(6L);//6.浠诲姟涓柇 - } else if (statusParam.getTaskStatus()==4){ - wrkMast.setWrkSts(7L);//6.鏀捐揣瀹屾垚 - }if (statusParam.getTaskStatus()==8){ + } else if (statusParam.getTaskStatus()==4 || statusParam.getTaskStatus()==8){ +// wrkMast.setWrkSts(7L);//6.鏀捐揣瀹屾垚 if(wrkMast.getIoType()==1 || wrkMast.getIoType() == 10){ wrkMast.setWrkSts(4L);//4.鍏ュ簱瀹屾垚 - }else if (wrkMast.getIoType()==101 || wrkMast.getIoType() == 110){ + }else if (wrkMast.getIoType()==101){ wrkMast.setWrkSts(14L);//14.宸插嚭搴撴湭纭 + } else if (wrkMast.getIoType()==110) { + wrkMast.setWrkSts(7L); } } wrkMastService.updateById(wrkMast); diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index da66372..a8a014e 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -1,5 +1,5 @@ server: - port: 8080 + port: 8085 servlet: context-path: /@pom.build.finalName@ diff --git a/src/main/resources/license.lic b/src/main/resources/license.lic index 86821c9..d3efb39 100644 --- a/src/main/resources/license.lic +++ b/src/main/resources/license.lic Binary files differ diff --git a/src/main/resources/mapper/LocDetlMapper.xml b/src/main/resources/mapper/LocDetlMapper.xml index 4b0009d..84a38a0 100644 --- a/src/main/resources/mapper/LocDetlMapper.xml +++ b/src/main/resources/mapper/LocDetlMapper.xml @@ -123,6 +123,7 @@ and b.loc_sts = 'F' <include refid="stockOutCondition"></include> ) t where t.row between ((#{pageNumber}-1)*#{pageSize}+1) and (#{pageNumber}*#{pageSize}) + order by appe_time </select> <select id="getStockOutPageCount" parameterType="java.util.Map" resultType="java.lang.Integer"> -- Gitblit v1.9.1