laoyao 3 år sedan
förälder
incheckning
0c6e177124

+ 76 - 53
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/operationManagementCenter/service/impl/OrderServiceImpl.java

@@ -215,17 +215,38 @@ public class OrderServiceImpl extends SuperServiceImpl<OrderMapper, Order> imple
         Order bean = BeanPlusUtil.toBean(data, Order.class);
         //如果是审核通过,订单状态修改为进行中
         if("2".equals(bean.getAuditStatus())){
-            bean.setOrderStatus("2");
+            Order oriBean = baseMapper.selectById(bean.getId());
+            oriBean.setOrderStatus("2");
             //待计划、待排产、待生产状态。
-            bean.setPlanStatus("1");
-            bean.setSchedulingStatus("1");
-            bean.setProduceStatus("1");
+            oriBean.setPlanStatus("1");
+            oriBean.setSchedulingStatus("1");
+            oriBean.setProduceStatus("1");
+
+            Map map = new HashMap();
+            BeanUtil.copyProperties(oriBean, map);
+
+            List<OrderProduct>productList = orderProductService.list(Wraps.<OrderProduct>lbQ().eq(OrderProduct::getOrderId,oriBean.getId()));
+
+            List<Map> mapList= getProductMapList(productList);
+            map.put("orderProductList",mapList);
+            //生成计划
+            planService.saveDefaultPlanByOrder(map,null);
         }
 
         updateById(bean);
         return bean;
     }
 
+    private List<Map>getProductMapList(List<OrderProduct>productList){
+        List<Map> mapList = new ArrayList<>();
+        for(OrderProduct orderProduct:productList){
+            Map map = new HashMap();
+            BeanUtil.copyProperties(orderProduct, map);
+            mapList.add(map);
+        }
+        return mapList;
+    }
+
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -298,9 +319,10 @@ public class OrderServiceImpl extends SuperServiceImpl<OrderMapper, Order> imple
         if(map!=null&&map.get("orderList")!=null){
             list = (List<Map>)map.get("orderList");
         }
-        List<Long>idList = list.stream().map(p -> Long.parseLong(p.get("id").toString())).collect(Collectors.toList());
-        List<Order> oriOrderList = baseMapper.selectList(Wraps.<Order>lbQ().in(Order::getId,idList));
-        List<OrderProduct> orderProductList = orderProductService.list(Wraps.<OrderProduct>lbQ().in(OrderProduct::getOrderId,idList));
+        List<Long>idList = list.stream().map(p -> Long.parseLong(p.get("orderProductId").toString())).collect(Collectors.toList());
+        List<Long>planIdList = list.stream().map(p -> Long.parseLong(p.get("id").toString())).collect(Collectors.toList());
+        List<Plan> oriPlanList = planMapper.selectList(Wraps.<Plan>lbQ().in(Plan::getId,planIdList));
+        List<OrderProduct> orderProductList = orderProductService.list(Wraps.<OrderProduct>lbQ().in(OrderProduct::getId,idList));
         //重复点击验证
         String ids = StringUtil.changeIdsListToSubQueryStr(idList);
         Object obj = redisTemplate.opsForValue().get(RepeatCacheKey.ONETOUCHSCHEDULE_UNION_KEY+"_"+ids);
@@ -312,33 +334,33 @@ public class OrderServiceImpl extends SuperServiceImpl<OrderMapper, Order> imple
 
 
         //验证状态
