From 91b2da2c3a42656e842f7c9e0c4af6aa02dbaa3a Mon Sep 17 00:00:00 2001
From: XiaoRuby <3114200645@qq.com>
Date: 星期一, 04 九月 2023 09:23:29 +0800
Subject: [PATCH] MOM系统-9-04 生产报工

---
 production-server/src/main/java/com/yuanchu/mom/service/impl/ManufactureOrderServiceImpl.java |   94 ++++++++++++++++++++++++++++++++++------------
 1 files changed, 69 insertions(+), 25 deletions(-)

diff --git a/production-server/src/main/java/com/yuanchu/mom/service/impl/ManufactureOrderServiceImpl.java b/production-server/src/main/java/com/yuanchu/mom/service/impl/ManufactureOrderServiceImpl.java
index 01a5494..b99ce24 100644
--- a/production-server/src/main/java/com/yuanchu/mom/service/impl/ManufactureOrderServiceImpl.java
+++ b/production-server/src/main/java/com/yuanchu/mom/service/impl/ManufactureOrderServiceImpl.java
@@ -1,24 +1,26 @@
 package com.yuanchu.mom.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.yuanchu.mom.mapper.DeviceMapper;
 import com.yuanchu.mom.mapper.ManualTechnologyMapper;
 import com.yuanchu.mom.mapper.ManufactureOrderMapper;
-import com.yuanchu.mom.pojo.ManualTechnology;
 import com.yuanchu.mom.pojo.ManufactureOrder;
-import com.yuanchu.mom.pojo.dto.ManualTechnologyDto1;
-import com.yuanchu.mom.pojo.dto.ManufactureOrderDto;
+import com.yuanchu.mom.pojo.ManufactureScheduling;
 import com.yuanchu.mom.service.ManufactureOrderService;
+import com.yuanchu.mom.service.ManufactureSchedulingService;
+import com.yuanchu.mom.utils.MyUtil;
 import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import java.util.List;
 import java.util.Map;
