diff --git a/blade-ops/blade-job/src/main/java/org/springblade/job/processor/erp/SynCloseProdPlanProcessor.java b/blade-ops/blade-job/src/main/java/org/springblade/job/processor/erp/SynCloseProdPlanProcessor.java index 6da6ad07..f60c3327 100644 --- a/blade-ops/blade-job/src/main/java/org/springblade/job/processor/erp/SynCloseProdPlanProcessor.java +++ b/blade-ops/blade-job/src/main/java/org/springblade/job/processor/erp/SynCloseProdPlanProcessor.java @@ -2,6 +2,7 @@ package org.springblade.job.processor.erp; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springblade.desk.order.feign.IApsOrderClient; import org.springblade.erpdata.feign.IErpMesRbWoClient; import tech.powerjob.worker.core.processor.ProcessResult; import tech.powerjob.worker.core.processor.TaskContext; @@ -15,6 +16,8 @@ public class SynCloseProdPlanProcessor implements BasicProcessor { private final IErpMesRbWoClient mesRbWoClient; + //private final IApsOrderClient orderClient; + @Override diff --git a/blade-ops/blade-job/src/main/java/org/springblade/job/processor/erp/SynPurchaseProcessor.java b/blade-ops/blade-job/src/main/java/org/springblade/job/processor/erp/SynPurchaseProcessor.java new file mode 100644 index 00000000..a9707cbf --- /dev/null +++ b/blade-ops/blade-job/src/main/java/org/springblade/job/processor/erp/SynPurchaseProcessor.java @@ -0,0 +1,27 @@ +package org.springblade.job.processor.erp; + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springblade.erpdata.feign.IErpMesRbWoClient; +import tech.powerjob.worker.core.processor.ProcessResult; +import tech.powerjob.worker.core.processor.TaskContext; +import tech.powerjob.worker.core.processor.sdk.BasicProcessor; + +import java.util.concurrent.CompletableFuture; + +@RequiredArgsConstructor +@Slf4j +public class SynPurchaseProcessor implements BasicProcessor { + + private final IErpMesRbWoClient mesRbWoClient; + + + + @Override + public ProcessResult process(TaskContext taskContext) throws Exception { + log.info("同步采购订单定时任务开始"); + CompletableFuture runFuture = CompletableFuture.runAsync(()-> mesRbWoClient.synPurchase()); + log.info("同步采购订单定时任务结束"); + return new ProcessResult(true); + } +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/feign/IApsOrderClient.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/feign/IApsOrderClient.java index 29e48f65..9395e3f0 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/feign/IApsOrderClient.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/feign/IApsOrderClient.java @@ -31,6 +31,7 @@ public interface IApsOrderClient { String CLOSE_PLAN_LIST = API_PREFIX + "/getClosePlanList"; String MAX_CARD_NO = API_PREFIX + "/getMaxCardNo"; String SYN_GLASS_CAKE = API_PREFIX + "/synGlassCake"; + String CLOSE_PROD_PLAN = API_PREFIX + "/synCloseProdPlan"; @PostMapping(SYNC_PLAN_FROM_SAVE) void saveList(List yieldOrderList); @@ -48,4 +49,6 @@ public interface IApsOrderClient { String getMaxCardNo(); @GetMapping(SYN_GLASS_CAKE) void synGlassCake(); + @GetMapping(CLOSE_PROD_PLAN) + void synCloseProdPlan(); } diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/vo/LineMemoVo.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/vo/LineMemoVo.java new file mode 100644 index 00000000..381fef94 --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/vo/LineMemoVo.java @@ -0,0 +1,14 @@ +package org.springblade.desk.order.pojo.vo; + + +import lombok.Data; + +@Data +public class LineMemoVo { + + private Long sum; + + private String prodLine; + + private String memo; +} 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 bb418a62..3b62e80d 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 @@ -3,8 +3,10 @@ package org.springblade.erpdata.feign; import org.springblade.core.launch.constant.AppConstant; import org.springblade.core.tool.api.R; +import org.springblade.erpdata.pojo.dto.table.Wo; 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 java.util.List; @@ -22,6 +24,7 @@ public interface IErpMesRbWoClient { String API_PREFIX = "/feign/erpdata/mesrbwo"; String GET_LIST = API_PREFIX + "/getList"; + String GET_WO = API_PREFIX + "/getWoOne"; /** * 查询烧结配套信息 @@ -42,4 +45,8 @@ public interface IErpMesRbWoClient { R synGlassCake(); RsynCloseProdPlan(); + @GetMapping(GET_WO) + R getWoOne(String ypCode); + + R synPurchase(); } 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 e89b43a5..fafe2f6a 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 @@ -1,6 +1,7 @@ package org.springblade.erpdata.feign; import org.springblade.core.tool.api.R; +import org.springblade.erpdata.pojo.dto.table.Wo; import org.springblade.erpdata.pojo.dto.view.MesRbWo; import org.springframework.stereotype.Component; @@ -34,4 +35,14 @@ public class IErpMesRbWoClientFallback implements IErpMesRbWoClient { public R synCloseProdPlan() { return R.fail("获取数据失败"); } + + @Override + public R getWoOne(String ypCode) { + return R.fail("获取数据失败"); + } + + @Override + public R synPurchase() { + return R.fail("获取数据失败"); + } } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/feign/ApsOrderClient.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/feign/ApsOrderClient.java index 31347046..fe5b7260 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/feign/ApsOrderClient.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/feign/ApsOrderClient.java @@ -11,7 +11,6 @@ import org.springblade.desk.dashboard.service.IDsPartService; import org.springblade.desk.order.pojo.entity.YieldPlan; import org.springblade.desk.order.service.IYieldOrderService; import org.springblade.desk.order.service.IYieldPlanService; -import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RestController; @@ -36,6 +35,7 @@ public class ApsOrderClient implements IApsOrderClient { private final IDsPartService dsPartService; + //private final IErpMesRbWoClient mesRbWoClient; @Override @PostMapping(SYNC_PLAN_FROM_SAVE) public void saveList(List yieldPlanList) { @@ -83,4 +83,23 @@ public class ApsOrderClient implements IApsOrderClient { public void synGlassCake() { yieldPlanService.synGlassCake(); } + + @Override + public void synCloseProdPlan() { +// List yieldPlanList=yieldPlanService.list(new QueryWrapper().lambda() +// .lt(YieldPlan::getStatus, "10015") +// .orderByAsc(YieldPlan::getCheckCloseTime) +// .last("limit 1000")); +// yieldPlanList.forEach(yieldPlan -> { +// Wo wo=mesRbWoClient.getWoOne(yieldPlan.getYpCode()).getData(); +// if(wo!=null){ +// yieldPlan.setCheckCloseTime(new Date()); +// yieldPlanService.updateById(yieldPlan); +// }else { +// yieldPlan.setStatus(YieldPlanEnum.STATUS_COMPLETED.getCode()); +// yieldPlan.setCheckCloseTime(new Date()); +// yieldPlanService.updateById(yieldPlan); +// } +// }); + } } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/YieldPlanMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/YieldPlanMapper.java index 94483ea1..602b1534 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/YieldPlanMapper.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/YieldPlanMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.desk.order.pojo.entity.YieldPlan; import org.springblade.desk.order.pojo.enums.YieldPlanEnum; +import org.springblade.desk.order.pojo.vo.LineMemoVo; import java.util.List; @@ -25,5 +26,29 @@ public interface YieldPlanMapper extends BaseMapper { */ List selectPage(IPage page, YieldPlan entity, List planTypeList); - + /** + * 获取最大优先级 + * @param ypCode + * @return + */ + Long getMaxPriority(String ypCode); + /** + * 获取数量 + * @param ypCode + * @param partCode + * @param bathNo + * @return + */ + Long getCount(String ypCode, String partCode, String bathNo); + /** + * 获取接收人 + * @return + */ + Long getReceiveUser(); + /** + * 获取线体备注 + * @param ypCode + * @return + */ + LineMemoVo getLineMemo(String ypCode); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/YieldPlanMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/YieldPlanMapper.xml index 4dcc67f9..fd351f5e 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/YieldPlanMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/YieldPlanMapper.xml @@ -27,4 +27,50 @@ AND status = #{entity.status} + + + + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IYieldOrderService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IYieldOrderService.java index 4991f50a..9e4395ef 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IYieldOrderService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IYieldOrderService.java @@ -196,4 +196,5 @@ public interface IYieldOrderService extends BaseService { String getMaxCardNo(); + } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldPlanServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldPlanServiceImpl.java index db3f6f08..891e3427 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldPlanServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldPlanServiceImpl.java @@ -7,13 +7,16 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; import org.apache.commons.lang3.StringUtils; +import org.springblade.core.log.exception.ServiceException; import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.tool.utils.ObjectUtil; import org.springblade.desk.dashboard.pojo.entity.DsPartEntity; import org.springblade.desk.dashboard.service.IDsPartService; import org.springblade.desk.order.mapper.YieldPlanMapper; +import org.springblade.desk.order.pojo.entity.YieldOrder; import org.springblade.desk.order.pojo.entity.YieldPlan; import org.springblade.desk.order.pojo.enums.YieldPlanEnum; +import org.springblade.desk.order.pojo.vo.LineMemoVo; import org.springblade.desk.order.service.IYieldOrderService; import org.springblade.desk.order.service.IYieldPlanService; import org.springframework.stereotype.Service; @@ -146,6 +149,58 @@ public class YieldPlanServiceImpl extends BaseServiceImpl yieldOrderList=yieldOrderService.list(new QueryWrapper() + .lambda().eq(YieldOrder::getYpCode, yieldPlan.getYpCode()) + .eq(YieldOrder::getCardNo, cardNo) + .eq(YieldOrder::getBatchNo, bathNo) + .eq(YieldOrder::getRoamNo, yieldPlan.getRoamNo())); + if(yieldOrderList.size()>0){ + new ServiceException("'零件号【' "+dsPart.getPartCode()+" '】,批号【'\n" + + " "+bathNo+" '】工单已转交,请勿重复转交!!'"); + } + DsPartEntity zPartEntity = dsPartService.getOne(new QueryWrapper().lambda() + .eq(DsPartEntity::getPartCode, yieldPlan.getPartCode()).last("limit 1")); + if(zPartEntity.getArea()==null){ + yieldPlan.setYpArea(0.0); + } + Long vPriority=baseMapper.getMaxPriority(yieldPlan.getYpCode()); + //7. 厂内生产急件标识赋值 + Long vCount=baseMapper.getCount(yieldPlan.getYpCode(),yieldPlan.getPartCode(),bathNo); + YieldOrder yieldOrder=new YieldOrder(); + vPriority=vPriority+14000; + yieldOrder.setPriorityErp(Integer.parseInt(vPriority.toString())); + if(vCount>0){ + yieldOrder.setSiteWork(true); + yieldOrder.setPriorityErp(5); + } + if("2".equals(yieldOrder.getYieldType())||"3".equals(yieldOrder.getYieldType())){ + yieldOrder.setSiteWork( true); + yieldOrder.setReceiveStatus(11000); + } + if("3".equals(yieldOrder.getYieldType())){ + yieldOrder.setStatus(11001); + } + //对接受人赋值 + Long receiveUser=baseMapper.getReceiveUser(); + yieldOrder.setReceiveUser(receiveUser); + //对接收时间进行赋值 + yieldOrder.setReceiveTime(new Date()); + + LineMemoVo lineMemoVo = baseMapper.getLineMemo(yieldPlan.getYpCode()); + if(lineMemoVo!=null&&lineMemoVo.getSum()==0){ + yieldOrder.setMemo(""); + yieldOrder.setYpProductLine(""); + }else { + yieldOrder.setMemo(lineMemoVo.getMemo()); + yieldOrder.setYpProductLine(lineMemoVo.getProdLine()); + } + //保存订单 + yieldOrderService.saveOrUpdate(yieldOrder); + + } // dsPartList.forEach(dsPart -> { // List stockList=stRealtimeStockService.getGoodsByPartCode(dsPart.getPartCode()); // StGoodStatisVO statisVO=stRealtimeStockService.getGoodsByCode(dsPart.getPartCode()); 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 09b02823..8ff65232 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 @@ -4,6 +4,7 @@ import io.swagger.v3.oas.annotations.Hidden; import lombok.AllArgsConstructor; import org.springblade.core.tenant.annotation.NonDS; import org.springblade.core.tool.api.R; +import org.springblade.erpdata.pojo.dto.table.Wo; import org.springblade.erpdata.pojo.dto.view.MesRbWo; import org.springblade.erpdata.service.IErpMesRbWoService; import org.springframework.web.bind.annotation.RestController; @@ -47,4 +48,15 @@ public class ErpMesRbWoClient implements IErpMesRbWoClient { erpMesRbWoService.synCloseProdPlan(); return R.success(); } + + @Override + public R getWoOne(String ypCode) { + return erpMesRbWoService.getWoOne(ypCode); + } + + @Override + public R synPurchase() { + erpMesRbWoService.synPurchase(); + return R.success(); + } } diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpPrtbasdefMapper.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpPrtbasdefMapper.java new file mode 100644 index 00000000..4839eb14 --- /dev/null +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpPrtbasdefMapper.java @@ -0,0 +1,14 @@ +package org.springblade.erpdata.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.erpdata.pojo.dto.table.Prtbasdef; + +/** + * Mapper 接口 + * + * @author lqk + */ +public interface ErpPrtbasdefMapper extends BaseMapper { + + +} diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpPrtbasdefMapper.xml b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpPrtbasdefMapper.xml new file mode 100644 index 00000000..d7ca6b16 --- /dev/null +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpPrtbasdefMapper.xml @@ -0,0 +1,5 @@ + + + + + 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 c57565b2..97ea5e46 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 @@ -1,5 +1,7 @@ package org.springblade.erpdata.service; +import org.springblade.core.tool.api.R; +import org.springblade.erpdata.pojo.dto.table.Wo; import org.springblade.erpdata.pojo.dto.view.MesRbWo; import java.util.List; @@ -26,4 +28,8 @@ public interface IErpMesRbWoService { void synGlassCake(); void synCloseProdPlan(); + + R getWoOne(String ypCode); + + void synPurchase(); } diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpPrtbasdefService.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpPrtbasdefService.java new file mode 100644 index 00000000..9193e65d --- /dev/null +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpPrtbasdefService.java @@ -0,0 +1,12 @@ +package org.springblade.erpdata.service; + +import org.springblade.core.mp.base.BaseService; +import org.springblade.erpdata.pojo.dto.table.Prtbasdef; + +/** + * ERP数据查询service + * + * @author lqk + */ +public interface IErpPrtbasdefService extends BaseService { +} 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 e7a28819..79227e92 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 @@ -3,7 +3,7 @@ package org.springblade.erpdata.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; +import org.springblade.core.tool.api.R; import org.springblade.desk.dashboard.pojo.entity.DsCraftEntity; import org.springblade.desk.dashboard.pojo.entity.DsPartEntity; import org.springblade.desk.order.feign.IApsOrderClient; @@ -18,11 +18,9 @@ import org.springblade.erpdata.service.IErpRrbwoerptomesService; import org.springblade.erpdata.service.IErpWoService; import org.springframework.stereotype.Service; -import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; -import java.util.logging.SimpleFormatter; /** * @author lqk @@ -165,4 +163,17 @@ public class ErpMesRbWoServiceImpl implements IErpMesRbWoService { } }); } + + @Override + public R getWoOne(String ypCode) { + + Wo wo=woService.getOne(new QueryWrapper() + .eq("WONO",ypCode)); + return R.data(wo); + } + + @Override + public void synPurchase() { + + } } diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpPrtbasdefServiceImpl.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpPrtbasdefServiceImpl.java new file mode 100644 index 00000000..69272c74 --- /dev/null +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpPrtbasdefServiceImpl.java @@ -0,0 +1,20 @@ +package org.springblade.erpdata.service.impl; + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.erpdata.mapper.ErpPrtbasdefMapper; +import org.springblade.erpdata.pojo.dto.table.Prtbasdef; +import org.springblade.erpdata.service.IErpPrtbasdefService; +import org.springframework.stereotype.Service; + +/** + * @author lqk + * @date 2025-11-26 9:39 + */ +@Slf4j +@RequiredArgsConstructor +@Service +public class ErpPrtbasdefServiceImpl extends BaseServiceImpl implements IErpPrtbasdefService { + +}