src/main/java/com/zy/asrs/controller/LocMastController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/entity/WrkMast.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/task/EmptyOutWing.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/common/service/CommonService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/common/web/WcsController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/application.yml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/license.lic | 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/LocDetlMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
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)); } 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; src/main/java/com/zy/asrs/task/EmptyOutWing.java
New file @@ -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("所选库位存在状态不为D的库位,库位号:"+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"); // 满板:Y wrkMast.setPicking("N"); // 拣料 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("保存工作档失败"); } // 更新库位状态 D.空板 -> R.出库预约 if (locMast.getLocSts().equals("D")){ locMast.setLocSts("R"); locMast.setModiUser(9998L); locMast.setModiTime(now); if (!locMastService.updateById(locMast)) { throw new CoolException("更新库位状态失败"); } break; } } } } } 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,11 +501,25 @@ if (locMast2.getLocSts().equals("O") ) { if (locMast == null){ locMast = locMast2; } }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; } } } }else { for (int i = 1; i<=2;i++){ 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); src/main/resources/application.yml
@@ -1,5 +1,5 @@ server: port: 8080 port: 8085 servlet: context-path: /@pom.build.finalName@ src/main/resources/license.licBinary files differ
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">