src/main/java/com/zy/asrs/controller/MobileController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/entity/param/PalletizingCompleteParam.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/entity/param/TrussCombParam.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/MobileService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/controller/MobileController.java
@@ -9,9 +9,7 @@ import com.core.common.R; import com.core.exception.CoolException; import com.zy.asrs.entity.*; import com.zy.asrs.entity.param.CombParam; import com.zy.asrs.entity.param.MobileAdjustParam; import com.zy.asrs.entity.param.OffSaleParam; import com.zy.asrs.entity.param.*; import com.zy.asrs.entity.result.MobileAdjustResult; import com.zy.asrs.mapper.ManLocDetlMapper; import com.zy.asrs.service.*; @@ -54,6 +52,8 @@ private PackService packService; @Autowired private ManLocDetlMapper manLocDetlMapper; @Autowired private WrkDetlLogService wrkDetlLogService; // 商品上架 @@ -144,6 +144,70 @@ return R.ok().add(combParams); } @RequestMapping("/wrkDetl/search/batch/auth") @ManagerAuth public R wrkDetlSearchByBatch(@RequestBody String batch){ if (Cools.isEmpty(batch)){ return R.error("参数为空"); } // List<Order> orders = orderService.selectorderNoL(batch); WrkDetl wrkDetl = wrkDetlService.selectOne(new EntityWrapper<WrkDetl>().eq("batch", batch)); if (Cools.isEmpty(wrkDetl)){ WrkDetlLog wrkDetlLog = wrkDetlLogService.selectOne(new EntityWrapper<WrkDetlLog>().eq("batch", batch)); if (Cools.isEmpty(wrkDetlLog)){ return R.error("未查到数据"); } wrkDetl = new WrkDetl(); wrkDetl.sync(wrkDetlLog); wrkDetl.setBatch(wrkDetlLog.getBatch()); wrkDetl.setBarcode(wrkDetlLog.getBarcode()); wrkDetl.setDeadTime(wrkDetlLog.getDeadTime()); } if (Cools.isEmpty(wrkDetl)){ return R.error("未查到数据"); } return R.ok().add(wrkDetl); } @RequestMapping("/order/search/batch/auth") @ManagerAuth public R orderSearchByBatch(@RequestBody String batch){ if (Cools.isEmpty(batch)){ return R.error("参数为空"); } // List<Order> orders = orderService.selectorderNoL(batch); WrkDetl wrkDetl = wrkDetlService.selectOne(new EntityWrapper<WrkDetl>().eq("batch", batch)); if (Cools.isEmpty(wrkDetl)){ WrkDetlLog wrkDetlLog = wrkDetlLogService.selectOne(new EntityWrapper<WrkDetlLog>().eq("batch", batch)); if (Cools.isEmpty(wrkDetlLog)){ return R.error("未查到数据"); } wrkDetl = new WrkDetl(); wrkDetl.sync(wrkDetlLog); wrkDetl.setBatch(wrkDetlLog.getBatch()); wrkDetl.setBarcode(wrkDetlLog.getBarcode()); wrkDetl.setDeadTime(wrkDetlLog.getDeadTime()); } if (Cools.isEmpty(wrkDetl)){ return R.error("未查到数据"); } return R.ok(); } @RequestMapping("/truss/auth") @ManagerAuth(memo = "退库") public R trussComb(@RequestBody TrussCombParam combParam){ mobileService.trussComb(combParam, getUserId()); return R.ok("组托成功"); } @RequestMapping("/truss/comd/auth") @ManagerAuth(memo = "手动入库") public R trussComb2(@RequestBody PalletizingCompleteParam combParam){ mobileService.trussComb2(combParam, getUserId()); return R.ok("组托成功"); } @RequestMapping("/comb/auth") @ManagerAuth(memo = "组托") public R comb(@RequestBody CombParam combParam){ src/main/java/com/zy/asrs/entity/param/PalletizingCompleteParam.java
@@ -12,7 +12,7 @@ private String barcode;// 是 字符串 托盘码 private String palletizingNo;// 是 字符串 码垛位编号 private String boxType;// 是 字符串 码垛位编号 private String boxType;// 是 字符串 木箱类型 private String createTime;// 是 字符串 创建时间 private List<MatList> matLists;// 是 列表 拆垛货物信息(2箱,尾箱可能1箱) @@ -27,6 +27,16 @@ private Integer anfme;// 是 数字型 木箱中铜箔数量 private String batch;// (是否分批) 字符串 批次号 private String specs;// (是否需要) 字符串 规格 private List<MatDetlList> matDetlList;// 是 列表 木箱中铜箔信息 } @Data public static class MatDetlList{ private String boxNoDetl;// 是 字符串 铜箔编号(唯一字段) private String positionDetl;// 是 字符串 铜箔位置(拆垛时需要) private Double weightDetl;// 是 小数型 重量 private String batchDetl;// (是否分批) 字符串 批次号 private String specsDetl;// (是否需要) 字符串 规格 } public Integer getDevNo$(){ src/main/java/com/zy/asrs/entity/param/TrussCombParam.java
New file @@ -0,0 +1,41 @@ package com.zy.asrs.entity.param; import lombok.Data; import java.util.List; /** * Created by vincent on 2020/6/28 */ @Data public class TrussCombParam { private String barcode;// 字符串 托盘码 private String palletizingNo;// 是 字符串 码垛位编号 private String boxType;// 是 字符串 木箱类型 private String createTime;// 字符串 创建时间 private List<MatList> matLists;// 是 列表 拆垛货物信息(2箱,尾箱可能1箱) @Data public static class MatList{ private String matnr;// 是 字符串 物料编码 private String maktx;// 字符串 物料名称 private String boxNo;// 是 字符串 木箱编号(唯一字段,出库依据,出库时按照木箱编号出库) private String position;// 是 字符串 木箱位置(拆垛时需要) private Double weight;// 是 小数型 重量 private Integer anfme;// 数字型 木箱中铜箔数量 private String batch;// 字符串 批次号 private String specs;// 字符串 规格 private List<MatDetlList> matDetlList;// 是 列表 木箱中铜箔信息 } @Data public static class MatDetlList{ private String boxNoDetl;// 是 字符串 铜箔编号(唯一字段) private String positionDetl;// 是 字符串 铜箔位置(拆垛时需要) private Double weightDetl;// 是 小数型 重量 private String batchDetl;// 字符串 批次号 private String specsDetl;// 字符串 规格 } } src/main/java/com/zy/asrs/service/MobileService.java
@@ -4,9 +4,7 @@ import com.zy.asrs.entity.BasDevp; import com.zy.asrs.entity.LocDetl; import com.zy.asrs.entity.OrderDetl; import com.zy.asrs.entity.param.CombParam; import com.zy.asrs.entity.param.MobileAdjustParam; import com.zy.asrs.entity.param.OffSaleParam; import com.zy.asrs.entity.param.*; import java.util.Date; @@ -16,6 +14,8 @@ * 组托 */ void comb(CombParam param, Long userId); void trussComb(TrussCombParam param, Long userId); void trussComb2(PalletizingCompleteParam param, Long userId); /** * 上架 src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -7,10 +7,7 @@ import com.core.common.*; import com.core.exception.CoolException; import com.zy.asrs.entity.*; import com.zy.asrs.entity.param.CombParam; import com.zy.asrs.entity.param.MobileAdjustParam; import com.zy.asrs.entity.param.OffSaleParam; import com.zy.asrs.entity.param.OpenOrderPakinParam; import com.zy.asrs.entity.param.*; import com.zy.asrs.mapper.ManLocDetlMapper; import com.zy.asrs.service.*; import com.zy.asrs.utils.MatUtils; @@ -81,6 +78,104 @@ @Override @Transactional public void trussComb(TrussCombParam param, Long userId) { // if (Cools.isEmpty(param.getBarcode(), param.getCombMats())) { // throw new CoolException(BaseRes.PARAM); // } } @Override @Transactional public void trussComb2(PalletizingCompleteParam param, Long userId) { //判断param参数 if (Cools.isEmpty(param.getBarcode())){ throw new CoolException("参数:托盘码 barcode为空"); }else if (Cools.isEmpty(param.getPalletizingNo())){ throw new CoolException("参数:码垛位编号 palletizingNo为空"); }else if (Cools.isEmpty(param.getBoxType())){ throw new CoolException("参数:木箱类型 boxType为空"); }else if (Cools.isEmpty(param.getMatLists()) || param.getMatLists().size()==0){ throw new CoolException("参数:物料明细 matLists为空"); } ArrayList<String> positions = new ArrayList<>(); //木箱位置查重 (orgin) ArrayList<String> boxNos = new ArrayList<>(); //木箱唯一编码查重 (batch) //判断matLists参数 for (PalletizingCompleteParam.MatList matList:param.getMatLists()){ if (Cools.isEmpty(matList.getMatnr())){ throw new CoolException("参数:物料编码 matnr为空"); }else if (Cools.isEmpty(matList.getPosition())){ throw new CoolException("物料编码:"+matList.getMatnr()+"、参数:码垛位置 position为空"); }else if (Cools.isEmpty(matList.getBoxNo())){ throw new CoolException("物料编码:"+matList.getMatnr()+"、参数:木箱编号 boxNo为空"); }else if (Cools.isEmpty(matList.getAnfme()) || matList.getAnfme().equals(0)){ throw new CoolException("物料编码:"+matList.getMatnr()+"、参数:木箱中铜箔数量 anfme为空"); }else if (Cools.isEmpty(matList.getWeight()) || matList.getWeight().equals(0D)){ throw new CoolException("物料编码:"+matList.getMatnr()+"、参数:重量 weight为空"); } if (!positions.contains(matList.getPosition())){ positions.add(matList.getPosition()); }else { throw new CoolException("参数:木箱编号 boxNo:"+matList.getBoxNo()+",木箱位置存在重复:"+matList.getPosition()); } if (!boxNos.contains(matList.getBoxNo())){ boxNos.add(matList.getBoxNo()); }else { throw new CoolException("参数:木箱编号 boxNo:"+matList.getBoxNo()+",木箱编码存在重复"); } } // BasDevp basDevp = basDevpService.selectById(Integer.parseInt(param.getDevNo$())); // if (Cools.isEmpty(basDevp)){ // throw new CoolException("参数:码垛位编号 palletizingNo="+param.getPalletizingNo()+"不存在"); // } // if (Cools.isEmpty(basDevp.getAutoing()) || !basDevp.getAutoing().equals("Y")){ // throw new CoolException("码垛位编号 palletizingNo="+param.getPalletizingNo()+" 所处站点不是自动状态"); // } // if (Cools.isEmpty(basDevp.getLoading()) || !basDevp.getLoading().equals("Y")){ // throw new CoolException("码垛位编号 palletizingNo="+param.getPalletizingNo()+" 所处站点不是有物状态"); // } // if (Cools.isEmpty(basDevp.getCanining()) || !basDevp.getCanining().equals("Y")){ // throw new CoolException("码垛位编号 palletizingNo="+param.getPalletizingNo()+" 所处站点不是能入状态"); // } if (locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet", param.getBarcode()))!=0 || wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet", param.getBarcode()))!=0 || waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("zpallet", param.getBarcode()))!=0){ throw new CoolException("托盘条码:"+param.getBarcode()+"已存在,请勿重复组托"); } Date now = new Date(); for (PalletizingCompleteParam.MatList matList:param.getMatLists()){ Mat mat = matService.selectByMatnr(matList.getMatnr()); if (Cools.isEmpty(mat)) { throw new CoolException(matList.getMatnr() + "商品档案不存在"); } WaitPakin waitPakin = new WaitPakin(); waitPakin.sync(mat); waitPakin.setModel(matList.getBatch()); //批次 waitPakin.setSpecs(matList.getSpecs()); //规格 waitPakin.setBatch(matList.getBoxNo()); //木箱编码 waitPakin.setBrand(param.getBoxType()); //木箱类型 waitPakin.setZpallet(param.getBarcode()); //托盘码 waitPakin.setOrigin(matList.getPosition()); //木箱在托盘上的位置 waitPakin.setIoStatus("N"); // 入出状态 waitPakin.setAnfme(matList.getAnfme().doubleValue()); // 木箱中铜箔数量 waitPakin.setStatus("Y"); // 状态 waitPakin.setAppeUser(userId); waitPakin.setAppeTime(now); waitPakin.setModiUser(userId); waitPakin.setModiTime(now); if (!waitPakinService.insert(waitPakin)) { throw new CoolException("保存入库通知档失败"); } } } @Override @Transactional public void comb(CombParam param, Long userId) { if (Cools.isEmpty(param.getBarcode(), param.getCombMats())) { throw new CoolException(BaseRes.PARAM);