From 9431178c45262a9423edf0e94e265f8a64a87d18 Mon Sep 17 00:00:00 2001 From: liuzhaotian Date: Fri, 2 Aug 2024 09:09:55 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A2=84=E6=89=93=E5=8C=85=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/plan/OptimizePlanController.java | 15 ++ .../executor/dal/mysql/plate/PlateMapper.java | 11 ++ .../optimizeplan/OptimizePlanService.java | 3 +- .../optimizeplan/OptimizePlanServiceImpl.java | 10 ++ .../controller/admin/pack/PackController.java | 3 +- .../admin/pack/prePack/PrePackData.java | 4 + .../pack/prePack/PrePackOptimizeInfo.java | 87 ++++++++++- .../admin/pack/prePack/PrePackReqVO.java | 14 +- .../admin/pack/vo/PackPageReqVO.java | 3 + .../dal/mysql/pack/OrderPackageMapper.java | 2 +- .../process/ProductionProcessMapper.java | 13 ++ .../rpc/config/RpcConfiguration.java | 3 +- .../manage/service/pack/PackServiceImpl.java | 142 +++++++++++++----- .../mysql/process/ProductionProcessMapper.xml | 23 +++ .../mysql/query/ProductionStatusMapper.xml | 17 +-- .../module/system/api/setting/SettingApi.java | 30 ++++ .../system/api/setting/SettingApiImpl.java | 34 +++++ 17 files changed, 347 insertions(+), 67 deletions(-) create mode 100644 cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/api/setting/SettingApi.java create mode 100644 cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/api/setting/SettingApiImpl.java diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/OptimizePlanController.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/OptimizePlanController.java index 485056d79..bfa63c815 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/OptimizePlanController.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/plan/OptimizePlanController.java @@ -6,8 +6,10 @@ import com.cf.imes.module.executor.controller.admin.plan.bo.OrderSource; import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.SavePlanPlateResultReqVO; import com.cf.imes.module.executor.controller.admin.plan.vo.*; import com.cf.imes.module.executor.controller.admin.plate.vo.PlateSaveReqVO; +import com.cf.imes.module.executor.dal.dataobject.ordermodel.OrderModelDO; import com.cf.imes.module.executor.service.optimizeplan.OptimizePlanService; import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.security.access.prepost.PreAuthorize; @@ -97,4 +99,17 @@ public class OptimizePlanController { } + + @GetMapping("/getPlateModel") + @Operation(summary = "查询当前生产单的板材造型信息") + @Parameter(name = "orderId", description = "生产单Id", required = true) + @PreAuthorize("@ss.hasPermission('manage:pack:query')") + public CommonResult> getPlateModel (@Valid @RequestParam("orderId") Long orderId) { + + return success(optimizePlanService.getPlateModel(orderId)); + + } + + + } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/plate/PlateMapper.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/plate/PlateMapper.java index 1a7b251e6..497ea1d6a 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/plate/PlateMapper.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/plate/PlateMapper.java @@ -142,4 +142,15 @@ public interface PlateMapper extends BaseMapperX { // List selectPlateAnalysisListByArea(@Param("organId") Long organId, @Param("startTime") String startTime, @Param("endTime") String endTime); // 面积 IPage selectPlateAnalysisListByArea(@Param("page") IPage page, @Param("organId") Long organId, @Param("startTime") String startTime, @Param("endTime") String endTime); // 面积 + + default List selectPlateNum(Long orderId, Long organId) { + return selectList(new LambdaQueryWrapperX() + .eq(PlateDO::getOrganId,organId) + .eqIfPresent(PlateDO::getOrderId, orderId)); + + + } + + + } \ No newline at end of file diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/optimizeplan/OptimizePlanService.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/optimizeplan/OptimizePlanService.java index faef00978..efd479af2 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/optimizeplan/OptimizePlanService.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/optimizeplan/OptimizePlanService.java @@ -3,6 +3,7 @@ package com.cf.imes.module.executor.service.optimizeplan; import com.cf.imes.module.executor.controller.admin.plan.bo.OrderSource; import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.SavePlanPlateResultReqVO; import com.cf.imes.module.executor.controller.admin.plan.vo.*; +import com.cf.imes.module.executor.dal.dataobject.ordermodel.OrderModelDO; import java.util.List; import java.util.Map; @@ -39,5 +40,5 @@ public interface OptimizePlanService { void saveOptimizationResults(SavePlanPlateResultReqVO req); - + List getPlateModel(Long orderId); } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/optimizeplan/OptimizePlanServiceImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/optimizeplan/OptimizePlanServiceImpl.java index 918a0fc26..618f71008 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/optimizeplan/OptimizePlanServiceImpl.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/optimizeplan/OptimizePlanServiceImpl.java @@ -673,6 +673,16 @@ public class OptimizePlanServiceImpl implements OptimizePlanService { } + @Override + public List getPlateModel(Long orderId) { + + List plateDOS = plateMapper.selectPlateNum(orderId, getUserOrganId()); + + + return buildRespByOrderId(orderId, ORDER_PLATE_MODEL,plateDOS.size()); + + } + private List buildRespByOrderIds(Collection orderIds, String index, Integer size) { List fieldValues = orderIds.stream().map(FieldValue::of).toList(); diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/PackController.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/PackController.java index bb4df493b..22473a6a9 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/PackController.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/PackController.java @@ -263,9 +263,8 @@ public class PackController { @GetMapping("/getPrePackInfo") @Operation(summary = "查询预打包优化信息") - @Parameter(name = "orderId", description = "生产单Id", required = true) @PreAuthorize("@ss.hasPermission('manage:pack:query')") - public CommonResult getPrePackInfo (@Valid @RequestParam("orderId") Long orderId) { + public CommonResult getPrePackInfo ( @RequestParam("orderId") Long orderId) { return success(packService.getPrePackInfo(orderId)); diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/prePack/PrePackData.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/prePack/PrePackData.java index 78f26185f..b845ab08e 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/prePack/PrePackData.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/prePack/PrePackData.java @@ -11,6 +11,10 @@ import lombok.ToString; public class PrePackData { + @Schema(description = "包裹编号") + private String name; + + @Schema(description = "点的位置信息") private Double pointX; private Double pointY; diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/prePack/PrePackOptimizeInfo.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/prePack/PrePackOptimizeInfo.java index 675805100..c7a8d1293 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/prePack/PrePackOptimizeInfo.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/prePack/PrePackOptimizeInfo.java @@ -5,6 +5,8 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.ToString; +import javax.validation.Valid; +import javax.validation.constraints.NotNull; import java.util.List; @Schema(description = "预打包的优化结构") @@ -13,13 +15,92 @@ import java.util.List; public class PrePackOptimizeInfo { - @Schema(description = "包裹编号") - private String packNo; + @Schema(description = "分组名称") + private String groupName; @Schema(description = "优化的数据") - private List optimizeData; + private List list; + @Valid + @Data + public static class PrePackData { + + @Schema(description = "包裹编号") + private String name; + + @Schema(description = "") + private List list; + + } + + + @Valid + @Data + public static class PrerStoreyNum { + + @Schema(description = "包裹层数名称") + private String name; + + + @Schema(description = "") + private Long floor_place_width; + + @Schema(description = "") + private Long floor_place_height; + + @Schema(description = "") + private List list; + + } + + + @Valid + @Data + public static class PrerPlateData { + + @Schema(description = "小板名称") + private String name; + + + @Schema(description = "") + private String plateNo; + + @Schema(description = "") + private String plateId; + + @Schema(description = "") + private PrePlaceInfo placeInfo; + + } + + + @Valid + @Data + public static class PrePlaceInfo{ + + @Schema(description = "") + private String banid; + + @Schema(description = "") + private Double line; + + @Schema(description = "") + private Double x; + + @Schema(description = "") + private Double y; + + @Schema(description = "") + private Long pbg; + + @Schema(description = "") + private Long pbk; + + + } + + } diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/prePack/PrePackReqVO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/prePack/PrePackReqVO.java index 89ea74e76..c9b60a55d 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/prePack/PrePackReqVO.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/prePack/PrePackReqVO.java @@ -1,6 +1,7 @@ package com.cf.imes.module.manage.controller.admin.pack.prePack; +import com.alibaba.fastjson.JSONObject; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -20,13 +21,16 @@ public class PrePackReqVO { private Long orderId; +// @Schema(description = "优化信息") +// @JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY) +// private Map> optimizeInfo; + + @Schema(description = "优化信息") - @JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY) - private Map> optimizeInfo; + private String optimizeInfo; - - @Schema(description = "是否自动打包") - private Boolean isAutoPack; +// @Schema(description = "是否自动打包") +// private Boolean isAutoPack; diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/vo/PackPageReqVO.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/vo/PackPageReqVO.java index 6f010d158..4aed428d2 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/vo/PackPageReqVO.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/vo/PackPageReqVO.java @@ -36,4 +36,7 @@ public class PackPageReqVO extends PageParam { private String address; + @Schema(description = "是否翻页-true:上,false:下") + private Boolean isUp; + } diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/pack/OrderPackageMapper.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/pack/OrderPackageMapper.java index a1c518154..bf39ef5c9 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/pack/OrderPackageMapper.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/pack/OrderPackageMapper.java @@ -80,7 +80,7 @@ public interface OrderPackageMapper extends BaseMapperX { List selectOrderPack(@Param("orderId") Long orderId,@Param("organId") Long organId); - // 单个修改删除状态 + // 删除当前生产单下所有的包裹 default void updateDelete(Long orderId) { LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper() .set(OrderPackageDO::getDeleted, true) diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/process/ProductionProcessMapper.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/process/ProductionProcessMapper.java index c02a4a0e3..66c86105c 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/process/ProductionProcessMapper.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/process/ProductionProcessMapper.java @@ -9,6 +9,7 @@ import com.cf.imes.module.manage.dal.dataobject.process.OrderDO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.time.LocalDateTime; import java.util.List; /** @@ -26,4 +27,16 @@ public interface ProductionProcessMapper extends BaseMapperX { List selectPatchingPlate(PatchingPlatePageReqVO pageReqVO); + OrderDO selectOrderIds(@Param("createTime") String createTime, @Param("organId") Long organId); + + OrderDO selectOrderIdsFalse(@Param("createTime") String createTime,@Param("organId") Long organId); + + +// OrderDO selectOrderIds(@Param("orderId") Long orderId,@Param("organId") Long organId); +// +// OrderDO selectOrderIdsFalse(@Param("orderId") Long orderId,@Param("organId") Long userOrganId); + + + + } \ No newline at end of file diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/framework/rpc/config/RpcConfiguration.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/framework/rpc/config/RpcConfiguration.java index 5023818fe..3eaf416ea 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/framework/rpc/config/RpcConfiguration.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/framework/rpc/config/RpcConfiguration.java @@ -3,11 +3,12 @@ package com.cf.imes.module.manage.framework.rpc.config; import com.cf.imes.module.system.api.organ.OrganApi; import com.cf.imes.module.system.api.permission.PermissionApi; import com.cf.imes.module.system.api.process.ProcessApi; +import com.cf.imes.module.system.api.setting.SettingApi; import com.cf.imes.module.system.api.user.AdminUserApi; import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.context.annotation.Configuration; @Configuration(proxyBeanMethods = false) -@EnableFeignClients(clients = {AdminUserApi.class, OrganApi.class, ProcessApi.class, PermissionApi.class}) +@EnableFeignClients(clients = {AdminUserApi.class, OrganApi.class, ProcessApi.class, SettingApi.class,PermissionApi.class}) public class RpcConfiguration { } 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 04341b3c4..d63fde6ed 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 @@ -2,12 +2,12 @@ package com.cf.imes.module.manage.service.pack; import cn.hutool.core.collection.CollectionUtil; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; import com.cf.imes.framework.common.enums.OrderPackageStatusEnum; import com.cf.imes.framework.common.enums.OrderPackageTypeEnum; -import com.cf.imes.framework.common.enums.OrderStatusEnum; -import com.cf.imes.framework.common.enums.ProcessProcessingTypeEnum; +import com.cf.imes.framework.common.enums.UserSettingTypeEnum; import com.cf.imes.framework.common.pojo.PageResult; import com.cf.imes.framework.common.util.json.JsonUtils; import com.cf.imes.framework.common.util.object.BeanUtils; @@ -37,16 +37,23 @@ import com.cf.imes.module.manage.dal.mysql.query.ProductionStatusMapper; import com.cf.imes.module.manage.enums.OrderPackStatusEnums; import com.cf.imes.module.manage.service.process.ProductionProcessServiceImpl; import com.cf.imes.module.manage.util.SnowflakeIdWorker3rd; +import com.cf.imes.module.system.api.setting.SettingApi; +import com.cf.imes.module.system.api.setting.dto.PackageConfigDTO; +import com.fasterxml.jackson.databind.JsonNode; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; -import java.math.BigDecimal; +import java.text.SimpleDateFormat; import java.time.LocalDateTime; import java.util.*; import java.util.stream.Collectors; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; +import java.text.ParseException; + import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.cf.imes.framework.common.util.string.SearchUtil.insertSeparator; import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getLoginUser; @@ -95,32 +102,56 @@ public class PackServiceImpl implements PackService { private OrderPrepackagedMapper orderPrepackagedMapper; + @Resource + private SettingApi settingApi; + // 打包分页查询 @Override public PageResult getPackPage(PackPageReqVO pageReqVO) { - pageReqVO.setCustomer(insertSeparator(pageReqVO.getCustomer())); - pageReqVO.setCustomOrderNo(insertSeparator(pageReqVO.getCustomOrderNo())); - pageReqVO.setAddress(insertSeparator(pageReqVO.getAddress())); - PageDTO page = new PageDTO<>(pageReqVO.getPageNo(), pageReqVO.getPageSize()); - // 根据生产状态查询生产单号 - List orderIds = productionStatusMapper.selectOrderIds(pageReqVO,getUserOrganId()).stream().map(OrderDO::getId).collect(Collectors.toList()); + List orderIds = new ArrayList<>(); - if(orderIds.isEmpty()){ - return null; + if(pageReqVO.getIsUp() != null){ + + OrderDO order = productionProcessMapper.selectById(pageReqVO.getOrderId()); + +// OrderDO orderDO; +// if(pageReqVO.getIsUp()){ +// orderDO = productionProcessMapper.selectOrderIds(convertTime(orderDO1.getCreateTime().toString()), getUserOrganId()); +// +// }else { +// orderDO = productionProcessMapper.selectOrderIdsFalse(convertTime(orderDO1.getCreateTime().toString()), getUserOrganId()); +// } + + OrderDO orderDO = pageReqVO.getIsUp() ? + productionProcessMapper.selectOrderIds(convertTime(order.getCreateTime().toString()), getUserOrganId()) : + + productionProcessMapper.selectOrderIdsFalse(convertTime(order.getCreateTime().toString()), getUserOrganId()); + + if(orderDO == null){ + throw exception(NO_PRODUCTION_ORDER_INFORMATION_AVAILABLE, pageReqVO.getIsUp() ?"第" : "最后",pageReqVO.getIsUp()?"上" : "下" ); + } + + orderIds.add(orderDO.getId()); + }else { + + pageReqVO.setCustomer(insertSeparator(pageReqVO.getCustomer())); + pageReqVO.setCustomOrderNo(insertSeparator(pageReqVO.getCustomOrderNo())); + pageReqVO.setAddress(insertSeparator(pageReqVO.getAddress())); + + // 根据生产状态查询生产单号 +// List orderIds = productionStatusMapper.selectOrderIds(pageReqVO, getUserOrganId()).stream().map(OrderDO::getId).toList(); + + orderIds.addAll(productionStatusMapper.selectOrderIds(pageReqVO, getUserOrganId()).stream().map(OrderDO::getId).toList()); + + if (orderIds.isEmpty()) { + return null; + } } -// List orderProcessStepNDOS = processStepMapper.selectByOrderIds(orderIds, getUserOrganId(), ProcessProcessingTypeEnum.PACK.getNumber()); -// -// List orderIdList = orderProcessStepNDOS.stream().map(OrderProcessStepNDO::getOrderId).distinct().toList(); -// -// if(orderIdList.isEmpty()){ -// return null; -// } - // 查询打包首页分页数据信息,总的板件数量信息 IPage packRespVOS = productionStatusMapper.selectOrderPlate(page,orderIds,getUserOrganId()); @@ -139,13 +170,6 @@ public class PackServiceImpl implements PackService { // 待处理量 record.setPendingNum(record.getTotalPieceCount() - record.getPackPieceCount()); -// if(record.getPackCount() == 0) { -// record.setStatus(OrderPackStatusEnums.UNPACKAGED.getStatus()); -// } -// -// record.setStatus(record.getTotalPieceCount().equals(record.getPackPieceCount()) ? -// OrderPackStatusEnums.PACKAGED.getStatus() : OrderPackStatusEnums.INPACKAGING.getStatus()); - } if (CollectionUtil.isEmpty(packRespVOS.getRecords())) { @@ -692,12 +716,15 @@ public class PackServiceImpl implements PackService { @Override public String getPrePackInfo(Long orderId) { + OrderPrepackagedDO orderPrepackagedDO = orderPrepackagedMapper.selectOrder(orderId, getUserOrganId()); + if(orderPrepackagedDO == null){ throw exception(NO_OPTIMIZATION_INFORMATION_AVAILABLE); } + return JsonUtils.unzipString(orderPrepackagedDO.getResult()); } @@ -711,35 +738,59 @@ public class PackServiceImpl implements PackService { public void saveOptimizeInfo(PrePackReqVO reqVO) { + PackageConfigDTO userSetting = settingApi.getUserSetting(UserSettingTypeEnum.PREPACKAGED.getType()); + + String setting = userSetting.getSetting(); + + JsonNode settingParse = JsonUtils.parseTree(JsonUtils.unzipString(setting)); + + boolean autoPack = settingParse.get("autoPack").asBoolean(); + + System.out.println(autoPack); + + String optimizeInfo = reqVO.getOptimizeInfo(); + // 自动打包,包裹表新增 - if(reqVO.getIsAutoPack()){ + if(autoPack){ ArrayList orderPackageDOS = new ArrayList<>(); List packPlateNoLists = new ArrayList<>(); - reqVO.getOptimizeInfo().values().parallelStream().forEach(value -> { - value.forEach(prePackOptimizeInfo -> { + ObjectMapper objectMapper = new ObjectMapper(); + + JsonNode jsonNode = JsonUtils.parseTree(reqVO.getOptimizeInfo()); + + List asJsonObject = objectMapper.convertValue(jsonNode, new TypeReference<>() {}); + + + asJsonObject.forEach(value ->{ + + value.getList().forEach(prePackOptimizeInfo ->{ + String packageNo = generatePackageNo(); - List list = prePackOptimizeInfo.getOptimizeData().stream().map(PrePackData::getPlateNo).toList(); - - list.forEach(a -> packPlateNoLists.add(PackPlateList.builder() - .packNo(packageNo) - .plateNo(a) - .build())); - + 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 list = plate.getList().stream().map(m -> m.getPlateNo()).toList(); + list.forEach(a -> packPlateNoLists.add(PackPlateList.builder() + .packNo(packageNo) + .plateNo(a) + .build())); + }); - prePackOptimizeInfo.setPackNo(packageNo); }); + }); + optimizeInfo = JsonUtils.toJsonString(asJsonObject); + List packageDOS = orderPackageMapper.selectPackStatus(reqVO.getOrderId(), getUserOrganId()); if(!packageDOS.isEmpty()){ @@ -776,8 +827,6 @@ public class PackServiceImpl implements PackService { } - String optimizeInfo = JsonUtils.toJsonString(reqVO.getOptimizeInfo()); - OrderPrepackagedDO orderPackOptimizeDO = orderPrepackagedMapper.selectOrder(reqVO.getOrderId(), getUserOrganId()); if(orderPackOptimizeDO ==null){ @@ -874,6 +923,21 @@ public class PackServiceImpl implements PackService { + // 日期格式转换 + public static String convertTime(String input) { + + SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); + SimpleDateFormat outputFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + + try { + Date date = inputFormat.parse(input); + date.setTime(date.getTime() + 8 * 60 * 60 * 1000); // 将时间转换为东夏令时 + return outputFormat.format(date); + } catch (ParseException e) { + e.printStackTrace(); + return null; + } + } diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/process/ProductionProcessMapper.xml b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/process/ProductionProcessMapper.xml index f7afabd04..08ef851f9 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/process/ProductionProcessMapper.xml +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/process/ProductionProcessMapper.xml @@ -168,4 +168,27 @@ group by p.goods_id,orderId,customOrderId,customer,address,orderStatus,plateNum,plateName,thickness,material,color + + + + + + + + \ No newline at end of file diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/query/ProductionStatusMapper.xml b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/query/ProductionStatusMapper.xml index eff5427ba..12c68f779 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/query/ProductionStatusMapper.xml +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/query/ProductionStatusMapper.xml @@ -90,24 +90,11 @@ group by orderNo,customOrderNo,dealer,createTime,deliveryDate,customer,phoneNumber,address,salesman,splitter,packaged,dealerPhoneNumber,orderDate + order by o.create_time desc - - - - - - - - - - - - - - @@ -173,7 +160,7 @@ - + order by create_time desc diff --git a/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/api/setting/SettingApi.java b/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/api/setting/SettingApi.java new file mode 100644 index 000000000..c94772a01 --- /dev/null +++ b/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/api/setting/SettingApi.java @@ -0,0 +1,30 @@ +package com.cf.imes.module.system.api.setting; + + +import com.cf.imes.module.system.api.setting.dto.PackageConfigDTO; +import com.cf.imes.module.system.enums.ApiConstants; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; + +import java.math.BigDecimal; + +@FeignClient(name = ApiConstants.NAME) // TODO 晨丰:fallbackFactory = +@Tag(name = "RPC 服务 - 系统配置") +public interface SettingApi { + + + String PREFIX = ApiConstants.PREFIX + "/setting"; + + + @GetMapping(PREFIX + "/getUserSetting") + @Operation(summary = "查看当前用户的配置信息") + @Parameter(name = "type", description = "配置配型", required = true, example = "1") + PackageConfigDTO getUserSetting(@RequestParam("type") Integer type); + + + +} diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/api/setting/SettingApiImpl.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/api/setting/SettingApiImpl.java new file mode 100644 index 000000000..847a6ff12 --- /dev/null +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/api/setting/SettingApiImpl.java @@ -0,0 +1,34 @@ +package com.cf.imes.module.system.api.setting; + + +import com.cf.imes.framework.common.util.object.BeanUtils; +import com.cf.imes.framework.security.core.LoginUser; +import com.cf.imes.module.system.api.setting.dto.PackageConfigDTO; +import com.cf.imes.module.system.dal.dataobject.setting.PackageConfigDO; +import com.cf.imes.module.system.dal.mysql.setting.SettingMapper; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getLoginUser; + +@RestController // 提供 RESTful API 接口,给 Feign 调用 +@Validated +public class SettingApiImpl implements SettingApi{ + + + @Resource + private SettingMapper settingMapper; + + + @Override + public PackageConfigDTO getUserSetting(Integer type) { + + LoginUser loginUser = getLoginUser(); + PackageConfigDO packageConfigDO = settingMapper.selectSetting(type, loginUser.getId(), loginUser.getOrganId()); + + return BeanUtils.toBean(packageConfigDO,PackageConfigDTO.class); + + } +}