|
@@ -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)){
|