|
@@ -2,6 +2,7 @@ package com.github.zuihou.business.operationManagementCenter.service.impl;
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.github.zuihou.base.service.SuperServiceImpl;
|
|
|
import com.github.zuihou.business.DemoLine.DemoCacheKey;
|
|
@@ -336,6 +337,7 @@ public class OrderServiceImpl extends SuperServiceImpl<OrderMapper, Order> imple
|
|
|
String taskBatchNo = map.get("taskBatchNo")==null?"":map.get("taskBatchNo").toString();
|
|
|
isFalse(StringUtils.isEmpty(taskBatchNo),"排产批次号不能为空");
|
|
|
|
|
|
+ // TOTO add by yejian by read code 判断是否已经点击过一键生产逻辑修改
|
|
|
Object obj = redisTemplate.opsForValue().get(RepeatCacheKey.CONFIRMSCHEDULE_UNION_KEY+"_"+taskBatchNo);
|
|
|
if(obj==null){
|
|
|
redisTemplate.opsForValue().set(RepeatCacheKey.CONFIRMSCHEDULE_UNION_KEY+"_"+taskBatchNo,"1",60,TimeUnit.SECONDS);
|
|
@@ -417,7 +419,47 @@ public class OrderServiceImpl extends SuperServiceImpl<OrderMapper, Order> imple
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
public Order orderSuspend(Order model){
|
|
|
+ // 暂停订单,根据订单id找到相应的task,tasknode相应的信息,删除相应未执行的工序结点
|
|
|
+ // TODO 等代码稳定后增加资源锁,防止一边在加工,一边在暂停订单造成数据的不一致
|
|
|
+ QueryWrapper<TWorkpiece> queryTWorkpieceWrapper = new QueryWrapper<TWorkpiece>();
|
|
|
+ queryTWorkpieceWrapper.eq("orderId", model.getId());
|
|
|
+ queryTWorkpieceWrapper.in("produceStatus",new ArrayList<String>(Arrays.asList("1", "2")));
|
|
|
+ List<TWorkpiece> tWorkpieces = workpieceMapper.selectList(queryTWorkpieceWrapper);
|
|
|
+ // 依次根据工件id删除相应的数据
|
|
|
+ for(TWorkpiece tWorkpiece : tWorkpieces){
|
|
|
+ if("1".equals(tWorkpiece.getProduceStatus())){
|
|
|
+ // 未开始加工,全量删除,先删除结点表,在删除task表
|
|
|
+ // 删除tasknode表中除下料的未执行结点
|
|
|
+ Map param = new HashMap();
|
|
|
+ param.put("completeBatchNo", tWorkpiece.getCompleteBatchNo());
|
|
|
+ taskNodeService.deleteByWorkpieceId(param);
|
|
|
+
|
|
|
+ QueryWrapper<TTask> tTaskWrapper = new QueryWrapper<TTask>();
|
|
|
+ tTaskWrapper.eq("completeBatchNo", tWorkpiece.getCompleteBatchNo());
|
|
|
+ taskMapper.delete(tTaskWrapper);
|
|
|
+
|
|
|
+ }else if("2".equals(tWorkpiece.getProduceStatus())){
|
|
|
+ // 已开始加工,只删除未开始的工序
|
|
|
+ // 找到当前在工工序的最后的一个结点序号
|
|
|
+ Map param = new HashMap();
|
|
|
+ param.put("completeBatchNo", tWorkpiece.getCompleteBatchNo());
|
|
|
+ int completeBatchSort = taskNodeService.selectCurrentProduceSort(param);
|
|
|
+
|
|
|
+ param.clear();
|
|
|
+ param.put("completeBatchNo", param.get("completeBatchNo"));
|
|
|
+ param.put("completeBatchSort", completeBatchSort);
|
|
|
+ taskNodeService.deleteByWorkpieceSort(param);
|
|
|
+
|
|
|
+ // 删除task表的数据
|
|
|
+ QueryWrapper<TTask> tTaskWrapper = new QueryWrapper<TTask>();
|
|
|
+ tTaskWrapper.eq("completeBatchNo", tWorkpiece.getCompleteBatchNo());
|
|
|
+ tTaskWrapper.eq("status","1");
|
|
|
+ taskMapper.delete(tTaskWrapper);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
return model;
|
|
|
}
|
|
@@ -465,6 +507,7 @@ public class OrderServiceImpl extends SuperServiceImpl<OrderMapper, Order> imple
|
|
|
if(taskList==null||taskList.size()==0)
|
|
|
return;
|
|
|
//把任务按工件分组,只取出(过滤)加工序,
|
|
|
+ // TOTO add by yejian by read code 加工序判断需要调整
|
|
|
Map<String,List<TTask>>taskMap = taskList.stream().filter((item) -> item.getProcedureNo().equals(DemoLineConstant.DEMOLINE_WORK_OP)).collect(groupingBy(TTask::getCompleteBatchNo));
|
|
|
//获取资源和产线的关系
|
|
|
List<Map> list = productionresourceviewMapper.getResourceZone();
|