磨具烧结计划修改

liweidong
liweidong-hj 5 days ago
parent 4fcf96c234
commit f87dfe7830
  1. 2
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/feign/IMoldDemandClient.java
  2. 6
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/entity/MoldDemand.java
  3. 7
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/enums/MoldDemandEnum.java
  4. 19
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsMoldChangeServiceImpl.java
  5. 4
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/feign/MoldDemandClient.java
  6. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IMoldDemandService.java
  7. 22
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/MoldDemandServiceImpl.java
  8. 92
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.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);
}

@ -182,4 +182,10 @@ public class MoldDemand extends BaseEntity {
*/
@TableField(value = "URGENT_TYPE")
private String urgentType;
/**
* 需求来源
*/
@TableField(value = "DEMAND_SOURCE")
private String demandSource;
}

@ -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;

@ -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<DsMoldChangeMapper,
@Autowired
IMesNotifyMessageService mesNotifyMessageService;
@Autowired
IDsPartService partService;
@Autowired
IMoldDemandService moldDemandService;
@Override
public IPage<DsMoldChangeVO> selectDsMoldChangePage(IPage<DsMoldChangeVO> page, DsMoldChangeVO moldChange) {
List<DsMoldChangeVO> moldChangeList = baseMapper.selectDsMoldChangePage(page, moldChange);
@ -150,8 +166,7 @@ public class DsMoldChangeServiceImpl extends BaseServiceImpl<DsMoldChangeMapper,
* 处理模具补制逻辑
*/
private void handleMoldRepair(DsMoldChangeEntity moldChange) {
// TODO: 实现模具补制的业务逻辑
// 例如:创建模具补制工单、更新模具状态等
moldDemandService.saveMoldDemand(moldChange.getPartCode(), MoldDemandEnum.BUSINESS_TYPE_MOLD_CHANGE.getName(), MoldDemandEnum.MAF_TYPE_RB.getCode());
}
/**

@ -28,7 +28,7 @@ public class MoldDemandClient implements IMoldDemandClient {
}
@Override
public Boolean saveMoldDemand(String toolCode) {
return moldDemandService.saveMoldDemand(toolCode);
public Boolean saveMoldDemand(String toolCode,String targetName,Integer mafType) {
return moldDemandService.saveMoldDemand(toolCode,targetName,mafType);
}
}

@ -53,5 +53,5 @@ public interface IMoldDemandService extends BaseService<MoldDemand> {
* @param toolCode
* @return
*/
boolean saveMoldDemand(String toolCode);
boolean saveMoldDemand(String toolCode,String targetName,Integer mafType);
}

@ -165,15 +165,24 @@ public class MoldDemandServiceImpl extends BaseServiceImpl<MoldDemandMapper, Mol
}
@Override
public boolean saveMoldDemand(String toolCode) {
public boolean saveMoldDemand(String toolCode,String targetName,Integer mafType) {
// 1. 参数校验
if (toolCode == null || toolCode.trim().isEmpty()) {
throw new IllegalArgumentException("模具编码不能为空");
}
// 2. 检查是否已存在未完成的模具需求(避免重复创建)
List<MoldDemand> moldDemandList = baseMapper.selectByToolCodee(toolCode);
if (!CollectionUtils.isEmpty(moldDemandList)) {
// 2. 检查是否已存在未完成的模具需求
MoldDemand moldDemand = baseMapper.selectOne(Wrappers.<MoldDemand>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<String> 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<MoldDemandMapper, Mol
}
// 4. 构建并保存实体
MoldDemand moldDemand = new MoldDemand();
moldDemand = new MoldDemand();
moldDemand.setToolCode(toolCode);
moldDemand.setMdCode(code);
moldDemand.setMafStatus(MoldDemandEnum.MAF_STATUS_CREATE.getCode());
moldDemand.setMafType(MoldDemandEnum.MAF_TYPE_STORE.getCode());
moldDemand.setMafType(mafType);
moldDemand.setDemandSource(targetName);
boolean saveResult = this.save(moldDemand);
if (!saveResult) {

@ -804,11 +804,22 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
moldDemand.setMdCode(generateMdCode());
moldDemand.setIsDeleted(0);
moldDemand.setCreateTime(new Date());
moldDemand.setDemandSource(MoldDemandEnum.BUSINESS_TYPE_ORDER_DEMAND.getName());
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());
if (StringUtils.isNotEmpty(moldDemand.getDemandSource())) {
String targetName = MoldDemandEnum.BUSINESS_TYPE_ORDER_DEMAND.getName();
String currentSource = moldDemand.getDemandSource();
List<String> 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<YieldOrderMapper, Yie
moldDemand.setMdCode(generateMdCode());
moldDemand.setIsDeleted(0);
moldDemand.setCreateTime(new Date());
moldDemand.setDemandSource(MoldDemandEnum.BUSINESS_TYPE_ORDER_DEMAND.getName());
moldDemandMapper.insert(moldDemand);
} else {
moldDemand.setDemandNum(moldDemand.getDemandNum() + 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);
}
}
} else if (YieldOrderEnum.YIELD_TYPE_6.getCode() == yieldOrder.getYieldType()) {
List<DsPartEntity> subPartList = dsPartService.getPartSubList(yieldOrder.getPartCode(), yieldOrder.getPartVersion());
if (CollectionUtils.isNotEmpty(subPartList)) {
for (DsPartEntity subPart : subPartList) {
MoldDemand moldDemand = moldDemandMapper.selectOne(Wrappers.<MoldDemand>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);
moldDemand.setToolName(processMoldToolList.get(0).getMoldName());
if (StringUtils.isNotEmpty(moldDemand.getDemandSource())) {
String targetName = MoldDemandEnum.BUSINESS_TYPE_ORDER_DEMAND.getName();
String currentSource = moldDemand.getDemandSource();
List<String> sourceList = Arrays.asList(currentSource.split(","));
if (!sourceList.contains(targetName)) {
moldDemand.setDemandSource(currentSource + "," + targetName);
}
}else {
moldDemand.setDemandNum(moldDemand.getDemandNum() + partRelation.getQuota() * yieldOrder.getYpQty());
moldDemand.setLinkOrderIds(moldDemand.getLinkOrderIds().concat(",").concat(yieldOrder.getId().toString()));
moldDemand.setUpdateTime(new Date());
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<DsPartEntity> subPartList = dsPartService.getPartSubList(yieldOrder.getPartCode(), yieldOrder.getPartVersion());
// if (CollectionUtils.isNotEmpty(subPartList)) {
// for (DsPartEntity subPart : subPartList) {
// MoldDemand moldDemand = moldDemandMapper.selectOne(Wrappers.<MoldDemand>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;
}

Loading…
Cancel
Save