|
@@ -5,6 +5,7 @@ import cn.hutool.core.date.DateUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.rongwei.bscommon.sys.dao.*;
|
|
|
import com.rongwei.bscommon.sys.service.*;
|
|
@@ -22,6 +23,8 @@ import com.rongwei.rwcommonentity.commonservers.domain.SysMindMappingDo;
|
|
|
import com.rongwei.safecommon.fegin.CXCommonFeginClient;
|
|
|
import com.rongwei.safecommon.utils.CXCommonUtils;
|
|
|
import com.rongwei.safecommon.utils.SaveConstans;
|
|
|
+import com.rongwei.wfentity.sys.RunTaskDo;
|
|
|
+import com.rongwei.wfserver.wfcommon.sys.service.RunTaskService;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
@@ -106,6 +109,8 @@ public class ApsProductionOrderServiceImpl extends ServiceImpl<ApsProductionOrde
|
|
|
private NewSysMindMappingDao newSysMindMappingDao;
|
|
|
@Autowired
|
|
|
private ApsProcessOperationProcessEquService apsProcessOperationProcessEquService;
|
|
|
+ @Autowired
|
|
|
+ private RunTaskService runTaskService;
|
|
|
|
|
|
|
|
|
public static final String ERROR_MSG = "%s上诉订单的排程交货期大于承诺交货期";
|
|
@@ -800,6 +805,52 @@ public class ApsProductionOrderServiceImpl extends ServiceImpl<ApsProductionOrde
|
|
|
return R.ok();
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ @Transactional
|
|
|
+ public R closeOrder() {
|
|
|
+ //查询所有 订单评审状态=已发布计划,生产状态=已完工 的订单
|
|
|
+ List<ApsProductionOrderDo> productionOrderDoList = this.list(new QueryWrapper<ApsProductionOrderDo>().lambda()
|
|
|
+ .eq(ApsProductionOrderDo::getAuditstatus, "已发布计划")
|
|
|
+ .eq(ApsProductionOrderDo::getProductionstatus, "50"));
|
|
|
+ if (ObjectUtil.isEmpty(productionOrderDoList)) {
|
|
|
+ return R.ok();
|
|
|
+ }
|
|
|
+
|
|
|
+ //需要更新的流程实例ID集合
|
|
|
+ List<String> processInstIdList = productionOrderDoList.stream().map(ApsProductionOrderDo::getProcessinstid).collect(Collectors.toList());
|
|
|
+
|
|
|
+ if (ObjectUtil.isEmpty(processInstIdList)) {
|
|
|
+ return R.ok();
|
|
|
+ }
|
|
|
+
|
|
|
+ List<RunTaskDo> needUpdateList = new LinkedList<>();
|
|
|
+ //更新所有 流程节点(wf_run_task)的审批状态为30,结束流程,形成闭环
|
|
|
+ for (String processInstId : processInstIdList) {
|
|
|
+ //获取最新的一个节点
|
|
|
+ RunTaskDo one = runTaskService.getOne(new QueryWrapper<RunTaskDo>().lambda()
|
|
|
+ .eq(RunTaskDo::getProcessinstid, processInstId)
|
|
|
+ .eq(RunTaskDo::getTaskname, "生产计划员5")
|
|
|
+ .in(RunTaskDo::getTaskstatus, Arrays.asList("10", "20"))
|
|
|
+ .orderByDesc(RunTaskDo::getModifydate).last("limit 1"));
|
|
|
+
|
|
|
+ RunTaskDo needUpdate = new RunTaskDo();
|
|
|
+ needUpdate.setId(one.getId());
|
|
|
+ needUpdate.setAssignee("8672bf72ab274bec83052868ae336b38");//系统管理员
|
|
|
+ needUpdate.setTaskstatus("30");
|
|
|
+ needUpdateList.add(needUpdate);
|
|
|
+ }
|
|
|
+
|
|
|
+ runTaskService.updateBatchById(needUpdateList);
|
|
|
+
|
|
|
+ //更新所有订单的审批状态为 已完工关闭
|
|
|
+ List<String> orderIdList = productionOrderDoList.stream().map(ApsProductionOrderDo::getId).collect(Collectors.toList());
|
|
|
+ this.update(new UpdateWrapper<ApsProductionOrderDo>().lambda()
|
|
|
+ .set(ApsProductionOrderDo::getAuditstatus, "已完工关闭")
|
|
|
+ .in(ApsProductionOrderDo::getId, orderIdList));
|
|
|
+
|
|
|
+ return R.ok();
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
|