src/main/java/com/zy/asrs/controller/MobileController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/controller/OpenController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/controller/OutController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/entity/param/OpenOrderPakoutParam.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/common/model/DetlDto.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/common/model/TaskDto.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/controller/MobileController.java
@@ -425,11 +425,11 @@ @RequestMapping("/bill/query1/auth") @ManagerAuth(memo = "根据通知单查询明细") public R billQuery1(@RequestParam String billNo, @RequestParam String size) { Order temp1 = orderService.selectOne(new EntityWrapper<Order>().eq("temp2", billNo)); Order temp1 = orderService.selectOne(new EntityWrapper<Order>().eq("temp1", billNo)); if (temp1 == null) { throw new CoolException("该订单不存在"); } List<OrderDetl> waitMatins = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_no", temp1.getOrderNo()).like("model", size).last("and anfme > work_qty")); List<OrderDetl> waitMatins = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_no", temp1.getOrderNo()).last("and anfme > work_qty")); if (waitMatins == null || waitMatins.isEmpty()) { throw new CoolException("该订单项不存在"); } src/main/java/com/zy/asrs/controller/OpenController.java
@@ -83,7 +83,7 @@ if (Cools.isEmpty(param.getOrderDetails())) { return R.error("单据明细[orderDetails]不能为空"); } openService.pakinOrderCreate(param); //openService.pakinOrderCreate(param); return R.ok(); } @@ -165,43 +165,43 @@ } } public static void main(String[] args) { // 1 System.out.println("======================================"); OpenOrderPakinParam param = new OpenOrderPakinParam(); param.setOrderNo(String.valueOf(new SnowflakeIdWorker().nextId())); param.setOrderType("打包上线单"); param.setOrderTime(DateUtils.convert(new Date())); List<DetlDto> orderDetails = new ArrayList<>(); param.setOrderDetails(orderDetails); for (int i = 0; i < 3; i++) { DetlDto detlDto = new DetlDto(); switch (i) { case 0: detlDto.setMatnr("MDH020030530"); detlDto.setBatch("500"); detlDto.setAnfme(18.0); break; case 1: detlDto.setMatnr("MDH020016416"); detlDto.setBatch("500"); detlDto.setAnfme(32.0); break; case 2: detlDto.setMatnr("LSH90152025"); detlDto.setAnfme(50.0); break; default: break; } orderDetails.add(detlDto); } System.out.println(JSON.toJSONString(param)); // 2 System.out.println("======================================"); OpenOrderCompleteParam param1 = new OpenOrderCompleteParam(); param1.setOrderNo("963001846497017856"); System.out.println(JSON.toJSONString(param1)); } // public static void main(String[] args) { // // 1 // System.out.println("======================================"); // OpenOrderPakinParam param = new OpenOrderPakinParam(); // param.setOrderNo(String.valueOf(new SnowflakeIdWorker().nextId())); // param.setOrderType("打包上线单"); // param.setOrderTime(DateUtils.convert(new Date())); // List<DetlDto> orderDetails = new ArrayList<>(); // param.setOrderDetails(orderDetails); // for (int i = 0; i < 3; i++) { // DetlDto detlDto = new DetlDto(locDto); // switch (i) { // case 0: // detlDto.setMatnr("MDH020030530"); // detlDto.setBatch("500"); // detlDto.setAnfme(18.0); // break; // case 1: // detlDto.setMatnr("MDH020016416"); // detlDto.setBatch("500"); // detlDto.setAnfme(32.0); // break; // case 2: // detlDto.setMatnr("LSH90152025"); // detlDto.setAnfme(50.0); // break; // default: // break; // } // orderDetails.add(detlDto); // } // System.out.println(JSON.toJSONString(param)); // // 2 // System.out.println("======================================"); // OpenOrderCompleteParam param1 = new OpenOrderCompleteParam(); // param1.setOrderNo("963001846497017856"); // System.out.println(JSON.toJSONString(param1)); // } } src/main/java/com/zy/asrs/controller/OutController.java
@@ -78,10 +78,10 @@ } List<OrderDetl> orderDetls = orderDetlService.selectBatchIds(ids); List<LocDto> locDtos = new ArrayList<>(); orderDetls = orderDetls.stream() .sorted(Comparator.comparing(OrderDetl::getMatnr).thenComparing(OrderDetl::getBatch)) .collect(Collectors.toList()); Set<String> exist = new HashSet<>(); // orderDetls = orderDetls.stream() // .sorted(Comparator.comparing(OrderDetl::getMatnr).thenComparing(OrderDetl::getBatch)) // .collect(Collectors.toList()); // Set<String> exist = new HashSet<>(); for (OrderDetl orderDetl : orderDetls) { double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getWorkQty()).orElse(0.0D); @@ -104,7 +104,7 @@ locDto.setProType(locDetl.getProType()); locDto.setSPgNO(locDetl.getSPgNO()); locDtos.add(locDto); exist.add(locDetl.getLocNo()); //exist.add(locDetl.getLocNo()); // 剩余待出数量递减 issued = issued - locDetl.getAnfme(); } else { src/main/java/com/zy/asrs/entity/param/OpenOrderPakoutParam.java
@@ -25,16 +25,16 @@ private String lgort; public static void main(String[] args) { OpenOrderPakoutParam param = new OpenOrderPakoutParam(); param.setOrderNo("LXT12321321"); param.setOrderType("交货单"); param.setOrderTime(DateUtils.convert(new Date())); List<DetlDto> orderDetails = new ArrayList<>(); param.setOrderDetails(orderDetails); DetlDto detlDto = new DetlDto("15099-10000", 3.0); orderDetails.add(detlDto); System.out.println(JSON.toJSONString(param)); } // public static void main(String[] args) { // OpenOrderPakoutParam param = new OpenOrderPakoutParam(); // param.setOrderNo("LXT12321321"); // param.setOrderType("交货单"); // param.setOrderTime(DateUtils.convert(new Date())); // List<DetlDto> orderDetails = new ArrayList<>(); // param.setOrderDetails(orderDetails); // DetlDto detlDto = new DetlDto("15099-10000", 3.0); // orderDetails.add(detlDto); // System.out.println(JSON.toJSONString(param)); // } } src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -1,26 +1,20 @@ package com.zy.asrs.service.impl; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.Wrapper; import com.core.common.*; import com.core.common.BaseRes; import com.core.common.Cools; import com.core.common.SnowflakeIdWorker; 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.mapper.ManLocDetlMapper; import com.zy.asrs.service.*; import com.zy.asrs.utils.MatUtils; import com.zy.common.CodeRes; import com.zy.common.constant.MesConstant; import com.zy.common.entity.Parameter; import com.zy.common.model.DetlDto; import com.zy.common.model.MesCombParam; import com.zy.common.service.CommonService; import com.zy.common.utils.HttpHandler; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -111,108 +105,94 @@ Date now = new Date(); // 无单组托 if (Cools.isEmpty(param.getOrderNo())) { // 生成入库通知档 List<DetlDto> detlDtos = new ArrayList<>(); param.getCombMats().forEach(elem -> { DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme()); if (DetlDto.has(detlDtos, detlDto)) { DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch()); assert one != null; one.setAnfme(one.getAnfme() + detlDto.getAnfme()); } else { detlDtos.add(detlDto); } }); for (DetlDto detlDto : detlDtos) { Mat mat = matService.selectByMatnr(detlDto.getMatnr()); if (Cools.isEmpty(mat)) { throw new CoolException(detlDto.getMatnr() + "商品档案不存在"); } WaitPakin waitPakin = new WaitPakin(); waitPakin.sync(mat); waitPakin.setBatch(detlDto.getBatch()); waitPakin.setZpallet(param.getBarcode()); // 托盘码 waitPakin.setIoStatus("N"); // 入出状态 waitPakin.setAnfme(detlDto.getAnfme()); // 数量 waitPakin.setStatus("Y"); // 状态 waitPakin.setAppeUser(userId); waitPakin.setAppeTime(now); waitPakin.setModiUser(userId); waitPakin.setModiTime(now); if (!waitPakinService.insert(waitPakin)) { throw new CoolException("保存入库通知档失败"); } } // 关联组托 } else { Order order = orderService.selectOne(new EntityWrapper<Order>().eq("temp1", param.getOrderNo())); if (Cools.isEmpty(order) || order.getSettle() > 2) { throw new CoolException("单据编号已过期"); } // 生成入库通知档 List<DetlDto> detlDtos = new ArrayList<>(); param.getCombMats().forEach(elem -> { // 订单明细数量校验 //OrderDetl orderDetl = orderDetlService.selectItem(order.getId(), elem.getMatnr(), elem.getBatch(),elem.getAnfme() ); OrderDetl orderDetl = orderDetlService.selectById(elem.getDetlId()); if (elem.getAnfme() > orderDetl.getEnableQty()) { throw new CoolException(orderDetl.getMatnr() + "入库数量不合法"); } // 修改订单作业数量 if (!orderDetlService.increaseWorkQty(orderDetl, elem.getAnfme())) { throw new CoolException("修改单据作业数量失败"); } DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme()); if (DetlDto.has(detlDtos, detlDto)) { DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch()); assert one != null; one.setAnfme(one.getAnfme() + detlDto.getAnfme()); } else { detlDtos.add(detlDto); } }); for (DetlDto detlDto : detlDtos) { Mat mat = matService.selectByMatnr(detlDto.getMatnr()); if (Cools.isEmpty(mat)) { throw new CoolException(detlDto.getMatnr() + "商品档案不存在"); } WaitPakin waitPakin = new WaitPakin(); waitPakin.sync(mat); waitPakin.setOrderNo(order.getOrderNo()); // 单据编号 waitPakin.setBatch(detlDto.getBatch()); // 序列码 waitPakin.setZpallet(param.getBarcode()); // 托盘码 waitPakin.setIoStatus("N"); // 入出状态 waitPakin.setAnfme(detlDto.getAnfme()); // 数量 waitPakin.setStatus("Y"); // 状态 waitPakin.setAppeUser(userId); waitPakin.setAppeTime(now); waitPakin.setModiUser(userId); waitPakin.setModiTime(now); OrderDetl orderDetl = orderDetlService.selectItem(waitPakin); // if (orderDetl == null) { // orderDetl = orderDetlService.selectItem(order.getOrderNo(), waitPakin.getMatnr(), null,detlDto.getAnfme()); // if (Cools.isEmpty(param.getOrderNo())) { // // // 生成入库通知档 // List<DetlDto> detlDtos = new ArrayList<>(); // param.getCombMats().forEach(elem -> { // DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme()); // if (DetlDto.has(detlDtos, detlDto)) { // DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch()); // assert one != null; // one.setAnfme(one.getAnfme() + detlDto.getAnfme()); // } else { // detlDtos.add(detlDto); // } if (orderDetl!=null){ waitPakin.setBatch(orderDetl.getBatch()); waitPakin.setSPgNO(orderDetl.getSPgNO()); waitPakin.setOutOrderNo(orderDetl.getOutOrderNo()); waitPakin.setProType(orderDetl.getProType()); waitPakin.setLuHao(orderDetl.getLuHao()); waitPakin.setPacking(orderDetl.getPacking()); } if (!waitPakinService.insert(waitPakin)) { throw new CoolException("保存入库通知档失败"); } } orderService.updateSettle(order.getId(), 2L, userId); // }); // // // for (DetlDto detlDto : detlDtos) { // Mat mat = matService.selectByMatnr(detlDto.getMatnr()); // if (Cools.isEmpty(mat)) { // throw new CoolException(detlDto.getMatnr() + "商品档案不存在"); // } // WaitPakin waitPakin = new WaitPakin(); // waitPakin.sync(mat); // waitPakin.setBatch(detlDto.getBatch()); // waitPakin.setZpallet(param.getBarcode()); // 托盘码 // waitPakin.setIoStatus("N"); // 入出状态 // waitPakin.setAnfme(detlDto.getAnfme()); // 数量 // waitPakin.setStatus("Y"); // 状态 // waitPakin.setAppeUser(userId); // waitPakin.setAppeTime(now); // waitPakin.setModiUser(userId); // waitPakin.setModiTime(now); // if (!waitPakinService.insert(waitPakin)) { // throw new CoolException("保存入库通知档失败"); // } // } // // 关联组托 // } else { Order order = orderService.selectOne(new EntityWrapper<Order>().eq("temp1", param.getOrderNo())); if (Cools.isEmpty(order) || order.getSettle() > 2) { throw new CoolException("单据编号已过期"); } // 生成入库通知档 List<DetlDto> detlDtos = new ArrayList<>(); param.getCombMats().forEach(elem -> { // 订单明细数量校验 //OrderDetl orderDetl = orderDetlService.selectItem(order.getId(), elem.getMatnr(), elem.getBatch(),elem.getAnfme() ); OrderDetl orderDetl = orderDetlService.selectById(elem.getDetlId()); if (elem.getAnfme() > orderDetl.getEnableQty()) { throw new CoolException(orderDetl.getMatnr() + "入库数量不合法"); } // 修改订单作业数量 if (!orderDetlService.increaseWorkQty(orderDetl, elem.getAnfme())) { throw new CoolException("修改单据作业数量失败"); } Mat mat = matService.selectByMatnr(orderDetl.getMatnr()); if (Cools.isEmpty(mat)) { throw new CoolException(orderDetl.getMatnr() + "商品档案不存在"); } WaitPakin waitPakin = new WaitPakin(); waitPakin.sync(mat); waitPakin.setOrderNo(order.getOrderNo()); // 单据编号 waitPakin.setBatch(orderDetl.getBatch()); // 序列码 waitPakin.setZpallet(param.getBarcode()); // 托盘码 waitPakin.setIoStatus("N"); // 入出状态 waitPakin.setAnfme(orderDetl.getAnfme()); // 数量 waitPakin.setStatus("Y"); // 状态 waitPakin.setAppeUser(userId); waitPakin.setAppeTime(now); waitPakin.setModiUser(userId); waitPakin.setModiTime(now); waitPakin.setBatch(orderDetl.getBatch()); waitPakin.setSPgNO(orderDetl.getSPgNO()); waitPakin.setOutOrderNo(orderDetl.getOutOrderNo()); waitPakin.setProType(orderDetl.getProType()); waitPakin.setLuHao(orderDetl.getLuHao()); waitPakin.setPacking(orderDetl.getPacking()); if (!waitPakinService.insert(waitPakin)) { throw new CoolException("保存入库通知档失败"); } }); orderService.updateSettle(order.getId(), 2L, userId); // } } @@ -520,7 +500,7 @@ BasDevp sta = basDevpService.checkSiteStatus(staNo); //根据订单号生成出库任务工作档 List<OrderDetl> pg_no = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("pg_no",orderNo)); List<OrderDetl> pg_no = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("pg_no", orderNo)); Order order = orderService.selectOne(new EntityWrapper<Order>().eq("order_no", pg_no.get(0).getOrderNo())); if (order.getSettle() != 1 && order.getSettle() != 2) { throw new CoolException("该订单已处理"); src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -52,266 +52,268 @@ @Override @Transactional public void pakinOrderCreate(OpenOrderPakinParam param) { Order order = orderService.selectByNo(param.getOrderNo()); if (!Cools.isEmpty(order)) { throw new CoolException(param.getOrderNo() + "单据已存在,请勿重复提交"); } DocType docType = docTypeService.selectOrAdd(param.getOrderType(), Boolean.TRUE); Date now = new Date(); // 单据主档 order = new Order( String.valueOf(snowflakeIdWorker.nextId()), // 编号[非空] param.getOrderNo(), // 订单编号 DateUtils.convert(now), // 单据日期 docType.getDocId(), // 单据类型 null, // 项目编号 null, // null, // 调拨项目编号 null, // 初始票据号 null, // 票据号 null, // 客户编号 null, // 客户 null, // 联系方式 null, // 操作人员 null, // 合计金额 null, // 优惠率 null, // 优惠金额 null, // 销售或采购费用合计 null, // 实付金额 null, // 付款类型 null, // 业务员 null, // 结算天数 null, // 邮费支付类型 null, // 邮费 null, // 付款时间 null, // 发货时间 null, // 物流名称 null, // 物流单号 1L, // 订单状态 1, // 状态 9527L, // 添加人员 now, // 添加时间 9527L, // 修改人员 now, // 修改时间 null // 备注 ); if (!orderService.insert(order)) { throw new CoolException("生成单据主档失败,请联系管理员"); } // 单据明细档 List<DetlDto> list = new ArrayList<>(); List<DetlDto> orderDetails = param.getOrderDetails(); for (DetlDto detail : orderDetails) { DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(), detail.getAnfme()); if (DetlDto.has(list, dto)) { DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch()); assert detlDto != null; detlDto.setAnfme(detlDto.getAnfme() + detail.getAnfme()); } else { list.add(dto); } } for (DetlDto detlDto : list) { Mat mat = matService.selectByMatnr(detlDto.getMatnr()); if (Cools.isEmpty(mat)) { throw new CoolException(detlDto.getMatnr() + "编号商品检索失败,请先添加商品"); } OrderDetl orderDetl = new OrderDetl(); orderDetl.sync(mat); orderDetl.setBatch(detlDto.getBatch()); orderDetl.setAnfme(detlDto.getAnfme()); orderDetl.setOrderId(order.getId()); orderDetl.setOrderNo(order.getOrderNo()); orderDetl.setCreateBy(9527L); orderDetl.setCreateTime(now); orderDetl.setUpdateBy(9527L); orderDetl.setUpdateTime(now); orderDetl.setStatus(1); orderDetl.setQty(0.0D); if (!orderDetlService.insert(orderDetl)) { throw new CoolException("生成单据明细失败,请联系管理员"); } } // Order order = orderService.selectByNo(param.getOrderNo()); // if (!Cools.isEmpty(order)) { // throw new CoolException(param.getOrderNo() + "单据已存在,请勿重复提交"); // } // DocType docType = docTypeService.selectOrAdd(param.getOrderType(), Boolean.TRUE); // Date now = new Date(); // // 单据主档 // order = new Order( // String.valueOf(snowflakeIdWorker.nextId()), // 编号[非空] // param.getOrderNo(), // 订单编号 // DateUtils.convert(now), // 单据日期 // docType.getDocId(), // 单据类型 // null, // 项目编号 // null, // // null, // 调拨项目编号 // null, // 初始票据号 // null, // 票据号 // null, // 客户编号 // null, // 客户 // null, // 联系方式 // null, // 操作人员 // null, // 合计金额 // null, // 优惠率 // null, // 优惠金额 // null, // 销售或采购费用合计 // null, // 实付金额 // null, // 付款类型 // null, // 业务员 // null, // 结算天数 // null, // 邮费支付类型 // null, // 邮费 // null, // 付款时间 // null, // 发货时间 // null, // 物流名称 // null, // 物流单号 // 1L, // 订单状态 // 1, // 状态 // 9527L, // 添加人员 // now, // 添加时间 // 9527L, // 修改人员 // now, // 修改时间 // null // 备注 // ); // if (!orderService.insert(order)) { // throw new CoolException("生成单据主档失败,请联系管理员"); // } // // 单据明细档 // List<DetlDto> list = new ArrayList<>(); // List<DetlDto> orderDetails = param.getOrderDetails(); // for (DetlDto detail : orderDetails) { // DetlDto dto = new DetlDto(detail); // if (DetlDto.has(list, dto)) { // DetlDto detlDto = DetlDto.find(list, dto); // assert detlDto != null; // detlDto.setAnfme(detlDto.getAnfme() + detail.getAnfme()); // } else { // list.add(dto); // } // } // for (DetlDto detlDto : list) { // Mat mat = matService.selectByMatnr(detlDto.getMatnr()); // if (Cools.isEmpty(mat)) { // throw new CoolException(detlDto.getMatnr() + "编号商品检索失败,请先添加商品"); // } // OrderDetl orderDetl = new OrderDetl(); // orderDetl.sync(mat); // orderDetl.setBatch(detlDto.getBatch()); // orderDetl.setAnfme(detlDto.getAnfme()); // orderDetl.setOrderId(order.getId()); // orderDetl.setOrderNo(order.getOrderNo()); // orderDetl.setCreateBy(9527L); // orderDetl.setCreateTime(now); // orderDetl.setUpdateBy(9527L); // orderDetl.setUpdateTime(now); // orderDetl.setStatus(1); // orderDetl.setQty(0.0D); // if (!orderDetlService.insert(orderDetl)) { // throw new CoolException("生成单据明细失败,请联系管理员"); // } // } } @Override @Transactional public List<OpenOrderCompeteResult> pakinOrderComplete(OpenOrderCompleteParam param) { List<OpenOrderCompeteResult> results = new ArrayList<>(); if (!Cools.isEmpty(param) && !Cools.isEmpty(param.getOrderNo())) { // 指定订单 Order order = orderService.selectByNo(param.getOrderNo()); if (null != order) { OpenOrderCompeteResult result = new OpenOrderCompeteResult(); results.add(result); result.setOrderNo(order.getOrderNo()); result.setOrderTime(order.getOrderTime()); result.setOrderType(order.getDocType$()); List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId()); for (OrderDetl orderDetl : orderDetls) { result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty())); } if (order.getSettle() == 4L) { // 修改订单状态 4.完成 ===>> 6.已上报 if (!orderService.updateSettle(order.getId(), 6L, null)) { throw new CoolException("服务器内部错误,请联系管理员"); } } } } else { // 所有订单 List<Order> orders = orderService.selectList(new EntityWrapper<Order>().eq("settle", 4L)); for (Order order : orders) { OpenOrderCompeteResult result = new OpenOrderCompeteResult(); results.add(result); result.setOrderNo(order.getOrderNo()); result.setOrderTime(order.getOrderTime()); result.setOrderType(order.getDocType$()); List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId()); for (OrderDetl orderDetl : orderDetls) { result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty())); } // 修改订单状态 4.完成 ===>> 6.已上报 if (!orderService.updateSettle(order.getId(), 6L, null)) { throw new CoolException("服务器内部错误,请联系管理员"); } } } return results; // List<OpenOrderCompeteResult> results = new ArrayList<>(); // if (!Cools.isEmpty(param) && !Cools.isEmpty(param.getOrderNo())) { // // 指定订单 // Order order = orderService.selectByNo(param.getOrderNo()); // if (null != order) { // OpenOrderCompeteResult result = new OpenOrderCompeteResult(); // results.add(result); // result.setOrderNo(order.getOrderNo()); // result.setOrderTime(order.getOrderTime()); // result.setOrderType(order.getDocType$()); // List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId()); // for (OrderDetl orderDetl : orderDetls) { // result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty())); // } // if (order.getSettle() == 4L) { // // 修改订单状态 4.完成 ===>> 6.已上报 // if (!orderService.updateSettle(order.getId(), 6L, null)) { // throw new CoolException("服务器内部错误,请联系管理员"); // } // } // } // } else { // // 所有订单 // List<Order> orders = orderService.selectList(new EntityWrapper<Order>().eq("settle", 4L)); // for (Order order : orders) { // OpenOrderCompeteResult result = new OpenOrderCompeteResult(); // results.add(result); // result.setOrderNo(order.getOrderNo()); // result.setOrderTime(order.getOrderTime()); // result.setOrderType(order.getDocType$()); // List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId()); // for (OrderDetl orderDetl : orderDetls) { // result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty())); // } // // 修改订单状态 4.完成 ===>> 6.已上报 // if (!orderService.updateSettle(order.getId(), 6L, null)) { // throw new CoolException("服务器内部错误,请联系管理员"); // } // } // } // return results; return null; } @Override @Transactional public void pakoutOrderCreate(OpenOrderPakoutParam param) { Order order = orderService.selectByNo(param.getOrderNo()); // 如果单据不存在则添加;如果单据存在,作业中无法修改,反之则修改单据 if (!Cools.isEmpty(order)) { if (order.getSettle() > 1L) { throw new CoolException(param.getOrderNo() + "正在出库,无法修改单据"); } orderService.remove(order.getId()); } DocType docType = docTypeService.selectOrAdd(param.getOrderType(), Boolean.FALSE); Date now = new Date(); // 单据主档 order = new Order( String.valueOf(snowflakeIdWorker.nextId()), // 编号[非空] param.getOrderNo(), // 订单编号 DateUtils.convert(now), // 单据日期 docType.getDocId(), // 单据类型 null, // 项目编号 null, // null, // 调拨项目编号 null, // 初始票据号 null, // 票据号 null, // 客户编号 null, // 客户 null, // 联系方式 null, // 操作人员 null, // 合计金额 null, // 优惠率 null, // 优惠金额 null, // 销售或采购费用合计 null, // 实付金额 null, // 付款类型 null, // 业务员 null, // 结算天数 null, // 邮费支付类型 null, // 邮费 null, // 付款时间 null, // 发货时间 null, // 物流名称 null, // 物流单号 1L, // 订单状态 1, // 状态 9527L, // 添加人员 now, // 添加时间 9527L, // 修改人员 now, // 修改时间 null // 备注 ); if (!orderService.insert(order)) { throw new CoolException("生成单据主档失败,请联系管理员"); } // 单据明细档 List<DetlDto> list = new ArrayList<>(); List<DetlDto> orderDetails = param.getOrderDetails(); for (DetlDto detail : orderDetails) { DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(), detail.getAnfme()); if (DetlDto.has(list, dto)) { DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch()); assert detlDto != null; detlDto.setAnfme(detlDto.getAnfme() + detail.getAnfme()); } else { list.add(dto); } } for (DetlDto detlDto : list) { Mat mat = matService.selectByMatnr(detlDto.getMatnr()); if (Cools.isEmpty(mat)) { throw new CoolException(detlDto.getMatnr() + "编号商品检索失败,请先添加商品"); } OrderDetl orderDetl = new OrderDetl(); orderDetl.sync(mat); orderDetl.setBatch(detlDto.getBatch()); orderDetl.setAnfme(detlDto.getAnfme()); orderDetl.setOrderId(order.getId()); orderDetl.setOrderNo(order.getOrderNo()); orderDetl.setCreateBy(9527L); orderDetl.setCreateTime(now); orderDetl.setUpdateBy(9527L); orderDetl.setUpdateTime(now); orderDetl.setStatus(1); orderDetl.setQty(0.0D); if (!orderDetlService.insert(orderDetl)) { throw new CoolException("生成单据明细失败,请联系管理员"); } } // Order order = orderService.selectByNo(param.getOrderNo()); // // 如果单据不存在则添加;如果单据存在,作业中无法修改,反之则修改单据 // if (!Cools.isEmpty(order)) { // if (order.getSettle() > 1L) { // throw new CoolException(param.getOrderNo() + "正在出库,无法修改单据"); // } // orderService.remove(order.getId()); // } // DocType docType = docTypeService.selectOrAdd(param.getOrderType(), Boolean.FALSE); // Date now = new Date(); // // 单据主档 // order = new Order( // String.valueOf(snowflakeIdWorker.nextId()), // 编号[非空] // param.getOrderNo(), // 订单编号 // DateUtils.convert(now), // 单据日期 // docType.getDocId(), // 单据类型 // null, // 项目编号 // null, // // null, // 调拨项目编号 // null, // 初始票据号 // null, // 票据号 // null, // 客户编号 // null, // 客户 // null, // 联系方式 // null, // 操作人员 // null, // 合计金额 // null, // 优惠率 // null, // 优惠金额 // null, // 销售或采购费用合计 // null, // 实付金额 // null, // 付款类型 // null, // 业务员 // null, // 结算天数 // null, // 邮费支付类型 // null, // 邮费 // null, // 付款时间 // null, // 发货时间 // null, // 物流名称 // null, // 物流单号 // 1L, // 订单状态 // 1, // 状态 // 9527L, // 添加人员 // now, // 添加时间 // 9527L, // 修改人员 // now, // 修改时间 // null // 备注 // ); // if (!orderService.insert(order)) { // throw new CoolException("生成单据主档失败,请联系管理员"); // } // // 单据明细档 // List<DetlDto> list = new ArrayList<>(); // List<DetlDto> orderDetails = param.getOrderDetails(); // for (DetlDto detail : orderDetails) { // DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(), detail.getAnfme()); // if (DetlDto.has(list, dto)) { // DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch()); // assert detlDto != null; // detlDto.setAnfme(detlDto.getAnfme() + detail.getAnfme()); // } else { // list.add(dto); // } // } // for (DetlDto detlDto : list) { // Mat mat = matService.selectByMatnr(detlDto.getMatnr()); // if (Cools.isEmpty(mat)) { // throw new CoolException(detlDto.getMatnr() + "编号商品检索失败,请先添加商品"); // } // OrderDetl orderDetl = new OrderDetl(); // orderDetl.sync(mat); // orderDetl.setBatch(detlDto.getBatch()); // orderDetl.setAnfme(detlDto.getAnfme()); // orderDetl.setOrderId(order.getId()); // orderDetl.setOrderNo(order.getOrderNo()); // orderDetl.setCreateBy(9527L); // orderDetl.setCreateTime(now); // orderDetl.setUpdateBy(9527L); // orderDetl.setUpdateTime(now); // orderDetl.setStatus(1); // orderDetl.setQty(0.0D); // if (!orderDetlService.insert(orderDetl)) { // throw new CoolException("生成单据明细失败,请联系管理员"); // } // } } @Override public List<OpenOrderCompeteResult> pakoutOrderComplete(OpenOrderCompleteParam param) { List<OpenOrderCompeteResult> results = new ArrayList<>(); if (!Cools.isEmpty(param) && !Cools.isEmpty(param.getOrderNo())) { // 指定订单 Order order = orderService.selectByNo(param.getOrderNo()); if (null != order) { OpenOrderCompeteResult result = new OpenOrderCompeteResult(); results.add(result); result.setOrderNo(order.getOrderNo()); result.setOrderTime(order.getOrderTime()); result.setOrderType(order.getDocType$()); List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId()); for (OrderDetl orderDetl : orderDetls) { result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty())); } if (order.getSettle() == 4L) { // 修改订单状态 4.完成 ===>> 6.已上报 if (!orderService.updateSettle(order.getId(), 6L, null)) { throw new CoolException("服务器内部错误,请联系管理员"); } } } } else { // 所有订单 List<Order> orders = orderService.selectList(new EntityWrapper<Order>().eq("settle", 4L)); for (Order order : orders) { OpenOrderCompeteResult result = new OpenOrderCompeteResult(); results.add(result); result.setOrderNo(order.getOrderNo()); result.setOrderTime(order.getOrderTime()); result.setOrderType(order.getDocType$()); List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId()); for (OrderDetl orderDetl : orderDetls) { result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty())); } // 修改订单状态 4.完成 ===>> 6.已上报 if (!orderService.updateSettle(order.getId(), 6L, null)) { throw new CoolException("服务器内部错误,请联系管理员"); } } } return results; // List<OpenOrderCompeteResult> results = new ArrayList<>(); // if (!Cools.isEmpty(param) && !Cools.isEmpty(param.getOrderNo())) { // // 指定订单 // Order order = orderService.selectByNo(param.getOrderNo()); // if (null != order) { // OpenOrderCompeteResult result = new OpenOrderCompeteResult(); // results.add(result); // result.setOrderNo(order.getOrderNo()); // result.setOrderTime(order.getOrderTime()); // result.setOrderType(order.getDocType$()); // List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId()); // for (OrderDetl orderDetl : orderDetls) { // result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty())); // } // if (order.getSettle() == 4L) { // // 修改订单状态 4.完成 ===>> 6.已上报 // if (!orderService.updateSettle(order.getId(), 6L, null)) { // throw new CoolException("服务器内部错误,请联系管理员"); // } // } // } // } else { // // 所有订单 // List<Order> orders = orderService.selectList(new EntityWrapper<Order>().eq("settle", 4L)); // for (Order order : orders) { // OpenOrderCompeteResult result = new OpenOrderCompeteResult(); // results.add(result); // result.setOrderNo(order.getOrderNo()); // result.setOrderTime(order.getOrderTime()); // result.setOrderType(order.getDocType$()); // List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId()); // for (OrderDetl orderDetl : orderDetls) { // result.getOrderDetails().add(new DetlDto(orderDetl.getOrderNo(), orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getQty())); // } // // 修改订单状态 4.完成 ===>> 6.已上报 // if (!orderService.updateSettle(order.getId(), 6L, null)) { // throw new CoolException("服务器内部错误,请联系管理员"); // } // } // } // return results; return null; } @Override src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -82,77 +82,78 @@ @Transactional public String startupFullPutStore(FullStoreParam param, Long userId) { // 参数非空判断 if (Cools.isEmpty(param.getDevpNo(), param.getList())) { throw new CoolException(BaseRes.PARAM); } Date now = new Date(); // 源站点状态检测 BasDevp sourceStaNo = basDevpService.checkSiteStatus(param.getDevpNo(), true); // 检索库位 LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo); List<String> matnrs = param.getList().stream().map(FullStoreParam.MatCodeStore::getMatnr).distinct().collect(Collectors.toList()); List<String> batchs = param.getList().stream().map(FullStoreParam.MatCodeStore::getBatch).distinct().collect(Collectors.toList()); StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 1, param.getDevpNo(), matnrs.get(0), batchs.get(0), null, locTypeDto); // 生成工作号 int workNo = dto.getWorkNo(); // 生成工作档 WrkMast wrkMast = new WrkMast(); wrkMast.setWrkNo(workNo); wrkMast.setIoTime(now); wrkMast.setWrkSts(1L); // 工作状态:生成入库ID wrkMast.setIoType(1); // 入出库状态:1.入库 wrkMast.setIoPri(13D); // 优先级:13 wrkMast.setCrnNo(dto.getCrnNo()); wrkMast.setSourceStaNo(dto.getSourceStaNo()); 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("N"); wrkMast.setCtnType(sourceStaNo.getCtnType()); // 容器类型 wrkMast.setAppeUser(userId); wrkMast.setAppeTime(now); wrkMast.setModiUser(userId); wrkMast.setModiTime(now); if (!wrkMastService.insert(wrkMast)) { throw new CoolException("保存工作档失败"); } // 生成工作档明细 List<DetlDto> detlDtos = new ArrayList<>(); param.getList().forEach(elem -> { DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme()); if (DetlDto.has(detlDtos, detlDto)) { DetlDto detlDto1 = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch()); assert detlDto1 != null; detlDto1.setAnfme(detlDto1.getAnfme() + detlDto.getAnfme()); } else { detlDtos.add(detlDto); } }); wrkDetlService.createWorkDetail(workNo, detlDtos, param.getBarcode(), userId, now); // 更新源站点信息 sourceStaNo.setWrkNo(workNo); sourceStaNo.setModiUser(userId); sourceStaNo.setModiTime(now); if (!basDevpService.updateById(sourceStaNo)) { throw new CoolException("更新源站失败"); } // 更新目标库位状态 LocMast locMast = locMastService.selectById(dto.getLocNo()); if (locMast.getLocSts().equals("O")) { locMast.setLocSts("S"); // S.入库预约 locMast.setModiUser(userId); locMast.setModiTime(now); if (!locMastService.updateById(locMast)) { throw new CoolException("改变库位状态失败"); } } else { throw new CoolException(dto.getLocNo() + "目标库位已被占用"); } return dto.getLocNo(); // if (Cools.isEmpty(param.getDevpNo(), param.getList())) { // throw new CoolException(BaseRes.PARAM); // } // Date now = new Date(); // // 源站点状态检测 // BasDevp sourceStaNo = basDevpService.checkSiteStatus(param.getDevpNo(), true); // // 检索库位 // LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo); // List<String> matnrs = param.getList().stream().map(FullStoreParam.MatCodeStore::getMatnr).distinct().collect(Collectors.toList()); // List<String> batchs = param.getList().stream().map(FullStoreParam.MatCodeStore::getBatch).distinct().collect(Collectors.toList()); // StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 1, param.getDevpNo(), matnrs.get(0), batchs.get(0), null, locTypeDto); // // 生成工作号 // int workNo = dto.getWorkNo(); // // 生成工作档 // WrkMast wrkMast = new WrkMast(); // wrkMast.setWrkNo(workNo); // wrkMast.setIoTime(now); // wrkMast.setWrkSts(1L); // 工作状态:生成入库ID // wrkMast.setIoType(1); // 入出库状态:1.入库 // wrkMast.setIoPri(13D); // 优先级:13 // wrkMast.setCrnNo(dto.getCrnNo()); // wrkMast.setSourceStaNo(dto.getSourceStaNo()); // 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("N"); // wrkMast.setCtnType(sourceStaNo.getCtnType()); // 容器类型 // wrkMast.setAppeUser(userId); // wrkMast.setAppeTime(now); // wrkMast.setModiUser(userId); // wrkMast.setModiTime(now); // if (!wrkMastService.insert(wrkMast)) { // throw new CoolException("保存工作档失败"); // } // // 生成工作档明细 // List<DetlDto> detlDtos = new ArrayList<>(); // param.getList().forEach(elem -> { // DetlDto detlDto = new DetlDto(elem); // if (DetlDto.has(detlDtos, detlDto)) { // DetlDto detlDto1 = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch()); // assert detlDto1 != null; // detlDto1.setAnfme(detlDto1.getAnfme() + detlDto.getAnfme()); // } else { // detlDtos.add(detlDto); // } // }); // wrkDetlService.createWorkDetail(workNo, detlDtos, param.getBarcode(), userId, now); // // 更新源站点信息 // sourceStaNo.setWrkNo(workNo); // sourceStaNo.setModiUser(userId); // sourceStaNo.setModiTime(now); // if (!basDevpService.updateById(sourceStaNo)) { // throw new CoolException("更新源站失败"); // } // // 更新目标库位状态 // LocMast locMast = locMastService.selectById(dto.getLocNo()); // if (locMast.getLocSts().equals("O")) { // locMast.setLocSts("S"); // S.入库预约 // locMast.setModiUser(userId); // locMast.setModiTime(now); // if (!locMastService.updateById(locMast)) { // throw new CoolException("改变库位状态失败"); // } // } else { // throw new CoolException(dto.getLocNo() + "目标库位已被占用"); // } // return dto.getLocNo(); return null; } @Override src/main/java/com/zy/common/model/DetlDto.java
@@ -2,6 +2,8 @@ import com.core.common.Cools; import com.zy.asrs.entity.OrderDetl; import com.zy.asrs.entity.param.FullStoreParam; import com.zy.asrs.utils.MatCompareUtils; import lombok.Data; import java.util.List; @@ -21,64 +23,74 @@ private Double anfme; public DetlDto() { private String sPgNO; private String outOrderNo; private String luHao; private String packing; private String proType; public DetlDto(LocDto locDto) { this.matnr = locDto.getMatnr(); this.batch = locDto.getBatch(); this.sPgNO = locDto.getSPgNO(); this.outOrderNo = locDto.getOutOrderNo(); this.luHao = locDto.getLuHao(); this.packing = locDto.getPacking(); this.proType = locDto.getProType(); this.orderNo = locDto.getOrderNo(); this.anfme = locDto.getAnfme(); } public DetlDto(String matnr, Double anfme) { this.matnr = matnr; this.anfme = anfme; } public DetlDto(String matnr, String batch) { this.matnr = matnr; this.batch = batch; } public DetlDto(String matnr, String batch, Double anfme) { this.matnr = matnr; this.batch = batch; this.anfme = anfme; } public DetlDto(String orderNo, String matnr, String batch, Double anfme) { this.orderNo = orderNo; this.matnr = matnr; this.batch = batch; this.anfme = anfme; } public static boolean hasList(Set<DetlDto> detlDtos, OrderDetl orderDetl) { for (DetlDto dto : detlDtos) { if (Cools.isEmpty(dto.getBatch()) && Cools.isEmpty(orderDetl.getBatch())) { if (dto.getMatnr().equals(orderDetl.getMatnr())) { return true; } } else { if (!Cools.isEmpty(dto.getBatch()) && !Cools.isEmpty(orderDetl.getBatch())) { if (dto.getMatnr().equals(orderDetl.getMatnr()) && dto.getBatch().equals(orderDetl.getBatch())) { return true; } } boolean compare = MatCompareUtils.compare(dto, orderDetl); if (compare) { return true; } // if (Cools.isEmpty(dto.getBatch()) && Cools.isEmpty(orderDetl.getBatch())) { // if (dto.getMatnr().equals(orderDetl.getMatnr())) { // return true; // } // } else { // if (!Cools.isEmpty(dto.getBatch()) && !Cools.isEmpty(orderDetl.getBatch())) { // if (dto.getMatnr().equals(orderDetl.getMatnr()) && dto.getBatch().equals(orderDetl.getBatch())) { // return true; // } // } // } } return false; } public static boolean has(List<DetlDto> detlDtos, DetlDto detlDto) { for (DetlDto dto : detlDtos) { if (dto.getMatnr().equals(detlDto.getMatnr()) && Cools.eq(dto.getBatch(), detlDto.getBatch())) { boolean compare = MatCompareUtils.compare(dto, detlDto); if (compare) { return true; } // if (dto.getMatnr().equals(detlDto.getMatnr()) && Cools.eq(dto.getBatch(), detlDto.getBatch())) { // return true; // } } return false; } public static DetlDto find(List<DetlDto> detlDtos, String matnr, String batch) { if (Cools.isEmpty(matnr)) { public static DetlDto find(List<DetlDto> detlDtos, LocDto locDto) { if (Cools.isEmpty(locDto)) { return null; } for (DetlDto detlDto : detlDtos) { if (matnr.equals(detlDto.getMatnr()) && Cools.eq(batch, detlDto.getBatch())) { boolean compare = MatCompareUtils.compare(detlDto, locDto); if (compare) { return detlDto; } } src/main/java/com/zy/common/model/TaskDto.java
@@ -71,13 +71,13 @@ // 汇总不考虑序列码 List<DetlDto> detlDtos = new ArrayList<>(); for (LocDto locDto : this.getLocDtos()) { DetlDto dto = new DetlDto(locDto.getMatnr(), locDto.getBatch(), locDto.getAnfme()); DetlDto dto = new DetlDto(locDto); if (DetlDto.has(detlDtos, dto)) { DetlDto detlDto = DetlDto.find(detlDtos, locDto.getMatnr(), dto.getBatch()); DetlDto detlDto = DetlDto.find(detlDtos, locDto); assert detlDto != null; detlDto.setAnfme(detlDto.getAnfme() + locDto.getAnfme()); } else { detlDtos.add(new DetlDto(locDto.getMatnr(), locDto.getBatch(), locDto.getAnfme())); detlDtos.add(new DetlDto(locDto)); } }