From 8e39c9bbf8a8bb4707f2a766295b40497ae96706 Mon Sep 17 00:00:00 2001
From: XiaoRuby <3114200645@qq.com>
Date: 星期五, 01 九月 2023 13:46:54 +0800
Subject: [PATCH] MOM系统-9-01 生产订单 生产计划完成

---
 production-server/src/main/java/com/yuanchu/mom/service/impl/ManufactureOrderServiceImpl.java |   84 ++++++++++++++++++++++++++++--------------
 1 files changed, 56 insertions(+), 28 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 b5b0a77..d60aed4 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,26 +1,25 @@
 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.utils.MyUtil;
+import com.yuanchu.mom.service.ManufactureSchedulingService;
 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)琛ㄦ湇鍔″疄鐜扮被
@@ -37,8 +36,8 @@
     @Resource
     ManualTechnologyMapper manualTechnologyMapper;
 
-    @Resource
-    DeviceMapper deviceMapper;
+    @Autowired
+    private ManufactureSchedulingService manufactureSchedulingService;
 
     //鏌ヨ鐢熶骇璁㈠崟鐨勫垪琛�
     @Override
@@ -46,34 +45,50 @@
         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);
         //璁″垝缂栧埗
-        List<ManualTechnology> manualTechnologies = manualTechnologyMapper.selectList(Wrappers.<ManualTechnology>query().eq("manufacture_order_id", manOrdId));
-        MyUtil.PrintLog(manualTechnologies.toString());
-
-//        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).setType(0);
-        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
@@ -85,5 +100,18 @@
     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