laoyao 3 лет назад
Родитель
Сommit
5028ac1f45

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

@@ -22,13 +22,12 @@ import com.github.zuihou.business.operationManagementCenter.entity.*;
 import com.github.zuihou.business.operationManagementCenter.service.*;
 import com.github.zuihou.business.productionReadyCenter.dao.BomProcedureProductionresourceMapper;
 import com.github.zuihou.business.productionReadyCenter.dao.BomProcedureProgramMapper;
-import com.github.zuihou.business.productionReadyCenter.entity.AutoNode;
-import com.github.zuihou.business.productionReadyCenter.entity.BomProcedure;
-import com.github.zuihou.business.productionReadyCenter.entity.BomProcedureProductionresource;
-import com.github.zuihou.business.productionReadyCenter.entity.BomProcedureProgram;
+import com.github.zuihou.business.productionReadyCenter.dao.MMeterialReceiveLogMapper;
+import com.github.zuihou.business.productionReadyCenter.entity.*;
 import com.github.zuihou.business.productionReadyCenter.service.AutoNodeService;
 import com.github.zuihou.business.productionReadyCenter.service.BBomService;
 import com.github.zuihou.business.productionReadyCenter.service.BomProcedureService;
+import com.github.zuihou.business.productionReadyCenter.service.MMeterialReceiveLogService;
 import com.github.zuihou.business.productionResourceCenter.entity.Repair;
 import com.github.zuihou.business.productionResourceCenter.service.RepairService;
 import com.github.zuihou.business.util.DynamicRabbitMq;
@@ -122,6 +121,9 @@ public class OrderServiceImpl extends SuperServiceImpl<OrderMapper, Order> imple
     @Autowired
     private BomProcedureProgramMapper bomProcedureProgramMapper;
 
+    @Autowired
+    private MMeterialReceiveLogService meterialReceiveLogService;
+
     @Override
     public IPage<Order> pageList(IPage page,String sustDesc, LbqWrapper<Order> wrapper) {
         return baseMapper.pageList(page,sustDesc, wrapper, new DataScope());
@@ -145,6 +147,25 @@ public class OrderServiceImpl extends SuperServiceImpl<OrderMapper, Order> imple
             isFalse(bomProcedureMap.get(l).size()==0,"零件尚未配置工序,请确认");
         }
 
+        //验证炉号
+        if(detailList != null && detailList.size() > 0){
+            List<String>furnaceBatchList = detailList.stream().map(p -> p.get("meterialReceiveId").toString()).collect(Collectors.toList());
+            List<MMeterialReceiveLog>meterialReceiveLogList = meterialReceiveLogService.list(Wraps.<MMeterialReceiveLog>lbQ().in(MMeterialReceiveLog::getId,furnaceBatchList));
+            Map<String,MMeterialReceiveLog> meterialReceiveLogMap = meterialReceiveLogList.stream().collect(Collectors.toMap(t->t.getId().toString(), t->t));
+            List<MMeterialReceiveLog>l = new ArrayList<MMeterialReceiveLog>();
+            for(Map map:detailList){
+                String meterialReceiveId = map.get("meterialReceiveId")==null?"":map.get("meterialReceiveId").toString();
+                int bomNum = Integer.parseInt(map.get("bomNum").toString());
+                MMeterialReceiveLog m = meterialReceiveLogMap.get(meterialReceiveId);
+                int usedNum = (m.getUsedNum()==null?0:m.getUsedNum());
+                isFalse(bomNum>m.getBatchStand()+usedNum,"零件数超出");
+                m.setUsedNum(bomNum+usedNum);
+                l.add(m);
+            }
+            //修改已用数量
+            meterialReceiveLogService.saveOrUpdateBatch(l);
+        }
+
         //根据编码规则
         String no = codeRuleService.getBillCode(CodeRuleModule.CODE_RULE_ORDER);
         order.setOrderNo(no);
@@ -165,6 +186,7 @@ public class OrderServiceImpl extends SuperServiceImpl<OrderMapper, Order> imple
                 item.setOrderId(order.getId());
                 item.setOrderNo(order.getOrderNo());
                 item.setFurnaceBatchNo(map.get("furnaceBatchNo").toString());
+                item.setMeterialReceiveId(Long.parseLong(map.get("meterialReceiveId").toString()));
                 item.setBomId(Long.parseLong(map.get("bomId").toString()));
                 item.setBomNum(Integer.parseInt(map.get("bomNum").toString()));
                 productNum+=item.getBomNum();
