src/main/java/com/zy/asrs/controller/OpenController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/entity/param/OpenOrderPakoutParam.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/OrderCheckService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/OrderService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/OrderCheckServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/controller/OpenController.java
@@ -95,13 +95,13 @@ if (Cools.isEmpty(param)) { return R.parse(BaseRes.PARAM); } if (Cools.isEmpty(param.getOrderNo())) { if (Cools.isEmpty(param.getCCode())) { return R.error("单据编号[orderNo]不能为空"); } if (Cools.isEmpty(param.getOrderType())) { if (Cools.isEmpty(param.getType())) { return R.error("单据类型[orderType]不能为空"); } if (Cools.isEmpty(param.getOrderDetails())) { if (Cools.isEmpty(param.getADDBody())) { return R.error("单据明细[orderDetails]不能为空"); } openService.pakoutOrderCreate(param); @@ -181,4 +181,5 @@ System.out.println(JSON.toJSONString(param1)); } } src/main/java/com/zy/asrs/entity/param/OpenOrderPakoutParam.java
@@ -1,39 +1,48 @@ package com.zy.asrs.entity.param; import com.alibaba.fastjson.JSON; import com.core.common.DateUtils; import com.zy.common.model.DetlDto; import lombok.Data; import java.util.ArrayList; import java.util.Date; import java.util.List; /** * Created by vincent on 2022/4/8 * 海诺尔U8出库单同步参数 */ @Data public class OpenOrderPakoutParam { private String orderNo; //入库单号 private String cCode; private String orderType; //单据日期 private Date dDate; private String orderTime; //类型 private String type; private List<DetlDto> orderDetails; //制单人 private String cMaker; //公司 private String cAccount; 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)); //备注 private String cMemo; private List<Body> ADDBody; //private List<DetlDto> orderDetails; @Data public static class Body{ //存货编码 private String cInvCode; //数量 private Double iQuantity; //批号 private String cBatch; //行备注 private String cbMemo; } } src/main/java/com/zy/asrs/service/OrderCheckService.java
@@ -17,7 +17,7 @@ void checkComplete(String orderNo); boolean saveHandlerOrder(Boolean pakin, WrkMast wrkMast, List<WrkDetl> wrkDetls); // boolean saveHandlerOrder(Boolean pakin, WrkMast wrkMast, List<WrkDetl> wrkDetls); src/main/java/com/zy/asrs/service/OrderService.java
@@ -15,7 +15,7 @@ void checkComplete(String orderNo); boolean saveHandlerOrder(Boolean pakin, WrkMast wrkMast, List<WrkDetl> wrkDetls); // boolean saveHandlerOrder(Boolean pakin, WrkMast wrkMast, List<WrkDetl> wrkDetls); void remove(Long orderId); src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -16,6 +16,8 @@ import com.zy.asrs.utils.MatUtils; import com.zy.common.model.DetlDto; import com.zy.common.utils.NodeUtils; import com.zy.system.entity.User; import com.zy.system.service.UserService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -62,6 +64,8 @@ private LocOwnerService locOwnerService; @Autowired private ReportQueryMapper reportQueryMapper; @Autowired private UserService userService; @Override @Transactional @@ -180,20 +184,27 @@ @Override @Transactional public void pakoutOrderCreate(OpenOrderPakoutParam param) { Order order = orderService.selectByNo(param.getOrderNo()); Order order = orderService.selectByNo(param.getCCode()); // 如果单据不存在则添加;如果单据存在,作业中无法修改,反之则修改单据 if (!Cools.isEmpty(order)) { if (order.getSettle() > 1L) { throw new CoolException(param.getOrderNo() + "正在出库,无法修改单据"); throw new CoolException(param.getCCode() + "正在出库,无法修改单据"); } orderService.remove(order.getId()); } DocType docType = docTypeService.selectOrAdd(param.getOrderType(), Boolean.FALSE); DocType docType = docTypeService.selectOrAdd(param.getType(), Boolean.FALSE); Date now = new Date(); //查找做单用户 User user = userService.selectOne(new EntityWrapper<User>().eq("username", param.getCMaker())); if(Cools.isEmpty(user)){ throw new CoolException("未查询到该用户"); } // 单据主档 order = new Order( String.valueOf(snowflakeIdWorker.nextId()), // 编号[非空] param.getOrderNo(), // 订单编号 param.getCCode(), // 订单编号 DateUtils.convert(now), // 单据日期 docType.getDocId(), // 单据类型 null, // 项目编号 @@ -202,9 +213,9 @@ null, // 初始票据号 null, // 票据号 null, // 客户编号 null, // 客户 param.getCAccount(), // 客户 null, // 联系方式 null, // 操作人员 param.getCMaker(), // 操作人员 null, // 合计金额 null, // 优惠率 null, // 优惠金额 @@ -221,7 +232,7 @@ null, // 物流单号 1L, // 订单状态 1, // 状态 9527L, // 添加人员 user.getId(), // 添加人员 now, // 添加时间 9527L, // 修改人员 now, // 修改时间 @@ -231,37 +242,24 @@ 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); } dto.setWeight(detail.getWeight()); } for (DetlDto detlDto : list) { Mat mat = matService.selectByMatnr(detlDto.getMatnr()); for (OpenOrderPakoutParam.Body body : param.getADDBody()){ Mat mat = matService.selectByMatnr(body.getCInvCode()); if (Cools.isEmpty(mat)) { throw new CoolException(detlDto.getMatnr() + "编号商品检索失败,请先添加商品"); throw new CoolException(body.getCInvCode() + "编号商品检索失败,请先添加商品"); } OrderDetl orderDetl = new OrderDetl(); orderDetl.sync(mat); orderDetl.setBatch(detlDto.getBatch() == null ? "" : detlDto.getBatch()); orderDetl.setAnfme(detlDto.getAnfme()); orderDetl.setAnfme(body.getIQuantity()); orderDetl.setQty(0.0D); orderDetl.setWorkQty(0.0D); orderDetl.setStatus(1); orderDetl.setOrderId(order.getId()); orderDetl.setOrderNo(order.getOrderNo()); orderDetl.setCreateBy(9527L); orderDetl.setCreateBy(user.getId()); orderDetl.setCreateTime(now); orderDetl.setUpdateBy(9527L); orderDetl.setUpdateBy(user.getId()); orderDetl.setUpdateTime(now); orderDetl.setStatus(1); orderDetl.setQty(0.0D); orderDetl.setWeight(detlDto.getWeight()); orderDetl.setUuid(String.valueOf(System.currentTimeMillis())); if (!orderDetlService.insert(orderDetl)) { throw new CoolException("生成单据明细失败,请联系管理员"); } src/main/java/com/zy/asrs/service/impl/OrderCheckServiceImpl.java
@@ -3,24 +3,18 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.core.common.Cools; import com.core.common.DateUtils; import com.core.common.R; import com.core.common.SnowflakeIdWorker; import com.core.exception.CoolException; import com.zy.asrs.entity.*; import com.zy.asrs.entity.param.ExamineParam; import com.zy.asrs.entity.param.OpenOrderPakinParam; import com.zy.asrs.entity.param.OpenOrderPakoutParam; import com.zy.asrs.mapper.OrderCheckMapper; import com.zy.asrs.mapper.OrderDetlMapper; import com.zy.asrs.mapper.OrderMapper; import com.zy.asrs.service.*; import com.zy.common.model.DetlDto; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -101,55 +95,55 @@ } @Override public boolean saveHandlerOrder(Boolean pakin, WrkMast wrkMast, List<WrkDetl> wrkDetls) { try { List<DetlDto> detlDtos = new ArrayList<>(); wrkDetls.forEach(wrkDetl -> { detlDtos.add(new DetlDto(wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme())); }); String orderNo = "HAND" + snowflakeIdWorker.nextId(); if (pakin) { // 生成入库单据 OpenOrderPakinParam openParam = new OpenOrderPakinParam(); openParam.setOrderNo(orderNo); openParam.setOrderTime(DateUtils.convert(wrkMast.getModiTime())); openParam.setOrderType("手动入库单"); openParam.setOrderDetails(detlDtos); openService.pakinOrderCreate(openParam); } else { // 生成出库单据 OpenOrderPakoutParam openParam = new OpenOrderPakoutParam(); openParam.setOrderNo(orderNo); openParam.setOrderTime(DateUtils.convert(wrkMast.getModiTime())); openParam.setOrderType("手动出库单"); openParam.setOrderDetails(detlDtos); openService.pakoutOrderCreate(openParam); } OrderCheck order = this.selectByNo(orderNo); if (null == order) { throw new CoolException("生成单据失败"); } if (!this.updateSettle(order.getId(), 4L, null)) { throw new CoolException("修改单据状态失败"); } for (DetlDto detlDto : detlDtos) { // 修改订单明细数量 if (!orderDetlService.increase(order.getId(), detlDto.getMatnr(), detlDto.getBatch(), detlDto.getAnfme())) { throw new CoolException("修改单据明细数量失败"); } // 修改订单作业数量 if (!orderDetlService.increaseWorkQty(order.getId(), detlDto.getMatnr(), detlDto.getBatch(), detlDto.getAnfme())) { throw new CoolException("修改单据作业数量失败"); } } } catch (Exception e) { log.error("saveHandlerOrder===>>", e); return false; } return true; } // @Override // public boolean saveHandlerOrder(Boolean pakin, WrkMast wrkMast, List<WrkDetl> wrkDetls) { // try { // List<DetlDto> detlDtos = new ArrayList<>(); // wrkDetls.forEach(wrkDetl -> { // detlDtos.add(new DetlDto(wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme())); // }); // String orderNo = "HAND" + snowflakeIdWorker.nextId(); // if (pakin) { // // 生成入库单据 // OpenOrderPakinParam openParam = new OpenOrderPakinParam(); // openParam.setOrderNo(orderNo); // openParam.setOrderTime(DateUtils.convert(wrkMast.getModiTime())); // openParam.setOrderType("手动入库单"); // openParam.setOrderDetails(detlDtos); // openService.pakinOrderCreate(openParam); // } else { // // 生成出库单据 // OpenOrderPakoutParam openParam = new OpenOrderPakoutParam(); // openParam.setOrderNo(orderNo); // openParam.setOrderTime(DateUtils.convert(wrkMast.getModiTime())); // openParam.setOrderType("手动出库单"); // openParam.setOrderDetails(detlDtos); // openService.pakoutOrderCreate(openParam); // } // // OrderCheck order = this.selectByNo(orderNo); // if (null == order) { // throw new CoolException("生成单据失败"); // } // if (!this.updateSettle(order.getId(), 4L, null)) { // throw new CoolException("修改单据状态失败"); // } // for (DetlDto detlDto : detlDtos) { // // 修改订单明细数量 // if (!orderDetlService.increase(order.getId(), detlDto.getMatnr(), detlDto.getBatch(), detlDto.getAnfme())) { // throw new CoolException("修改单据明细数量失败"); // } // // 修改订单作业数量 // if (!orderDetlService.increaseWorkQty(order.getId(), detlDto.getMatnr(), detlDto.getBatch(), detlDto.getAnfme())) { // throw new CoolException("修改单据作业数量失败"); // } // } // } catch (Exception e) { // log.error("saveHandlerOrder===>>", e); // return false; // } // return true; // } src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java
@@ -1,23 +1,20 @@ package com.zy.asrs.service.impl; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.core.common.Cools; import com.core.common.DateUtils; import com.core.common.SnowflakeIdWorker; import com.core.exception.CoolException; import com.zy.asrs.entity.*; import com.zy.asrs.entity.param.OpenOrderPakinParam; import com.zy.asrs.entity.param.OpenOrderPakoutParam; import com.zy.asrs.entity.Order; import com.zy.asrs.entity.OrderDetl; import com.zy.asrs.entity.OrderListDTO; import com.zy.asrs.mapper.OrderDetlMapper; import com.zy.asrs.mapper.OrderMapper; import com.zy.asrs.service.*; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.zy.common.model.DetlDto; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -87,55 +84,55 @@ } @Override public boolean saveHandlerOrder(Boolean pakin, WrkMast wrkMast, List<WrkDetl> wrkDetls) { try { List<DetlDto> detlDtos = new ArrayList<>(); wrkDetls.forEach(wrkDetl -> { detlDtos.add(new DetlDto(wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme())); }); String orderNo = "HAND" + snowflakeIdWorker.nextId(); if (pakin) { // 生成入库单据 OpenOrderPakinParam openParam = new OpenOrderPakinParam(); openParam.setOrderNo(orderNo); openParam.setOrderTime(DateUtils.convert(wrkMast.getModiTime())); openParam.setOrderType("手动入库单"); openParam.setOrderDetails(detlDtos); openService.pakinOrderCreate(openParam); } else { // 生成出库单据 OpenOrderPakoutParam openParam = new OpenOrderPakoutParam(); openParam.setOrderNo(orderNo); openParam.setOrderTime(DateUtils.convert(wrkMast.getModiTime())); openParam.setOrderType("手动出库单"); openParam.setOrderDetails(detlDtos); openService.pakoutOrderCreate(openParam); } Order order = this.selectByNo(orderNo); if (null == order) { throw new CoolException("生成单据失败"); } if (!this.updateSettle(order.getId(), 4L, null)) { throw new CoolException("修改单据状态失败"); } for (DetlDto detlDto : detlDtos) { // 修改订单明细数量 if (!orderDetlService.increase(order.getId(), detlDto.getMatnr(), detlDto.getBatch(), detlDto.getAnfme())) { throw new CoolException("修改单据明细数量失败"); } // 修改订单作业数量 if (!orderDetlService.increaseWorkQty(order.getId(), detlDto.getMatnr(), detlDto.getBatch(), detlDto.getAnfme())) { throw new CoolException("修改单据作业数量失败"); } } } catch (Exception e) { log.error("saveHandlerOrder===>>", e); return false; } return true; } // @Override // public boolean saveHandlerOrder(Boolean pakin, WrkMast wrkMast, List<WrkDetl> wrkDetls) { // try { // List<DetlDto> detlDtos = new ArrayList<>(); // wrkDetls.forEach(wrkDetl -> { // detlDtos.add(new DetlDto(wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme())); // }); // String orderNo = "HAND" + snowflakeIdWorker.nextId(); // if (pakin) { // // 生成入库单据 // OpenOrderPakinParam openParam = new OpenOrderPakinParam(); // openParam.setOrderNo(orderNo); // openParam.setOrderTime(DateUtils.convert(wrkMast.getModiTime())); // openParam.setOrderType("手动入库单"); // openParam.setOrderDetails(detlDtos); // openService.pakinOrderCreate(openParam); // } else { // // 生成出库单据 // OpenOrderPakoutParam openParam = new OpenOrderPakoutParam(); // openParam.setOrderNo(orderNo); // openParam.setOrderTime(DateUtils.convert(wrkMast.getModiTime())); // openParam.setOrderType("手动出库单"); // openParam.setOrderDetails(detlDtos); // openService.pakoutOrderCreate(openParam); // } // // Order order = this.selectByNo(orderNo); // if (null == order) { // throw new CoolException("生成单据失败"); // } // if (!this.updateSettle(order.getId(), 4L, null)) { // throw new CoolException("修改单据状态失败"); // } // for (DetlDto detlDto : detlDtos) { // // 修改订单明细数量 // if (!orderDetlService.increase(order.getId(), detlDto.getMatnr(), detlDto.getBatch(), detlDto.getAnfme())) { // throw new CoolException("修改单据明细数量失败"); // } // // 修改订单作业数量 // if (!orderDetlService.increaseWorkQty(order.getId(), detlDto.getMatnr(), detlDto.getBatch(), detlDto.getAnfme())) { // throw new CoolException("修改单据作业数量失败"); // } // } // } catch (Exception e) { // log.error("saveHandlerOrder===>>", e); // return false; // } // return true; // } @Override public void remove(Long orderId) {