From e9e88eefcc8abd2b1e187d28c7666e80307e97cc Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期六, 09 五月 2026 14:59:33 +0800
Subject: [PATCH] 不合格处理:切换新的OA流程
---
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/RawMaterialOrderServiceImpl.java | 60 ++++++++++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 48 insertions(+), 12 deletions(-)
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/RawMaterialOrderServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/RawMaterialOrderServiceImpl.java
index da12559..798ccdc 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/RawMaterialOrderServiceImpl.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/RawMaterialOrderServiceImpl.java
@@ -7,6 +7,7 @@
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.util.StrUtil;
+import cn.hutool.json.JSONUtil;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.support.ExcelTypeEnum;
@@ -27,6 +28,7 @@
import com.ruoyi.common.constant.InsOrderTypeConstants;
import com.ruoyi.common.core.domain.Result;
import com.ruoyi.common.core.domain.entity.User;
+import com.ruoyi.common.enums.ContractType;
import com.ruoyi.common.enums.OrderType;
import com.ruoyi.common.numgen.NumberGenerator;
import com.ruoyi.common.utils.LimsDateUtil;
@@ -35,10 +37,7 @@
import com.ruoyi.common.utils.WxCpUtils;
import com.ruoyi.common.utils.api.IfsApiUtils;
import com.ruoyi.framework.exception.ErrorException;
-import com.ruoyi.inspect.dto.CopperInsOrderDto;
-import com.ruoyi.inspect.dto.OrderSplitDTO;
-import com.ruoyi.inspect.dto.RawMaterialStandardTreeDto;
-import com.ruoyi.inspect.dto.SampleProductDto;
+import com.ruoyi.inspect.dto.*;
import com.ruoyi.inspect.excel.OrderSplitExcelData;
import com.ruoyi.inspect.excel.OrderSplitExcelListener;
import com.ruoyi.inspect.mapper.InsOrderMapper;
@@ -52,6 +51,7 @@
import com.ruoyi.inspect.service.InsOrderService;
import com.ruoyi.inspect.service.InsReportService;
import com.ruoyi.inspect.service.RawMaterialOrderService;
+import com.ruoyi.inspect.vo.ProductVo;
import com.ruoyi.performance.mapper.AuxiliaryOutputWorkingHoursMapper;
import com.ruoyi.performance.pojo.AuxiliaryOutputWorkingHours;
import com.ruoyi.system.mapper.UserMapper;
@@ -86,23 +86,32 @@
public class RawMaterialOrderServiceImpl implements RawMaterialOrderService {
private StandardTreeMapper standardTreeMapper;
+
private IfsInventoryQuantityMapper ifsInventoryQuantityMapper;
+
private UserMapper userMapper;
+
private InsOrderService insOrderService;
+
private InsOrderMapper insOrderMapper;
+
private InsSampleMapper insSampleMapper;
+
private final NumberGenerator<InsOrder> numberGenerator;
+
private InsReportService insReportService;
+
private WechatProperty wechatProperty;
+
private ThreadPoolTaskExecutor threadPoolTaskExecutor;
+
private InsProductMapper insProductMapper;
+
private AuxiliaryOutputWorkingHoursMapper auxiliaryOutputWorkingHoursMapper;
private IfsApiUtils ifsApiUtils;
private IfsSplitOrderRecordService ifsSplitOrderRecordService;
-
- private InsUnqualifiedHandlerMapper insUnqualifiedHandlerMapper;
private final NumberGenerator<IfsSplitOrderRecord> splitOrderRecordNumberGenerator;
@@ -245,6 +254,7 @@
if(!validateValue){
throw new ErrorException("鎶ユ澶辫触锛岄潪娉曠殑閿�鍞鍗曞垎绫绘灇涓�");
}
+ validateUpdateBatchNo(ifsInventoryQuantity);
//鎵规鍙峰瓧姣嶈浆澶у啓
ifsInventoryQuantity.setUpdateBatchNo(ifsInventoryQuantity.getUpdateBatchNo().toUpperCase(Locale.ROOT));
ifsInventoryQuantityMapper.update(null, Wrappers.<IfsInventoryQuantity>lambdaUpdate()
@@ -269,6 +279,26 @@
WxCpUtils.informWebHook(wechatProperty.getExaminingUrl(), message);
});
return 1;
+ }
+
+ /**
+ * 鏍¢獙澶栬喘璁㈠崟鎶ユ鐨勬壒娆″彿鏄惁閲嶅
+ * @param ifsInventoryQuantity
+ */
+ public void validateUpdateBatchNo(IfsInventoryQuantity ifsInventoryQuantity){
+ if(StringUtils.equals(ifsInventoryQuantity.getOrderType(),OrderType.WG.getValue())){
+ //鏌ヨ鍘嗗彶璁板綍
+ Long count = ifsInventoryQuantityMapper.selectCount(Wrappers.<IfsInventoryQuantity>lambdaQuery()
+ .eq(IfsInventoryQuantity::getContract,ifsInventoryQuantity.getContract())
+ .eq(IfsInventoryQuantity::getPartNo,ifsInventoryQuantity.getPartNo())
+ .eq(IfsInventoryQuantity::getUpdateBatchNo,ifsInventoryQuantity.getUpdateBatchNo())
+ .eq(IfsInventoryQuantity::getOrderType,OrderType.WG.getValue())
+ .ne(IfsInventoryQuantity::getState,0)
+ );
+ if(count>0){
+ throw new RuntimeException("鎶ユ澶辫触锛岄浂浠�"+ifsInventoryQuantity.getPartNo()+"鎵�鎶ユ鐨勬壒娆″彿銆�"+ifsInventoryQuantity.getUpdateBatchNo()+"銆戝凡瀛樺湪锛�");
+ }
+ }
}
/**
@@ -374,7 +404,7 @@
insOrderMapper.updateById(insOrder);
// 娣诲姞宸ユ椂
- addAuxiliary(insOrder, ifsInventoryQuantity);
+// addAuxiliary(insOrder, ifsInventoryQuantity);
// todo: ifs鐩存帴绉诲簱
insReportService.isRawMaterial(insOrder,true,true);
@@ -469,7 +499,7 @@
insOrderMapper.insert(insOrder);
// 娣诲姞宸ユ椂
- addAuxiliary(insOrder, ifsInventoryQuantity);
+// addAuxiliary(insOrder, ifsInventoryQuantity);
// todo: ifs鐩存帴绉诲簱
insReportService.isRawMaterial(insOrder,true,true);
@@ -529,6 +559,7 @@
if(!OrderType.validateValue(ifsInventoryQuantity.getOrderType())){
throw new ErrorException("鏂板鎶ユ淇℃伅澶辫触锛岄潪娉曠殑閿�鍞鍗曞垎绫绘灇涓�");
}
+ validateUpdateBatchNo(ifsInventoryQuantity);
ifsInventoryQuantityMapper.insert(ifsInventoryQuantity);
}
@@ -606,7 +637,7 @@
insOrderMapper.updateById(insOrder);
// 娣诲姞宸ユ椂
- addAuxiliary(insOrder, ifsInventoryQuantity);
+// addAuxiliary(insOrder, ifsInventoryQuantity);
return insOrder.getId();
}
@@ -753,6 +784,9 @@
}
}
+ //鏌ヨ妫�楠岄」璁板綍
+ List<Long> ifsIds = ifsByOverList.stream().map(IfsInventoryQuantitySupplierDto::getId).collect(Collectors.toList());
+ List<ProductVo> inspectList = insProductMapper.selectInspectListByIfsIfs(ifsIds);
response.setContentType("application/vnd.ms-excel");
@@ -764,10 +798,12 @@
//鏂板缓ExcelWriter
ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build();
//鑾峰彇sheet0瀵硅薄
- WriteSheet mainSheet = EasyExcel.writerSheet(0, "鍘熸潗鏂欐娴嬩俊鎭鍑�").head(IfsInventoryQuantitySupplierDto.class).build();
+ WriteSheet mainSheet = EasyExcel.writerSheet(0, "鍘熸潗鏂欐娴嬩俊鎭�昏").head(IfsInventoryQuantitySupplierDto.class).build();
+ WriteSheet inspectSheet = EasyExcel.writerSheet(1, "鍘熸潗鏂欐娴嬫暟鎹鎯�").head(ProductVo.class).build();
//鍚憇heet0鍐欏叆鏁版嵁 浼犲叆绌簂ist杩欐牱鍙鍑鸿〃澶�
excelWriter.write(ifsByOverList, mainSheet);
+ excelWriter.write(inspectList, inspectSheet);
//鍏抽棴娴�
excelWriter.finish();
} catch (IOException e) {
@@ -895,7 +931,7 @@
inAttrMap.put("BATCH_INFO", batchInfoData);
String inAttr = JSONObject.toJSONString(inAttrMap);
//璋冪敤ifs鎺ュ彛
- Result result = ifsApiUtils.updateMoveReceiptLot(inAttr);
+ Result result = ifsApiUtils.updateMoveReceiptLot(ifsInventoryQuantity.getContract(),inAttr);
if(result.getCode()!=200){
throw new RuntimeException("IFS閲囪喘鎺ユ敹鏇存敼鎵瑰彿璇锋眰寮傚父锛�"+result.getMessage());
}
@@ -917,7 +953,7 @@
}
//ifs鏇存敼鎵瑰彿鎺ュ彛璋冪敤鎴愬姛锛屾媺鍙栨柊鎷嗗垎鐨刬fs璁㈠崟骞舵姤妫�
Map<String, Object> map = new HashMap<>();
- map.put("LOCATION_NO","1302");
+// map.put("LOCATION_NO","1302");
map.put("STATE_DB","To be Inspected");
map.put("PART_NO",ifsInventoryQuantity.getPartNo());
map.put("ORDER_NO",ifsInventoryQuantity.getOrderNo());
--
Gitblit v1.9.3