mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-12 21:02:08 +08:00
Merge remote-tracking branch 'origin/main'
This commit is contained in:
+15
@@ -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.saveOptimize.SavePlanPlateResultReqVO;
|
||||||
import com.cf.imes.module.executor.controller.admin.plan.vo.*;
|
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.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 com.cf.imes.module.executor.service.optimizeplan.OptimizePlanService;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
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.media.Schema;
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
import org.springframework.security.access.prepost.PreAuthorize;
|
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<List<OrderModelDO>> getPlateModel (@Valid @RequestParam("orderId") Long orderId) {
|
||||||
|
|
||||||
|
return success(optimizePlanService.getPlateModel(orderId));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+11
@@ -142,4 +142,15 @@ public interface PlateMapper extends BaseMapperX<PlateDO> {
|
|||||||
// List<OrderGoodsPlateRespVO> selectPlateAnalysisListByArea(@Param("organId") Long organId, @Param("startTime") String startTime, @Param("endTime") String endTime); // 面积
|
// List<OrderGoodsPlateRespVO> selectPlateAnalysisListByArea(@Param("organId") Long organId, @Param("startTime") String startTime, @Param("endTime") String endTime); // 面积
|
||||||
IPage<OrderGoodsPlateRespVO> selectPlateAnalysisListByArea(@Param("page") IPage<OrderGoodsPlateRespVO> page, @Param("organId") Long organId, @Param("startTime") String startTime, @Param("endTime") String endTime); // 面积
|
IPage<OrderGoodsPlateRespVO> selectPlateAnalysisListByArea(@Param("page") IPage<OrderGoodsPlateRespVO> page, @Param("organId") Long organId, @Param("startTime") String startTime, @Param("endTime") String endTime); // 面积
|
||||||
|
|
||||||
|
|
||||||
|
default List<PlateDO> selectPlateNum(Long orderId, Long organId) {
|
||||||
|
return selectList(new LambdaQueryWrapperX<PlateDO>()
|
||||||
|
.eq(PlateDO::getOrganId,organId)
|
||||||
|
.eqIfPresent(PlateDO::getOrderId, orderId));
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
+2
-1
@@ -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.bo.OrderSource;
|
||||||
import com.cf.imes.module.executor.controller.admin.plan.saveOptimize.SavePlanPlateResultReqVO;
|
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.plan.vo.*;
|
||||||
|
import com.cf.imes.module.executor.dal.dataobject.ordermodel.OrderModelDO;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -39,5 +40,5 @@ public interface OptimizePlanService {
|
|||||||
void saveOptimizationResults(SavePlanPlateResultReqVO req);
|
void saveOptimizationResults(SavePlanPlateResultReqVO req);
|
||||||
|
|
||||||
|
|
||||||
|
List<OrderModelDO> getPlateModel(Long orderId);
|
||||||
}
|
}
|
||||||
|
|||||||
+10
@@ -673,6 +673,16 @@ public class OptimizePlanServiceImpl implements OptimizePlanService {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<OrderModelDO> getPlateModel(Long orderId) {
|
||||||
|
|
||||||
|
List<PlateDO> plateDOS = plateMapper.selectPlateNum(orderId, getUserOrganId());
|
||||||
|
|
||||||
|
|
||||||
|
return buildRespByOrderId(orderId, ORDER_PLATE_MODEL,plateDOS.size());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private List<OrderModelDO> buildRespByOrderIds(Collection<Long> orderIds, String index, Integer size) {
|
private List<OrderModelDO> buildRespByOrderIds(Collection<Long> orderIds, String index, Integer size) {
|
||||||
List<FieldValue> fieldValues = orderIds.stream().map(FieldValue::of).toList();
|
List<FieldValue> fieldValues = orderIds.stream().map(FieldValue::of).toList();
|
||||||
|
|||||||
+1
-2
@@ -263,9 +263,8 @@ public class PackController {
|
|||||||
|
|
||||||
@GetMapping("/getPrePackInfo")
|
@GetMapping("/getPrePackInfo")
|
||||||
@Operation(summary = "查询预打包优化信息")
|
@Operation(summary = "查询预打包优化信息")
|
||||||
@Parameter(name = "orderId", description = "生产单Id", required = true)
|
|
||||||
@PreAuthorize("@ss.hasPermission('manage:pack:query')")
|
@PreAuthorize("@ss.hasPermission('manage:pack:query')")
|
||||||
public CommonResult<String> getPrePackInfo (@Valid @RequestParam("orderId") Long orderId) {
|
public CommonResult<String> getPrePackInfo ( @RequestParam("orderId") Long orderId) {
|
||||||
|
|
||||||
return success(packService.getPrePackInfo(orderId));
|
return success(packService.getPrePackInfo(orderId));
|
||||||
|
|
||||||
|
|||||||
+4
@@ -11,6 +11,10 @@ import lombok.ToString;
|
|||||||
public class PrePackData {
|
public class PrePackData {
|
||||||
|
|
||||||
|
|
||||||
|
@Schema(description = "包裹编号")
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
|
||||||
@Schema(description = "点的位置信息")
|
@Schema(description = "点的位置信息")
|
||||||
private Double pointX;
|
private Double pointX;
|
||||||
private Double pointY;
|
private Double pointY;
|
||||||
|
|||||||
+84
-3
@@ -5,6 +5,8 @@ import io.swagger.v3.oas.annotations.media.Schema;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.ToString;
|
import lombok.ToString;
|
||||||
|
|
||||||
|
import javax.validation.Valid;
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Schema(description = "预打包的优化结构")
|
@Schema(description = "预打包的优化结构")
|
||||||
@@ -13,13 +15,92 @@ import java.util.List;
|
|||||||
public class PrePackOptimizeInfo {
|
public class PrePackOptimizeInfo {
|
||||||
|
|
||||||
|
|
||||||
@Schema(description = "包裹编号")
|
@Schema(description = "分组名称")
|
||||||
private String packNo;
|
private String groupName;
|
||||||
|
|
||||||
|
|
||||||
@Schema(description = "优化的数据")
|
@Schema(description = "优化的数据")
|
||||||
private List<PrePackData> optimizeData;
|
private List<PrePackData> list;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Valid
|
||||||
|
@Data
|
||||||
|
public static class PrePackData {
|
||||||
|
|
||||||
|
@Schema(description = "包裹编号")
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
@Schema(description = "")
|
||||||
|
private List<PrerStoreyNum> 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<PrerPlateData> 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;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+9
-5
@@ -1,6 +1,7 @@
|
|||||||
package com.cf.imes.module.manage.controller.admin.pack.prePack;
|
package com.cf.imes.module.manage.controller.admin.pack.prePack;
|
||||||
|
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@@ -20,13 +21,16 @@ public class PrePackReqVO {
|
|||||||
private Long orderId;
|
private Long orderId;
|
||||||
|
|
||||||
|
|
||||||
|
// @Schema(description = "优化信息")
|
||||||
|
// @JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
|
||||||
|
// private Map<String, List<PrePackOptimizeInfo>> optimizeInfo;
|
||||||
|
|
||||||
|
|
||||||
@Schema(description = "优化信息")
|
@Schema(description = "优化信息")
|
||||||
@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
|
private String optimizeInfo;
|
||||||
private Map<String, List<PrePackOptimizeInfo>> optimizeInfo;
|
|
||||||
|
|
||||||
|
// @Schema(description = "是否自动打包")
|
||||||
@Schema(description = "是否自动打包")
|
// private Boolean isAutoPack;
|
||||||
private Boolean isAutoPack;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+3
@@ -36,4 +36,7 @@ public class PackPageReqVO extends PageParam {
|
|||||||
private String address;
|
private String address;
|
||||||
|
|
||||||
|
|
||||||
|
@Schema(description = "是否翻页-true:上,false:下")
|
||||||
|
private Boolean isUp;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+6
@@ -16,6 +16,12 @@ import java.util.List;
|
|||||||
@ExcelIgnoreUnannotated
|
@ExcelIgnoreUnannotated
|
||||||
public class PlateDetailsRespVO {
|
public class PlateDetailsRespVO {
|
||||||
|
|
||||||
|
@Schema(description = "包裹ID", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
private Long packageId;
|
||||||
|
|
||||||
|
@Schema(description = "包裹号", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
private String packageNo;
|
||||||
|
|
||||||
@Schema(description = "房间名称", requiredMode = Schema.RequiredMode.REQUIRED)
|
@Schema(description = "房间名称", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
@ExcelProperty("房间名称")
|
@ExcelProperty("房间名称")
|
||||||
private String roomName;
|
private String roomName;
|
||||||
|
|||||||
+1
-1
@@ -80,7 +80,7 @@ public interface OrderPackageMapper extends BaseMapperX<OrderPackageDO> {
|
|||||||
List<PlateAndPartIdList> selectOrderPack(@Param("orderId") Long orderId,@Param("organId") Long organId);
|
List<PlateAndPartIdList> selectOrderPack(@Param("orderId") Long orderId,@Param("organId") Long organId);
|
||||||
|
|
||||||
|
|
||||||
// 单个修改删除状态
|
// 删除当前生产单下所有的包裹
|
||||||
default void updateDelete(Long orderId) {
|
default void updateDelete(Long orderId) {
|
||||||
LambdaUpdateWrapper<OrderPackageDO> wrapper = new LambdaUpdateWrapper<OrderPackageDO>()
|
LambdaUpdateWrapper<OrderPackageDO> wrapper = new LambdaUpdateWrapper<OrderPackageDO>()
|
||||||
.set(OrderPackageDO::getDeleted, true)
|
.set(OrderPackageDO::getDeleted, true)
|
||||||
|
|||||||
+13
@@ -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.Mapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -26,4 +27,16 @@ public interface ProductionProcessMapper extends BaseMapperX<OrderDO> {
|
|||||||
List<PatchingPlateRespVO> selectPatchingPlate(PatchingPlatePageReqVO pageReqVO);
|
List<PatchingPlateRespVO> 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);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
+2
-1
@@ -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.organ.OrganApi;
|
||||||
import com.cf.imes.module.system.api.permission.PermissionApi;
|
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.process.ProcessApi;
|
||||||
|
import com.cf.imes.module.system.api.setting.SettingApi;
|
||||||
import com.cf.imes.module.system.api.user.AdminUserApi;
|
import com.cf.imes.module.system.api.user.AdminUserApi;
|
||||||
import org.springframework.cloud.openfeign.EnableFeignClients;
|
import org.springframework.cloud.openfeign.EnableFeignClients;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
|
||||||
@Configuration(proxyBeanMethods = false)
|
@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 {
|
public class RpcConfiguration {
|
||||||
}
|
}
|
||||||
|
|||||||
+114
-39
@@ -2,12 +2,12 @@ package com.cf.imes.module.manage.service.pack;
|
|||||||
|
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
|
||||||
import com.cf.imes.framework.common.enums.OrderPackageStatusEnum;
|
import com.cf.imes.framework.common.enums.OrderPackageStatusEnum;
|
||||||
import com.cf.imes.framework.common.enums.OrderPackageTypeEnum;
|
import com.cf.imes.framework.common.enums.OrderPackageTypeEnum;
|
||||||
import com.cf.imes.framework.common.enums.OrderStatusEnum;
|
import com.cf.imes.framework.common.enums.UserSettingTypeEnum;
|
||||||
import com.cf.imes.framework.common.enums.ProcessProcessingTypeEnum;
|
|
||||||
import com.cf.imes.framework.common.pojo.PageResult;
|
import com.cf.imes.framework.common.pojo.PageResult;
|
||||||
import com.cf.imes.framework.common.util.json.JsonUtils;
|
import com.cf.imes.framework.common.util.json.JsonUtils;
|
||||||
import com.cf.imes.framework.common.util.object.BeanUtils;
|
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.enums.OrderPackStatusEnums;
|
||||||
import com.cf.imes.module.manage.service.process.ProductionProcessServiceImpl;
|
import com.cf.imes.module.manage.service.process.ProductionProcessServiceImpl;
|
||||||
import com.cf.imes.module.manage.util.SnowflakeIdWorker3rd;
|
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.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.math.BigDecimal;
|
import java.text.SimpleDateFormat;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
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.exception.util.ServiceExceptionUtil.exception;
|
||||||
import static com.cf.imes.framework.common.util.string.SearchUtil.insertSeparator;
|
import static com.cf.imes.framework.common.util.string.SearchUtil.insertSeparator;
|
||||||
import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getLoginUser;
|
import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getLoginUser;
|
||||||
@@ -95,32 +102,56 @@ public class PackServiceImpl implements PackService {
|
|||||||
private OrderPrepackagedMapper orderPrepackagedMapper;
|
private OrderPrepackagedMapper orderPrepackagedMapper;
|
||||||
|
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private SettingApi settingApi;
|
||||||
|
|
||||||
|
|
||||||
// 打包分页查询
|
// 打包分页查询
|
||||||
@Override
|
@Override
|
||||||
public PageResult<PackRespVO> getPackPage(PackPageReqVO pageReqVO) {
|
public PageResult<PackRespVO> getPackPage(PackPageReqVO pageReqVO) {
|
||||||
|
|
||||||
pageReqVO.setCustomer(insertSeparator(pageReqVO.getCustomer()));
|
|
||||||
pageReqVO.setCustomOrderNo(insertSeparator(pageReqVO.getCustomOrderNo()));
|
|
||||||
pageReqVO.setAddress(insertSeparator(pageReqVO.getAddress()));
|
|
||||||
|
|
||||||
PageDTO<PackRespVO> page = new PageDTO<>(pageReqVO.getPageNo(), pageReqVO.getPageSize());
|
PageDTO<PackRespVO> page = new PageDTO<>(pageReqVO.getPageNo(), pageReqVO.getPageSize());
|
||||||
|
|
||||||
// 根据生产状态查询生产单号
|
List<Long> orderIds = new ArrayList<>();
|
||||||
List<Long> orderIds = productionStatusMapper.selectOrderIds(pageReqVO,getUserOrganId()).stream().map(OrderDO::getId).collect(Collectors.toList());
|
|
||||||
|
|
||||||
if(orderIds.isEmpty()){
|
if(pageReqVO.getIsUp() != null){
|
||||||
return 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<Long> 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<OrderProcessStepNDO> orderProcessStepNDOS = processStepMapper.selectByOrderIds(orderIds, getUserOrganId(), ProcessProcessingTypeEnum.PACK.getNumber());
|
|
||||||
//
|
|
||||||
// List<Long> orderIdList = orderProcessStepNDOS.stream().map(OrderProcessStepNDO::getOrderId).distinct().toList();
|
|
||||||
//
|
|
||||||
// if(orderIdList.isEmpty()){
|
|
||||||
// return null;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// 查询打包首页分页数据信息,总的板件数量信息
|
// 查询打包首页分页数据信息,总的板件数量信息
|
||||||
IPage<PackRespVO> packRespVOS = productionStatusMapper.selectOrderPlate(page,orderIds,getUserOrganId());
|
IPage<PackRespVO> packRespVOS = productionStatusMapper.selectOrderPlate(page,orderIds,getUserOrganId());
|
||||||
|
|
||||||
@@ -139,13 +170,6 @@ public class PackServiceImpl implements PackService {
|
|||||||
// 待处理量
|
// 待处理量
|
||||||
record.setPendingNum(record.getTotalPieceCount() - record.getPackPieceCount());
|
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())) {
|
if (CollectionUtil.isEmpty(packRespVOS.getRecords())) {
|
||||||
@@ -196,6 +220,12 @@ public class PackServiceImpl implements PackService {
|
|||||||
|
|
||||||
List<PlateDetailsRespVO> plateDetailsRespVOS = orderItemMapper.selectOrdersPlateList(orderIds, getUserOrganId());
|
List<PlateDetailsRespVO> plateDetailsRespVOS = orderItemMapper.selectOrdersPlateList(orderIds, getUserOrganId());
|
||||||
|
|
||||||
|
List<Long> packageIds = plateDetailsRespVOS.stream().map(PlateDetailsRespVO::getPackageId).distinct().toList();
|
||||||
|
|
||||||
|
List<OrderPackageDO> orderPackageDOS = orderPackageMapper.selectBatchIds(packageIds);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
for (PlateDetailsRespVO plateDetailsRespVO : plateDetailsRespVOS) {
|
for (PlateDetailsRespVO plateDetailsRespVO : plateDetailsRespVOS) {
|
||||||
String name = "";
|
String name = "";
|
||||||
if(!plateDetailsRespVO.getProcessGroupNameList().isEmpty()) {
|
if(!plateDetailsRespVO.getProcessGroupNameList().isEmpty()) {
|
||||||
@@ -206,6 +236,11 @@ public class PackServiceImpl implements PackService {
|
|||||||
name = name.substring(0, name.length() - 1);
|
name = name.substring(0, name.length() - 1);
|
||||||
}
|
}
|
||||||
plateDetailsRespVO.setProcessGroup(name);
|
plateDetailsRespVO.setProcessGroup(name);
|
||||||
|
|
||||||
|
plateDetailsRespVO.setPackageNo(orderPackageDOS.stream()
|
||||||
|
.filter(m -> m.getId().equals(plateDetailsRespVO.getPackageId()))
|
||||||
|
.map(OrderPackageDO::getPackageNo).findFirst().orElse(""));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return plateDetailsRespVOS;
|
return plateDetailsRespVOS;
|
||||||
@@ -692,12 +727,15 @@ public class PackServiceImpl implements PackService {
|
|||||||
@Override
|
@Override
|
||||||
public String getPrePackInfo(Long orderId) {
|
public String getPrePackInfo(Long orderId) {
|
||||||
|
|
||||||
|
|
||||||
OrderPrepackagedDO orderPrepackagedDO = orderPrepackagedMapper.selectOrder(orderId, getUserOrganId());
|
OrderPrepackagedDO orderPrepackagedDO = orderPrepackagedMapper.selectOrder(orderId, getUserOrganId());
|
||||||
|
|
||||||
|
|
||||||
if(orderPrepackagedDO == null){
|
if(orderPrepackagedDO == null){
|
||||||
throw exception(NO_OPTIMIZATION_INFORMATION_AVAILABLE);
|
throw exception(NO_OPTIMIZATION_INFORMATION_AVAILABLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return JsonUtils.unzipString(orderPrepackagedDO.getResult());
|
return JsonUtils.unzipString(orderPrepackagedDO.getResult());
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -711,35 +749,59 @@ public class PackServiceImpl implements PackService {
|
|||||||
public void saveOptimizeInfo(PrePackReqVO reqVO) {
|
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<OrderPackageDO> orderPackageDOS = new ArrayList<>();
|
ArrayList<OrderPackageDO> orderPackageDOS = new ArrayList<>();
|
||||||
|
|
||||||
List<PackPlateList> packPlateNoLists = new ArrayList<>();
|
List<PackPlateList> packPlateNoLists = new ArrayList<>();
|
||||||
|
|
||||||
reqVO.getOptimizeInfo().values().parallelStream().forEach(value -> {
|
ObjectMapper objectMapper = new ObjectMapper();
|
||||||
value.forEach(prePackOptimizeInfo -> {
|
|
||||||
|
JsonNode jsonNode = JsonUtils.parseTree(reqVO.getOptimizeInfo());
|
||||||
|
|
||||||
|
List<PrePackOptimizeInfo> asJsonObject = objectMapper.convertValue(jsonNode, new TypeReference<>() {});
|
||||||
|
|
||||||
|
|
||||||
|
asJsonObject.forEach(value ->{
|
||||||
|
|
||||||
|
value.getList().forEach(prePackOptimizeInfo ->{
|
||||||
|
|
||||||
String packageNo = generatePackageNo();
|
String packageNo = generatePackageNo();
|
||||||
List<String> list = prePackOptimizeInfo.getOptimizeData().stream().map(PrePackData::getPlateNo).toList();
|
prePackOptimizeInfo.setName(packageNo);
|
||||||
|
|
||||||
list.forEach(a -> packPlateNoLists.add(PackPlateList.builder()
|
|
||||||
.packNo(packageNo)
|
|
||||||
.plateNo(a)
|
|
||||||
.build()));
|
|
||||||
|
|
||||||
orderPackageDOS.add(OrderPackageDO.builder()
|
orderPackageDOS.add(OrderPackageDO.builder()
|
||||||
.packageNo(packageNo)
|
.packageNo(packageNo)
|
||||||
.type(OrderPackageTypeEnum.PLATE.getType())
|
.type(OrderPackageTypeEnum.PLATE.getType())
|
||||||
.orderId(reqVO.getOrderId())
|
.orderId(reqVO.getOrderId())
|
||||||
.status(OrderPackageStatusEnum.PACKAGED.getStatus())
|
.status(OrderPackageStatusEnum.PACKAGED.getStatus())
|
||||||
.build());
|
.build());
|
||||||
|
prePackOptimizeInfo.getList().forEach(plate ->{
|
||||||
|
List<String> 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<OrderPackageDO> packageDOS = orderPackageMapper.selectPackStatus(reqVO.getOrderId(), getUserOrganId());
|
List<OrderPackageDO> packageDOS = orderPackageMapper.selectPackStatus(reqVO.getOrderId(), getUserOrganId());
|
||||||
|
|
||||||
if(!packageDOS.isEmpty()){
|
if(!packageDOS.isEmpty()){
|
||||||
@@ -776,8 +838,6 @@ public class PackServiceImpl implements PackService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
String optimizeInfo = JsonUtils.toJsonString(reqVO.getOptimizeInfo());
|
|
||||||
|
|
||||||
OrderPrepackagedDO orderPackOptimizeDO = orderPrepackagedMapper.selectOrder(reqVO.getOrderId(), getUserOrganId());
|
OrderPrepackagedDO orderPackOptimizeDO = orderPrepackagedMapper.selectOrder(reqVO.getOrderId(), getUserOrganId());
|
||||||
|
|
||||||
if(orderPackOptimizeDO ==null){
|
if(orderPackOptimizeDO ==null){
|
||||||
@@ -874,6 +934,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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+23
@@ -168,4 +168,27 @@
|
|||||||
group by p.goods_id,orderId,customOrderId,customer,address,orderStatus,plateNum,plateName,thickness,material,color
|
group by p.goods_id,orderId,customOrderId,customer,address,orderStatus,plateNum,plateName,thickness,material,color
|
||||||
|
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="selectOrderIds" resultType="com.cf.imes.module.manage.dal.dataobject.process.OrderDO">
|
||||||
|
|
||||||
|
SELECT * FROM orders
|
||||||
|
WHERE create_time > #{createTime} and organ_id = #{organId} and deleted = false
|
||||||
|
ORDER BY create_time
|
||||||
|
LIMIT 1 ;
|
||||||
|
|
||||||
|
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<select id="selectOrderIdsFalse" resultType="com.cf.imes.module.manage.dal.dataobject.process.OrderDO">
|
||||||
|
|
||||||
|
SELECT * FROM orders
|
||||||
|
WHERE create_time < #{createTime} and organ_id = #{organId} and deleted = false
|
||||||
|
ORDER BY create_time desc
|
||||||
|
LIMIT 1 ;
|
||||||
|
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
+2
@@ -118,6 +118,7 @@
|
|||||||
|
|
||||||
|
|
||||||
<resultMap id="PlateDetailsMap" type="com.cf.imes.module.manage.controller.admin.pack.vo.PlateDetailsRespVO">
|
<resultMap id="PlateDetailsMap" type="com.cf.imes.module.manage.controller.admin.pack.vo.PlateDetailsRespVO">
|
||||||
|
<result property="packageId" column="packageId"/>
|
||||||
<result property="roomName" column="roomName"/>
|
<result property="roomName" column="roomName"/>
|
||||||
<result property="cabinetName" column="bodyName"/>
|
<result property="cabinetName" column="bodyName"/>
|
||||||
<result property="plateId" column="plateId"/>
|
<result property="plateId" column="plateId"/>
|
||||||
@@ -429,6 +430,7 @@
|
|||||||
|
|
||||||
|
|
||||||
select distinct
|
select distinct
|
||||||
|
oi.package_id as packageId,
|
||||||
og.name as name,
|
og.name as name,
|
||||||
ob.room_name as roomName,
|
ob.room_name as roomName,
|
||||||
ob.name as bodyName,
|
ob.name as bodyName,
|
||||||
|
|||||||
+2
-15
@@ -90,24 +90,11 @@
|
|||||||
|
|
||||||
group by orderNo,customOrderNo,dealer,createTime,deliveryDate,customer,phoneNumber,address,salesman,splitter,packaged,dealerPhoneNumber,orderDate
|
group by orderNo,customOrderNo,dealer,createTime,deliveryDate,customer,phoneNumber,address,salesman,splitter,packaged,dealerPhoneNumber,orderDate
|
||||||
|
|
||||||
|
order by o.create_time desc
|
||||||
|
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
<!-- -- count(distinct-->
|
|
||||||
<!-- -- case-->
|
|
||||||
<!-- -- when oi.package_id!=0 then oi.package_id end-->
|
|
||||||
<!-- -- ) as packCount,-->
|
|
||||||
<!-- -- count(distinct case-->
|
|
||||||
<!-- -- when oi.package_id !=0 and oi.parts_id = 0 then oi.plate_id end )as packPieceCount,-->
|
|
||||||
<!-- -- count(distinct-->
|
|
||||||
<!-- -- case-->
|
|
||||||
<!-- -- when oi.plate_id !=0 then oi.plate_id end-->
|
|
||||||
<!-- -- )as totalPieceCount-->
|
|
||||||
|
|
||||||
<!-- -- group by orderNo,customOrderNo,dealer,createTime,deliveryDate,customer,phoneNumber,address,salesman,splitter,status;-->
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<resultMap id="PrintMap" type="com.cf.imes.module.manage.controller.admin.pack.vo.PrintOrderPackRespVO">
|
<resultMap id="PrintMap" type="com.cf.imes.module.manage.controller.admin.pack.vo.PrintOrderPackRespVO">
|
||||||
<result property="customOrderNo" column="customOrderNo"/>
|
<result property="customOrderNo" column="customOrderNo"/>
|
||||||
@@ -173,7 +160,7 @@
|
|||||||
|
|
||||||
</where>
|
</where>
|
||||||
|
|
||||||
|
order by create_time desc
|
||||||
|
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|||||||
+30
@@ -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);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
+37
@@ -0,0 +1,37 @@
|
|||||||
|
package com.cf.imes.module.system.api.setting.dto;
|
||||||
|
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class PackageConfigDTO {
|
||||||
|
|
||||||
|
@Schema(description = "主键")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
|
||||||
|
@Schema(description = "组织ID")
|
||||||
|
private Long organId;
|
||||||
|
|
||||||
|
|
||||||
|
@Schema(description = "用户ID")
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
|
|
||||||
|
@Schema(description = "配置类型: 1 预打包,2 打包", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
private Integer type;
|
||||||
|
|
||||||
|
|
||||||
|
@Schema(description = "配置信息", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
private String setting;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
+34
@@ -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);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user