zy-asrs-common/src/main/java/com/zy/asrs/common/openapi/entity/param/CombParam.java
@@ -33,6 +33,8 @@ @Data public static class CombMat { private String orderNo; //料想码 private String containerCode; zy-asrs-common/src/main/java/com/zy/asrs/common/openapi/service/impl/ApiServiceImpl.java
@@ -94,6 +94,7 @@ for (GenerateOrderMatParam matParam : mats) { Mat mat = matService.getOne(new LambdaQueryWrapper<Mat>().eq(Mat::getMatnr, matParam.getMatnr()).eq(Mat::getHostId, param.getHostId())); if (Cools.isEmpty(mat)) { orderService.remove(new LambdaQueryWrapper<Order>().eq(Order::getOrderNo, order.getOrderNo())); throw new CoolException(matParam.getMatnr() + "编号商品检索失败,请先添加商品"); } OrderDetl orderDetl = new OrderDetl(); zy-asrs-common/src/main/java/com/zy/asrs/common/sys/service/impl/StaDescServiceImpl.java
@@ -19,6 +19,7 @@ LambdaQueryWrapper<StaDesc> wrapper = new LambdaQueryWrapper<>(); wrapper.eq(StaDesc::getTypeNo, typeNo); wrapper.eq(StaDesc::getHostId, hostId); wrapper.orderByDesc(StaDesc::getStnNo); for (StaDesc staDesc : this.list(wrapper)) { list.add(staDesc.getStnNo()); } zy-asrs-common/src/main/java/com/zy/asrs/common/wms/entity/AdjDetl.java
@@ -127,6 +127,12 @@ @ApiModelProperty(value= "仓库ID") private Long hostId; /** * 订单号 */ @ApiModelProperty(value="订单号") private String orderNo; public AdjDetl() {} public AdjDetl(String locNo,String matnr,String batch,Double oriCtns,Double oriQty,Double oriWt,Double adjCtns,Double adjQty,Double adjWt,String memo,Long modiUser,Date modiTime,Long appeUser,Date appeTime) { @@ -185,7 +191,7 @@ UserService service = SpringUtils.getBean(UserService.class); User user = service.getById(this.modiUser); if (!Cools.isEmpty(user)){ return String.valueOf(user.getNickname()); return String.valueOf(user.getUsername()); } return null; } zy-asrs-common/src/main/java/com/zy/asrs/common/wms/entity/LocInPrintMat.java
@@ -119,6 +119,9 @@ @ApiModelProperty(value="制令") private String decrees; @ApiModelProperty(value = "訂單號") private String orderNo; public LocInPrintMat() {} public LocInPrintMat(String uuid,Integer status,Date createTime,Long createBy,Date updateTime,Long updateBy,String memo,String matnr,String batch,Double anfme,String locNo,String maktx) { zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/MobileService.java
@@ -21,7 +21,7 @@ R WarehouseIn(String locNo, String barcode,Long hostId); R WarehouseOut(CombParam combParam, Long hostId); R WarehouseOutV1(CombParam combParam, Long hostId); R WarehouseOutPickMergeV1(WarehouseOutPickMergeParam param, Long hostId); R WarehouseOutMergeBoardMany(WarehouseOutMergeBoardManyParam param, Long hostId); R WarehouseOutV1(CombParam combParam, Long hostId,Long userId); R WarehouseOutPickMergeV1(WarehouseOutPickMergeParam param, Long hostId,Long userId); R WarehouseOutMergeBoardMany(WarehouseOutMergeBoardManyParam param, Long hostId,Long userId); } zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/MobileServiceImpl.java
@@ -9,6 +9,7 @@ import com.zy.asrs.common.openapi.entity.param.CombParam; import com.zy.asrs.common.openapi.entity.param.WarehouseOutMergeBoardManyParam; import com.zy.asrs.common.openapi.entity.param.WarehouseOutPickMergeParam; import com.zy.asrs.common.web.BaseController; import com.zy.asrs.common.wms.entity.*; import com.zy.asrs.common.wms.mapper.LocDetlMapper; import com.zy.asrs.common.wms.service.*; @@ -399,7 +400,7 @@ @Override @Transactional public R WarehouseOutV1(CombParam combParam, Long hostId) { public R WarehouseOutV1(CombParam combParam, Long hostId,Long userId) { //判断库位状态 LocMast locMast = locMastService.getOne(new LambdaQueryWrapper<LocMast>().eq(LocMast::getLocNo, combParam.getLocno()).eq(LocMast::getHostId,hostId).eq(LocMast::getWhsType,0L)); if (Cools.isEmpty(locMast)){ @@ -427,8 +428,8 @@ if (combMat.getAnfme() > locDetl.getAnfme()){ return R.error("拣选数量错误,超出库存数量"); } if (!Cools.isEmpty(combParam.getOrderNo())){ Order order = orderService.selectByNo(combParam.getOrderNo(), hostId); if (!Cools.isEmpty(combMat.getOrderNo())){ Order order = orderService.selectByNo(combMat.getOrderNo(), hostId); if (Cools.isEmpty(order)){ continue; } @@ -443,7 +444,7 @@ throw new CoolException("拣选数量出错,订单剩余出库数量小于已出库数量与将拣选数量之和!!!"); } // 修改订单明细作业数量 if (!orderDetlService.increaseWorkQtyByOrderNo(combParam.getOrderNo(), combMat.getMatnr(), combMat.getBatch(), combMat.getAnfme(), hostId)) { if (!orderDetlService.increaseWorkQtyByOrderNo(combMat.getOrderNo(), combMat.getMatnr(), combMat.getBatch(), combMat.getAnfme(), hostId)) { throw new CoolException("修改单据明细工作数量失败"); } // 修改订单明细完成数量 @@ -451,7 +452,7 @@ throw new CoolException("修改单据明细完成数量失败"); } // 修改订单状态 作业中 ===>> 已完成 orderService.checkComplete(combParam.getOrderNo(), hostId); orderService.checkComplete(combMat.getOrderNo(), hostId); } try { //处理库存信息 @@ -461,8 +462,11 @@ adjDetl.setBatch(locDetl.getBatch()); adjDetl.setOriQty(locDetl.getAnfme()); adjDetl.setMemo("WarehouseOutV1-pick"); adjDetl.setModiUser(userId); adjDetl.setAppeUser(userId); adjDetl.setAppeTime(new Date()); adjDetl.setModiTime(new Date()); adjDetl.setOrderNo(combMat.getOrderNo()); if (combMat.getAnfme().equals(locDetl.getAnfme())){ adjDetl.setAdjQty(0D); //库存相等删除数据 @@ -470,8 +474,8 @@ int count = locDetlService.count(new LambdaQueryWrapper<LocDetl>().eq(LocDetl::getLocNo,combParam.getLocno()).eq(LocDetl::getHostId, hostId)); if (count == 0){ LocMast locMast1 = locMastService.getOne(new LambdaQueryWrapper<LocMast>().eq(LocMast::getLocNo, combParam.getLocno()).eq(LocMast::getHostId, hostId)); locMast1.setLocSts("O"); locMastService.updateById(locMast1); // locMast1.setLocSts("O"); // locMastService.updateById(locMast1); } } else { BigDecimal subtract = BigDecimal.valueOf(locDetl.getAnfme()).subtract(BigDecimal.valueOf(combMat.getAnfme())); @@ -492,7 +496,7 @@ @Override @Transactional public R WarehouseOutPickMergeV1(WarehouseOutPickMergeParam param, Long hostId) { public R WarehouseOutPickMergeV1(WarehouseOutPickMergeParam param, Long hostId,Long userId) { //判断库位状态 LocMast locMast = locMastService.getOne(new LambdaQueryWrapper<LocMast>().eq(LocMast::getLocNo, param.getLocNo()).eq(LocMast::getHostId,hostId).eq(LocMast::getWhsType,0L)); if (Cools.isEmpty(locMast)){ @@ -541,6 +545,14 @@ locDetl.setId(null); locDetl.setLocNo(param.getLocNo()); locDetl.setBarcode(locMast.getBarcode()); Mat mat = matService.getOne(new LambdaQueryWrapper<Mat>().eq(Mat::getMatnr,locDetl.getMatnr())); locDetl.setHostId(hostId); locDetl.setMaktx(mat.getMaktx()); if(hostId==1){ locDetl.setOwner("宁波仓"); }else{ locDetl.setOwner("新昌仓"); } String matKey = locDetl.getMatnr(); if (!Cools.isEmpty(locDetl.getBatch())) { @@ -604,7 +616,7 @@ continue; } if (orderDetl.getAnfme() < (orderDetl.getWorkQty() + orderDto.getAnfme())) { throw new CoolException("拣选数量出错,订单剩余出库数量小于已出库数量与将拣选数量之和!!!"); throw new CoolException("并板数量出错,订单剩余出库数量小于已出库数量与将并板数量之和!!!"); } // 修改订单明细作业数量 if (!orderDetlService.increaseWorkQtyByOrderNo(orderDto.getOrderNo(), locDetl.getMatnr(), locDetl.getBatch(), orderDto.getAnfme(), hostId)) { @@ -616,34 +628,39 @@ } // 修改订单状态 作业中 ===>> 已完成 orderService.checkComplete(orderDto.getOrderNo(), hostId); try { //处理库存信息 AdjDetl adjDetl = new AdjDetl(); adjDetl.setLocNo(locDetl.getLocNo()); adjDetl.setMatnr(locDetl.getMatnr()); adjDetl.setBatch(locDetl.getBatch()); adjDetl.setOriQty(originAnfme); adjDetl.setAdjQty(locDetl.getAnfme()); adjDetl.setMemo("WarehouseOutV1-pick"); adjDetl.setModiUser(userId); adjDetl.setAppeUser(userId); adjDetl.setAppeTime(new Date()); adjDetl.setModiTime(new Date()); adjDetl.setOrderNo(order.getOrderNo()); if (!adjDetlService.save(adjDetl)) { throw new CoolException("保存库存调整记录失败"); } }catch (Exception e){ e.printStackTrace(); throw new CoolException("更新库存数据出错" + e.getMessage()); } } } try { //处理库存信息 AdjDetl adjDetl = new AdjDetl(); adjDetl.setLocNo(locDetl.getLocNo()); adjDetl.setMatnr(locDetl.getMatnr()); adjDetl.setBatch(locDetl.getBatch()); adjDetl.setOriQty(originAnfme); adjDetl.setAdjQty(locDetl.getAnfme()); adjDetl.setMemo("WarehouseOutV1-pick"); adjDetl.setModiTime(new Date()); if (!adjDetlService.save(adjDetl)) { throw new CoolException("保存库存调整记录失败"); } }catch (Exception e){ e.printStackTrace(); throw new CoolException("更新库存数据出错" + e.getMessage()); } } return R.ok(); } @Override @Transactional public R WarehouseOutMergeBoardMany(WarehouseOutMergeBoardManyParam param, Long hostId) { public R WarehouseOutMergeBoardMany(WarehouseOutMergeBoardManyParam param, Long hostId,Long userId) { WrkMast wrkMast = wrkMastService.selectByBarcode(param.getBarcode(), hostId); if (wrkMast == null) { throw new CoolException("工作档不存在"); @@ -663,7 +680,7 @@ for (WrkDetl wrkDetl : wrkDetls) { String matKey = wrkDetl.getMatnr(); if (!Cools.isEmpty(wrkDetl.getBatch())) { matKey += "_" + wrkDetl.getBatch(); matKey += "_" + wrkDetl.getBatch() + "-" +wrkDetl.getOrderNo(); } MergeBoardManyDto dto = new MergeBoardManyDto(); @@ -676,18 +693,25 @@ for (OrderDetl orderDetl : param.getCombMats()) { String matKey = orderDetl.getMatnr(); if (!Cools.isEmpty(orderDetl.getBatch())) { matKey += "_" + orderDetl.getBatch(); matKey += "_" + orderDetl.getBatch() + "-" +orderDetl.getOrderNo(); } MergeBoardManyDto dto = wrkData.get(matKey); if(dto == null){ WrkDetl wrkDetl = new WrkDetl(); wrkDetl.sync(orderDetl); Mat mat=matService.getOne(new LambdaQueryWrapper<Mat>().eq(Mat::getMatnr,wrkDetl.getMatnr())); wrkDetl.sync(mat); wrkDetl.setId(null); wrkDetl.setWrkNo(wrkMast.getWrkNo()); wrkDetl.setWrkMastId(wrkMast.getId()); wrkDetl.setZpallet(wrkMast.getBarcode()); wrkDetl.setIoTime(new Date()); wrkDetl.setHostId(hostId); wrkDetl.setAppeUser(userId); wrkDetl.setAppeTime(new Date()); wrkDetl.setModiUser(userId); wrkDetl.setModiTime(new Date()); ArrayList<PickMergeOrderDto> orderDtos = new ArrayList<>(); orderDtos.add(new PickMergeOrderDto(orderDetl.getOrderNo(), orderDetl.getAnfme())); @@ -700,8 +724,11 @@ List<PickMergeOrderDto> orders = dto.getOrders(); wrkDetl.setAnfme(wrkDetl.getAnfme() + orderDetl.getAnfme()); wrkDetl.setIoTime(new Date()); wrkDetl.setHostId(hostId); wrkDetl.setModiUser(userId); wrkDetl.setModiTime(new Date()); orders.add(new PickMergeOrderDto(orderDetl.getOrderNo(), orderDetl.getAnfme())); dto.setWrkDetl(wrkDetl); dto.setOrders(orders); } @@ -750,6 +777,8 @@ } // 修改订单状态 作业中 ===>> 已完成 orderService.checkComplete(orderDto.getOrderNo(), hostId); } } } zy-asrs-common/src/main/resources/mapper/wms/OrderDetlMapper.xml
@@ -41,9 +41,9 @@ <when test="batch != null and batch != ''"> and batch = #{batch} </when> <otherwise> and (batch IS NULL OR batch = '') </otherwise> <!-- <otherwise>--> <!-- and (batch IS NULL OR batch = '')--> <!-- </otherwise>--> </choose> </select> zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/LocDetlController.java
@@ -48,15 +48,28 @@ @RequestMapping(value = "/locDetl/forlocNo/auth/v1") @ManagerAuth public R forlocNoV1(@RequestParam String locNo) { LambdaQueryWrapper<LocDetl> locDetlLambdaQueryWrapper = new LambdaQueryWrapper<LocDetl>() .eq(LocDetl::getLocNo, locNo) .eq(LocDetl::getHostId, getHostId()); List<LocDetl> detls = locDetlService.list(locDetlLambdaQueryWrapper); if (Cools.isEmpty(detls)){ return R.error("未查询到库存数据"); public R forlocNoV1(@RequestParam String locNo,@RequestParam String matnr) { if(Cools.isEmpty(matnr)){ LambdaQueryWrapper<LocDetl> locDetlLambdaQueryWrapper = new LambdaQueryWrapper<LocDetl>() .eq(LocDetl::getLocNo, locNo) .eq(LocDetl::getHostId, getHostId()); List<LocDetl> detls = locDetlService.list(locDetlLambdaQueryWrapper); if (Cools.isEmpty(detls)){ return R.error("未查询到库存数据"); } return R.ok(detls); }else{ LambdaQueryWrapper<LocDetl> locDetlLambdaQueryWrapper = new LambdaQueryWrapper<LocDetl>() .eq(LocDetl::getLocNo, locNo) .eq(LocDetl::getHostId, getHostId()) .like(LocDetl::getMatnr,matnr); List<LocDetl> detls = locDetlService.list(locDetlLambdaQueryWrapper); if (Cools.isEmpty(detls)){ return R.error("未查询到库存数据"); } return R.ok(detls); } return R.ok(detls); } @RequestMapping(value = "/locDetl/forlocNo/auth") zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/MobileController.java
@@ -68,37 +68,108 @@ @RequestMapping("/pda/WarehouseIn") @ManagerAuth public R WarehouseIn(@RequestParam String locNo,@RequestParam String barcode){ return mobileService.WarehouseIn(locNo,barcode,getHostId()); public R WarehouseIn(@RequestParam String locNo, @RequestParam String barcode) { return mobileService.WarehouseIn(locNo, barcode, getHostId()); } @RequestMapping("/pda/WarehouseOut") @ManagerAuth public R WarehouseOut(@RequestBody CombParam combParam){ return mobileService.WarehouseOut(combParam,getHostId()); public R WarehouseOut(@RequestBody CombParam combParam) { return mobileService.WarehouseOut(combParam, getHostId()); } @RequestMapping("/outBound/mat/list") @ManagerAuth public R WarehouseMat(@RequestParam String matnr, @RequestParam String orderNo) { if (Cools.isEmpty(matnr)) { R.error("品号不能为空"); } ArrayList<PickMatParam> maps = new ArrayList<>(); if (Cools.isEmpty(orderNo)) { List<OrderDetl> list = orderDetlService.list(new LambdaQueryWrapper<OrderDetl>() .eq(OrderDetl::getMatnr, matnr) .orderByDesc(OrderDetl::getCreateTime)); List<OrderDetl> orderDetls = new ArrayList<OrderDetl>(); for (OrderDetl orderDetl : list ) { Order order = orderService.getOne(new LambdaQueryWrapper<Order>().eq(Order::getOrderNo, orderDetl.getOrderNo())); if (!Cools.isEmpty(order)) { DocType docType = docTypeService.getOne(new LambdaQueryWrapper<DocType>().eq(DocType::getDocId, order.getDocType())); if (!Cools.isEmpty(docType) && docType.getPakout() == 1) { double count = orderDetl.getAnfme() - orderDetl.getWorkQty(); PickMatParam matParam = new PickMatParam(); matParam.setMatnr(orderDetl.getMatnr()); matParam.setBatch(orderDetl.getBatch()); matParam.setOrderNo(orderDetl.getOrderNo()); matParam.setOrderId(orderDetl.getOrderId()); matParam.setCount(count); matParam.setUseCount(count); maps.add(matParam); } } } return R.ok(maps); } else { List<OrderDetl> list = orderDetlService.list(new LambdaQueryWrapper<OrderDetl>() .eq(OrderDetl::getMatnr, matnr) .like(OrderDetl::getOrderNo, orderNo) .orderByDesc(OrderDetl::getCreateTime)); for (OrderDetl orderDetl:list ) { double count = orderDetl.getAnfme() - orderDetl.getWorkQty(); PickMatParam matParam = new PickMatParam(); matParam.setMatnr(orderDetl.getMatnr()); matParam.setBatch(orderDetl.getBatch()); matParam.setOrderNo(orderDetl.getOrderNo()); matParam.setOrderId(orderDetl.getOrderId()); matParam.setCount(count); matParam.setUseCount(count); maps.add(matParam); } return R.ok(maps); } } /** * 并板途中拣料 * * @param combParam * @return */ @RequestMapping("/pda/WarehouseOut/v1") @ManagerAuth public R WarehouseOutV1(@RequestBody CombParam combParam){ return mobileService.WarehouseOutV1(combParam,getHostId()); public R WarehouseOutV1(@RequestBody CombParam combParam) { return mobileService.WarehouseOutV1(combParam, getHostId(), getUserId()); } /** * 拣料途中并板 * * @param param * @return */ @RequestMapping("/pda/WarehouseOutPickMerge/v1") @ManagerAuth public R WarehouseOutPickMergeV1(@RequestBody WarehouseOutPickMergeParam param){ return mobileService.WarehouseOutPickMergeV1(param, getHostId()); public R WarehouseOutPickMergeV1(@RequestBody WarehouseOutPickMergeParam param) { return mobileService.WarehouseOutPickMergeV1(param, getHostId(),getUserId()); } /** * 多次并板 * @param param * @return */ @RequestMapping("/pda/WarehouseOutMergeBoardMany/v1") @ManagerAuth public R WarehouseOutMergeBoardManyV1(@RequestBody WarehouseOutMergeBoardManyParam param){ return mobileService.WarehouseOutMergeBoardMany(param, getHostId()); public R WarehouseOutMergeBoardManyV1(@RequestBody WarehouseOutMergeBoardManyParam param) { return mobileService.WarehouseOutMergeBoardMany(param, getHostId(),getUserId()); } @RequestMapping("/menu/pda/auth") @ManagerAuth public R menuPda(){ public R menuPda() { List<RolePermission> rolePermissions; Long roleId = getUser().getRoleId(); rolePermissions = rolePermissionService.list(new LambdaQueryWrapper<RolePermission>().eq(RolePermission::getRoleId, getHostId())); @@ -119,7 +190,7 @@ */ @RequestMapping("/pda/decrees/check") @ManagerAuth public R pdaDecreesCheck(@RequestParam String decrees){ public R pdaDecreesCheck(@RequestParam String decrees) { if (Cools.isEmpty(decrees)) { return R.error("制令不能为空"); } @@ -129,7 +200,7 @@ //查询是否有正在工作的工作档 List<WrkDetl> wrkDetls = wrkDetlService.list(new LambdaQueryWrapper<WrkDetl>().eq(WrkDetl::getBatch, decrees)); HashMap<String, Object> map = new HashMap<>(); if(list.isEmpty() && wrkDetls.isEmpty()){ if (list.isEmpty() && wrkDetls.isEmpty()) { map.put("status", 1);//可正常入库 } else if (!wrkDetls.isEmpty()) { map.put("status", 3);//存在工作档,拒绝入库 @@ -155,7 +226,7 @@ */ @RequestMapping("/order/search/orderNo/auth") @ManagerAuth public R orderSearchByBarcode(@RequestParam String orderNo){ public R orderSearchByBarcode(@RequestParam String orderNo) { Order order = orderService.selectByNo(orderNo, getHostId()); if (order == null) { return R.ok(); @@ -176,7 +247,7 @@ @RequestMapping("/comb/auth") @ManagerAuth(memo = "组托") public R comb(@RequestBody CombParam combParam){ public R comb(@RequestBody CombParam combParam) { mobileService.comb(combParam, getUserId(), getHostId()); return R.ok("组托成功"); } @@ -186,7 +257,7 @@ @Deprecated public R pakoutQuery(@RequestParam(required = false) String barcode, @RequestParam(required = false) Integer staNo, @RequestParam(required = false) String matnr){ @RequestParam(required = false) String matnr) { if (Cools.isEmpty(barcode) && Cools.isEmpty(matnr)) { return R.ok(); } @@ -211,7 +282,7 @@ */ @RequestMapping("/pakout/confirm/barcode/auth") @ManagerAuth public R pakoutQueryByBarcode(@RequestParam(required = false) String barcode){ public R pakoutQueryByBarcode(@RequestParam(required = false) String barcode) { if (Cools.isEmpty(barcode)) { return R.ok(); } @@ -232,7 +303,7 @@ @RequestMapping("/pakout/confirm/pick/auth") @ManagerAuth public R pakoutQueryByBarcode(@RequestParam(required = false) Integer wrkNo , @RequestParam(required = false) String matnr){ , @RequestParam(required = false) String matnr) { if (Cools.isEmpty(wrkNo)) { return R.ok(); } @@ -368,14 +439,14 @@ @RequestMapping("/adjust/auth") @ManagerAuth(memo = "盘点") public R adjust(@RequestBody MobileAdjustParam combParam){ public R adjust(@RequestBody MobileAdjustParam combParam) { mobileService.adjust(combParam, getUserId(), getHostId()); return R.ok("盘点成功"); } @RequestMapping("/loc/f/list") @ManagerAuth(memo = "获取在库库位") public R locNoF(@RequestParam(required = false) String locNo){ public R locNoF(@RequestParam(required = false) String locNo) { LambdaQueryWrapper<LocMast> wrapper = new LambdaQueryWrapper<LocMast>() .eq(LocMast::getLocSts, "F") .eq(LocMast::getHostId, getHostId()); @@ -388,7 +459,7 @@ @RequestMapping("/pick/sta/list") @ManagerAuth(memo = "获取并板站") public R pickSta(){ public R pickSta() { List<StaDesc> list = staDescService.list(new LambdaQueryWrapper<StaDesc>() .eq(StaDesc::getTypeNo, 104) .eq(StaDesc::getHostId, getHostId())); @@ -397,7 +468,7 @@ @RequestMapping("/pick/mat/list") @ManagerAuth(memo = "获取并板物料") public R pickMats(@RequestParam(required = false) String matnr){ public R pickMats(@RequestParam(required = false) String matnr, @RequestParam(required = false) String orderNo) { List<DocType> docTypes = docTypeService.list(new LambdaQueryWrapper<DocType>().like(DocType::getPakin, 1)); ArrayList<Long> typeList = new ArrayList<>(); for (DocType docType : docTypes) { @@ -420,10 +491,13 @@ wrapper1.eq(OrderDetl::getStatus, 1); wrapper1.eq(OrderDetl::getHostId, getHostId()); wrapper1.in(OrderDetl::getOrderId, orderIds); wrapper1.orderByDesc(OrderDetl::getCreateTime); if (!Cools.isEmpty(matnr)) { wrapper1.like(OrderDetl::getMatnr, matnr); } if (!Cools.isEmpty(orderNo)) { wrapper1.like(OrderDetl::getOrderNo, orderNo); } List<OrderDetl> list = orderDetlService.list(wrapper1); ArrayList<PickMatParam> maps = new ArrayList<>(); @@ -449,7 +523,7 @@ @RequestMapping("/pick/in") @ManagerAuth(memo = "并板入库") @Transactional public R pickConfirm(@RequestBody PickConfirmParam param){ public R pickConfirm(@RequestBody PickConfirmParam param) { LocMast locMast = locMastService.getOne(new LambdaQueryWrapper<LocMast>() .eq(LocMast::getLocNo, param.getLocNo()) .eq(LocMast::getHostId, getHostId())); @@ -570,20 +644,30 @@ @Transactional public R orderOutListOrder(@RequestBody String barcode) { ArrayList<WrkMast> wrkMastArrayList = new ArrayList<>(); if (Cools.isEmpty(barcode) || barcode.isEmpty()){ if (Cools.isEmpty(barcode) || barcode.isEmpty()) { List<WrkMast> wrkMasts = wrkMastService.list(new LambdaQueryWrapper<WrkMast>() .eq(WrkMast::getHostId, getHostId()) .eq(WrkMast::getWrkSts, 199L) .eq(WrkMast::getIoType, 104)); wrkMastArrayList.addAll(wrkMasts); List<WrkMast> wrkMasts1 = wrkMastService.list(new LambdaQueryWrapper<WrkMast>() .eq(WrkMast::getHostId, getHostId()) .eq(WrkMast::getWrkSts, 199L) .eq(WrkMast::getIoType, 107)); wrkMastArrayList.addAll(wrkMasts1); } else { List<WrkMast> wrkMasts = wrkMastService.list(new LambdaQueryWrapper<WrkMast>() .like(WrkMast::getBarcode, barcode) .eq(WrkMast::getHostId, getHostId()) .eq(WrkMast::getWrkSts, 199L) .eq(WrkMast::getIoType, 104) ); .eq(WrkMast::getIoType, 104)); wrkMastArrayList.addAll(wrkMasts); List<WrkMast> wrkMasts1 = wrkMastService.list(new LambdaQueryWrapper<WrkMast>() .like(WrkMast::getBarcode, barcode) .eq(WrkMast::getHostId, getHostId()) .eq(WrkMast::getWrkSts, 199L) .eq(WrkMast::getIoType, 107)); wrkMastArrayList.addAll(wrkMasts1); } return R.ok().add(wrkMastArrayList); @@ -594,12 +678,17 @@ @Transactional public R orderOutListOrderPick(@RequestBody String barcode) { ArrayList<WrkMast> wrkMastArrayList = new ArrayList<>(); if (Cools.isEmpty(barcode) || barcode.isEmpty()){ if (Cools.isEmpty(barcode) || barcode.isEmpty()) { List<WrkMast> wrkMasts = wrkMastService.list(new LambdaQueryWrapper<WrkMast>() .eq(WrkMast::getHostId, getHostId()) .eq(WrkMast::getWrkSts, 199L) .eq(WrkMast::getIoType, 103)); wrkMastArrayList.addAll(wrkMasts); List<WrkMast> wrkMasts1 = wrkMastService.list(new LambdaQueryWrapper<WrkMast>() .eq(WrkMast::getHostId, getHostId()) .eq(WrkMast::getWrkSts, 199L) .eq(WrkMast::getIoType, 107)); wrkMastArrayList.addAll(wrkMasts1); } else { List<WrkMast> wrkMasts = wrkMastService.list(new LambdaQueryWrapper<WrkMast>() .like(WrkMast::getBarcode, barcode) @@ -608,6 +697,12 @@ .eq(WrkMast::getIoType, 103) ); wrkMastArrayList.addAll(wrkMasts); List<WrkMast> wrkMasts1 = wrkMastService.list(new LambdaQueryWrapper<WrkMast>() .like(WrkMast::getBarcode, barcode) .eq(WrkMast::getHostId, getHostId()) .eq(WrkMast::getWrkSts, 199L) .eq(WrkMast::getIoType, 107)); wrkMastArrayList.addAll(wrkMasts1); } return R.ok().add(wrkMastArrayList); zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OrderController.java
@@ -10,6 +10,7 @@ import com.zy.asrs.common.domain.dto.WrkTraceVo; import com.zy.asrs.common.domain.param.OrderDomainParam; import com.zy.asrs.common.wms.entity.*; import com.zy.asrs.common.wms.mapper.OrderDetlMapper; import com.zy.asrs.common.wms.service.*; import com.zy.asrs.framework.annotations.ManagerAuth; import com.zy.asrs.framework.common.Cools; @@ -53,6 +54,8 @@ private SnowflakeIdWorker snowflakeIdWorker; @Autowired private DocTypeService docTypeService; @Autowired private LocInPrintMatService locInPrintMatService; @RequestMapping(value = "/order/list/orderNo") public R orderListorderNo(@RequestParam String orderNo) { @@ -199,6 +202,27 @@ return R.ok(); } @RequestMapping(value = "/order/dy") @ManagerAuth(memo = "手动删除订单") @Transactional public R dy(@RequestParam Long orderId){ List<OrderDetl> list = orderDetlService.list(new LambdaQueryWrapper<OrderDetl>().eq(OrderDetl::getOrderId, orderId)); for (OrderDetl orderDetl : list) { LocInPrintMat locInPrintMat = new LocInPrintMat(); locInPrintMat.setMatnr(orderDetl.getMatnr()); locInPrintMat.setMaktx(orderDetl.getMaktx()); locInPrintMat.setStatus(1); locInPrintMat.setOrderNo(orderDetl.getOrderNo()); locInPrintMat.setBatch(orderDetl.getBatch()); locInPrintMat.setCreateBy(getUserId()); locInPrintMat.setCreateTime(new Date()); locInPrintMat.setUpdateTime(new Date()); // locInPrintMat.setDercees(orderDetl.getDercees); locInPrintMatService.save(locInPrintMat); } return R.ok(); } @RequestMapping(value = "/orderQuery/auth") @ManagerAuth public R query(String condition) { zy-asrs-wms/src/main/java/com/zy/asrs/wms/task/WorkMastScheduler.java
@@ -1,7 +1,13 @@ package com.zy.asrs.wms.task; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.zy.asrs.common.wms.entity.LocDetl; import com.zy.asrs.common.wms.entity.LocMast; import com.zy.asrs.common.wms.entity.WrkMast; import com.zy.asrs.common.wms.service.LocDetlService; import com.zy.asrs.common.wms.service.LocMastService; import com.zy.asrs.common.wms.service.WrkMastService; import com.zy.asrs.framework.common.Cools; import com.zy.asrs.wms.task.core.ReturnT; import com.zy.asrs.wms.task.handler.WorkMastHandler; import org.slf4j.Logger; @@ -25,9 +31,24 @@ private WrkMastService wrkMastService; @Autowired private WorkMastHandler workMastHandler; @Autowired private LocMastService locMastService; @Autowired private LocDetlService locDetlService; @Scheduled(cron = "0/3 * * * * ? ") private void execute(){ List<LocDetl> locDetls = locDetlService.list(new LambdaQueryWrapper<LocDetl>()); for (LocDetl l:locDetls ) { if(Cools.isEmpty(l.getZpallet())){ LocMast locMast=locMastService.getOne(new LambdaQueryWrapper<LocMast>().eq(LocMast::getLocNo,l.getLocNo())); if(!Cools.isEmpty(locMast)&&!Cools.isEmpty(locMast.getBarcode())){ l.setZpallet(locMast.getBarcode()); locDetlService.updateById(l); } } } List<WrkMast> wrkMasts = wrkMastService.selectToBeCompleteData(); if (wrkMasts.isEmpty()) { return; zy-asrs-wms/src/main/webapp/static/js/adjDetl/adjDetl.js
@@ -22,9 +22,9 @@ // ,{field: 'id', title: 'ID', sort: true,align: 'center', fixed: 'left', width: 80} // {field: 'adjId', align: 'center',title: '序号'} {field: 'locNo', align: 'center',title: '库位号'} ,{field: 'orderNo', align: 'center',title: '订单号'} ,{field: 'matnr', align: 'center',title: '商品编号'} ,{field: 'batch', align: 'center',title: '序列码'} // ,{field: 'oriCtns', align: 'center',title: '原箱数'} ,{field: 'oriQty', align: 'center',title: '原数量'} // ,{field: 'oriWt', align: 'center',title: '原重量'} // ,{field: 'adjCtns', align: 'center',title: '变更箱数'} zy-asrs-wms/src/main/webapp/static/js/locInPrintMat/locInPrintMat.js
@@ -29,6 +29,8 @@ ,{field: 'uuid', align: 'center',title: '编号',hide: true} ,{field: 'status$', align: 'center',title: '打印情况', width:100,hide: false} ,{field: 'matnr', align: 'center',title: '品号', width:180,hide: false} ,{field: 'orderNo', align: 'center',title: '订单号', width:180,hide: false} ,{field: 'decrees', align: 'center',title: '制令', width:180,hide: false} // ,{field: 'batch', align: 'center',title: '批次', width:100,hide: false} // ,{field: 'anfme', align: 'center',title: '重量(kg)', width:100,hide: false} // ,{field: 'locNo', align: 'center',title: '库位号', width:120,hide: false} zy-asrs-wms/src/main/webapp/static/js/order/order.js
@@ -104,6 +104,8 @@ showWrkTrace(data.id); } else if (layEvent === 'del') { doDel(data.id); } else if (layEvent === 'dy') { doDy(data.id); } else if (layEvent === 'complete') { doModify(data.id, 4); } else if (layEvent === 'cancel') { @@ -503,6 +505,40 @@ }); } // 打印 function doDy(orderId) { layer.confirm('确定要打印吗?', { shade: .1, skin: 'layui-layer-admin' }, function (i) { layer.close(i); layer.load(2); $.ajax({ url: baseUrl+"/order/dy", headers: {'token': localStorage.getItem('token')}, data: { orderId: orderId }, method: 'POST', success: function (res) { layer.closeAll('loading'); if (res.code === 200){ if (insTbCount === 0) { insTb.reload({page: {curr: 1}}); } else { $(".layui-laypage-btn")[0].click(); } layer.msg(res.msg, {icon: 1}); } else if (res.code === 403){ top.location.href = baseUrl+"/"; }else { layer.msg(res.msg, {icon: 2}); } } }) }); } // 修改订单状态 function doModify(orderId, settle) { zy-asrs-wms/src/main/webapp/static/js/pakStore/stockAdjust.js
@@ -158,8 +158,8 @@ }) } function initB(barcode) { http.post(baseUrl + "/locDetl/page/auth", {barcode: barcode,limit: 1000}, function (res) { function initB(zpallet) { http.post(baseUrl + "/locDetl/page/auth", {zpallet: zpallet,limit: 1000}, function (res) { matCodeData = []; matCodeData = res.data.records; console.log("matCodeData2222") zy-asrs-wms/src/main/webapp/views/order/order.html
@@ -111,7 +111,7 @@ {{# } }} {{# } }} <a class="layui-btn layui-btn-danger layui-btn-xs btn-delete" lay-event="del">删除</a> <a class="layui-btn layui-btn-danger layui-btn-xs btn-delete" lay-event="dy">打印</a> </script> <!-- 表格操作列 --> <script type="text/html" id="tbLook">