From c28d3bb363dde2afb44c168b93379b2bf6b1f67f Mon Sep 17 00:00:00 2001
From: XiaoRuby <3114200645@qq.com>
Date: 星期四, 07 九月 2023 15:26:22 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
inspect-server/src/main/java/com/yuanchu/mom/service/impl/FinishedInspectServiceImpl.java | 377 ++++++++++++++++++++++++++++++-----------------------
1 files changed, 212 insertions(+), 165 deletions(-)
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/FinishedInspectServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/FinishedInspectServiceImpl.java
index ffb04db..9704d8b 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/FinishedInspectServiceImpl.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/FinishedInspectServiceImpl.java
@@ -3,19 +3,14 @@
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.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.yuanchu.mom.mapper.ImportRepertoryMapper;
-import com.yuanchu.mom.mapper.InspectUnacceptedMapper;
-import com.yuanchu.mom.mapper.RepertoryMapper;
-import com.yuanchu.mom.pojo.FinishedInspect;
-import com.yuanchu.mom.mapper.FinishedInspectMapper;
-import com.yuanchu.mom.pojo.ImportRepertory;
-import com.yuanchu.mom.pojo.InspectUnaccepted;
-import com.yuanchu.mom.pojo.Repertory;
-import com.yuanchu.mom.service.FinishedInspectService;
+import com.yuanchu.mom.mapper.*;
+import com.yuanchu.mom.pojo.*;
+import com.yuanchu.mom.pojo.vo.FinishedInspectVo;
+import com.yuanchu.mom.service.*;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.yuanchu.mom.service.InspectionItemService;
-import com.yuanchu.mom.service.ProductService;
+import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -23,6 +18,8 @@
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
+import java.util.stream.Collectors;
/**
* <p>
@@ -36,13 +33,28 @@
public class FinishedInspectServiceImpl extends ServiceImpl<FinishedInspectMapper, FinishedInspect> implements FinishedInspectService {
@Resource
- private FinishedInspectMapper finishedInspectMapper;
+ FinishedInspectMapper finishedInspectMapper;
- @Autowired
- private ProductService productService;
+ @Resource
+ MaterialMapper materialMapper;
- @Autowired
- private InspectionItemService inspectionItemService;
+ @Resource
+ StandardService standardService;
+
+ @Resource
+ SpecificationsService specificationsService;
+
+ @Resource
+ ManualTechnologyMapper manualTechnologyMapper;
+
+ @Resource
+ ProductService productService;
+
+ @Resource
+ InspectionItemService inspectionItemService;
+
+ @Resource
+ InspectionItemMapper inspectionItemMapper;
@Resource
InspectUnacceptedMapper inspectUnacceptedMapper;
@@ -50,162 +62,197 @@
@Resource
RepertoryMapper repertoryMapper;
- @Resource
- ImportRepertoryMapper importRepertoryMapper;
-
+ //鏂板妫�楠屽崟-->鏍规嵁璁㈠崟鍙烽�夋嫨浜у搧淇℃伅
@Override
- public Integer addProcessInspectionSheet(FinishedInspect finishedInspect) {
- finishedInspect.setType(0);
- int insert = finishedInspectMapper.insert(finishedInspect);
- if (insert == 1) {
- List<Map<String, Object>> maps = productService.selectProductList(finishedInspect.getSpecificationsId());
- inspectionItemService.insertList(finishedInspect.getId(), maps);
- return insert;
- }
- return 0;
+ public List<Map<String, Object>> chooseMater(String orderNumber) {
+ return finishedInspectMapper.chooseMater(orderNumber);
}
-
+ //鏂板鎴愬搧妫�楠屽崟
@Override
@Transactional(rollbackFor = Exception.class)
- public Integer inspectionConclusion(String username, Integer finishedInspectId, Integer result) {
- //鏇存柊妫�楠屽崟閲岄潰鐨勬楠岀粨璁�
- LambdaUpdateWrapper<FinishedInspect> updateWrapper = new LambdaUpdateWrapper<>();
- updateWrapper.eq(FinishedInspect::getId, finishedInspectId);
- updateWrapper.set(FinishedInspect::getResult, result);
- finishedInspectMapper.update(new FinishedInspect(), updateWrapper);
- FinishedInspect finishedInspect = finishedInspectMapper.selectById(finishedInspectId);
- /*妫�楠岀粨璁轰负涓嶅悎鏍�*/
- if (result == 0) {
- //濡傛灉鏄垚鍝佺殑缁撹涓轰笉鍚堟牸,闇�瑕佹柊澧炴垚鍝佷笉鍚堟牸妫�楠屽崟
- if (finishedInspect.getType() == 0) {
- /*鏂板鎴愬搧涓嶅悎鏍兼楠屽崟*/
- InspectUnaccepted inspectUnaccepted = InspectUnaccepted.builder()
- .reason(finishedInspect.getProjectName() + "涓嶅悎鏍�") //鏆備笖瀹氫箟涓哄伐绋嬪悕绉颁笉鍚堟牸
- .rawInspectId(finishedInspectId)
- .build();
- inspectUnacceptedMapper.insert(inspectUnaccepted);
- }
- //濡傛灉鏄繃绋嬫楠岀殑缁撹涓轰笉鍚堟牸,闇�瑕佹柊澧炲崐鎴愬搧搴撳瓨涓旀楠岀粨鏋滀负涓嶅悎鏍�
- if (finishedInspect.getType() == 1) {
- /*鏂板鍗婃垚鍝�(1)搴撳瓨*/
- //濡傛灉鍏ュ簱鐨勪俊鎭竴鏍峰彧鏈夊簱瀛樹笉涓�鏍�,鍒欏湪鍘熸潵鐨勫簱瀛樻暟閲忎笂鍔犱笂鐩稿簲鐨勬暟閲�
- LambdaQueryWrapper<Repertory> queryWrapper = new LambdaQueryWrapper<>();
- queryWrapper.eq(Repertory::getOrderCode, finishedInspect.getOrderNumber())
- .eq(Repertory::getQualityTraceability, finishedInspect.getQualityTraceability())
- .eq(Repertory::getName, finishedInspect.getMaterial())
- .eq(Repertory::getSpecifications, finishedInspect.getSpecificationsModel())
- .eq(Repertory::getUnit, finishedInspect.getUnit())
- .eq(Repertory::getType, 1)
- .eq(Repertory::getCheckResult, 0);
- Repertory rep = repertoryMapper.selectOne(queryWrapper);
- if (rep != null) {
- rep.setNumber(rep.getNumber() + finishedInspect.getQuantity());
- rep.setUserName(username);
- repertoryMapper.updateById(rep);
- } else {
- //濡傛灉闄や簡搴撳瓨鍒殑淇℃伅鏈変换浣曚竴涓笉涓�鏍�,鍒欐柊澧炰竴鏉″崐鎴愬搧搴撳瓨
- Repertory repertory = Repertory.builder()
- .orderCode(finishedInspect.getOrderNumber())
- .qualityTraceability(finishedInspect.getQualityTraceability())
- .name(finishedInspect.getMaterial())
- .specifications(finishedInspect.getSpecificationsModel())
- .unit(finishedInspect.getUnit())
- .number(finishedInspect.getQuantity())
- .userName(username)
- .type(1)
- .checkResult(0)//妫�楠岀粨鏋滀负涓嶅悎鏍�
- .build();
- repertoryMapper.insert(repertory);
- }
- }
- }
- /*妫�楠岀粨璁轰负鍚堟牸*/
- if (result == 1) {
- //濡傛灉鏄垚鍝佹楠屽悎鏍�,,闇�瑕佹柊澧炴垚鍝�(0)搴撳瓨鍜屽叆搴撹褰�
- if (finishedInspect.getType() == 0) {
- /*鏂板鎴愬搧鍏ュ簱璁板綍*/
- ImportRepertory importRepertory = ImportRepertory.builder()
- .orderCode(finishedInspect.getOrderNumber())
- .qualityTraceability(finishedInspect.getQualityTraceability())
- .name(finishedInspect.getMaterial())
- .specifications(finishedInspect.getSpecificationsModel())
- .unit(finishedInspect.getUnit())
- .number(finishedInspect.getQuantity())
- .userName(username)
- .build();
- importRepertoryMapper.insert(importRepertory);
- /*鏂板鎴愬搧(0)搴撳瓨*/
- //濡傛灉鍏ュ簱鐨勪俊鎭竴鏍峰彧鏈夊簱瀛樹笉涓�鏍�,鍒欏湪鍘熸潵鐨勫簱瀛樻暟閲忎笂鍔犱笂鐩稿簲鐨勬暟閲�
- LambdaQueryWrapper<Repertory> queryWrapper = new LambdaQueryWrapper<>();
- queryWrapper.eq(Repertory::getOrderCode, finishedInspect.getOrderNumber())
- .eq(Repertory::getQualityTraceability, finishedInspect.getQualityTraceability())
- .eq(Repertory::getName, finishedInspect.getMaterial())
- .eq(Repertory::getSpecifications, finishedInspect.getSpecificationsModel())
- .eq(Repertory::getUnit, finishedInspect.getUnit())
- .eq(Repertory::getType, 0)
- .eq(Repertory::getCheckResult, 1);
- Repertory rep = repertoryMapper.selectOne(queryWrapper);
- if (rep != null) {
- rep.setNumber(rep.getNumber() + finishedInspect.getQuantity());
- rep.setUserName(username);
- repertoryMapper.updateById(rep);
- } else {
- //濡傛灉闄や簡搴撳瓨鍒殑淇℃伅鏈変换浣曚竴涓笉涓�鏍�,鍒欐柊澧炰竴鏉℃垚鍝佸簱瀛�
- Repertory repertory = Repertory.builder()
- .orderCode(finishedInspect.getOrderNumber())
- .qualityTraceability(finishedInspect.getQualityTraceability())
- .name(finishedInspect.getMaterial())
- .specifications(finishedInspect.getSpecificationsModel())
- .unit(finishedInspect.getUnit())
- .number(finishedInspect.getQuantity())
- .userName(username)
- .type(0)
- .checkResult(1) //搴撳瓨妫�楠岀粨鏋滀负鍚堟牸
- .build();
- repertoryMapper.insert(repertory);
- }
- }
- //濡傛灉鏄繃绋嬫楠屽悎鏍�,闇�瑕佹柊澧炲崐鎴愬搧(1)搴撳瓨,妫�楠岀粨鏋滀负鍚堟牸1
- if (finishedInspect.getType()==1) {
- /*鏂板鍗婃垚鍝�(1)搴撳瓨*/
- //濡傛灉鍏ュ簱鐨勪俊鎭竴鏍峰彧鏈夊簱瀛樹笉涓�鏍�,鍒欏湪鍘熸潵鐨勫簱瀛樻暟閲忎笂鍔犱笂鐩稿簲鐨勬暟閲�
- LambdaQueryWrapper<Repertory> queryWrapper = new LambdaQueryWrapper<>();
- queryWrapper.eq(Repertory::getOrderCode, finishedInspect.getOrderNumber())
- .eq(Repertory::getQualityTraceability, finishedInspect.getQualityTraceability())
- .eq(Repertory::getName, finishedInspect.getMaterial())
- .eq(Repertory::getSpecifications, finishedInspect.getSpecificationsModel())
- .eq(Repertory::getUnit, finishedInspect.getUnit())
- .eq(Repertory::getType, 1)
- .eq(Repertory::getCheckResult, 1);
- Repertory rep = repertoryMapper.selectOne(queryWrapper);
- if (rep != null) {
- rep.setNumber(rep.getNumber() + finishedInspect.getQuantity());
- rep.setUserName(username);
- repertoryMapper.updateById(rep);
- } else {
- //濡傛灉闄や簡搴撳瓨鍒殑淇℃伅鏈変换浣曚竴涓笉涓�鏍�,鍒欐柊澧炰竴鏉″崐鎴愬搧搴撳瓨
- Repertory repertory = Repertory.builder()
- .orderCode(finishedInspect.getOrderNumber())
- .qualityTraceability(finishedInspect.getQualityTraceability())
- .name(finishedInspect.getMaterial())
- .specifications(finishedInspect.getSpecificationsModel())
- .unit(finishedInspect.getUnit())
- .number(finishedInspect.getQuantity())
- .userName(username)
- .type(1)
- .checkResult(1)//妫�楠岀粨鏋滀负鍚堟牸
- .build();
- repertoryMapper.insert(repertory);
- }
- }
-
- }
- return 1;
+ public Integer addProcessInspectionSheet(String userId, FinishedInspectVo finishedInspectVo) {
+ /*鏂板鎴愬搧妫�楠屽崟*/
+ FinishedInspect finishedInspect = new FinishedInspect();
+ finishedInspect.setUserId(Integer.parseInt(userId));
+ finishedInspect.setOrderNumber(finishedInspectVo.getOrderNumber());
+ finishedInspect.setCustomerName(finishedInspectVo.getPrname());
+ finishedInspect.setProjectName(finishedInspectVo.getSname());
+ finishedInspect.setQualityTraceability(finishedInspectVo.getQualityTraceability());
+ finishedInspect.setUnit(finishedInspectVo.getUnit());
+ finishedInspect.setQuantity(finishedInspectVo.getQuantity());
+ finishedInspect.setSpecificationsModel(finishedInspectVo.getSpecificationsModel());
+ finishedInspect.setMaterial(finishedInspectVo.getMaterial());
+ finishedInspect.setMaterialCode(finishedInspectVo.getMcode());
+ finishedInspectMapper.insert(finishedInspect);
+ /*鎵归噺鏂板鎴愬搧妫�楠岄」鐩崟*/
+ //鑾峰彇鍨嬪彿id
+ Integer specificationId = getSpecificationId(finishedInspectVo.getMaterial(), finishedInspectVo.getMcode(), finishedInspectVo.getSpecificationsModel());
+ //鏍规嵁鐢熶骇璁㈠崟id鏌ヨ缂栧埗宸ュ簭鐨勬渶鍚庝竴閬撳伐鑹�
+ List<ManualTechnology> manualTechnologyList = manualTechnologyMapper.selAllByMoId(finishedInspectVo.getId());
+ //鑾峰彇鏈�鍚庝竴閬撳伐鑹哄叧鑱旂殑宸ヨ壓璺嚎id
+ Integer technologyId = manualTechnologyList.get(0).getTechnologyId();
+ //鏌ヨ鏍囧噯BOM鎶�鏈寚鏍囦腑璇ュ瀷鍙峰伐鑹轰笅鏈�鏂扮増鏈殑妫�楠岄」鐩�
+ Integer ver = productService.selectVerByPro(specificationId).get(0);//璇ュ瀷鍙蜂笅鎶�鏈寚鏍囨渶鏂扮増鏈�
+ List<Product> productList = productService.selProByVerSpe(technologyId, ver);
+ List<InspectionItem> inspectionItemList = productList.stream().map(product -> {
+ InspectionItem inspectionItem = new InspectionItem();
+ BeanUtils.copyProperties(product, inspectionItem);
+ inspectionItem.setInspectId(finishedInspect.getId());
+ inspectionItem.setType(2);//鎴愬搧
+ return inspectionItem;
+ }).collect(Collectors.toList());
+ inspectionItemService.saveBatch(inspectionItemList);
+ return finishedInspect.getId();
}
+ //涓婃姤(鏇存柊妫�楠岀姸鎬�)
@Override
- public IPage<Map<String, Object>> selectFinishedInspectPage(Page<Object> page, Integer inspectResult, String inspectDate, String inspectUsername) {
- return finishedInspectMapper.selectFinishedInspectPage(page, inspectResult, inspectDate, inspectUsername);
+ @Transactional(rollbackFor = Exception.class)
+ public String updateFinishInspectsById(String username,Integer id) {
+ /*鏇存柊妫�楠屽崟閲岄潰鐨勬楠岀粨璁�*/
+ //鍏堝垽鏂楠岀粨鏋�
+ List<Integer> results = inspectionItemMapper.getResult(id,1);
+ int count = 0;
+ for (Integer result : results) {
+ if (result != null && result == 1) {
+ count++;
+ }
+ }
+ FinishedInspect finishedInspect = finishedInspectMapper.selectById(id);
+ //濡傛灉妫�楠岄」鐩腑鐨勭粨璁哄寘鍚笉鍚堟牸鍒欐楠屽崟涓嶅悎鏍�
+ if (results.contains(0)) {
+ finishedInspect.setResult(0);//涓嶅悎鏍�
+ //鏇存柊妫�楠屽崟
+ finishedInspectMapper.updateById(finishedInspect);
+ } else if (count == results.size()) {
+ finishedInspect.setResult(1);//鍚堟牸
+ finishedInspectMapper.updateById(finishedInspect);
+ } else return "椤圭洰鏈楠屽畬!";
+ /*濡傛灉妫�楠岀粨璁轰负涓嶅悎鏍�,鍒欓渶瑕佹柊澧炰笉鍚堟牸妫�楠屽崟*/
+ if (finishedInspect.getResult() == 0) {
+ InspectUnaccepted finishUnaccepted = InspectUnaccepted.builder()
+ .reason(finishedInspect.getMaterial() + "涓嶅悎鏍�") //鏆備笖瀹氫箟涓轰骇鍝佸悕绉颁笉鍚堟牸
+ .rawInspectId(id)
+ .type(1) //绫诲瀷涓烘垚鍝佹楠�
+ .build();
+ inspectUnacceptedMapper.insert(finishUnaccepted);
+ }
+ /*濡傛灉妫�楠岀粨璁轰负鍚堟牸,鍒欓渶瑕佹柊澧炲崐鎴愬搧搴撳瓨*/
+ if (finishedInspect.getResult() == 1) {
+ //濡傛灉鍏ュ簱鐨勪俊鎭竴鏍峰彧鏈夊簱瀛樹笉涓�鏍�,鍒欏湪鍘熸潵鐨勫簱瀛樻暟閲忎笂鍔犱笂鐩稿簲鐨勬暟閲�
+ LambdaQueryWrapper<Repertory> queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper.eq(Repertory::getOrderCode, finishedInspect.getOrderNumber())
+ .eq(Repertory::getQualityTraceability, finishedInspect.getQualityTraceability())
+ .eq(Repertory::getName, finishedInspect.getMaterial())
+ .eq(Repertory::getSpecifications, finishedInspect.getSpecificationsModel())
+ .eq(Repertory::getUnit, finishedInspect.getUnit())
+ .eq(Repertory::getType, 1);
+ Repertory rep = repertoryMapper.selectOne(queryWrapper);
+ if (rep != null ) {
+ rep.setNumber(rep.getNumber() + finishedInspect.getQuantity());
+ rep.setUserName(username);
+ repertoryMapper.updateById(rep);
+ } else {
+ //濡傛灉闄や簡搴撳瓨鍒殑淇℃伅鏈変换浣曚竴涓笉涓�鏍�,鍒欐柊澧炰竴鏉℃垚鍝佸簱瀛�
+ Repertory repertory = new Repertory();
+ repertory.setOrderCode(finishedInspect.getOrderNumber());
+ repertory.setQualityTraceability(finishedInspect.getQualityTraceability());
+ repertory.setName(finishedInspect.getMaterial());
+ repertory.setSpecifications(finishedInspect.getSpecificationsModel());
+ repertory.setUnit(finishedInspect.getUnit());
+ repertory.setNumber(finishedInspect.getQuantity());
+ repertory.setUserName(username);
+ repertory.setType(1);//鍗婃垚鍝�
+ repertory.setCheckResult(1);//鏆傚畾涓嶅垹
+ repertoryMapper.insert(repertory);
+ }
+ }
+ return "涓婃姤鎴愬姛!";
}
+
+ //鍒嗛〉鏌ヨ鎴愬搧妫�楠屽崟鍒楄〃
+ @Override
+ public IPage<Map<String, Object>> selectFinishedInspectPage(Page<Object> page, Integer result, String material) {
+ return finishedInspectMapper.selectFinishedInspectPage(page, result,material);
+ }
+
+ //鏍规嵁妫�楠屽崟id鏌ヨ鎴愬搧妫�楠屽崟璇︽儏
+ @Override
+ public List<Map<String, Object>> selectFinishInspectsListById(Integer id) {
+ return finishedInspectMapper.selectFinishInspectsListById(id);
+ }
+
+
+ /*鏍规嵁鏍峰搧鍚嶇О,鏍峰搧缂栧彿,鍨嬪彿瑙勬牸鑾峰彇鍨嬪彿id*/
+ private Integer getSpecificationId(String name, String mcode, String specification) {
+ //鑾峰彇鐗╂枡id
+ Material material = materialMapper.selectOne(Wrappers.<Material>query()
+ .eq("name", name)
+ .eq("code", mcode));
+ if (Objects.isNull(material)) {
+ return null;
+ }
+ //鑾峰彇瑙勬牸鍚嶇О鍜屽瀷鍙峰悕绉�
+ String[] split = specification.split("-");
+ String stName = split[0];
+ String spName = split[1];
+ //鑾峰彇瑙勬牸id
+ Standard standard = standardService.getOne(Wrappers.<Standard>query()
+ .eq("name", stName)
+ .eq("material_id", material.getId()));
+ //鑾峰彇鍨嬪彿id
+ Specifications specifications = specificationsService.getOne(Wrappers.<Specifications>query()
+ .eq("name", spName)
+ .eq("standard_id", standard.getId()));
+ return specifications.getId();
+ }
+
+ /*鍒ゆ柇妫�娴嬪�兼槸鍚︽弧瓒虫爣鍑嗗�煎拰鍐呮帶鍊肩殑瑕佹眰,濡傛灉涓嶆弧瓒冲垯妫�楠岀粨璁轰负涓嶅悎鏍�*/
+ private int checkValues(String standardValueStr, String controlValueStr, String detectionValueStr) {
+ boolean isStandardValueSatisfied = isValueSatisfied(standardValueStr, detectionValueStr);
+ boolean isControlValueSatisfied = isValueSatisfied(controlValueStr, detectionValueStr);
+
+ if (isStandardValueSatisfied && isControlValueSatisfied) {
+ return 1;
+ } else {
+ return 0;
+ }
+ }
+
+ private boolean isValueSatisfied(String valueStr, String detectionValueStr) {
+ String substring = valueStr.substring(1, 2);
+ if (substring.equals("=")) {
+ String operator = valueStr.substring(0, 2);
+ Double standardValue = Double.parseDouble(valueStr.substring(2));
+ Double detectionValue = Double.parseDouble(detectionValueStr);
+ switch (operator) {
+ case ">=":
+ return detectionValue >= standardValue;
+ case "<=":
+ return detectionValue <= standardValue;
+ default:
+ return false;
+ }
+ } else {
+ String operator = valueStr.substring(0, 1);
+ Double standardValue = Double.parseDouble(valueStr.substring(1));
+ Double detectionValue = Double.parseDouble(detectionValueStr);
+ switch (operator) {
+ case ">":
+ return detectionValue > standardValue;
+ case "鈮�":
+ return detectionValue >= standardValue;
+ case "鈮�":
+ return detectionValue <= standardValue;
+ case "<":
+ return detectionValue < standardValue;
+ case "=":
+ return detectionValue.equals(standardValue);
+ default:
+ return false;
+ }
+ }
+ }
+
}
--
Gitblit v1.9.3