全局替换:生产单 -> 订单

This commit is contained in:
gaoqr
2026-02-28 09:17:12 +08:00
parent 5116fe4d0d
commit d461e4a6e6
361 changed files with 1303 additions and 1303 deletions
@@ -7,7 +7,7 @@ import com.cf.imes.framework.common.exception.ErrorCode;
* 生产计划服务错误码枚举 使用 1-005-000-000 段
*/
public class ErrorCodeConstants {
// ========== 生产单导入 1_005_000 ==========
// ========== 单导入 1_005_000 ==========
public static final ErrorCode ORDER_IMPORT_PLATE_GOODS_NOT_EXISTS = new ErrorCode(1_005_000_000, "order.import.plate.goods.not_exists");
public static final ErrorCode ORDER_IMPORT_ORGANID_NOT_EXISTS = new ErrorCode(1_005_000_001, "order.import.organid.not_exists");
public static final ErrorCode ORDER_IMPORT_FAIL = new ErrorCode(1_005_000_002, "order.import.fail");
@@ -57,7 +57,7 @@ public class ChenfengRabbitMQPlanConfiguration {
}
/**
* 生产单xml导入交换机声明
* 单xml导入交换机声明
*
* @return
*/
@@ -67,7 +67,7 @@ public class ChenfengRabbitMQPlanConfiguration {
}
/**
* 生产单excel导入交换机、队列、绑定声明
* 单excel导入交换机、队列、绑定声明
*
* @return
*/
@@ -77,7 +77,7 @@ public class ChenfengRabbitMQPlanConfiguration {
}
/**
* 生产单excel导入队列声明
* 单excel导入队列声明
*
* @return
*/
@@ -92,7 +92,7 @@ public class ChenfengRabbitMQPlanConfiguration {
}
/**
* 生产单excel导入交换机声明
* 单excel导入交换机声明
*
* @return
*/
@@ -102,7 +102,7 @@ public class ChenfengRabbitMQPlanConfiguration {
}
/**
* 生产单xml导入交换机、队列、绑定声明
* 单xml导入交换机、队列、绑定声明
*
* @return
*/
@@ -112,7 +112,7 @@ public class ChenfengRabbitMQPlanConfiguration {
}
/**
* 生产单xml导入队列声明
* 单xml导入队列声明
*
* @return
*/
@@ -127,7 +127,7 @@ public class ChenfengRabbitMQPlanConfiguration {
}
/**
* 生产单xml导入交换机声明
* 单xml导入交换机声明
*
* @return
*/
@@ -137,7 +137,7 @@ public class ChenfengRabbitMQPlanConfiguration {
}
/**
* 生产单导入死信交换机声明
* 单导入死信交换机声明
*
* @return
*/
@@ -147,7 +147,7 @@ public class ChenfengRabbitMQPlanConfiguration {
}
/**
* 生产单导入死信队列声明
* 单导入死信队列声明
*
* @return
*/
@@ -157,7 +157,7 @@ public class ChenfengRabbitMQPlanConfiguration {
}
/**
* 生产单导入死信队列、交换机、绑定声明
* 单导入死信队列、交换机、绑定声明
*
* @return
*/
@@ -23,7 +23,7 @@ import static com.cf.imes.module.plan.enums.ErrorCodeConstants.WEBCAD_ORDER_IMPO
* @author Gqr
* @since 2025/3/4 10:22
*/
@Tag(name = "管理后台 - 生产单导入管理")
@Tag(name = "管理后台 - 单导入管理")
@RestController
@RequestMapping("/plan/order")
public class OrderImportController {
@@ -31,7 +31,7 @@ public class OrderImportController {
private WebCadOrderImportService webCadOrderImportService;
@PostMapping("/webcad/import")
@Operation(summary = "webcad拆单导入生产")
@Operation(summary = "webcad拆单导入")
@OperateLog(type = IMPORT)
public CommonResult<Boolean> webCadOrderImport(@RequestParam("file") MultipartFile file) {
Long organId = OrganContextHolder.getOrganId();
@@ -8,7 +8,7 @@ import lombok.Data;
* @author Gqr
* @since 2025/1/15 16:59
*/
@Schema(description = "管理后台 - 生产单导入临时数据 Request VO")
@Schema(description = "管理后台 - 单导入临时数据 Request VO")
@Data
@Builder
public class OrderImportTempDataReqVO {
@@ -12,13 +12,13 @@ import lombok.experimental.Accessors;
import jakarta.validation.constraints.NotNull;
/**
* 生产单 Excel 导入 VO
* 单 Excel 导入 VO
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = false) // 设置 chain = false,避免生产单导入有问题
@Accessors(chain = false) // 设置 chain = false,避免单导入有问题
@JsonInclude(JsonInclude.Include.NON_NULL)
public class OrderPlateImportExcelVO {
@@ -11,14 +11,14 @@ import jakarta.validation.constraints.NotNull;
* @author Gqr
* @since 2025/3/3 17:40
*/
@Schema(description = "管理后台 - webcad生产单信息 - RequestVO")
@Schema(description = "管理后台 - webcad单信息 - RequestVO")
@Data
public class WebCadDataOrderReqVO {
/**
* 生产单号
* 单号
*/
@JsonProperty(value = "OrderNo")
@NotNull(message = "生产单号不能为空")
@NotEmpty(message = "生产单号不能为空")
@NotNull(message = "单号不能为空")
@NotEmpty(message = "单号不能为空")
private String OrderNo;
}
@@ -16,7 +16,7 @@ import lombok.ToString;
import java.math.BigDecimal;
/**
* 生产单商品 DO
* 单商品 DO
*
* @author 晨丰科技
*/
@@ -39,7 +39,7 @@ public class GoodsDO extends BaseDO {
@TableField(fill = FieldFill.INSERT_UPDATE)
private Long organId;
/**
* 生产单号
* 单号
*/
private Long orderId;
/**
@@ -17,7 +17,7 @@ import lombok.ToString;
import java.time.LocalDateTime;
/**
* 生产单表 order_{N} DO
* 单表 order_{N} DO
*
* @author 晨丰科技
*/
@@ -32,7 +32,7 @@ import java.time.LocalDateTime;
public class OrderDO extends BaseDO {
/**
* 生产单号,主键
* 单号,主键
*/
@TableId
private Long id;
@@ -45,11 +45,11 @@ public class OrderDO extends BaseDO {
*/
private Long parentNo;
/**
* 源生产单号
* 源单号
*/
private String apiOrderId;
/**
* 生产单日期
* 单日期
*/
private LocalDateTime orderDate;
/**
@@ -57,15 +57,15 @@ public class OrderDO extends BaseDO {
*/
private LocalDateTime deliveryDate;
/**
* 生产单的完成时间
* 单的完成时间
*/
private LocalDateTime finishTime;
/**
* 生产单类型,1主单 2子单
* 单类型,1主单 2子单
*/
private Integer orderType;
/**
* 生产单排序号
* 单排序号
*/
private Integer orderSort;
/**
@@ -14,7 +14,7 @@ import lombok.NoArgsConstructor;
import lombok.ToString;
/**
* 生产单柜体 DO
* 单柜体 DO
*
* @author 晨丰科技
*/
@@ -38,7 +38,7 @@ public class OrderBodyDO extends BaseDO {
@TableField(fill = FieldFill.INSERT_UPDATE)
private Long organId;
/**
* 生产单号
* 单号
*/
private Long orderId;
/**
@@ -14,7 +14,7 @@ import lombok.NoArgsConstructor;
import lombok.ToString;
/**
* 生产单加工组 DO
* 单加工组 DO
*
* @author 晨丰科技
*/
@@ -37,7 +37,7 @@ public class OrderGroupDO extends BaseDO {
@TableField(fill = FieldFill.INSERT_UPDATE)
private Long organId;
/**
* 生产单号
* 单号
*/
private Long orderId;
/**
@@ -45,7 +45,7 @@ public class OrderGroupDO extends BaseDO {
*/
private Long bodyId;
/**
* 加工组类型id,依据同一生产单的同一房间的同一柜体的相同加工组类型,由服务端生成
* 加工组类型id,依据同一单的同一房间的同一柜体的相同加工组类型,由服务端生成
*/
private Long groupTypeId;
/**
@@ -14,7 +14,7 @@ import lombok.NoArgsConstructor;
import lombok.ToString;
/**
* 生产单导入任务
* 单导入任务
*
* @author Gqr
* @since 2025/1/9 11:30
@@ -41,7 +41,7 @@ public class OrderImportTaskDO extends BaseDO {
private Long organId;
/**
* 生产单id
* 单id
*/
private Long orderId;
@@ -16,7 +16,7 @@ import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* 生产单导入临时表
* 单导入临时表
*
* @author Gqr
* @since 2025/1/9 11:36
@@ -47,7 +47,7 @@ public class OrderImportTempDataDO {
private Long taskId;
/**
* 生产单id(补板用)
* 单id(补板用)
*/
private Long orderId;
@@ -12,7 +12,7 @@ import lombok.NoArgsConstructor;
import lombok.ToString;
/**
* 生产单明细表 order_item DO
* 单明细表 order_item DO
*
* @author 晨丰科技
*/
@@ -31,7 +31,7 @@ public class OrderItemDO {
private Long id;
/**
* 生产单号
* 单号
*/
private Long orderId;
/**
@@ -59,7 +59,7 @@ public class OrderItemDO {
*/
private Long groupId;
/**
* 生产单板件id
* 单板件id
*/
private Long plateId;
/**
@@ -13,7 +13,7 @@ import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
/**
* 生产单配件表 order_parts_{N} DO
* 单配件表 order_parts_{N} DO
*
* @author 晨丰科技
*/
@@ -64,7 +64,7 @@ public class OrderPartsDO extends BaseDO {
@TableField(fill = FieldFill.INSERT_UPDATE)
private Long organId;
/**
* 生产单号
* 单号
*/
private Long orderId;
/**
@@ -19,7 +19,7 @@ import java.util.Map;
/**
* @author Beal
* 生产单 小板的轮廓数据对象
* 单 小板的轮廓数据对象
*/
@Data
@Builder
@@ -28,7 +28,7 @@ import java.util.Map;
public class OrderModelDO extends ESDocument {
/*@Schema(description = "组织id")
private Long organId;*/
@Schema(description = "生产单id")
@Schema(description = "单id")
private Long orderId;
@Schema(description = "小板id")
private Long plateId;
@@ -17,7 +17,7 @@ import lombok.NoArgsConstructor;
@NoArgsConstructor
public class OrderPlateModel extends ESDocument {
@Schema(description = "生产单id")
@Schema(description = "单id")
private Long orderId;
@Schema(description = "大板分类ID")
@@ -16,7 +16,7 @@ import lombok.ToString;
import java.math.BigDecimal;
/**
* 生产单板件 DO
* 单板件 DO
*
* @author 晨丰科技
*/
@@ -93,7 +93,7 @@ public class PlateDO extends BaseDO {
@TableField(fill = FieldFill.INSERT_UPDATE)
private Long organId;
/**
* 生产单号
* 单号
*/
private Long orderId;
/**
@@ -14,7 +14,7 @@ import lombok.NoArgsConstructor;
import lombok.ToString;
/**
* 生产单设计商品表 order_raw_goods_{N} DO
* 单设计商品表 order_raw_goods_{N} DO
*
* @author 晨丰科技
*/
@@ -37,7 +37,7 @@ public class RawGoodsDO extends BaseDO {
@TableField(fill = FieldFill.INSERT_UPDATE)
private Long organId;
/**
* 生产单号
* 单号
*/
private Long orderId;
/**
@@ -15,7 +15,7 @@ import lombok.experimental.Accessors;
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = false) // 设置 chain = false,避免生产单导入有问
@Accessors(chain = false) // 设置 chain = false,避免单导入有问
public class IContourData {
@Schema(description = "点集(二维向量(x,y,z))")
@@ -16,7 +16,7 @@ import java.util.List;
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = false) // 设置 chain = false,避免生产单导入有问
@Accessors(chain = false) // 设置 chain = false,避免单导入有问
public class IOriginModelingData {
@Schema(description = "刀半径")
@@ -16,7 +16,7 @@ import lombok.experimental.Accessors;
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = false) // 设置 chain = false,避免生产单导入有问
@Accessors(chain = false) // 设置 chain = false,避免单导入有问
public class OffSetList {
@Schema(description = "偏移刀路ID")
@@ -7,7 +7,7 @@ import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Schema(description = "管理后台 - 生产单配件 备注信息")
@Schema(description = "管理后台 - 单配件 备注信息")
@Data
@Builder
@AllArgsConstructor
@@ -17,10 +17,10 @@ public class OrderPartsRemark extends ESDocument {
@Schema(description = "配件 ID")
private Long partsId;
@Schema(description = "生产单号")
@Schema(description = "单号")
private Long orderId;
@Schema(description = "生产单号")
@Schema(description = "单号")
private Long batchId;
@Schema(description = "备注")
@@ -20,7 +20,7 @@ import java.util.Map;
public class PlateDetail {
// 组织id
private Long organId;
// 生产单id
// 单id
private Long orderId;
// 板名称
private String name;
@@ -16,7 +16,7 @@ import java.math.BigDecimal;
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = false) // 设置 chain = false,避免生产单导入有问
@Accessors(chain = false) // 设置 chain = false,避免单导入有问
public class PointDetail {
@Schema(description = "点id")
@@ -14,7 +14,7 @@ import lombok.experimental.Accessors;
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = false) // 设置 chain = false,避免生产单导入有问
@Accessors(chain = false) // 设置 chain = false,避免单导入有问
public class PointList {
@Schema(description = "纹路Id")
@@ -5,7 +5,7 @@ import com.cf.imes.module.plan.dal.dataobject.goods.GoodsDO;
import org.apache.ibatis.annotations.Mapper;
/**
* 生产单商品 Mapper
* 单商品 Mapper
*
* @author 晨丰科技
*/
@@ -5,7 +5,7 @@ import com.cf.imes.module.plan.dal.dataobject.order.OrderDO;
import org.apache.ibatis.annotations.Mapper;
/**
* 生产单表 order_{N} Mapper
* 单表 order_{N} Mapper
*
* @author 晨丰科技
*/
@@ -5,7 +5,7 @@ import com.cf.imes.module.plan.dal.dataobject.orderBody.OrderBodyDO;
import org.apache.ibatis.annotations.Mapper;
/**
* 生产单柜体 Mapper
* 单柜体 Mapper
*
* @author 晨丰科技
*/
@@ -4,7 +4,7 @@ import com.cf.imes.framework.mybatis.core.injector.BaseBatchMapper;
import com.cf.imes.module.plan.dal.dataobject.orderGroup.OrderGroupDO;
import org.apache.ibatis.annotations.Mapper;
/**
* 生产单加工组 Mapper
* 单加工组 Mapper
*
* @author 晨丰科技
*/
@@ -5,7 +5,7 @@ import com.cf.imes.module.plan.dal.dataobject.orderImport.OrderImportTaskDO;
import org.apache.ibatis.annotations.Mapper;
/**
* 生产单导入任务 Mapper
* 单导入任务 Mapper
*
* @author Gqr
* @since 2025/1/9 11:42
@@ -13,7 +13,7 @@ import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 生产单导入临时表 Mapper
* 单导入临时表 Mapper
*
* @author Gqr
* @since 2025/1/9 11:42
@@ -5,7 +5,7 @@ import com.cf.imes.module.plan.dal.dataobject.orderItem.OrderItemDO;
import org.apache.ibatis.annotations.Mapper;
/**
* 生产单明细表 order_item Mapper
* 单明细表 order_item Mapper
*
* @author 晨丰科技
*/
@@ -5,7 +5,7 @@ import com.cf.imes.module.plan.dal.dataobject.orderParts.OrderPartsDO;
import org.apache.ibatis.annotations.Mapper;
/**
* 生产单配件表 order_parts_{N} Mapper
* 单配件表 order_parts_{N} Mapper
*
* @author 晨丰科技
*/
@@ -5,7 +5,7 @@ import com.cf.imes.module.plan.dal.dataobject.plate.PlateDO;
import org.apache.ibatis.annotations.Mapper;
/**
* 生产单板件 Mapper
* 单板件 Mapper
*
* @author 晨丰科技
*/
@@ -5,7 +5,7 @@ import com.cf.imes.module.plan.dal.dataobject.rawgoods.RawGoodsDO;
import org.apache.ibatis.annotations.Mapper;
/**
* 生产单设计商品表 order_raw_goods_{N} Mapper
* 单设计商品表 order_raw_goods_{N} Mapper
*
* @author 晨丰科技
*/
@@ -22,7 +22,7 @@ public interface CustomPlateNoGenerateService {
/**
* 生成自定义板编号
*
* @param orderId 生产单号
* @param orderId 单号
* @param plateDO 板件
* @param generateConfig 板编号生成配置
* @param isFirstPlate 是否导入的第一块
@@ -31,7 +31,7 @@ public interface CustomPlateNoGenerateService {
void generateCustomPlateNo(Long orderId, PlateDO plateDO, CustomPlateNoGenerateConfigVO generateConfig, boolean isFirstPlate);
/**
* 生成结束后,更新板编号配置到对应生产
* 生成结束后,更新板编号配置到对应
*
* @param generateConfig
* @param orderDO
@@ -86,14 +86,14 @@ public class CustomPlateNoGenerateServiceImpl implements CustomPlateNoGenerateSe
Long orderId = orderDO.getId();
Long orgCustomPlateNoConfigId = generateConfig.getOrgCustomPlateNoConfigId();
LocalDateTime now = LocalDateTime.now();
// 3、保存生产单序号json、设置生产单所用配置id
// 3、保存单序号json、设置单所用配置id
OrderCustomPlateNoSeqVO orderCustomPlateNoSeqVO = generateConfig.getOrderCustomPlateNoSeqVO();
// todo 补板延续自定义版编号
// if (newOrder) {
orderDO.setCustomPlatenoSeq(JSON.toJSONString(orderCustomPlateNoSeqVO));
orderDO.setCustomPlatenoConfigId(orgCustomPlateNoConfigId);
// } else {
// // 已有生产单更新序号
// // 已有单更新序号
// orderMapper.update(new LambdaUpdateWrapper<OrderDO>().eq(OrderDO::getId, orderId).set(OrderDO::getCustomPlatenoSeq, JsonUtils.zipString(JSON.toJSONString(orderCustomPlateNoSeqVO))));
// }
// 机构下序号配置同步
@@ -143,10 +143,10 @@ public class CustomPlateNoGenerateServiceImpl implements CustomPlateNoGenerateSe
}
/**
* 根据生产单id获取生成需要的配置
* 根据单id获取生成需要的配置
*
* @param orderId
* @return 1、生产单下的序号
* @return 1、单下的序号
* 2、机构下的序号
* 3、机构下全局配置的规则
*/
@@ -156,7 +156,7 @@ public class CustomPlateNoGenerateServiceImpl implements CustomPlateNoGenerateSe
// 机构下自定义板编号配置
SystemConfigRespDTO orgCustomPlateNoConfig = null;
// 生产单下序号
// 单下序号
OrderCustomPlateNoSeqVO orderCustomPlateNoSeqVO = new OrderCustomPlateNoSeqVO();
// 自定义板编号配置规则明细列表
List<CustomPlateNoRuleVO> customPlateNoRuleVOS = List.of();
@@ -173,7 +173,7 @@ public class CustomPlateNoGenerateServiceImpl implements CustomPlateNoGenerateSe
OrderDO order = orderMapper.selectOne(new LambdaQueryWrapper<OrderDO>().eq(OrderDO::getId, orderId));
if (ObjectUtil.isNotNull(order) && ObjectUtil.isNotNull(orgCustomPlateNoConfig)) {
// 老单
// 生产单上的自定义板编号配置id和当前最新的对比,不同用生产单号上的
// 单上的自定义板编号配置id和当前最新的对比,不同用单号上的
Long orderCustomPlatenoConfigId = order.getCustomPlatenoConfigId();
if (ObjectUtil.isNotNull(orderCustomPlatenoConfigId) && ObjectUtil.notEqual(orgCustomPlateNoConfig.getId(), orderCustomPlatenoConfigId)) {
CommonResult<SystemConfigRespDTO> previousCustomPlateNoConfig = systemConfigApi.getById(orderCustomPlatenoConfigId);
@@ -182,7 +182,7 @@ public class CustomPlateNoGenerateServiceImpl implements CustomPlateNoGenerateSe
}
}
// 上一次的生产单内 自定义版编号序号
// 上一次的单内 自定义版编号序号
orderCustomPlateNoSeqVO = JSON.parseObject(order.getCustomPlatenoSeq(), OrderCustomPlateNoSeqVO.class);
}
customPlateNoGenerateConfigVO.setOrderCustomPlateNoSeqVO(orderCustomPlateNoSeqVO);
@@ -15,7 +15,7 @@ public class CustomPlateNoGenerateConfigVO implements Serializable {
private static final long serialVersionUID = -7383861104153624467L;
/**
* 生产单下的之定义板编号序号内容
* 单下的之定义板编号序号内容
*/
private OrderCustomPlateNoSeqVO orderCustomPlateNoSeqVO;
@@ -8,7 +8,7 @@ import java.io.Serializable;
import java.util.List;
/**
* 生产单-自定义板编号序号(custom_plateno_seqvo
* 单-自定义板编号序号(custom_plateno_seqvo
*
* @author Gqr
* @since 2024/11/15 10:41
@@ -20,32 +20,32 @@ public class OrderCustomPlateNoSeqVO implements Serializable {
private static final long serialVersionUID = 5841977329049878792L;
/**
* 生产单序号
* 单序号
*/
private Integer orderNoSeq;
/**
* 生产单下房间序号
* 单下房间序号
*/
private Integer roomNoSeq;
/**
* 生产单下柜体序号
* 单下柜体序号
*/
private Integer bodyNoSeq;
/**
* 生产单下板件序号
* 单下板件序号
*/
private Integer plateNoSeq;
/**
* 生产单下房间列表
* 单下房间列表
*/
private List<OrderCustomPlateNoSeqRoomVO> rooms;
/**
* 生产单下柜体列表
* 单下柜体列表
*/
private List<OrderCustomPlateNoSeqBodyVO> bodys;
}
@@ -87,13 +87,13 @@ public class BodyNoGenerateRuleServiceImpl implements CustomPlateNoGenerateRuleS
@Override
public void reset(CustomPlateNoRuleDTO ruleDTO) {
// 查询所有使用当前配置id的生产单列表
// 查询所有使用当前配置id的单列表
Long configId = ruleDTO.getConfigId();
List<OrderDO> orderDOS = orderMapper.selectList(
new LambdaQueryWrapper<OrderDO>().eq(OrderDO::getCustomPlatenoConfigId, configId).eq(OrderDO::getOrganId, OrganContextHolder.getOrganId()));
ResetModeEnum resetModeEnum = ResetModeEnum.getByMode(ruleDTO.getResetMode());
// 根据复位模式更新生产单的序号
// 根据复位模式更新单的序号
for (OrderDO orderDO : orderDOS) {
resetOrder(orderDO, resetModeEnum);
}
@@ -117,9 +117,9 @@ public class BodyNoGenerateRuleServiceImpl implements CustomPlateNoGenerateRuleS
}
/**
* 按生产单复位模式下的板编号生成
* 按单复位模式下的板编号生成
*
* @param orderId 生产单号
* @param orderId 单号
* @param plateNoRule 当前规则配置
* @param generateConfig 生成规则配置
* @param plateDO 板件列表
@@ -128,40 +128,40 @@ public class BodyNoGenerateRuleServiceImpl implements CustomPlateNoGenerateRuleS
private CustomPlateNoGenerateConfigVO generateNoByOrderResetMode(Long orderId, CustomPlateNoRuleVO plateNoRule, CustomPlateNoGenerateConfigVO generateConfig, PlateDO plateDO, boolean firstPlate) {
Integer incrementStep = plateNoRule.getIncrementStep();
Integer initValue = plateNoRule.getInitValue() - incrementStep;
// 生产单下的序号
// 单下的序号
OrderCustomPlateNoSeqVO orderCustomPlateNoSeqVO = generateConfig.getOrderCustomPlateNoSeqVO();
// 机构下的自定义板编号序号
CustomPlateNoSeqDTO orgCustomPlateNoSeqRespDTO = generateConfig.getOrgCustomPlateNoSeqRespDTO();
// 生产单下柜体序号
// 单下柜体序号
Integer orderBodyNoSeq = Optional.ofNullable(orderCustomPlateNoSeqVO.getBodyNoSeq()).orElse(initValue);
// 生产单序号下的房间序号列表
// 单序号下的房间序号列表
List<OrderCustomPlateNoSeqBodyVO> bodys = orderCustomPlateNoSeqVO.getBodys();
// 上次导入的生产单号
// 上次导入的单号
Long lastOrderNo = orgCustomPlateNoSeqRespDTO.getLastOrderNo();
if (firstPlate && (ObjectUtil.isNull(lastOrderNo) || ObjectUtil.notEqual(orderId, lastOrderNo))) {
// 跨单复位到初始值
orderBodyNoSeq = initValue;
}
String bodyName = plateDO.getBodyName();
// 根据柜体名获取生产单下序号json中第一层柜体列表的柜体序号
// 根据柜体名获取单下序号json中第一层柜体列表的柜体序号
OrderCustomPlateNoSeqBodyVO bodySeqVo = getBodySeqVOByBodyName(bodyName, bodys);
// 获取当前柜体序号值
Integer bodyNoSeq = Optional.ofNullable(bodySeqVo).map(OrderCustomPlateNoSeqBodyVO::getBodyNoSeq).orElse(null);
if (bodySeqVo == null) {
// 生产单序号下柜体为空,新建柜体,取生产单下柜体序号
// 单序号下柜体为空,新建柜体,取单下柜体序号
bodySeqVo = OrderCustomPlateNoSeqBodyVO.builder()
.bodyName(bodyName)
.build();
bodys.add(bodySeqVo);
// 累加步长
bodyNoSeq = orderBodyNoSeq + incrementStep;
// 累加后的值同步到当前生产单序号中,生产单下柜体序号累加到多少了
// 累加后的值同步到当前单序号中,单下柜体序号累加到多少了
orderCustomPlateNoSeqVO.setBodyNoSeq(bodyNoSeq);
} else if (bodyNoSeq == null) {
// 柜体下序号为空,取生产单下房间序号
// 柜体下序号为空,取单下房间序号
// 累加步长
bodyNoSeq = orderBodyNoSeq + incrementStep;
// 累加后的值同步到当前生产单序号中,生产单下柜体序号累加到多少了
// 累加后的值同步到当前单序号中,单下柜体序号累加到多少了
orderCustomPlateNoSeqVO.setBodyNoSeq(bodyNoSeq);
}
@@ -185,12 +185,12 @@ public class BodyNoGenerateRuleServiceImpl implements CustomPlateNoGenerateRuleS
private CustomPlateNoGenerateConfigVO generateNoByRoomResetMode(CustomPlateNoRuleVO plateNoRule, CustomPlateNoGenerateConfigVO generateConfig, PlateDO plateDO) {
Integer incrementStep = plateNoRule.getIncrementStep();
Integer initValue = plateNoRule.getInitValue() - incrementStep;
// 生产单下的序号
// 单下的序号
OrderCustomPlateNoSeqVO orderCustomPlateNoSeqVO = generateConfig.getOrderCustomPlateNoSeqVO();
List<OrderCustomPlateNoSeqRoomVO> rooms = orderCustomPlateNoSeqVO.getRooms();
String roomName = plateDO.getRoomName();
// 根据房间名获取生产单下序号json中的房间下的柜体序号
// 根据房间名获取单下序号json中的房间下的柜体序号
OrderCustomPlateNoSeqRoomVO roomSeqVo = getRoomSeqVOByRoomName(roomName, rooms);
Integer roomBodyNoRoomSeq = Optional.ofNullable(roomSeqVo)
.map(OrderCustomPlateNoSeqRoomVO::getBodyNoSeq)
@@ -206,9 +206,9 @@ public class BodyNoGenerateRuleServiceImpl implements CustomPlateNoGenerateRuleS
rooms.add(roomSeqVo);
}
// 如果是新的柜体vo,要把累加的值记录到生产单rooms下的柜体
// 如果是新的柜体vo,要把累加的值记录到单rooms下的柜体
String bodyName = plateDO.getBodyName();
// 根据柜体名获取生产单下序号中rooms下柜体列表的柜体序号
// 根据柜体名获取单下序号中rooms下柜体列表的柜体序号
List<OrderCustomPlateNoSeqBodyVO> roomBodys = roomSeqVo.getBodys();
OrderCustomPlateNoSeqBodyVO roomBodySeqVo = getBodySeqVOByBodyName(bodyName, roomBodys);
// 获取当前房间下柜体的序号值
@@ -221,13 +221,13 @@ public class BodyNoGenerateRuleServiceImpl implements CustomPlateNoGenerateRuleS
roomBodys.add(roomBodySeqVo);
// 累加步长
roomBodyNoSeq = roomBodyNoRoomSeq + incrementStep;
// 累加后的值同步到当前生产单序号中,生产单下房间中柜体累加到多少了
// 累加后的值同步到当前单序号中,单下房间中柜体累加到多少了
roomSeqVo.setBodyNoSeq(roomBodyNoSeq);
} else if (roomBodyNoSeq == null) {
// 房间下柜体序号为空,设置房间下全局柜体序号值
// 累加步长
roomBodyNoSeq = roomBodyNoRoomSeq + incrementStep;
// 累加后的值同步到当前生产单序号中,生产单下房间中柜体累加到多少了
// 累加后的值同步到当前单序号中,单下房间中柜体累加到多少了
roomSeqVo.setBodyNoSeq(roomBodyNoSeq);
}
@@ -241,7 +241,7 @@ public class BodyNoGenerateRuleServiceImpl implements CustomPlateNoGenerateRuleS
}
/**
* 根据房间名从生产单序号json中获取房间序号
* 根据房间名从单序号json中获取房间序号
*
* @param roomName
* @param roomVOList
@@ -252,7 +252,7 @@ public class BodyNoGenerateRuleServiceImpl implements CustomPlateNoGenerateRuleS
}
/**
* 根据柜体名从生产单序号json中获取柜体序号
* 根据柜体名从单序号json中获取柜体序号
*
* @param bodyName
* @param bodyVOList
@@ -23,7 +23,7 @@ public interface CustomPlateNoGenerateRuleService {
/**
* 生成编号
*
* @param orderId 生产单号
* @param orderId 单号
* @param plateNoRule 生成规则
* @param generateConfig 生成所需要的配置
* @param plateDO 板材列表
@@ -27,7 +27,7 @@ import java.util.Optional;
import static com.cf.imes.module.executor.enums.ErrorCodeConstants.CUSTOM_PLATENO_GENERATE_ORDERNO_RULE_NOT_SUPPORT_RESETMODE;
/**
* 生产单序号生成规则服务实现类
* 单序号生成规则服务实现类
*
* @author Gqr
* @since 2024/11/18 17:18
@@ -64,10 +64,10 @@ public class OrderNoGenerateRuleServiceImpl implements CustomPlateNoGenerateRule
public CustomPlateNoGenerateConfigVO generateNo(Long orderId, CustomPlateNoRuleVO plateNoRule, CustomPlateNoGenerateConfigVO generateConfig, PlateDO plateDO, boolean firstPlate) {
// 初始化配置
initConfig(generateConfig);
// 生产单下的序号
// 单下的序号
OrderCustomPlateNoSeqVO orderCustomPlateNoSeqVO = generateConfig.getOrderCustomPlateNoSeqVO();
Integer orderNoSeq = orderCustomPlateNoSeqVO.getOrderNoSeq();
// 当前导入已有序号的,生产单内生产单序号不会再变直接用
// 当前导入已有序号的,订单内订单序号不会再变直接用
if (ObjectUtil.isNotNull(orderNoSeq)) {
// 补零
String noPartAfterFill = this.fillZero(orderNoSeq, plateNoRule);
@@ -78,7 +78,7 @@ public class OrderNoGenerateRuleServiceImpl implements CustomPlateNoGenerateRule
CustomPlateNoSeqDTO orgCustomPlateNoSeqRespDTO = generateConfig.getOrgCustomPlateNoSeqRespDTO();
// 获取当前序号值
int currOrderNoSeq = Optional.ofNullable(orgCustomPlateNoSeqRespDTO.getOrderNoSeq()).orElse(plateNoRule.getInitValue() - plateNoRule.getIncrementStep());
// 上次导入的生产单号
// 上次导入的单号
Long lastOrderNo = orgCustomPlateNoSeqRespDTO.getLastOrderNo();
if (firstPlate && (ObjectUtil.isNull(lastOrderNo) || ObjectUtil.notEqual(orderId, lastOrderNo))) {
// 根据复位模式计算序号
@@ -88,7 +88,7 @@ public class OrderNoGenerateRuleServiceImpl implements CustomPlateNoGenerateRule
String noPartAfterFill = this.fillZero(currOrderNoSeq, plateNoRule);
plateDO.getCustomPlateNoBuilder().append(noPartAfterFill);
// 累加后的值同步到当前生产单序号和机构序号中
// 累加后的值同步到当前单序号和机构序号中
orderCustomPlateNoSeqVO.setOrderNoSeq(currOrderNoSeq);
orgCustomPlateNoSeqRespDTO.setOrderNoSeq(currOrderNoSeq);
return generateConfig;
@@ -96,12 +96,12 @@ public class OrderNoGenerateRuleServiceImpl implements CustomPlateNoGenerateRule
@Override
public void reset(CustomPlateNoRuleDTO ruleDTO) {
// 查询所有使用当前配置id的生产单列表
// 查询所有使用当前配置id的单列表
Long configId = ruleDTO.getConfigId();
List<OrderDO> orderDOS = orderMapper.selectList(
new LambdaQueryWrapper<OrderDO>().eq(OrderDO::getCustomPlatenoConfigId, configId).eq(OrderDO::getOrganId, OrganContextHolder.getOrganId()));
// 更新生产单的序号
// 更新单的序号
for (OrderDO orderDO : orderDOS) {
OrderCustomPlateNoSeqVO orderCustomPlateNoSeqVO = JSON.parseObject(orderDO.getCustomPlatenoSeq(), OrderCustomPlateNoSeqVO.class);
if (ObjectUtil.isNotNull(orderCustomPlateNoSeqVO)) {
@@ -88,13 +88,13 @@ public class PlateNoGenerateRuleServiceImpl implements CustomPlateNoGenerateRule
@Override
public void reset(CustomPlateNoRuleDTO ruleDTO) {
// 查询所有使用当前配置id的生产单列表
// 查询所有使用当前配置id的单列表
Long configId = ruleDTO.getConfigId();
List<OrderDO> orderDOS = orderMapper.selectList(
new LambdaQueryWrapper<OrderDO>().eq(OrderDO::getCustomPlatenoConfigId, configId).eq(OrderDO::getOrganId, OrganContextHolder.getOrganId()));
ResetModeEnum resetModeEnum = ResetModeEnum.getByMode(ruleDTO.getResetMode());
// 根据复位模式更新生产单的序号
// 根据复位模式更新单的序号
for (OrderDO orderDO : orderDOS) {
OrderCustomPlateNoSeqVO orderCustomPlateNoSeqVO = JSON.parseObject(orderDO.getCustomPlatenoSeq(), OrderCustomPlateNoSeqVO.class);
if (ObjectUtil.isNotNull(orderCustomPlateNoSeqVO)) {
@@ -111,7 +111,7 @@ public class PlateNoGenerateRuleServiceImpl implements CustomPlateNoGenerateRule
}
/**
* 复位生产单下房间中的板件序号
* 复位单下房间中的板件序号
*
* @param rooms
*/
@@ -124,7 +124,7 @@ public class PlateNoGenerateRuleServiceImpl implements CustomPlateNoGenerateRule
}
/**
* 复位生产单下柜体中的板件序号
* 复位单下柜体中的板件序号
*
* @param rooms
*/
@@ -169,7 +169,7 @@ public class PlateNoGenerateRuleServiceImpl implements CustomPlateNoGenerateRule
}
/**
* 按生产单复位模式下的板编号生成
* 按单复位模式下的板编号生成
*
* @param orderId
* @param plateNoRule
@@ -179,13 +179,13 @@ public class PlateNoGenerateRuleServiceImpl implements CustomPlateNoGenerateRule
private CustomPlateNoGenerateConfigVO generateNoByOrderResetMode(Long orderId, CustomPlateNoRuleVO plateNoRule, CustomPlateNoGenerateConfigVO generateConfig, PlateDO plateDO, boolean firstPlate) {
Integer incrementStep = plateNoRule.getIncrementStep();
Integer initValue = plateNoRule.getInitValue() - incrementStep;
// 生产单下的序号
// 单下的序号
OrderCustomPlateNoSeqVO orderCustomPlateNoSeqVO = generateConfig.getOrderCustomPlateNoSeqVO();
// 机构下的自定义板编号序号
CustomPlateNoSeqDTO orgCustomPlateNoSeqRespDTO = generateConfig.getOrgCustomPlateNoSeqRespDTO();
// 获取当前生产单下板件序号
// 获取当前单下板件序号
Integer orderPlateNoSeq = Optional.ofNullable(orderCustomPlateNoSeqVO.getPlateNoSeq()).orElse(initValue);
// 上次导入的生产单号
// 上次导入的单号
Long lastOrderNo = orgCustomPlateNoSeqRespDTO.getLastOrderNo();
if (firstPlate && (ObjectUtil.isNull(lastOrderNo) || ObjectUtil.notEqual(orderId, lastOrderNo))) {
// 跨单复位到初始值
@@ -194,7 +194,7 @@ public class PlateNoGenerateRuleServiceImpl implements CustomPlateNoGenerateRule
// 跨板件累加步长,补零
orderPlateNoSeq += incrementStep;
plateDO.getCustomPlateNoBuilder().append(fillZero(orderPlateNoSeq, plateNoRule));
// 累加后的值同步到当前生产单序号中
// 累加后的值同步到当前单序号中
orderCustomPlateNoSeqVO.setPlateNoSeq(orderPlateNoSeq);
return generateConfig;
}
@@ -210,11 +210,11 @@ public class PlateNoGenerateRuleServiceImpl implements CustomPlateNoGenerateRule
private CustomPlateNoGenerateConfigVO generateNoByRoomResetMode(CustomPlateNoRuleVO plateNoRule, CustomPlateNoGenerateConfigVO generateConfig, PlateDO plateDO) {
Integer incrementStep = plateNoRule.getIncrementStep();
Integer initValue = plateNoRule.getInitValue() - incrementStep;
// 生产单下的序号
// 单下的序号
OrderCustomPlateNoSeqVO orderCustomPlateNoSeqVO = generateConfig.getOrderCustomPlateNoSeqVO();
List<OrderCustomPlateNoSeqRoomVO> rooms = orderCustomPlateNoSeqVO.getRooms();
String roomName = plateDO.getRoomName();
// 根据房间名获取生产单下序号json中的房间下的加工组序号
// 根据房间名获取单下序号json中的房间下的加工组序号
OrderCustomPlateNoSeqRoomVO roomSeqVo = getSeqRoomByRoomName(roomName, rooms);
// 为空初始化,加入列表
if (roomSeqVo == null) {
@@ -228,7 +228,7 @@ public class PlateNoGenerateRuleServiceImpl implements CustomPlateNoGenerateRule
// 累加步长
Integer roomPlateNoSeq = Optional.ofNullable(roomSeqVo.getPlateNoSeq())
.orElse(initValue) + incrementStep;
// 累加后的值同步到当前生产单序号中
// 累加后的值同步到当前单序号中
roomSeqVo.setPlateNoSeq(roomPlateNoSeq);
// 补零
plateDO.getCustomPlateNoBuilder().append(fillZero(roomPlateNoSeq, plateNoRule));
@@ -236,7 +236,7 @@ public class PlateNoGenerateRuleServiceImpl implements CustomPlateNoGenerateRule
}
/**
* 根据房间名从生产单序号json中获取房间序号列表
* 根据房间名从单序号json中获取房间序号列表
*
* @param roomName
* @param roomVOList
@@ -257,12 +257,12 @@ public class PlateNoGenerateRuleServiceImpl implements CustomPlateNoGenerateRule
private CustomPlateNoGenerateConfigVO generateNoByBodyResetMode(CustomPlateNoRuleVO plateNoRule, CustomPlateNoGenerateConfigVO generateConfig, PlateDO plateDO) {
Integer incrementStep = plateNoRule.getIncrementStep();
Integer initValue = plateNoRule.getInitValue() - incrementStep;
// 生产单下的序号
// 单下的序号
OrderCustomPlateNoSeqVO orderCustomPlateNoSeqVO = generateConfig.getOrderCustomPlateNoSeqVO();
List<OrderCustomPlateNoSeqRoomVO> rooms = orderCustomPlateNoSeqVO.getRooms();
String roomName = plateDO.getRoomName();
// 根据房间名获取生产单下序号json中的房间下的加工组序号
// 根据房间名获取单下序号json中的房间下的加工组序号
OrderCustomPlateNoSeqRoomVO roomSeqVo = getSeqRoomByRoomName(roomName, rooms);
if (ObjectUtil.isNull(roomSeqVo)) {
// 房间为空,new房间
@@ -275,7 +275,7 @@ public class PlateNoGenerateRuleServiceImpl implements CustomPlateNoGenerateRule
}
String bodyName = plateDO.getBodyName();
// 根据柜体名获取生产单下序号json中的房间下的加工组序号
// 根据柜体名获取单下序号json中的房间下的加工组序号
OrderCustomPlateNoSeqBodyVO bodySeqVO = getBodySeqByBodyName(bodyName, roomSeqVo);
if (bodySeqVO == null) {
@@ -289,7 +289,7 @@ public class PlateNoGenerateRuleServiceImpl implements CustomPlateNoGenerateRule
// 累加步长
// 获取柜体下的板件序号
Integer bodyPlateNoSeq = Optional.ofNullable(bodySeqVO.getPlateNoSeq()).orElse(initValue) + incrementStep;
// 累加后的值同步到当前生产单序号中
// 累加后的值同步到当前单序号中
bodySeqVO.setPlateNoSeq(bodyPlateNoSeq);
// 补零
String noPartAfterFillZero = fillZero(bodyPlateNoSeq, plateNoRule);
@@ -298,7 +298,7 @@ public class PlateNoGenerateRuleServiceImpl implements CustomPlateNoGenerateRule
}
/**
* 根据房间名从生产单序号json中获取房间序号列表
* 根据房间名从单序号json中获取房间序号列表
*
* @param bodyName
* @param roomVO
@@ -64,15 +64,15 @@ public class RoomNoGenerateRuleServiceImpl implements CustomPlateNoGenerateRuleS
Integer initValue = plateNoRule.getInitValue() - incrementStep;
// 初始化配置
initConfig(generateConfig);
// 生产单下的序号
// 单下的序号
OrderCustomPlateNoSeqVO orderCustomPlateNoSeqVO = generateConfig.getOrderCustomPlateNoSeqVO();
// 机构下的自定义板编号序号
CustomPlateNoSeqDTO orgCustomPlateNoSeqRespDTO = generateConfig.getOrgCustomPlateNoSeqRespDTO();
// 生产单下房间序号
// 单下房间序号
Integer orderRoomNoSeq = Optional.ofNullable(orderCustomPlateNoSeqVO.getRoomNoSeq()).orElse(initValue);
// 生产单序号下的的房间序号列表
// 单序号下的的房间序号列表
List<OrderCustomPlateNoSeqRoomVO> rooms = orderCustomPlateNoSeqVO.getRooms();
// 上次导入的生产单号
// 上次导入的单号
Long lastOrderNo = orgCustomPlateNoSeqRespDTO.getLastOrderNo();
if (firstPlate && (ObjectUtil.isNull(lastOrderNo) || ObjectUtil.notEqual(orderId, lastOrderNo))) {
// 跨单复位到初始值
@@ -80,12 +80,12 @@ public class RoomNoGenerateRuleServiceImpl implements CustomPlateNoGenerateRuleS
}
String roomName = plateDO.getRoomName();
// 根据房间名获取生产单下序号json中的房间下的柜体序号
// 根据房间名获取单下序号json中的房间下的柜体序号
OrderCustomPlateNoSeqRoomVO roomSeqVo = getRoomSeqVOByRoomName(roomName, rooms);
// 获取当前房间序号值
Integer roomNoSeq = Optional.ofNullable(roomSeqVo).map(OrderCustomPlateNoSeqRoomVO::getRoomNoSeq).orElse(null);
if (roomSeqVo == null) {
// 房间为空,新建房间,取生产单下房间序号
// 房间为空,新建房间,取单下房间序号
roomSeqVo = OrderCustomPlateNoSeqRoomVO.builder()
.roomName(roomName)
.bodys(new ArrayList<>())
@@ -93,13 +93,13 @@ public class RoomNoGenerateRuleServiceImpl implements CustomPlateNoGenerateRuleS
rooms.add(roomSeqVo);
// 累加步长
roomNoSeq = orderRoomNoSeq + incrementStep;
// 累加后的值同步到当前生产单序号中,生产单下房间序号累加到多少了
// 累加后的值同步到当前单序号中,单下房间序号累加到多少了
orderCustomPlateNoSeqVO.setRoomNoSeq(roomNoSeq);
} else if (roomNoSeq == null) {
// 房间下序号为空,取生产单下房间序号
// 房间下序号为空,取单下房间序号
// 累加步长
roomNoSeq = orderRoomNoSeq + incrementStep;
// 累加后的值同步到当前生产单序号中,生产单下房间序号累加到多少了
// 累加后的值同步到当前单序号中,单下房间序号累加到多少了
orderCustomPlateNoSeqVO.setRoomNoSeq(roomNoSeq);
}
@@ -114,12 +114,12 @@ public class RoomNoGenerateRuleServiceImpl implements CustomPlateNoGenerateRuleS
@Override
public void reset(CustomPlateNoRuleDTO ruleDTO) {
// 查询所有使用当前配置id的生产单列表
// 查询所有使用当前配置id的单列表
Long configId = ruleDTO.getConfigId();
List<OrderDO> orderDOS = orderMapper.selectList(
new LambdaQueryWrapper<OrderDO>().eq(OrderDO::getCustomPlatenoConfigId, configId).eq(OrderDO::getOrganId, OrganContextHolder.getOrganId()));
// 更新生产单的序号
// 更新单的序号
for (OrderDO orderDO : orderDOS) {
OrderCustomPlateNoSeqVO orderCustomPlateNoSeqVO = JSON.parseObject(orderDO.getCustomPlatenoSeq(), OrderCustomPlateNoSeqVO.class);
if (ObjectUtil.isNotNull(orderCustomPlateNoSeqVO)) {
@@ -130,7 +130,7 @@ public class RoomNoGenerateRuleServiceImpl implements CustomPlateNoGenerateRuleS
}
/**
* 根据房间名从生产单序号json中获取房间序号列表
* 根据房间名从单序号json中获取房间序号列表
*
* @param roomName
* @param roomVOList
@@ -31,7 +31,7 @@ import static com.cf.imes.framework.common.exception.enums.GlobalErrorCodeConsta
/**
* @author Beal
* 生产单入库处理器
* 单入库处理器
*/
@Slf4j
@Component
@@ -65,7 +65,7 @@ public class OrderInputProcessor {
}
/**
* 保存生产单造型数据
* 保存单造型数据
*
* @param orderModelDOs
*/
@@ -85,7 +85,7 @@ public class OrderInputProcessor {
}
/**
* 异步保存生产单造型数据
* 异步保存单造型数据
*
* @param orderModelDOs
*/
@@ -100,9 +100,9 @@ public class OrderInputProcessor {
}
/**
* 按批次删除生产单OrderModels
* 按批次删除单OrderModels
*
* @param orderId 生产单id
* @param orderId 单id
* @param batchId 批次id
* @param index
*/
@@ -140,7 +140,7 @@ public class OrderInputProcessor {
}
/**
* 保存生产单配件备注数据
* 保存单配件备注数据
*
* @param orderPartsRemarks
*/
@@ -3,7 +3,7 @@ package com.cf.imes.module.plan.service.orderImport;
import org.springframework.web.multipart.MultipartFile;
/**
* 生产单导入服务Service
* 单导入服务Service
*
* @author Gqr
* @since 2025/3/4 10:25
@@ -11,7 +11,7 @@ import org.springframework.web.multipart.MultipartFile;
public interface WebCadOrderImportService {
/**
* webcad生产单导入
* webcad单导入
*
* @param file
* @return true:同步导入、false:异步导入
@@ -67,7 +67,7 @@ import static com.cf.imes.module.plan.enums.ErrorCodeConstants.WEBCAD_ORDER_IMPO
import static com.cf.imes.module.plan.enums.ErrorCodeConstants.WEBCAD_ORDER_NOT_EXISTS_ERROR;
/**
* 生产单导入服务Service实现类
* 单导入服务Service实现类
*
* @author Gqr
* @since 2025/3/4 10:27
@@ -225,12 +225,12 @@ public class WebCadOrderImportServiceImpl implements WebCadOrderImportService {
}
/**
* 解析生产单信息
* 解析单信息
*
* @param orderNo
*/
private OrderDO analyzeOrder(String orderNo, Long organId) {
// 查询生产单信息
// 查询单信息
OrderDO orderDOFromOrderNo = orderMapper.selectOne(new LambdaUpdateWrapper<OrderDO>()
.eq(OrderDO::getId, NumberUtil.parseLong(orderNo))
.eq(OrderDO::getOrganId, organId)
@@ -239,12 +239,12 @@ public class WebCadOrderImportServiceImpl implements WebCadOrderImportService {
throw new ServiceException(WEBCAD_ORDER_NOT_EXISTS_ERROR, orderNo);
} else {
Integer status = orderDOFromOrderNo.getStatus();
// 更新生产单来源为webcad
// 更新单来源为webcad
LambdaUpdateWrapper<OrderDO> lambdaUpdateWrapper = new LambdaUpdateWrapper<OrderDO>()
.eq(OrderDO::getId, orderDOFromOrderNo.getId())
.eq(OrderDO::getOrganId, organId)
.set(OrderDO::getDataType, DataTypeEnum.API_IMPORT.getStatus());
// 如果导入生产单为空单,则更新为新单
// 如果导入单为空单,则更新为新单
if (OrderStatusEnum.EMPTY.getStatus().equals(status)) {
lambdaUpdateWrapper.set(OrderDO::getStatus, OrderStatusEnum.NEW_ORDER.getStatus());
}
@@ -57,7 +57,7 @@ import static com.cf.imes.module.plan.enums.ErrorCodeConstants.ORDER_IMPORT_FAIL
import static com.cf.imes.module.plan.enums.ErrorCodeConstants.ORDER_IMPORT_ORGANID_NOT_EXISTS;
/**
* 默认excel导入生产单消费者
* 默认excel导入单消费者
*
* @author Gqr
* @since 2025/1/6 11:18
@@ -129,7 +129,7 @@ public class DefaultExcelOrderImportConsumer {
@DS("imes_prod")
@Transactional(rollbackFor = Exception.class)
public void orderImport(String message, Channel channel, @Header(AmqpHeaders.DELIVERY_TAG) long deliveryTag) throws Exception {
log.info("====================【生产单默认excel导入收到消息:{}】====================", message);
log.info("====================【单默认excel导入收到消息:{}】====================", message);
Long organId = null;
Long taskId = Long.parseLong(message);
boolean lockResult = true;
@@ -156,16 +156,16 @@ public class DefaultExcelOrderImportConsumer {
if (ObjectUtil.isNull(orderImportTaskDO)) {
return;
}
// 创建生产
// 创建
OrderDO orderDO = createOrder(taskId);
// 创建工厂
log.info("====================【生产单默认excel导入处理临时数据开始】====================");
log.info("====================【单默认excel导入处理临时数据开始】====================");
DefaultExcelOrderImportFactory defaultExcelOrderImportFactory = new DefaultExcelOrderImportFactory(taskId, orderDO, organId, orderImportTaskDO.getCreator(),
snowFlakeGenerator, idWorker, orderImportTaskMapper, orderImportTempDataMapper, dictDataApi, orderMapper, goodsMapper, rawGoodsMapper, orderPartsMapper,
orderBodyMapper, orderGroupMapper, plateMapper, orderItemMapper, plateGoodMapper, orderInputProcessor, partsMapper, customPlateNoGenerateService);
// 解析临时表数据
defaultExcelOrderImportFactory.analyzeTempData();
log.info("====================【生产单默认excel导入处理临时数据结束】====================");
log.info("====================【单默认excel导入处理临时数据结束】====================");
} catch (Exception e) {
log.error(ORDER_IMPORT_FAIL.getMsg(), e);
orderImportTaskService.updateImportTaskFail(orderImportTaskDO, e);
@@ -179,7 +179,7 @@ public class DefaultExcelOrderImportConsumer {
}
/**
* 创建生产
* 创建
*
* @param taskId
* @return
@@ -194,10 +194,10 @@ public class DefaultExcelOrderImportConsumer {
// 不是新单不用创建
if (ObjectUtil.isNotNull(orderImportTempDataDO) && ObjectUtil.isNotNull(orderImportTempDataDO.getOrderId())) {
Long existOrderId = orderImportTempDataDO.getOrderId();
// 校验生产单id
// 校验单id
OrderDO orderDO = orderMapper.selectById(existOrderId);
Optional.ofNullable(orderDO).orElseThrow(() -> new ServiceException(ORDER_IMPORT_ORDER_NOT_EXISTS, existOrderId));
// 更新补板生产单属性
// 更新补板单属性
updateOrder(orderDO);
return orderDO;
}
@@ -207,7 +207,7 @@ public class DefaultExcelOrderImportConsumer {
Long orderId = (Long) snowFlakeGenerator.nextId(null);
newOrder.setId(orderId);
orderMapper.insert(newOrder);
// 生产单id更新到导入任务表
// 单id更新到导入任务表
orderImportTaskMapper.update(new LambdaUpdateWrapper<OrderImportTaskDO>()
.eq(OrderImportTaskDO::getId, taskId)
.set(OrderImportTaskDO::getOrderId, orderId));
@@ -215,7 +215,7 @@ public class DefaultExcelOrderImportConsumer {
}
/**
* 更新补板生产单的属性
* 更新补板单的属性
*
* @param orderDO
*/
@@ -57,7 +57,7 @@ import static com.cf.imes.module.plan.enums.ErrorCodeConstants.ORDER_IMPORT_FAIL
import static com.cf.imes.module.plan.enums.ErrorCodeConstants.ORDER_IMPORT_ORGANID_NOT_EXISTS;
/**
* 默认excel导入生产单消费者
* 默认excel导入单消费者
*
* @author Gqr
* @since 2025/2/19 16:22
@@ -126,7 +126,7 @@ public class DefaultXmlOrderImportConsumer {
@DS("imes_prod")
@Transactional(rollbackFor = Exception.class)
public void orderImport(String message, Channel channel, @Header(AmqpHeaders.DELIVERY_TAG) long deliveryTag) throws Exception {
log.info("====================【生产单默认xml导入收到消息:{}】====================", message);
log.info("====================【单默认xml导入收到消息:{}】====================", message);
Long organId = null;
Long taskId = Long.parseLong(message);
boolean lockResult = true;
@@ -153,16 +153,16 @@ public class DefaultXmlOrderImportConsumer {
if (ObjectUtil.isNull(orderImportTaskDO)) {
return;
}
// 创建生产
// 创建
OrderDO orderDO = createOrder(taskId);
log.info("====================【生产单默认xml导入处理临时数据开始】====================");
log.info("====================【单默认xml导入处理临时数据开始】====================");
// 创建工厂
DefaultXmlOrderImportFactory defaultExcelOrderImportFactory = new DefaultXmlOrderImportFactory(taskId, orderDO, organId, orderImportTaskDO.getCreator(),
snowFlakeGenerator, idWorker, orderImportTaskMapper, orderImportTempDataMapper, orderMapper, goodsMapper, rawGoodsMapper, orderPartsMapper,
orderBodyMapper, orderGroupMapper, plateMapper, orderItemMapper, plateGoodMapper, orderInputProcessor, partsMapper, customPlateNoGenerateService);
// 解析临时表数据
defaultExcelOrderImportFactory.analyzeTempData();
log.info("====================【生产单默认xml导入处理临时数据结束】====================");
log.info("====================【单默认xml导入处理临时数据结束】====================");
} catch (Exception e) {
log.error( ORDER_IMPORT_FAIL.getMsg(), e);
orderImportTaskService.updateImportTaskFail(orderImportTaskDO, e);
@@ -176,7 +176,7 @@ public class DefaultXmlOrderImportConsumer {
}
/**
* 创建生产
* 创建
*
* @param taskId
* @return
@@ -191,10 +191,10 @@ public class DefaultXmlOrderImportConsumer {
// 不是新单不用创建
if (ObjectUtil.isNotNull(orderImportTempDataDO) && ObjectUtil.isNotNull(orderImportTempDataDO.getOrderId())) {
Long existOrderId = orderImportTempDataDO.getOrderId();
// 校验生产单id
// 校验单id
OrderDO orderDO = orderMapper.selectById(existOrderId);
Optional.ofNullable(orderDO).orElseThrow(() -> new ServiceException(ORDER_IMPORT_ORDER_NOT_EXISTS, existOrderId));
// 更新补板生产单属性
// 更新补板单属性
updateOrder(orderDO);
return orderDO;
}
@@ -204,7 +204,7 @@ public class DefaultXmlOrderImportConsumer {
Long orderId = (Long) snowFlakeGenerator.nextId(null);
newOrder.setId(orderId);
orderMapper.insert(newOrder);
// 生产单id更新到导入任务表
// 单id更新到导入任务表
orderImportTaskMapper.update(new LambdaUpdateWrapper<OrderImportTaskDO>()
.eq(OrderImportTaskDO::getId, taskId)
.set(OrderImportTaskDO::getOrderId, orderId));
@@ -212,7 +212,7 @@ public class DefaultXmlOrderImportConsumer {
}
/**
* 更新补板生产单的属性
* 更新补板单的属性
*
* @param orderDO
*/
@@ -28,7 +28,7 @@ import static com.cf.imes.framework.mq.rabbitmq.constant.RabbitMqConstants.ORDER
import static com.cf.imes.module.plan.enums.ErrorCodeConstants.WEBCAD_ORDER_IMPORT_PEEK_NOT_EXIST_ERROR;
/**
* 生产单导入死信队列消费
* 单导入死信队列消费
*
* @author Gqr
* @since 2025/2/12 10:48
@@ -52,7 +52,7 @@ public class OrderImportDeadLetterConsumer {
@Header(value = "peek", required = false) String peek,
@Header(AmqpHeaders.DELIVERY_TAG) long deliveryTag,
@Header(value = "x-death", required = false) List<Map<String, Object>> xDeath) throws IOException {
log.info("====================【生产单导入收到死信消息:{}】====================", message);
log.info("====================【单导入收到死信消息:{}】====================", message);
// 手动确认消息
channel.basicAck(deliveryTag, false);
@@ -74,7 +74,7 @@ import static com.cf.imes.module.plan.service.order.OrderInputProcessor.ORDER_PA
import static com.cf.imes.module.plan.service.order.OrderInputProcessor.ORDER_PLATE_MODEL;
/**
* 默认excel导入生产单工厂服务
* 默认excel导入单工厂服务
*
* @author Gqr
* @since 2025/2/11 16:03
@@ -216,27 +216,27 @@ public class DefaultExcelOrderImportFactory {
// 获取自定义板编号配置
plateNoGenerateConfigVO = customPlateNoGenerateService.getPlateNoGenerateConfig(orderId);
log.info("====================【生产单默认xml导入处理商品开始】====================");
log.info("====================【单默认xml导入处理商品开始】====================");
// 解析商品数据
analyzeGoods();
log.info("====================【生产单默认xml导入处理商品结束】====================");
log.info("====================【单默认xml导入处理商品结束】====================");
log.info("====================【生产单默认xml导入处理配件商品开始】====================");
log.info("====================【单默认xml导入处理配件商品开始】====================");
// 解析配件数据
analyzePartsGoods();
log.info("====================【生产单默认xml导入处理配件商品结束】====================");
log.info("====================【单默认xml导入处理配件商品结束】====================");
log.info("====================【生产单默认xml导入处理小板/配件开始】====================");
log.info("====================【单默认xml导入处理小板/配件开始】====================");
// 解析小板/配件项
analyzeRooms();
log.info("====================【生产单默认xml导入处理小板/配件结束】====================");
// 所有自定义板编号生成完成后更新配置到生产
log.info("====================【单默认xml导入处理小板/配件结束】====================");
// 所有自定义板编号生成完成后更新配置到
customPlateNoGenerateService.updateCustomPlateNoGenerateConfig(plateNoGenerateConfigVO, orderDO);
// 删除临时数据
deleteTempData();
// 更新生产单板件数量
// 更新单板件数量
updateOrderPlateNum();
// 完成所有流程后更新任务为导入成功
@@ -494,7 +494,7 @@ public class DefaultExcelOrderImportFactory {
}
/**
* 每达到阈值就批量插入一次生产单造型数据和压缩数据
* 每达到阈值就批量插入一次单造型数据和压缩数据
*
* @param isLast 是否最后一次插入,不是就需要清理list
*/
@@ -986,14 +986,14 @@ public class DefaultExcelOrderImportFactory {
}
/**
* 每达到阈值就批量插入一次生产单造型数据和压缩数据
* 每达到阈值就批量插入一次单造型数据和压缩数据
*
* @param isLast 是否最后一次插入,不是就需要清理list
*/
private void orderModelsBatchInsertWithinThreshold(boolean isLast) {
// 达到批量的阈值就做一次插入
if (CollUtil.isNotEmpty(orderModelDOS) && (orderModelDOS.size() >= BATCH_THRESHOLD_NUMBER || isLast)) {
// 保存生产单造型数据
// 保存单造型数据
orderInputProcessor.batchSaveModel(orderModelDOS);
if (!isLast) {
// 存储完成清理 list
@@ -1065,7 +1065,7 @@ public class DefaultExcelOrderImportFactory {
}
/**
* 创建生产单柜体orderBody
* 创建单柜体orderBody
*
* @param roomName
* @param roomId
@@ -1099,7 +1099,7 @@ public class DefaultExcelOrderImportFactory {
}
/**
* 创建生产单加工组orderGroup
* 创建单加工组orderGroup
*
* @param bodyId
* @param groupTypeName
@@ -1136,7 +1136,7 @@ public class DefaultExcelOrderImportFactory {
}
/**
* 创建生产单设计商品orderRawGoods
* 创建单设计商品orderRawGoods
*
* @param goodsId
* @param groupDO
@@ -1168,7 +1168,7 @@ public class DefaultExcelOrderImportFactory {
}
/**
* 创建生产单商品orderGoods
* 创建单商品orderGoods
*
* @param groupDO
* @return
@@ -1208,7 +1208,7 @@ public class DefaultExcelOrderImportFactory {
}
/**
* 创建生产单配件orderParts
* 创建单配件orderParts
*
* @param goodsId
* @param groupDO
@@ -1386,7 +1386,7 @@ public class DefaultExcelOrderImportFactory {
}
/**
* 更新生产单的板件总数
* 更新单的板件总数
*/
private void updateOrderPlateNum() {
int version = orderDO.getVersion();
@@ -110,7 +110,7 @@ import static com.cf.imes.module.plan.service.order.OrderInputProcessor.ORDER_PA
import static com.cf.imes.module.plan.service.order.OrderInputProcessor.ORDER_PLATE_MODEL;
/**
* 默认xml导入生产单工厂服务
* 默认xml导入单工厂服务
*
* @author Gqr
* @since 2025/2/19 16:26
@@ -260,40 +260,40 @@ public class DefaultXmlOrderImportFactory {
// 获取自定义板编号配置
plateNoGenerateConfigVO = customPlateNoGenerateService.getPlateNoGenerateConfig(orderId);
log.info("====================【生产单默认xml导入处理柜体开始】====================");
log.info("====================【单默认xml导入处理柜体开始】====================");
// 解析柜体数据
analyzeBodyNoPaging();
log.info("====================【生产单默认xml导入处理柜体结束】====================");
log.info("====================【单默认xml导入处理柜体结束】====================");
log.info("====================【生产单默认xml导入处理加工组开始】====================");
log.info("====================【单默认xml导入处理加工组开始】====================");
// 解析加工组
analyzeGroupNoPaging();
log.info("====================【生产单默认xml导入处理加工组结束】====================");
log.info("====================【单默认xml导入处理加工组结束】====================");
log.info("====================【生产单默认xml导入处理商品开始】====================");
log.info("====================【单默认xml导入处理商品开始】====================");
// 解析商品数据
analyzeGoodsDetailNoPaging();
log.info("====================【生产单默认xml导入处理商品结束】====================");
log.info("====================【单默认xml导入处理商品结束】====================");
log.info("====================【生产单默认xml导入处理板件开始】====================");
log.info("====================【单默认xml导入处理板件开始】====================");
// 解析板件
analyzePlate();
log.info("====================【生产单默认xml导入处理板件结束】====================");
log.info("====================【单默认xml导入处理板件结束】====================");
log.info("====================【生产单默认xml导入处理配件开始】====================");
log.info("====================【单默认xml导入处理配件开始】====================");
// 解析配件
analyzeParts();
log.info("====================【生产单默认xml导入处理配件结束】====================");
log.info("====================【单默认xml导入处理配件结束】====================");
log.info("====================【生产单默认xml导入处理回显开始】====================");
log.info("====================【单默认xml导入处理回显开始】====================");
// 把缓存数据回显到业务表
writeBackToOrders();
log.info("====================【生产单默认xml导入处理回显结束】====================");
log.info("====================【单默认xml导入处理回显结束】====================");
// 删除临时数据
deleteTempData();
// 更新生产单板件数量
// 更新单板件数量
updateOrderPlateNum();
// 完成所有流程后更新任务为导入成功
@@ -681,7 +681,7 @@ public class DefaultXmlOrderImportFactory {
// 批量插入造型数据
orderModelsBatchInsertWithinThreshold(true);
// 所有自定义板编号生成完成后更新配置到生产
// 所有自定义板编号生成完成后更新配置到
customPlateNoGenerateService.updateCustomPlateNoGenerateConfig(plateNoGenerateConfigVO, orderDO);
}
@@ -1688,7 +1688,7 @@ public class DefaultXmlOrderImportFactory {
}
/**
* 创建生产单柜体orderBody
* 创建单柜体orderBody
*
* @param groupDO
* @return
@@ -1747,7 +1747,7 @@ public class DefaultXmlOrderImportFactory {
}
/**
* 创建生产单加工组orderGroup
* 创建单加工组orderGroup
*
* @param groupDO
* @return
@@ -1803,14 +1803,14 @@ public class DefaultXmlOrderImportFactory {
}
/**
* 每达到阈值就批量插入一次生产单造型数据和压缩数据
* 每达到阈值就批量插入一次单造型数据和压缩数据
*
* @param isLast 是否最后一次插入,不是就需要清理list
*/
private void orderModelsBatchInsertWithinThreshold(boolean isLast) {
// 达到批量的阈值就做一次插入
if (CollUtil.isNotEmpty(orderModelDOS) && (orderModelDOS.size() >= BATCH_THRESHOLD_NUMBER || isLast)) {
// 保存生产单造型数据
// 保存单造型数据
orderInputProcessor.batchSaveModel(orderModelDOS);
if (!isLast) {
// 存储完成清理 list
@@ -1820,7 +1820,7 @@ public class DefaultXmlOrderImportFactory {
}
/**
* 每达到阈值就批量插入一次生产单造型数据和压缩数据
* 每达到阈值就批量插入一次单造型数据和压缩数据
*
* @param isLast 是否最后一次插入,不是就需要清理list
*/
@@ -1943,7 +1943,7 @@ public class DefaultXmlOrderImportFactory {
}
/**
* 更新生产单的板件总数
* 更新单的板件总数
*/
private void updateOrderPlateNum() {
int version = orderDO.getVersion();
@@ -97,7 +97,7 @@ import static com.cf.imes.module.plan.enums.ErrorCodeConstants.WEBCAD_ORDER_NOT_
import static com.cf.imes.module.plan.service.order.OrderInputProcessor.ORDER_PLATE_MODEL;
/**
* webcad异步导入生产单工厂服务
* webcad异步导入单工厂服务
*
* @author Gqr
* @since 2025/3/8 14:39
@@ -278,9 +278,9 @@ public class WebCadOrderImportAsyncFactory {
private void processFieldData(String fieldName, JSONReader reader) {
switch (fieldName) {
case "OrderNo":
log.debug("====================【cad拆单解析生产单开始】====================");
log.debug("====================【cad拆单解析单开始】====================");
analyzeOrder(reader.readString());
log.debug("====================【cad拆单解析生产单结束】====================");
log.debug("====================【cad拆单解析单结束】====================");
break;
case "Materials":
log.debug("====================【cad拆单解析板材开始】====================");
@@ -403,12 +403,12 @@ public class WebCadOrderImportAsyncFactory {
}
/**
* 解析生产单信息
* 解析单信息
*
* @param orderNo
*/
private void analyzeOrder(String orderNo) {
// 查询生产单信息
// 查询单信息
OrderDO orderDOFromOrderNo = orderMapper.selectOne(new LambdaUpdateWrapper<OrderDO>()
.eq(OrderDO::getId, NumberUtil.parseLong(orderNo))
.eq(OrderDO::getOrganId, organId)
@@ -417,10 +417,10 @@ public class WebCadOrderImportAsyncFactory {
throw new ServiceException(WEBCAD_ORDER_NOT_EXISTS_ERROR, orderNo);
} else {
Integer status = orderDOFromOrderNo.getStatus();
// 更新生产单来源为webcad
// 更新单来源为webcad
LambdaUpdateWrapper<OrderDO> lambdaUpdateWrapper = new LambdaUpdateWrapper<OrderDO>().eq(OrderDO::getId, orderDOFromOrderNo.getId())
.set(OrderDO::getDataType, DataTypeEnum.API_IMPORT.getStatus());
// 如果导入生产单为空单,则更新为新单
// 如果导入单为空单,则更新为新单
if (OrderStatusEnum.EMPTY.getStatus().equals(status)) {
lambdaUpdateWrapper.set(OrderDO::getStatus, OrderStatusEnum.NEW_ORDER.getStatus());
}
@@ -429,7 +429,7 @@ public class WebCadOrderImportAsyncFactory {
orderDO = orderDOFromOrderNo;
orderId = orderDOFromOrderNo.getId();
// 解析已有生产单下板件数量,超过两万不再导入
// 解析已有单下板件数量,超过两万不再导入
Long existPlateCount = plateMapper.selectCount(new LambdaQueryWrapper<PlateDO>()
.eq(PlateDO::getOrderId, orderId)
.eq(PlateDO::getOrganId, organId)
@@ -471,7 +471,7 @@ public class WebCadOrderImportAsyncFactory {
Long orderGoodsId;
GoodsDO existOrderGoods = materialMap.get(plateGoodsGoodsId);
if (ObjectUtil.isNull(existOrderGoods)) {
// 检查生产单下是否已经有板材下的order_goods,有不再创建
// 检查单下是否已经有板材下的order_goods,有不再创建
List<GoodsDO> existOrderGoodIds = goodsMapper.selectList(new LambdaQueryWrapper<GoodsDO>()
.eq(GoodsDO::getGoodsId, plateGoodsGoodsId)
.eq(GoodsDO::getOrderId, orderId)
@@ -510,7 +510,7 @@ public class WebCadOrderImportAsyncFactory {
rawGoodsDO.setUpdateTime(now);
orderGoodsId = (Long) snowFlakeGenerator.nextId(null);
// 创建生产单商品
// 创建单商品
GoodsDO goodsDO = GoodsDO.builder()
.id(orderGoodsId)
.orderId(orderId)
@@ -616,7 +616,7 @@ public class WebCadOrderImportAsyncFactory {
}
/**
* 解析生产单信息板材列表
* 解析单信息板材列表
*
* @param reader
*/
@@ -2264,14 +2264,14 @@ public class WebCadOrderImportAsyncFactory {
}
/**
* 每达到阈值就批量插入一次生产单造型数据和压缩数据
* 每达到阈值就批量插入一次单造型数据和压缩数据
*
* @param isLast 是否最后一次插入,不是就需要清理list
*/
private void orderModelsBatchInsertWithinThreshold(boolean isLast) {
// 达到批量的阈值就做一次插入
if (CollUtil.isNotEmpty(orderModelDOS) && (orderModelDOS.size() >= BATCH_THRESHOLD_NUMBER || isLast)) {
// 保存生产单造型数据
// 保存单造型数据
orderInputProcessor.batchAsyncSaveModel(orderModelDOS);
if (!isLast) {
// 存储完成清理 list
@@ -2444,7 +2444,7 @@ public class WebCadOrderImportAsyncFactory {
}
/**
* 更新生产单的板件总数
* 更新单的板件总数
*/
private void updateOrderPlateNum() {
int version = orderDO.getVersion();
@@ -85,7 +85,7 @@ import static com.cf.imes.module.plan.enums.ErrorCodeConstants.WEBCAD_ORDER_IMPO
import static com.cf.imes.module.plan.service.order.OrderInputProcessor.ORDER_PLATE_MODEL;
/**
* webcad导入生产单工厂服务
* webcad导入单工厂服务
*
* @author Gqr
* @since 2025/3/8 14:39
@@ -281,10 +281,10 @@ public class WebCadOrderImportFactory {
// 新增/更新order_goods
insertOrUpdatePlateNumGoods();
// 更新生产单板件数量
// 更新单板件数量
updateOrderPlateNum();
// 所有自定义板编号生成完成后更新配置到生产
// 所有自定义板编号生成完成后更新配置到
customPlateNoGenerateService.updateCustomPlateNoGenerateConfig(plateNoGenerateConfigVO, orderDO);
if (plateNumReachThreshold) {
@@ -342,12 +342,12 @@ public class WebCadOrderImportFactory {
}
/**
* 解析生产单信息
* 解析单信息
*
* @param
*/
private void analyzePlateNum() {
// 解析已有生产单下板件数量,超过两万不再导入
// 解析已有单下板件数量,超过两万不再导入
Long existPlateCount = plateMapper.selectCount(new LambdaQueryWrapper<PlateDO>()
.eq(PlateDO::getOrderId, orderId)
.eq(PlateDO::getOrganId, organId)
@@ -383,7 +383,7 @@ public class WebCadOrderImportFactory {
return;
}
// 检查生产单下是否已经有goodsId下的order_goods,有不再创建
// 检查单下是否已经有goodsId下的order_goods,有不再创建
materialMap = goodsMapper.selectMaps(
new QueryWrapper<GoodsDO>()
.select("goods_id ,MIN(id) as id, plate_num, planned_plate_num, area, planned_plate_area, version")
@@ -432,7 +432,7 @@ public class WebCadOrderImportFactory {
.build();
Long orderGoodsId = (Long) snowFlakeGenerator.nextId(null);
// 创建生产单商品
// 创建单商品
GoodsDO goodsDO = GoodsDO.builder()
.id(orderGoodsId)
.orderId(orderId)
@@ -587,7 +587,7 @@ public class WebCadOrderImportFactory {
}
/**
* 解析生产单信息板材列表
* 解析单信息板材列表
*
* @param douleRoomTree
*/
@@ -601,7 +601,7 @@ public class WebCadOrderImportFactory {
// 所有房间名
List<String> roomNames = douleRoomTree.stream().map(WebCadDataDoubleRoomTreeReqVO::getName).collect(Collectors.toList());
// 查询当前生产单的所有房间
// 查询当前单的所有房间
existRoomIdMap = orderBodyMapper.selectMaps(
new QueryWrapper<OrderBodyDO>()
.select("room_name,MIN(room_id) as room_id")
@@ -1375,7 +1375,7 @@ public class WebCadOrderImportFactory {
roomId = existRoomId;
} else {
// 可能有配件房间柜体不在板件的情况,再查一次
// 查询当前生产单的所有房间
// 查询当前单的所有房间
List<String> roomNames = parts.stream().map(WebCadDataDoubleRoomTreeReqVO::getName).collect(Collectors.toList());
Map<String, Long> existPartsRoomIdMap = orderBodyMapper.selectMaps(
@@ -2080,14 +2080,14 @@ public class WebCadOrderImportFactory {
}
/**
* 每达到阈值就批量插入一次生产单造型数据和压缩数据
* 每达到阈值就批量插入一次单造型数据和压缩数据
*
* @param isLast 是否最后一次插入,不是就需要清理list
*/
private void orderModelsBatchInsertWithinThreshold(boolean isLast) {
// 达到批量的阈值就做一次插入
if (CollUtil.isNotEmpty(orderModelDOS) && (orderModelDOS.size() >= BATCH_THRESHOLD_NUMBER || isLast)) {
// 保存生产单造型数据
// 保存单造型数据
orderInputProcessor.batchAsyncSaveModel(orderModelDOS);
if (!isLast) {
// 存储完成清理 list
@@ -2218,7 +2218,7 @@ public class WebCadOrderImportFactory {
}
/**
* 更新生产单的板件总数
* 更新单的板件总数
*/
private void updateOrderPlateNum() {
int version = orderDO.getVersion();
@@ -14,7 +14,7 @@ import org.springframework.context.annotation.Configuration;
@ConfigurationProperties(prefix = "chenfeng.plan.webcad.import")
public class WebCadImportProperties {
/**
* 单条生产单内拆单板件阈值
* 单条单内拆单板件阈值
*/
private int cadImportPlateNumThreshold;
@@ -139,8 +139,8 @@ chenfeng:
admin-ui:
url: http://dashboard.chenfeng.iocoder.cn # Admin 管理后台 UI 的地址
swagger:
title: 生产单计划
description: 提供生产单计划的所有功能
title: 单计划
description: 提供单计划的所有功能
version: ${chenfeng.info.version}
base-package: ${chenfeng.info.base-package}
captcha:
@@ -160,8 +160,8 @@ chenfeng:
admin-ui:
url: http://dashboard.chenfeng.iocoder.cn # Admin 管理后台 UI 的地址
swagger:
title: 生产单计划
description: 提供生产单计划的所有功能
title: 单计划
description: 提供单计划的所有功能
version: ${chenfeng.info.version}
base-package: ${chenfeng.info.base-package}
captcha:
@@ -13,21 +13,21 @@ global.org.product.not.exist=账号登录异常,套餐信息不存在,请重
global.org.product.expired=组织产品套餐已过期,请续费后继续使用
global.not.login=账号未登录
order.import.plate.goods.not_exists={}生产单商品板材数据不存在:{}
order.import.plate.goods.not_exists={}单商品板材数据不存在:{}
order.import.organid.not_exists=不存在组织id,导入终止
order.import.fail=导入失败
webcad.order.not_exists=导入失败:生产单号{}不存在
webcad.order.not_exists=导入失败:单号{}不存在
webcad.order.import.organid.empty=导入失败:无法获取机构信息,请检查cadtoken是否配置正确
webcad.order.import.failed=导入失败:请检查拆单数据
webcad.order.import.plate.not_exist=导入失败:板材对应失败,板材库中不存在对应板材{}
webcad.order.import.save_data.error=导入失败:数据保存异常,请检查拆单数据
webcad.order.import.org.sealedge.get.error=导入失败:获取组织封边对应配置异常,请检查服务
webcad.order.import.org.sealedge.analyze.error=导入失败:组织封边对应配置解析异常,请检查配置
webcad.order.import.plate_num.check.error=导入失败:生产单{}下板件数量已达到{}片,无法继续导入
webcad.order.import.plate_num.threshold.reach=部分导入成功,生产单{}下板件数量已达到{}片,本次拆单超出部分不计入生产
webcad.order.import.plate_num.check.error=导入失败:单{}下板件数量已达到{}片,无法继续导入
webcad.order.import.plate_num.threshold.reach=部分导入成功,单{}下板件数量已达到{}片,本次拆单超出部分不计入
order.import.plate.goods.no_match=导入失败,板材库中无板材匹配,商品编码:{},商品名称:{},材质:{},颜色:{},厚度:{},品牌:{}
webcad.order.import.peek.not_exist=导入失败:数据源不存在,请检查消息可靠性
webcad.order.import.order.update.concurrent=导入失败:生产单号{}板件数量已发生改变,请重新导入
webcad.order.import.order.update.concurrent=导入失败:单号{}板件数量已发生改变,请重新导入
webcad.order.import.goods.update.concurrent=导入失败:材质{}板件数量已发生改变,请重新导入
webcad.order.import.cad.view.file.id.empty.error=导入失败:请检查CAD图纸数据是否上传成功
@@ -13,21 +13,21 @@ global.org.product.not.exist=帳號登入異常,套餐資訊不存在,請重
global.org.product.expired=組織產品套餐已過期,請續費後繼續使用
global.not.login=賬號未登錄
order.import.plate.goods.not_exists={}生產單商品板材資料不存在:{}
order.import.plate.goods.not_exists={}單商品板材資料不存在:{}
order.import.organid.not_exists=不存在組織ID,匯入終止
order.import.fail=匯入失敗
webcad.order.not_exists=匯入失敗:生產單號{}不存在
webcad.order.not_exists=匯入失敗:單號{}不存在
webcad.order.import.organid.empty=匯入失敗:無法取得機構資訊,請檢查 cadtoken 是否設定正確
webcad.order.import.failed=匯入失敗:請檢查拆單資料
webcad.order.import.plate.not_exist=匯入失敗:板材對應失敗,板材庫中不存在對應板材{}
webcad.order.import.save_data.error=匯入失敗:資料儲存異常,請檢查拆單資料
webcad.order.import.org.sealedge.get.error=匯入失敗:取得組織封邊對應設定異常,請檢查服務
webcad.order.import.org.sealedge.analyze.error=匯入失敗:組織封邊對應設定解析異常,請檢查設定
webcad.order.import.plate_num.check.error=匯入失敗:生產單{}下板件數量已達 {} 片,無法繼續匯入
webcad.order.import.plate_num.threshold.reach=部分匯入成功,生產單{}下板件數量已達 {} 片,本次拆單超出部分不納入生產
webcad.order.import.plate_num.check.error=匯入失敗:單{}下板件數量已達 {} 片,無法繼續匯入
webcad.order.import.plate_num.threshold.reach=部分匯入成功,單{}下板件數量已達 {} 片,本次拆單超出部分不納入
order.import.plate.goods.no_match=匯入失敗,板材庫中無板材匹配,商品編碼:{},商品名稱:{},材質:{},顏色:{},厚度:{},品牌:{}
webcad.order.import.peek.not_exist=匯入失敗:資料來源不存在,請檢查訊息可靠性
webcad.order.import.order.update.concurrent=匯入失敗:生產單號{}板件數量已發生變更,請重新匯入
webcad.order.import.order.update.concurrent=匯入失敗:單號{}板件數量已發生變更,請重新匯入
webcad.order.import.goods.update.concurrent=匯入失敗:材質{}板件數量已發生變更,請重新匯入
webcad.order.import.cad.view.file.id.empty.error=匯入失敗:請檢查CAD圖紙數據是否上傳成功
+1 -1
View File
@@ -22,7 +22,7 @@
</properties>
<description>
plan 模块下,我们放生产单计划业务
plan 模块下,我们放单计划业务
</description>
</project>