添加分派异常订单定时自动分派

liweidong
李涛 17 hours ago
parent a530b9e774
commit 39958698d2
  1. 30
      blade-ops/blade-job/src/main/java/org/springblade/job/processor/produce/YieldOrderAutoDispatchProcessor.java
  2. 11
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/feign/IApsProduceClient.java
  3. 7
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IYieldOrderService.java
  4. 9
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java
  5. 16
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/feign/ApsProduceClient.java

@ -0,0 +1,30 @@
package org.springblade.job.processor.produce;
import jakarta.annotation.Resource;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springblade.desk.produce.feign.IApsProduceClient;
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;
/**
* 异常订单自动分派
*
* @author litao
*/
@Component
@Data
@Slf4j
public class YieldOrderAutoDispatchProcessor implements BasicProcessor {
@Resource
private IApsProduceClient client;
@Override
public ProcessResult process(TaskContext context) throws Exception {
log.info("异常订单自动分派开始");
return new ProcessResult(client.yieldOrderAutoDispatch());
}
}

@ -18,8 +18,7 @@ public interface IApsProduceClient {
String SYNC_ORDER_FROM_OLD_MES = API_PREFIX + "/syncOrderFromOldMes"; String SYNC_ORDER_FROM_OLD_MES = API_PREFIX + "/syncOrderFromOldMes";
String CONFIRM_ORDER = API_PREFIX + "/confirmOrder"; String CONFIRM_ORDER = API_PREFIX + "/confirmOrder";
String YIELD_ORDER_AUTO_DISPATCH = API_PREFIX + "/yieldOrderAutoDispatch";
/** /**
* 从旧mes平台同步生产订单 * 从旧mes平台同步生产订单
* *
@ -35,4 +34,12 @@ public interface IApsProduceClient {
*/ */
@GetMapping(CONFIRM_ORDER) @GetMapping(CONFIRM_ORDER)
boolean confirmOrder(); boolean confirmOrder();
/**
* 异常订单自动分派
*
* @return
*/
@GetMapping(YIELD_ORDER_AUTO_DISPATCH)
boolean yieldOrderAutoDispatch();
} }

@ -340,4 +340,11 @@ public interface IYieldOrderService extends BaseService<YieldOrder> {
YieldOrder getByCardNo(String cardNo); YieldOrder getByCardNo(String cardNo);
List<SjCompleteVO> getSubCompleteData(YieldOrder yieldOrder); List<SjCompleteVO> getSubCompleteData(YieldOrder yieldOrder);
/**
* 生产订单自动分派
* @param yieldOrder
* @return
*/
List<YieldOrderCraft> yieldOrderAutoDispatch(YieldOrder yieldOrder);
} }

@ -1000,6 +1000,8 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
if (yieldOrder.getYieldType() != YieldOrderEnum.YIELD_TYPE_2.getCode()) { if (yieldOrder.getYieldType() != YieldOrderEnum.YIELD_TYPE_2.getCode()) {
yieldOrder.setStatus(YieldOrderEnum.STATUS_APS.getCode()); yieldOrder.setStatus(YieldOrderEnum.STATUS_APS.getCode());
} }
yieldOrder.setValidationResult(YieldOrderEnum.VALIDATION_RESULT_PASS.getCode());
yieldOrder.setValidationMomo("");
this.updateById(yieldOrder); this.updateById(yieldOrder);
return Boolean.TRUE; return Boolean.TRUE;
} }
@ -1635,10 +1637,15 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
throw new ServiceException("订单接收成功,校验异常请及时处理"); throw new ServiceException("订单接收成功,校验异常请及时处理");
} }
return this.yieldOrderAutoDispatch(yieldOrder);
}
@Override
public List<YieldOrderCraft> yieldOrderAutoDispatch(YieldOrder yieldOrder) {
boolean result = this.verifyYieldOrderResource(yieldOrder); boolean result = this.verifyYieldOrderResource(yieldOrder);
if (result) { if (result) {
List<YieldOrderCraft> list = yieldOrderCraftService.list(Wrappers.<YieldOrderCraft>lambdaQuery().eq(YieldOrderCraft::getYoId, yieldOrder.getId()).orderByAsc(YieldOrderCraft::getProcessNo)); List<YieldOrderCraft> list = yieldOrderCraftService.list(Wrappers.<YieldOrderCraft>lambdaQuery().eq(YieldOrderCraft::getYoId, yieldOrder.getId()).orderByAsc(YieldOrderCraft::getProcessNo));
list.stream().forEach(craft -> { list.forEach(craft -> {
if (craft.getWorkCenterId() != null) { if (craft.getWorkCenterId() != null) {
WorkCenter workCenter = workCenterService.getById(craft.getWorkCenterId()); WorkCenter workCenter = workCenterService.getById(craft.getWorkCenterId());
craft.setWorkCenterName(workCenter.getWcName()); craft.setWorkCenterName(workCenter.getWcName());

@ -13,6 +13,7 @@ import org.springframework.web.bind.annotation.RestController;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.ZoneId; import java.time.ZoneId;
import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@ -61,4 +62,19 @@ public class ApsProduceClient implements IApsProduceClient {
return true; return true;
} }
@Override
public boolean yieldOrderAutoDispatch() {
List<YieldOrder> orders = yieldOrderService.list(Wrappers.<YieldOrder>lambdaQuery().eq(YieldOrder::getValidationResult, YieldOrderEnum.VALIDATION_RESULT_LESS_RESOURCE.getCode()));
log.info("异常订单待自动分派数量:{}", orders.size());
for (YieldOrder yieldOrder : orders) {
try {
yieldOrderService.yieldOrderAutoDispatch(yieldOrder);
} catch (Exception e) {
log.error("异常订单自动分派失败,流程卡号{},错误信息为{}", yieldOrder.getCardNo(), e.getMessage());
}
}
log.info("异常订单自动分派结束");
return true;
}
} }

Loading…
Cancel
Save