From f87dfe78304968c95b6648175d528cc2b18da5ad Mon Sep 17 00:00:00 2001 From: liweidong-hj Date: Wed, 10 Jun 2026 11:45:23 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A3=A8=E5=85=B7=E7=83=A7=E7=BB=93=E8=AE=A1?= =?UTF-8?q?=E5=88=92=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../desk/order/feign/IMoldDemandClient.java | 2 +- .../desk/order/pojo/entity/MoldDemand.java | 6 ++ .../desk/order/pojo/enums/MoldDemandEnum.java | 7 ++ .../service/impl/DsMoldChangeServiceImpl.java | 19 +++- .../desk/order/feign/MoldDemandClient.java | 4 +- .../order/service/IMoldDemandService.java | 2 +- .../service/impl/MoldDemandServiceImpl.java | 22 +++-- .../service/impl/YieldOrderServiceImpl.java | 94 ++++++++++++------- 8 files changed, 110 insertions(+), 46 deletions(-) diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/feign/IMoldDemandClient.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/feign/IMoldDemandClient.java index 1d3b9a5ee..23d8a254a 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/feign/IMoldDemandClient.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/feign/IMoldDemandClient.java @@ -39,6 +39,6 @@ public interface IMoldDemandClient { * @return */ @GetMapping(SAVE_MOLD_DEMAND) - Boolean saveMoldDemand(@RequestParam("toolCode") String toolCode); + Boolean saveMoldDemand(@RequestParam("toolCode") String toolCode,@RequestParam("targetName")String targetName,@RequestParam("mafType")Integer mafType); } diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/entity/MoldDemand.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/entity/MoldDemand.java index 83a1c05f7..4728e8e95 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/entity/MoldDemand.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/entity/MoldDemand.java @@ -182,4 +182,10 @@ public class MoldDemand extends BaseEntity { */ @TableField(value = "URGENT_TYPE") private String urgentType; + + /** + * 需求来源 + */ + @TableField(value = "DEMAND_SOURCE") + private String demandSource; } diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/enums/MoldDemandEnum.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/enums/MoldDemandEnum.java index e20dfb320..a54fea640 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/enums/MoldDemandEnum.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/enums/MoldDemandEnum.java @@ -46,6 +46,13 @@ public enum MoldDemandEnum { PLAN_TYPE_CODE_D("D", 13002), PLAN_TYPE_NAME_Z("制造", 14001), PLAN_TYPE_NAME_D("夹具", 15002), + + /** + * 需求来源 + */ + BUSINESS_TYPE_ORDER_DEMAND("订单需求", 16001), + BUSINESS_TYPE_MOLD_CHANGE("模具变更", 16002), + BUSINESS_TYPE_INVENTORY_REPLENISH("库存补制", 16003), ; final String name; final int code; diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsMoldChangeServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsMoldChangeServiceImpl.java index fbeeefece..d83bc69b4 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsMoldChangeServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsMoldChangeServiceImpl.java @@ -26,9 +26,12 @@ package org.springblade.desk.dashboard.service.impl; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import jodd.util.StringPool; import jodd.util.StringUtil; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.Func; @@ -36,9 +39,15 @@ import org.springblade.desk.common.constant.BizTypeConstant; import org.springblade.desk.common.service.IMesNotifyMessageService; import org.springblade.desk.dashboard.mapper.DsMoldChangeMapper; import org.springblade.desk.dashboard.pojo.entity.DsMoldChangeEntity; +import org.springblade.desk.dashboard.pojo.entity.DsPartEntity; import org.springblade.desk.dashboard.pojo.enums.DsMoldChangeEnum; import org.springblade.desk.dashboard.pojo.vo.DsMoldChangeVO; import org.springblade.desk.dashboard.service.IDsMoldChangeService; +import org.springblade.desk.dashboard.service.IDsPartService; +import org.springblade.desk.order.mapper.MoldDemandMapper; +import org.springblade.desk.order.pojo.entity.MoldDemand; +import org.springblade.desk.order.pojo.enums.MoldDemandEnum; +import org.springblade.desk.order.service.IMoldDemandService; import org.springblade.system.feign.IUserClient; import org.springblade.system.pojo.entity.User; import org.springblade.system.pojo.entity.UserInfo; @@ -48,6 +57,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.Arrays; +import java.util.Date; import java.util.List; import java.util.Set; import java.util.stream.Collectors; @@ -70,6 +80,12 @@ public class DsMoldChangeServiceImpl extends BaseServiceImpl selectDsMoldChangePage(IPage page, DsMoldChangeVO moldChange) { List moldChangeList = baseMapper.selectDsMoldChangePage(page, moldChange); @@ -150,8 +166,7 @@ public class DsMoldChangeServiceImpl extends BaseServiceImpl { * @param toolCode * @return */ - boolean saveMoldDemand(String toolCode); + boolean saveMoldDemand(String toolCode,String targetName,Integer mafType); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/MoldDemandServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/MoldDemandServiceImpl.java index cb828e265..7473732ca 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/MoldDemandServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/MoldDemandServiceImpl.java @@ -165,15 +165,24 @@ public class MoldDemandServiceImpl extends BaseServiceImpl moldDemandList = baseMapper.selectByToolCodee(toolCode); - if (!CollectionUtils.isEmpty(moldDemandList)) { + // 2. 检查是否已存在未完成的模具需求 + MoldDemand moldDemand = baseMapper.selectOne(Wrappers.lambdaQuery().eq(MoldDemand::getToolCode,toolCode).eq(MoldDemand::getMafStatus, MoldDemandEnum.MAF_STATUS_CREATE.getCode())); + if (moldDemand != null) { + if (StringUtils.isNotEmpty(moldDemand.getDemandSource())) { + String currentSource = moldDemand.getDemandSource(); + List sourceList = Arrays.asList(currentSource.split(",")); + if (!sourceList.contains(targetName)) { + moldDemand.setDemandSource(currentSource + "," + targetName); + } + }else { + moldDemand.setDemandSource(targetName); + } return true; } @@ -190,11 +199,12 @@ public class MoldDemandServiceImpl extends BaseServiceImpl sourceList = Arrays.asList(currentSource.split(",")); + if (!sourceList.contains(targetName)) { + moldDemand.setDemandSource(currentSource + "," + targetName); + } + }else { + moldDemand.setDemandSource(MoldDemandEnum.BUSINESS_TYPE_ORDER_DEMAND.getName()); + } moldDemandMapper.updateById(moldDemand); } yieldOrder.setToolsDemand(BigDecimal.valueOf(moldDemand.getDemandNum())); @@ -841,54 +852,69 @@ public class YieldOrderServiceImpl extends BaseServiceImpl subPartList = dsPartService.getPartSubList(yieldOrder.getPartCode(), yieldOrder.getPartVersion()); - if (CollectionUtils.isNotEmpty(subPartList)) { - for (DsPartEntity subPart : subPartList) { - MoldDemand moldDemand = moldDemandMapper.selectOne(Wrappers.lambdaQuery().eq(MoldDemand::getToolCode, subPart.getPartCode()).eq(MoldDemand::getMafStatus, MoldDemandEnum.MAF_STATUS_CREATE.getCode())); - DsPartRelationEntity partRelation = partRelationService.selectByPartCodeAndSubCode(yieldOrder.getPartCode(), subPart.getPartCode()); - - if (moldDemand == null) { - moldDemand = new MoldDemand(); - moldDemand.setMoCode(null); moldDemand.setPartCode(yieldOrder.getPartCode()); moldDemand.setPartName(yieldOrder.getPartName()); - moldDemand.setToolCode(subPart.getPartCode()); - moldDemand.setToolName(subPart.getPartName()); - moldDemand.setDemandNum(partRelation.getQuota() * yieldOrder.getYpQty()); - moldDemand.setLinkOrderIds(yieldOrder.getId().toString()); - moldDemand.setMafStatus(MoldDemandEnum.MAF_STATUS_CREATE.getCode()); - moldDemand.setMafType(MoldDemandEnum.MAF_TYPE_RB.getCode()); - moldDemand.setNeedDate(yieldOrder.getDemandDate()); - moldDemand.setQuaLevel(yieldOrder.getProductIdent()); - moldDemand.setMdCode(generateMdCode()); - moldDemand.setIsDeleted(0); - moldDemand.setCreateTime(new Date()); - moldDemandMapper.insert(moldDemand); - } else { - moldDemand.setDemandNum(moldDemand.getDemandNum() + partRelation.getQuota() * yieldOrder.getYpQty()); - moldDemand.setLinkOrderIds(moldDemand.getLinkOrderIds().concat(",").concat(yieldOrder.getId().toString())); - moldDemand.setUpdateTime(new Date()); + moldDemand.setToolName(processMoldToolList.get(0).getMoldName()); + if (StringUtils.isNotEmpty(moldDemand.getDemandSource())) { + String targetName = MoldDemandEnum.BUSINESS_TYPE_ORDER_DEMAND.getName(); + String currentSource = moldDemand.getDemandSource(); + List sourceList = Arrays.asList(currentSource.split(",")); + if (!sourceList.contains(targetName)) { + moldDemand.setDemandSource(currentSource + "," + targetName); + } + }else { + moldDemand.setDemandSource(MoldDemandEnum.BUSINESS_TYPE_ORDER_DEMAND.getName()); + } moldDemandMapper.updateById(moldDemand); } yieldOrder.setToolsDemand(BigDecimal.valueOf(moldDemand.getDemandNum())); this.updateById(yieldOrder); - } - } } +// else if (YieldOrderEnum.YIELD_TYPE_6.getCode() == yieldOrder.getYieldType()) { +// List subPartList = dsPartService.getPartSubList(yieldOrder.getPartCode(), yieldOrder.getPartVersion()); +// if (CollectionUtils.isNotEmpty(subPartList)) { +// for (DsPartEntity subPart : subPartList) { +// MoldDemand moldDemand = moldDemandMapper.selectOne(Wrappers.lambdaQuery().eq(MoldDemand::getToolCode, subPart.getPartCode()).eq(MoldDemand::getMafStatus, MoldDemandEnum.MAF_STATUS_CREATE.getCode())); +// DsPartRelationEntity partRelation = partRelationService.selectByPartCodeAndSubCode(yieldOrder.getPartCode(), subPart.getPartCode()); +// +// if (moldDemand == null) { +// moldDemand = new MoldDemand(); +// moldDemand.setMoCode(null); +// moldDemand.setPartCode(yieldOrder.getPartCode()); +// moldDemand.setPartName(yieldOrder.getPartName()); +// moldDemand.setToolCode(subPart.getPartCode()); +// moldDemand.setToolName(subPart.getPartName()); +// moldDemand.setDemandNum(partRelation.getQuota() * yieldOrder.getYpQty()); +// moldDemand.setLinkOrderIds(yieldOrder.getId().toString()); +// moldDemand.setMafStatus(MoldDemandEnum.MAF_STATUS_CREATE.getCode()); +// moldDemand.setMafType(MoldDemandEnum.MAF_TYPE_RB.getCode()); +// moldDemand.setNeedDate(yieldOrder.getDemandDate()); +// moldDemand.setQuaLevel(yieldOrder.getProductIdent()); +// moldDemand.setMdCode(generateMdCode()); +// moldDemand.setIsDeleted(0); +// moldDemand.setCreateTime(new Date()); +// moldDemandMapper.insert(moldDemand); +// } else { +// moldDemand.setDemandNum(moldDemand.getDemandNum() + partRelation.getQuota() * yieldOrder.getYpQty()); +// moldDemand.setLinkOrderIds(moldDemand.getLinkOrderIds().concat(",").concat(yieldOrder.getId().toString())); +// moldDemand.setUpdateTime(new Date()); +// moldDemandMapper.updateById(moldDemand); +// } +// yieldOrder.setToolsDemand(BigDecimal.valueOf(moldDemand.getDemandNum())); +// this.updateById(yieldOrder); +// +// } +// +// } +// } return Boolean.TRUE; }