原预打包配置部分描述修改为分堆

This commit is contained in:
gaoqr
2026-03-20 17:16:45 +08:00
parent afe7ba3e4e
commit c61069c836
4 changed files with 1 additions and 151 deletions
@@ -3,7 +3,6 @@ package com.cf.imes.module.executor.controller.admin.manage.pack;
import com.cf.imes.framework.common.pojo.CommonResult;
import com.cf.imes.framework.common.pojo.PageResult;
import com.cf.imes.module.executor.controller.admin.manage.pack.prePack.PrePackReqVO;
import com.cf.imes.module.executor.controller.admin.manage.pack.vo.*;
import com.cf.imes.module.executor.controller.admin.manage.query.vo.pack.OrderPackageVO;
import com.cf.imes.module.executor.controller.admin.manage.query.vo.pack.PackageDetailsRespVO;
@@ -224,19 +223,6 @@ public class PackController {
@PostMapping("/saveOptimizeInfo")
@Operation(summary = "预打包保存优化信息")
@PreAuthorize("@ss.hasPermission('manage:pack:pre-pack')")
public CommonResult<Boolean> saveOptimizeInfo(@Valid @RequestBody PrePackReqVO reqVO) {
packService.saveOptimizeInfo(reqVO);
return success(true);
}
@GetMapping("/scan/correlation")
@Operation(summary = "查询扫描类型相关的板件+配件id")
public CommonResult<List<Long>> getComponentCorrelation(@Valid @RequestBody PackScanComponentCorrelationReqVO reqVO) {
@@ -2,7 +2,6 @@ package com.cf.imes.module.executor.service.manage.pack;
import com.cf.imes.framework.common.pojo.PageResult;
import com.cf.imes.module.executor.controller.admin.manage.pack.prePack.PrePackReqVO;
import com.cf.imes.module.executor.controller.admin.manage.pack.vo.*;
import com.cf.imes.module.executor.controller.admin.manage.query.vo.pack.OrderPackageVO;
@@ -75,10 +74,6 @@ public interface PackService {
// 查询预打包优化信息
String getPrePackInfo(Long orderId);
// 保存优化后的预打包信息
void saveOptimizeInfo(PrePackReqVO reqVO);
/**
* 校验打包状态:已打包的不允许扫描关联
* @param orderId
@@ -13,9 +13,6 @@ import com.cf.imes.framework.common.util.object.BeanUtils;
import com.cf.imes.framework.id.core.util.SnowflakeIdWorker3rd;
import com.cf.imes.framework.mybatis.core.query.QueryWrapperX;
import com.cf.imes.module.executor.api.plan.OrderPlanApi;
import com.cf.imes.module.executor.controller.admin.manage.pack.prePack.PackPlateList;
import com.cf.imes.module.executor.controller.admin.manage.pack.prePack.PrePackOptimizeInfo;
import com.cf.imes.module.executor.controller.admin.manage.pack.prePack.PrePackReqVO;
import com.cf.imes.module.executor.controller.admin.manage.pack.vo.*;
import com.cf.imes.module.executor.controller.admin.manage.query.vo.pack.OrderPackageVO;
import com.cf.imes.module.executor.dal.dataobject.order.OrderDO;
@@ -37,10 +34,6 @@ import com.cf.imes.module.executor.service.ordercomponent.OrderComponentService;
import com.cf.imes.module.executor.service.orderitem.OrderItemService;
import com.cf.imes.module.executor.service.plate.PlateService;
import com.cf.imes.module.system.api.setting.SettingApi;
import com.cf.imes.module.system.api.setting.dto.PackageConfigDTO;
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;
@@ -71,7 +64,6 @@ import static com.cf.imes.module.executor.enums.ErrorCodeConstants.PART_PACK_DAT
import static com.cf.imes.module.executor.enums.ErrorCodeConstants.PLATE_NOT_EXISTS;
import static com.cf.imes.module.executor.enums.ErrorCodeConstants.THE_CURRENT_PACKAGE_TYPE_IS_INCORRECT;
import static com.cf.imes.module.executor.enums.ErrorCodeConstants.ORDER_PLATE_ERROR;
import static com.cf.imes.module.system.enums.ErrorCodeConstants.CURRENTLY_NO_CONFIGURATION_AVAILABLE;
@Service
@@ -760,129 +752,6 @@ public class PackServiceImpl implements PackService {
}
// 保存优化后的预打包信息
@Override
@Transactional(rollbackFor = Exception.class)
public void saveOptimizeInfo(PrePackReqVO reqVO) {
PackageConfigDTO userSetting = settingApi.getUserSetting(UserSettingTypeEnum.PREPACKAGED.getType());
String setting = userSetting.getSetting();
if (setting == null) {
throw new ServiceException(CURRENTLY_NO_CONFIGURATION_AVAILABLE, UserSettingTypeEnum.PREPACKAGED.getName());
}
JsonNode settingParse = JsonUtils.parseTree(JsonUtils.unzipString(setting));
boolean autoPack = settingParse.get("autoPack").asBoolean();
String optimizeInfo = reqVO.getOptimizeInfo();
// 自动打包,包裹表新增
if (autoPack) {
ArrayList<OrderPackageDO> orderPackageDOS = new ArrayList<>();
List<PackPlateList> packPlateNoLists = new ArrayList<>();
ObjectMapper objectMapper = new ObjectMapper();
JsonNode jsonNode = JsonUtils.parseTree(reqVO.getOptimizeInfo());
List<PrePackOptimizeInfo> asJsonObject = objectMapper.convertValue(jsonNode, new TypeReference<>() {
});
asJsonObject.forEach(value -> {
value.getList().forEach(prePackOptimizeInfo -> {
String packageNo = generatePackageNo();
prePackOptimizeInfo.setName(packageNo);
orderPackageDOS.add(OrderPackageDO.builder()
.packageNo(packageNo)
.type(OrderPackageTypeEnum.PLATE.getType())
.orderId(reqVO.getOrderId())
.status(OrderPackageStatusEnum.PACKAGED.getStatus())
.build());
prePackOptimizeInfo.getList().forEach(plate -> {
List<String> list = plate.getList().stream().map(PrePackOptimizeInfo.PrerPlateData::getPlateId).toList();
list.forEach(a -> packPlateNoLists.add(PackPlateList.builder()
.packNo(packageNo)
.plateId(Long.valueOf(a))
.build()));
});
});
});
optimizeInfo = JsonUtils.toJsonString(asJsonObject);
List<OrderPackageDO> packageDOS = orderPackageMapper.selectPackStatus(reqVO.getOrderId(), getUserOrganId());
if (!packageDOS.isEmpty()) {
// 删除除配件和其他配件外的所有包裹
orderPackageMapper.updateDelete(reqVO.getOrderId(), getUserOrganId());
}
// 包裹表新增包裹
orderPackageMapper.insertBatch(orderPackageDOS);
// 根据包裹编号查找包裹ID
orderPackageDOS.forEach(a ->
packPlateNoLists.stream().filter(f -> Objects.equals(f.getPackNo(), a.getPackageNo()))
.forEach(f -> f.setPackId(a.getId())));
List<OrderItemDO> orderItemDOS = orderItemMapper.selectPackPlateList(reqVO.getOrderId(), getUserOrganId());
packPlateNoLists.forEach(a ->
orderItemDOS.stream().filter(f -> Objects.equals(f.getPlateId(), a.getPlateId()))
.forEach(f -> f.setPackageId(a.getPackId())));
orderItemMapper.updateBatch(orderItemDOS);
// 查询配件是否为空,为空,修改订单的状态为已打包
List<PlateAndPartIdList> partsIds = orderItemMapper.selectOrderPackPartsIds(reqVO.getOrderId(), getUserOrganId());
if (partsIds.isEmpty()) {
OrderDO orderDO = ordersMapper.selectById(reqVO.getOrderId());
orderDO.setPackaged(OrderPackageStatusEnum.PACKAGED.getStatus());
if(Boolean.TRUE.equals(orderPlanApi.getOrder(reqVO.getOrderId()).getData())){
orderDO.setStatus(OrderStatusEnum.FINISH_PRODUCTION.getStatus());
orderDO.setFinishTime(LocalDateTime.now());
}
ordersMapper.updateById(orderDO);
}
}
OrderPrepackagedDO orderPackOptimizeDO = orderPrepackagedMapper.selectOrder(reqVO.getOrderId(), getUserOrganId());
if (orderPackOptimizeDO == null) {
OrderPrepackagedDO prepackagedDO = new OrderPrepackagedDO();
prepackagedDO.setOrderId(reqVO.getOrderId());
prepackagedDO.setResult(JsonUtils.zipString(optimizeInfo));
orderPrepackagedMapper.insert(prepackagedDO);
return;
}
orderPackOptimizeDO.setResult(JsonUtils.zipString(optimizeInfo));
orderPrepackagedMapper.updateById(orderPackOptimizeDO);
}
// 日期格式转换
public static String convertTime(String input) {