license.lic | 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/controller/LocMastController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/WrkMastService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.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 | 历史 |
license.licBinary files differ
src/main/java/com/zy/asrs/controller/LocMastController.java
@@ -143,12 +143,12 @@ return R.error(); } WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>() .eq("source_loc_no", locMast.getLocNo()) .or().eq("loc_no", locMast.getLocNo())); if(!Cools.isEmpty(wrkMast)){ return R.error("该库位正在作业,请先处理工作档"); } // WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>() // .eq("source_loc_no", locMast.getLocNo()) // .or().eq("loc_no", locMast.getLocNo())); // if(!Cools.isEmpty(wrkMast)){ // return R.error("该库位正在作业,请先处理工作档"); // } LocMast oldLocMast = locMastService.selectById(locMast.getLocNo()); if (locMast.getLocSts().equals("F") && (oldLocMast.getLocSts().equals("D") || oldLocMast.getLocSts().equals("O"))) { src/main/java/com/zy/asrs/service/WrkMastService.java
@@ -17,6 +17,11 @@ WrkMast selectByBarcode(String barcode); /** * 补尾托信号 */ void updateCtnType(WrkMast wrkMast); /** * 从工作档得到站点入库暂存数 * @param crnNo * @return src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -555,16 +555,16 @@ throw new CoolException(firstFrozenLocNo + "库位已被冻结!"); } if (Cools.isEmpty(param.getOutSite())) { throw new CoolException("站点不存在"); } for (String locNo : param.getLocNos()) { // 获取工作号 int workNo = commonService.getWorkNo(WorkNoType.PAKOUT.type); int workNo = commonService.getWorkNo(2); // 获取库位 LocMast locMast = locMastService.selectById(locNo); if (Cools.isEmpty(locMast)) { throw new CoolException(locNo+"库位不存在"); } if (!locMast.getLocSts().equals("D")){ throw new CoolException("所选库位存在状态不为D的库位,库位号:"+locMast.getLocNo()+" 、当前状态:"+locMast.getLocSts()+"-"+locMast.getLocSts$()); } // 获取源站 Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>() @@ -582,8 +582,8 @@ wrkMast.setWrkNo(workNo); wrkMast.setIoTime(now); wrkMast.setWrkSts(11L); // 工作状态:11.生成出库ID wrkMast.setIoType(110); // 入出库状态: 110.空板出库 wrkMast.setIoPri(10D); wrkMast.setIoType(110); // 入出库状态 wrkMast.setIoPri(14D); wrkMast.setSourceStaNo(sourceStaNo); // 源站 wrkMast.setStaNo(param.getOutSite()); // 目标站 wrkMast.setCrnNo(locMast.getCrnNo()); @@ -602,7 +602,7 @@ throw new CoolException("保存工作档失败"); } // 更新库位状态 D.空板 -> R.出库预约 if (locMast.getLocSts().equals("D")){ if (locMast.getLocSts().equals("M") || locMast.getLocSts().equals("Z")){ locMast.setLocSts("R"); locMast.setModiUser(userId); locMast.setModiTime(now); @@ -1244,17 +1244,19 @@ // 修改库位状态 if(locNo != null) { LocMast locMast = locMastService.selectById(locNo); if (Cools.isEmpty(locMast)) { throw new CoolException("取消工作档失败,库位不存在:"+ locNo); } locMast.setLocSts(locSts); locMast.setModiTime(now); locMast.setModiUser(userId); boolean locMastRes = locMastService.updateById(locMast); if (!wrkMastRes || !locMastRes) { throw new CoolException("保存数据失败"); if (locNo != null) { if (wrkMast.getIoType() != 3) { LocMast locMast = locMastService.selectById(locNo); if (Cools.isEmpty(locMast)) { throw new CoolException("取消工作档失败,库位不存在:" + locNo); } locMast.setLocSts(locSts); locMast.setModiTime(now); locMast.setModiUser(userId); boolean locMastRes = locMastService.updateById(locMast); if (!wrkMastRes || !locMastRes) { throw new CoolException("保存数据失败"); } } } } src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java
@@ -9,6 +9,8 @@ import com.zy.asrs.service.WrkMastService; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import java.util.List; @@ -41,6 +43,16 @@ } @Override @Transactional(propagation = Propagation.REQUIRES_NEW) public void updateCtnType(WrkMast wrkMast) { if (wrkMast.getCtnType() == 0) { wrkMast.setCtnType(1); this.updateById(wrkMast); log.info("自动补尾桶信号成功,任务号:{}",wrkMast.getCrnNo()); } } @Override public int getStoreCount(Integer crnNo) { return selectCount(new EntityWrapper<WrkMast>().eq("crn_no", crnNo) .last(" and (wrk_sts in (1,2) or (wrk_sts=3 and wrk_no in (select wrk_no from asr_bas_devp)))")); src/main/java/com/zy/common/service/CommonService.java
@@ -316,11 +316,7 @@ locMast = locMastList.get(0); } else { // 奇数,不可以入库 // 自动给前面任务补尾桶信号 if (wrkMast.getCtnType() == 0) { wrkMast.setCtnType(1); wrkMastService.updateById(wrkMast); log.info("自动补尾桶信号成功,任务号:{}",wrkMast.getCtnType()); } wrkMastService.updateCtnType(wrkMast); log.error("-----与前面桶类型不一样,前面桶不是尾桶,前面该桶类型任务数不是偶数,不能入库----"); throw new CoolException("与前面桶类型不一样,前面桶不是尾桶,前面该桶类型任务数不是偶数,不能入库"); } @@ -338,31 +334,54 @@ throw new CoolException("入库请求库位失败,没有联机堆垛机或堆垛机异常"); } List<Integer> crnList = basCrnps.stream().map(BasCrnp::getCrnNo).collect(Collectors.toList()); List<BasCrnp> basCrnpList = new ArrayList<>(); for(BasCrnp basCrnp: basCrnps) { Integer count = locMastMapper.selectCount(new EntityWrapper<LocMast>().eq("crn_no", basCrnp.getCrnNo()).eq("loc_sts", "S")); basCrnp.setWrkNo(count); basCrnpList.add(basCrnp); } basCrnpList = basCrnpList.stream().sorted(Comparator.comparing(BasCrnp::getWrkNo)).collect(Collectors.toList()); // 入库桶型 String model = findLocNoAttributeVo.getModel(); Wrapper<LocMast> wrapper = new EntityWrapper<LocMast>().eq("loc_sts", 'O') .in("crn_no", crnList).orderBy("lev1").orderBy("bay1").orderBy("row1"); // 入库桶型是不是208L if (model == null || !model.equals("208L")) { wrapper.ne("lev1", 11); } locMast = locMastService.selectOne(wrapper.in("row1", 1, 4, 5, 6, 7, 8)); // 深库位没有了则获取一个浅库位 if (locMast == null) { locMast = locMastService.selectOne(wrapper.in("row1", 2, 3)); if (locMast == null) { log.error("-----库位不足----"); throw new CoolException("库位不足"); } else { int count = locMastService.selectCount(wrapper.in("row1", 2, 3)); if (count <= 10) { log.error("-----库位不足,预留10个库位用来库位转移----"); throw new CoolException("库位不足,预留10个库位用来库位转移"); locMast = null; for(BasCrnp basCrnp:basCrnpList) { Integer crnNo = basCrnp.getCrnNo(); Wrapper<LocMast> wrapper = new EntityWrapper<LocMast>().eq("loc_sts", 'O') .eq("crn_no", crnNo).orderBy("lev1").orderBy("bay1").orderBy("row1"); // 入库桶型是不是208L if (model == null || !model.equals("208L")) { wrapper.ne("lev1", 11); } if (crnNo == 1) { wrapper.in("row1", 1, 4); } locMast = locMastService.selectOne(wrapper); if (locMast != null) { break; } // 深库位没有了则获取一个浅库位 if (crnNo == 1) { locMast = locMastService.selectOne(wrapper.in("row1", 2, 3)); if (locMast != null) { int count = locMastService.selectCount(wrapper); if (count <= 10) { locMast = null; } else { break; } } } } if (locMast == null) { List<Integer> collect = basCrnps.stream().map(BasCrnp::getCrnNo).collect(Collectors.toList()); log.error("-----{}堆垛机库位不足----",collect.toString()); throw new CoolException(collect.toString() + "堆垛机库位不足"); } } else { log.error("入库类型错误,staDescId={}", staDescId); throw new CoolException("入库类型错误,staDescId=" + staDescId); src/main/java/com/zy/common/web/WcsController.java
@@ -248,52 +248,52 @@ StartupDto dto; // 判断贴标异常,复检重量异常的,不分配库位,去往异常口1090 // if ( !param.isTbFlag() || !param.isReinspection()) { // // // 生成工作档 ------------------------------------------------------ // WrkMast wrkMast = new WrkMast(); // wrkMast.setWrkNo(commonService.getWorkNo(0)); // wrkMast.setIoTime(now); // wrkMast.setIoType(3); // 入出库类型3.站到站 // wrkMast.setWrkSts(2L); // wrkMast.setIoPri(13D); // 优先级 //// wrkMast.setCrnNo(dto.getCrnNo()); // wrkMast.setSourceStaNo(param.getSourceStaNo()); // wrkMast.setStaNo(1090); //// wrkMast.setLocNo(dto.getLocNo()); // wrkMast.setBarcode(wrkMast1.getBarcode()); // 托盘码 // wrkMast.setFullPlt("Y"); // 满板:Y //// wrkMast.setPicking("N"); // 拣料 //// wrkMast.setExitMk("N"); // 退出 //// wrkMast.setEmptyMk("N"); // 空板 //// wrkMast.setLinkMis("Y"); //// wrkMast.setCtnType(wrkMast1.getCtnType()); // 尾托标识 // wrkMast.setPdcType(wrkMast1.getPdcType()); // 空桶类型 // wrkMast.setAppeTime(now); // wrkMastService.insert(wrkMast); // // // 生成工作档明细---------------------------------------------------- // WrkDetl wrkDetl = new WrkDetl(); // wrkDetl.sync(mat); // wrkDetl.setWrkNo(wrkMast.getWrkNo()); // wrkDetl.setAnfme(wrkDetl1.getAnfme()); // wrkDetl.setZpallet(wrkMast1.getBarcode()); // wrkDetl.setBatch(param.getBatch()); // wrkDetl.setManuDate(param.getManuDate()); // wrkDetl.setWeight(param.getWeight()); // wrkDetl.setManLength(param.getGrossWeight()); // wrkDetl.setVolume(param.getCannedVolume()); // 罐装量 // wrkDetl.setInspect(param.isTbFlag()?1:0); // 贴标成功 // wrkDetl.setIoTime(now); // wrkDetl.setAppeTime(now); // wrkDetl.setModel(wrkDetl1.getMaktx()); // 保存空桶名称 // wrkDetlService.insert(wrkDetl); // // dto = new StartupDto(); // dto.setWorkNo(wrkMast.getWrkNo()); // dto.setSourceStaNo(wrkMast.getSourceStaNo()); // dto.setStaNo(wrkMast.getStaNo()); // } else if ( !param.isTbFlag() || !param.isReinspection()) { // 生成工作档 ------------------------------------------------------ WrkMast wrkMast = new WrkMast(); wrkMast.setWrkNo(commonService.getWorkNo(0)); wrkMast.setIoTime(now); wrkMast.setIoType(3); // 入出库类型3.站到站 wrkMast.setWrkSts(2L); wrkMast.setIoPri(13D); // 优先级 // wrkMast.setCrnNo(dto.getCrnNo()); wrkMast.setSourceStaNo(param.getSourceStaNo()); wrkMast.setStaNo(1090); // wrkMast.setLocNo(dto.getLocNo()); wrkMast.setBarcode(wrkMast1.getBarcode()); // 托盘码 wrkMast.setFullPlt("Y"); // 满板:Y // wrkMast.setPicking("N"); // 拣料 // wrkMast.setExitMk("N"); // 退出 // wrkMast.setEmptyMk("N"); // 空板 // wrkMast.setLinkMis("Y"); // wrkMast.setCtnType(wrkMast1.getCtnType()); // 尾托标识 wrkMast.setPdcType(wrkMast1.getPdcType()); // 空桶类型 wrkMast.setAppeTime(now); wrkMastService.insert(wrkMast); // 生成工作档明细---------------------------------------------------- WrkDetl wrkDetl = new WrkDetl(); wrkDetl.sync(mat); wrkDetl.setWrkNo(wrkMast.getWrkNo()); wrkDetl.setAnfme(wrkDetl1.getAnfme()); wrkDetl.setZpallet(wrkMast1.getBarcode()); wrkDetl.setBatch(param.getBatch()); wrkDetl.setManuDate(param.getManuDate()); wrkDetl.setWeight(param.getWeight()); wrkDetl.setManLength(param.getGrossWeight()); wrkDetl.setVolume(param.getCannedVolume()); // 罐装量 wrkDetl.setInspect(param.isTbFlag()?1:0); // 贴标成功 wrkDetl.setIoTime(now); wrkDetl.setAppeTime(now); wrkDetl.setModel(wrkDetl1.getMaktx()); // 保存空桶名称 wrkDetlService.insert(wrkDetl); dto = new StartupDto(); dto.setWorkNo(wrkMast.getWrkNo()); dto.setSourceStaNo(wrkMast.getSourceStaNo()); dto.setStaNo(wrkMast.getStaNo()); } else if(fhFlag) { // 直接发货 // 生成工作档 ------------------------------------------------------ WrkMast wrkMast = new WrkMast(); @@ -456,8 +456,14 @@ if(!param.isTbFlag()) { //下线出库 wrkMast.setSourceStaNo(1090); wrkMast.setStaNo(1024); // 异常下线默认入库站点为1016 wrkMast.setStaNo(1024); // 异常下线默认入库站点为1024 // 获取系统配置,看成品罐装完成是否直接出到发货口 Config config = configService.selectConfigByCode("gzxfh" + param.getSourceStaNo()); if (config != null && config.getStatus() == 1 && !Cools.isEmpty(config.getValue())) { wrkMast.setStaNo(Integer.parseInt(config.getValue())); } wrkMastService.updateById(wrkMast); log.info("WCS异常口入库接口返参:{},目标站点:{}", "下线出库", wrkMast.getStaNo()); return R.ok(); } src/main/resources/application.yml
@@ -10,7 +10,7 @@ enabled: false datasource: driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver url: jdbc:sqlserver://192.168.2.201:1433;databasename=mdqzasrs url: jdbc:sqlserver://192.168.2.203:1433;databasename=mdqzasrs username: sa password: sa@123 mvc: src/main/resources/license.licBinary files differ
src/main/resources/mapper/LocDetlMapper.xml
@@ -342,6 +342,9 @@ <if test="specs!=null and specs!='' "> and a.specs like '%' + #{specs} + '%' </if> <if test="model!=null and model!='' "> and a.specs like '%' + #{model} + '%' </if> </sql> <select id="getStockOutPage" resultMap="BaseResultMap">