yaozhixue vor 1 Jahr
Ursprung
Commit
5bb70f32a2

+ 149 - 1
src/main/java/com/zfire/jiasm/syncdata/service/impl/GLPPLeiBieServiceImpl.java

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.zfire.jiasm.syncdata.base.BaseService;
 import com.zfire.jiasm.syncdata.constant.DictTypeEnum;
@@ -42,6 +43,8 @@ public class GLPPLeiBieServiceImpl implements GLPPLeiBieService {
     BaseService baseService;
     @Resource
     private PublicService publicService;
+    @Resource
+    ProductSeriesService productSeriesService;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -115,6 +118,9 @@ public class GLPPLeiBieServiceImpl implements GLPPLeiBieService {
         // 数据同步落到同步信息表
         extractedPPXLAddOrUpdate(addRec, updateRec, jsonArray, synTaskNo);
 
+        // 同步到本地系列表
+        extractedProductSeries(addRec, updateRec, brandRec);
+
         // 数据同步到本地字典表
         extractedLocalPPXLAddOrUpdate(addRec, updateRec);
 
@@ -124,6 +130,148 @@ public class GLPPLeiBieServiceImpl implements GLPPLeiBieService {
         updateRec.clear();
     }
 
+    private void extractedProductSeries(List<ItfTblSplbXilieDownload> addRec, List<ItfTblSplbXilieDownload> updateRec, Brand brandRec) {
+        List<String> xlid = new ArrayList<>();
+        List<ProductSeries> addps = new ArrayList<>();
+        List<ProductSeries> upps = new ArrayList<>();
+        List<SysDict> oldSysDictRec = new ArrayList<>();
+        Map<String, List<SysDict>> oldSysDictRecMap = new HashMap<>();
+        List<SysDict> oldSysDictXRec = new ArrayList<>();
+        Map<String, List<SysDict>> oldSysDictRecXMap = new HashMap<>();
+        Map<String, List<ProductSeries>> oldpsMap = new HashMap<>();
+
+        // 提取大类字典数据
+        oldSysDictRec =  sysDictService.lambdaQuery()
+                .eq(SysDict::getDictType, DictTypeEnum.DICT_TYPE_MAIN_TYPE.getCode())
+                .list();
+        if (CollectionUtils.isNotEmpty(oldSysDictRec)){
+            oldSysDictRecMap = oldSysDictRec.stream().collect(Collectors.groupingBy(SysDict::getDictCode));
+        }
+
+        // 提取小类字典数据  sysDictService
+        oldSysDictXRec =  sysDictService.lambdaQuery()
+                .eq(SysDict::getDictType,DictTypeEnum.DICT_TYPE_SMALL_TYPE.getCode()).list();
+        if (CollectionUtils.isNotEmpty(oldSysDictXRec)){
+            oldSysDictRecXMap = oldSysDictXRec.stream().collect(Collectors.groupingBy(SysDict::getDictCode));
+        }
+
+        // 提取现有数据防重使用
+        List<ProductSeries> oldps =  productSeriesService.lambdaQuery().list();
+        if (CollectionUtils.isNotEmpty(oldps)){
+            oldps.stream().forEach(en->{
+                xlid.add(en.getXlId());
+            });
+            oldpsMap = oldps.stream().collect(Collectors.groupingBy(ProductSeries::getXlId));
+        }
+
+        // 获取新增的
+        if (addRec.size()>0){
+            for (ItfTblSplbXilieDownload item : addRec){
+                if (xlid.contains(item.getId())){
+                    upProductSeries(brandRec, upps, oldSysDictRecMap, oldSysDictRecXMap, oldpsMap, item);
+                } else {
+                    getProductSeries(brandRec, addps, oldSysDictRecMap, oldSysDictRecXMap, item);
+                    xlid.add(item.getId());
+                }
+            }
+        }
+        // 获取修改的
+        if (updateRec.size()>0){
+            for (ItfTblSplbXilieDownload item : updateRec){
+                if (xlid.contains(item.getId())){
+                    upProductSeries(brandRec, upps, oldSysDictRecMap, oldSysDictRecXMap, oldpsMap, item);
+                } else {
+                    getProductSeries(brandRec, addps, oldSysDictRecMap, oldSysDictRecXMap, item);
+                    xlid.add(item.getId());
+                }
+            }
+        }
+
+        // 新增的插入到表
+        if (addps.size()>0){
+            productSeriesService.saveBatch(addps);
+            log.info("本地系列信息表新增插入了{}条数据",addps.size());
+            addps.clear();
+        }
+        // 更新
+        if (upps.size()>0){
+            productSeriesService.updateBatchById(upps);
+            log.info("本地系列信息表更新修改了{}条数据", upps.size());
+            upps.clear();
+        }
+    }
+
+    private void upProductSeries(Brand brandRec, List<ProductSeries> upps, Map<String, List<SysDict>> oldSysDictRecMap, Map<String, List<SysDict>> oldSysDictRecXMap, Map<String, List<ProductSeries>> oldpsMap, ItfTblSplbXilieDownload item) {
+        ProductSeries add = new ProductSeries();
+        add.setSeriesNumber(item.getXino());// 编号
+        add.setBrandId(brandRec.getBrandId());// 品牌id
+        add.setBrandName(brandRec.getBrand());// 品牌名称
+        add.setMainId(String.valueOf(item.getSpid()));// 大类id
+        add.setMainName(oldSysDictRecMap.get(String.valueOf(item.getSpid())).get(0).getDictValue());// 大类名称
+        add.setSmallId(String.valueOf(item.getXlid()));// 小类id
+        add.setSmallName(oldSysDictRecXMap.get(String.valueOf(item.getXlid())).get(0).getDictValue());// 小类名称
+        add.setSeriesName(item.getXimc());// 系列名
+        add.setStatus(DictTypeEnum.DICT_TYPE_OFF.getCode());
+        if (item.getFlag().equals(DictTypeEnum.DICT_TYPE_FLAG_ON.getCode())){
+            add.setStatus(DictTypeEnum.DICT_TYPE_ON.getCode());
+        }
+        add.setCreateTime(new Date());
+        if (item.getCreatedDate() !=null){
+            add.setCreateTime(item.getCreatedDate());
+        }
+        add.setCreateBy("system");
+        if (StringUtils.isNotEmpty(item.getCreatedBy())){
+            add.setCreateBy(item.getCreatedBy());
+        }
+        add.setUpdateTime(new Date());
+        if (item.getLastModifiedDate() !=null){
+            add.setUpdateTime(item.getLastModifiedDate());
+        }
+        add.setUpdateBy("system");
+        if (StringUtils.isNotEmpty(item.getLastModifiedBy())){
+            add.setUpdateBy(item.getLastModifiedBy());
+        }
+        add.setXlId(item.getId());// 三方主键
+        add.setProductSeriesId(oldpsMap.get(item.getId()).get(0).getProductSeriesId());
+        upps.add(add);
+    }
+
+    private void getProductSeries(Brand brandRec, List<ProductSeries> addps, Map<String, List<SysDict>> oldSysDictRecMap, Map<String, List<SysDict>> oldSysDictRecXMap, ItfTblSplbXilieDownload item) {
+        ProductSeries add = new ProductSeries();
+        add.setProductSeriesId(IdWorker.getIdStr());
+        add.setSeriesNumber(item.getXino());// 编号
+        add.setBrandId(brandRec.getBrandId());// 品牌id
+        add.setBrandName(brandRec.getBrand());// 品牌名称
+        add.setMainId(String.valueOf(item.getSpid()));// 大类id
+        add.setMainName(oldSysDictRecMap.get(String.valueOf(item.getSpid())).get(0).getDictValue());// 大类名称
+        add.setSmallId(String.valueOf(item.getXlid()));// 小类id
+        add.setSmallName(oldSysDictRecXMap.get(String.valueOf(item.getXlid())).get(0).getDictValue());// 小类名称
+        add.setSeriesName(item.getXimc());// 系列名
+        add.setStatus(DictTypeEnum.DICT_TYPE_OFF.getCode());
+        if (item.getFlag().equals(DictTypeEnum.DICT_TYPE_FLAG_ON.getCode())){
+            add.setStatus(DictTypeEnum.DICT_TYPE_ON.getCode());
+        }
+
+        add.setCreateTime(new Date());
+        if (item.getCreatedDate() !=null){
+            add.setCreateTime(item.getCreatedDate());
+        }
+        add.setCreateBy("system");
+        if (StringUtils.isNotEmpty(item.getCreatedBy())){
+            add.setCreateBy(item.getCreatedBy());
+        }
+        add.setUpdateTime(new Date());
+        if (item.getLastModifiedDate() !=null){
+            add.setUpdateTime(item.getLastModifiedDate());
+        }
+        add.setUpdateBy("system");
+        if (StringUtils.isNotEmpty(item.getLastModifiedBy())){
+            add.setUpdateBy(item.getLastModifiedBy());
+        }
+        add.setXlId(item.getId());// 三方主键
+        addps.add(add);
+    }
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void extractedJX(JSONArray jsonArray){
@@ -1481,7 +1629,7 @@ public class GLPPLeiBieServiceImpl implements GLPPLeiBieService {
         Map<String, List<SysDict>> oldSysDictRecMap = new HashMap<>();
         List<String> dictcodes = new ArrayList<>();
 
-                // 提取小类字典数据  sysDictService
+        // 提取小类字典数据  sysDictService
         oldSysDictRec =  sysDictService.lambdaQuery()
                 .eq(SysDict::getDictType,DictTypeEnum.DICT_TYPE_SMALL_TYPE.getCode()).list();
         if (CollectionUtils.isNotEmpty(oldSysDictRec)){

+ 2 - 2
src/main/java/com/zfire/jiasm/syncdata/service/impl/RepairProduceDataUploadServiceImpl.java

@@ -627,7 +627,7 @@ public class RepairProduceDataUploadServiceImpl implements RepairProduceDataUplo
         List<OrderRepairDetail> ords = orderRepairDetailService.lambdaQuery()
                 .eq(OrderRepairDetail::getOrderBaseId, orderBase.getId()).list();
         for (OrderRepairDetail item :ords){
-            // 状态:0=待采集,1=采集中,2=已采集,3=已完成
+            // 状态 0=未采集,1=已采集,2=作废,3=临时保存
             if (item.getStatus().equals(0)){
                 // 有一个待采全部不再处理
                 return true;
@@ -1314,7 +1314,7 @@ public class RepairProduceDataUploadServiceImpl implements RepairProduceDataUplo
                 }
                 // 生成维修结算数据
                 jykts.add(generateJykt(brand, orderBase, detail));
-                // 生成维修现象数据   TL_PrePareSynDataby_fa_order_repair_fault_info
+                // 生成维修故障现象数据   TL_PrePareSynDataby_fa_order_repair_fault_info
                 generateReason(jyktus, detail);
                 // 生成维修数据采集附件数据  TL_PrePareSynDataby_fa_order_repair_annex
                 generateFile(orderBase, detail, fjs);