From a7418fdc3875d68b03f5d89ceaa0c66a8e3902cd Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期三, 24 十二月 2025 14:03:54 +0800
Subject: [PATCH] 销售订单报检区分物料属性
---
inspect-server/src/main/java/com/ruoyi/inspect/dto/OrderSplitDTO.java | 3 +
inspect-server/src/main/java/com/ruoyi/inspect/aspect/MoveLocationAfterPushMesStockAspect.java | 10 ++++-
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/RawMaterialOrderServiceImpl.java | 6 ++-
basic-server/src/main/java/com/ruoyi/basic/pojo/IfsInventoryQuantity.java | 3 +
cnas-device/src/main/java/com/ruoyi/device/utils/DataAcquisition.java | 36 +++++++++--------
inspect-server/src/main/java/com/ruoyi/inspect/service/RawMaterialOrderService.java | 2
inspect-server/src/main/java/com/ruoyi/inspect/controller/RawMaterialOrderController.java | 3 +
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java | 40 +++++++++-----------
8 files changed, 58 insertions(+), 45 deletions(-)
diff --git a/basic-server/src/main/java/com/ruoyi/basic/pojo/IfsInventoryQuantity.java b/basic-server/src/main/java/com/ruoyi/basic/pojo/IfsInventoryQuantity.java
index 4ed7eca..9c3a4d7 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/pojo/IfsInventoryQuantity.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/pojo/IfsInventoryQuantity.java
@@ -30,6 +30,9 @@
@ApiModelProperty("璁㈠崟绫诲瀷(01raw:鍘熸潗鏂欙紝02wg:澶栬喘鎴愬搧)")
private String orderType;
+ @ApiModelProperty("鐗╂枡灞炴�э紝鐢ㄤ簬鍖哄垎閾溿�侀摑瀵间綋绛夐浂浠�")
+ private String materialProp;
+
@ApiModelProperty("琛屽彿")
private String lineNo;
diff --git a/cnas-device/src/main/java/com/ruoyi/device/utils/DataAcquisition.java b/cnas-device/src/main/java/com/ruoyi/device/utils/DataAcquisition.java
index 05308ae..ef616a4 100644
--- a/cnas-device/src/main/java/com/ruoyi/device/utils/DataAcquisition.java
+++ b/cnas-device/src/main/java/com/ruoyi/device/utils/DataAcquisition.java
@@ -346,23 +346,25 @@
}
}
// 鎷兼帴鏁伴噰閰嶇疆
- List<Object> result = new ArrayList<>();
- for (int i = 0; i < numberOfDataEntries.get(); i++) {
- String aggregate = "";
- for (int j = 0; j < v.size(); j++) {
- int index;
- if (j == 0) {
- index = i;
- } else {
- index = numberOfDataEntries.get() + i;
- }
- aggregate += list.get(index).toString() + ",";
- }
- int lastIndex = aggregate.lastIndexOf(",");
- String substring = aggregate.substring(0, lastIndex);
- result.add(substring);
-
- }
+ List<Object> result = new ArrayList<>(list);
+// String join = String.join(",", list.stream().map(String::valueOf).collect(Collectors.toList()));
+// result.add(join);
+// for (int i = 0; i < numberOfDataEntries.get(); i++) {
+// String aggregate = "";
+// for (int j = 0; j < v.size(); j++) {
+// int index;
+// if (j == 0) {
+// index = i;
+// } else {
+// index = numberOfDataEntries.get() + i;
+// }
+// aggregate += list.get(index).toString() + ",";
+// }
+// int lastIndex = aggregate.lastIndexOf(",");
+// String substring = aggregate.substring(0, lastIndex);
+// result.add(substring);
+//
+// }
// 杩涜鍏紡璁$畻
Object resultValue = calculationFormula(result, v.get(0), k, device);
map.put(k, resultValue);
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/aspect/MoveLocationAfterPushMesStockAspect.java b/inspect-server/src/main/java/com/ruoyi/inspect/aspect/MoveLocationAfterPushMesStockAspect.java
index 0f8c327..2595c51 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/aspect/MoveLocationAfterPushMesStockAspect.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/aspect/MoveLocationAfterPushMesStockAspect.java
@@ -3,15 +3,14 @@
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.ruoyi.basic.mapper.IfsInventoryQuantityMapper;
import com.ruoyi.basic.pojo.IfsInventoryQuantity;
import com.ruoyi.common.numgen.NumberGenerator;
+import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.api.MesApiUtils;
import com.ruoyi.inspect.pojo.IfsSplitOrderRecord;
import com.ruoyi.inspect.service.IfsSplitOrderRecordService;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.JoinPoint;
-import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.springframework.beans.factory.annotation.Autowired;
@@ -36,6 +35,9 @@
private MesApiUtils mesApiUtils;
private final static String LOCATION_NO = "WG-02-001";//mes澶栬喘鍚堟牸搴撲綅
+
+ @Autowired
+ private NumberGenerator<IfsSplitOrderRecord> splitOrderRecordNumberGenerator;
@Before(value = "execution(* com.ruoyi.inspect.service.impl.InsOrderServiceImpl.moveRawMaterial(..))")
@Transactional(rollbackFor = Exception.class,isolation = Isolation.READ_COMMITTED)
@@ -66,6 +68,9 @@
//浣跨敤鐩稿悓鐨勭郴缁熺紪鍙�
one.setSystemNo(quantityList.get(0).getSystemNo());
}
+ if(StringUtils.isBlank(one.getSystemNo())){
+ one.setSystemNo(splitOrderRecordNumberGenerator.generateNumberWithPrefix(IfsSplitOrderRecord.DIGIT,IfsSplitOrderRecord.PREFIX,IfsSplitOrderRecord::getSystemNo));
+ }
//鍚屾MES瀹炴椂搴撳瓨
Map<String, Object> requestMap = new HashMap<>();
requestMap.put("partNo", one.getPartNo()); // 闆朵欢缂栧彿
@@ -92,6 +97,7 @@
if(b){
ifsSplitOrderRecordService.update(null,Wrappers.<IfsSplitOrderRecord>lambdaUpdate()
.set(IfsSplitOrderRecord::getSyncStatus,1)
+ .set(IfsSplitOrderRecord::getSystemNo,one.getSystemNo())
.eq(IfsSplitOrderRecord::getId,one.getId()));
}
}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/controller/RawMaterialOrderController.java b/inspect-server/src/main/java/com/ruoyi/inspect/controller/RawMaterialOrderController.java
index 0bbd552..9fd882a 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/controller/RawMaterialOrderController.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/controller/RawMaterialOrderController.java
@@ -110,10 +110,11 @@
public Result<?> inspectionReport(@RequestBody Map<String, Object> param) {
List<Long> ids = (List<Long>) param.get("ids");
String orderType = Objects.nonNull(param.get("orderType"))?param.get("orderType").toString():"";
+ String materialProp = Objects.nonNull(param.get("materialProp"))?param.get("materialProp").toString():"";
if(!OrderType.validateValue(orderType)){
throw new ErrorException("鎵归噺鎶ユ澶辫触,闈炴硶鐨勯攢鍞鍗曞垎绫绘灇涓�");
}
- return Result.success(rawMaterialOrderService.inspectionReport(ids,orderType));
+ return Result.success(rawMaterialOrderService.inspectionReport(ids,orderType,materialProp));
}
/**
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/dto/OrderSplitDTO.java b/inspect-server/src/main/java/com/ruoyi/inspect/dto/OrderSplitDTO.java
index ab4d170..7b220da 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/dto/OrderSplitDTO.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/dto/OrderSplitDTO.java
@@ -31,4 +31,7 @@
@ApiModelProperty("鏄惁鍚屾鍒癕ES")
private Boolean pushToMes;
+ @ApiModelProperty("鐗╂枡灞炴�э紝鐢ㄤ簬鍖哄垎閾溿�侀摑瀵间綋绛夋潗鏂�")
+ private String materialProp;
+
}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/RawMaterialOrderService.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/RawMaterialOrderService.java
index 7ed340b..cb62ed7 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/service/RawMaterialOrderService.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/RawMaterialOrderService.java
@@ -42,7 +42,7 @@
*/
IPage<IfsInventoryQuantityDto> getIfsByStateOne(IPage<IfsInventoryQuantityDto> page, IfsInventoryQuantityDto ifsInventoryQuantityDto);
- int inspectionReport(List<Long> ids,String orderType);
+ int inspectionReport(List<Long> ids,String orderType,String materialProp);
int revokeInspectionReport(Long id);
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java
index 7cd35f6..e1d8152 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java
@@ -1700,7 +1700,7 @@
}
}
//鍒囧壊鐢电紗閰嶇疆椤�
- dto.setTell(String.join("\n",tellSet));
+ dto.setTell(String.join("\n",tellSet.stream().sorted(Comparator.naturalOrder()).collect(Collectors.toList())));
dto.setLastValueList(lastValueList);
sampleProductExportDtos.add(dto);
}
@@ -1792,7 +1792,7 @@
enterFactoryReport.setInspectDate(insSampleUser.getInspectDate());
}
- Map<String, List<SampleProductExportDto>> item = new LinkedHashMap<>();//闈炵數缂嗛厤缃娴嬮」
+ Map<String, List<SampleProductExportDto>> totalItem = new LinkedHashMap<>();//妫�娴嬮」鍒楄〃
Map<String, List<SampleProductExportDto>> cableTagItem = new LinkedHashMap<>();//鐢电紗閰嶇疆妫�娴嬮」
Map<String, List<SampleProductExportDto>> cableTagEnclosureItem = new LinkedHashMap<>();//鐢电紗閰嶇疆妫�娴嬮」闄勪欢
@@ -1817,12 +1817,19 @@
}else{
sampleProductExportDtos = transformSampleProduct(cableTags,collect,0,cableTags.size());
}
- tempMap.put(key,sampleProductExportDtos);
+ cableTagItem.put(key,sampleProductExportDtos);
}
- sortSampleProduct(tempMap,cableTagItem);
+ //澶勭悊闈炵數缂嗛厤缃娴嬮」
+ Map<String, List<SampleProductExportDto>> listMap = filterItems.stream()
+ .filter(f -> StringUtils.isBlank(f.getCableTag()) && StringUtils.isNotBlank(f.getInspectionItem()))
+ .collect(Collectors.groupingBy(s->s.getInspectionItem()+"&"));
+ //鍚堝苟妫�娴嬮」鍒楄〃
+ tempMap.putAll(cableTagItem);
+ tempMap.putAll(listMap);
+ sortSampleProduct(tempMap,totalItem);
int tagNum = Math.min(max,maxCableTag);
List<String> tagList = cableTags.subList(0,tagNum);
- handlerSampleItems(cableTagItem,finalIndex,sampleList,tagNum,text,rows,rowRenderData,resultCh,tagList,true);
+ handlerSampleItems(totalItem,finalIndex,sampleList,tagNum,text,rows,rowRenderData,resultCh,tagList,true);
if(CollectionUtil.isNotEmpty(tempMap2)){
sortSampleProduct(tempMap2,cableTagEnclosureItem);
@@ -1849,17 +1856,9 @@
cableTagEnclosureTables.add(tableMap);
}
- //澶勭悊闈炵數缂嗛厤缃娴嬮」
- Map<String, List<SampleProductExportDto>> listMap = filterItems.stream()
- .filter(f -> StringUtils.isBlank(f.getCableTag()) && StringUtils.isNotBlank(f.getInspectionItem()))
- .collect(Collectors.groupingBy(SampleProductExportDto::getInspectionItem));
- sortSampleProduct(listMap,item);
- text = new ArrayList<>();
- sampleList = new ArrayList<>();
- handlerSampleItems(item,finalIndex,sampleList,tagNum,text,rows,rowRenderData,resultCh,cableTags,false);
tableRenderData.setRows(rows);
tableRenderData.setTableStyle(setTableStyle(tagNum));
- if (!resultCh.get().equals("")) {
+ if (!resultCh.get().isEmpty()) {
resultCh.set("缁忔楠岋紝" + resultCh.get() + "鎵�妫�椤圭洰涓嶅悎鏍硷紝鍏朵綑鎵�妫�椤圭洰鍧囧悎鏍笺�傦紙鐩栫珷鏈夋晥锛�");
} else {
resultCh.set("鏈骇鍝佺鍚堢浉鍏虫爣鍑嗚姹傦紝缁忔楠屽悎鏍煎噯浜堝嚭鍘傦紙鐩栫珷鏈夋晥锛�");
@@ -1871,13 +1870,8 @@
Map<String, List<SampleProductExportDto>> sortedMap = sampleProductDto2s.stream()
.filter(sampleProductDto2 -> StringUtils.isNotBlank(sampleProductDto2.getInspectionItem()))
.collect(Collectors.groupingBy(SampleProductExportDto::getInspectionItem));
-// List<Map.Entry<String, List<SampleProductExportDto>>> entries = new ArrayList<>(sortedMap.entrySet());
-// entries.sort(Comparator.comparingInt(o -> (o.getValue().get(0).getSort() == null ? 0 : o.getValue().get(0).getSort())));
// // 鍒涘缓涓�涓� LinkedHashMap 鏉ヤ繚鎸佹彃鍏ラ『搴�
Map<String, List<SampleProductExportDto>> item = new LinkedHashMap<>();
-// for (Map.Entry<String, List<SampleProductExportDto>> entry : entries) {
-// item.put(entry.getKey(), entry.getValue());
-// }
sortSampleProduct(sortedMap,item);
@@ -1956,7 +1950,7 @@
// 澶勭悊闆嗗悎
Map<String, SampleProductExportDto> map = new LinkedHashMap<>();
for (SampleProductExportDto productDto2 : sampleProductDtoInside) {
- String productName = productDto2.getInspectionItemClass() + productDto2.getInspectionItem();
+ String productName = productDto2.getInspectionItemClass() + productDto2.getInspectionItem() + productDto2.getCableTag();
if (map.containsKey(productName)) {
// 濡傛灉鍚嶇О宸茬粡瀛樺湪锛屾坊鍔� lastValue 鍊煎埌 lastValueList 鍒楄〃
if(CollectionUtil.isEmpty(map.get(productName).getLastValueList())){
@@ -2001,7 +1995,7 @@
// 澶勭悊闆嗗悎
Map<String, SampleProductExportDto> map = new LinkedHashMap<>();
for (SampleProductExportDto productDto2 : sampleProductDtoInside) {
- String productName = productDto2.getInspectionItemClass() + productDto2.getInspectionItem() + productDto2.getInspectionItemSubclass();
+ String productName = productDto2.getInspectionItemClass() + productDto2.getInspectionItem() + productDto2.getInspectionItemSubclass() + productDto2.getCableTag();
if (map.containsKey(productName)) {
// 濡傛灉鍚嶇О宸茬粡瀛樺湪锛屾坊鍔� lastValue 鍊煎埌 lastValueList 鍒楄〃
if(CollectionUtil.isEmpty(map.get(productName).getLastValueList())){
@@ -2054,7 +2048,9 @@
// 妫�楠岄」鐩�
TextRenderData middleRenderData2 = new TextRenderData();
- middleRenderData2.setText(sample.getInspectionName()+"鈭�"+sample.getInspectionName()+i);
+ String[] split = sample.getInspectionName().split("&");
+ String itemName = split.length>0?split[0]:sample.getInspectionName();
+ middleRenderData2.setText(itemName+"鈭�"+itemName+i+"_"+finalIndex);
Style middleStyle2 = new Style();
middleStyle2.setFontFamily("瀹嬩綋");
middleStyle2.setColor("000000");
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 14b7bbf..da12559 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
@@ -171,7 +171,7 @@
* @return
*/
@Override
- public int inspectionReport(List<Long> ids,String orderType) {
+ public int inspectionReport(List<Long> ids,String orderType,String materialProp) {
Integer userId = SecurityUtils.getUserId().intValue();
ifsInventoryQuantityMapper.update(null, Wrappers.<IfsInventoryQuantity>lambdaUpdate()
.in(IfsInventoryQuantity::getId, ids)
@@ -179,6 +179,7 @@
.set(IfsInventoryQuantity::getDeclareUserId, userId)
.set(IfsInventoryQuantity::getIsInspect, 1)
.set(IfsInventoryQuantity::getOrderType,orderType)
+ .set(IfsInventoryQuantity::getMaterialProp,materialProp)
.set(IfsInventoryQuantity::getDeclareDate, LocalDateTime.now())
);
threadPoolTaskExecutor.execute(() -> {
@@ -254,6 +255,7 @@
.set(IfsInventoryQuantity::getDeclareDate, LocalDateTime.now())
.set(IfsInventoryQuantity::getUpdateBatchNo, ifsInventoryQuantity.getUpdateBatchNo())
.set(IfsInventoryQuantity::getOrderType,ifsInventoryQuantity.getOrderType())
+ .set(IfsInventoryQuantity::getMaterialProp,ifsInventoryQuantity.getMaterialProp())
);
threadPoolTaskExecutor.execute(() -> {
@@ -939,7 +941,7 @@
if(Objects.nonNull(splitOrderList) && !splitOrderList.isEmpty()){
List<Long> ids = splitOrderList.stream().map(IfsInventoryQuantity::getId).collect(Collectors.toList());
ids.add(ifsInventoryQuantity.getId());
- this.inspectionReport(ids,OrderType.RAW.getValue());
+ this.inspectionReport(ids,OrderType.RAW.getValue(),orderSplitDTO.getMaterialProp());
}
//鍕鹃�夊悓姝ュ埌MES锛屼繚瀛樿鍗曟媶鍒嗚褰�
if(orderSplitDTO.getPushToMes()){
--
Gitblit v1.9.3