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 76937fa3..1d3b9a5e 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 @@ -4,6 +4,7 @@ import org.springblade.core.launch.constant.AppConstant; import org.springblade.desk.order.pojo.entity.MoldDemand; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; /** * 模具计划接口声明 @@ -18,6 +19,7 @@ public interface IMoldDemandClient { String API_PREFIX = "/feign/moldDemand/"; String SAVE = API_PREFIX + "/save"; + String SAVE_MOLD_DEMAND = API_PREFIX + "/saveMoldDemand"; /** @@ -29,4 +31,14 @@ public interface IMoldDemandClient { @GetMapping(SAVE) Boolean save(MoldDemand moldDemand); + + /** + * 新增模具需求 + * + * @param toolCode + * @return + */ + @GetMapping(SAVE_MOLD_DEMAND) + Boolean saveMoldDemand(@RequestParam("toolCode") String toolCode); + } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/controller/MoldDemandController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/controller/MoldDemandController.java index 42870b59..98e143e7 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/controller/MoldDemandController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/controller/MoldDemandController.java @@ -84,4 +84,5 @@ public class MoldDemandController extends BladeController { Boolean result = moldDemandService.closeBatch(Func.toLongList(ids)); return R.status(result); } + } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/feign/MoldDemandClient.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/feign/MoldDemandClient.java index 15286703..dbcb25f2 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/feign/MoldDemandClient.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/feign/MoldDemandClient.java @@ -26,4 +26,9 @@ public class MoldDemandClient implements IMoldDemandClient { public Boolean save(MoldDemand moldDemand) { return moldDemandService.save(moldDemand); } + + @Override + public Boolean saveMoldDemand(String toolCode) { + return moldDemandService.saveMoldDemand(toolCode); + } } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/MoldDemandMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/MoldDemandMapper.java index 5c129235..81ecf932 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/MoldDemandMapper.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/MoldDemandMapper.java @@ -36,4 +36,6 @@ public interface MoldDemandMapper extends BaseMapper { MoldDemand getDetailById(String id); String getMaxMdCodeByDate(@Param("today")String today); + + List selectByToolCodee(@Param("toolCode") String toolCode); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/MoldDemandMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/MoldDemandMapper.xml index b5093a82..27ba653e 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/MoldDemandMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/MoldDemandMapper.xml @@ -191,5 +191,8 @@ + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IMoldDemandService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IMoldDemandService.java index 77d3acc8..390a4423 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IMoldDemandService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IMoldDemandService.java @@ -47,4 +47,11 @@ public interface IMoldDemandService extends BaseService { * @return */ Boolean closeBatch(List toLongList); + + /** + * 新增物料 + * @param toolCode + * @return + */ + boolean saveMoldDemand(String toolCode); } 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 99d45b06..33f6bf47 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 @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springblade.core.log.exception.ServiceException; import org.springblade.core.mp.base.BaseEntity; @@ -35,6 +36,7 @@ import java.util.stream.Collectors; * * @author BladeX */ +@Slf4j @RequiredArgsConstructor @Service public class MoldDemandServiceImpl extends BaseServiceImpl implements IMoldDemandService { @@ -165,4 +167,46 @@ public class MoldDemandServiceImpl extends BaseServiceImpl moldDemandList = baseMapper.selectByToolCodee(toolCode); + if (!CollectionUtils.isEmpty(moldDemandList)) { + return true; + } + + // 3. 生成需求单号(建议增加异常处理) + String code; + try { + code = orderService.generateMdCode(); + if (code == null || code.isEmpty()) { + throw new RuntimeException("生成模具需求单号失败"); + } + } catch (Exception e) { + log.error("生成模具需求单号异常, toolCode: {}", toolCode, e); + throw new RuntimeException("生成模具需求单号失败", e); + } + + // 4. 构建并保存实体 + MoldDemand moldDemand = new MoldDemand(); + moldDemand.setToolCode(toolCode); + moldDemand.setMdCode(code); + moldDemand.setMafStatus(MoldDemandEnum.MAF_STATUS_CREATE.getCode()); + moldDemand.setMafType(MoldDemandEnum.MAF_TYPE_STORE.getCode()); + + boolean saveResult = this.save(moldDemand); + if (!saveResult) { + log.error("保存模具需求失败, toolCode: {}, mdCode: {}", toolCode, code); + throw new RuntimeException("保存模具需求失败"); + } + + log.info("模具需求创建成功, toolCode: {}, mdCode: {}", toolCode, code); + return true; + } } 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 755d6072..f0e114b8 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 @@ -485,6 +485,7 @@ public class YieldOrderServiceImpl extends BaseServiceImpl