-        for(Order order:oriOrderList){
-            isFalse(!"2".equals(order.getAuditStatus()),"请选择审核通过的数据");
-            isFalse(!"1".equals(order.getPlanStatus()),"请选择尚未排产的数据");
+        for(Plan plan:oriPlanList){
+            isFalse(!"2".equals(plan.getAuditStatus()),"请选择审核通过的数据");
+            isFalse(!"0".equals(plan.getSchedulingStatus()),"请选择待排产的数据");
         }
 
         try {
             //把之前的预生成的数据删除
-            taskMapper.delete(Wraps.<TTask>lbQ().eq(TTask::getDraftFlag, "1").in(TTask::getOrderId, idList));
-            planProductMapper.delete(Wraps.<PlanProduct>lbQ().eq(PlanProduct::getDraftFlag, "1").in(PlanProduct::getOrderId, idList));
-            planMapper.delete(Wraps.<Plan>lbQ().eq(Plan::getDraftFlag, "1").in(Plan::getOrderId, idList));
-            workpieceMapper.delete(Wraps.<TWorkpiece>lbQ().in(TWorkpiece::getOrderId, idList));
-
-            List<Plan> planList = new ArrayList<Plan>();
-            for (Map m : list) {
-                //生成计划
-                List<Plan> tmpList = planService.saveDefaultPlanByOrder(m, null);
-                planList.addAll(tmpList);
-            }
+            taskMapper.delete(Wraps.<TTask>lbQ().eq(TTask::getDraftFlag, "1").in(TTask::getPlanId, planIdList));
+//            planProductMapper.delete(Wraps.<PlanProduct>lbQ().eq(PlanProduct::getDraftFlag, "1").in(PlanProduct::getOrderId, idList));
+//            planMapper.delete(Wraps.<Plan>lbQ().eq(Plan::getDraftFlag, "1").in(Plan::getOrderId, idList));
+            workpieceMapper.delete(Wraps.<TWorkpiece>lbQ().in(TWorkpiece::getPlanId, planIdList));
+
+//            List<Plan> planList = new ArrayList<Plan>();
+//            for (Map m : list) {
+//                //生成计划
+//                List<Plan> tmpList = planService.saveDefaultPlanByOrder(m, null);
+//                planList.addAll(tmpList);
+//            }
             String taskBatchNo = UUID.randomUUID().toString().replace("-", "");
 
             //查出所有产品ID
-            List<OrderProduct> productList = orderProductService.list(Wraps.<OrderProduct>lbQ().in(OrderProduct::getOrderId, idList));
-            List<Long> bomIdList = productList.stream().map(p -> p.getBomId()).collect(Collectors.toList());
+//            List<OrderProduct> productList = orderProductService.list(Wraps.<OrderProduct>lbQ().in(OrderProduct::getOrderId, idList));
+            List<Long> bomIdList = orderProductList.stream().map(p -> p.getBomId()).collect(Collectors.toList());
             //查出本次需要得工艺信息
             Map<Long, List<BomProcedure>> bomProcedureMap = bomProcedureService.getBomProcedureMap(bomIdList);
             //查出所有的计划产品
-            List<PlanProduct> planProductList = planProductService.list(Wraps.<PlanProduct>lbQ().in(PlanProduct::getOrderId, idList));
+            List<PlanProduct> planProductList = planProductService.list(Wraps.<PlanProduct>lbQ().in(PlanProduct::getPlanId, planIdList));
             //生成任务
             List<TTask> taskList = taskService.createNewTaskByPlan(orderProductList, planProductList, bomProcedureMap, taskBatchNo);
 
@@ -371,39 +393,40 @@ public class OrderServiceImpl extends SuperServiceImpl<OrderMapper, Order> imple
         isFalse(list==null||list.size()==0,"排产订单不能为空");
         //更新订单状态
         for(Map m:list){
-            Order order = new Order();
-            order.setId(Long.parseLong(m.get("id").toString()));
-            order.setPlanStatus("3");//计划完成
-            order.setSchedulingStatus("3");//已排产
-            order.setRhythmType(m.get("rhythmType")==null?"1":m.get("rhythmType").toString());
-            baseMapper.updateById(order);
+            Plan plan = new Plan();
+            plan.setId(Long.parseLong(m.get("id").toString()));
+            plan.setPlanStatus("2");//进行中
+            plan.setSchedulingStatus("1");//已排产
+            plan.setProduceStatus("2");
+//            plan.setRhythmType(m.get("rhythmType")==null?"1":m.get("rhythmType").toString());
+            planMapper.updateById(plan);
 
             //生产单元
-            List<String > zZoneList = m.get("zZoneList")==null?null:(List<String>)m.get("zZoneList");
-            //删除生产单元
-            orderZoneMapper.delete(Wraps.<OrderZone>lbQ().eq(OrderZone::getOrderId,order.getId()));
-            if(zZoneList !=null && zZoneList.size()>0){
-                List<OrderZone> zoneList = zZoneList.stream().map((map1) -> {
-                    OrderZone item = new OrderZone();
-                    item.setZoneId(Long.parseLong(map1));
-                    item.setOrderId(order.getId());
-                    return item;
-                }).collect(Collectors.toList());
-                orderZoneService.saveBatch(zoneList);
-            }
+//            List<String > zZoneList = m.get("zZoneList")==null?null:(List<String>)m.get("zZoneList");
+//            //删除生产单元
+//            orderZoneMapper.delete(Wraps.<OrderZone>lbQ().eq(OrderZone::getOrderId,order.getId()));
+//            if(zZoneList !=null && zZoneList.size()>0){
+//                List<OrderZone> zoneList = zZoneList.stream().map((map1) -> {
+//                    OrderZone item = new OrderZone();
+//                    item.setZoneId(Long.parseLong(map1));
+//                    item.setOrderId(order.getId());
+//                    return item;
+//                }).collect(Collectors.toList());
+//                orderZoneService.saveBatch(zoneList);
+//            }
 
             //更新订单产品
-            List<Map> orderProductList = m.get("orderProductList")==null?null:(List<Map>)m.get("orderProductList");
-            if(orderProductList !=null && orderProductList.size()>0){
-                List<OrderProduct> oList= orderProductList.stream().map((map1) -> {
-                    OrderProduct item = new OrderProduct();
-                    item.setRhythmType(map1.get("rhythmType")==null?null:map1.get("rhythmType").toString());
-                    item.setLimitNum(map1.get("limitNum")==null?null:Integer.parseInt(map1.get("limitNum").toString()));
-                    item.setId(Long.parseLong(map1.get("id").toString()));
-                    return item;
-                }).collect(Collectors.toList());
-                orderProductService.updateBatchById(oList);
-            }
+//            List<Map> orderProductList = m.get("orderProductList")==null?null:(List<Map>)m.get("orderProductList");
+//            if(orderProductList !=null && orderProductList.size()>0){
+//                List<OrderProduct> oList= orderProductList.stream().map((map1) -> {
+//                    OrderProduct item = new OrderProduct();
+//                    item.setRhythmType(map1.get("rhythmType")==null?null:map1.get("rhythmType").toString());
+//                    item.setLimitNum(map1.get("limitNum")==null?null:Integer.parseInt(map1.get("limitNum").toString()));
+//                    item.setId(Long.parseLong(map1.get("id").toString()));
+//                    return item;
+//                }).collect(Collectors.toList());
+//                orderProductService.updateBatchById(oList);
+//            }
         }
 
         //更新计划草稿状态

+ 4 - 4
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/operationManagementCenter/service/impl/PlanServiceImpl.java

@@ -104,9 +104,9 @@ public class PlanServiceImpl extends SuperServiceImpl<PlanMapper, Plan> implemen
                         p.setStartTime(new Date());
                         p.setEndTime(map.get("deliveryTime")==null?null:DateUtil.stringToDate3(map.get("deliveryTime").toString()));
                         //设置相关状态
-                        p.setPlanStatus("3");
+                        p.setPlanStatus("1");
                         p.setAuditStatus("2");
-                        p.setSchedulingStatus("3");
+                        p.setSchedulingStatus("0");
                         p.setProduceStatus("1");
                         save(p);
                         int planNum =0;
@@ -132,9 +132,9 @@ public class PlanServiceImpl extends SuperServiceImpl<PlanMapper, Plan> implemen
                     p.setStartTime(new Date());
                     p.setEndTime(map.get("deliveryTime")==null?null:DateUtil.stringToDate3(map.get("deliveryTime").toString()));
                     //设置相关状态
-                    p.setPlanStatus("3");
+                    p.setPlanStatus("1");
                     p.setAuditStatus("2");
-                    p.setSchedulingStatus("3");
+                    p.setSchedulingStatus("0");
                     p.setProduceStatus("1");
                     save(p);
                     List<PlanProduct> planProductList = planProductService.saveDefaultPlanProductByOrder(m,p, orderProductBomNum);

+ 8 - 2
imcs-admin-boot/imcs-business-biz/src/main/java/com/github/zuihou/business/operationManagementCenter/service/impl/TaskServiceImpl.java

@@ -284,7 +284,13 @@ public class TaskServiceImpl extends SuperServiceImpl<TTaskMapper, TTask> implem
                             if(!candidateProMap.containsKey(workpiece.getCompleteBatchNo() + "_" + bomProcedure.getNo())){
                                 candidateProcess.setMachineId(bomProcedureProductionresource.getResourceId());
                                 LbqWrapper<BomProcedureProgram> bomProcedureProgramWrapper = new LbqWrapper<BomProcedureProgram>().eq(BomProcedureProgram::getResourceId, bomProcedureProductionresource.getResourceId()).eq(BomProcedureProgram::getProcedureId,bomProcedureProductionresource.getProcedureId());
-                                BomProcedureProgram bomProcedureProgram = bomProcedureProgramMapper.selectOne(bomProcedureProgramWrapper);
+                                List<BomProcedureProgram> bomProcedureProgramList = bomProcedureProgramMapper.selectList(bomProcedureProgramWrapper);
+
+                                BomProcedureProgram bomProcedureProgram = null;
+                                if(CollectionUtil.isNotEmpty(bomProcedureProgramList)){
+                                    bomProcedureProgram = bomProcedureProgramList.get(0);
+                                }
+
                                 // 人工上下料没有程序的情况直接用工序时间
                                 if(null != bomProcedureProgram && null != bomProcedureProgram.getRunTime()){
                                     candidateProcess.setProcedureId(bomProcedureProgram.getProcedureId());
@@ -343,7 +349,7 @@ public class TaskServiceImpl extends SuperServiceImpl<TTaskMapper, TTask> implem
 
         GAScheduler gaScheduler = new GAScheduler(instance, GAScheduler.PRIORITY_CODE);
         try{
-            gaScheduler.schedule();
+//            gaScheduler.schedule();
         }catch(Exception e){
             e.printStackTrace();
         }

+ 2 - 2
imcs-admin-boot/imcs-business-biz/src/main/resources/mapper_business/base/operationManagementCenter/PlanMapper.xml

@@ -25,7 +25,7 @@
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id,create_time,update_time,
+        id,create_time,update_time,order_product_id,
         plan_no, order_id, audit_status, remark, create_user, plan_status, update_user, start_time, end_time, scheduling_status, produce_status,partsNo,partsAlias,bomAlias,deliveryTime,pdeliveryTime,
          prority, status,rhythm_type,orderNo,orderStatus,orderName,source,bomDesc,process,planBomNum,zoenDesc,completeNum,qualification
     </sql>
@@ -35,7 +35,7 @@
         select
         <include refid="Base_Column_List"/>
         from (
-        select a.*,b.order_no as orderNo,b.order_name orderName,b.source,b.order_status as orderStatus,c.bomDesc,c.partsNo,c.partsAlias,c.bomAlias,c.pdeliveryTime,b.delivery_time deliveryTime,
+        select a.*,b.order_no as orderNo,b.order_name orderName,b.source,b.order_status as orderStatus,c.bomDesc,c.partsNo,c.partsAlias,c.bomAlias,c.pdeliveryTime,b.delivery_time deliveryTime,c.order_product_id,
         CASE WHEN ifnull(v.completeCount ,0)=0 then 0 else round(100 *( v.verifyCount / v.completeCount),2) end qualification, ifnull(v.completeCount ,0) as completeNum,
         CASE WHEN ifnull(w.taskCount,0)=0 then 0 else  round(100 *( wcCount / taskCount),2) end process,ifnull(c.plan_bom_num,0) as planBomNum,d.name as zoenDesc from imcs_p_plan a
         left join (

+ 5 - 0
imcs-admin-boot/imcs-business-entity/src/main/java/com/github/zuihou/business/operationManagementCenter/entity/Plan.java

@@ -297,6 +297,11 @@ public class Plan extends Entity<Long> {
     @TableField(exist = false)
     private Date deliveryTimeEnd;
 
+    @ApiModelProperty(value = "订单明细ID")
+    @TableField(exist = false)
+    @Excel(name = "订单明细ID")
+    private Long orderProductId;
+
 
 
     @Builder