新增webcad生产单导入:1、移除封边条配件对应逻辑;2、新增封边条宽度通过系统配置匹配宽度值逻辑;

This commit is contained in:
gaoqr
2025-03-21 14:47:15 +08:00
parent 17548d99b9
commit 4fe67c9dbd
7 changed files with 197 additions and 65 deletions
@@ -15,6 +15,7 @@ public class ErrorCodeConstants {
public static final ErrorCode WEBCAD_ORDER_IMPORT_ORGANID_EMPTY_ERROR = new ErrorCode(1_005_000_005, "导入失败:无法获取机构信息,请检查cadtoken是否配置正确"); public static final ErrorCode WEBCAD_ORDER_IMPORT_ORGANID_EMPTY_ERROR = new ErrorCode(1_005_000_005, "导入失败:无法获取机构信息,请检查cadtoken是否配置正确");
public static final ErrorCode WEBCAD_ORDER_IMPORT_FAILED = new ErrorCode(1_005_000_006, "导入失败:请检查拆单数据"); public static final ErrorCode WEBCAD_ORDER_IMPORT_FAILED = new ErrorCode(1_005_000_006, "导入失败:请检查拆单数据");
public static final ErrorCode WEBCAD_ORDER_IMPORT_PLATE_NOT_EXIST_ERROR = new ErrorCode(1_005_000_007, "导入失败:板材对应失败,板材库中不存在对应板材【{}】"); public static final ErrorCode WEBCAD_ORDER_IMPORT_PLATE_NOT_EXIST_ERROR = new ErrorCode(1_005_000_007, "导入失败:板材对应失败,板材库中不存在对应板材【{}】");
public static final ErrorCode WEBCAD_ORDER_IMPORT_SEAL_NOT_EXIST_ERROR = new ErrorCode(1_005_000_008, "导入失败:封边条对应失败,配件库中不存在对应封边条【{}】"); public static final ErrorCode WEBCAD_ORDER_IMPORT_SAVEDATA_ERROR = new ErrorCode(1_005_000_008, "导入失败:数据保存异常,请检查拆单数据");
public static final ErrorCode WEBCAD_ORDER_IMPORT_SAVEDATA_ERROR = new ErrorCode(1_005_000_009, "导入失败:数据保存异常,请检查拆单数据"); public static final ErrorCode WEBCAD_ORDER_IMPORT_GET_ORG_SEALEDGE_ERROR = new ErrorCode(1_005_000_009, "导入失败:获取组织封边对应配置异常,请检查服务");
public static final ErrorCode WEBCAD_ORDER_IMPORT_ORG_SEALEDGE_ANALYZE_ERROR = new ErrorCode(1_005_000_010, "导入失败:组织封边对应配置解析异常,请检查配置");
} }
@@ -58,16 +58,14 @@ public class WebCadDataPartsReqVO {
private String remark; private String remark;
private String goodsId;
private String partId;
private Integer objectId; private Integer objectId;
private Long imesPartsId; private Long imesPartsId;
private List<WebCadDataBlockReqVO.GroupInfo> groupInfos = new ArrayList<>(); private List<WebCadDataBlockReqVO.GroupInfo> groupInfos = new ArrayList<>();
private GroupDataDTO groupData;
@NoArgsConstructor @NoArgsConstructor
@Data @Data
public static class GroupInfo { public static class GroupInfo {
@@ -77,6 +75,21 @@ public class WebCadDataPartsReqVO {
private Double height; private Double height;
private Double depth; private Double depth;
} }
@NoArgsConstructor
@Data
public static class GroupDataDTO {
@JsonProperty("size")
private Integer size;
@JsonProperty("material")
private String material;
@JsonProperty("boardName")
private String boardName;
@JsonProperty("thickness")
private Integer thickness;
@JsonProperty("color")
private String color;
}
} }
@NoArgsConstructor @NoArgsConstructor
@@ -16,13 +16,13 @@ import com.cf.imes.module.plan.dal.mysql.orderBody.OrderBodyMapper;
import com.cf.imes.module.plan.dal.mysql.orderGroup.OrderGroupMapper; import com.cf.imes.module.plan.dal.mysql.orderGroup.OrderGroupMapper;
import com.cf.imes.module.plan.dal.mysql.orderItem.OrderItemMapper; import com.cf.imes.module.plan.dal.mysql.orderItem.OrderItemMapper;
import com.cf.imes.module.plan.dal.mysql.orderParts.OrderPartsMapper; import com.cf.imes.module.plan.dal.mysql.orderParts.OrderPartsMapper;
import com.cf.imes.module.plan.dal.mysql.orderParts.PartsMapper;
import com.cf.imes.module.plan.dal.mysql.plate.PlateGoodMapper; import com.cf.imes.module.plan.dal.mysql.plate.PlateGoodMapper;
import com.cf.imes.module.plan.dal.mysql.plate.PlateMapper; import com.cf.imes.module.plan.dal.mysql.plate.PlateMapper;
import com.cf.imes.module.plan.dal.mysql.rawgoods.RawGoodsMapper; import com.cf.imes.module.plan.dal.mysql.rawgoods.RawGoodsMapper;
import com.cf.imes.module.plan.service.customplateno.CustomPlateNoGenerateService; import com.cf.imes.module.plan.service.customplateno.CustomPlateNoGenerateService;
import com.cf.imes.module.plan.service.order.OrderInputProcessor; import com.cf.imes.module.plan.service.order.OrderInputProcessor;
import com.cf.imes.module.plan.service.orderImport.factory.WebCadOrderImportFactory; import com.cf.imes.module.plan.service.orderImport.factory.WebCadOrderImportFactory;
import com.cf.imes.module.system.api.systemconfig.SystemConfigApi;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.jdbc.datasource.DataSourceTransactionManager; import org.springframework.jdbc.datasource.DataSourceTransactionManager;
@@ -69,9 +69,6 @@ public class WebCadOrderImportServiceImpl implements WebCadOrderImportService {
@Resource @Resource
private OrderInputProcessor orderInputProcessor; private OrderInputProcessor orderInputProcessor;
@Resource
private PartsMapper partsMapper;
@Resource @Resource
private OrderPartsMapper orderPartsMapper; private OrderPartsMapper orderPartsMapper;
@@ -96,6 +93,9 @@ public class WebCadOrderImportServiceImpl implements WebCadOrderImportService {
@Resource @Resource
private DataSourceTransactionManager transactionManager; private DataSourceTransactionManager transactionManager;
@Resource
private SystemConfigApi systemConfigApi;
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void webCadOrderImport(WebCadDataReqVO webCadDataReqVO) { public void webCadOrderImport(WebCadDataReqVO webCadDataReqVO) {
@@ -112,7 +112,7 @@ public class WebCadOrderImportServiceImpl implements WebCadOrderImportService {
throw new ServiceException(ORDER_IMPORT_ORGAN_LOCK_ERROR); throw new ServiceException(ORDER_IMPORT_ORGAN_LOCK_ERROR);
} }
WebCadOrderImportFactory webCadOrderImportFactory = new WebCadOrderImportFactory(organId, orderMapper, snowFlakeGenerator, orderBodyMapper, plateMapper, orderItemMapper, orderGroupMapper, WebCadOrderImportFactory webCadOrderImportFactory = new WebCadOrderImportFactory(organId, orderMapper, snowFlakeGenerator, orderBodyMapper, plateMapper, orderItemMapper, orderGroupMapper,
idWorker, orderInputProcessor, partsMapper, orderPartsMapper, goodsMapper, rawGoodsMapper, plateGoodMapper, customPlateNoGenerateService, transactionManager); idWorker, orderInputProcessor, orderPartsMapper, goodsMapper, rawGoodsMapper, plateGoodMapper, customPlateNoGenerateService, transactionManager, systemConfigApi);
webCadOrderImportFactory.analyzeTempData(webCadDataReqVO); webCadOrderImportFactory.analyzeTempData(webCadDataReqVO);
} catch (ServiceException se) { } catch (ServiceException se) {
throw se; throw se;
@@ -6,10 +6,14 @@ import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.alibaba.excel.util.ListUtils; import com.alibaba.excel.util.ListUtils;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder; import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.cf.imes.framework.common.exception.ErrorCode;
import com.cf.imes.framework.common.exception.ServiceException; import com.cf.imes.framework.common.exception.ServiceException;
import com.cf.imes.framework.common.exception.util.ServiceExceptionUtil; import com.cf.imes.framework.common.exception.util.ServiceExceptionUtil;
import com.cf.imes.framework.common.pojo.CommonResult;
import com.cf.imes.framework.id.core.util.SnowflakeIdWorker3rd; import com.cf.imes.framework.id.core.util.SnowflakeIdWorker3rd;
import com.cf.imes.framework.mybatis.core.generator.SnowFlakeGenerator; import com.cf.imes.framework.mybatis.core.generator.SnowFlakeGenerator;
import com.cf.imes.framework.mybatis.core.injector.BaseBatchMapper; import com.cf.imes.framework.mybatis.core.injector.BaseBatchMapper;
@@ -30,7 +34,6 @@ import com.cf.imes.module.plan.dal.dataobject.orderBody.OrderBodyDO;
import com.cf.imes.module.plan.dal.dataobject.orderGroup.OrderGroupDO; import com.cf.imes.module.plan.dal.dataobject.orderGroup.OrderGroupDO;
import com.cf.imes.module.plan.dal.dataobject.orderItem.OrderItemDO; import com.cf.imes.module.plan.dal.dataobject.orderItem.OrderItemDO;
import com.cf.imes.module.plan.dal.dataobject.orderParts.OrderPartsDO; import com.cf.imes.module.plan.dal.dataobject.orderParts.OrderPartsDO;
import com.cf.imes.module.plan.dal.dataobject.orderParts.PartsDO;
import com.cf.imes.module.plan.dal.dataobject.ordermodel.OrderModelDO; import com.cf.imes.module.plan.dal.dataobject.ordermodel.OrderModelDO;
import com.cf.imes.module.plan.dal.dataobject.plate.PlateDO; import com.cf.imes.module.plan.dal.dataobject.plate.PlateDO;
import com.cf.imes.module.plan.dal.dataobject.plate.PlateGoodDO; import com.cf.imes.module.plan.dal.dataobject.plate.PlateGoodDO;
@@ -41,13 +44,15 @@ import com.cf.imes.module.plan.dal.mysql.orderBody.OrderBodyMapper;
import com.cf.imes.module.plan.dal.mysql.orderGroup.OrderGroupMapper; import com.cf.imes.module.plan.dal.mysql.orderGroup.OrderGroupMapper;
import com.cf.imes.module.plan.dal.mysql.orderItem.OrderItemMapper; import com.cf.imes.module.plan.dal.mysql.orderItem.OrderItemMapper;
import com.cf.imes.module.plan.dal.mysql.orderParts.OrderPartsMapper; import com.cf.imes.module.plan.dal.mysql.orderParts.OrderPartsMapper;
import com.cf.imes.module.plan.dal.mysql.orderParts.PartsMapper;
import com.cf.imes.module.plan.dal.mysql.plate.PlateGoodMapper; import com.cf.imes.module.plan.dal.mysql.plate.PlateGoodMapper;
import com.cf.imes.module.plan.dal.mysql.plate.PlateMapper; import com.cf.imes.module.plan.dal.mysql.plate.PlateMapper;
import com.cf.imes.module.plan.dal.mysql.rawgoods.RawGoodsMapper; import com.cf.imes.module.plan.dal.mysql.rawgoods.RawGoodsMapper;
import com.cf.imes.module.plan.service.customplateno.CustomPlateNoGenerateService; import com.cf.imes.module.plan.service.customplateno.CustomPlateNoGenerateService;
import com.cf.imes.module.plan.service.customplateno.vo.CustomPlateNoGenerateConfigVO; import com.cf.imes.module.plan.service.customplateno.vo.CustomPlateNoGenerateConfigVO;
import com.cf.imes.module.plan.service.order.OrderInputProcessor; import com.cf.imes.module.plan.service.order.OrderInputProcessor;
import com.cf.imes.module.system.api.systemconfig.SystemConfigApi;
import com.cf.imes.module.system.api.systemconfig.dto.SystemConfigRespDTO;
import com.cf.imes.module.system.api.systemconfig.dto.SystemConfigSealEdgeRespDTO;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.springframework.jdbc.datasource.DataSourceTransactionManager; import org.springframework.jdbc.datasource.DataSourceTransactionManager;
@@ -56,6 +61,7 @@ import org.springframework.transaction.TransactionStatus;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
@@ -67,9 +73,10 @@ import java.util.concurrent.Executors;
import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicBoolean;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static com.cf.imes.module.plan.enums.ErrorCodeConstants.WEBCAD_ORDER_IMPORT_GET_ORG_SEALEDGE_ERROR;
import static com.cf.imes.module.plan.enums.ErrorCodeConstants.WEBCAD_ORDER_IMPORT_ORG_SEALEDGE_ANALYZE_ERROR;
import static com.cf.imes.module.plan.enums.ErrorCodeConstants.WEBCAD_ORDER_IMPORT_PLATE_NOT_EXIST_ERROR; import static com.cf.imes.module.plan.enums.ErrorCodeConstants.WEBCAD_ORDER_IMPORT_PLATE_NOT_EXIST_ERROR;
import static com.cf.imes.module.plan.enums.ErrorCodeConstants.WEBCAD_ORDER_IMPORT_SAVEDATA_ERROR; import static com.cf.imes.module.plan.enums.ErrorCodeConstants.WEBCAD_ORDER_IMPORT_SAVEDATA_ERROR;
import static com.cf.imes.module.plan.enums.ErrorCodeConstants.WEBCAD_ORDER_IMPORT_SEAL_NOT_EXIST_ERROR;
import static com.cf.imes.module.plan.enums.ErrorCodeConstants.WEBCAD_ORDER_NOT_EXISTS_ERROR; import static com.cf.imes.module.plan.enums.ErrorCodeConstants.WEBCAD_ORDER_NOT_EXISTS_ERROR;
import static com.cf.imes.module.plan.service.order.OrderInputProcessor.ORDER_PLATE_MODEL; import static com.cf.imes.module.plan.service.order.OrderInputProcessor.ORDER_PLATE_MODEL;
@@ -102,7 +109,7 @@ public class WebCadOrderImportFactory {
private OrderInputProcessor orderInputProcessor; private OrderInputProcessor orderInputProcessor;
private PartsMapper partsMapper; private SystemConfigApi systemConfigApi;
private OrderPartsMapper orderPartsMapper; private OrderPartsMapper orderPartsMapper;
@@ -154,6 +161,7 @@ public class WebCadOrderImportFactory {
private List<OrderModelDO> orderModelDOS = ListUtils.newArrayListWithExpectedSize(BATCH_THRESHOLD_NUMBER); private List<OrderModelDO> orderModelDOS = ListUtils.newArrayListWithExpectedSize(BATCH_THRESHOLD_NUMBER);
private List<RawGoodsDO> rawGoodsDOS = ListUtils.newArrayListWithExpectedSize(BATCH_THRESHOLD_NUMBER); private List<RawGoodsDO> rawGoodsDOS = ListUtils.newArrayListWithExpectedSize(BATCH_THRESHOLD_NUMBER);
private List<GoodsDO> goodsDOS = ListUtils.newArrayListWithExpectedSize(BATCH_THRESHOLD_NUMBER); private List<GoodsDO> goodsDOS = ListUtils.newArrayListWithExpectedSize(BATCH_THRESHOLD_NUMBER);
private List<SystemConfigSealEdgeRespDTO> sealEdgeConfigList;
private static String PART_CATEGORY_ONE = "封边条"; private static String PART_CATEGORY_ONE = "封边条";
@@ -170,13 +178,13 @@ public class WebCadOrderImportFactory {
OrderGroupMapper orderGroupMapper, OrderGroupMapper orderGroupMapper,
SnowflakeIdWorker3rd idWorker, SnowflakeIdWorker3rd idWorker,
OrderInputProcessor orderInputProcessor, OrderInputProcessor orderInputProcessor,
PartsMapper partsMapper,
OrderPartsMapper orderPartsMapper, OrderPartsMapper orderPartsMapper,
GoodsMapper goodsMapper, GoodsMapper goodsMapper,
RawGoodsMapper rawGoodsMapper, RawGoodsMapper rawGoodsMapper,
PlateGoodMapper plateGoodMapper, PlateGoodMapper plateGoodMapper,
CustomPlateNoGenerateService customPlateNoGenerateService, CustomPlateNoGenerateService customPlateNoGenerateService,
DataSourceTransactionManager transactionManager) { DataSourceTransactionManager transactionManager,
SystemConfigApi systemConfigApi) {
this.organId = organId; this.organId = organId;
this.orderMapper = orderMapper; this.orderMapper = orderMapper;
this.snowFlakeGenerator = snowFlakeGenerator; this.snowFlakeGenerator = snowFlakeGenerator;
@@ -186,16 +194,17 @@ public class WebCadOrderImportFactory {
this.orderGroupMapper = orderGroupMapper; this.orderGroupMapper = orderGroupMapper;
this.idWorker = idWorker; this.idWorker = idWorker;
this.orderInputProcessor = orderInputProcessor; this.orderInputProcessor = orderInputProcessor;
this.partsMapper = partsMapper;
this.orderPartsMapper = orderPartsMapper; this.orderPartsMapper = orderPartsMapper;
this.goodsMapper = goodsMapper; this.goodsMapper = goodsMapper;
this.rawGoodsMapper = rawGoodsMapper; this.rawGoodsMapper = rawGoodsMapper;
this.plateGoodMapper = plateGoodMapper; this.plateGoodMapper = plateGoodMapper;
this.customPlateNoGenerateService = customPlateNoGenerateService; this.customPlateNoGenerateService = customPlateNoGenerateService;
this.transactionManager = transactionManager; this.transactionManager = transactionManager;
this.systemConfigApi = systemConfigApi;
operatorName = SecurityFrameworkUtils.getLoginUser().getNickname(); operatorName = SecurityFrameworkUtils.getLoginUser().getNickname();
now = LocalDateTime.now(); now = LocalDateTime.now();
batchId = (Long) snowFlakeGenerator.nextId(null); batchId = (Long) snowFlakeGenerator.nextId(null);
sealEdgeConfigList = new ArrayList<>();
} }
public void analyzeTempData(WebCadDataReqVO webCadDataReqVO) { public void analyzeTempData(WebCadDataReqVO webCadDataReqVO) {
@@ -203,6 +212,9 @@ public class WebCadOrderImportFactory {
// 获取自定义板编号配置 // 获取自定义板编号配置
plateNoGenerateConfigVO = customPlateNoGenerateService.getPlateNoGenerateConfig(orderId); plateNoGenerateConfigVO = customPlateNoGenerateService.getPlateNoGenerateConfig(orderId);
// 获取系统配置-封边对应配置
getOrgSealEdgeConfig();
// 解析生产单信息 // 解析生产单信息
analyzeOrder(webCadDataReqVO.getOrders()); analyzeOrder(webCadDataReqVO.getOrders());
@@ -238,6 +250,42 @@ public class WebCadOrderImportFactory {
} }
} }
/**
* 获取组织封边条对应配置
*/
private void getOrgSealEdgeConfig() {
CommonResult<List<SystemConfigRespDTO>> orgSealEdgeConfig = systemConfigApi.getOrgSealEdgeConfig();
boolean success = orgSealEdgeConfig.isSuccess();
if (success) {
try {
List<SystemConfigRespDTO> orgSealEdgeConfigCheckedData = orgSealEdgeConfig.getCheckedData();
if (CollUtil.isNotEmpty(orgSealEdgeConfigCheckedData)) {
// 默认取第一条为配置
SystemConfigRespDTO sealEdgeConfig = orgSealEdgeConfigCheckedData.get(0);
String setting = sealEdgeConfig.getSetting();
// 封边对应配置转列表
JSONArray jsonArray = JSON.parseArray(setting);
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
String widthMin = jsonObject.getString("widthMin");
String widthMax = jsonObject.getString("widthMax");
String widthValue = jsonObject.getString("widthValue");
if (StringUtils.isNotEmpty(widthMin) && StringUtils.isNotEmpty(widthMax) && StringUtils.isNotEmpty(widthValue)) {
sealEdgeConfigList.add(new SystemConfigSealEdgeRespDTO(Integer.parseInt(widthMin), Integer.parseInt(widthMax), Integer.parseInt(widthValue)));
}
}
}
} catch (Exception e) {
ErrorCode webcadOrderImportOrgSealedgeAnalyzeError = WEBCAD_ORDER_IMPORT_ORG_SEALEDGE_ANALYZE_ERROR;
log.error(webcadOrderImportOrgSealedgeAnalyzeError.getMsg(), e);
throw ServiceExceptionUtil.exception(webcadOrderImportOrgSealedgeAnalyzeError);
}
} else {
throw ServiceExceptionUtil.exception(WEBCAD_ORDER_IMPORT_GET_ORG_SEALEDGE_ERROR);
}
}
/** /**
* 解析生产单信息 * 解析生产单信息
* *
@@ -800,9 +848,6 @@ public class WebCadOrderImportFactory {
return; return;
} }
// 配件对应列表
matchLeftEdge(parts, blockObjectList);
// 解析orderParts // 解析orderParts
analyzeOrderParts(blockObjectList); analyzeOrderParts(blockObjectList);
@@ -1018,38 +1063,31 @@ public class WebCadOrderImportFactory {
String spec = part.getSpec(); String spec = part.getSpec();
String brand = part.getBrand(); String brand = part.getBrand();
String factory = part.getFactory(); String factory = part.getFactory();
String color = null;
String material = null;
if (PART_CATEGORY_ONE.equals(partType)) { if (PART_CATEGORY_ONE.equals(partType)) {
// 封边对应查询配件库中的封边条配件,使用配件库的model、spec、brand、factory WebCadDataPartsReqVO.BlockObjectListDTO.GroupDataDTO partGroupData = part.getGroupData();
String sealPartId = part.getPartId(); color = partGroupData.getColor();
if (ObjectUtil.isNotNull(sealPartId)) { material = partGroupData.getMaterial();
PartsDO partsDO = partsMapper.selectById(sealPartId); // 封边条宽度从系统配置中获取宽度对应
if (ObjectUtil.isNotNull(partsDO)) { sealEdgeWidthMatch(part);
model = partsDO.getModel();
spec = partsDO.getSpec();
brand = partsDO.getBrand();
factory = partsDO.getFactory();
} else {
throw ServiceExceptionUtil.exception(WEBCAD_ORDER_IMPORT_SEAL_NOT_EXIST_ERROR, sealPartId);
}
}
} }
String type = changePartType(partType, part.getIsComposite()); String type = changePartType(partType, part.getIsComposite());
String goodsId = part.getGoodsId(); // todo remark、备注信息到es
// todo orderId、color、remark、备注信息到es
OrderPartsDO orderPartsDO = OrderPartsDO.builder() OrderPartsDO orderPartsDO = OrderPartsDO.builder()
.id(partId) .id(partId)
.orderId(orderId) .orderId(orderId)
.color(EMPTY_STRING) .color(getEmpty(color))
.category(type) .category(type)
.type(type) .type(type)
.goodsId(getEmpty(goodsId)) .goodsId(EMPTY_STRING)
.length(NumberUtil.parseDouble(part.getHeight())) .length(NumberUtil.parseDouble(part.getHeight()))
.width(NumberUtil.parseDouble(part.getWidth())) .width(NumberUtil.parseDouble(part.getWidth()))
.thickness(NumberUtil.parseDouble(part.getThickness())) .thickness(NumberUtil.parseDouble(part.getThickness()))
.isComposite(part.getIsComposite()) .isComposite(part.getIsComposite())
.name(part.getName()) .name(part.getName())
.material(EMPTY_STRING) .material(getEmpty(material))
.model(getEmpty(model)) .model(getEmpty(model))
.spec(getEmpty(spec)) .spec(getEmpty(spec))
.brand(getEmpty(brand)) .brand(getEmpty(brand))
@@ -1073,12 +1111,11 @@ public class WebCadOrderImportFactory {
for (WebCadDataPartsReqVO.BlockObjectListDTO module : moduleCollect) { for (WebCadDataPartsReqVO.BlockObjectListDTO module : moduleCollect) {
Long partId = (Long) snowFlakeGenerator.nextId(null); Long partId = (Long) snowFlakeGenerator.nextId(null);
String type = changePartType(module.getType(), module.getIsComposite()); String type = changePartType(module.getType(), module.getIsComposite());
String goodsId = module.getGoodsId();
// todo color、remark、备注信息到es // todo color、remark、备注信息到es
OrderPartsDO orderPartsDO = OrderPartsDO.builder() OrderPartsDO orderPartsDO = OrderPartsDO.builder()
.id(partId) .id(partId)
.orderId(orderId) .orderId(orderId)
.goodsId(StringUtils.isNotEmpty(goodsId) ? goodsId : EMPTY_STRING) .goodsId(EMPTY_STRING)
.color(EMPTY_STRING) .color(EMPTY_STRING)
.category(type) .category(type)
.type(type) .type(type)
@@ -1108,6 +1145,63 @@ public class WebCadOrderImportFactory {
orderInfoBatchInsertWithinThreshold(orderPartsMapper, orderPartsDOS, true); orderInfoBatchInsertWithinThreshold(orderPartsMapper, orderPartsDOS, true);
} }
/**
* 封边条宽度匹配,获取厚度
*
* @param part
*/
private void sealEdgeWidthMatch(WebCadDataPartsReqVO.BlockObjectListDTO part) {
// 从spec中解析宽度、厚度
String spec = part.getSpec();
Integer widthFromSpec = getWidthFromSpec(spec);
part.setThickness(getThicknessFromSpec(spec));
if (ObjectUtil.isNull(widthFromSpec)) {
return;
}
for (SystemConfigSealEdgeRespDTO configSealEdgeRespDTO : sealEdgeConfigList) {
// 宽度处于配置范围,宽取值作为最终配件宽度
if (widthFromSpec >= configSealEdgeRespDTO.getWidthMin() && widthFromSpec <= configSealEdgeRespDTO.getWidthMax()) {
part.setWidth(String.valueOf(configSealEdgeRespDTO.getWidthValue()));
break;
}
}
}
/**
* 从规格中获取宽度,例:1mm-18mm
*/
private Integer getWidthFromSpec(String spec) {
if (StringUtils.isNotEmpty(spec)) {
String[] specSplit = spec.split("-");
if (specSplit.length >= 2) {
String widthInSpec = specSplit[1];
String[] widthSplit = widthInSpec.split("mm");
if (widthSplit.length == 1) {
return Integer.parseInt(widthSplit[0]);
}
}
}
return null;
}
/**
* 从规格中获取厚度,例:1mm-18mm
*/
private String getThicknessFromSpec(String spec) {
if (StringUtils.isNotEmpty(spec)) {
String[] specSplit = spec.split("-");
if (specSplit.length >= 2) {
String widthInSpec = specSplit[0];
String[] widthSplit = widthInSpec.split("mm");
if (widthSplit.length == 1) {
return widthSplit[0];
}
}
}
return null;
}
/** /**
* value为空返回EMPTY_STRING * value为空返回EMPTY_STRING
* *
@@ -1118,30 +1212,6 @@ public class WebCadOrderImportFactory {
return StringUtils.isNotEmpty(value) ? value : EMPTY_STRING; return StringUtils.isNotEmpty(value) ? value : EMPTY_STRING;
} }
/**
* 配件对应
*
* @param parts
* @param blockObjectList
*/
private void matchLeftEdge(WebCadDataPartsReqVO parts, List<WebCadDataPartsReqVO.BlockObjectListDTO> blockObjectList) {
List<WebCadDataPartsReqVO.LeftEdgesDTO> leftEdges = parts.getLeftEdges();
if (CollUtil.isNotEmpty(leftEdges)) {
for (WebCadDataPartsReqVO.LeftEdgesDTO leftEdge : leftEdges) {
List<Integer> objectIds = leftEdge.getObjectIds();
if (CollUtil.isNotEmpty(objectIds)) {
for (Integer partIndex : objectIds) {
// partIndex序号对应配件
WebCadDataPartsReqVO.BlockObjectListDTO part = blockObjectList.get(partIndex - 1);
// id、goodsId赋值到对应的cad配件上
part.setGoodsId(leftEdge.getGoodsId());
part.setPartId(leftEdge.getId());
}
}
}
}
}
/** /**
* 配件类型转换 * 配件类型转换
* *
@@ -1304,5 +1374,6 @@ public class WebCadOrderImportFactory {
orderModelDOS.clear(); orderModelDOS.clear();
roomBodyMap.clear(); roomBodyMap.clear();
bodyMap.clear(); bodyMap.clear();
sealEdgeConfigList.clear();
} }
} }
@@ -55,4 +55,7 @@ public interface SystemConfigApi {
@Operation(summary = "查询组织的混单是否开启") @Operation(summary = "查询组织的混单是否开启")
CommonResult<Boolean> getMultiColorConfigStatus(); CommonResult<Boolean> getMultiColorConfigStatus();
@GetMapping(PREFIX + "/organ/sealedge-config")
@Operation(summary = "获取组织下封边条对应配置")
CommonResult<List<SystemConfigRespDTO>> getOrgSealEdgeConfig();
} }
@@ -0,0 +1,34 @@
package com.cf.imes.module.system.api.systemconfig.dto;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @author Gqr
* @since 2025/3/21 11:16
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class SystemConfigSealEdgeRespDTO implements Serializable {
private static final long serialVersionUID = 4599625605797146076L;
/**
* 宽最小值
*/
private int widthMin;
/**
* 宽最大值
*/
private int widthMax;
/**
* 宽取值a
*/
private int widthValue;
}
@@ -16,12 +16,14 @@ import com.cf.imes.module.system.dal.dataobject.systemconfig.SystemConfigDO;
import com.cf.imes.module.system.dal.dataobject.systemconfig.SystemConfigDataDO; import com.cf.imes.module.system.dal.dataobject.systemconfig.SystemConfigDataDO;
import com.cf.imes.module.system.dal.dataobject.systemconfig.SystemConfigProcessDO; import com.cf.imes.module.system.dal.dataobject.systemconfig.SystemConfigProcessDO;
import com.cf.imes.module.system.dal.dataobject.systemconfig.SystemConfigSchemeDO; import com.cf.imes.module.system.dal.dataobject.systemconfig.SystemConfigSchemeDO;
import com.cf.imes.module.system.dal.dataobject.systemconfig.SystemConfigSealedgeDO;
import com.cf.imes.module.system.dal.mysql.label.LabelMapper; import com.cf.imes.module.system.dal.mysql.label.LabelMapper;
import com.cf.imes.module.system.dal.mysql.machine.MachineMapper; import com.cf.imes.module.system.dal.mysql.machine.MachineMapper;
import com.cf.imes.module.system.dal.mysql.systemconfig.SystemConfigDataMapper; import com.cf.imes.module.system.dal.mysql.systemconfig.SystemConfigDataMapper;
import com.cf.imes.module.system.dal.mysql.systemconfig.SystemConfigMapper; import com.cf.imes.module.system.dal.mysql.systemconfig.SystemConfigMapper;
import com.cf.imes.module.system.dal.mysql.systemconfig.SystemConfigProcessMapper; import com.cf.imes.module.system.dal.mysql.systemconfig.SystemConfigProcessMapper;
import com.cf.imes.module.system.dal.mysql.systemconfig.SystemConfigSchemeMapper; import com.cf.imes.module.system.dal.mysql.systemconfig.SystemConfigSchemeMapper;
import com.cf.imes.module.system.dal.mysql.systemconfig.SystemConfigSealedgeMapper;
import com.cf.imes.module.system.enums.config.SystemConfigTypeEnum; import com.cf.imes.module.system.enums.config.SystemConfigTypeEnum;
import com.cf.imes.module.system.service.systemconfig.SystemConfigService; import com.cf.imes.module.system.service.systemconfig.SystemConfigService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@@ -72,6 +74,9 @@ public class SystemConfigApiImpl implements SystemConfigApi {
@Resource @Resource
private SystemConfigDataMapper systemConfigDataMapper; private SystemConfigDataMapper systemConfigDataMapper;
@Resource
private SystemConfigSealedgeMapper systemConfigSealedgeMapper;
@Override @Override
public CommonResult<SystemConfigRespDTO> getOrgCustomPlateNoConfig() { public CommonResult<SystemConfigRespDTO> getOrgCustomPlateNoConfig() {
return success(BeanUtils.toBean(systemConfigService.getOrgCustomPlateNoConfig(), SystemConfigRespDTO.class)); return success(BeanUtils.toBean(systemConfigService.getOrgCustomPlateNoConfig(), SystemConfigRespDTO.class));
@@ -283,4 +288,9 @@ public class SystemConfigApiImpl implements SystemConfigApi {
} }
} }
@Override
public CommonResult<List<SystemConfigRespDTO>> getOrgSealEdgeConfig() {
return success(BeanUtils.toBean(systemConfigSealedgeMapper.selectSystemConfigList(SystemConfigTypeEnum.SEALEDGE.getType(), null), SystemConfigRespDTO.class));
}
} }