Jelajahi Sumber

Merge remote-tracking branch 'origin/master' into master

yejian 3 tahun lalu
induk
melakukan
803c3daafd

+ 6 - 2
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/productionReadyCenter/service/impl/BomProcedureVersionServiceImpl.java

@@ -612,8 +612,8 @@ public class BomProcedureVersionServiceImpl extends SuperServiceImpl<BomProcedur
         }else if("2".equals(bean.getTrayConf())){
             // 来自上一工序
             // 查找上一个工序的托盘夹具
-            BomProcedure currBomProcedure = bomProcedureMapper.selectOne(Wraps.<BomProcedure>lbQ().eq(BomProcedure::getId,bean.getId()));
-            BomProcedure preBomProcedure = bomProcedureMapper.selectOne(Wraps.<BomProcedure>lbQ().eq(BomProcedure::getBomId,bean.getBomId()).gt(BomProcedure::getSort,currBomProcedure.getSort()).orderByAsc(BomProcedure::getSort).last("limit 1"));
+            BomProcedureVersion currBomProcedure = baseMapper.selectOne(Wraps.<BomProcedureVersion>lbQ().eq(BomProcedureVersion::getId,bean.getId()));
+            BomProcedureVersion preBomProcedure = baseMapper.selectOne(Wraps.<BomProcedureVersion>lbQ().eq(BomProcedureVersion::getBomId,bean.getBomId()).gt(BomProcedureVersion::getSort,currBomProcedure.getSort()).orderByAsc(BomProcedureVersion::getSort).last("limit 1"));
 
             BomProcedureTrayGroup preBomProcedureTrayGroup = bomProcedureTrayGroupService.getOne(Wraps.<BomProcedureTrayGroup>lbQ().eq(BomProcedureTrayGroup::getProcedureId,preBomProcedure.getId()));
             BomProcedureTrayGroup currGroupBean = new BomProcedureTrayGroup();
@@ -878,6 +878,10 @@ public class BomProcedureVersionServiceImpl extends SuperServiceImpl<BomProcedur
         if(procedureRobotArmList!=null&&procedureRobotArmList.size()>0){
             model.setProcedureRobotArm(procedureRobotArmList.get(0));
         }
+        //默认一些初始值
+        model.setMeterialConf(StringUtils.isEmpty(model.getMeterialConf())?"3":model.getMeterialConf());
+        model.setTrayConf(StringUtils.isEmpty(model.getTrayConf())?"3":model.getTrayConf());
+
         return model;
     }
 

+ 2 - 0
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/productionResourceCenter/service/ZZoneService.java

