|
@@ -1,14 +1,31 @@
|
|
|
package com.fdkk.sxz.webApi.service.impl;
|
|
|
|
|
|
+import cn.hutool.core.io.file.FileReader;
|
|
|
+import cn.hutool.core.util.ObjectUtil;
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
+import com.alibaba.fastjson.JSONArray;
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.fdkk.sxz.base.impl.BaseServiceImpl;
|
|
|
-import com.github.pagehelper.PageHelper;
|
|
|
-import com.github.pagehelper.PageInfo;
|
|
|
+import com.fdkk.sxz.entity.ModelUploadEntity;
|
|
|
+import com.fdkk.sxz.entity.RenovationPartsAttachingEntity;
|
|
|
import com.fdkk.sxz.entity.RenovationPartsDetailEntity;
|
|
|
+import com.fdkk.sxz.entity.RenovationPartsSizeEntity;
|
|
|
+import com.fdkk.sxz.exception.BusinessException;
|
|
|
+import com.fdkk.sxz.vo.request.RequestDataBucket;
|
|
|
+import com.fdkk.sxz.vo.response.ResponseRenovationPartsAttaching;
|
|
|
+import com.fdkk.sxz.vo.response.ResponseRenovationPartsDetail;
|
|
|
+import com.fdkk.sxz.vo.response.ResponseRenovationPartsSize;
|
|
|
import com.fdkk.sxz.webApi.mapper.IRenovationPartsAttachingMapper;
|
|
|
import com.fdkk.sxz.webApi.mapper.IRenovationPartsDetailMapper;
|
|
|
-import com.fdkk.sxz.webApi.mapper.IRenovationPartsSizeMapper;
|
|
|
+import com.fdkk.sxz.webApi.service.IModelUploadService;
|
|
|
+import com.fdkk.sxz.webApi.service.IRenovationPartsAttachingService;
|
|
|
import com.fdkk.sxz.webApi.service.IRenovationPartsDetailService;
|
|
|
-import com.fdkk.sxz.vo.response.ResponseRenovationPartsDetail;
|
|
|
+import com.fdkk.sxz.webApi.service.IRenovationPartsSizeService;
|
|
|
+import com.github.pagehelper.PageHelper;
|
|
|
+import com.github.pagehelper.PageInfo;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.beans.factory.annotation.Qualifier;
|
|
|
import org.springframework.stereotype.Service;
|
|
@@ -21,6 +38,7 @@ import java.util.List;
|
|
|
*/
|
|
|
@Service
|
|
|
@Transactional
|
|
|
+@Slf4j
|
|
|
public class RenovationPartsDetailServiceImpl extends BaseServiceImpl<IRenovationPartsDetailMapper, RenovationPartsDetailEntity> implements IRenovationPartsDetailService {
|
|
|
|
|
|
@Qualifier("IRenovationPartsDetailMapper")
|
|
@@ -31,24 +49,28 @@ public class RenovationPartsDetailServiceImpl extends BaseServiceImpl<IRenovatio
|
|
|
@Autowired
|
|
|
private IRenovationPartsAttachingMapper renovationPartsAttachingMapper;
|
|
|
|
|
|
- @Qualifier("IRenovationPartsSizeMapper")
|
|
|
@Autowired
|
|
|
- private IRenovationPartsSizeMapper renovationPartsSizeMapper;
|
|
|
+ private IRenovationPartsSizeService renovationPartsSizeService;
|
|
|
+ @Autowired
|
|
|
+ private IRenovationPartsAttachingService renovationPartsAttachingService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private IModelUploadService modelUploadService;
|
|
|
|
|
|
|
|
|
@Override
|
|
|
public List<ResponseRenovationPartsDetail> findDetailByTypeId(Long id, Long colorId, Long classifyId) {
|
|
|
- if(colorId != null && colorId.longValue() == 0){
|
|
|
+ if (colorId != null && colorId.longValue() == 0) {
|
|
|
colorId = null;
|
|
|
}
|
|
|
- if(classifyId != null && classifyId.longValue() == 0){
|
|
|
+ if (classifyId != null && classifyId.longValue() == 0) {
|
|
|
classifyId = null;
|
|
|
}
|
|
|
List<ResponseRenovationPartsDetail> detailList = mapper.findDetailByTypeId(id, colorId, classifyId);
|
|
|
|
|
|
for (ResponseRenovationPartsDetail responseRenovationPartsDetail : detailList) {
|
|
|
responseRenovationPartsDetail.setEditing(renovationPartsAttachingMapper.findAttachinByDetailId(responseRenovationPartsDetail.getId()));
|
|
|
- responseRenovationPartsDetail.setSize(renovationPartsSizeMapper.findSizeByDetailId(responseRenovationPartsDetail.getId()));
|
|
|
+ responseRenovationPartsDetail.setSize(renovationPartsSizeService.findSizeByDetailId(responseRenovationPartsDetail.getId()));
|
|
|
}
|
|
|
return detailList;
|
|
|
}
|
|
@@ -71,4 +93,116 @@ public class RenovationPartsDetailServiceImpl extends BaseServiceImpl<IRenovatio
|
|
|
PageInfo<RenovationPartsDetailEntity> pageInfo = new PageInfo<>(list);
|
|
|
return pageInfo;
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public JSONArray dataPostHandler(RequestDataBucket param) {
|
|
|
+ LambdaQueryWrapper<RenovationPartsDetailEntity> wrapper = Wrappers.lambdaQuery();
|
|
|
+ wrapper.in(RenovationPartsDetailEntity::getId, param.getIds());
|
|
|
+ List<RenovationPartsDetailEntity> list = list(wrapper);
|
|
|
+ RenovationPartsDetailServiceImpl.log.info("需迁移数据数量为{}", list.size());
|
|
|
+ JSONArray res = new JSONArray();
|
|
|
+ list.forEach(a -> {
|
|
|
+ /****1:处理 tb_renovation_parts_detail 表 *****/
|
|
|
+ JSONObject entity = (JSONObject) JSONObject.toJSON(a);
|
|
|
+ entity.remove("id");
|
|
|
+ /****2:处理 tb_renovation_parts_size 表 *****/
|
|
|
+ ResponseRenovationPartsSize partsSize = renovationPartsSizeService.findSizeByDetailId(a.getId());
|
|
|
+ if (ObjectUtil.isNotNull(partsSize)) {
|
|
|
+ JSONObject partsSizeJson = (JSONObject) JSONObject.toJSON(partsSize);
|
|
|
+ partsSizeJson.remove("id");
|
|
|
+ entity.put("partsSize", partsSizeJson);
|
|
|
+ }
|
|
|
+ /****3:处理 tb_renovation_parts_attaching 表 *****/
|
|
|
+ ResponseRenovationPartsAttaching attachinByDetailId = renovationPartsAttachingService.findAttachinByDetailId(a.getId());
|
|
|
+ if (ObjectUtil.isNotNull(attachinByDetailId)) {
|
|
|
+ JSONObject attachinByDetailJson = (JSONObject) JSONObject.toJSON(attachinByDetailId);
|
|
|
+ attachinByDetailJson.remove("id");
|
|
|
+ entity.put("attaching", attachinByDetailJson);
|
|
|
+ }
|
|
|
+ /****4:处理 tb_model_upload 表 *****/
|
|
|
+ ModelUploadEntity uploadModel = modelUploadService.findByFileId(a.getName());
|
|
|
+ if (ObjectUtil.isNotNull(uploadModel)) {
|
|
|
+ JSONObject cache = JSON.parseObject(uploadModel.getCacheData());
|
|
|
+ JSONObject uploadModelJson = (JSONObject) JSONObject.toJSON(uploadModel);
|
|
|
+ uploadModelJson.remove("id");
|
|
|
+ uploadModelJson.remove("cacheData");
|
|
|
+ uploadModelJson.put("cache", cache);
|
|
|
+ entity.put("uploadModel", uploadModelJson);
|
|
|
+ }
|
|
|
+ res.add(entity);
|
|
|
+ });
|
|
|
+ RenovationPartsDetailServiceImpl.log.info("数据准备完毕");
|
|
|
+ return res;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = BusinessException.class)
|
|
|
+ public Boolean dataGetHandler(String filePath) {
|
|
|
+ FileReader fileReader = new FileReader(filePath);
|
|
|
+ try {
|
|
|
+ JSONArray dataList = JSON.parseArray(fileReader.readString());
|
|
|
+ RenovationPartsDetailServiceImpl.log.info("需迁-移数据数量为{}", dataList.size());
|
|
|
+ if (dataList.size() > 0) {
|
|
|
+ dataList.forEach(a -> {
|
|
|
+ JSONObject renovationPartsDetailEntityJson = (JSONObject) JSONObject.toJSON(a);
|
|
|
+ RenovationPartsDetailEntity entity = JSONObject.toJavaObject(renovationPartsDetailEntityJson, RenovationPartsDetailEntity.class);
|
|
|
+ ResponseRenovationPartsDetail partsDetail = findByName(entity.getName());
|
|
|
+ if (ObjectUtil.isNull(partsDetail)) {
|
|
|
+ boolean saveFlag = save(entity);
|
|
|
+ RenovationPartsDetailServiceImpl.log.info("模型保存结果{}", saveFlag);
|
|
|
+ if (saveFlag) {
|
|
|
+ /****2:处理 tb_renovation_parts_size 表 *****/
|
|
|
+ if (renovationPartsDetailEntityJson.containsKey("partsSize")) {
|
|
|
+ JSONObject partsSizeJson = renovationPartsDetailEntityJson.getJSONObject("partsSize");
|
|
|
+ RenovationPartsSizeEntity partsSize = JSONObject.toJavaObject(partsSizeJson, RenovationPartsSizeEntity.class);
|
|
|
+ partsSize.setPartsDetailId(entity.getId());
|
|
|
+ boolean savePartsSize = renovationPartsSizeService.save(partsSize);
|
|
|
+ RenovationPartsDetailServiceImpl.log.info("partsSize保存结果{}", savePartsSize);
|
|
|
+ }
|
|
|
+ /****3:处理 tb_renovation_parts_attaching 表 *****/
|
|
|
+ if (renovationPartsDetailEntityJson.containsKey("attaching")) {
|
|
|
+ JSONObject attachingJson = renovationPartsDetailEntityJson.getJSONObject("attaching");
|
|
|
+ RenovationPartsAttachingEntity attaching = JSONObject.toJavaObject(attachingJson, RenovationPartsAttachingEntity.class);
|
|
|
+ attaching.setPartsDetailId(entity.getId());
|
|
|
+ boolean saveAttaching = renovationPartsAttachingService.save(attaching);
|
|
|
+ RenovationPartsDetailServiceImpl.log.info("saveAttaching保存结果{}", saveAttaching);
|
|
|
+ }
|
|
|
+ /****4:处理 tb_model_upload 表 *****/
|
|
|
+ if (renovationPartsDetailEntityJson.containsKey("uploadModel")) {
|
|
|
+ JSONObject uploadModelJson = renovationPartsDetailEntityJson.getJSONObject("uploadModel");
|
|
|
+ ModelUploadEntity uploadModel = JSONObject.toJavaObject(uploadModelJson, ModelUploadEntity.class);
|
|
|
+ ModelUploadEntity uploadModelS = modelUploadService.findByFileId(uploadModel.getFileId());
|
|
|
+ if (ObjectUtil.isNull(uploadModelS)) {
|
|
|
+ uploadModel.setPartsDetailId(partsDetail.getId());
|
|
|
+ uploadModel.setUserId(371L);
|
|
|
+ boolean saveAttaching = modelUploadService.save(uploadModel);
|
|
|
+ if (saveAttaching && uploadModelJson.containsKey("cache")) {
|
|
|
+ JSONObject cache = uploadModelJson.getJSONObject("cache");
|
|
|
+ cache.put("id", uploadModel.getId());
|
|
|
+ cache.put("modelUploadId", uploadModel.getId());
|
|
|
+ cache.put("userId", uploadModel.getUserId());
|
|
|
+ if (cache.containsKey("cacheData")) {
|
|
|
+ JSONObject cacheData = cache.getJSONObject("cacheData");
|
|
|
+ cacheData.put("id", uploadModel.getId());
|
|
|
+ cacheData.put("modelUploadId", uploadModel.getId());
|
|
|
+ cacheData.put("userId", uploadModel.getUserId());
|
|
|
+ }
|
|
|
+ uploadModel.setCacheData(cache.toJSONString());
|
|
|
+ modelUploadService.updateById(uploadModel);
|
|
|
+ }
|
|
|
+ RenovationPartsDetailServiceImpl.log.info("tb_model_upload保存结果{}", saveAttaching);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ throw new RuntimeException("数据处理报错");
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
}
|