diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plate/vo/PlateDetailVO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plate/vo/PlateDetailVO.java deleted file mode 100644 index a9936af55..000000000 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plate/vo/PlateDetailVO.java +++ /dev/null @@ -1,48 +0,0 @@ -package com.cf.imes.module.executor.controller.admin.plate.vo; - -import com.cf.imes.module.executor.controller.admin.plan.dto.*; -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; - -import java.io.Serializable; -import java.util.List; - -/** - * @author Beal - */ -@Data -public class PlateDetailVO implements Serializable { - - private static final long serialVersionUID = 5934179383701994502L; - - @Schema(description = "生产单id") - private Long orderId; - - @Schema(description = "点详情列表") - private List pointDetailList; - - @Schema(description = "孔详情列表") - private List holeDetailList; - - @Schema(description = "造型列表") - private List modelDetailList; - - @Schema(description = "偏移量") - private OffSet offSet; - - @Schema(description = "是否新版本") - private Boolean newVersion; - - @Schema(description = "原始点详情列表") - private List oldPointDetailList; - - @Schema(description = "开料尺寸") - private KaiLiaoSize kaiLiaoSize; - - @Schema(description = "边模型详情列表") - private List sideModelDetails; - - @Schema(description = "边孔详情") - private List sideHoleDetailList; - -} diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/pack/PackServiceImpl.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/pack/PackServiceImpl.java index ffa7a4d57..ba59098a9 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/pack/PackServiceImpl.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/pack/PackServiceImpl.java @@ -36,6 +36,7 @@ import com.cf.imes.module.system.enums.ErrorCodeConstants; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.aop.framework.AopContext; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; @@ -47,7 +48,6 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Objects; -import java.util.stream.Collectors; import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.cf.imes.framework.common.util.string.SearchUtil.insertSeparator; @@ -56,7 +56,6 @@ import static com.cf.imes.module.system.enums.ErrorCodeConstants.*; @Service @Validated -@Transactional public class PackServiceImpl implements PackService { @Resource @@ -101,104 +100,21 @@ public class PackServiceImpl implements PackService { List orderIds = new ArrayList<>(); - IPage packRespVOS = new PageDTO<>(); - - if (pageReqVO.getIsUp() != null) { - OrderDO order = ordersMapper.selectById(pageReqVO.getOrderId()); - - // 判断是否为空 - AssertUtils.notEmpty(order,ORDER_DATE_ERROR); - - List packRespVOList = pageReqVO.getIsUp() ? - ordersMapper.selectOrderIds(order.getCreateTime().toString(), getUserOrganId(), order.getId()) : - - ordersMapper.selectOrderIdsFalse(order.getCreateTime().toString(), getUserOrganId(), order.getId()); - - if (packRespVOList.isEmpty()) { - throw exception(NO_PRODUCTION_ORDER_INFORMATION_AVAILABLE, pageReqVO.getIsUp() ? "第" : "最后"); - } - - packRespVOS.setRecords(packRespVOList); - - packRespVOS.setTotal(1); - - orderIds.addAll(packRespVOS.getRecords().stream().map(PackRespVO::getId).toList()); - + return handleIsUpCase(pageReqVO, orderIds,pageReqVO.getIsUp()); } else { - pageReqVO.setCustomer(insertSeparator(pageReqVO.getCustomer())); - pageReqVO.setCustomOrderNo(insertSeparator(pageReqVO.getCustomOrderNo())); - pageReqVO.setAddress(insertSeparator(pageReqVO.getAddress())); - - - // 查询查询分页 - packRespVOS = ordersMapper.selectOrderIdList(page, pageReqVO, getUserOrganId()); - - if (CollUtil.isEmpty(packRespVOS.getRecords())) { - return new PageResult<>(); - } - - orderIds.addAll(packRespVOS.getRecords().stream().map(PackRespVO::getId).toList()); - - if (orderIds.isEmpty()) { - return null; - } - } - - - // 查询板材的总量 - List packRespVOList = orderPlateMapper.selectPlateNum(orderIds, getUserOrganId()); - - AssertUtils.notEmpty(packRespVOList, ErrorCodeConstants.ORDER_PLATE_ERROR); - - for (PackRespVO packRespVO : packRespVOList) { - packRespVO.setTotalPieceCount((long) packRespVO.getPlateIdList().size()); - packRespVO.setPlateIdList(null); - } - - - // 查询当前生产的包裹数量 - List respVOS = orderPackageMapper.selectPackPage(orderIds, getUserOrganId()); - - - for (PackRespVO packRespVO : respVOS) { - packRespVO.setPackCount((long) packRespVO.getPackIdList().size()); - packRespVO.setPackIdList(null); - } - - - // 查询当前生产单已经打包的板材数量 - List plateNum = orderPackageMapper.selectPackPieceCount(orderIds, getUserOrganId()); - - for (PackRespVO packRespVO : plateNum) { - packRespVO.setPackPieceCount((long) packRespVO.getPlateIdList().size()); - packRespVO.setPlateIdList(null); - } - - - for (PackRespVO record : packRespVOS.getRecords()) { - - // 板材总数 - record.setTotalPieceCount(packRespVOList.stream().filter(f -> Objects.equals(f.getId(), record.getId())).mapToLong(PackRespVO::getTotalPieceCount).sum()); - // 已打包数 - record.setPackCount(respVOS.stream().filter(f -> Objects.equals(f.getId(), record.getId())).mapToLong(PackRespVO::getPackCount).sum()); - // 已打包片数 - record.setPackPieceCount(plateNum.stream().filter(f -> Objects.equals(f.getId(), record.getId())).mapToLong(PackRespVO::getPackPieceCount).sum()); - // 待处理量 - record.setPendingNum(record.getTotalPieceCount() - record.getPackPieceCount()); + return handleNormalCase(pageReqVO, orderIds, page); } - - return new PageResult<>(packRespVOS.getRecords(), packRespVOS.getTotal()); - } + // 查看生产订单对应的板材信息 @Override public List getOrderPlateList(Long orderId) { @@ -207,20 +123,20 @@ public class PackServiceImpl implements PackService { List plateDetailsRespVOS = orderPlateMapper.selectOrderNoPackPlateList(orderId, getUserOrganId()); if(plateDetailsRespVOS.isEmpty()){ - return null; + return new ArrayList<>(); } for (PlateDetailsRespVO plateDetailsRespVO : plateDetailsRespVOS) { - String name = ""; + StringBuilder name = new StringBuilder(); if (!plateDetailsRespVO.getProcessGroupNameList().isEmpty()) { for (GroupNameList groupNameList : plateDetailsRespVO.getProcessGroupNameList()) { // 去除最后的逗号 - name += groupNameList.getName() + ","; + name.append(groupNameList.getName()).append(","); } - name = name.substring(0, name.length() - 1); + name = new StringBuilder(name.substring(0, name.length() - 1)); } - plateDetailsRespVO.setProcessGroup(name); + plateDetailsRespVO.setProcessGroup(name.toString()); } return plateDetailsRespVOS; @@ -238,7 +154,7 @@ public class PackServiceImpl implements PackService { if (plateDetailsRespVOS.isEmpty()) { - return null; + return new ArrayList<>(); } List packageIds = plateDetailsRespVOS.stream().map(PlateDetailsRespVO::getPackageId).distinct().toList(); @@ -249,15 +165,15 @@ public class PackServiceImpl implements PackService { for (PlateDetailsRespVO plateDetailsRespVO : plateDetailsRespVOS) { - String name = ""; + StringBuilder name = new StringBuilder(); if (!plateDetailsRespVO.getProcessGroupNameList().isEmpty()) { for (GroupNameList groupNameList : plateDetailsRespVO.getProcessGroupNameList()) { // 去除最后的逗号 - name += groupNameList.getName() + ","; + name.append(groupNameList.getName()).append(","); } - name = name.substring(0, name.length() - 1); + name = new StringBuilder(name.substring(0, name.length() - 1)); } - plateDetailsRespVO.setProcessGroup(name); + plateDetailsRespVO.setProcessGroup(name.toString()); plateDetailsRespVO.setPackageNo(orderPackageDOS.stream() .filter(m -> m.getId().equals(plateDetailsRespVO.getPackageId())) @@ -284,18 +200,18 @@ public class PackServiceImpl implements PackService { OrderDO orderDO = ordersMapper.selectById(reqVO.getOrderId()); -// AssertUtils.notEmpty(orderPackageVOS,orderDO,ORDER_PLATE_ERROR); + AssertUtils.notEmpty(orderDO,ORDER_DATE_ERROR); - - - return orderPackageVOS.stream().peek(m -> { + orderPackageVOS.forEach(m -> { m.setCustomOrderNo(orderDO.getCustomOrderNo()); m.setCustomer(orderDO.getCustomer()); m.setAddress(orderDO.getAddress()); m.setDealer(orderDO.getDealer()); m.setOrderRemark(orderDO.getRemark()); } - ).toList(); + ); + + return orderPackageVOS; } @@ -353,20 +269,7 @@ public class PackServiceImpl implements PackService { public List getPartsList(OrderPartsReqVO reqVO) { - List orderPartsRespVOS = orderPartsMapper.selectPartsList(reqVO.getOrderId(), getUserOrganId()); - - - return orderPartsRespVOS; - -// PageDTO page = new PageDTO<>(reqVO.getPageNo(), reqVO.getPageSize()); -// -// IPage orderPartsRespVOS = orderPartsMapper.selectPartsList(page,reqVO.getOrderId(),getUserOrganId()); -// -// if (CollectionUtil.isEmpty(orderPartsRespVOS.getRecords())) { -// return new PageResult<>(); -// } -// -// return new PageResult<>(orderPartsRespVOS.getRecords(), orderPartsRespVOS.getTotal()); + return orderPartsMapper.selectPartsList(reqVO.getOrderId(), getUserOrganId()); } @@ -395,7 +298,8 @@ public class PackServiceImpl implements PackService { // 判断当前生产单的板材和配件是否已全部打包且当前生产单的包裹已全部封包 if (validateOrderPack(reqVO.getOrderId())) { - updateOrderStatus(reqVO.getOrderId()); + PackServiceImpl p = (PackServiceImpl)AopContext.currentProxy(); + p.updateOrderStatus(reqVO.getOrderId()); } @@ -449,7 +353,8 @@ public class PackServiceImpl implements PackService { // 判断当前生产单的板材和配件是否已全部打包且当前生产单的包裹已全部封包 if (validateOrderPack(reqVO.getOrderId())) { - updateOrderStatus(reqVO.getOrderId()); + PackServiceImpl p = (PackServiceImpl)AopContext.currentProxy(); + p.updateOrderStatus(reqVO.getOrderId()); } @@ -511,7 +416,9 @@ public class PackServiceImpl implements PackService { } if (validateOrderPack(packageVO.getOrderId())) { - updateOrderStatus(packageVO.getOrderId()); + + PackServiceImpl p = (PackServiceImpl)AopContext.currentProxy(); + p.updateOrderStatus(packageVO.getOrderId()); } return typeConversion(orderPackageDO); @@ -565,7 +472,8 @@ public class PackServiceImpl implements PackService { if (validateOrderPack(packageVO.getOrderId())) { // 修改生产单的打包状态 - updateOrderStatus(packageVO.getOrderId()); + PackServiceImpl p = (PackServiceImpl)AopContext.currentProxy(); + p.updateOrderStatus(packageVO.getOrderId()); } @@ -620,7 +528,7 @@ public class PackServiceImpl implements PackService { List orderPackageDOS = orderPackageMapper.selectPackStatus(orderId, getUserOrganId()); - return orderPackageDOS.stream().map(this::typeConversion).collect(Collectors.toList()); + return orderPackageDOS.stream().map(this::typeConversion).toList(); } @@ -1004,4 +912,112 @@ public class PackServiceImpl implements PackService { } + + + // 打包翻页查询 + private PageResult handleIsUpCase(PackPageReqVO pageReqVO, List orderIds,Boolean isUp) { + + IPage packRespVOS = new PageDTO<>(); + + OrderDO order = ordersMapper.selectById(pageReqVO.getOrderId()); + AssertUtils.notEmpty(order, ORDER_DATE_ERROR); + + List packRespVOList = Boolean.TRUE.equals(isUp) ? + ordersMapper.selectOrderIds(order.getCreateTime().toString(), getUserOrganId(), order.getId()) : + ordersMapper.selectOrderIdsFalse(order.getCreateTime().toString(), getUserOrganId(), order.getId()); + + if (packRespVOList.isEmpty()) { + throw exception(NO_PRODUCTION_ORDER_INFORMATION_AVAILABLE, Boolean.TRUE.equals(isUp) ? "第" : "最后"); + } + packRespVOS.setRecords(packRespVOList); + + packRespVOS.setTotal(1); + + orderIds.addAll(packRespVOS.getRecords().stream().map(PackRespVO::getId).toList()); + + return buildPageResult(orderIds,packRespVOS); + } + + + + // 打包分页查询 + private PageResult handleNormalCase(PackPageReqVO pageReqVO, List orderIds, PageDTO page) { + + pageReqVO.setCustomer(insertSeparator(pageReqVO.getCustomer())); + pageReqVO.setCustomOrderNo(insertSeparator(pageReqVO.getCustomOrderNo())); + pageReqVO.setAddress(insertSeparator(pageReqVO.getAddress())); + + + // 查询查询分页 + IPage packRespVOS = ordersMapper.selectOrderIdList(page, pageReqVO, getUserOrganId()); + + if (CollUtil.isEmpty(packRespVOS.getRecords())) { + return new PageResult<>(); + } + + orderIds.addAll(packRespVOS.getRecords().stream().map(PackRespVO::getId).toList()); + + return buildPageResult(orderIds, packRespVOS); + + } + + + + // 打包分页页面显示数据查询 + private PageResult buildPageResult(List orderIds,IPage packRespVOS){ + + if(orderIds.isEmpty()){ + return new PageResult<>(); + } + + + // 查询板材的总量 + List packRespVOList = orderPlateMapper.selectPlateNum(orderIds, getUserOrganId()); + + AssertUtils.notEmpty(packRespVOList, ErrorCodeConstants.ORDER_PLATE_ERROR); + + for (PackRespVO packRespVO : packRespVOList) { + packRespVO.setTotalPieceCount((long) packRespVO.getPlateIdList().size()); + packRespVO.setPlateIdList(null); + } + + + // 查询当前生产的包裹数量 + List respVOS = orderPackageMapper.selectPackPage(orderIds, getUserOrganId()); + + + for (PackRespVO packRespVO : respVOS) { + packRespVO.setPackCount((long) packRespVO.getPackIdList().size()); + packRespVO.setPackIdList(null); + } + + + // 查询当前生产单已经打包的板材数量 + List plateNum = orderPackageMapper.selectPackPieceCount(orderIds, getUserOrganId()); + + for (PackRespVO packRespVO : plateNum) { + packRespVO.setPackPieceCount((long) packRespVO.getPlateIdList().size()); + packRespVO.setPlateIdList(null); + } + + + for (PackRespVO vosRecords : packRespVOS.getRecords()) { + + // 板材总数 + vosRecords.setTotalPieceCount(packRespVOList.stream().filter(f -> Objects.equals(f.getId(), vosRecords.getId())).mapToLong(PackRespVO::getTotalPieceCount).sum()); + // 已打包数 + vosRecords.setPackCount(respVOS.stream().filter(f -> Objects.equals(f.getId(), vosRecords.getId())).mapToLong(PackRespVO::getPackCount).sum()); + // 已打包片数 + vosRecords.setPackPieceCount(plateNum.stream().filter(f -> Objects.equals(f.getId(), vosRecords.getId())).mapToLong(PackRespVO::getPackPieceCount).sum()); + // 待处理量 + vosRecords.setPendingNum(vosRecords.getTotalPieceCount() - vosRecords.getPackPieceCount()); + + } + + + return new PageResult<>(packRespVOS.getRecords(), packRespVOS.getTotal()); + + } + + }