From 1db3bc9e405c959566dd19b549aff743793362bd Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期五, 18 八月 2023 18:06:33 +0800
Subject: [PATCH] 基础数据与生产计划

---
 production-server/src/main/java/com/yuanchu/mom/service/impl/ManualTechnologyServiceImpl.java |   71 ++++++++++++++++++++++++++++++++++-
 1 files changed, 69 insertions(+), 2 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 874c759..537e132 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
@@ -4,13 +4,24 @@
 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.ManualTechnologyDto;
 import com.yuanchu.mom.service.ManualTechnologyService;
+import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
+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.stream.Collectors;
 
 /**
  * 缂栧埗宸ュ簭琛�(ManualTechnology)琛ㄦ湇鍔″疄鐜扮被
@@ -25,12 +36,68 @@
     ManualTechnologyMapper manualTechnologyMapper;
 
     @Resource
-    DeviceMapper deviceMapper;
+    ManufactureOrderMapper manufactureOrderMapper;
+
 
     //鎺掍骇-->鏌ョ湅
     @Override
-    public List<Map<String,Object>> seleDatil(Integer manOrdId) {
+    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 {
+        //鏇存柊姣忎釜宸ュ簭鐨勮澶�
+        List<ManualTechnology> manualTechnologies = manualTechnologyDtoList.stream().map(manualTechnologyDto -> {
+            ManualTechnology manualTechnology = new ManualTechnology();
+            BeanUtils.copyProperties(manualTechnologyDto, manualTechnology);
+            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);
+        calendar.add(Calendar.DATE, manualTechnology.getPeriod());
+        manualTechnology.setStartTime(parse).setEndTime(calendar.getTime());
+        //寰幆璧嬪�兼椂闂�
+        for (int i = 0; i < manualTechnologyList.size()-1 ; i++) {
+            Calendar calendar1 = Calendar.getInstance();
+            calendar1.setTime(manualTechnologyList.get(i).getEndTime());
+            ManualTechnology technology = manualTechnologyList.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;
+    }
 }
 

--
Gitblit v1.9.3