@@ -36,6 +36,8 @@ public interface ZZoneService extends SuperService<ZZone> {
      */
     ZZone update(ZZoneUpdateDTO data);
 
+    ZZone changeZone(ZZoneUpdateDTO data);
+
     ZZone setResource(String id,List<String>resourceList);
 
     /**

+ 62 - 2
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/productionResourceCenter/service/impl/ZZoneServiceImpl.java

@@ -2,15 +2,20 @@ package com.github.zuihou.business.productionResourceCenter.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollectionUtil;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.github.zuihou.authority.service.common.DictionaryItemService;
 import com.github.zuihou.business.DemoLine.DemoLineConstant;
 import com.github.zuihou.business.operationManagementCenter.dao.TTaskMapper;
+import com.github.zuihou.business.operationManagementCenter.dao.TaskNodeMapper;
 import com.github.zuihou.business.operationManagementCenter.dao.WorkpieceMapper;
 import com.github.zuihou.business.operationManagementCenter.entity.TTask;
 import com.github.zuihou.business.operationManagementCenter.entity.TWorkpiece;
+import com.github.zuihou.business.operationManagementCenter.entity.TaskNode;
 import com.github.zuihou.business.operationManagementCenter.service.OrderService;
 import com.github.zuihou.business.operationManagementCenter.service.WorkpieceService;
+import com.github.zuihou.business.productionReadyCenter.dao.BBomMapper;
+import com.github.zuihou.business.productionReadyCenter.entity.BBom;
 import com.github.zuihou.business.productionResourceCenter.dao.ZZoneMapper;
 import com.github.zuihou.business.productionResourceCenter.dao.ZZoneProductionresourceMapper;
 import com.github.zuihou.business.productionResourceCenter.dto.ZZoneSaveDTO;
@@ -23,6 +28,7 @@ import com.github.zuihou.business.productionResourceCenter.service.ZZoneProducti
 import com.github.zuihou.business.productionResourceCenter.service.ZZoneService;
 import com.github.zuihou.base.service.SuperServiceImpl;
 
+import com.github.zuihou.business.util.DynamicRabbitMq;
 import com.github.zuihou.common.constant.BizConstant;
 import com.github.zuihou.common.constant.CacheKey;
 import com.github.zuihou.common.constant.CodeRuleModule;
@@ -99,9 +105,18 @@ public class ZZoneServiceImpl extends SuperServiceImpl<ZZoneMapper, ZZone> imple
     @Autowired
     private TTaskMapper taskMapper;
 
+    @Autowired
+    private TaskNodeMapper taskNodeMapper;
+
+    @Autowired
+    private BBomMapper bomMapper;
+
     @Autowired
     private WorkpieceService workpieceService;
 
+    @Autowired
+    private DynamicRabbitMq dynamicRabbitMq;
+
     @Autowired
     private ProductionresourceviewMapper productionresourceviewMapper;
 
@@ -142,15 +157,59 @@ public class ZZoneServiceImpl extends SuperServiceImpl<ZZoneMapper, ZZone> imple
 
         updateById(zZone);
 
+//        //重新排产
+//        orderService.reschedulingPlanTasks();
+//
+//        //修改workpiece当前正在执行的工序
+//        //先查出
+//        List<TWorkpiece>workpieceList = workpieceService.list(Wraps.<TWorkpiece>lbQ().eq(TWorkpiece::getIsEnd, "0"));
+//
+//        if(CollectionUtil.isNotEmpty(workpieceList)){
+//            workpieceList.stream().map((t) -> {
+//                t.setExchangeProcedureId(t.getProcedureId());
+//                t.setExchangeZoneFlag("1");
+//                return t;
+//            }).collect(Collectors.toList());
+//
+//            workpieceService.saveBatch(workpieceList);
+//        }
+        return zZone;
+    }
+
+
+    @Override
+    public ZZone changeZone(ZZoneUpdateDTO data) {
+        ZZone zZone = BeanPlusUtil.toBean(data, ZZone.class);
+        ZZone oriZone = baseMapper.selectById(zZone.getId());
+
+        String oriRunMode = oriZone.getRunMode();
+        String runMode = zZone.getRunMode();
+        isFalse(oriRunMode.equals(runMode), "切换的产线不能和原产线雷同");
+
+
+        updateById(zZone);
         //重新排产
         orderService.reschedulingPlanTasks();
 
         //修改workpiece当前正在执行的工序
-        //先查出
-        List<TWorkpiece>workpieceList = workpieceService.list(Wraps.<TWorkpiece>lbQ().eq(TWorkpiece::getIsEnd, "0"));
+        //先查出当前产线的零件
+        List<BBom>bBomList = bomMapper.selectList(Wraps.<BBom>lbQ().eq(BBom::getZoneId, data.getId()));
+
+        List<TWorkpiece>workpieceList = workpieceService.list(Wraps.<TWorkpiece>lbQ().eq(TWorkpiece::getIsEnd, "0").in(TWorkpiece::getBomId,bBomList));
 
         if(CollectionUtil.isNotEmpty(workpieceList)){
             workpieceList.stream().map((t) -> {
+                //由手动切换自动,会唤起自动
+                if("2".equals(oriZone.getRunMode())) {
+                    JSONObject jsonObject = new JSONObject();
+                    List<TaskNode> taskNodeList = taskNodeMapper.selectList(Wraps.<TaskNode>lbQ().eq(TaskNode::getCompleteBatchNo, t.getCompleteBatchNo()).eq(TaskNode::getExeStatus,"1").orderByAsc(TaskNode::getCompleteBatchSort));
+                    TaskNode taskNode = taskNodeList.get(0);
+                    jsonObject.put("taskNodeId",taskNode.getId().toString());
+                    jsonObject.put("bizType", BizConstant.MQ_TASK_NODE_TYPE_COMMON);
+                    log.info("推送mq队列{}消息{}",taskNode.getResourceId().toString(),jsonObject.toString());
+                    dynamicRabbitMq.sendMsg(taskNode.getResourceId().toString(),jsonObject.toString());
+                }
+
                 t.setExchangeProcedureId(t.getProcedureId());
                 t.setExchangeZoneFlag("1");
                 return t;
@@ -158,6 +217,7 @@ public class ZZoneServiceImpl extends SuperServiceImpl<ZZoneMapper, ZZone> imple
 
             workpieceService.saveBatch(workpieceList);
         }
+
         return zZone;
     }
 

+ 7 - 0
imcs-admin-boot/imcs-business-controller/src/main/java/com/github/zuihou/business/controller/productionResourceCenter/ZZoneController.java

@@ -134,6 +134,13 @@ public class ZZoneController extends SuperController<ZZoneService, Long, ZZone,
         return success(zZone);
     }
 
+    @ApiOperation(value = "修改区域管理", notes = "修改区域管理")
+    @PostMapping("/changeMode")
+    public R<ZZone> changeMode(@RequestBody ZZoneUpdateDTO model) {
+        ZZone zZone = baseService.changeZone(model);
+        return success(zZone);
+    }
+
     @ApiOperation(value = "设置设备", notes = "设置设备")
     @PostMapping("/setResource")
     public R<ZZone> setResource(@RequestBody Map<String,Object> map) {