mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-12 21:02:08 +08:00
新增webcad生产单导入:补充新增raw_goods、order_goods
This commit is contained in:
+2
@@ -16,4 +16,6 @@ public class ErrorCodeConstants {
|
||||
public static final ErrorCode WEBCAD_ORDER_IMPORT_ROOMBODY_EMPTY_ERROR = new ErrorCode(1_005_000_006, "导入失败:房间柜体列表不能为空");
|
||||
public static final ErrorCode WEBCAD_ORDER_IMPORT_ORGANID_EMPTY_ERROR = new ErrorCode(1_005_000_007, "导入失败:无法获取机构信息,请检查cadtoken是否配置正确");
|
||||
public static final ErrorCode WEBCAD_ORDER_IMPORT_FAILED = new ErrorCode(1_005_000_008, "导入失败:请检查拆单数据");
|
||||
public static final ErrorCode WEBCAD_ORDER_IMPORT_PLATE_NOT_EXIST_ERROR = new ErrorCode(1_005_000_009, "导入失败:板材对应失败,板材库中不存在对应板材【{}】");
|
||||
public static final ErrorCode WEBCAD_ORDER_IMPORT_SEAL_NOT_EXIST_ERROR = new ErrorCode(1_005_000_010, "导入失败:封边条对应失败,配件库中不存在对应封边条【{}】");
|
||||
}
|
||||
|
||||
+1
-1
@@ -57,7 +57,7 @@ public class WebCadDataBlockReqVO {
|
||||
private Double cabinetHeight;
|
||||
private BoadrData boardData;
|
||||
|
||||
private String plateGoodsId;
|
||||
private Long plateGoodsId;
|
||||
private String goodsId;
|
||||
|
||||
private List<GroupInfo> groupInfos = new ArrayList<>();
|
||||
|
||||
+14
-1
@@ -10,13 +10,16 @@ import com.cf.imes.framework.redis.config.ChenfengCacheProperties;
|
||||
import com.cf.imes.framework.redis.constants.RedisKeyConstants;
|
||||
import com.cf.imes.framework.redis.util.RedisLockUtil;
|
||||
import com.cf.imes.module.plan.controller.admin.orderImport.webcad.vo.WebCadDataReqVO;
|
||||
import com.cf.imes.module.plan.dal.mysql.goods.GoodsMapper;
|
||||
import com.cf.imes.module.plan.dal.mysql.order.OrderMapper;
|
||||
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.orderItem.OrderItemMapper;
|
||||
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.PlateMapper;
|
||||
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.order.OrderInputProcessor;
|
||||
import com.cf.imes.module.plan.service.orderImport.factory.WebCadOrderImportFactory;
|
||||
@@ -79,6 +82,15 @@ public class WebCadOrderImportServiceImpl implements WebCadOrderImportService {
|
||||
@Resource
|
||||
private ChenfengCacheProperties chenfengCacheProperties;
|
||||
|
||||
@Resource
|
||||
private GoodsMapper goodsMapper;
|
||||
|
||||
@Resource
|
||||
private RawGoodsMapper rawGoodsMapper;
|
||||
|
||||
@Resource
|
||||
private PlateGoodMapper plateGoodMapper;
|
||||
|
||||
@Override
|
||||
public void webCadOrderImport(WebCadDataReqVO webCadDataReqVO) {
|
||||
Long organId = OrganContextHolder.getOrganId();
|
||||
@@ -93,7 +105,8 @@ public class WebCadOrderImportServiceImpl implements WebCadOrderImportService {
|
||||
if (!lockResult) {
|
||||
throw new ServiceException(ORDER_IMPORT_ORGAN_LOCK_ERROR);
|
||||
}
|
||||
WebCadOrderImportFactory webCadOrderImportFactory = new WebCadOrderImportFactory(organId, orderMapper, snowFlakeGenerator, orderBodyMapper, plateMapper, orderItemMapper, orderGroupMapper, idWorker, orderInputProcessor, partsMapper, orderPartsMapper, customPlateNoGenerateService);
|
||||
WebCadOrderImportFactory webCadOrderImportFactory = new WebCadOrderImportFactory(organId, orderMapper, snowFlakeGenerator, orderBodyMapper, plateMapper, orderItemMapper, orderGroupMapper,
|
||||
idWorker, orderInputProcessor, partsMapper, orderPartsMapper, goodsMapper, rawGoodsMapper, plateGoodMapper, customPlateNoGenerateService);
|
||||
webCadOrderImportFactory.analyzeTempData(webCadDataReqVO);
|
||||
} catch (ServiceException se) {
|
||||
throw se;
|
||||
|
||||
+81
-5
@@ -22,6 +22,7 @@ import com.cf.imes.module.plan.controller.admin.orderImport.webcad.vo.WebCadData
|
||||
import com.cf.imes.module.plan.controller.admin.orderImport.webcad.vo.WebCadDataPartsReqVO;
|
||||
import com.cf.imes.module.plan.controller.admin.orderImport.webcad.vo.WebCadDataProcessGroupReqVO;
|
||||
import com.cf.imes.module.plan.controller.admin.orderImport.webcad.vo.WebCadDataReqVO;
|
||||
import com.cf.imes.module.plan.dal.dataobject.goods.GoodsDO;
|
||||
import com.cf.imes.module.plan.dal.dataobject.order.OrderDO;
|
||||
import com.cf.imes.module.plan.dal.dataobject.orderBody.OrderBodyDO;
|
||||
import com.cf.imes.module.plan.dal.dataobject.orderGroup.OrderGroupDO;
|
||||
@@ -30,13 +31,18 @@ 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.plate.PlateDO;
|
||||
import com.cf.imes.module.plan.dal.dataobject.plate.PlateGoodDO;
|
||||
import com.cf.imes.module.plan.dal.dataobject.rawgoods.RawGoodsDO;
|
||||
import com.cf.imes.module.plan.dal.mysql.goods.GoodsMapper;
|
||||
import com.cf.imes.module.plan.dal.mysql.order.OrderMapper;
|
||||
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.orderItem.OrderItemMapper;
|
||||
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.PlateMapper;
|
||||
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.vo.CustomPlateNoGenerateConfigVO;
|
||||
import com.cf.imes.module.plan.service.order.OrderInputProcessor;
|
||||
@@ -52,7 +58,9 @@ import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static com.cf.imes.module.plan.enums.ErrorCodeConstants.WEBCAD_ORDER_IMPORT_MATERIALS_EMPTY_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_ROOMBODY_EMPTY_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;
|
||||
|
||||
/**
|
||||
@@ -88,6 +96,12 @@ public class WebCadOrderImportFactory {
|
||||
|
||||
private OrderPartsMapper orderPartsMapper;
|
||||
|
||||
private GoodsMapper goodsMapper;
|
||||
|
||||
private RawGoodsMapper rawGoodsMapper;
|
||||
|
||||
private PlateGoodMapper plateGoodMapper;
|
||||
|
||||
private CustomPlateNoGenerateService customPlateNoGenerateService;
|
||||
|
||||
private Long organId;
|
||||
@@ -116,6 +130,8 @@ public class WebCadOrderImportFactory {
|
||||
private List<OrderGroupDO> orderGroupDOS = ListUtils.newArrayListWithExpectedSize(BATCH_THRESHOLD_NUMBER);
|
||||
private List<OrderPartsDO> orderPartsDOS = 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<GoodsDO> goodsDOS = ListUtils.newArrayListWithExpectedSize(BATCH_THRESHOLD_NUMBER);
|
||||
|
||||
|
||||
private static String PART_CATEGORY_ONE = "封边条";
|
||||
@@ -134,6 +150,9 @@ public class WebCadOrderImportFactory {
|
||||
OrderInputProcessor orderInputProcessor,
|
||||
PartsMapper partsMapper,
|
||||
OrderPartsMapper orderPartsMapper,
|
||||
GoodsMapper goodsMapper,
|
||||
RawGoodsMapper rawGoodsMapper,
|
||||
PlateGoodMapper plateGoodMapper,
|
||||
CustomPlateNoGenerateService customPlateNoGenerateService) {
|
||||
this.organId = organId;
|
||||
this.orderMapper = orderMapper;
|
||||
@@ -146,6 +165,9 @@ public class WebCadOrderImportFactory {
|
||||
this.orderInputProcessor = orderInputProcessor;
|
||||
this.partsMapper = partsMapper;
|
||||
this.orderPartsMapper = orderPartsMapper;
|
||||
this.goodsMapper = goodsMapper;
|
||||
this.rawGoodsMapper = rawGoodsMapper;
|
||||
this.plateGoodMapper = plateGoodMapper;
|
||||
this.customPlateNoGenerateService = customPlateNoGenerateService;
|
||||
}
|
||||
|
||||
@@ -212,14 +234,65 @@ public class WebCadOrderImportFactory {
|
||||
throw new ServiceException(WEBCAD_ORDER_IMPORT_MATERIALS_EMPTY_ERROR);
|
||||
}
|
||||
for (WebCadDataMaterialReqVO materialReqVO : materialReqVOS) {
|
||||
String plateGoodsId = materialReqVO.getId();
|
||||
String plateGoodsGoodsId = materialReqVO.getGoodsId();
|
||||
PlateGoodDO plateGoodDO = plateGoodMapper.selectById(plateGoodsId);
|
||||
if (ObjectUtil.isNull(plateGoodDO)) {
|
||||
throw ServiceExceptionUtil.exception(WEBCAD_ORDER_IMPORT_PLATE_NOT_EXIST_ERROR, plateGoodsId);
|
||||
}
|
||||
// 创建设计端商品
|
||||
Long rawGoodsId = (Long) snowFlakeGenerator.nextId(null);
|
||||
RawGoodsDO rawGoodsDO = RawGoodsDO.builder()
|
||||
.id(rawGoodsId)
|
||||
.orderId(orderId)
|
||||
.rawGoodsId(plateGoodsGoodsId)
|
||||
.goodsName(plateGoodDO.getGoodsName())
|
||||
.material(plateGoodDO.getMaterial())
|
||||
.texture(plateGoodDO.getTexture())
|
||||
.color(plateGoodDO.getColor())
|
||||
.colorBlack(StringUtils.isNotEmpty(plateGoodDO.getColorBlack()) ? plateGoodDO.getColorBlack() : EMPTY_STRING)
|
||||
.thickness(plateGoodDO.getThickness())
|
||||
.spec(plateGoodDO.getSpec())
|
||||
.brand(plateGoodDO.getBrand())
|
||||
.price(0.00)
|
||||
.deleted(false)
|
||||
.build();
|
||||
Long orderGoodsId = (Long) snowFlakeGenerator.nextId(null);
|
||||
|
||||
// 创建生产单商品
|
||||
GoodsDO goodsDO = GoodsDO.builder()
|
||||
.id(orderGoodsId)
|
||||
.orderId(orderId)
|
||||
.rawGoodsId(String.valueOf(rawGoodsId))
|
||||
.goodsId(plateGoodsGoodsId)
|
||||
.goodsName(plateGoodDO.getGoodsName())
|
||||
.material(plateGoodDO.getMaterial())
|
||||
.texture(plateGoodDO.getTexture())
|
||||
.color(plateGoodDO.getColor())
|
||||
.colorBlack(StringUtils.isNotEmpty(plateGoodDO.getColorBlack()) ? plateGoodDO.getColorBlack() : EMPTY_STRING)
|
||||
.width(BigDecimal.valueOf(plateGoodDO.getWidth()))
|
||||
.height(BigDecimal.valueOf(plateGoodDO.getHeight()))
|
||||
.thickness(BigDecimal.valueOf(plateGoodDO.getThickness()))
|
||||
.spec(plateGoodDO.getSpec())
|
||||
.brand(plateGoodDO.getBrand())
|
||||
.remark(EMPTY_STRING)
|
||||
.planId(0L)
|
||||
.price(0.00)
|
||||
.deleted(false)
|
||||
.build();
|
||||
|
||||
goodsDOS.add(goodsDO);
|
||||
rawGoodsDOS.add(rawGoodsDO);
|
||||
for (Integer blockIndex : materialReqVO.getOrginIds()) {
|
||||
// blockIndex序号获取对应板件
|
||||
// blockIndex序号获取对应板件a
|
||||
WebCadDataBlockReqVO webCadDataBlockReqVO = blockReqVOS.get(blockIndex - 1);
|
||||
// 把板材的id和goodsId赋给cad板件
|
||||
webCadDataBlockReqVO.setGoodsId(materialReqVO.getGoodsId());
|
||||
webCadDataBlockReqVO.setPlateGoodsId(materialReqVO.getId());
|
||||
webCadDataBlockReqVO.setGoodsId(plateGoodsGoodsId);
|
||||
webCadDataBlockReqVO.setPlateGoodsId(orderGoodsId);
|
||||
}
|
||||
}
|
||||
orderInfoBatchInsertWithinThreshold(rawGoodsMapper, rawGoodsDOS, true);
|
||||
orderInfoBatchInsertWithinThreshold(goodsMapper, goodsDOS, true);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -419,7 +492,7 @@ public class WebCadOrderImportFactory {
|
||||
.name(block.getName())
|
||||
.plateNo(obtainingTime + Long.toString(plateNo).substring(2))
|
||||
.type(block.getType())
|
||||
.goodsId(NumberUtil.parseLong(block.getPlateGoodsId()))
|
||||
.goodsId(block.getPlateGoodsId())
|
||||
.width(BigDecimal.valueOf(block.getWidth()))
|
||||
.height(BigDecimal.valueOf(block.getHeight()))
|
||||
.thickness(BigDecimal.valueOf(block.getThickness()))
|
||||
@@ -785,12 +858,15 @@ public class WebCadOrderImportFactory {
|
||||
String factory = part.getFactory();
|
||||
if (PART_CATEGORY_ONE.equals(partType)) {
|
||||
// 封边对应查询配件库中的封边条配件,使用配件库的model、spec、brand、factory
|
||||
PartsDO partsDO = partsMapper.selectById(part.getPartId());
|
||||
String sealPartId = part.getPartId();
|
||||
PartsDO partsDO = partsMapper.selectById(sealPartId);
|
||||
if (ObjectUtil.isNotNull(partsDO)) {
|
||||
model = partsDO.getModel();
|
||||
spec = partsDO.getSpec();
|
||||
brand = partsDO.getBrand();
|
||||
factory = partsDO.getFactory();
|
||||
} else {
|
||||
throw ServiceExceptionUtil.exception(WEBCAD_ORDER_IMPORT_SEAL_NOT_EXIST_ERROR, sealPartId);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user