diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/SjCompleteVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/SjCompleteVO.java new file mode 100644 index 000000000..fd12ca1bd --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/SjCompleteVO.java @@ -0,0 +1,71 @@ +package org.springblade.desk.produce.pojo.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import org.springblade.core.tool.utils.DateUtil; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +/** + * 烧结配套查询 视图实体类 + * + * @author litao + */ +@Data +public class SjCompleteVO { + + @Schema(description = "生产订单id") + private Long yoId; + + @Schema(description = "车间订单id") + private Long woId; + + @Schema(description = "生产订单号") + private String yoCode; + + @Schema(description = "车间订单号") + private String woCode; + + @Schema(description = "零件号") + private String partCode; + + @Schema(description = "零件名称") + private String partName; + + @Schema(description = "产品型号") + private String productType; + + @Schema(description = "批次号") + private String batchNo; + + @Schema(description = "流程卡号") + private String cardNo; + + @Schema(description = "生产标识") + private String productIdent; + + @Schema(description = "生产数量") + private Double ypQty; + + @Schema(description = "面积(d㎡)") + private Double ypArea; + + @Schema(description = "订单优先级(key)") + private Integer priorityErp; + + @Schema(description = "订单优先级(名称)") + private String priorityErpName; + + @Schema(description = "计划下达时间") + @DateTimeFormat(pattern = DateUtil.PATTERN_DATETIME) + @JsonFormat(pattern = DateUtil.PATTERN_DATETIME) + private Date releaseDate; + + @Schema(description = "镀后入库时间") + @DateTimeFormat(pattern = DateUtil.PATTERN_DATETIME) + @JsonFormat(pattern = DateUtil.PATTERN_DATETIME) + private Date putStoreTime; + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/YieldOrderMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/YieldOrderMapper.java index ef4593eba..c75ac469e 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/YieldOrderMapper.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/YieldOrderMapper.java @@ -8,6 +8,7 @@ import org.springblade.desk.order.pojo.entity.YieldOrder; import org.springblade.desk.order.pojo.enums.YieldOrderEnum; import org.springblade.desk.order.pojo.vo.oldmes.PrWorkOrder; import org.springblade.desk.order.pojo.vo.oldmes.PrWorkPlan; +import org.springblade.desk.produce.pojo.vo.SjCompleteVO; import java.util.List; @@ -78,4 +79,10 @@ public interface YieldOrderMapper extends BaseMapper { List selectByFatherYoId(@Param("yieldOrderId") Long yieldOrderId); List selectByFatherYoIds(@Param("ids") List idList); + + List getSubCompleteData(Long yoId); + + List getSubBlbBatch(String cardNo); + + List getSubBlbData(List batchs); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/YieldOrderMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/YieldOrderMapper.xml index c6123834d..6f781ecbe 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/YieldOrderMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/YieldOrderMapper.xml @@ -177,6 +177,75 @@ + + + update MJMES.PR_WORK_ORDER set PLATE_SINGLE_QUOTA = #{plateSingleQuota} where WO_ID = #{woId} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IYieldOrderService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IYieldOrderService.java index cd1caab6e..34cf19854 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IYieldOrderService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IYieldOrderService.java @@ -11,6 +11,7 @@ import org.springblade.desk.order.pojo.dto.YieldOrderDto; import org.springblade.desk.order.pojo.entity.YieldOrder; import org.springblade.desk.order.pojo.entity.YieldOrderCraft; import org.springblade.desk.order.pojo.entity.YieldPlan; +import org.springblade.desk.produce.pojo.vo.SjCompleteVO; import java.util.List; @@ -330,4 +331,13 @@ public interface IYieldOrderService extends BaseService { * @return */ Boolean syncYieldOrder(String yoCode); + + /** + * 根据卡片号查询生产订单 + * @param cardNo + * @return + */ + YieldOrder getByCardNo(String cardNo); + + List getSubCompleteData(YieldOrder yieldOrder); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java index 60dbffa65..732151534 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java @@ -57,6 +57,7 @@ import org.springblade.desk.order.service.IYieldOrderCraftService; import org.springblade.desk.order.service.IYieldOrderService; import org.springblade.desk.produce.mapper.WorkOrderMapper; import org.springblade.desk.produce.pojo.entity.WorkOrder; +import org.springblade.desk.produce.pojo.vo.SjCompleteVO; import org.springblade.erpdata.feign.IErpMesRbWoClient; import org.springblade.erpdata.feign.IErpYieldOrderClient; import org.springblade.scheduling.pojo.entity.PartRelationEntity; @@ -2075,6 +2076,36 @@ public class YieldOrderServiceImpl extends BaseServiceImpl orders = this.list(Wrappers.lambdaQuery().eq(YieldOrder::getCardNo, cardNo).orderByDesc(YieldOrder::getCreateTime)); + return CollectionUtils.isEmpty(orders) ? null : orders.get(0); + } + + @Override + public List getSubCompleteData(YieldOrder yieldOrder) { + // 先按正常订单查询 + List subOrders = baseMapper.getSubCompleteData(yieldOrder.getId()); + if (CollectionUtils.isEmpty(subOrders)) { + // 按返工订单查询 + subOrders = baseMapper.getSubCompleteData(yieldOrder.getOldYoId()); + yieldOrder = this.getById(yieldOrder.getOldYoId()); + } + if (yieldOrder != null) { + // 查询玻璃饼子件批次号 + List batchs = baseMapper.getSubBlbBatch(yieldOrder.getCardNo()); + if (CollectionUtils.isEmpty(batchs)) { + return subOrders; + } + // 根据批次号查询生产订单 + List subBlbOrders = baseMapper.getSubBlbData(batchs); + if (CollectionUtils.isNotEmpty(subBlbOrders)) { + subOrders.addAll(subBlbOrders); + } + } + return subOrders; + } + /** * @param codeType 0:订单号、1:流程卡号;2、批次号 * @return String diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/SjProduceManageController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/SjProduceManageController.java index 26b2d62dc..f9567557a 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/SjProduceManageController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/SjProduceManageController.java @@ -20,10 +20,12 @@ import org.springblade.desk.order.wrapper.YieldOrderWrapper; import org.springblade.desk.produce.pojo.dto.QueryByReadStatusDTO; import org.springblade.desk.produce.pojo.dto.YieldOrderDTO; import org.springblade.desk.produce.pojo.vo.QueryByReadStatusVO; +import org.springblade.desk.produce.pojo.vo.SjCompleteVO; import org.springblade.desk.produce.service.IWorkOrderService; -import org.springblade.desk.quality.service.IPlanTestService; import org.springframework.web.bind.annotation.*; +import java.util.List; + /** * 烧结生产管理 * @@ -39,8 +41,6 @@ public class SjProduceManageController extends BladeController { private final IWorkOrderService workOrderService; - private final IPlanTestService planTestService; - @GetMapping("/page") @ApiOperationSupport(order = 1) @Operation(summary = "烧结配套齐套流转列表", description = "传入WorkOrderVO") @@ -110,19 +110,14 @@ public class SjProduceManageController extends BladeController { return R.data(workOrderService.setReadStatus(woIds)); } - @GetMapping(value = "/isTransferTest") - @ApiOperationSupport(order = 7) - @Operation(summary = "判断是否符合转试条件") - public R isTransferTest(Long woId) { -// return R.data(planTestService.isTransferTest(woId)); - return null; + @GetMapping("/selectSjComplete") + @Operation(summary = "烧结配套查询") + public R> selectSjComplete(String cardNo) { + if (StringUtils.isBlank(cardNo)) { + return R.fail("流程卡号为空"); + } + List list = workOrderService.selectSjComplete(cardNo); + return R.data(list); } - @PostMapping(value = "/launchTest") - @ApiOperationSupport(order = 8) - @Operation(summary = "发起转试的试验计划") - public R launchTest(@RequestBody String woIds) { -// return R.data(planTestService.launchTest(woIds)); - return null; - } } 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 db39d6baa..c02eed5b6 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 @@ -301,4 +301,9 @@ public interface IWorkOrderService extends BaseService { * 修改生产计划交付数量 */ boolean planUpdateToQty(); + + /** + * 获取烧结配套信息 + */ + List selectSjComplete(String cardNo); } 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 fc730f4d4..81b3d574d 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 @@ -2971,6 +2971,45 @@ public class WorkOrderServiceImpl extends BaseServiceImpl selectSjComplete(String cardNo) { + // 获取生产订单 + YieldOrder yieldOrder = yieldOrderService.getByCardNo(cardNo); + if (yieldOrder == null) { + throw new ServiceException("未查询到生产订单信息"); + } + // 正常烧结订单子件 + List subCompleteData = yieldOrderService.getSubCompleteData(yieldOrder); + if (CollectionUtils.isEmpty(subCompleteData)) { + // 按照分批逻辑查询 + for (int i = 0; i < 5; i++) { + // 截调流程卡号后两位去查询,一直到2位长度结束 + cardNo = this.removeLastTwo(cardNo); + if (cardNo.length() < 2) { + break; + } + YieldOrder batchYieldOrder = yieldOrderService.getByCardNo(this.removeLastTwo(cardNo)); + if (batchYieldOrder != null) { + subCompleteData = yieldOrderService.getSubCompleteData(batchYieldOrder); + if (CollectionUtils.isNotEmpty(subCompleteData)) { + break; + } + } + } + } + subCompleteData.forEach(sjCompleteVO -> sjCompleteVO.setPriorityErpName(YieldOrderEnum.getName(sjCompleteVO.getPriorityErp()))); + return subCompleteData; + } + + private String removeLastTwo(String str) { + if (str == null) { + return ""; + } + // 取有效起始下标,避免长度不足2报错 + int endIndex = Math.max(0, str.length() - 2); + return str.substring(0, endIndex); + } + private void processSinglePlan(String code) { // 第一步:查询t_wo表 Double woTotqty = erpDataProduceClient.selectMaxWototqtyByWono(code).getData();