From 55e5fcc8df938fefc94103149dfe3acd328abfd6 Mon Sep 17 00:00:00 2001
From: XiaoRuby <3114200645@qq.com>
Date: 星期三, 30 八月 2023 18:00:54 +0800
Subject: [PATCH] MOM系统-8-30

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

diff --git a/production-server/src/main/java/com/yuanchu/mom/service/impl/ManualTechnologyServiceImpl.java b/production-server/src/main/java/com/yuanchu/mom/service/impl/ManualTechnologyServiceImpl.java
index 537e132..7b48b05 100644
--- a/production-server/src/main/java/com/yuanchu/mom/service/impl/ManualTechnologyServiceImpl.java
+++ b/production-server/src/main/java/com/yuanchu/mom/service/impl/ManualTechnologyServiceImpl.java
@@ -1,5 +1,6 @@
 package com.yuanchu.mom.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.yuanchu.mom.mapper.DeviceMapper;
@@ -7,9 +8,13 @@
 import com.yuanchu.mom.mapper.ManufactureOrderMapper;
 import com.yuanchu.mom.pojo.ManualTechnology;
 import com.yuanchu.mom.pojo.ManufactureOrder;
+import com.yuanchu.mom.pojo.Technology;
 import com.yuanchu.mom.pojo.dto.ManualTechnologyDto;
 import com.yuanchu.mom.service.ManualTechnologyService;
+import com.yuanchu.mom.service.TechnologyService;
+import com.yuanchu.mom.utils.MyUtil;
 import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -17,10 +22,7 @@
 import java.text.DateFormat;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -38,66 +40,69 @@
     @Resource
     ManufactureOrderMapper manufactureOrderMapper;
 
+    @Autowired
+    private TechnologyService technologyService;
 
     //鎺掍骇-->鏌ョ湅
     @Override
     public List<Map<String, Object>> seleDatil(Integer manOrdId) {
+
         return manualTechnologyMapper.seleDatil(manOrdId);
     }
 
     //鎺掍骇-->鏇存柊
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void output(String date, List<ManualTechnologyDto> manualTechnologyDtoList) throws ParseException {
-        //鏇存柊姣忎釜宸ュ簭鐨勮澶�
+    public void output(String date, Integer manufactureOrderId, Integer schedulingNumber, List<ManualTechnologyDto> manualTechnologyDtoList) throws ParseException {
+        // 鏌ヨ宸ヨ壓锛岀敤浜庡尮閰嶆瘡涓鍗曠殑宸ュ簭鍛ㄦ湡
+        LambdaQueryWrapper<Technology> wrapper = new LambdaQueryWrapper<>();
+        wrapper.select(Technology::getId, Technology::getProductionQuota);
+        List<Technology> technologies = technologyService.list(wrapper);
+
+
+        //鍖归厤姣忎釜璁㈠崟鐨勫伐搴忓懆鏈�
         List<ManualTechnology> manualTechnologies = manualTechnologyDtoList.stream().map(manualTechnologyDto -> {
             ManualTechnology manualTechnology = new ManualTechnology();
             BeanUtils.copyProperties(manualTechnologyDto, manualTechnology);
+            technologies.forEach(i -> {
+                if (Objects.equals(manualTechnology.getTechnologyId(), i.getId())){
+                    manualTechnology.setPeriod((int) Math.ceil((double)schedulingNumber/i.getProductionQuota()));
+                }
+            });
             return manualTechnology;
         }).collect(Collectors.toList());
-        //鎵归噺鏇存柊璁惧id
-        manualTechnologyMapper.updateBatchManualTechnology(manualTechnologies);
-        Integer manufactureOrderId = manualTechnologyMapper.selectById(manualTechnologyDtoList.get(1).getId()).getManufactureOrderId();
-        List<ManualTechnology> manualTechnologyList = manualTechnologyMapper.selectList(Wrappers.<ManualTechnology>query().eq("manufacture_order_id", manufactureOrderId));
-        /*璧嬪��(鏈�寮�濮嬬涓�涓伐搴忕殑寮�濮嬫棩鏈�)*/
+
+
+        // 璁$畻宸ュ簭鐨勫紑濮嬫棩鏈熶互鍙婄粨鏉熸棩鏈�
         DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
         Date parse = dateFormat.parse(date);
         //灏嗚捣濮嬫棩鏈熻祴鍊肩粰Calendar瀵硅薄
         Calendar calendar = Calendar.getInstance();
         calendar.setTime(parse);
         //绗竴涓伐搴�
-        ManualTechnology manualTechnology = manualTechnologyList.get(0);
+        ManualTechnology manualTechnology = manualTechnologies.get(0);
         calendar.add(Calendar.DATE, manualTechnology.getPeriod());
+
+
         manualTechnology.setStartTime(parse).setEndTime(calendar.getTime());
         //寰幆璧嬪�兼椂闂�
-        for (int i = 0; i < manualTechnologyList.size()-1 ; i++) {
+        for (int i = 0; i < manualTechnologies.size()-1 ; i++) {
             Calendar calendar1 = Calendar.getInstance();
-            calendar1.setTime(manualTechnologyList.get(i).getEndTime());
-            ManualTechnology technology = manualTechnologyList.get(i + 1);
+            calendar1.setTime(manualTechnologies.get(i).getEndTime());
+            ManualTechnology technology = manualTechnologies.get(i + 1);
             calendar1.add(Calendar.DATE,1);
             technology.setStartTime(calendar1.getTime());
             calendar1.add(Calendar.DATE,technology.getPeriod());
             technology.setEndTime(calendar1.getTime());
         }
-        //鎵归噺鏇存柊
-        manualTechnologyMapper.updateBatchManualTechnology(manualTechnologyList);
-        //濡傛灉璇ヤ骇鍝佷笅鐨勬墍鏈夊伐搴忛兘瀹夋帓浜�,鍒欏皢鐘舵�佹敼涓哄凡鎺掍骇杩樻湁寰呬笅杈�
-        if (checkFieldExistence(manualTechnologies)) {
-            ManufactureOrder manufactureOrder = new ManufactureOrder();
-            manufactureOrder.setId(manufactureOrderId).setType(1).setGoState(0);
-            manufactureOrderMapper.updateById(manufactureOrder);
-        }
-    }
 
 
-    /*鍒ゆ柇鏄惁鎵�鏈夊伐搴忓叏閮ㄩ兘瀹夋帓浜嗚澶�*/
-    public static boolean checkFieldExistence(List<ManualTechnology> dataList) {
-        for (ManualTechnology data : dataList) {
-            if (data.getDeviceId() == null) {
-                return false;
-            }
-        }
-        return true;
+        // 鏁版嵁澶勭悊瀹屾垚寮�濮嬫壒閲忔洿鏂癕ysql
+        manualTechnologyMapper.updateBatchManualTechnology(schedulingNumber, manualTechnologies);
+
+
+        // 宸ュ簭鏇存柊瀹屾瘯锛屾洿鏂拌鍗曠殑鐘舵�侊紝灏嗗叾鏇存柊涓哄凡鎺掍骇锛�1锛岃繕鏈夊緟涓嬭揪锛�0
+        manufactureOrderMapper.updateManufacture(manufactureOrderId, schedulingNumber);
     }
 }
 

--
Gitblit v1.9.3