| src/main/java/com/zy/api/service/impl/WcsApiServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/asrs/utils/MatExcelListener.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/resources/mapper/OrderDetlPakoutMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/api/service/impl/WcsApiServiceImpl.java
@@ -49,10 +49,11 @@ /** * 通知WCS锁定库位,及禁止当前库位的一切操作 * @author Ryan * @date 2026/1/10 11:18 * * @param params * @return com.core.common.R * @author Ryan * @date 2026/1/10 11:18 */ @Override @Transactional(rollbackFor = Exception.class) @@ -76,10 +77,11 @@ /** * 余料回库 (搬运余料回库) * @author Ryan * @date 2026/1/10 13:19 * * @param params * @return com.core.common.R * @author Ryan * @date 2026/1/10 13:19 */ @Override @Transactional(rollbackFor = Exception.class) @@ -112,10 +114,11 @@ /** * 下发任务至WCS * @author Ryan * @date 2026/1/10 13:58 * * @param params * @return com.core.common.R * @author Ryan * @date 2026/1/10 13:58 */ @Override public R pubWrkToWcs(WorkTaskParams params) { @@ -154,9 +157,10 @@ /** * 上报锁定/释放库位信息 * * @param locs * @author Ryan * @date 2026/1/10 12:50 * @param locs */ @Override @Transactional(rollbackFor = Exception.class) @@ -188,10 +192,11 @@ /** * 堆垛机执行状态上报 * @author Ryan * @date 2026/1/10 16:30 * * @param params * @return com.core.common.R * @author Ryan * @date 2026/1/10 16:30 */ @Override @Transactional(rollbackFor = Exception.class) @@ -257,19 +262,40 @@ throw new CoolException("物料基础信息不存在!!"); } Double val = Math.round((params.getWeight() - matnr.getSafeQty()) * 10000) / 10000.0; if (val.compareTo(0.0) > 0) { //余料长度 wrkDetl.setRealQty(val * matnr.getVolume()); } else { //空板 wrkDetl.setRealQty(0.0); } Double realQty = val * matnr.getVolume(); // if (val.compareTo(0.0) > 0) { // //余料长度 // wrkDetl.setRealQty(realQty); // } else { // //空板 // wrkDetl.setRealQty(0.0); // } wrkDetl.setAnfme(realQty); wrkDetl.setWeight(params.getWeight()); if (!wrkDetlService.update(wrkDetl, new EntityWrapper<WrkDetl>().eq("wrk_no", mast.getWrkNo()).eq("matnr", wrkDetl.getMatnr()).eq("barcode", wrkDetl.getBarcode()))) { throw new CoolException("任务档明细修改失败!!"); } // 更新原出库单 int indexOf = mast.getWrkCode().indexOf("-1"); if (indexOf != -1) { String wrkNo = mast.getWrkCode().substring(0, indexOf); WrkMast orgWrk = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", wrkNo)); if (Objects.isNull(orgWrk)) { throw new CoolException("数据错误,主任务档不存在或已删除!!"); } WrkDetl detl = wrkDetlService.selectOne(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkNo)); if (Objects.isNull(detl)) { throw new CoolException("子任务档明细不存在!!"); } Double v = Math.round((wrkDetl.getStockQty() - realQty) * 10000) / 10000.0; detl.setRealQty(v); detl.setWeight(params.getWeight()); if (!wrkDetlService.update(detl, new EntityWrapper<WrkDetl>().eq("wrk_no", wrkNo).eq("matnr", detl.getMatnr()).eq("barcode", detl.getBarcode()))) { throw new CoolException("原任务档明细修改失败!!"); } } else { throw new CoolException("任务号截取失败,请检查主任务档任档wrkCode字段"); } } } else { throw new CoolException("数据错误,当前任务状态有误 !"); src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -564,7 +564,10 @@ wrkDetl.setUnit(locDel.getUnit()); wrkDetl.setSpecs(locDel.getSpecs()); wrkDetl.setBatch(locDel.getBatch()); wrkDetl.setAnfme(locDel.getAnfme()); //库存数量 wrkDetl.setStockQty(locDel.getAnfme()); //单据数量 wrkDetl.setAnfme(locDto.getAnfme()); wrkDetl.setAppeTime(now); wrkDetl.setAppeUser(userId); wrkDetl.setModiTime(now); @@ -1536,11 +1539,11 @@ throw new CoolException("修改库位状态失败"); } wrkMast.setWrkCode(null); if (!wrkMastService.updateById(wrkMast)) { throw new CoolException("任务档更新失败!!"); } // wrkMast.setWrkCode(null); // // if (!wrkMastService.updateById(wrkMast)) { // throw new CoolException("任务档更新失败!!"); // } } src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -127,11 +127,7 @@ locDetl = new LocDetl(); locDetl.sync(wrkDetl); locDetl.setLocNo(wrkMast.getLocNo()); // 库位号 if (!Objects.isNull(wrkMast.getWrkCode())) { locDetl.setAnfme(wrkDetl.getRealQty()); } else { locDetl.setAnfme(wrkDetl.getAnfme()); // 数量 } locDetl.setZpallet(wrkDetl.getZpallet()); // 托盘条码 locDetl.setModiTime(now); locDetl.setAppeTime(now); @@ -144,8 +140,33 @@ //判断匹配编码不为空,且任务编码包含-2,确认为有上组任务 if (!Objects.isNull(wrkMast.getWrkCode())) { //不需要更新单据信息(子任务无单据 //TODO 获取101出库 主任务档总数量 - 子任务档的实际数量 = 当前作业完成数量 WrkDetl selectOne = wrkDetlService.selectOne(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo())); Double v = Math.round((selectOne.getStockQty() - selectOne.getAnfme()) * 10000) / 10000.0; OrderDetlPakout orderDetlPakout = orderDetlPakoutService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), null, null, null, null, null, null, null); if (!Objects.isNull(orderDetlPakout)) { orderDetlPakout.setQty(v); if (!orderDetlPakoutService.updateById(orderDetlPakout)) { throw new CoolException("单据完成数量修改失败!!"); } } int indexOf = wrkMast.getWrkCode().indexOf("-1"); if (indexOf != -1) { String wrkNo = wrkMast.getWrkCode().substring(0, indexOf); WrkMast mast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", wrkNo)); if (Objects.isNull(mast)) { throw new CoolException("数据错误,主任务档不存在或已删除!!"); } mast.setWrkCode(null); if (!wrkMastService.updateById(mast)) { throw new CoolException("原任务档删除失败!!"); } } } else { //正常单据才存存入库单,作入库单据信息更新 // 更新订单完成数量 src/main/java/com/zy/asrs/utils/MatExcelListener.java
@@ -133,7 +133,7 @@ throw new CoolException("每公斤长度不能为空!!"); } if (Objects.isNull(mat.getSafeQty())) { throw new CoolException("归零阀值不能为空!!"); throw new CoolException("归零阈值不能为空!!"); } if (!matService.insert(mat)) { throw new CoolException("保存商品信息失败,商品编码:" + excel.getMatnr()); src/main/resources/mapper/OrderDetlPakoutMapper.xml
@@ -60,12 +60,15 @@ <if test="brand != null and brand != ''"> and brand = #{brand} </if> and standby1 = #{standby1} <!-- <if test="standby1 != null and standby1 != ''">--> <!-- and standby1 = #{standby1}--> <!-- </if>--> <if test="standby2 != null and standby2 != ''"> and standby2 = #{standby2} </if> <if test="standby3 != null and standby3 != ''"> and standby3 = #{standby3} and box_type1 = #{boxType1} and box_type2 = #{boxType2} and box_type3 = #{boxType3} </if> </sql> <sql id="standbyAllMemo"> -- and line_number = #{lineNumber}