-import java.util.stream.Collectors;
 
 /**
  * 鐢熶骇璁㈠崟琛�(ManufactureOrder)琛ㄦ湇鍔″疄鐜扮被
@@ -35,8 +37,8 @@
     @Resource
     ManualTechnologyMapper manualTechnologyMapper;
 
-    @Resource
-    DeviceMapper deviceMapper;
+    @Autowired
+    private ManufactureSchedulingService manufactureSchedulingService;
 
     //鏌ヨ鐢熶骇璁㈠崟鐨勫垪琛�
     @Override
@@ -44,32 +46,74 @@
         return manufactureOrderMapper.selectAllManord(page,downTime,delTime,customerCode,type);
     }
 
-
     //鏌ョ湅鎺掍骇璇︽儏
     @Override
-    public ManufactureOrderDto sePros(Integer manOrdId) {
-        ManufactureOrderDto manufactureOrderDto = new ManufactureOrderDto();
+    public Map<String, Object> sePros(Integer schedulingId) {
         //鍩烘湰淇℃伅
-        ManufactureOrder manufactureOrder = manufactureOrderMapper.selectById(manOrdId);
-        BeanUtils.copyProperties(manufactureOrder,manufactureOrderDto);
+        Map<String, Object> manufactureOrder = manufactureSchedulingService.sePros(schedulingId);
+        MyUtil.PrintLog(manufactureOrder.toString());
         //璁″垝缂栧埗
-        List<ManualTechnology> manualTechnologies = manualTechnologyMapper.selectList(Wrappers.<ManualTechnology>query().eq("manufacture_order_id", manOrdId));
-        List<ManualTechnologyDto1> manualTechnologyDto1s = manualTechnologies.stream().map(manualTechnology -> {
-            ManualTechnologyDto1 manualTechnologyDto1 = new ManualTechnologyDto1();
-            BeanUtils.copyProperties(manualTechnology, manualTechnologyDto1);
-            manualTechnologyDto1.setMtechId(manualTechnology.getId());
-            manualTechnologyDto1.setDeviceName(deviceMapper.selectById(manualTechnology.getDeviceId()).getName());
-            return manualTechnologyDto1;
-        }).collect(Collectors.toList());
-        manufactureOrderDto.setMessage(manualTechnologyDto1s);
-        return manufactureOrderDto;
+        List<Map<String, Object>> mapList = manualTechnologyMapper.selectListTowTree(schedulingId);
+        manufactureOrder.put("message",mapList);
+        return manufactureOrder;
     }
 
     //涓嬭揪
     @Override
-    public void down(Integer manOrdId) {
-        ManufactureOrder manufactureOrder = new ManufactureOrder().setId(manOrdId).setGoState(1);
-        manufactureOrderMapper.updateById(manufactureOrder);
+    public void down(Integer manufactureOrderId, Integer schedulingId) {
+        // 鍏堟洿鏂版帓浜�
+        LambdaUpdateWrapper<ManufactureScheduling> updateWrapperScheduling = Wrappers.<ManufactureScheduling>lambdaUpdate()
+                .eq(ManufactureScheduling::getId, schedulingId)
+                .set(ManufactureScheduling::getGoState, 1);
+        manufactureSchedulingService.update(updateWrapperScheduling);
+
+
+        // 鐒跺悗鏇存柊璁㈠崟琛ㄧ殑鐘舵��
+        LambdaQueryWrapper<ManufactureScheduling> queryWrapper = Wrappers.<ManufactureScheduling>lambdaQuery()
+                .eq(ManufactureScheduling::getManufactureOrderId, manufactureOrderId)
+                .select(ManufactureScheduling::getGoState);
+        List<ManufactureScheduling> list = manufactureSchedulingService.list(queryWrapper);
+        boolean goStateAll = false;
+        for (int i = 0; i <= list.size() - 1; i++){
+            if (list.get(i).getGoState() == 0) {
+                goStateAll = true;
+                break;
+            }
+        }
+        LambdaUpdateWrapper<ManufactureOrder> updateWrapperOrder = new LambdaUpdateWrapper<>();
+        updateWrapperOrder.eq(ManufactureOrder::getId, manufactureOrderId);
+        // 濡傛灉鎺掍骇琛ㄤ腑鏈変竴涓槸寰呬笅杈撅紝閭d箞璁㈠崟琛ㄤ腑灏变负寰呬笅杈�
+        if (goStateAll){
+            // 寰呬笅杈�
+            updateWrapperOrder.set(ManufactureOrder::getGoState, 0);
+        } else {
+            // 宸蹭笅杈�
+            updateWrapperOrder.set(ManufactureOrder::getGoState, 1);
+        }
+        manufactureOrderMapper.update(new ManufactureOrder(), updateWrapperOrder);
+    }
+
+    @Override
+    public void deleteManufacture(List<String> manOrdId) {
+        manufactureOrderMapper.deleteManufacture(manOrdId);
+    }
+
+    @Override
+    public List<Map<String, Object>> towTree() {
+        return manufactureOrderMapper.towTree();
+    }
+
+    @Override
+    public Integer checkScheduled(Integer manOrdId, Integer schedulingNumber) {
+        LambdaQueryWrapper<ManufactureOrder> queryWrapper = Wrappers.<ManufactureOrder>lambdaQuery()
+                .eq(ManufactureOrder::getId, manOrdId)
+                .eq(ManufactureOrder::getState, 1)
+                .select(ManufactureOrder::getNumber, ManufactureOrder::getScheduledProduction);
+        ManufactureOrder manufactureOrder = manufactureOrderMapper.selectOne(queryWrapper);
+        if (ObjectUtils.isEmpty(manufactureOrder.getScheduledProduction())){
+            manufactureOrder.setScheduledProduction(0);
+        }
+        return manufactureOrder.getNumber() - (manufactureOrder.getScheduledProduction() + schedulingNumber);
     }
 }
 

--
Gitblit v1.9.3