diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/vo/PriceSheetVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/vo/PriceSheetVO.java index 1a5aba6e9..b95e0232f 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/vo/PriceSheetVO.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/vo/PriceSheetVO.java @@ -52,10 +52,10 @@ public class PriceSheetVO { private String stairflag; /** - * 阶梯价标记key + * 阶梯价标记value */ - @Schema(description = "阶梯价标记key") - private String stairflagkey; + @Schema(description = "阶梯价标记value") + private String stairflagvalue; /** * 阶梯上限 diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkPlan.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkPlan.java index eabe6f800..c059e20a3 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkPlan.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkPlan.java @@ -120,6 +120,7 @@ public class WorkPlan extends BaseEntity { * 加工班组 */ @Schema(description = "加工班组") + @TableField(updateStrategy = FieldStrategy.ALWAYS) private Long makeTeam; /** * 是否外协 @@ -207,6 +208,7 @@ public class WorkPlan extends BaseEntity { * */ @Schema(description = "附属班组") + @TableField(updateStrategy = FieldStrategy.ALWAYS) private Long subsidiaryTeam; /** * 检验颜色标识 diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/AuditFile.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/AuditFile.java index 5d5d0b7a8..40db021fe 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/AuditFile.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/AuditFile.java @@ -116,4 +116,10 @@ public class AuditFile extends BaseEntity { @Schema(description = "产品应用领域") @JsonSerialize(using = Integer0ToEmptyStringSerializer.class) private Integer prodApplyArea; + + /** + * 工艺能力ID + */ + @Schema(description = "工艺能力ID") + private Long caId; } diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/LiquidTankTask.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/LiquidTankTask.java index 82ea0db6f..e19e2dbfc 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/LiquidTankTask.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/LiquidTankTask.java @@ -3,6 +3,8 @@ */ package org.springblade.desk.quality.pojo.entity; +import com.baomidou.mybatisplus.annotation.FieldStrategy; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; @@ -410,11 +412,13 @@ public class LiquidTankTask extends BaseEntity { * 实测温度 */ @Schema(description = "实测温度") + @TableField(updateStrategy = FieldStrategy.ALWAYS) private Double temperatureActual; /** * 实测PH值 */ @Schema(description = "实测PH值") + @TableField(updateStrategy = FieldStrategy.ALWAYS) private Double phActual; /** * 复测电导率测量值 @@ -425,11 +429,13 @@ public class LiquidTankTask extends BaseEntity { * 首次电导率测量值 */ @Schema(description = "首次电导率测量值") + @TableField(updateStrategy = FieldStrategy.ALWAYS) private Double conductivityFirstTestValue; /** * 首次测量值 */ @Schema(description = "首次测量值") + @TableField(updateStrategy = FieldStrategy.ALWAYS) private Double firstTestValue; /** * 复检测量值 @@ -440,6 +446,7 @@ public class LiquidTankTask extends BaseEntity { * 首次化验时间 */ @Schema(description = "首次化验时间") + @TableField(updateStrategy = FieldStrategy.ALWAYS) private LocalDateTime firstTestDate; /** * 复检化验时间 @@ -475,11 +482,13 @@ public class LiquidTankTask extends BaseEntity { * 实际加药量 */ @Schema(description = "实际加药量") + @TableField(updateStrategy = FieldStrategy.ALWAYS) private Double actualAddValue; /** * 加药后理论值 */ @Schema(description = "加药后理论值") + @TableField(updateStrategy = FieldStrategy.ALWAYS) private Double afterAddTheoryValue; /** * 结束原因 diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/AuditFileVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/AuditFileVO.java index 69b442872..2203825d0 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/AuditFileVO.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/vo/AuditFileVO.java @@ -25,4 +25,7 @@ public class AuditFileVO extends AuditFile { @Schema(description = "base") private BaseEntityVO base; + + @Schema(description = "工艺能力") + private String caName; } diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/util/PriceMatcher.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/util/PriceMatcher.java index 82f3f4be5..aaa6c1348 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/util/PriceMatcher.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/util/PriceMatcher.java @@ -1,5 +1,7 @@ package org.springblade.desk.util; +import com.alibaba.excel.util.StringUtils; + import java.math.BigDecimal; import java.util.ArrayList; import java.util.HashSet; @@ -45,6 +47,9 @@ public class PriceMatcher { * 判断备注是否包含目标价格 */ private static boolean containsPrice(String remark, BigDecimal targetPrice) { + if(StringUtils.isEmpty(remark)){ + return false; + } // 正则表达式匹配价格范围或单价 // 匹配如:350.01-360、467.5、100.5-200.8 String regex = "(\\d+(?:\\.\\d+)?)(?:-(\\d+(?:\\.\\d+)?))?"; diff --git a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataCheckerSealClient.java b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataCheckerSealClient.java new file mode 100644 index 000000000..6d5427ec6 --- /dev/null +++ b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataCheckerSealClient.java @@ -0,0 +1,21 @@ +package org.springblade.erpdata.feign; + +import org.springblade.common.constant.LauncherConstant; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; + +@FeignClient( + value = LauncherConstant.APPLICATION_ERP_DATA_NAME, + fallback = IErpDataCheckerSealClientFallback.class +) +public interface IErpDataCheckerSealClient { + + String API_PREFIX = "/feign/erpdata/checkerseal"; + + String GET_CHECK_MAN_BY_NEW_ERP_MES = API_PREFIX + "/getCheckManByNewErpMes"; + + @GetMapping(GET_CHECK_MAN_BY_NEW_ERP_MES) + String getCheckManByNewErpMes(@RequestParam("userName") String userName); + +} diff --git a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataCheckerSealClientFallback.java b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataCheckerSealClientFallback.java new file mode 100644 index 000000000..ae5f02f65 --- /dev/null +++ b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataCheckerSealClientFallback.java @@ -0,0 +1,13 @@ +package org.springblade.erpdata.feign; + +import org.springframework.stereotype.Component; + +@Component +public class IErpDataCheckerSealClientFallback implements IErpDataCheckerSealClient{ + + @Override + public String getCheckManByNewErpMes(String userName) { + return null; + } + +} diff --git a/blade-service-api/blade-scheduling-api/src/main/java/org/springblade/scheduling/pojo/enums/WorkOrderEnum.java b/blade-service-api/blade-scheduling-api/src/main/java/org/springblade/scheduling/pojo/enums/WorkOrderEnum.java index 022a2438d..af773325b 100644 --- a/blade-service-api/blade-scheduling-api/src/main/java/org/springblade/scheduling/pojo/enums/WorkOrderEnum.java +++ b/blade-service-api/blade-scheduling-api/src/main/java/org/springblade/scheduling/pojo/enums/WorkOrderEnum.java @@ -35,6 +35,7 @@ public enum WorkOrderEnum { STATUS_PART_TYPE_1("壳体最大外径", 1), STATUS_PART_TYPE_2("玻璃饼直径", 2), STATUS_PART_TYPE_3("芯数", 3), + STATUS_PART_TYPE_4("涂色标", 4), ; final String name; final int code; diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/CraftAbilityController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/CraftAbilityController.java index a25fd4cb2..b4190acf3 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/CraftAbilityController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/CraftAbilityController.java @@ -146,9 +146,9 @@ public class CraftAbilityController extends BladeController { qw.last("ORDER BY UPDATE_TIME DESC "); IPage pages = craftAbilityService.page(Condition.getPage(query), qw); IPage pagesVO = CraftAbilityWrapper.build().pageVO(pages); - pagesVO.getRecords() - .stream() - .collect(Collectors.toList()); + //pagesVO.getRecords() + // .stream() + // .collect(Collectors.toList()); return R.data(pagesVO); // IPage pages = craftAbilityService.page(Condition.getPage(query), Condition.getQueryWrapper(craftAbility, CraftAbilityEntity.class)); diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/cost/controller/SubjectFeeDetailController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/cost/controller/SubjectFeeDetailController.java index a01317652..18d7d6200 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/cost/controller/SubjectFeeDetailController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/cost/controller/SubjectFeeDetailController.java @@ -191,6 +191,10 @@ public class SubjectFeeDetailController extends BladeController { if ("辅助人员材料费用".equals(subjectName)) { iterator.remove(); // 只有迭代器的 remove 才安全 } + // 如果“erp作业中心材料费用”,删除 + if ("erp作业中心材料费用".equals(subjectName)) { + iterator.remove(); // 只有迭代器的 remove 才安全 + } } } return R.data(list); diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/cost/mapper/CostStatisticsMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/cost/mapper/CostStatisticsMapper.xml index c47575138..3853cbb6a 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/cost/mapper/CostStatisticsMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/cost/mapper/CostStatisticsMapper.xml @@ -25,6 +25,7 @@ + @@ -35,6 +36,9 @@ and MONTH = #{param2.month} + + and JC_ID = #{param2.jcId} + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsCraftController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsCraftController.java index a789b5e0d..9f677aec9 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsCraftController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsCraftController.java @@ -151,7 +151,7 @@ public class DsCraftController extends BladeController { */ @GetMapping("/listByPart") @ApiOperationSupport(order = 1) - @Operation(summary = "获取版本号", description = "传入零件ID") + @Operation(summary = "根据零件ID查询工艺", description = "传入零件ID") public R> listByPart(Long partId) { return R.data(dsCraftService.selectDsCraftByPartId(partId)); } @@ -183,4 +183,17 @@ public class DsCraftController extends BladeController { return R.status(dsCraftService.craftBatchCopy(craftVO)); } + /** + * 根据零件号查询工艺 + */ + @GetMapping("/listByPartCode") + @ApiOperationSupport(order = 1) + @Operation(summary = "根据零件号查询工艺", description = "传入零件partCode") + public R> listByPartCode(String partCode) { + return R.data(dsCraftService.selectDsCraftByPartCode(partCode)); + } + + + + } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/PartMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/PartMapper.xml index abcb64253..d5d9f1e68 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/PartMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/PartMapper.xml @@ -213,7 +213,7 @@ diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/impl/OemStatementServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/impl/OemStatementServiceImpl.java index 3630b02d0..4806fd8d2 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/impl/OemStatementServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/impl/OemStatementServiceImpl.java @@ -616,6 +616,9 @@ public class OemStatementServiceImpl extends BaseServiceImpl selectPage(IPage page, YieldOrderCraft entity) { @@ -539,6 +538,7 @@ public class YieldOrderCraftServiceImpl extends BaseServiceImpl 0) { List bsPlanAssignSteerList = assignSteerService.sortDataByFactor(ocList, hostCaId); + CraftAbilityEntity craftAbility = iCraftAbilityService.getById(hostCaId); for (YieldOrderAssignSteer bsPlanAssignSteer : bsPlanAssignSteerList) { oemCustomer = oemService.getById(bsPlanAssignSteer.getOemId()); String oemCode = oemCustomer.getCode(); @@ -556,6 +556,10 @@ public class YieldOrderCraftServiceImpl extends BaseServiceImpl partRelationEntityList = partRelationService.selectDsPartRelationByPartId(partEntity.getId()); + List childPartIdList = partRelationEntityList.stream() + .map(DsPartRelationEntity::getChildPartId) + .filter(Objects::nonNull) + .collect(Collectors.toList()); + + if (CollectionUtils.isEmpty(childPartIdList)) { + yieldOrder.setValidationResult(YieldOrderEnum.VALIDATION_RESULT_LESS_CRAFT.getCode()); + yieldOrder.setValidationTime(DateUtil.now()); + yieldOrder.setValidationMomo(partEntity.getPartCode()+" :未查询到子件信息"); + this.updateById(yieldOrder); + return null; + } + + List dsPartEntityList = dsPartService.listByIds(childPartIdList); + + // 收集所有子件的 + Set sinTerTypeSet = dsPartEntityList.stream() + .map(DsPartEntity::getSinTerType) + .filter(Objects::nonNull) + .collect(Collectors.toSet()); + if(CollectionUtils.isEmpty(sinTerTypeSet)){ + yieldOrder.setValidationResult(YieldOrderEnum.VALIDATION_RESULT_LESS_CRAFT.getCode()); + yieldOrder.setValidationTime(DateUtil.now()); + yieldOrder.setValidationMomo(partEntity.getPartCode()+" :子件类型为空"); + this.updateById(yieldOrder); + return null; + } + + // 校验必须包含的零件类型 + List requiredTypes = Arrays.asList(DsPartConstant.SIN_TER_TYPE_CZ, DsPartConstant.SIN_TER_TYPE_KT, DsPartConstant.SIN_TER_TYPE_BLB, DsPartConstant.SIN_TER_TYPE_SMM); + + List missingTypes = new ArrayList<>(); + for (Integer requiredType : requiredTypes) { + if (!sinTerTypeSet.contains(requiredType)) { + missingTypes.add(requiredType); + } + } + + if (!missingTypes.isEmpty()) { + String missingDesc = missingTypes.stream() + .map(type -> { + if (type.equals(DsPartConstant.SIN_TER_TYPE_CZ)) return "插针"; + if (type.equals(DsPartConstant.SIN_TER_TYPE_KT)) return "壳体"; + if (type.equals(DsPartConstant.SIN_TER_TYPE_BLB)) return "玻璃饼"; + if (type.equals(DsPartConstant.SIN_TER_TYPE_SMM)) return "石墨模"; + return "未知类型(" + type + ")"; + }) + .collect(Collectors.joining("、")); + + yieldOrder.setValidationResult(YieldOrderEnum.VALIDATION_RESULT_LESS_CRAFT.getCode()); + yieldOrder.setValidationTime(DateUtil.now()); + yieldOrder.setValidationMomo("零件:"+partEntity.getPartCode()+" 缺少子件类型: " + missingDesc); + this.updateById(yieldOrder); + return null; + } + + } Integer rank; // 先判断是否是热表订单 不是返回二级工艺 diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/process/pojo/entity/FmProjectApprovalConfigEntity.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/process/pojo/entity/FmProjectApprovalConfigEntity.java index 5adf53ca3..6a4958d9b 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/process/pojo/entity/FmProjectApprovalConfigEntity.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/process/pojo/entity/FmProjectApprovalConfigEntity.java @@ -63,7 +63,7 @@ public class FmProjectApprovalConfigEntity extends BaseEntity { @Schema(description = "状态:0-禁用,1-启用") private Integer status; - private Integer sortOrde; + private Integer sortOrder; // ==================== 节点编码常量 ==================== /** diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/process/pojo/entity/FmProjectMilestoneEntity.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/process/pojo/entity/FmProjectMilestoneEntity.java index a1a88f0bd..1d2f20d83 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/process/pojo/entity/FmProjectMilestoneEntity.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/process/pojo/entity/FmProjectMilestoneEntity.java @@ -83,6 +83,8 @@ public class FmProjectMilestoneEntity extends BaseEntity { */ @Schema(description = "里程碑负责人") private String milestoneMan; + @Schema(description = "里程碑负责人ID ") + private String milestoneManId; /** * 里程碑输出物 */ @@ -122,6 +124,7 @@ public class FmProjectMilestoneEntity extends BaseEntity { private Double score; /** * 执行结果 + * -- 旧 mes 中存储执行类型,改执行类型存储字段executeType,该字段弃用 */ @Schema(description = "执行结果") private Short executeResult=0; @@ -147,6 +150,9 @@ public class FmProjectMilestoneEntity extends BaseEntity { */ @Schema(description = "核查人") private String checkMan; + + @Schema(description = "核查人ID") + private String checkManId; /** * 核查时间 */ @@ -243,21 +249,21 @@ public class FmProjectMilestoneEntity extends BaseEntity { /** * 执行类型 无 */ - public static Short EXECUTE_RESULT_NO = 0; + public static String EXECUTE_RESULT_NO = "0"; /** * 执行类型 延期 */ - public static Short EXECUTE_RESULT_YQ = 1; + public static String EXECUTE_RESULT_YQ = "1"; /** * 执行类型 终止 */ - public static Short EXECUTE_RESULT_ZZ = 2; + public static String EXECUTE_RESULT_ZZ = "2"; /** * 执行类型 完成 */ - public static Short EXECUTE_RESULT_JXSQ = 3; + public static String EXECUTE_RESULT_JXSQ = "3"; - public static Map executeResultMap = new HashMap<>(3); + public static Map executeResultMap = new HashMap<>(3); static { executeResultMap.put(EXECUTE_RESULT_NO, "无"); @@ -267,7 +273,7 @@ public class FmProjectMilestoneEntity extends BaseEntity { } public String getExecuteResultTitle() { - return executeResultMap.get(this.executeResult); + return executeResultMap.get(this.executeType); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/process/service/impl/FmProjectApplicationServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/process/service/impl/FmProjectApplicationServiceImpl.java index d43a073e0..e29089c9e 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/process/service/impl/FmProjectApplicationServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/process/service/impl/FmProjectApplicationServiceImpl.java @@ -253,7 +253,7 @@ public class FmProjectApplicationServiceImpl extends BaseServiceImpl getList() { return list(Wrappers.lambdaQuery(FmProjectApprovalConfigEntity.class) .eq(FmProjectApprovalConfigEntity::getStatus, FmProjectApprovalConfigEntity.STATUS_ENABLED) - .orderByDesc(FmProjectApprovalConfigEntity::getSortOrde)); + .orderByDesc(FmProjectApprovalConfigEntity::getSortOrder)); } } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/process/service/impl/FmProjectMilestoneServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/process/service/impl/FmProjectMilestoneServiceImpl.java index 1e39472fb..d9e8eedd6 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/process/service/impl/FmProjectMilestoneServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/process/service/impl/FmProjectMilestoneServiceImpl.java @@ -63,6 +63,8 @@ import java.util.Date; import java.util.List; import java.util.Objects; +import static org.springblade.desk.process.pojo.entity.FmProjectMilestoneEntity.EXECUTE_RESULT_NO; + /** * 项目里程碑 服务实现类 * @@ -99,19 +101,19 @@ public class FmProjectMilestoneServiceImpl extends BaseServiceImpl userR1 = userClient.userInfoById(entity.getNextApproverId()); + if (!userR1.isSuccess() || BeanUtil.isEmpty(userR1.getData())) { + throw new RuntimeException("当前里程碑的核查人不存在"); + } + fmProjectMilestone.setCheckMan(userR1.getData().getRealName()); + fmProjectMilestone.setCheckManId(entity.getNextApproverId().toString()); // 如果核查通过,需要流转到核准节点 if (FmProjectMilestoneEntity.CHECK_RESULT_OK.equals(fmProjectMilestone.getCheckResult())) { @@ -180,7 +187,7 @@ public class FmProjectMilestoneServiceImpl extends BaseServiceImpl userR = userClient.userInfoById(fmProjectMilestone.getNextApproverId()); if (!userR.isSuccess() || BeanUtil.isEmpty(userR.getData())) { @@ -262,16 +269,20 @@ public class FmProjectMilestoneServiceImpl extends BaseServiceImpl fmProjectMilestoneList = baseMapper @@ -279,7 +290,7 @@ public class FmProjectMilestoneServiceImpl extends BaseServiceImpl Double.parseDouble(paIndex)) { - projectMilestone.setExecuteResult(FmProjectMilestoneEntity.EXECUTE_RESULT_ZZ); + projectMilestone.setExecuteType(FmProjectMilestoneEntity.EXECUTE_RESULT_ZZ); baseMapper.updateById(projectMilestone); } } @@ -325,19 +336,18 @@ public class FmProjectMilestoneServiceImpl extends BaseServiceImpl { MacToolUse getHangNumIsNull(Long wpId); MacToolUse getDataByWpIdAndIndex(Long wpId, String numberIndex); // List getDataByWcIdAndPpsId(Long wcId, Long ppsId,boolean aTrue); - List getDataByWcIdAndPpsId(Long wcId, Long ppsId, boolean aTrue); + List getDataByWcIdAndPpsId(Long wcId, Long ppsId, String line); List getByRfpId(Long rfpId); // MesQcProduceRunEntity getBoxInfoByWpIdMtnCode(Long wpId); @@ -80,7 +80,6 @@ public interface WorkPlanMapper extends BaseMapper { List listByPartCodeNew(String partCode, Short indexNum); List findByPartCodeAndMemoMes(String partCode, String memo); DsPartSub getByPartCodeAndSubCodeMes(String partCode, String subCode); - String getCheckManByNewErpMes(String userName); List listByWpiIdMes(Long wpiId); diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkPlanMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkPlanMapper.xml index fd0881e83..bc5418bee 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkPlanMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkPlanMapper.xml @@ -79,8 +79,8 @@ - select a.PART_CODE, a.BATCH_NO, a.WORK_QTY, a.area, a.sumArea, - a.MTN_CODE, a.prod_ident,a.wo_code,a.material,a.yield_type from ( + select a.PART_CODE as partCode, a.BATCH_NO as batchNo, a.WORK_QTY as workQty, a.area, a.sumArea, + a.MTN_CODE as mtnCode, a.prod_ident as prodIdent,a.wo_code as woCode,a.material,a.yield_type as yieldType from ( select d.PART_CODE, c.BATCH_NO, b.WORK_QTY, b.WORK_QTY*d.YP_AREA as area, sum(b.WORK_QTY*d.YP_AREA) over() as sumArea, a.MTN_CODE, d.PRODUCT_IDENT as prod_ident,c.wo_code,f.material,d.yield_type from MES_MAC_TOOL_USE a @@ -162,10 +162,6 @@ select * from MES_WORK_ORDER a inner join MES_YIELD_ORDER b on a.YO_ID = b.ID where b.PART_CODE= #{partCode} and b.YP_CODE = #{memo} - - diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderRunServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderRunServiceImpl.java index 2ea44e522..a8ec495b7 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderRunServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderRunServiceImpl.java @@ -60,6 +60,7 @@ import java.time.LocalDateTime; import java.time.ZoneId; import java.time.format.DateTimeFormatter; import java.util.*; +import java.util.stream.Collectors; /** * 车间订单运行记录表 服务实现类 @@ -133,6 +134,10 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl() - .eq(WorkPlan::getFrontWpId, wp.getId())); + WorkPlan frontWorkPlan = workPlanMapper.selectById(wp.getFrontWpId()); if (frontWorkPlan != null) { // 还原上序 frontWorkPlan.setStatus(WorkPlan.STATUS_WORK_OK); @@ -278,14 +282,19 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl yieldOrderCrafts = yieldOrderCraftService.listByYoId(yo.getId()); + Map yieldOrderCraftMap = yieldOrderCrafts.stream().collect(Collectors.toMap(YieldOrderCraft::getProcessNo, v -> v)); if (!wpList.isEmpty()) { //判断工序是否存在外协商,如果存在不进行二次分派 WorkPlan workPlan = workPlanMapper.selectById(wprList.get(0).getWpId()); if (workPlan.getOcId() == null || workPlan.getOcId() < 1 ) { //自动分派 - List yieldOrderCrafts = yieldOrderCraftService.listByYoId(yo.getId()); yieldOrderCraftService.automaticDispatch(yieldOrderCrafts, yo, Boolean.FALSE, null); } + for (WorkPlan plan : wpList) { + YieldOrderCraft yieldOrderCraft = yieldOrderCraftMap.get(plan.getOrders()); + plan.setOcId(yieldOrderCraft.getOcId()); + } } int days = 5; wo.setOemOut("0"); @@ -306,28 +315,21 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl() - .eq(WorkPlan::getId, wp.getNextWpId())); + WorkPlan nextWp = workPlanMapper.selectOne(new LambdaQueryWrapper().eq(WorkPlan::getId, wp.getNextWpId())); if (nextWp != null) { - oemId = nextWp.getOcId(); - craftAbilityId = nextWp.getCaId(); + YieldOrderCraft yieldOrderCraft = yieldOrderCraftMap.get(nextWp.getOrders()); + oemId = yieldOrderCraft.getOcId(); + craftAbilityId = yieldOrderCraft.getCaId(); oa = oemCraftAbilityMapper.selectOne(new LambdaQueryWrapper().eq(OemCraftAbilityEntity::getOtherId, oemId) .eq(OemCraftAbilityEntity::getCraftAbilityId, craftAbilityId)); } } else { - oemId = wp.getOcId(); - craftAbilityId = wp.getCaId(); + YieldOrderCraft yieldOrderCraft = yieldOrderCraftMap.get(wp.getOrders()); + oemId = yieldOrderCraft.getOcId(); + craftAbilityId = yieldOrderCraft.getCaId(); oa = oemCraftAbilityMapper.selectOne(new LambdaQueryWrapper().eq(OemCraftAbilityEntity::getOtherId, oemId) .eq(OemCraftAbilityEntity::getCraftAbilityId, craftAbilityId)); } - //更改订单调度员和计划员 - if (oa == null) { - Oem oem = oemMapper.selectById(oemId); - String oemName = oem != null ? oem.getOcName() : "未知厂商"; - String errorMsg = String.format("外协厂商【%s】(ID:%s)的工艺能力(ID:%s)未维护,可在基础数据-外协工艺能力页面维护", oemName, oemId, craftAbilityId); - log.error(errorMsg); - throw new ServiceException(errorMsg); - } workOrderService.maintainOrder(wo, oa.getPlanner(), oa.getDispatcher(), workOrderRun, true); } Date date = DateUtil.plusDays(wo.getSendDownTime(), days); @@ -343,7 +345,7 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl workPlans) { - return workPlans.stream() + WorkPlan firstInternalPlan = workPlans.stream() .filter(plan -> "0".equals(plan.getOem()) && plan.getStatus() == 1) .min(Comparator.comparing(WorkPlan::getOrders)) .orElse(null); + if (firstInternalPlan == null) { + return null; + } + Long frontWpId = firstInternalPlan.getFrontWpId(); + return workPlans.stream() + .filter(plan -> plan.getId().equals(frontWpId)) + .findFirst() + .orElse(null); } private void executeBusinessLogic(YieldOrder yieldOrder, WorkOrder workOrder, WorkOrderRun workOrderRun, @@ -595,6 +609,10 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl selectWorkOrderPage(IPage page, WorkOrderDTO workOrder) { return page.setRecords(baseMapper.selectWorkOrderPage(page, workOrder)); @@ -2824,7 +2828,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl itemDetails = itemDetailMap.get(planItem.getId()); String checkManByNewErp = null; try { - checkManByNewErp = workPlanMapper.getCheckManByNewErpMes(planItem.getCheckUserAccount()); + checkManByNewErp = erpDataCheckerSealClient.getCheckManByNewErpMes(planItem.getCheckUserRealName()); } catch (Exception e) { // DB Link 等异常降级,避免阻塞 PDF 生成 } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/AuditFileController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/AuditFileController.java index f7f340a54..a5e4c647b 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/AuditFileController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/AuditFileController.java @@ -85,8 +85,8 @@ public class AuditFileController extends BladeController { Query query) { // QueryWrapper qw = Condition.getQueryWrapper(map, AuditFile.class); AuditFileSearch search = BeanUtil.toBeanIgnoreError(map, AuditFileSearch.class); - IPage pages = service.listSearch(Condition.getPage(query), search); - IPage pagesVO = AuditFileWrapper.build().pageVO(pages); + IPage pagesVO = service.listSearch(Condition.getPage(query), search); +// IPage pagesVO = AuditFileWrapper.build().pageVO(pages); pagesVO.getRecords() .stream() .peek(service::setVOValue) diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/LiquidTankController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/LiquidTankController.java index 190f958d5..e3b380bf5 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/LiquidTankController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/LiquidTankController.java @@ -282,7 +282,7 @@ public class LiquidTankController extends BladeController { @Operation(summary = "下载Excel模板", description = "") public ResponseEntity downloadExcelTemplate() { return ExcelExtUtil.downloadXlsTemplate( - "Excel/QA/槽液信息.xls", + "Excel/QA/槽液信息模板.xls", "导入模版-槽液信息.xls"); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/excel/LiquidTankExcel.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/excel/LiquidTankExcel.java index 1dc84f568..23fecf075 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/excel/LiquidTankExcel.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/excel/LiquidTankExcel.java @@ -31,7 +31,6 @@ public class LiquidTankExcel implements Serializable { @Serial private static final long serialVersionUID = 1L; - /** * 任务前缀 */ @@ -48,9 +47,6 @@ public class LiquidTankExcel implements Serializable { /** * 槽液编码/槽号 */ - @ColumnWidth(20) - @ExcelProperty("槽液编码/槽号") - private String code; /** * [作业槽]id @@ -128,42 +124,20 @@ public class LiquidTankExcel implements Serializable { @ColumnWidth(20) @ExcelProperty("添加值单位") private String addUnit; - /** - * 添加值[计量单位]id - */ - @ColumnWidth(20) - @ExcelProperty("添加值[计量单位]id") - private BigDecimal addUnitId; /** * 加药量[计算公式]id */ @ColumnWidth(20) @ExcelProperty("加药量计算公式") -// private BigDecimal addDrugFormulaId; private String addDrugFormulaName; /** * 添加后理论值[计算公式]id */ @ColumnWidth(20) @ExcelProperty("添加后理论值计算公式") -// private BigDecimal afterTheoryFormulaId; private String afterTheoryFormulaName; - /** - * 温度范围类型:[1]:无;[2]:室内温度;[3]:环境温度;[4]:温度范围; - */ - @ColumnWidth(20) - @ExcelProperty("温度范围类型:[1]:无;[2]:室内温度;[3]:环境温度;[4]:温度范围;") - private Long temperatureType; - - /** - * PH范围类型:[1]:无;[2]:PH值范围; - */ - @ColumnWidth(20) - @ExcelProperty("PH范围类型:[1]:无;[2]:PH值范围;") - private Long phType; - /** @@ -172,12 +146,7 @@ public class LiquidTankExcel implements Serializable { @ColumnWidth(20) @ExcelProperty("药品名称") private String drugName; - /** - * 药品[物料]id - */ - @ColumnWidth(20) - @ExcelProperty("药品[物料]id") - private BigDecimal drugMaterialId; + /** * 药品[物料]编码 */ @@ -232,6 +201,62 @@ public class LiquidTankExcel implements Serializable { private LocalDate validDate; + /** + * 生成周期类型:生成周期类型:[1]:每周;[2]:每月;[3]:每年;[4]:自定义CRON + */ + @ColumnWidth(20) +// @ExcelProperty("生成周期类型:生成周期类型:[1]:每周;[2]:每月;[3]:每年;[4]:自定义CRON") + @ExcelProperty("生成周期类型:[1]:每周;[2]:每月;[3]:每年;") + private Integer jobType; +// private String jobTypeName; + /** + * 定时WEEK值 + */ + @ColumnWidth(20) + @ExcelProperty("每周") + private String jobTypeWeekValue; + /** + * 定时MONTH值 + */ + @ColumnWidth(20) + @ExcelProperty("每月") + private String jobTypeMonthValue; + /** + * 定时YEAR值 + */ + @ColumnWidth(20) + @ExcelProperty("每年") + private String jobTypeYearValue; + + @ColumnWidth(20) + @ExcelProperty("槽液编码/槽号") + private String code; + /** + * 添加值[计量单位]id + */ + @ColumnWidth(20) + @ExcelProperty("添加值[计量单位]id") + private BigDecimal addUnitId; + /** + * 温度范围类型:[1]:无;[2]:室内温度;[3]:环境温度;[4]:温度范围; + */ + @ColumnWidth(20) + @ExcelProperty("温度范围类型:[1]:无;[2]:室内温度;[3]:环境温度;[4]:温度范围;") + private Long temperatureType; + + /** + * PH范围类型:[1]:无;[2]:PH值范围; + */ + @ColumnWidth(20) + @ExcelProperty("PH范围类型:[1]:无;[2]:PH值范围;") + private Long phType; + /** + * 药品[物料]id + */ + @ColumnWidth(20) + @ExcelProperty("药品[物料]id") + private BigDecimal drugMaterialId; + /** * 工艺含量 */ @@ -339,32 +364,6 @@ public class LiquidTankExcel implements Serializable { @ExcelProperty("环境温度") private BigDecimal temperatureEnv; - /** - * 生成周期类型:生成周期类型:[1]:每周;[2]:每月;[3]:每年;[4]:自定义CRON - */ - @ColumnWidth(20) -// @ExcelProperty("生成周期类型:生成周期类型:[1]:每周;[2]:每月;[3]:每年;[4]:自定义CRON") - @ExcelProperty("生成周期类型:[1]:每周;[2]:每月;[3]:每年;") - private Integer jobType; -// private String jobTypeName; - /** - * 定时WEEK值 - */ - @ColumnWidth(20) - @ExcelProperty("每周") - private String jobTypeWeekValue; - /** - * 定时MONTH值 - */ - @ColumnWidth(20) - @ExcelProperty("每月") - private String jobTypeMonthValue; - /** - * 定时YEAR值 - */ - @ColumnWidth(20) - @ExcelProperty("每年") - private String jobTypeYearValue; /** * 生成任务 json config */ diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/AuditFileMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/AuditFileMapper.java index 0ab9c401d..72905273a 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/AuditFileMapper.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/AuditFileMapper.java @@ -39,5 +39,11 @@ public interface AuditFileMapper extends BaseMapper { */ List exportAuditFile(@Param("ew") Wrapper queryWrapper); - List listSearch(IPage page, @Param("q") AuditFileSearch search); + List listSearch(IPage page, @Param("q") AuditFileSearch search); + + AuditFile getByPpsId(Long ppsId); + + AuditFile getDataByPpsIdAndApplyArea(@Param("ppsId") Long ppsId, @Param("wcId") Long wcId, @Param("prodApplyArea") String prodApplyArea, @Param("prodIdent") String prodIdent, @Param("caId") Long caId); + + AuditFile getDataByPpsIdAndPqName(@Param("ppsId") Long ppsId, @Param("wcId") Long wcId, @Param("prodIdent") String prodIdent, @Param("caId") Long caId); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/AuditFileMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/AuditFileMapper.xml index bb76cc317..989123cb6 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/AuditFileMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/AuditFileMapper.xml @@ -15,6 +15,11 @@ + + + + + - SELECT DISTINCT f.ID, f.CREATE_USER, f.CREATE_TIME, @@ -46,8 +51,11 @@ f.PAPERS, f.SORT, f.REMARK, - f.PROD_APPLY_AREA + f.PROD_APPLY_AREA, + f.CA_ID, + ca.CA_NAME FROM QA_AUDIT_FILE f + LEFT JOIN BS_CRAFT_ABILITY ca ON f.ca_id = ca.id LEFT JOIN BLADE_USER u ON (f.CREATE_USER = u.ID OR f.UPDATE_USER = u.ID) WHERE ( @@ -66,4 +74,34 @@ AND u.REAL_NAME LIKE '%' || #{q.keepUserRealName} || '%' + + + + + + + + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/InspectionTemplateMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/InspectionTemplateMapper.xml index 694212ce0..1c8c1c723 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/InspectionTemplateMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/InspectionTemplateMapper.xml @@ -57,6 +57,7 @@ AND t.UPDATE_TIME <= #{q.updateTimeEnd} + order by t.UPDATE_TIME desc + select a.value1,a.value2 from dba_mgr.v_rb_qms_checker_seal a where a.checker_name= #{userName} + + + \ No newline at end of file diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpDataCheckerSealService.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpDataCheckerSealService.java new file mode 100644 index 000000000..f9254101f --- /dev/null +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpDataCheckerSealService.java @@ -0,0 +1,7 @@ +package org.springblade.erpdata.service; + +public interface IErpDataCheckerSealService { + + String getCheckManByNewErpMes(String userName); + +} diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpDataCheckerSealServiceImpl.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpDataCheckerSealServiceImpl.java new file mode 100644 index 000000000..c8ad2166d --- /dev/null +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpDataCheckerSealServiceImpl.java @@ -0,0 +1,21 @@ +package org.springblade.erpdata.service.impl; + +import jakarta.annotation.Resource; +import lombok.AllArgsConstructor; +import org.springblade.erpdata.mapper.ErpDataCheckerSealMapper; +import org.springblade.erpdata.service.IErpDataCheckerSealService; +import org.springframework.stereotype.Service; + +@Service +@AllArgsConstructor +public class ErpDataCheckerSealServiceImpl implements IErpDataCheckerSealService { + + + @Resource + private final ErpDataCheckerSealMapper erpDataCheckerSealMapper; + + @Override + public String getCheckManByNewErpMes(String userName) { + return erpDataCheckerSealMapper.getCheckManByNewErpMes(userName); + } +} diff --git a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/EquipAbilityMapper.xml b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/EquipAbilityMapper.xml index 02bd85bb1..c83380893 100644 --- a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/EquipAbilityMapper.xml +++ b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/EquipAbilityMapper.xml @@ -35,7 +35,7 @@ and work_center_name LIKE CONCAT('%', CONCAT(#{param2.workCenterName}, '%')) - and equip_code = #{param2.equipCode} + and equip_code LIKE CONCAT('%', CONCAT(#{param2.equipCode}, '%')) and equip_name LIKE CONCAT('%', CONCAT(#{param2.equipName}, '%')) diff --git a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/SameTroughMapper.xml b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/SameTroughMapper.xml index c470e1a61..11968332f 100644 --- a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/SameTroughMapper.xml +++ b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/SameTroughMapper.xml @@ -33,7 +33,19 @@ diff --git a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/SintTempCurveMapper.xml b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/SintTempCurveMapper.xml index 24f096177..051daec3c 100644 --- a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/SintTempCurveMapper.xml +++ b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/SintTempCurveMapper.xml @@ -24,7 +24,13 @@ diff --git a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java index c7dc20c00..a4637b9bd 100644 --- a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java +++ b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java @@ -61,6 +61,7 @@ import org.springblade.scheduling.scheduling.service.*; import org.springblade.scheduling.scheduling.vo.PersonAbilityVO; import org.springblade.scheduling.scheduling.vo.SameTroughVO; import org.springblade.scheduling.scheduling.vo.WorkPlanVO; +import org.springblade.system.cache.DictCache; import org.springblade.wms.feign.StGlassCakeOutClient; import org.springblade.wms.pojo.dto.StGlassCakeOutDTO; import org.springframework.beans.BeanUtils; @@ -575,6 +576,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl sameMap = new HashMap<>(); @@ -810,8 +812,9 @@ public class WorkOrderServiceImpl extends BaseServiceImpl hourMap = new HashMap<>(); @@ -848,9 +851,18 @@ public class WorkOrderServiceImpl extends BaseServiceImpllambdaQuery().eq(WorkOrderEntity::getYoId,order.getId())); workOrder.setPlanEndDate(workPlanList.get(workPlanList.size() - 1).getPlanEndTime() == null ? null : workPlanList.get(workPlanList.size() - 1).getPlanEndTime().truncatedTo(ChronoUnit.DAYS).toString().substring(0, 10)); @@ -1027,6 +1038,8 @@ public class WorkOrderServiceImpl extends BaseServiceImpl