@@ -187,12 +209,30 @@ public class OrderServiceImpl extends SuperServiceImpl<OrderMapper, Order> imple
     public Order update(OrderUpdateDTO data) {
         Order order = BeanPlusUtil.toBean(data, Order.class);
 
+        //验证炉号
+        List<OrderProductUpdateDTO> detailList = data.getOrderProductList();
+        if(detailList != null && detailList.size() > 0){
+            List<String>furnaceBatchList = detailList.stream().map(t->t.getMeterialReceiveId().toString()).collect(Collectors.toList());
+            List<MMeterialReceiveLog>meterialReceiveLogList = meterialReceiveLogService.list(Wraps.<MMeterialReceiveLog>lbQ().in(MMeterialReceiveLog::getId,furnaceBatchList));
+            Map<String,MMeterialReceiveLog> meterialReceiveLogMap = meterialReceiveLogList.stream().collect(Collectors.toMap(t->t.getId().toString(), t->t));
+            List<MMeterialReceiveLog>l = new ArrayList<MMeterialReceiveLog>();
+            for(OrderProductUpdateDTO dto:detailList){
+                String meterialReceiveId = dto.getMeterialReceiveId().toString();
+                int bomNum = dto.getBomNum();
+                MMeterialReceiveLog m = meterialReceiveLogMap.get(meterialReceiveId);
+
+                isFalse(bomNum>m.getBatchStand()+m.getUsedNum(),"零件数超出");
+                m.setUsedNum(bomNum+m.getUsedNum());
+                l.add(m);
+            }
+            //修改已用数量
+            meterialReceiveLogService.saveOrUpdateBatch(l);
+        }
 
         //删除明细
         orderProductService.remove(Wraps.<OrderProduct>lbQ().eq(OrderProduct::getOrderId,order.getId()));
         //新增明细
         int productNum = 0;
-        List<OrderProductUpdateDTO> detailList = data.getOrderProductList();
         if(detailList !=null && detailList.size()>0){
             List<OrderProduct> list = detailList.stream().map((map) -> {
                 OrderProduct item = new OrderProduct();

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

@@ -708,6 +708,9 @@ public class TaskServiceImpl extends SuperServiceImpl<TTaskMapper, TTask> implem
 //        List<Map<String,Object>> dateList = scheduleUserDateMapper.selectSql(dateSql);
         List <Map<String,Object>>titleList = getHourTtileList();
 
+
+        List<Map>returnList = new ArrayList<Map>();
+
         int current = Integer.parseInt(map.get("current")==null?"1":map.get("current").toString());
         int size = Integer.parseInt(map.get("size")==null?"10":map.get("size").toString());
         current = (current-1)*size;
@@ -718,12 +721,30 @@ public class TaskServiceImpl extends SuperServiceImpl<TTaskMapper, TTask> implem
         queryMap.put("draftFlag",draftFlag);
         queryMap.put("planId",planId);
         List<Map> dataList = baseMapper.getTaskList(queryMap);
-        Map<String,List<Map>>m = dataList.stream().filter(t->t.get("resourceDesc")!=null).collect(Collectors.groupingBy(t->t.get("resourceDesc").toString()));
+        Map<String,List<Map>>m = dataList.stream().filter(t->t.get("resourceCode")!=null).collect(Collectors.groupingBy(t->t.get("resourceCode").toString()));
+        //根据设备编码找到名称
+        List<Productionresource>productionresourceList = productionresourceBizMapper.selectList(null);
+        Map<String,String>productionMap = productionresourceList.stream().collect(Collectors.toMap(Productionresource::getCode, Productionresource::getName));
+
+        for(String key:m.keySet()){
+            Map returnMap = new HashMap();
+            returnMap.put("code",key);
+            returnMap.put("name",productionMap.get(key));
+            returnMap.put("children",m.get(key));
+            returnList.add(returnMap);
+        }
+
+//        for(Map map1:dataList){
+//            Map returnMap = new HashMap();
+//            returnMap.put("code",);
+//
+//        }
+
         //获取数据
         Map<String, Object> retMap = new HashMap<String, Object>();
         retMap.put("titleList",titleList);
-        retMap.put("data",m);
-        retMap.put("count",m.size());
+        retMap.put("data",returnList);
+        retMap.put("count",returnList.size());
         return retMap;
     }
 

+ 14 - 3
imcs-admin-boot/imcs-business-biz/src/main/resources/mapper_business/base/operationManagementCenter/OrderMapper.xml

@@ -70,13 +70,24 @@
     </select>
 
     <select id="getOrderStatusCount" resultType="map">
-        select count(1) as totalCount,
+        SELECT sum(totalCount)totalCount,SUM(sourceCount)sourceCount,sum(auditCount)auditCount,sum(schedulingCount)schedulingCount,
+		sum(orderSuspendCount) orderSuspendCount ,sum(orderConductCount)orderConductCount from
+		(select count(1) as totalCount,
         ifnull(sum(case when source = '0' then 1 else 0 end),0) as sourceCount,
         ifnull(sum(case when audit_status = '1' then 1 else 0 end),0) as auditCount,
+        0 as schedulingCount,
+        0 as orderSuspendCount,
+        0 as orderConductCount
+        from imcs_o_order
+        union all
+        select 0 as totalCount,
+        0 as sourceCount,
+        0 as auditCount,
         ifnull(sum(case when scheduling_status ='0' then 1 else 0 end),0) as schedulingCount,
-        ifnull(sum(case when order_status = '0' then 1 else 0 end),0) as orderSuspendCount,
+        ifnull(sum(case when produce_status = '3' then 1 else 0 end),0) as orderSuspendCount,
         ifnull(sum(case when produce_status = '2' then 1 else 0 end),0) as orderConductCount
-        from imcs_o_order
+        from imcs_p_plan)a
+
     </select>
 
 

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

@@ -57,13 +57,14 @@
 
     <select id="getList" parameterType="com.github.zuihou.business.operationManagementCenter.entity.OrderProduct" resultType="com.github.zuihou.business.operationManagementCenter.entity.OrderProduct">
         select a.*,b.name,b.no as bomNo,b.specifications as specifications,b.model,b.brand,ifnull(c.planNum,0) as planNum,
-        b.parts_no partsNo,b.parts_alias partsAlias,b.bom_alias bomAlias,b.name bomName,b.meterial_id meterialId,a.furnace_batch_no furnaceBatchNo,
+        b.parts_no partsNo,b.parts_alias partsAlias,b.bom_alias bomAlias,b.name bomName,b.meterial_id meterialId,l.furnace_batch_no furnaceBatchNo,
         (ifnull(a.bom_num,0)-ifnull(c.planNum,0)) as stayPlanNum,d.delivery_time as orderDeliveryTime from imcs_o_order_product a
         left join imcs_b_bom b on a.bom_id = b.id
         left join (
         select order_product_id,count(1) as planNum from imcs_p_plan_product where 1=1 group by order_product_id
         )c on a.id= c.order_product_id
         left join imcs_o_order d on a.order_id = d.id
+        left join imcs_m_meterial_receive_log l on a.meterial_receive_id = l.id
         where 1=1
         <if test="orderId != '' and orderId != null " >
             and a.order_id = #{orderId}

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

@@ -51,7 +51,7 @@
         DATE_FORMAT(expect_end_time,'%Y-%m-%d %H:%i:%s') expectEndTime,
         concat(a.expect_start_time,'到',a.expect_end_time) as planTime,
         a.procedure_no as procedureNo,bo.name bomDesc,
-        a.status,f.name as resourceDesc
+        a.status,f.`code` resourceCode ,f.name as resourceDesc
         from imcs_t_task a
         left join imcs_b_bom bo on a.bom_id = bo.id
         left join imcs_tenant_productionresource f on a.resource_id = f.id
@@ -68,6 +68,7 @@
         <if test="draftFlag != null and draftFlag != ''">
             and draft_flag = #{draftFlag}
         </if>
+        order by expect_start_time asc
             limit  ${current},${size}
     </select>
 

+ 6 - 0
imcs-admin-boot/imcs-business-entity/src/main/java/com/github/zuihou/business/operationManagementCenter/dto/OrderProductUpdateDTO.java

@@ -86,4 +86,10 @@ public class OrderProductUpdateDTO implements Serializable {
     @TableField(value = "furnace_batch_no", condition = LIKE)
     private String furnaceBatchNo;
 
+
+    @ApiModelProperty(value = "材料炉批号")
+    @Length(max = 12, message = "材料炉批号长度不能超过12")
+    @TableField(value = "meterial_receive_id", condition = LIKE)
+    private Long meterialReceiveId;
+
 }

+ 12 - 1
imcs-admin-boot/imcs-business-entity/src/main/java/com/github/zuihou/business/operationManagementCenter/entity/OrderProduct.java

@@ -158,10 +158,21 @@ public class OrderProduct extends Entity<Long> {
 
     @ApiModelProperty(value = "材料炉批号")
     @Length(max = 12, message = "材料炉批号长度不能超过12")
-    @TableField(value = "furnace_batch_no", condition = LIKE)
+    @TableField(exist = false)
     @Excel(name = "材料炉批号")
     private String furnaceBatchNo;
 
+
+    /**
+     * bom_id
+     */
+    @ApiModelProperty(value = "meterial_receive_id")
+    @NotEmpty(message = "meterial_receive_id")
+    @Length(max = 32, message = "bom_id长度不能超过32")
+    @TableField(value = "meterial_receive_id", condition = LIKE)
+    @Excel(name = "meterial_receive_id")
+    private Long meterialReceiveId;
+
     /**
      * 日生产节拍(日最大生产数)
      */