diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/RetrospectDefendDTO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/RetrospectDefendDTO.java index 4a33612f..155feca8 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/RetrospectDefendDTO.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/RetrospectDefendDTO.java @@ -12,6 +12,8 @@ public class RetrospectDefendDTO { private Long rfpId; + private Long mtuId; + private List wpIdList; private Boolean line; diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/MesQcProduceRunEntity.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/MesQcProduceRunEntity.java index ba4c90d5..632f3031 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/MesQcProduceRunEntity.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/MesQcProduceRunEntity.java @@ -25,15 +25,12 @@ */ package org.springblade.desk.produce.pojo.entity; -import com.baomidou.mybatisplus.annotation.TableField; import lombok.Data; import io.swagger.v3.oas.annotations.media.Schema; import com.baomidou.mybatisplus.annotation.TableName; import java.util.Date; -import java.math.BigDecimal; import lombok.EqualsAndHashCode; import org.springblade.core.mp.base.BaseEntity; -import org.springblade.core.tenant.mp.TenantEntity; import java.io.Serial; /** @@ -59,7 +56,7 @@ public class MesQcProduceRunEntity extends BaseEntity { /** * 挂齿号 */ - @Schema(description = "挂齿号") + @Schema(description = "挂次号") private String hangNum; /** * 同槽号 diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/EleFilesEditVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/EleFilesEditVO.java new file mode 100644 index 00000000..a2f28ab7 --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/EleFilesEditVO.java @@ -0,0 +1,37 @@ +package org.springblade.desk.produce.pojo.vo; + +import lombok.Data; +import org.springblade.desk.produce.pojo.entity.MesQcProduceRunEntity; +import org.springblade.desk.produce.pojo.entity.MesRbFilePreserveSlotEntity; + +import java.util.List; + +/** + * 后续手动维护生产追溯(电子档案维护) 视图实体类 + * + * @author litao + */ +@Data +public class EleFilesEditVO { + + private String type; + + private Long wpId; + + private Long mtuId; + + private Long ecId; + + private Long rfpId; + + private Short lineType; + + private Boolean line; + + private String mtnCode; + + private List mesQcProduceRunEntityList; + + private List produceMonitorFileSlotVOList; + +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/GetByRfpIdVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/GetByRfpIdVO.java new file mode 100644 index 00000000..1b89d15c --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/GetByRfpIdVO.java @@ -0,0 +1,20 @@ +package org.springblade.desk.produce.pojo.vo; + +import lombok.Data; +import org.springblade.desk.produce.pojo.entity.MesRbFilePreserveSlotEntity; + +import java.util.List; + +/** + * 获取热表电子档案维护-槽子明细及对应的明细 视图实体类 + * + * @author litao + */ +@Data +public class GetByRfpIdVO { + + private Integer insertIndex; + + private List preserveSlotList; + +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/GoodsVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/GoodsVO.java new file mode 100644 index 00000000..475aa8a6 --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/GoodsVO.java @@ -0,0 +1,17 @@ +package org.springblade.desk.produce.pojo.vo; + +import lombok.Data; + +/** + * 根据物料号查询物料信息 视图实体类 + * + * @author litao + */ +@Data +public class GoodsVO { + + private String checkoutCode; + private String releasenoTime; + private String goodsName; + +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/RemarryRedeemRetrospectDefendVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/RemarryRedeemRetrospectDefendVO.java new file mode 100644 index 00000000..255c6709 --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/RemarryRedeemRetrospectDefendVO.java @@ -0,0 +1,20 @@ +package org.springblade.desk.produce.pojo.vo; + +import lombok.Data; +import org.springblade.desk.produce.pojo.entity.MesRbFilePreserveSlotEntity; + +import java.util.List; + +/** + * 根据流程卡查询当前工序对应的可维护生产追溯信息 视图实体类 + * + * @author litao + */ +@Data +public class RemarryRedeemRetrospectDefendVO { + + private Long mtuId; + + private List dsRbFilePreserveSlotList; + +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/WorkPlanProVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/WorkPlanProVO.java new file mode 100644 index 00000000..f71c2de4 --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/WorkPlanProVO.java @@ -0,0 +1,25 @@ +package org.springblade.desk.produce.pojo.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.util.Date; + +/** + * 过程质量维护-查询订单的工序 视图实体类 + * + * @author litao + */ +@Data +public class WorkPlanProVO { + + @Schema(description = "工序ID") + private Long wpId; + + @Schema(description = "工序号") + private String orders; + + @Schema(description = "工序名称") + private String ppsName; + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/PrMakeRecController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/PrMakeRecController.java index 95e8288c..e0b3c2ff 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/PrMakeRecController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/PrMakeRecController.java @@ -74,10 +74,4 @@ public class PrMakeRecController extends BladeController { return R.data(makeRecService.afterPlaReceive(cardNo)); } - @Operation(summary = "手动维护生产追溯") - @PostMapping("/saveRetrospectDefend") - public R saveRetrospectDefend(@RequestBody RetrospectDefendDTO retrospectDefendDTO) { - makeRecService.saveRetrospectDefend(retrospectDefendDTO); - return R.success(); - } } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/ProcessQualityMaintenanceController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/ProcessQualityMaintenanceController.java new file mode 100644 index 00000000..04b9950d --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/ProcessQualityMaintenanceController.java @@ -0,0 +1,141 @@ +package org.springblade.desk.produce.controller; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.tool.api.R; +import org.springblade.desk.produce.pojo.dto.RetrospectDefendDTO; +import org.springblade.desk.produce.pojo.entity.DsRbFilePreserve; +import org.springblade.desk.produce.pojo.entity.MesEquipmentCardEntity; +import org.springblade.desk.produce.pojo.entity.MesQcProduceRunEntity; +import org.springblade.desk.produce.pojo.vo.*; +import org.springblade.desk.produce.service.IMakeRecService; +import org.springblade.desk.produce.service.IProcessQualityMaintenanceService; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 过程质量维护 控制器 + * + * @author BladeX + * @since 2025-12-03 + */ +@RestController +@AllArgsConstructor +@RequestMapping("/processMaintenance") +@Tag(name = "过程质量维护", description = "过程质量维护接口") +public class ProcessQualityMaintenanceController extends BladeController { + + private final IProcessQualityMaintenanceService proQuaMainService; + + private final IMakeRecService makeRecService; + + @GetMapping("/getWorkOrderProcess") + @ApiOperationSupport(order = 1) + @Operation(summary = "查询订单的工序") + public R> getWorkOrderProcess(String cardNo) { + return R.data(proQuaMainService.getWorkOrderProcess(cardNo)); + } + + @GetMapping("/getProcessBingingRec") + @ApiOperationSupport(order = 2) + @Operation(summary = "查询订单工序的绑定记录") + public R> getProcessBingingRec(Long wpId) { + return R.data(proQuaMainService.getProcessBingingRec(wpId)); + } + + @GetMapping("/getDataByMtnCodeRb") + @ApiOperationSupport(order = 3) + @Operation(summary = "根据同槽编号查询记录数据-热表") + public R> getDataByMtnCodeRb(Long wpId, String mtnCode) { + return R.data(proQuaMainService.getDataByMtnCode(wpId, mtnCode)); + } + + @GetMapping("/getDataByMtnCodeSj") + @ApiOperationSupport(order = 4) + @Operation(summary = "根据同槽编号查询记录数据-烧结") + public R> getDataByMtnCodeSj(Long wpId, String mtnCode) { + return R.data(proQuaMainService.getDataByMtnCodeSj(wpId, mtnCode)); + } + + @GetMapping("/getRbFilePreserveByWpId") + @ApiOperationSupport(order = 5) + @Operation(summary = "根据工序查询模板") + public R> getRbFilePreserveByWpId(Long wpId) { + return R.data(proQuaMainService.getRbFilePreserveByWpId(wpId)); + } + + @GetMapping("/getByRfpId") + @ApiOperationSupport(order = 6) + @Operation(summary = "获取热表电子档案维护-槽子明细及对应的明细") + public R getByRfpId(Long rfpId) { + return R.data(proQuaMainService.getByRfpId(rfpId)); + } + + @GetMapping("/queryEquipmentCard") + @ApiOperationSupport(order = 7) + @Operation(summary = "获取设备卡片") + public R> queryEquipmentCard(String deviceCode, Query query) { + return R.data(proQuaMainService.queryEquipmentCard(Condition.getPage(query), deviceCode)); + } + + @PostMapping("/eleFilesEdit") + @ApiOperationSupport(order = 8) + @Operation(summary = "后续手动维护生产追溯(电子档案维护)") + public R eleFilesEdit(@RequestBody EleFilesEditVO eleFilesEditVO) { + if ("sintering".equals(eleFilesEditVO.getType())) { + return R.status(proQuaMainService.eleFilesEditSj(eleFilesEditVO)); + } else { + return R.status(proQuaMainService.eleFilesEditRb(eleFilesEditVO)); + } + } + + @PostMapping("/deletedProduceRun") + @ApiOperationSupport(order = 9) + @Operation(summary = "根据同槽号删除信息") + public R deletedProduceRun(@RequestBody EleFilesEditVO eleFilesEditVO) { + return R.status(proQuaMainService.deletedProduceRun(eleFilesEditVO.getMtnCode())); + } + + @PostMapping("/saveRetrospectDefend") + @ApiOperationSupport(order = 10) + @Operation(summary = "首次维护-保存") + public R saveRetrospectDefend(@RequestBody RetrospectDefendDTO retrospectDefendDTO) { + return R.status(makeRecService.saveRetrospectDefend(retrospectDefendDTO)); + } + + @GetMapping(value = "/loadPrMacToolUseByMtnCode") + @ApiOperationSupport(order = 11) + @Operation(summary = "加载当前工序检验数据", description = "传入mtnCode") + public R> loadPrMacToolUseByMtnCode(String mtnCode) { + return R.data(proQuaMainService.loadPrMacToolUseByMtnCode(mtnCode)); + } + + @GetMapping(value = "/remarryRedeemRetrospectDefend") + @ApiOperationSupport(order = 12) + @Operation(summary = "根据流程卡查询当前工序对应的可维护生产追溯信息") + public R remarryRedeemRetrospectDefend(String cardNo, String line) { + return R.data(proQuaMainService.remarryRedeemRetrospectDefend(cardNo, line)); + } + + @PostMapping("/remarryRedeemSaveRetrospectDefend") + @ApiOperationSupport(order = 13) + @Operation(summary = "后续手动维护生产追溯(生产追溯维护)") + public R remarryRedeemSaveRetrospectDefend(@RequestBody EleFilesEditVO eleFilesEditVO) { + return R.status(proQuaMainService.remarryRedeemSaveRetrospectDefend(eleFilesEditVO)); + } + + @GetMapping(value = "/getMaterialMess") + @ApiOperationSupport(order = 14) + @Operation(summary = "根据物料号查询物料信息") + public R getMaterialMess(String goodsCode) { + return R.data(proQuaMainService.getMaterialMess(goodsCode)); + } + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/MacToolUseMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/MacToolUseMapper.java index 5edcc901..8eddd850 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/MacToolUseMapper.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/MacToolUseMapper.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.desk.produce.pojo.dto.MesMacToolUseDTO; import org.springblade.desk.produce.pojo.entity.MacToolUse; import org.springblade.desk.produce.pojo.entity.MesQcProduceRunEntity; +import org.springblade.desk.produce.pojo.vo.GoodsVO; import org.springblade.desk.produce.pojo.vo.MesMacToolUseVO; import org.springblade.desk.produce.pojo.vo.ProduceMonitorSlotListVO; @@ -28,4 +29,8 @@ public interface MacToolUseMapper extends BaseMapper { MacToolUse queryByParams(Long wpId, Integer rsBool, Integer fsBool, Integer ecBool); String findMaxCodeByParams(Long rsId, Long fsId); + + List getProcessBingingRec(Long wpId); + + GoodsVO getMaterialMess(String goodsCode); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/MacToolUseMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/MacToolUseMapper.xml index 53441125..679fc134 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/MacToolUseMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/MacToolUseMapper.xml @@ -167,5 +167,29 @@ order by a.BIND_TIME DESC + + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkPlanMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkPlanMapper.java index 1ae0708c..19b6a665 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkPlanMapper.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkPlanMapper.java @@ -6,16 +6,13 @@ import org.springblade.desk.dashboard.pojo.entity.DsPartRelationEntity; import org.springblade.desk.dashboard.pojo.entity.DsPartSub; import org.springblade.desk.produce.pojo.dto.MesRbFilePreserveDetailDTO; import org.springblade.desk.produce.pojo.entity.*; -import org.springblade.desk.produce.pojo.vo.ProduceMonitorSlotListVO; -import org.springblade.desk.produce.pojo.vo.ProduceMonitorWorkPlanVO; -import org.springblade.desk.produce.pojo.vo.WorkPlanLoadVO; +import org.springblade.desk.produce.pojo.vo.*; import org.springblade.desk.quality.pojo.entity.ProReTemplate; import org.springblade.desk.quality.pojo.entity.ReviewSheet; import org.springblade.desk.quality.pojo.entity.WorkPlanItem; import org.springblade.desk.quality.pojo.entity.WorkPlanItemDetail; import org.springblade.scheduling.pojo.entity.WorkPlanEntity; import com.baomidou.mybatisplus.core.metadata.IPage; -import org.springblade.desk.produce.pojo.vo.WorkPlanVO; import java.util.List; @@ -88,4 +85,6 @@ public interface WorkPlanMapper extends BaseMapper { // List getByOtherWpIdMes(Long woId); List getByRfpsIdMesNew(Long id); + + List getWorkOrderProcess(String cardNo); } 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 fded8ab3..fe7f0822 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 @@ -423,5 +423,17 @@ and c.CARD_NO = #{cardNo} order by c.id desc + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IDsRbFilePreserveService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IDsRbFilePreserveService.java index 8c7f4e15..84718aab 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IDsRbFilePreserveService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IDsRbFilePreserveService.java @@ -19,4 +19,5 @@ import java.util.List; public interface IDsRbFilePreserveService extends BaseService { + List getDataByWcIdAndPpsId(Long wcId, Long ppsId, boolean b); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IMacToolUseService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IMacToolUseService.java index fec81163..12c80bbc 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IMacToolUseService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IMacToolUseService.java @@ -7,6 +7,7 @@ import org.springblade.desk.produce.pojo.entity.MacToolUse; import org.springblade.desk.produce.pojo.entity.MesQcProduceRunEntity; import org.springblade.desk.produce.pojo.entity.WorkOrder; import org.springblade.desk.produce.pojo.entity.WorkPlan; +import org.springblade.desk.produce.pojo.vo.GoodsVO; import org.springblade.desk.produce.pojo.vo.MacToolUseVO; import org.springblade.desk.produce.pojo.vo.MesMacToolUseVO; import org.springblade.desk.produce.pojo.vo.ProduceMonitorSlotListVO; @@ -68,4 +69,10 @@ public interface IMacToolUseService extends BaseService { List listByParams(Long rsId, Long fsId, Long ecId, String hangNum); List queryByWpId(WorkOrder prWorkOrder); + + List getProcessBingingRec(Long wpId); + + MacToolUse queryByCode(String mtnCode); + + GoodsVO getMaterialMess(String goodsCode); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IMakeRecService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IMakeRecService.java index ca66d16d..e9cadfba 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IMakeRecService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IMakeRecService.java @@ -34,5 +34,5 @@ public interface IMakeRecService extends BaseService { * 手动维护生产追溯 * @param retrospectDefendDTO */ - void saveRetrospectDefend(RetrospectDefendDTO retrospectDefendDTO); + boolean saveRetrospectDefend(RetrospectDefendDTO retrospectDefendDTO); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IProcessQualityMaintenanceService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IProcessQualityMaintenanceService.java new file mode 100644 index 00000000..9dab7907 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IProcessQualityMaintenanceService.java @@ -0,0 +1,47 @@ +package org.springblade.desk.produce.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.desk.produce.pojo.dto.RetrospectDefendDTO; +import org.springblade.desk.produce.pojo.entity.DsRbFilePreserve; +import org.springblade.desk.produce.pojo.entity.MesEquipmentCardEntity; +import org.springblade.desk.produce.pojo.entity.MesQcProduceRunEntity; +import org.springblade.desk.produce.pojo.vo.*; + +import java.util.List; + +/** + * 过程质量维护 服务类 + * + * @author BladeX + * @since 2025-11-28 + */ +public interface IProcessQualityMaintenanceService { + + List getWorkOrderProcess(String cardNo); + + List getProcessBingingRec(Long wpId); + + List getDataByMtnCode(Long wpId, String mtnCode); + + List getRbFilePreserveByWpId(Long wpId); + + GetByRfpIdVO getByRfpId(Long rfpId); + + IPage queryEquipmentCard(IPage page, String deviceCode); + + List getDataByMtnCodeSj(Long wpId, String mtnCode); + + boolean eleFilesEditSj(EleFilesEditVO eleFilesEditVO); + + boolean eleFilesEditRb(EleFilesEditVO eleFilesEditVO); + + boolean deletedProduceRun(String mtnCode); + + List loadPrMacToolUseByMtnCode(String mtnCode); + + RemarryRedeemRetrospectDefendVO remarryRedeemRetrospectDefend(String cardNo, String line); + + boolean remarryRedeemSaveRetrospectDefend(EleFilesEditVO eleFilesEditVO); + + GoodsVO getMaterialMess(String goodsCode); +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkOrderService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkOrderService.java index d09f892c..c35e3a11 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkOrderService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkOrderService.java @@ -4,10 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.core.mp.base.BaseService; import org.springblade.core.tool.api.R; import org.springblade.desk.produce.pojo.dto.*; -import org.springblade.desk.produce.pojo.entity.WorkOrder; -import org.springblade.desk.produce.pojo.entity.WorkOrderRun; -import org.springblade.desk.produce.pojo.entity.WorkPlan; -import org.springblade.desk.produce.pojo.entity.WorkPlanRun; +import org.springblade.desk.produce.pojo.entity.*; import org.springblade.desk.produce.pojo.vo.BatchPrepareVO; import org.springblade.desk.produce.pojo.vo.QueryByReadStatusVO; import org.springblade.desk.produce.pojo.vo.WorkOrderVO; @@ -218,4 +215,16 @@ public interface IWorkOrderService extends BaseService { * @param wo 工单 */ void qualified(WorkPlan wp, WorkOrder wo); + + /** + *

方法名: setRbFilePreserveData

+ *

方法描述: 设置RB文件保存数据

+ * + * @param preserveSlotList 保存Slot列表 + * @param qcProduceRunsList 检验数据列表 + * @param workPlan 工单计划 + * @param dsRbFilePreserveSlotList RB文件保存Slot列表 + * @param prMacToolUse 工单MacTool使用 + */ + void setRbFilePreserveData(List preserveSlotList, List qcProduceRunsList, WorkPlan workPlan, List dsRbFilePreserveSlotList, MacToolUse prMacToolUse); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkPlanService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkPlanService.java index 6f7b4522..f40bc2d2 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkPlanService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkPlanService.java @@ -5,6 +5,7 @@ import org.springblade.core.mp.base.BaseService; import org.springblade.desk.produce.pojo.entity.WorkOrder; import org.springblade.desk.produce.pojo.entity.WorkPlan; import org.springblade.desk.produce.pojo.vo.ProduceMonitorWorkPlanVO; +import org.springblade.desk.produce.pojo.vo.WorkPlanProVO; import org.springblade.scheduling.pojo.entity.WorkPlanEntity; import org.springblade.desk.produce.pojo.vo.WorkPlanVO; @@ -49,4 +50,6 @@ public interface IWorkPlanService extends BaseService { * 工序完成 */ void workPlanEnd(Long wpId, Date putStoreTime, Double makeQty); + + List getWorkOrderProcess(String cardNo); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/DsRbFilePreserveServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/DsRbFilePreserveServiceImpl.java index 8540a59a..cb481778 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/DsRbFilePreserveServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/DsRbFilePreserveServiceImpl.java @@ -37,4 +37,13 @@ import java.util.Random; @RequiredArgsConstructor public class DsRbFilePreserveServiceImpl extends BaseServiceImpl implements IDsRbFilePreserveService { + @Override + public List getDataByWcIdAndPpsId(Long wcId, Long ppsId, boolean b) { + return this.list(Wrappers.lambdaQuery(DsRbFilePreserve.class) + .eq(wcId != null, DsRbFilePreserve::getWcId, wcId) + .eq(DsRbFilePreserve::getPpsId, ppsId) + .eq(DsRbFilePreserve::getLine, b ? "1" : "0") + .eq(DsRbFilePreserve::getRfpStatus, 2) + .orderByDesc(DsRbFilePreserve::getCreateTime)); + } } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/MacToolUseServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/MacToolUseServiceImpl.java index 8887982e..58df74fb 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/MacToolUseServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/MacToolUseServiceImpl.java @@ -20,6 +20,7 @@ import org.springblade.desk.produce.pojo.entity.MacToolUse; import org.springblade.desk.produce.pojo.entity.MesQcProduceRunEntity; import org.springblade.desk.produce.pojo.entity.WorkOrder; import org.springblade.desk.produce.pojo.entity.WorkPlan; +import org.springblade.desk.produce.pojo.vo.GoodsVO; import org.springblade.desk.produce.pojo.vo.MacToolUseVO; import org.springblade.desk.produce.pojo.vo.MesMacToolUseVO; import org.springblade.desk.produce.pojo.vo.ProduceMonitorSlotListVO; @@ -194,6 +195,25 @@ public class MacToolUseServiceImpl extends BaseServiceImpl getProcessBingingRec(Long wpId) { + return baseMapper.getProcessBingingRec(wpId); + } + + @Override + public MacToolUse queryByCode(String mtnCode) { + List macToolUses = this.list(Wrappers.lambdaQuery(MacToolUse.class).eq(MacToolUse::getMtnCode, mtnCode)); + if (CollectionUtils.isEmpty(macToolUses)) { + return null; + } + return macToolUses.get(0); + } + + @Override + public GoodsVO getMaterialMess(String goodsCode) { + return baseMapper.getMaterialMess(goodsCode); + } + public static final int time2Integer(Date d) { Calendar cal = Calendar.getInstance(); cal.setTime(d); diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/MakeRecServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/MakeRecServiceImpl.java index 56d5c9e1..fad0cc85 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/MakeRecServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/MakeRecServiceImpl.java @@ -371,7 +371,8 @@ public class MakeRecServiceImpl extends BaseServiceImpl } @Override - public void saveRetrospectDefend(RetrospectDefendDTO retrospectDefendDTO) { + @Transactional(rollbackFor = Exception.class) + public boolean saveRetrospectDefend(RetrospectDefendDTO retrospectDefendDTO) { WorkPlan prWorkPlan = null; MesEquipmentCardEntity equipmentCard = mesEquipmentCardService.getById(retrospectDefendDTO.getEcId()); MacToolUse prMacToolUse; @@ -386,27 +387,22 @@ public class MakeRecServiceImpl extends BaseServiceImpl throw new ServiceException("流程卡为 " + prWorkPlan.getCaId() + " 的订单对应的工序不在加工中暂时不可再维护!"); } // 查询自动生产追溯是否已经开始 - List mtnCodeList = macToolUseService.listObjs(Wrappers.lambdaQuery() - .eq(MacToolUse::getWpId, wpId).eq(MacToolUse::getMtuIndex, 2).select(MacToolUse::getMtnCode)); - produceRunList = mesQcProduceRunService.list(Wrappers.lambdaQuery() - .in(MesQcProduceRunEntity::getMtnCode, mtnCodeList).ne(MesQcProduceRunEntity::getWorkSlot, "烘箱")); + produceRunList = mesQcProduceRunService.listPrByWpIdIndex(wpId, 2, Boolean.FALSE); // 上线前 没有生产追溯数据 if (retrospectDefendDTO.getLine().equals(Boolean.TRUE)) { - if (produceRunList != null && produceRunList.size() > 0) { + if (produceRunList != null && !produceRunList.isEmpty()) { throw new ServiceException("流程卡为 " + prWorkPlan.getCaId() + " 的订单对应的工序已经在已上线,不可再维护!"); } } else if (retrospectDefendDTO.getLine().equals(Boolean.FALSE)) { // 下线后 有自动生产追溯数据 - if (produceRunList.size() == 0 || produceRunList == null) { + if (produceRunList.isEmpty()) { throw new ServiceException("流程卡为 " + prWorkPlan.getId() + " 的订单对应的工序还未下线,不可再维护!"); } - MacToolUse macToolUse = macToolUseService.getOne(Wrappers.lambdaQuery().eq(MacToolUse::getWpId, wpId) - .eq(MacToolUse::getMtuIndex, 2)); + MacToolUse macToolUse = macToolUseService.getDataByWpIdAndIndex(wpId, String.valueOf(2)); if (macToolUse != null && macToolUse.getRfpId() != null && macToolUse.getFinished() != 1) { macToolUse.setFinished(1); String deviceCode = macToolUse.getEquipmentCard() != null ? macToolUse.getMtnCode() : ""; log.info("修改设备绑定状态:设备编号:{},批次号:{},槽号:{},方法名:saveRetrospectDefend(),{}", deviceCode, macToolUse.getHangNum(), macToolUse.getMtnCode(), macToolUse.getFinished()); - // 2025-07-23 线上迁移修改 macToolUseService.updateById(macToolUse); } @@ -417,13 +413,10 @@ public class MakeRecServiceImpl extends BaseServiceImpl prMacToolUse.setWpId(prWorkPlan.getId()); prMacToolUse.setEquipmentCard(equipmentCard.getId()); prMacToolUse.setFinished(1); - prMacToolUse.setCreateTime(new Date()); prMacToolUse.setCreateMan(AuthUtil.getUserId()); prMacToolUse.setRfpId(retrospectDefendDTO.getRfpId().toString()); prMacToolUse.setMtnCode(code); prMacToolUse.setMtuIndex(String.valueOf(retrospectDefendDTO.getLine() ? 1 : 3)); - macToolUseService.save(prMacToolUse); - String deviceCode = prMacToolUse.getEquipmentCard() != null ? prMacToolUse.getMtnCode() : ""; - log.info("修改设备绑定状态:设备编号:{},批次号:{},槽号:{},方法名:saveRetrospectDefend(),{}", deviceCode, prMacToolUse.getHangNum(), prMacToolUse.getMtnCode(), prMacToolUse.getFinished()); + return macToolUseService.save(prMacToolUse); } } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/ProcessQualityMaintenanceServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/ProcessQualityMaintenanceServiceImpl.java new file mode 100644 index 00000000..3c00e1a4 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/ProcessQualityMaintenanceServiceImpl.java @@ -0,0 +1,725 @@ +package org.springblade.desk.produce.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.springblade.core.log.exception.ServiceException; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.desk.basic.pojo.entity.CenterTeam; +import org.springblade.desk.basic.service.ICenterTeamService; +import org.springblade.desk.dashboard.pojo.entity.BsProcessSetEntity; +import org.springblade.desk.dashboard.service.IBsProcessSetService; +import org.springblade.desk.produce.pojo.dto.MesRbFilePreserveDetailDTO; +import org.springblade.desk.produce.pojo.dto.WorkPlanDto; +import org.springblade.desk.produce.pojo.entity.*; +import org.springblade.desk.produce.pojo.vo.*; +import org.springblade.desk.produce.service.*; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import java.util.stream.Collectors; + +/** + * 过程质量维护 服务实现类 + * + * @author BladeX + */ +@Slf4j +@Service +@RequiredArgsConstructor +public class ProcessQualityMaintenanceServiceImpl implements IProcessQualityMaintenanceService { + + private final IWorkPlanService workPlanService; + + private final IMacToolUseService macToolUseService; + + private final IWorkOrderService workOrderService; + + private final ICenterTeamService centerTeamService; + + private final IMesQcProduceRunService qcProduceRunService; + + private final IMesRbFilePreserveSlotService dsRbFilePreserveSlotService; + + private final IDsRbFilePreserveService dsRbFilePreserveService; + + private final IBsProcessSetService bsProcessSetService; + + private final IMesRbFilePreserveDetailService dsRbFilePreserveDetailService; + + private final IMesEquipmentCardService mesEquipmentCardService; + + private final IPdaLoadService pdaLoadService; + + private final MakeRecServiceImpl makeRecServiceImpl; + + @Override + public List getWorkOrderProcess(String cardNo) { + return workPlanService.getWorkOrderProcess(cardNo); + } + + @Override + public List getProcessBingingRec(Long wpId) { + return macToolUseService.getProcessBingingRec(wpId); + } + + @Override + public List getDataByMtnCode(Long wpId, String mtnCode) { + // 判断当前工序是否已经接收过 + WorkPlan workPlan = workPlanService.getById(wpId); + if (WorkPlan.STATUS_NO_START.equals(workPlan.getStatus())) { + throw new ServiceException("当前工序还未开始暂不能进行维护!!!"); + } + Long wcId = null; + if (workPlan.getMakeTeam() != null && "1".equals(workPlan.getCruxProcess())) { + CenterTeam centerTeam = centerTeamService.getByTsId(workPlan.getMakeTeam()); + if (centerTeam != null) { + wcId = centerTeam.getWcId(); + } + } + + List dsRbFilePreserveSlotList = new ArrayList<>(); + // 拿出此同槽号下的绑定记录 + List prMacToolUseList = macToolUseService.list(Wrappers.lambdaQuery(MacToolUse.class).eq(MacToolUse::getMtnCode, mtnCode)); + // 拿出第一条数据(只要同槽编号一样,绑的模板一定一样) + MacToolUse prMacToolUse = prMacToolUseList.get(0); + + List qcProduceRunList = qcProduceRunService.list(Wrappers.lambdaQuery(MesQcProduceRunEntity.class) + .eq(MesQcProduceRunEntity::getMtnCode, mtnCode) + .and(q -> q.notLike(MesQcProduceRunEntity::getWorkSlot, "入料区").or().isNull(MesQcProduceRunEntity::getWorkSlot)) + .orderByAsc(MesQcProduceRunEntity::getId)); + // 获取模板数据 + List rbFilePreserveSlotList = new ArrayList<>(); + // 如果不为空一定走的是线下 + if (prMacToolUse.getRfpId() != null) { + rbFilePreserveSlotList = dsRbFilePreserveSlotService.getByRfpId(Long.valueOf(prMacToolUse.getRfpId())); + } else { + // 线上 + List dsRbFilePreserveList = dsRbFilePreserveService.getDataByWcIdAndPpsId(wcId, workPlan.getPpsId(), true); + if (CollectionUtils.isNotEmpty(dsRbFilePreserveList)) { + rbFilePreserveSlotList = dsRbFilePreserveSlotService.getByRfpId(dsRbFilePreserveList.get(0).getId()); + } + } + // 组装数据 + workOrderService.setRbFilePreserveData(rbFilePreserveSlotList, qcProduceRunList, workPlan, dsRbFilePreserveSlotList, prMacToolUse); + return dsRbFilePreserveSlotList; + } + + @Override + public List getRbFilePreserveByWpId(Long wpId) { + WorkPlan workPlan = workPlanService.getById(wpId); + BsProcessSetEntity procedureSet = bsProcessSetService.getById(workPlan.getPpsId()); + if ("喷砂".equals(procedureSet.getName()) || "涂色标".equals(procedureSet.getName()) || "超声波清洗".equals(procedureSet.getName())) { + return dsRbFilePreserveService.getDataByWcIdAndPpsId(null, procedureSet.getId(), Boolean.FALSE); + } else if (workPlan.getMakeTeam() != null) { + CenterTeam centerTeam = centerTeamService.getByTsId(workPlan.getMakeTeam()); + return dsRbFilePreserveService.getDataByWcIdAndPpsId(centerTeam.getWcId(), procedureSet.getId(), Boolean.FALSE); + } + return null; + } + + @Override + public GetByRfpIdVO getByRfpId(Long rfpId) { + GetByRfpIdVO getByRfpIdVO = new GetByRfpIdVO(); + List preserveSlotList = dsRbFilePreserveSlotService.getByRfpId(rfpId); + int insertIndex = 0; + if (CollectionUtils.isNotEmpty(preserveSlotList)) { + List childrenList; + // 获取preserveSlotList的ID集合 + List rfpsIdList = preserveSlotList.stream().map(MesRbFilePreserveSlotEntity::getId).toList(); + List detailEntities = dsRbFilePreserveDetailService.list(Wrappers.lambdaQuery(MesRbFilePreserveDetailEntity.class).in(MesRbFilePreserveDetailEntity::getRfpsId, rfpsIdList)); + // 根据rfpsId分组 + Map> detailMap = detailEntities.stream().collect(Collectors.groupingBy(MesRbFilePreserveDetailEntity::getRfpsId)); + for (MesRbFilePreserveSlotEntity dsRbFilePreserveSlot : preserveSlotList) { + if (Integer.parseInt(dsRbFilePreserveSlot.getInsertIndex()) > insertIndex) { + insertIndex = Integer.parseInt(dsRbFilePreserveSlot.getInsertIndex()); + } + List serviceByRfpsId = detailMap.get(dsRbFilePreserveSlot.getId()); + childrenList = serviceByRfpsId.stream().map(dsRbFilePreserveDetail -> { + MesRbFilePreserveDetailDTO mesRbFilePreserveDetailDTO = new MesRbFilePreserveDetailDTO(); + BeanUtils.copyProperties(dsRbFilePreserveDetail, mesRbFilePreserveDetailDTO); + return mesRbFilePreserveDetailDTO; + }).sorted(Comparator.comparing(MesRbFilePreserveDetailDTO::getDetailIndex)).toList(); + dsRbFilePreserveSlot.setChildrenList(childrenList); + } + } + getByRfpIdVO.setInsertIndex(insertIndex); + getByRfpIdVO.setPreserveSlotList(preserveSlotList); + return getByRfpIdVO; + } + + @Override + public IPage queryEquipmentCard(IPage page, String deviceCode) { + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(MesEquipmentCardEntity.class); + if (StringUtils.isNotBlank(deviceCode)) { + wrapper.like(MesEquipmentCardEntity::getDeviceCode, deviceCode).or().like(MesEquipmentCardEntity::getDeviceName, deviceCode); + } + return mesEquipmentCardService.page(page, wrapper); + } + + @Override + public List getDataByMtnCodeSj(Long wpId, String mtnCode) { + // 判断当前工序是否已经接收过 + WorkPlan workPlan = workPlanService.getById(wpId); + if (WorkPlan.STATUS_NO_START.equals(workPlan.getStatus())) { + throw new ServiceException("当前工序还未开始暂不能进行维护!!!"); + } + return qcProduceRunService.list(Wrappers.lambdaQuery(MesQcProduceRunEntity.class) + .eq(MesQcProduceRunEntity::getMtnCode, mtnCode) + .and(q -> q.notLike(MesQcProduceRunEntity::getWorkSlot, "入料区").or().isNull(MesQcProduceRunEntity::getWorkSlot)) + .orderByAsc(MesQcProduceRunEntity::getId)); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean eleFilesEditSj(EleFilesEditVO eleFilesEditVO) { + String mtnCode = eleFilesEditVO.getMtnCode(); + List qcProduceRunList = eleFilesEditVO.getMesQcProduceRunEntityList(); + Long ecId = eleFilesEditVO.getEcId(); + if (ecId == null) { + throw new ServiceException("请选择设备!!!"); + } + MesEquipmentCardEntity equipmentCard = mesEquipmentCardService.getById(ecId); + // 如果mtnCode不为null,则代表是修改,否则为新增 + if (StringUtils.isNotBlank(mtnCode)) { + for (MesQcProduceRunEntity qcProduceRun : qcProduceRunList) { + if (qcProduceRun.getId() != null) { + qcProduceRunService.updateById(qcProduceRun); + } else { + qcProduceRun.setDeviceId(equipmentCard.getDeviceCode()); + qcProduceRun.setMtnCode(mtnCode); + qcProduceRunService.save(qcProduceRun); + } + } + } else { + Long wpId = eleFilesEditVO.getWpId(); + WorkPlan workPlan = workPlanService.getById(wpId); + MacToolUse prMacToolUse = new MacToolUse(); + prMacToolUse.setWpId(workPlan.getId()); + + for (MesQcProduceRunEntity qcProduceRun : qcProduceRunList) { + String code = macToolUseService.nextCode(3); + // 创建一条绑定记录 + prMacToolUse = new MacToolUse(); + prMacToolUse.setWpId(workPlan.getId()); + prMacToolUse.setEquipmentCard(equipmentCard.getId()); + prMacToolUse.setFinished(1); + prMacToolUse.setMtnCode(code); + macToolUseService.save(prMacToolUse); + + qcProduceRun.setMtnCode(code); + qcProduceRun.setDeviceId(equipmentCard.getDeviceCode()); + qcProduceRunService.save(qcProduceRun); + } + } + return true; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean eleFilesEditRb(EleFilesEditVO eleFilesEditVO) { + String mtnCode = eleFilesEditVO.getMtnCode(); + List preserveSlotList = eleFilesEditVO.getProduceMonitorFileSlotVOList(); + + // 如果mtnCode不为null,则代表是修改,否则为新增 + if (StringUtils.isNotBlank(mtnCode)) { + List qcProduceRunList = qcProduceRunService.list(Wrappers.lambdaQuery(MesQcProduceRunEntity.class) + .eq(MesQcProduceRunEntity::getMtnCode, mtnCode) + .and(q -> q.notLike(MesQcProduceRunEntity::getWorkSlot, "入料区").or().isNull(MesQcProduceRunEntity::getWorkSlot)) + .orderByAsc(MesQcProduceRunEntity::getId)); + MesQcProduceRunEntity qcProduceRunOld = new MesQcProduceRunEntity(); + for (ProduceMonitorFileSlotVO dsRbFilePreserveSlot : preserveSlotList) { + for (MesQcProduceRunEntity qcProduceRun : qcProduceRunList) { + //zxh 20250116 获取槽号增加trim函数去除空格 + if (dsRbFilePreserveSlot.getSlotName().trim().equals(qcProduceRun.getWorkSlot().trim())) { + qcProduceRunOld = qcProduceRun; + } + } + List childrenList = dsRbFilePreserveSlot.getChildrenList(); + this.savePreserveSlotList(childrenList, qcProduceRunOld, dsRbFilePreserveSlot.getRfpsType()); + // 如果没有主键需要新增 + if (qcProduceRunOld.getId() == null) { + qcProduceRunOld.setMtnCode(mtnCode); + qcProduceRunOld.setDeviceId(qcProduceRunList.get(0).getDeviceId()); + qcProduceRunService.save(qcProduceRunOld); + } else { + qcProduceRunService.updateById(qcProduceRunOld); + } + } + } else { + Long wpId = eleFilesEditVO.getWpId(); + Long rfpId = eleFilesEditVO.getRfpId(); + Long ecId = eleFilesEditVO.getEcId(); + Short lineType = eleFilesEditVO.getLineType(); + if (ecId == null) { + throw new ServiceException("请选择设备!!!"); + } + WorkPlan workPlan = workPlanService.getById(wpId); + MacToolUse prMacToolUse; + MesEquipmentCardEntity equipmentCard = mesEquipmentCardService.getById(ecId); + String code = macToolUseService.nextCode(2); + workPlan.setPrintType((short) 1); + + // 创建一条绑定记录 + prMacToolUse = new MacToolUse(); + prMacToolUse.setWpId(workPlan.getId()); + prMacToolUse.setEquipmentCard(equipmentCard.getId()); + prMacToolUse.setFinished(1); + prMacToolUse.setCreateMan(AuthUtil.getUserId()); + prMacToolUse.setRfpId(rfpId.toString()); + prMacToolUse.setMtnCode(code); + if (lineType != null) { + prMacToolUse.setMtuIndex(String.valueOf(lineType)); + } + macToolUseService.save(prMacToolUse); + + List qcProduceRunEntities = new ArrayList<>(); + MesQcProduceRunEntity qcProduceRun; + // 创建生产追溯数据 + for (ProduceMonitorFileSlotVO dsRbFilePreserveSlot : preserveSlotList) { + qcProduceRun = new MesQcProduceRunEntity(); + qcProduceRun.setMtnCode(code); + qcProduceRun.setCreateMan(AuthUtil.getUserName()); + qcProduceRun.setDeviceId(equipmentCard.getDeviceCode()); + qcProduceRun.setWorkSlot(dsRbFilePreserveSlot.getSlotName()); + List childrenList = dsRbFilePreserveSlot.getChildrenList(); + this.savePreserveSlotList(childrenList, qcProduceRun, dsRbFilePreserveSlot.getRfpsType()); + qcProduceRunEntities.add(qcProduceRun); + } + qcProduceRunService.saveBatch(qcProduceRunEntities); + } + return true; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public boolean deletedProduceRun(String mtnCode) { + // 删除产生的记录数据 + qcProduceRunService.remove(Wrappers.lambdaQuery(MesQcProduceRunEntity.class) + .eq(MesQcProduceRunEntity::getMtnCode, mtnCode) + .and(q -> q.notLike(MesQcProduceRunEntity::getWorkSlot, "入料区").or().isNull(MesQcProduceRunEntity::getWorkSlot))); + // 删除绑定记录 + return macToolUseService.remove(Wrappers.lambdaQuery(MacToolUse.class).eq(MacToolUse::getMtnCode, mtnCode)); + } + + @Override + public List loadPrMacToolUseByMtnCode(String mtnCode) { + return pdaLoadService.loadPrMacToolUseByMtnCode(mtnCode); + } + + @Override + public RemarryRedeemRetrospectDefendVO remarryRedeemRetrospectDefend(String cardNo, String line) { + RemarryRedeemRetrospectDefendVO defendVO = new RemarryRedeemRetrospectDefendVO(); + WorkPlanDto workPlanDto = makeRecServiceImpl.loadCurrentWp(cardNo); + WorkPlan workPlan = workPlanService.getById(workPlanDto.getWpId()); + if (!workPlan.getStatus().equals(WorkPlan.STATUS_START)) { + throw new ServiceException("流程卡为 " + cardNo + " 的订单对应的工序不在加工中暂时不可再维护!"); + } + // 查询自动生产追溯是否已经开始 + List produceRunList = qcProduceRunService.listPrByWpIdIndex(workPlanDto.getWpId(), 2, Boolean.FALSE); + List produceRunListIndexOne = new ArrayList<>(); + MacToolUse prMacToolUse = null; + // 上线前 没有生产追溯数据 + if ("1".equals(line)) { + if (produceRunList != null && !produceRunList.isEmpty()) { + throw new ServiceException("流程卡为 " + cardNo + " 的订单对应的工序已经在已上线,不可再维护!"); + } + + prMacToolUse = macToolUseService.getDataByWpIdAndIndex(workPlanDto.getWpId(), "1"); + // 如果已经维护 + produceRunListIndexOne = qcProduceRunService.listPrByWpIdIndex(workPlanDto.getWpId(), 1, Boolean.FALSE); + + } else if ("0".equals(line)) { + // 下线后 有自动生产追溯数据 + if (produceRunList.isEmpty()) { + throw new ServiceException("流程卡为 " + cardNo + " 的订单对应的工序还未下线,不可再维护!"); + } + + prMacToolUse = macToolUseService.getDataByWpIdAndIndex(workPlanDto.getWpId(), "3"); + // 如果已经维护 + produceRunListIndexOne = qcProduceRunService.listPrByWpIdIndex(workPlanDto.getWpId(), 3, Boolean.FALSE); + + } + + List dsRbFilePreserveSlotList = new ArrayList<>(); + if (prMacToolUse == null) { + throw new ServiceException("未找到维护的数据!!!"); + } + // 获取模板数据 + List rbFilePreserveSlotList = dsRbFilePreserveSlotService.getByRfpId(Long.valueOf(prMacToolUse.getRfpId())); + + // cdl 20250218 修改分槽同一槽号连续出现 + workOrderService.setRbFilePreserveData(rbFilePreserveSlotList, produceRunListIndexOne, workPlan, dsRbFilePreserveSlotList, prMacToolUse); + defendVO.setDsRbFilePreserveSlotList(dsRbFilePreserveSlotList); + defendVO.setMtuId(prMacToolUse.getId()); + return defendVO; + } + + @Override + public boolean remarryRedeemSaveRetrospectDefend(EleFilesEditVO eleFilesEditVO) { + Long mtuId = eleFilesEditVO.getMtuId(); + Boolean line = eleFilesEditVO.getLine(); + List preserveSlotList = eleFilesEditVO.getProduceMonitorFileSlotVOList(); + MacToolUse prMacToolUse = macToolUseService.getById(mtuId); + List qcProduceRunsList = null; + // 上线前 没有生产追溯数据 + if (Objects.equals(line, Boolean.TRUE)) { + qcProduceRunsList = qcProduceRunService.listPrByWpIdIndex(prMacToolUse.getWpId(), 1, Boolean.FALSE); + } else if (line.equals(Boolean.FALSE)) { + qcProduceRunsList = qcProduceRunService.listPrByWpIdIndex(prMacToolUse.getWpId(), 3, Boolean.FALSE); + } + if (qcProduceRunsList == null || qcProduceRunsList.isEmpty()) { + throw new ServiceException("未找到维护的数据!!!"); + } + MesQcProduceRunEntity qcProduceRunOld = null; + for (ProduceMonitorFileSlotVO dsRbFilePreserveSlot : preserveSlotList) { + for (MesQcProduceRunEntity qcProduceRun : qcProduceRunsList) { + if (dsRbFilePreserveSlot.getSlotName().equals(qcProduceRun.getWorkSlot())) { + qcProduceRunOld = qcProduceRun; + } + } + List childrenList = dsRbFilePreserveSlot.getChildrenList(); + this.savePreserveSlotList(childrenList, qcProduceRunOld, dsRbFilePreserveSlot.getRfpsType()); + + qcProduceRunService.updateById(qcProduceRunOld); + } + return false; + } + + @Override + public GoodsVO getMaterialMess(String goodsCode) { + return macToolUseService.getMaterialMess(goodsCode); + } + + private void savePreserveSlotList(List childrenList, MesQcProduceRunEntity qcProduceRun, Short rfpsType) { + for (int i = 0; i < childrenList.size(); i++) { + MesRbFilePreserveDetailEntity dsRbFilePreserveDetail = childrenList.get(i); + if (childrenList.get(0).getRfpdTime() != null) { + String time = childrenList.get(0).getRfpdTime(); + if (org.apache.commons.lang3.StringUtils.isNotBlank(time)) { + time = time.replace("-", "/"); + } + qcProduceRun.setInDate(time); + } + if (childrenList.size() > 1 && childrenList.get(1).getRfpdTime() != null) { + + String time = childrenList.get(1).getRfpdTime(); + if (org.apache.commons.lang3.StringUtils.isNotBlank(time)) { + time = time.replace("-", "/"); + } + qcProduceRun.setOutDate(time); + } + if (rfpsType == 1) { // 模板一 + if (i == 0) { + qcProduceRun.setDataOne(dsRbFilePreserveDetail.getParamValue()); + String time = dsRbFilePreserveDetail.getRfpdTime(); + if (org.apache.commons.lang3.StringUtils.isNotBlank(time)) { + time = time.replace("-", "/"); + } + qcProduceRun.setInDate(time); + + } else if (i == 1) { + qcProduceRun.setDataTwo(dsRbFilePreserveDetail.getParamValue()); + String time = dsRbFilePreserveDetail.getRfpdTime(); + if (org.apache.commons.lang3.StringUtils.isNotBlank(time)) { + time = time.replace("-", "/"); + } + qcProduceRun.setOutDate(time); + } + } else if (rfpsType == 2) { // 模板二 + if (i == 2) { + qcProduceRun.setDataOne(dsRbFilePreserveDetail.getParamValue()); + } + } else if (rfpsType == 3) { // 模板三 + if (i == 2) { + qcProduceRun.setDataOne(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 3) { + qcProduceRun.setDataTwo(dsRbFilePreserveDetail.getParamValue()); + } + } else if (rfpsType == 4) { // 模板四 + if (i == 0) { + qcProduceRun.setDataOne(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 1) { + qcProduceRun.setDataTwo(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 2) { + qcProduceRun.setDataThree(dsRbFilePreserveDetail.getParamValue()); + } + } else if (rfpsType == 5 || rfpsType == 22) { // 模板五 + if (i == 0) { + qcProduceRun.setDataOne(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 1) { + qcProduceRun.setDataTwo(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 2) { + qcProduceRun.setDataThree(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 3) { + qcProduceRun.setDataFour(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 4) { + qcProduceRun.setDataFive(dsRbFilePreserveDetail.getParamValue()); + } + } else if (rfpsType == 6) { // 模板六 + if (i == 0) { + qcProduceRun.setDataOne(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 1) { + qcProduceRun.setDataTwo(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 2) { + qcProduceRun.setDataThree(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 3) { + qcProduceRun.setDataFour(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 4) { + qcProduceRun.setDataFive(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 5) { + qcProduceRun.setDataSix(dsRbFilePreserveDetail.getParamValue()); + } + } else if (rfpsType == 7) { // 模板七 + if (i == 0) { + qcProduceRun.setDataOne(dsRbFilePreserveDetail.getParamValue()); + } + } else if (rfpsType == 8) { // 模板八 + if (i == 0) { + qcProduceRun.setDataOne(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 1) { + qcProduceRun.setDataTwo(dsRbFilePreserveDetail.getParamValue()); + } + } else if (rfpsType == 9) { // 模板九 + if (i == 2) { + qcProduceRun.setDataOne(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 3) { + qcProduceRun.setDataTwo(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 4) { + qcProduceRun.setDataThree(dsRbFilePreserveDetail.getParamValue()); + } + } else if (rfpsType == 10) { // 模板十 + if (i == 0) { + qcProduceRun.setQualified(dsRbFilePreserveDetail.getQualified()); + } + } else if (rfpsType == 11) { // 模板十一 + if (i == 2) { + qcProduceRun.setDataOne(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 3) { + qcProduceRun.setDataTwo(dsRbFilePreserveDetail.getParamValue()); + } + } else if (rfpsType == 12) { // 模板十二 + if (i == 0) { + qcProduceRun.setDataOne(dsRbFilePreserveDetail.getRfpdTime()); + } else if (i == 1) { + qcProduceRun.setDataTwo(dsRbFilePreserveDetail.getRfpdTime()); + } else if (i == 2) { + qcProduceRun.setDataThree(dsRbFilePreserveDetail.getRfpdTime()); + } + } else if (rfpsType == 13) { // 模板十三 + if (i == 0) { + qcProduceRun.setDataOne(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 1) { + qcProduceRun.setDataTwo(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 2) { + qcProduceRun.setDataThree(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 3) { + qcProduceRun.setDataFour(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 4) { + qcProduceRun.setDataFive(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 5) { + qcProduceRun.setDataSix(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 6) { + qcProduceRun.setDataSeven(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 7) { + qcProduceRun.setDataEight(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 8) { + qcProduceRun.setDataNine(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 9) { + qcProduceRun.setDataTen(dsRbFilePreserveDetail.getParamValue()); + } + } else if (rfpsType == 14) { // 模板十四 + if (i == 2) { + qcProduceRun.setDataOne(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 3) { + qcProduceRun.setDataTwo(dsRbFilePreserveDetail.getRfpdTime()); + } else if (i == 4) { + qcProduceRun.setDataThree(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 5) { + qcProduceRun.setDataFour(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 6) { + qcProduceRun.setDataFive(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 7) { + qcProduceRun.setDataSix(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 8) { + qcProduceRun.setDataSeven(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 9) { + qcProduceRun.setDataEight(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 10) { + qcProduceRun.setDataNine(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 11) { + qcProduceRun.setDataTen(dsRbFilePreserveDetail.getParamValue()); + } + } else if (rfpsType == 15) { // 模板十五 + if (i == 2) { + qcProduceRun.setDataOne(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 3) { + qcProduceRun.setDataTwo(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 4) { + qcProduceRun.setDataThree(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 5) { + qcProduceRun.setDataFour(dsRbFilePreserveDetail.getRfpdTime()); + } else if (i == 6) { + qcProduceRun.setDataFive(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 7) { + qcProduceRun.setDataSix(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 8) { + qcProduceRun.setDataSeven(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 9) { + qcProduceRun.setDataEight(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 10) { + qcProduceRun.setDataNine(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 11) { + qcProduceRun.setDataTen(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 12) { + qcProduceRun.setDataEleven(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 13) { + qcProduceRun.setDataTwelve(dsRbFilePreserveDetail.getParamValue()); + } + } else if (rfpsType == 16) { // 模板十六 + if (i == 2) { + qcProduceRun.setDataOne(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 3) { + qcProduceRun.setDataTwo(dsRbFilePreserveDetail.getRfpdTime()); + } else if (i == 4) { + qcProduceRun.setDataThree(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 5) { + qcProduceRun.setDataFour(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 6) { + qcProduceRun.setDataFive(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 7) { + qcProduceRun.setDataSix(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 8) { + qcProduceRun.setDataSeven(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 9) { + qcProduceRun.setDataEight(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 10) { + qcProduceRun.setDataNine(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 11) { + qcProduceRun.setDataTen(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 12) { + qcProduceRun.setDataEleven(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 13) { + qcProduceRun.setDataTwelve(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 14) { + qcProduceRun.setDataThirteen(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 15) { + qcProduceRun.setDataFourteen(dsRbFilePreserveDetail.getParamValue()); + } + } else if (rfpsType == 17) { // 模板十七 + if (i == 2) { + qcProduceRun.setDataOne(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 3) { + qcProduceRun.setDataTwo(dsRbFilePreserveDetail.getRfpdTime()); + } else if (i == 4) { + qcProduceRun.setDataThree(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 5) { + qcProduceRun.setDataFour(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 6) { + qcProduceRun.setDataFive(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 7) { + qcProduceRun.setDataSix(dsRbFilePreserveDetail.getParamValue()); + } + } else if (rfpsType == 18) { // 模板十八 + if (i == 0) { + qcProduceRun.setDataOne(dsRbFilePreserveDetail.getParamValue()); + } + } else if (rfpsType == 19) { // 模板十九 //zxh 20250519 新增模板19和模板20 + if (i == 0) { + qcProduceRun.setDataOne(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 1) { + qcProduceRun.setDataTwo(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 2) { + qcProduceRun.setDataThree(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 3) { + qcProduceRun.setDataFour(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 4) { + qcProduceRun.setDataFive(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 5) { + qcProduceRun.setDataSix(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 6) { + qcProduceRun.setDataSeven(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 7) { + qcProduceRun.setDataEight(dsRbFilePreserveDetail.getRfpdTime()); + } else if (i == 8) { + qcProduceRun.setDataNine(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 9) { + qcProduceRun.setDataTen(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 10) { + qcProduceRun.setDataEleven(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 11) { + qcProduceRun.setDataTwelve(dsRbFilePreserveDetail.getRfpdTime()); + } + } else if (rfpsType == 20) { // 模板二十 + if (i == 0) { + qcProduceRun.setInDate(dsRbFilePreserveDetail.getRfpdTime()); + } else if (i == 1) { + qcProduceRun.setInDate(dsRbFilePreserveDetail.getRfpdTime()); + } else if (i == 2) { + qcProduceRun.setOutDate(dsRbFilePreserveDetail.getRfpdTime()); + } else if (i == 3) { + qcProduceRun.setOutDate(dsRbFilePreserveDetail.getRfpdTime()); + } else if (i == 4) { + qcProduceRun.setDataFive(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 5) { + qcProduceRun.setDataSix(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 6) { + qcProduceRun.setDataSeven(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 7) { + qcProduceRun.setDataEight(dsRbFilePreserveDetail.getParamValue()); + } + } else if (rfpsType == 21) { // 模板二一 + if (i == 0) { + qcProduceRun.setDataOne(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 1) { + qcProduceRun.setDataTwo(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 2) { + qcProduceRun.setDataThree(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 3) { + qcProduceRun.setDataFour(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 4) { + qcProduceRun.setDataFive(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 5) { + qcProduceRun.setDataSix(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 6) { + qcProduceRun.setDataSeven(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 7) { + qcProduceRun.setDataEight(dsRbFilePreserveDetail.getParamValue()); + } else if (i == 8) { + qcProduceRun.setDataNine(dsRbFilePreserveDetail.getParamValue()); + } + } + String detailName = dsRbFilePreserveDetail.getDetailName(); + if (detailName != null) { + if (detailName.contains("温度")) { + qcProduceRun.setTempSlot(dsRbFilePreserveDetail.getParamValue()); + } else if (detailName.contains("电导率")) { + qcProduceRun.setEleRate(dsRbFilePreserveDetail.getParamValue()); + } else if (detailName.contains("电流") && !(detailName.contains("壳体") || detailName.contains("插针"))) { + qcProduceRun.setEleStream(dsRbFilePreserveDetail.getParamValue()); + } else if (detailName.contains("链速")) { + qcProduceRun.setVSpeed(dsRbFilePreserveDetail.getParamValue()); + } else if (detailName.contains("镍离子")) { + qcProduceRun.setNiValue(dsRbFilePreserveDetail.getParamValue()); + } else if (detailName.contains("pH值")) { + qcProduceRun.setPhValue(dsRbFilePreserveDetail.getParamValue()); + } + //zxh 20250604 增加软起时间和工作电压 + else if (detailName.contains("软起时间")) { + qcProduceRun.setSoftWorkTime(dsRbFilePreserveDetail.getParamValue()); + } else if (detailName.contains("工作电压")) { + qcProduceRun.setVoltage(dsRbFilePreserveDetail.getParamValue()); + //zxh 20250617 新增初始电压 + } else if (detailName.contains("初始电压")) { + qcProduceRun.setStartVol(dsRbFilePreserveDetail.getParamValue()); + } + } + } + } +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderServiceImpl.java index e21f0560..e121dda4 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderServiceImpl.java @@ -2171,7 +2171,8 @@ public class WorkOrderServiceImpl extends BaseServiceImpl preserveSlotList, List qcProduceRunsList, WorkPlan workPlan, List dsRbFilePreserveSlotList, MacToolUse prMacToolUse) { + @Override + public void setRbFilePreserveData(List preserveSlotList, List qcProduceRunsList, WorkPlan workPlan, List dsRbFilePreserveSlotList, MacToolUse prMacToolUse) { List dsRbFilePreserveDetailList = null; ProduceMonitorFileSlotVO newDsRbFilePreserveSlot = null; MesRbFilePreserveDetailEntity newDsRbFilePreserveDetail = null; diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkPlanServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkPlanServiceImpl.java index 39a6fc0c..e7551596 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkPlanServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkPlanServiceImpl.java @@ -24,6 +24,7 @@ import org.springblade.desk.produce.mapper.PlateAroundMapper; import org.springblade.desk.produce.mapper.WorkPlanMapper; import org.springblade.desk.produce.pojo.entity.*; import org.springblade.desk.produce.pojo.vo.ProduceMonitorWorkPlanVO; +import org.springblade.desk.produce.pojo.vo.WorkPlanProVO; import org.springblade.desk.produce.pojo.vo.WorkPlanVO; import org.springblade.desk.produce.service.*; import org.springblade.desk.quality.pojo.entity.InspectionTask; @@ -310,4 +311,9 @@ public class WorkPlanServiceImpl extends BaseServiceImpl getWorkOrderProcess(String cardNo) { + return baseMapper.getWorkOrderProcess(cardNo); + } }