diff --git a/blade-ops/blade-job/src/main/java/org/springblade/job/processor/oem/OemOrderOutProcessor.java b/blade-ops/blade-job/src/main/java/org/springblade/job/processor/oem/OemOrderOutProcessor.java new file mode 100644 index 000000000..ace839ae4 --- /dev/null +++ b/blade-ops/blade-job/src/main/java/org/springblade/job/processor/oem/OemOrderOutProcessor.java @@ -0,0 +1,35 @@ +package org.springblade.job.processor.oem; + +import jakarta.annotation.Resource; +import lombok.extern.slf4j.Slf4j; +import org.springblade.desk.produce.feign.IWorkOrderRunOutClient; +import org.springframework.stereotype.Component; +import tech.powerjob.worker.core.processor.ProcessResult; +import tech.powerjob.worker.core.processor.TaskContext; +import tech.powerjob.worker.core.processor.sdk.BasicProcessor; + +/** + * 外协订单下达ERP定时任务 + * + * @author zangzhipeng + */ +@Component +@Slf4j +public class OemOrderOutProcessor implements BasicProcessor { + + @Resource + private IWorkOrderRunOutClient workOrderRunOutClient; + + @Override + public ProcessResult process(TaskContext context) throws Exception { + log.info("外协订单下达ERP定时任务开始"); + try { + workOrderRunOutClient.oemOrderOut(); + log.info("外协订单下达ERP定时任务执行完毕"); + return new ProcessResult(true); + } catch (Exception e) { + log.error("外协订单下达ERP定时任务执行失败", e); + return new ProcessResult(false, e.getMessage()); + } + } +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/feign/IWorkOrderRunOutClient.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/feign/IWorkOrderRunOutClient.java new file mode 100644 index 000000000..a49cbfd14 --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/feign/IWorkOrderRunOutClient.java @@ -0,0 +1,26 @@ +package org.springblade.desk.produce.feign; + +import org.springblade.core.launch.constant.AppConstant; +import org.springblade.core.tool.api.R; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; + +/** + * 外协订单下达ERP定时任务 Feign接口 + * + * @author zangzhipeng + */ +@FeignClient( + value = AppConstant.APPLICATION_DESK_NAME +) +public interface IWorkOrderRunOutClient { + + String API_PREFIX = "/feign/client/workOrderRunOut"; + String OEM_ORDER_OUT = API_PREFIX + "/oemOrderOut"; + + /** + * 外协订单下达ERP(定时任务调用) + */ + @GetMapping(OEM_ORDER_OUT) + R oemOrderOut(); +} diff --git a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpMesRbWoClient.java b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpMesRbWoClient.java index aec14320d..a6b57a6aa 100644 --- a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpMesRbWoClient.java +++ b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpMesRbWoClient.java @@ -8,6 +8,7 @@ import org.springblade.erpdata.pojo.dto.view.MesRbWo; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestParam; import java.util.List; @@ -35,6 +36,7 @@ public interface IErpMesRbWoClient { String SYN_OUTSOURCING = API_PREFIX + "/synOutsourcing"; String SYN_CRAFT = API_PREFIX + "/synCraft"; String SYN_SUPPORTING_FACILITIES = API_PREFIX + "/synSupportingFacilities"; + String GET_DEMAND_DATE = API_PREFIX + "/getDemandDateByWono"; /** * 查询烧结配套信息 @@ -73,4 +75,13 @@ public interface IErpMesRbWoClient { R synCraft(); @GetMapping(SYN_SUPPORTING_FACILITIES) R synSupportingFacilities(); + + /** + * 根据工作订单号查询ERP需求日期 + * + * @param wono 工作订单号 + * @return 需求日期字符串 + */ + @GetMapping(GET_DEMAND_DATE) + R getDemandDateByWono(@RequestParam(required = true) String wono); } diff --git a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpMesRbWoClientFallback.java b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpMesRbWoClientFallback.java index 14907451f..d1f19c425 100644 --- a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpMesRbWoClientFallback.java +++ b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpMesRbWoClientFallback.java @@ -75,4 +75,9 @@ public class IErpMesRbWoClientFallback implements IErpMesRbWoClient { public R synSupportingFacilities() { return R.fail("获取数据失败"); } + + @Override + public R getDemandDateByWono(String wono) { + return R.fail("获取数据失败"); + } } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/feign/WorkOrderRunOutClient.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/feign/WorkOrderRunOutClient.java new file mode 100644 index 000000000..6f53f7580 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/feign/WorkOrderRunOutClient.java @@ -0,0 +1,27 @@ +package org.springblade.desk.produce.feign; + +import io.swagger.v3.oas.annotations.Hidden; +import lombok.RequiredArgsConstructor; +import org.springblade.core.tenant.annotation.NonDS; +import org.springblade.core.tool.api.R; +import org.springblade.desk.produce.service.IWorkOrderRunService; +import org.springframework.web.bind.annotation.RestController; + +/** + * 外协订单下达ERP Feign实现 + * + * @author zangzhipeng + */ +@NonDS +@Hidden +@RestController +@RequiredArgsConstructor +public class WorkOrderRunOutClient implements IWorkOrderRunOutClient { + + private final IWorkOrderRunService workOrderRunService; + + @Override + public R oemOrderOut() { + return workOrderRunService.oemOrderOut(); + } +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderRunServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderRunServiceImpl.java index 8d8ac0ce3..15469357f 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderRunServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderRunServiceImpl.java @@ -43,6 +43,7 @@ import org.springblade.desk.produce.service.IPlateAroundService; import org.springblade.desk.produce.service.IWorkOrderRunService; import org.springblade.desk.produce.service.IWorkOrderService; import org.springblade.erpdata.feign.IErpDataOemClient; +import org.springblade.erpdata.feign.IErpMesRbWoClient; import org.springblade.system.cache.DictCache; import org.springblade.system.cache.UserCache; import org.springblade.system.pojo.entity.User; @@ -102,6 +103,8 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl result = erpMesRbWoClient.getDemandDateByWono(ypCode); + if (result.isSuccess() && StringUtils.isNotBlank(result.getData())) { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + return sdf.parse(result.getData()); + } + } catch (Exception e) { + log.warn("从ERP查询需求日期失败,ypCode={},使用默认值"); + } + // 默认当前日期+10天 + Calendar cal = Calendar.getInstance(); + cal.add(Calendar.DAY_OF_MONTH, 10); + return cal.getTime(); + } + @Transactional(rollbackFor = Exception.class) @Override public R changeOemManufacturer(Long worId, Long ocId) { diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpMesRbWoClient.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpMesRbWoClient.java index 87f1d51bd..f482859a9 100644 --- a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpMesRbWoClient.java +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpMesRbWoClient.java @@ -107,4 +107,9 @@ public class ErpMesRbWoClient implements IErpMesRbWoClient { log.info("同步配套订单定时任务结束"); return R.success(); } + + @Override + public R getDemandDateByWono(String wono) { + return R.data(erpMesRbWoService.getDemandDateByWono(wono)); + } } diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbWoMapper.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbWoMapper.java index 5f99b5750..7fb1d87f4 100644 --- a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbWoMapper.java +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbWoMapper.java @@ -20,4 +20,12 @@ public interface ErpMesRbWoMapper extends Mapper { List getYieldPlanErpList(String newlevdateMax); String getNewlevdateMax(String selectTime); + + /** + * 根据工作订单号查询需求日期 + * + * @param wono 工作订单号 + * @return 需求日期字符串 + */ + String getDemandDateByWono(String wono); } diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbWoMapper.xml b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbWoMapper.xml index 2640b1b7d..6e667dcd2 100644 --- a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbWoMapper.xml +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbWoMapper.xml @@ -43,4 +43,8 @@ a.wopordat >= TO_DATE(#{selectTime}, 'YYYY-MM-DD HH24:MI:SS') + + diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpMesRbWoService.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpMesRbWoService.java index 7b153acd6..3d084f33d 100644 --- a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpMesRbWoService.java +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpMesRbWoService.java @@ -56,4 +56,12 @@ public interface IErpMesRbWoService { * 同步配套数据 */ void synSupportingFacilities(); + + /** + * 根据工作订单号查询ERP需求日期 + * + * @param wono 工作订单号 + * @return 需求日期字符串,查不到返回null + */ + String getDemandDateByWono(String wono); } diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpMesRbWoServiceImpl.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpMesRbWoServiceImpl.java index 3cc06cf97..ddac3f5f6 100644 --- a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpMesRbWoServiceImpl.java +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpMesRbWoServiceImpl.java @@ -817,6 +817,11 @@ public class ErpMesRbWoServiceImpl implements IErpMesRbWoService { // apsOrderClient.saveOrderList(yieldOrderList); } + @Override + public String getDemandDateByWono(String wono) { + return mesRbWoMapper.getDemandDateByWono(wono); + } + private YieldOrder updateYieldType(YieldOrder yieldOrder,String pritno,String firseq){ //从零件表中查询零件信息 DsPartEntity part=apsOrderClient.getDsCraftListByCode(pritno);