Merge branch 'liweidong'

liweidong
liweidong-hj 5 days ago
commit f7b68d121a
  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. 94
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java

@ -39,6 +39,6 @@ public interface IMoldDemandClient {
* @return * @return
*/ */
@GetMapping(SAVE_MOLD_DEMAND) @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") @TableField(value = "URGENT_TYPE")
private String urgentType; 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_CODE_D("D", 13002),
PLAN_TYPE_NAME_Z("制造", 14001), PLAN_TYPE_NAME_Z("制造", 14001),
PLAN_TYPE_NAME_D("夹具", 15002), PLAN_TYPE_NAME_D("夹具", 15002),
/**
* 需求来源
*/
BUSINESS_TYPE_ORDER_DEMAND("订单需求", 16001),
BUSINESS_TYPE_MOLD_CHANGE("模具变更", 16002),
BUSINESS_TYPE_INVENTORY_REPLENISH("库存补制", 16003),
; ;
final String name; final String name;
final int code; final int code;

@ -26,9 +26,12 @@
package org.springblade.desk.dashboard.service.impl; package org.springblade.desk.dashboard.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage; 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.StringPool;
import jodd.util.StringUtil; import jodd.util.StringUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.tool.api.R; import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func; 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.common.service.IMesNotifyMessageService;
import org.springblade.desk.dashboard.mapper.DsMoldChangeMapper; import org.springblade.desk.dashboard.mapper.DsMoldChangeMapper;
import org.springblade.desk.dashboard.pojo.entity.DsMoldChangeEntity; 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.enums.DsMoldChangeEnum;
import org.springblade.desk.dashboard.pojo.vo.DsMoldChangeVO; import org.springblade.desk.dashboard.pojo.vo.DsMoldChangeVO;
import org.springblade.desk.dashboard.service.IDsMoldChangeService; 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.feign.IUserClient;
import org.springblade.system.pojo.entity.User; import org.springblade.system.pojo.entity.User;
import org.springblade.system.pojo.entity.UserInfo; import org.springblade.system.pojo.entity.UserInfo;
@ -48,6 +57,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Arrays; import java.util.Arrays;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -70,6 +80,12 @@ public class DsMoldChangeServiceImpl extends BaseServiceImpl<DsMoldChangeMapper,
@Autowired @Autowired
IMesNotifyMessageService mesNotifyMessageService; IMesNotifyMessageService mesNotifyMessageService;
@Autowired
IDsPartService partService;
@Autowired
IMoldDemandService moldDemandService;
@Override @Override
public IPage<DsMoldChangeVO> selectDsMoldChangePage(IPage<DsMoldChangeVO> page, DsMoldChangeVO moldChange) { public IPage<DsMoldChangeVO> selectDsMoldChangePage(IPage<DsMoldChangeVO> page, DsMoldChangeVO moldChange) {
List<DsMoldChangeVO> moldChangeList = baseMapper.selectDsMoldChangePage(page, moldChange); List<DsMoldChangeVO> moldChangeList = baseMapper.selectDsMoldChangePage(page, moldChange);
@ -150,8 +166,7 @@ public class DsMoldChangeServiceImpl extends BaseServiceImpl<DsMoldChangeMapper,
* 处理模具补制逻辑 * 处理模具补制逻辑
*/ */
private void handleMoldRepair(DsMoldChangeEntity moldChange) { 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 @Override
public Boolean saveMoldDemand(String toolCode) { public Boolean saveMoldDemand(String toolCode,String targetName,Integer mafType) {
return moldDemandService.saveMoldDemand(toolCode); return moldDemandService.saveMoldDemand(toolCode,targetName,mafType);
} }
} }

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

@ -804,11 +804,22 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
moldDemand.setMdCode(generateMdCode()); moldDemand.setMdCode(generateMdCode());
moldDemand.setIsDeleted(0); moldDemand.setIsDeleted(0);
moldDemand.setCreateTime(new Date()); moldDemand.setCreateTime(new Date());
moldDemand.setDemandSource(MoldDemandEnum.BUSINESS_TYPE_ORDER_DEMAND.getName());
moldDemandMapper.insert(moldDemand); moldDemandMapper.insert(moldDemand);
} else { } else {
moldDemand.setDemandNum(moldDemand.getDemandNum() + partRelation.getQuota() * yieldOrder.getYpQty()); moldDemand.setDemandNum(moldDemand.getDemandNum() + partRelation.getQuota() * yieldOrder.getYpQty());
moldDemand.setLinkOrderIds(moldDemand.getLinkOrderIds().concat(",").concat(yieldOrder.getId().toString())); moldDemand.setLinkOrderIds(moldDemand.getLinkOrderIds().concat(",").concat(yieldOrder.getId().toString()));
moldDemand.setUpdateTime(new Date()); 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); moldDemandMapper.updateById(moldDemand);
} }
yieldOrder.setToolsDemand(BigDecimal.valueOf(moldDemand.getDemandNum())); yieldOrder.setToolsDemand(BigDecimal.valueOf(moldDemand.getDemandNum()));
@ -841,54 +852,69 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
moldDemand.setMdCode(generateMdCode()); moldDemand.setMdCode(generateMdCode());
moldDemand.setIsDeleted(0); moldDemand.setIsDeleted(0);
moldDemand.setCreateTime(new Date()); moldDemand.setCreateTime(new Date());
moldDemand.setDemandSource(MoldDemandEnum.BUSINESS_TYPE_ORDER_DEMAND.getName());
moldDemandMapper.insert(moldDemand); moldDemandMapper.insert(moldDemand);
} else { } else {
moldDemand.setDemandNum(moldDemand.getDemandNum() + yieldOrder.getYpQty()); moldDemand.setDemandNum(moldDemand.getDemandNum() + yieldOrder.getYpQty());
moldDemand.setLinkOrderIds(moldDemand.getLinkOrderIds().concat(",").concat(yieldOrder.getId().toString())); moldDemand.setLinkOrderIds(moldDemand.getLinkOrderIds().concat(",").concat(yieldOrder.getId().toString()));
moldDemand.setUpdateTime(new Date()); 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.setPartCode(yieldOrder.getPartCode());
moldDemand.setPartName(yieldOrder.getPartName()); moldDemand.setPartName(yieldOrder.getPartName());
moldDemand.setToolCode(subPart.getPartCode()); moldDemand.setToolName(processMoldToolList.get(0).getMoldName());
moldDemand.setToolName(subPart.getPartName()); if (StringUtils.isNotEmpty(moldDemand.getDemandSource())) {
moldDemand.setDemandNum(partRelation.getQuota() * yieldOrder.getYpQty()); String targetName = MoldDemandEnum.BUSINESS_TYPE_ORDER_DEMAND.getName();
moldDemand.setLinkOrderIds(yieldOrder.getId().toString()); String currentSource = moldDemand.getDemandSource();
moldDemand.setMafStatus(MoldDemandEnum.MAF_STATUS_CREATE.getCode()); List<String> sourceList = Arrays.asList(currentSource.split(","));
moldDemand.setMafType(MoldDemandEnum.MAF_TYPE_RB.getCode()); if (!sourceList.contains(targetName)) {
moldDemand.setNeedDate(yieldOrder.getDemandDate()); moldDemand.setDemandSource(currentSource + "," + targetName);
moldDemand.setQuaLevel(yieldOrder.getProductIdent()); }
moldDemand.setMdCode(generateMdCode()); }else {
moldDemand.setIsDeleted(0); moldDemand.setDemandSource(MoldDemandEnum.BUSINESS_TYPE_ORDER_DEMAND.getName());
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); moldDemandMapper.updateById(moldDemand);
} }
yieldOrder.setToolsDemand(BigDecimal.valueOf(moldDemand.getDemandNum())); yieldOrder.setToolsDemand(BigDecimal.valueOf(moldDemand.getDemandNum()));
this.updateById(yieldOrder); 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; return Boolean.TRUE;
} }

Loading…
Cancel
Save