src/main/java/com/zy/asrs/controller/OpenController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/entity/param/FxprkParam.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/mapper/MatMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/OpenService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/task/handler/GhjtHandler.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/mapper/WrkMastMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/webapp/static/js/common.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/controller/OpenController.java
@@ -44,7 +44,7 @@ @PostMapping("/fxprk") @AppAuth(memo = "反修品入库") public synchronized R fxprk(@RequestHeader(required = false) String appkey, @RequestBody List<FxprkParam> param, @RequestBody FxprkParam param, HttpServletRequest request) { auth(appkey, param, request); return R.ok(openService.fxprk(param)); src/main/java/com/zy/asrs/entity/param/FxprkParam.java
@@ -2,6 +2,8 @@ import lombok.Data; import java.util.List; /** * @author pang.jiabao * @description 反修品入库 @@ -11,17 +13,29 @@ public class FxprkParam { /** * 包装组号 */ private String packageGroupNo; /** * 木箱位置 */ private String boxPos; /** * 站点 */ private Integer palletizingNo; /** * 托盘码 */ private String barcode; /** * 木箱集合 */ private List<Box> boxList; @Data public static class Box { /** * 包装组号 */ private String packageGroupNo; /** * 木箱位置 */ private String boxPos; } } src/main/java/com/zy/asrs/mapper/MatMapper.java
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.plugins.Page; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Update; import org.springframework.stereotype.Repository; import com.zy.asrs.entity.Mat; @@ -25,4 +26,7 @@ Integer getStockOutPageCount(Map<String, Object> map); @Update("update man_mat set origin= #{boxPos},barcode=#{barcode} where brand= #{packageGroupNo}") Integer updateBoxPos(@Param("packageGroupNo") String packageGroupNo, @Param("boxPos") String boxPos,@Param("barcode") String barcode); } src/main/java/com/zy/asrs/service/OpenService.java
@@ -23,7 +23,7 @@ /** * 反修品入库 */ String fxprk(List<FxprkParam> param); String fxprk(FxprkParam param); /** *GWMS到达目标站点请求ZWCS执行入库 src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -14,6 +14,7 @@ import com.zy.asrs.entity.result.StockVo; import com.zy.asrs.entity.result.ZphjcdgzVo; import com.zy.asrs.entity.result.ZphjcdwcVo; import com.zy.asrs.mapper.MatMapper; import com.zy.asrs.mapper.TagMapper; import com.zy.asrs.service.*; import com.zy.asrs.utils.MatUtils; @@ -30,6 +31,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.*; import java.util.stream.Collectors; @@ -84,6 +86,9 @@ private LocMastService locMastService; @Autowired private ApiLogService apiLogService; @Resource private MatMapper matMapper; @Override @Transactional @@ -1025,73 +1030,85 @@ @Override @Transactional public String fxprk(List<FxprkParam> param) { // // // 根据包装组号获取到木箱卷信息 // List<Mat> list = matService.selectList(new EntityWrapper<Mat>().eq("brand", param.getPackageGroupNo())); // if (list.isEmpty()) { // throw new CoolException("没有查询到该包装组号信息:" + param.getPackageGroupNo()); // } // // LocTypeDto locTypeDto = new LocTypeDto(); // locTypeDto.setLocType1((short) 1); // StartupDto dto = commonService.getLocNo(1, param.getPalletizingNo(), locTypeDto, 0); // // // 返回GWCS目标信息 // pushStaNoToGwcs(param.getPalletizingNo(), dto.getStaNo(), dto.getWorkNo()); // // int workNo = dto.getWorkNo(); // Date now = new Date(); // // 生成工作档 // WrkMast wrkMast = new WrkMast(); // wrkMast.setWrkNo(workNo); // wrkMast.setIoTime(new Date()); // wrkMast.setWrkSts(1L); // 工作状态:设备上走 // wrkMast.setIoType(1); // 入出库状态:1.入库 // wrkMast.setIoPri(13D); // 优先级 // wrkMast.setCrnNo(dto.getCrnNo()); // wrkMast.setSourceStaNo(param.getPalletizingNo()); // wrkMast.setStaNo(dto.getStaNo()); // wrkMast.setLocNo(dto.getLocNo()); // wrkMast.setBarcode(list.get(0).getBarcode()); // 托盘码 // wrkMast.setFullPlt("Y"); // 满板:Y // wrkMast.setPicking("N"); // 拣料 // wrkMast.setExitMk("N"); // 退出 // wrkMast.setEmptyMk("N"); // 空板 // wrkMast.setLinkMis("Y"); // wrkMast.setCtnType(1); // 容器类型 // // 操作人员数据 // wrkMast.setAppeTime(now); // wrkMast.setModiTime(now); // boolean res = wrkMastService.insert(wrkMast); // if (!res) { // throw new CoolException("保存工作档失败"); // } // // for (Mat obj : list) { // WrkDetl wrkDetl = new WrkDetl(); // wrkDetl.setWrkNo(wrkMast.getWrkNo()); // wrkDetl.setAnfme(1.0); // wrkDetl.sync(obj); // wrkDetl.setIoTime(now); // wrkDetl.setAppeTime(now); // wrkDetl.setModiTime(now); // if (!wrkDetlService.insert(wrkDetl)) { // throw new CoolException("保存工作明细失败"); // } // } // // // 更新目标库位状态 // LocMast locMast = locMastService.selectById(dto.getLocNo()); // if (locMast.getLocSts().equals("O")) { // locMast.setLocSts("S"); // S.入库预约 // locMast.setModiTime(now); // if (!locMastService.updateById(locMast)) { // throw new CoolException("改变库位状态失败"); // } // } else { // throw new CoolException(dto.getLocNo() + "目标库位已被占用"); // } public String fxprk(FxprkParam param) { // 根据包装组号获取到木箱卷信息 List<Mat> list = matService.selectList(new EntityWrapper<Mat>().in("brand", param.getBoxList().stream().map(FxprkParam.Box::getPackageGroupNo).collect(Collectors.toList()))); if (list.isEmpty()) { throw new CoolException("没有查询到该包装组号信息:" + param.getBoxList().toString()); } LocTypeDto locTypeDto = new LocTypeDto(); locTypeDto.setLocType1((short) 1); StartupDto dto = commonService.getLocNo(1, param.getPalletizingNo(), locTypeDto, 0); // 返回GWCS目标信息 pushStaNoToGwcs(param.getPalletizingNo(), dto.getStaNo(), dto.getWorkNo()); int workNo = dto.getWorkNo(); Date now = new Date(); // 生成工作档 WrkMast wrkMast = new WrkMast(); wrkMast.setWrkNo(workNo); wrkMast.setIoTime(new Date()); wrkMast.setWrkSts(1L); // 工作状态:设备上走 wrkMast.setIoType(1); // 入出库状态:1.入库 wrkMast.setIoPri(13D); // 优先级 wrkMast.setCrnNo(dto.getCrnNo()); wrkMast.setSourceStaNo(param.getPalletizingNo()); wrkMast.setStaNo(dto.getStaNo()); wrkMast.setLocNo(dto.getLocNo()); wrkMast.setBarcode(param.getBarcode()); // 托盘码 wrkMast.setFullPlt("Y"); // 满板:Y wrkMast.setPicking("N"); // 拣料 wrkMast.setExitMk("N"); // 退出 wrkMast.setEmptyMk("N"); // 空板 wrkMast.setLinkMis("Y"); wrkMast.setCtnType(1); // 容器类型 // 操作人员数据 wrkMast.setAppeTime(now); wrkMast.setModiTime(now); boolean res = wrkMastService.insert(wrkMast); if (!res) { throw new CoolException("保存工作档失败"); } for (Mat obj : list) { WrkDetl wrkDetl = new WrkDetl(); wrkDetl.setWrkNo(wrkMast.getWrkNo()); wrkDetl.setAnfme(1.0); // 重新定位木箱位置 for (FxprkParam.Box box :param.getBoxList()) { if (box.getPackageGroupNo().equals(obj.getBrand())) { if (!box.getBoxPos().equals(obj.getOrigin())) { wrkDetl.setOrigin(box.getBoxPos()); wrkDetl.setZpallet(param.getBarcode()); wrkDetl.setBarcode(param.getBarcode()); matMapper.updateBoxPos(box.getPackageGroupNo(), box.getBoxPos(),param.getBarcode()); } break; } } wrkDetl.sync(obj); wrkDetl.setIoTime(now); wrkDetl.setAppeTime(now); wrkDetl.setModiTime(now); if (!wrkDetlService.insert(wrkDetl)) { throw new CoolException("保存工作明细失败"); } } // 更新目标库位状态 LocMast locMast = locMastService.selectById(dto.getLocNo()); if (locMast.getLocSts().equals("O")) { locMast.setLocSts("S"); // S.入库预约 locMast.setModiTime(now); if (!locMastService.updateById(locMast)) { throw new CoolException("改变库位状态失败"); } } else { throw new CoolException(dto.getLocNo() + "目标库位已被占用"); } return "入库成功"; } @@ -1349,11 +1366,19 @@ throw new CoolException("工作档当前状态不符合,任务号:" + param.getWorkNo() + ",工作档状态:" + wrkMast.getWrkSts()); } List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", param.getWorkNo())); // 是否需要复核(出库单需复核) boolean flag = false; if (!wrkDetls.isEmpty()) { flag = wrkDetls.stream().anyMatch(wrkDetl -> wrkDetl.getOrderNo() != null); } // 到达出库口确认为1,更新工作档状态为57.出库完成 if (param.getOutLocResult() == 1) { wrkMast.setWrkSts(20L); // 空托盘到位直接更新工作档状态为14.已出库未确认,空托无需复核确认 if (wrkMast.getIoType() == 110) { if (!flag || wrkMast.getIoType() == 110) { wrkMast.setWrkSts(14L); } wrkMastService.updateById(wrkMast); src/main/java/com/zy/asrs/task/handler/GhjtHandler.java
@@ -108,14 +108,15 @@ /** * 全板出库到3077或3106的任务,判断出库要走的路径 * @param wrkMast 工作主档 * @return 0.只有一条路径,1.理货贴标出库路径,2.贴标打带出库路径 * @return 1.直接出库 2.理货贴标出库 3.贴标打带出库 4.贴标出库 */ private int getDescToGwcs(WrkMast wrkMast) { // todo 两条路线怎么选 int flag = 0; if (wrkMast.getIoType() == 101 && (wrkMast.getStaNo() == 3077 || wrkMast.getStaNo() == 3106)) { List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo())); // 出的物料有几个位置 List<String> collect = wrkDetls.stream().map(WrkDetl::getOrigin).distinct().collect(Collectors.toList()); // 有几个木箱 List<String> collect = wrkDetls.stream().map(WrkDetl::getBrand).distinct().collect(Collectors.toList()); if (collect.size() == 1) { // 一箱 if (wrkDetls.size() == 1) { // 一卷去贴标 flag = 1; @@ -125,6 +126,8 @@ } else if(collect.size() == 2) { // 两箱去贴标打带 flag = 2; } } else if (wrkMast.getIoType() == 103 && (wrkMast.getStaNo() == 3077 || wrkMast.getStaNo() == 3106)) { flag = 4; } return flag; } src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -92,15 +92,15 @@ // 遍历工作明细,更新库存明细和入库通知档 for (WrkDetl wrkDetl : wrkDetls) { LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch()); if (null != locDetl) { if (!locDetlService.updateAnfme(wrkDetl.getAnfme(), wrkMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch())) { // exceptionHandle("全板入库 ===>> 更新库存明细失败;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo()); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); return FAIL.setMsg("全板入库 ===>> 更新库存明细失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]"); } } else { locDetl = new LocDetl(); // LocDetl locDetl = locDetlService.selectItem(locMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch()); // if (null != locDetl) { // if (!locDetlService.updateAnfme(wrkDetl.getAnfme(), wrkMast.getLocNo(), wrkDetl.getMatnr(), wrkDetl.getBatch())) { //// exceptionHandle("全板入库 ===>> 更新库存明细失败;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo()); // TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); // return FAIL.setMsg("全板入库 ===>> 更新库存明细失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]"); // } // } else { LocDetl locDetl = new LocDetl(); locDetl.sync(wrkDetl); locDetl.setLocNo(wrkMast.getLocNo()); // 库位号 locDetl.setAnfme(wrkDetl.getAnfme()); // 数量 @@ -113,7 +113,7 @@ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); return FAIL.setMsg("全板入库 ===>> 添加库存明细失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]"); } } // } // 更新订单完成数量 OrderDetl orderDetl = orderDetlService.selectItem(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch()); src/main/resources/mapper/WrkMastMapper.xml
@@ -77,7 +77,7 @@ or wrk_sts=64 or (wrk_sts=57 and wrk_no not in (select wrk_no from asr_bas_devp)) or (wrk_sts=15 and ove_mk='Y' and wrk_no not in (select wrk_no from asr_bas_devp)) or (wrk_sts=15 and dateadd(mi,15,crn_end_time) <= getdate() and wrk_no not in (select wrk_no from asr_bas_devp)) or (wrk_sts=15 and dateadd(mi,3,crn_end_time) <= getdate() and wrk_no not in (select wrk_no from asr_bas_devp)) or (wrk_sts=15 and crn_end_time is null and wrk_no not in (select wrk_no from asr_bas_devp)) order by io_time,wrk_no asc </select> src/main/webapp/static/js/common.js
@@ -229,9 +229,9 @@ ,{field: 'batch', align: 'center',title: '批次', hide: true, sort:true} ,{field: 'unit', align: 'center',title: '箱号', hide: false} ,{field: 'model', align: 'center',title: '卷号', hide: false} ,{field: 'brand', align: 'center',title: '包装组号', hide: true, sort:true} ,{field: 'brand$', align: 'center',title: '木箱类型', hide: false, sort:true} ,{field: 'anfme', align: 'center',title: '数量', hide: false, sort:true} ,{field: 'brand', align: 'center',title: '包装组号', hide: false, sort:true} // ,{field: 'brand$', align: 'center',title: '木箱类型', hide: false, sort:true} ,{field: 'anfme', align: 'center',title: '数量', hide: true, sort:true} ,{field: 'zpallet', align: 'center',title: '托盘条码', hide: false} ,{field: 'specs', align: 'center',title: '接头', hide: false} ,{field: 'color', align: 'center',title: '颜色', hide: true} @@ -247,7 +247,7 @@ ,{field: 'weight', align: 'center',title: '单箱净重', hide: false, sort:true} ,{field: 'length', align: 'center',title: '长度', hide: false} ,{field: 'volume', align: 'center',title: '单箱毛重', hide: false} ,{field: 'threeCode', align: 'center',title: '箱子尺寸', hide: true} ,{field: 'threeCode', align: 'center',title: '合格否', hide: false} ,{field: 'supp', align: 'center',title: '供应商', hide: true} ,{field: 'suppCode', align: 'center',title: '供应商编码', hide: true} ,{field: 'beBatch$', align: 'center',title: '是否批次', hide: true, sort:true}