From 5e10fd9df81dcffdebcf0c0ef892f5ac01926e20 Mon Sep 17 00:00:00 2001
From: Fixiaobai <fixiaobai@163.com>
Date: 星期二, 24 十月 2023 11:50:53 +0800
Subject: [PATCH] Changes
---
mes-basic/src/main/java/com/chinaztt/mes/basic/service/impl/PartServiceImpl.java | 51 ++++++++++++++---
mes-common/src/main/java/com/chinaztt/mes/common/util/ArrayListUtil.java | 128 ++++++++++++++++++++++++++++++++++++++++++
2 files changed, 170 insertions(+), 9 deletions(-)
diff --git a/mes-basic/src/main/java/com/chinaztt/mes/basic/service/impl/PartServiceImpl.java b/mes-basic/src/main/java/com/chinaztt/mes/basic/service/impl/PartServiceImpl.java
index 96514d0..a0cb006 100644
--- a/mes-basic/src/main/java/com/chinaztt/mes/basic/service/impl/PartServiceImpl.java
+++ b/mes-basic/src/main/java/com/chinaztt/mes/basic/service/impl/PartServiceImpl.java
@@ -36,6 +36,7 @@
import com.chinaztt.mes.common.util.JsonUtil;
import com.chinaztt.ztt.common.core.util.R;
import com.chinaztt.ztt.common.security.util.SecurityUtils;
+import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.gson.Gson;
import lombok.AllArgsConstructor;
import org.apache.http.HttpEntity;
@@ -56,10 +57,8 @@
import org.springframework.util.StringUtils;
import java.io.IOException;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.math.BigDecimal;
+import java.util.*;
/**
* 闆朵欢
@@ -367,8 +366,12 @@
}
}
+
+ @Transactional(rollbackFor = Exception.class)
@Override
public void syncNewIfs(Date date) {
+ Map<String, String> dicmattype = dictUtils.getDicKey("material_type");
+ Map<String, String> dicunit = dictUtils.getDicKey("unit");
String key = "syncPart_lock" + SecurityUtils.getUser().getId();
if (redisTemplate.hasKey(key)) {
throw new RuntimeException("鏈夊悓姝ヤ换鍔℃鍦ㄥ鐞�");
@@ -376,13 +379,44 @@
redisTemplate.opsForValue().set(key, 1, 1000 * 3600);
Map<String, Object>map=new HashMap<>();
map.put("MODIFY_DATE", DateUtil.format(date,"yyyy-MM-dd"));
- System.out.println(map);
- String url = "http://192.168.20.47:8008/PurchService.ashx?contract=ZTKJ&contractKey=4ttDeLKNsZuhstjtROMcRE1USNFXKdFYE7lQ2p1m5Bo=&procedureName=QUERY_INVENTORY_PART_INFO_STD&userId=7632&inAttr={'MODIFY_DATE':"+JsonUtil.jsonToString(map)+"}";
try {
+ String url = "http://192.168.20.47:8008/PurchService.ashx?contract=ZTKJ&contractKey=4ttDeLKNsZuhstjtROMcRE1USNFXKdFYE7lQ2p1m5Bo=&procedureName=QUERY_INVENTORY_PART_INFO_STD&userId=7632&inAttr="+new ObjectMapper().writeValueAsString(map);
String body = HttpRequest.get(url).execute().body();
Map<String, Object> mapResult = JsonUtil.jsonToPojo(body, Map.class);
- System.out.println(
- "鎵ц========銆�"+mapResult);
+ List<Map<String, Object>> data = JsonUtil.jsonToPojo(JsonUtil.jsonToString(mapResult.get("INVENTORY_PART_INFO")), List.class);
+ List<String>no=new ArrayList<String>();
+ List<Part>partList=new ArrayList<Part>();
+ data.forEach(l->{
+ Part part = new Part();
+ part.setPartNo(String.valueOf(l.get("PART_NO")));
+ no.add(part.getPartNo());
+ part.setPartName(String.valueOf(l.get("PART_DESC")));
+ part.setMaterialType(dicmattype.get(l.get("TYPE_CODE")));
+ part.setUnit(dicunit.get(l.get("UNIT_MEAS")));
+ part.setAssortment(String.valueOf(l.get("FIRST_CLASS")));
+ part.setCategory(String.valueOf(l.get("SECOND_CLASS")));
+ part.setThreeLevelClassification(String.valueOf(l.get("THIRD_CLASS")));
+// part1.setMaterialAttribute(dicmatatype.get(part.get("ACCOUNTING_GROUP_DESC")));
+ Object netWeight = Optional.ofNullable(l.get("NET_WEIGHT")).orElse("1");
+ if(!Objects.equals(netWeight,"1")){
+ part.setWeight(BigDecimal.valueOf(Double.parseDouble(String.valueOf(l.get("NET_WEIGHT")))));
+ }
+ part.setEngChgLevel("1");
+ part.setPlanningMethod(String.valueOf(l.get("PART_STATUS")));
+ //part.setPlanningMethodIfs(l.get("PART_STATUS"));
+ part.setLotTrackingIfs(!(l.get("LOT_TRACK_DB").equals("NOT LOT TRACKING")));
+ part.setSunit(dicunit.get(l.get("UNIT_MEAS_FOR_WEIGHT")));
+ partList.add(part);
+ });
+ QueryWrapper<Part>queryWrapper=new QueryWrapper<>();
+ queryWrapper.lambda().select(Part::getPartNo).in(Part::getPartNo,no);
+ List<Part> selectList = baseMapper.selectList(queryWrapper);
+ //System.out.println(baseMapper.selectList(queryWrapper));
+ partList.removeIf(mainObj -> selectList.stream().anyMatch(subObj -> subObj.getPartNo().equals(mainObj.getPartNo())));
+ //System.out.println(partList);
+ partList.forEach(l->{
+ baseMapper.insert(l);
+ });
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e.getMessage());
@@ -390,5 +424,4 @@
redisTemplate.delete(key);
}
}
-
}
diff --git a/mes-common/src/main/java/com/chinaztt/mes/common/util/ArrayListUtil.java b/mes-common/src/main/java/com/chinaztt/mes/common/util/ArrayListUtil.java
new file mode 100644
index 0000000..619c784
--- /dev/null
+++ b/mes-common/src/main/java/com/chinaztt/mes/common/util/ArrayListUtil.java
@@ -0,0 +1,128 @@
+package com.chinaztt.mes.common.util;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.function.Function;
+import java.util.function.Predicate;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+/**
+ * @Author 寮犲
+ */
+public class ArrayListUtil {
+
+ /**
+ * 鍗曞�奸泦鍚堝幓閲�
+ * @param objList
+ * @param <T>
+ * @return
+ */
+ public static <T> List<T> singleValueDistinct(List<T>objList){
+ return objList.stream().distinct().collect(Collectors.toList());
+ }
+
+ /**
+ * 鍗曞�奸泦鍚堟瘮杈� 涓婚泦鍚堜腑涓庢闆嗗悎涓嶇浉绛夋暟鎹�
+ * @param mainList 涓婚泦鍚�
+ * @param secondaryList 娆¤闆嗗悎
+ * @param <T>
+ * @return 涓婚泦鍚堜腑璺熸瑕侀泦鍚堜笉鐩哥瓑鐨勬暟鎹�
+ */
+ public static <T> List<T> compareNotEqualListBySingleValue(List<T>mainList,List<T>secondaryList){
+ return mainList.stream().filter(item -> !secondaryList.stream()
+ .map(e -> e).distinct().collect(Collectors.toList())
+ .contains(item))
+ .collect(Collectors.toList());
+ }
+
+ /**
+ * 鍗曞�奸泦鍚堟瘮杈� 涓婚泦鍚堜腑涓庢闆嗗悎鐩哥瓑鏁版嵁
+ * @param mainList 涓婚泦鍚�
+ * @param secondaryList 娆¤闆嗗悎
+ * @param <T>
+ * @return 涓婚泦鍚堜腑璺熸瑕侀泦鍚堜笉鐩哥瓑鐨勬暟鎹�
+ */
+ public static <T> List<T> compareEqualListBySingleValue(List<T>mainList,List<T>secondaryList){
+ return mainList.stream().filter(item -> secondaryList.stream()
+ .map(e -> e).collect(Collectors.toList())
+ .contains(item))
+ .collect(Collectors.toList());
+ }
+
+ /**
+ * 鍗曞�奸泦鍚堝悎骞�
+ * @param isDistinct
+ * @param values
+ * @param <T>
+ * @return
+ */
+ @SafeVarargs
+ public static <T> List<T> mergeListBySingleValue(boolean isDistinct, List<T>... values){
+ //鍘婚噸鍚堝苟
+ if (isDistinct){
+ return Stream.of(values).flatMap(Collection::stream).distinct().collect(Collectors.toList());
+ }
+ return Stream.of(values).flatMap(Collection::stream).collect(Collectors.toList());
+ }
+
+ /**
+ * 鍗曚釜瀵硅薄闆嗗悎鏍规嵁瀵硅薄灞炴�у幓閲嶉泦鍚�
+ * @param keyExtractor
+ * @param objects
+ * @param <T>
+ * @return
+ */
+ public static <T> List<T> oneObjectsDistinctByProperty(Function<? super T, ?> keyExtractor,List<T> objects){
+ List<T> newList = new ArrayList<>();
+ objects.stream().filter(distinctByKey(keyExtractor)) //filter淇濈暀true鐨勫��
+ .forEach(newList::add);
+ return newList;
+ }
+
+ /**
+ * 澶氬璞¢泦鍚堝悎骞舵牴鎹睘鎬у幓閲�
+ * @param objects
+ * @param <T>
+ * @return
+ */
+ @SafeVarargs
+ public static <T> List<T> mergeListByObjectsDistinct(Function<? super T, ?> keyExtractor,List<T>... objects){
+ List<T> tList = mergeListByObjects(objects);
+ return oneObjectsDistinctByProperty(keyExtractor,tList);
+ }
+
+ /**
+ * 澶氬璞¢泦鍚堝悎骞舵棤闇�鍘婚噸 閲嶈浇
+ * @param objects
+ * @param <T>
+ * @return
+ */
+ @SafeVarargs
+ public static <T> List<T> mergeListByObjectsDistinct(List<T>... objects){
+ return mergeListByObjects(objects);
+ }
+
+ private static <T> Predicate<T> distinctByKey(Function<? super T, ?> keyExtractor) {
+ Map<Object,Boolean> seen = new ConcurrentHashMap<>();
+ //putIfAbsent鏂规硶娣诲姞閿�煎锛屽鏋渕ap闆嗗悎涓病鏈夎key瀵瑰簲鐨勫�硷紝鍒欑洿鎺ユ坊鍔狅紝骞惰繑鍥瀗ull锛屽鏋滃凡缁忓瓨鍦ㄥ搴旂殑鍊硷紝鍒欎緷鏃т负鍘熸潵鐨勫�笺��
+ //濡傛灉杩斿洖null琛ㄧず娣诲姞鏁版嵁鎴愬姛(涓嶉噸澶�)锛屼笉閲嶅(null==null :TRUE)
+ return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null;
+ }
+
+ /**
+ * 瀵硅薄闆嗗悎鍚堝苟
+ * @param objects
+ * @param <T>
+ * @return
+ */
+ @SafeVarargs
+ private static <T> List<T> mergeListByObjects(List<T>... objects){
+ return Stream.of(objects).flatMap(Collection::stream).collect(Collectors.toList());
+ }
+
+
+}
--
Gitblit v1.9.3