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 | 80 ++++++++++++++++++++++++++++++++++++++--
1 files changed, 76 insertions(+), 4 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..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,16 +1,29 @@
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;
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.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;
import javax.annotation.Resource;
-import java.util.List;
-import java.util.Map;
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.*;
+import java.util.stream.Collectors;
/**
* 缂栧埗宸ュ簭琛�(ManualTechnology)琛ㄦ湇鍔″疄鐜扮被
@@ -25,12 +38,71 @@
ManualTechnologyMapper manualTechnologyMapper;
@Resource
- DeviceMapper deviceMapper;
+ ManufactureOrderMapper manufactureOrderMapper;
+
+ @Autowired
+ private TechnologyService technologyService;
//鎺掍骇-->鏌ョ湅
@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, 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());
+
+
+ // 璁$畻宸ュ簭鐨勫紑濮嬫棩鏈熶互鍙婄粨鏉熸棩鏈�
+ DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
+ Date parse = dateFormat.parse(date);
+ //灏嗚捣濮嬫棩鏈熻祴鍊肩粰Calendar瀵硅薄
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(parse);
+ //绗竴涓伐搴�
+ ManualTechnology manualTechnology = manualTechnologies.get(0);
+ calendar.add(Calendar.DATE, manualTechnology.getPeriod());
+
+
+ manualTechnology.setStartTime(parse).setEndTime(calendar.getTime());
+ //寰幆璧嬪�兼椂闂�
+ for (int i = 0; i < manualTechnologies.size()-1 ; i++) {
+ Calendar calendar1 = Calendar.getInstance();
+ 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());
+ }
+
+
+ // 鏁版嵁澶勭悊瀹屾垚寮�濮嬫壒閲忔洿鏂癕ysql
+ manualTechnologyMapper.updateBatchManualTechnology(schedulingNumber, manualTechnologies);
+
+
+ // 宸ュ簭鏇存柊瀹屾瘯锛屾洿鏂拌鍗曠殑鐘舵�侊紝灏嗗叾鏇存柊涓哄凡鎺掍骇锛�1锛岃繕鏈夊緟涓嬭揪锛�0
+ manufactureOrderMapper.updateManufacture(manufactureOrderId, schedulingNumber);
+ }
}
--
Gitblit v1.9.3