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.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<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); // 面积
|
||||
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.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<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) {
|
||||
List<FieldValue> fieldValues = orderIds.stream().map(FieldValue::of).toList();
|
||||
|
||||
+1
-2
@@ -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<String> getPrePackInfo (@Valid @RequestParam("orderId") Long orderId) {
|
||||
public CommonResult<String> getPrePackInfo ( @RequestParam("orderId") Long orderId) {
|
||||
|
||||
return success(packService.getPrePackInfo(orderId));
|
||||
|
||||
|
||||
+4
@@ -11,6 +11,10 @@ import lombok.ToString;
|
||||
public class PrePackData {
|
||||
|
||||
|
||||
@Schema(description = "包裹编号")
|
||||
private String name;
|
||||
|
||||
|
||||
@Schema(description = "点的位置信息")
|
||||
private Double pointX;
|
||||
private Double pointY;
|
||||
|
||||
+84
-3
@@ -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<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;
|
||||
|
||||
|
||||
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<String, List<PrePackOptimizeInfo>> optimizeInfo;
|
||||
|
||||
|
||||
@Schema(description = "优化信息")
|
||||
@JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)
|
||||
private Map<String, List<PrePackOptimizeInfo>> optimizeInfo;
|
||||
private String optimizeInfo;
|
||||
|
||||
|
||||
@Schema(description = "是否自动打包")
|
||||
private Boolean isAutoPack;
|
||||
// @Schema(description = "是否自动打包")
|
||||
// private Boolean isAutoPack;
|
||||
|
||||
|
||||
|
||||
|
||||
+3
@@ -36,4 +36,7 @@ public class PackPageReqVO extends PageParam {
|
||||
private String address;
|
||||
|
||||
|
||||
@Schema(description = "是否翻页-true:上,false:下")
|
||||
private Boolean isUp;
|
||||
|
||||
}
|
||||
|
||||
+6
@@ -16,6 +16,12 @@ import java.util.List;
|
||||
@ExcelIgnoreUnannotated
|
||||
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)
|
||||
@ExcelProperty("房间名称")
|
||||
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);
|
||||
|
||||
|
||||
// 单个修改删除状态
|
||||
// 删除当前生产单下所有的包裹
|
||||
default void updateDelete(Long orderId) {
|
||||
LambdaUpdateWrapper<OrderPackageDO> wrapper = new LambdaUpdateWrapper<OrderPackageDO>()
|
||||
.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.Param;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@@ -26,4 +27,16 @@ public interface ProductionProcessMapper extends BaseMapperX<OrderDO> {
|
||||
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.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 {
|
||||
}
|
||||
|
||||
+114
-39
@@ -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<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());
|
||||
|
||||
// 根据生产状态查询生产单号
|
||||
List<Long> orderIds = productionStatusMapper.selectOrderIds(pageReqVO,getUserOrganId()).stream().map(OrderDO::getId).collect(Collectors.toList());
|
||||
List<Long> 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<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());
|
||||
|
||||
@@ -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())) {
|
||||
@@ -196,6 +220,12 @@ public class PackServiceImpl implements PackService {
|
||||
|
||||
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) {
|
||||
String name = "";
|
||||
if(!plateDetailsRespVO.getProcessGroupNameList().isEmpty()) {
|
||||
@@ -206,6 +236,11 @@ public class PackServiceImpl implements PackService {
|
||||
name = name.substring(0, name.length() - 1);
|
||||
}
|
||||
plateDetailsRespVO.setProcessGroup(name);
|
||||
|
||||
plateDetailsRespVO.setPackageNo(orderPackageDOS.stream()
|
||||
.filter(m -> m.getId().equals(plateDetailsRespVO.getPackageId()))
|
||||
.map(OrderPackageDO::getPackageNo).findFirst().orElse(""));
|
||||
|
||||
}
|
||||
|
||||
return plateDetailsRespVOS;
|
||||
@@ -692,12 +727,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 +749,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<OrderPackageDO> orderPackageDOS = new ArrayList<>();
|
||||
|
||||
List<PackPlateList> packPlateNoLists = new ArrayList<>();
|
||||
|
||||
reqVO.getOptimizeInfo().values().parallelStream().forEach(value -> {
|
||||
value.forEach(prePackOptimizeInfo -> {
|
||||
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();
|
||||
List<String> 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<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());
|
||||
|
||||
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());
|
||||
|
||||
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
|
||||
|
||||
</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>
|
||||
+2
@@ -118,6 +118,7 @@
|
||||
|
||||
|
||||
<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="cabinetName" column="bodyName"/>
|
||||
<result property="plateId" column="plateId"/>
|
||||
@@ -429,6 +430,7 @@
|
||||
|
||||
|
||||
select distinct
|
||||
oi.package_id as packageId,
|
||||
og.name as name,
|
||||
ob.room_name as roomName,
|
||||
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
|
||||
|
||||
order by o.create_time desc
|
||||
|
||||
</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">
|
||||
<result property="customOrderNo" column="customOrderNo"/>
|
||||
@@ -173,7 +160,7 @@
|
||||
|
||||
</where>
|
||||
|
||||
|
||||
order by create_time desc
|
||||
|
||||
</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