From 44a9b4729e058e75dfba2892803038ee91963d77 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期一, 25 九月 2023 15:28:50 +0800
Subject: [PATCH] 修改4.0 9.25
---
inspect-server/src/main/java/com/yuanchu/mom/service/impl/RawInspectServiceImpl.java | 339 ++++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 232 insertions(+), 107 deletions(-)
diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/RawInspectServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/RawInspectServiceImpl.java
index 1d16519..5fac56c 100644
--- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/RawInspectServiceImpl.java
+++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/RawInspectServiceImpl.java
@@ -1,20 +1,21 @@
package com.yuanchu.mom.service.impl;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import cn.hutool.core.date.DateUtil;
+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.Task.BatchInfo;
+import com.yuanchu.mom.Task.SyncOrder;
import com.yuanchu.mom.mapper.*;
import com.yuanchu.mom.pojo.*;
import com.yuanchu.mom.pojo.vo.RawInsProductVo;
import com.yuanchu.mom.pojo.vo.RawInspectVo;
import com.yuanchu.mom.service.*;
-import com.yuanchu.mom.utils.MyUtil;
-import org.apache.logging.log4j.util.Strings;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
-
+import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.*;
import java.util.stream.Collectors;
@@ -25,8 +26,7 @@
* @createDate 2023-07-31 14:43:15
*/
@Service
-public class RawInspectServiceImpl extends ServiceImpl<RawInspectMapper, RawInspect>
- implements RawInspectService {
+public class RawInspectServiceImpl extends ServiceImpl<RawInspectMapper, RawInspect> implements RawInspectService {
@Resource
RawInspectMapper rawInspectMapper;
@@ -41,125 +41,250 @@
InspectUnacceptedMapper inspectUnacceptedMapper;
@Resource
- DeviceService deviceService;
+ UserMapper userMapper;
- @Resource
- MaterialMapper materialMapper;
-
- @Resource
- UserService userService;
-
- @Resource
- SpecificationsService specificationsService;
-
- @Resource
- StandardService standardService;
-
- @Resource
- ProductMapper productMapper;
-
+ //鏂板鍘熸潗鏂欐楠屽崟-->鏍规嵁鍘熸潗鏂欑紪鐮佸緱鍒癷fs涓殑鎶ユ鏁版嵁
@Override
- public Map<String, Object> selectRawInspectsList(int pageSize, int countSize, String formTime, String createTime, int insState, int judgeState) {
- Map<String, Object> map = new HashMap<>();
- map.put("count", rawInspectMapper.selectCount(new QueryWrapper<RawInspect>().eq("state", 1)));
- map.put("data", rawInspectMapper.selectRawInspectsByLimit((pageSize - 1) * countSize, pageSize * countSize, formTime, createTime, insState, judgeState));
- return map;
+ public List<RawInspectVo> chooseIFS(String code) {
+ List<RawInspectVo> rawInspectVos = new ArrayList<>();
+ List<Map<String, Object>> mapList = SyncOrder.ifsInterfaces();
+ for (Map<String, Object> map : mapList) {
+ // todo: 鍚庣画闇�瑕佸皢鐘舵�佹敼鎴愬緟妫�楠�
+ if (map.get("STATE").equals("宸叉帴鏀�")) {
+ if (map.get("PART_NO").toString().equals(code)) {
+ RawInspectVo rawInspectVo = new RawInspectVo();
+ rawInspectVo.setCode(map.get("PART_NO").toString()); //鍘熸潗鏂欑紪鐮�
+ String[] split = map.get("PART_DESC").toString().split("锛�");
+ rawInspectVo.setName(split[0]); //鍘熸潗鏂欏悕绉�
+ rawInspectVo.setSpecifications(split[1]); //鍨嬪彿瑙勬牸
+ rawInspectVo.setUnit(map.get("BUY_UNIT_MEAS").toString()); //鍗曚綅
+ rawInspectVo.setNumber(Integer.parseInt(String.valueOf(map.get("QTY_TO_INSPECT")))); //鏁伴噺
+ rawInspectVo.setFormTime(DateUtil.parse(map.get("APPROVED_DATE").toString())); //鏉ユ枡鏃ユ湡
+ rawInspectVo.setSupplier(map.get("SUPPLIER_NAME").toString()); //渚涘簲鍟�
+ String orderNo = map.get("ORDER_NO").toString();//璁㈠崟鍙�
+ String releaseNo = map.get("RELEASE_NO").toString();//涓嬭揪鍙�
+ String lineNo = map.get("LINE_NO").toString();//琛屽彿
+ String lotBatchNo = map.get("LOT_BATCH_NO").toString();//鎵瑰彿
+ String locationNo = map.get("LOCATION_NO").toString();//搴撲綅鍙�
+ rawInspectVo.setMessage(orderNo+","+releaseNo+","+lineNo+","+lotBatchNo+","+locationNo);
+ rawInspectVos.add(rawInspectVo);
+
+ //鏌ヨ璇ュ師鏉愭枡鏄惁鏈夋楠岄」鐩褰�
+ RawInspect rawInspect = rawInspectMapper.selOneByCode(code);
+ if (ObjectUtils.isNotEmpty(rawInspect)) {
+ List<RawInsProduct> rawInsProductList = rawInsProductMapper.selectList(Wrappers.<RawInsProduct>query().eq("raw_inspect_id", rawInspect.getId()));
+ List<RawInsProductVo> rawInsProductVos = rawInsProductList.stream().map(rawInsProduct -> {
+ RawInsProductVo rawInsProductVo = new RawInsProductVo();
+ rawInsProductVo.setName(rawInsProduct.getName());
+ rawInsProductVo.setUnit(rawInsProduct.getUnit());
+ rawInsProductVo.setRequired(rawInsProduct.getRequired());
+ rawInsProductVo.setInternal(rawInsProduct.getInternal());
+ return rawInsProductVo;
+ }).collect(Collectors.toList());
+ rawInspectVo.setRawInsProducts(rawInsProductVos);
+ }
+ }
+ }
+ }
+ return rawInspectVos;
+ }
+
+ //鏂板鍘熸潗鏂欐楠屽崟
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public String addRawInspects(String userId, RawInspectVo rawInspectVo) {
+ //鎶ユ浜�(鏂板妫�楠屽崟鐨勪汉)
+ rawInspectVo.setUserName(userMapper.selectById(userId).getName());
+ //鏍¢獙鏍囧噯鍊�,鍐呮帶鍊兼牸寮�
+ List<RawInsProductVo> rawInsProductVos = rawInspectVo.getRawInsProducts();
+ /*鏂板鍘熸潗鏂欐楠屽崟*/
+ RawInspect rawInspect = new RawInspect();
+ BeanUtils.copyProperties(rawInspectVo, rawInspect);
+ rawInspectMapper.insert(rawInspect);
+ /*鏂板鍘熸潗鏂欐楠岄」鐩崟*/
+ List<RawInsProduct> rawInsProductList = rawInsProductVos.stream().map(rawInsProVo -> {
+ RawInsProduct rawInsProduct = new RawInsProduct();
+ BeanUtils.copyProperties(rawInsProVo, rawInsProduct);
+ if (ObjectUtils.isNotEmpty(rawInsProduct.getTestValue())) {
+ if (rawInsProduct.getTestValue().equals("杩�")) {
+ rawInsProduct.setTestState(1);
+ } else if (rawInsProduct.getTestValue().equals("涓嶈繃")) {
+ rawInsProduct.setTestState(0);
+ } else {
+ //鍒ゆ柇妫�娴嬪�兼槸鍚︽弧瓒虫爣鍑嗗�煎拰鍐呮帶鍊肩殑瑕佹眰,濡傛灉涓嶆弧瓒冲垯妫�楠岀粨璁轰负涓嶅悎鏍�0
+ String required = rawInsProduct.getRequired();//鏍囧噯鍊�
+ String internal = rawInsProduct.getInternal();//鍐呮帶鍊�
+ String testValue = rawInsProduct.getTestValue();//妫�娴嬪��
+ char req = required.charAt(0);
+ List<Integer> list = Arrays.stream(testValue.split(",")).map(s -> {
+ int values = 2;
+ if (req == '>' || req == '<' || req == '=') {
+ values = checkValues(required, internal, s);
+ } else {
+ values = conValues(required, internal, s);
+ }
+ return values;
+ }).collect(Collectors.toList());
+ if (list.contains(0)) {
+ //濡傛灉鍏朵腑涓�涓楠屽�间笉鍚堟牸鍒欒椤圭洰妫�楠屼笉鍚堟牸
+ rawInsProduct.setTestState(0);
+ } else {
+ rawInsProduct.setTestState(1);
+ }
+ }
+ rawInsProduct.setUserId(Integer.parseInt(userId));
+ }
+ rawInsProduct.setRawInspectId(rawInspect.getId());
+ return rawInsProduct;
+ }).collect(Collectors.toList());
+ //妫�楠岄」鐩壒閲忔坊鍔�
+ rawInsProductService.saveBatch(rawInsProductList);
+ return rawInspect.getId().toString();
+ }
+
+
+ //鍒嗛〉鏌ヨ鍘熸潗鏂欐楠屽崟鍒楄〃
+ @Override
+ public IPage<Map<String, Object>> selectRawInspectsList(Page<Object> page, String formTime, String code, Integer insState, String name) {
+ return rawInspectMapper.selectRawInspectsList(page, formTime, code, insState, name);
}
//鏍规嵁妫�楠屽崟id鏌ヨ鍘熸潗鏂欐楠屽崟璇︽儏
@Override
- public RawInspectVo selectRawInspectsListById(Integer id) {
- //灏嗘楠屽崟鍩烘湰淇℃伅鏌ヨ鍑烘潵骞跺皝瑁呭埌RawInspectVo瀵硅薄涓�
- RawInspect rawInspect = rawInspectMapper.selectById(id);
- RawInspectVo rawInspectVo = new RawInspectVo();
- BeanUtils.copyProperties(rawInspect, rawInspectVo);
- //鏌ヨ妫�楠屽崟閲岄潰鐨勬楠岄」鐩�,骞跺皝瑁呭埌RawInspectVo瀵硅薄涓�
- LambdaQueryWrapper<RawInsProduct> queryWrapper = new LambdaQueryWrapper<>();
- queryWrapper.eq(RawInsProduct::getRawInspectId, id);
- List<RawInsProduct> rawInsProducts = rawInsProductMapper.selectList(queryWrapper);
- //杩欓噷鏌ュ埌鐨勮澶噄d鍜屾楠屽憳id瑕佹煡璇㈠悕绉�
- List<RawInsProductVo> rawInsProductVos = rawInsProducts.stream().map(rawInsProduct -> {
- //灏嗕竴涓璞$殑鍊艰祴鍊肩粰鍙︿竴涓璞�
- RawInsProductVo rawInsProductVo = new RawInsProductVo();
- BeanUtils.copyProperties(rawInsProduct, rawInsProductVo);
- //鑾峰彇璁惧鍚�(鍓嶆彁鏄鏋滃瓨鍦�)
- if (rawInsProduct.getDeviceId() != null) {
- String deviceName = deviceService.getDeviceNameById(rawInsProduct.getDeviceId());
- rawInsProductVo.setDeviceName(deviceName);
- }
- //鑾峰彇鐢ㄦ埛鍚�(鍓嶆彁鏄鏋滃瓨鍦�)
- if (rawInsProduct.getUserId() != null) {
- String userName = userService.selectNameById(rawInsProduct.getUserId());
- rawInsProductVo.setUserName(userName);
- }
- return rawInsProductVo;
- }).collect(Collectors.toList());
- rawInspectVo.setRawInsProducts(rawInsProductVos);
- return rawInspectVo;
+ public Map<String, Object> selectRawInspectsListById(Integer id) {
+ return rawInspectMapper.selectRawInspectsListById(id);
}
//鏇存柊妫�楠岀姸鎬�(涓婃姤)
@Override
- public boolean updateRawInspectsById(Integer id) {
- //鏇存柊妫�楠屽崟閲岄潰鐨勬楠岀姸鎬佸拰妫�楠岀粨璁�
- RawInspectVo rawInspectVo = selectRawInspectsListById(id);
- RawInspect rawInspect = RawInspect.builder()
- .id(id)
- .insState(1)
- .insTime(new Date())
- .judgeState(rawInspectVo.getJudgeState())
- .build();
- rawInspectMapper.updateById(rawInspect);
- //濡傛灉妫�楠岀粨璁轰负涓嶅悎鏍�,鍒欓渶瑕佹柊澧炰笉鍚堟牸妫�楠屽崟
- if (rawInspectVo.getJudgeState() == 0) {
+ @Transactional(rollbackFor = Exception.class)
+ public String updateRawInspectsById(Integer id, Integer number) {
+ /*鏇存柊妫�楠屽崟閲岄潰鐨勬楠岀粨璁�*/
+ //鍏堝垽鏂楠岀粨鏋�
+ List<Integer> results = rawInsProductMapper.getresult(id);
+ int count = 0;
+ for (Integer result : results) {
+ if (result != null && result == 1) {
+ count++;
+ }
+ }
+ RawInspect rawInspect = new RawInspect();
+ rawInspect.setId(id);
+ rawInspect.setInsState(1);
+ rawInspect.setInsTime(new Date());
+ //濡傛灉妫�楠岄」鐩腑鐨勭粨璁哄寘鍚笉鍚堟牸鍒欐楠屽崟涓嶅悎鏍�
+ if (results.contains(0)) {
+ rawInspect.setJudgeState(0);
+ //鏇存柊妫�楠屽崟
+ rawInspectMapper.updateById(rawInspect);
+ } else if (count == results.size()) {
+ rawInspect.setJudgeState(1);
+ rawInspectMapper.updateById(rawInspect);
+ } else return "椤圭洰鏈楠屽畬!";
+ /*濡傛灉妫�楠岀粨璁轰负涓嶅悎鏍�,鍒欓渶瑕佹柊澧炰笉鍚堟牸妫�楠屽崟*/
+ if (rawInspect.getJudgeState() == 0) {
+ //鏌ヨ璇ユ楠屽崟鍝簺妫�楠岄」鐩笉鍚堟牸
+ List<RawInsProduct> rawInsProductList = rawInsProductMapper.selectList(Wrappers.<RawInsProduct>query()
+ .eq("raw_inspect_id", id)
+ .eq("test_state", 0));
+ String msg ="";
+ for (RawInsProduct rawInsProduct : rawInsProductList) {
+ msg=msg+rawInsProduct.getName()+"-";
+ }
InspectUnaccepted rawUnaccepted = InspectUnaccepted.builder()
- .reason(rawInspectVo.getName() + "涓嶅悎鏍�") //鏆備笖瀹氫箟涓哄師鏉愭枡涓嶅悎鏍�
+ .reason(msg + "涓嶅悎鏍�") //瀹氫箟涓轰笉鍚堟牸鐨勯」鐩�+涓嶅悎鏍�
+ .number(number)
.rawInspectId(id)
- .type(2) //绫诲瀷涓哄師鏉愭枡
+ .type(0) //绫诲瀷涓哄師鏉愭枡
.build();
inspectUnacceptedMapper.insert(rawUnaccepted);
}
- return true;
+ /*妫�楠屽畬鎴愬悗锛屾棤璁哄悎鏍间笌鍚︼紝灏咺FS鎶ユ鐘舵�佹洿鏀逛负宸叉帴鏀�*/
+ //鏍规嵁妫�楠屽崟id鏌ヨ鍘熸潗鏂欐楠屽崟
+ RawInspect rawIns = rawInspectMapper.selectById(id);
+ String[] split = rawIns.getMessage().split(",");
+ BatchInfo batchInfo = new BatchInfo();
+ batchInfo.setOrderNo(split[0]);
+ batchInfo.setReleaseNo(split[1]);
+ batchInfo.setLineNo(split[2]);
+ batchInfo.setPartNo(rawIns.getCode());
+ batchInfo.setLotBatchNo(split[3]);
+ batchInfo.setLocationNo(split[4]);
+ if (ObjectUtils.isEmpty(number)) {
+ //濡傛灉涓嶅悎鏍肩殑鏁伴噺涓虹┖null
+ number=0;
+ }
+ batchInfo.setQtyToReceive(rawIns.getNumber()-number); //瑕佹帴鏀剁殑鏁伴噺
+ batchInfo.setQtyToInspect(rawIns.getNumber()); //瑕佹楠岀殑鏁伴噺
+ batchInfo.setReceiveCase("鎺ユ敹鍒版潵鏂欏尯");
+ List<BatchInfo> batchInfos = Arrays.asList(batchInfo);
+ //鍙戦�両FS璇锋眰
+ String s = SyncOrder.importPolReceive(batchInfos);
+ System.out.println(s);
+ System.out.println("'''''''''''''''''''''''");
+ return rawInspect.getJudgeState().toString();
}
- //鏂板妫�楠屽崟
- @Override
- public Integer addRawInspects(String userName, RawInspect rawInspect) {
- rawInspect.setUserName(userName);
- //鏂板妫�楠屽崟
- rawInspectMapper.insert(rawInspect);
- //鑾峰彇鐗╂枡id
- Material material = materialMapper.selectOne(Wrappers.<Material>query()
- .eq("name", rawInspect.getName())
- .eq("code", rawInspect.getCode()));
- //鑾峰彇瑙勬牸鍚嶇О鍜屽瀷鍙峰悕绉�
- String specification = rawInspect.getSpecifications();
- String[] strings = specification.split("-");
- String stName = strings[0];//瑙勬牸鍚嶇О
- String spName = strings[1];//鍨嬪彿鍚嶇О
- //鑾峰彇瑙勬牸id
- Standard standard = standardService.getOne(Wrappers.<Standard>query()
- .eq("name", stName)
- .eq("material_id", material.getId()));
- //鑾峰彇鍨嬪彿id
- Specifications specifications = specificationsService.selectSpIdByname(standard.getId(), spName);
- //鏍规嵁鍨嬪彿id鏌ヨ椤圭洰淇℃伅
- List<Product> productList = productMapper.selectList(Wrappers.<Product>query().eq("specifications_id", specifications.getId()));
- ArrayList<RawInsProduct> list = new ArrayList<>();
- for (Product product : productList) {
- RawInsProduct rawInsProduct = RawInsProduct.builder()
- .name(product.getName())
- .unit(product.getUnit())
- .required(product.getRequired())
- .internal(product.getInternal())
- .rawInspectId(rawInspect.getId())
- .build();
- list.add(rawInsProduct);
+ /*鍒ゆ柇妫�娴嬪�兼槸鍚︽弧瓒虫爣鍑嗗�煎拰鍐呮帶鍊肩殑瑕佹眰,濡傛灉涓嶆弧瓒冲垯妫�楠岀粨璁轰负涓嶅悎鏍�*/
+ //濡傛灉鏄辩殑鎿嶄綔
+ private int conValues(String standardValueStr, String controlValueStr, String detectionValueStr) {
+ double standVar = Double.parseDouble(standardValueStr);
+ double controlVar = Double.parseDouble(controlValueStr);
+ double detecVar = Double.parseDouble(detectionValueStr);
+ double a = standVar + controlVar;
+ double b = standVar - controlVar;
+ if (detecVar >= b && detecVar <= a) {
+ return 1;
}
- //妫�楠岄」鐩壒閲忔坊鍔�
- rawInsProductService.saveBatch(list);
- return rawInspect.getId();
+ return 0;
+ }
+
+ //濡傛灉鏄�> , < ,=鐨勬搷浣�
+ 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