From 1d83907924ef4209f03f644f59f69b09e30a929c Mon Sep 17 00:00:00 2001 From: zhangyanduan Date: Wed, 21 Sep 2022 17:06:26 +0800 Subject: [PATCH] =?UTF-8?q?add:=20=E6=B7=BB=E5=8A=A0=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E5=8D=95=E5=85=83=E6=95=B0=E6=8D=AE=E6=8E=A5=E6=94=B6=E6=8E=A8?= =?UTF-8?q?=E9=80=81=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/SarModelTreeController.java | 15 +- .../sarModelTree/entity/ResponseResult.java | 25 ++ .../sarModelTree/entity/SarModuleTree.java | 28 +- .../service/ISarModelTreeService.java | 5 +- .../service/ISarModuleTreeService.java | 1 + .../service/impl/SarModelTreeServiceImpl.java | 273 +++++++++++++++++- .../impl/SarModuleTreeServiceImpl.java | 5 +- 7 files changed, 344 insertions(+), 8 deletions(-) diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarModelTree/controller/SarModelTreeController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarModelTree/controller/SarModelTreeController.java index 0d30200b..253362b8 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarModelTree/controller/SarModelTreeController.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarModelTree/controller/SarModelTreeController.java @@ -3,13 +3,14 @@ package com.adc.da.slrs.sarModelTree.controller; import com.adc.da.http.ResponseMessage; import com.adc.da.http.Result; -import com.adc.da.slrs.sarModelTree.entity.SarModuleTree; import com.adc.da.slrs.sarModelTree.service.ISarModelTreeService; import com.adc.da.slrs.sarModelTree.service.ISarModuleTreeService; import com.adc.da.slrs.sarStandProjectLibrary.entity.myResponse.Head; import com.adc.da.slrs.sarStandProjectLibrary.entity.myResponse.ResponseDto; import com.adc.da.util.utils.StringUtils; import io.swagger.annotations.ApiOperation; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import com.adc.da.slrs.sarModelTree.entity.SarModelTree; @@ -31,6 +32,9 @@ import java.util.List; @RequestMapping("/${restPath}/sarModelTree") public class SarModelTreeController extends BaseController { + private static final Logger logger = LoggerFactory.getLogger(SarModelTreeController.class); + + @Autowired private ISarModelTreeService iSarModelTreeService; @@ -82,6 +86,13 @@ public class SarModelTreeController extends BaseController { return responseDto; } - + @ApiOperation("同步模块单元信息") + @PostMapping("/syncModelDto") + public ResponseDto syncModelDto(@RequestBody String jsonStr){ + logger.info("===========================开始接收模块单元数据=================================="); + ResponseDto responseDto = iSarModelTreeService.syncModelTreeDataToDB(jsonStr); + logger.info("===========================接收模块单元数据结束=================================="); + return responseDto; + } } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarModelTree/entity/ResponseResult.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarModelTree/entity/ResponseResult.java index 4140a8fc..dbcf6612 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarModelTree/entity/ResponseResult.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarModelTree/entity/ResponseResult.java @@ -9,4 +9,29 @@ public class ResponseResult { private String MESSAGE; //接口信息 失败时,详细的失败原因 private String STATUS; //接口状态 B(失败),S(成功) + + + public String getGUID() { + return GUID; + } + + public void setGUID(String GUID) { + this.GUID = GUID; + } + + public String getMESSAGE() { + return MESSAGE; + } + + public void setMESSAGE(String MESSAGE) { + this.MESSAGE = MESSAGE; + } + + public String getSTATUS() { + return STATUS; + } + + public void setSTATUS(String STATUS) { + this.STATUS = STATUS; + } } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarModelTree/entity/SarModuleTree.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarModelTree/entity/SarModuleTree.java index 227dc6d1..10d485f1 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarModelTree/entity/SarModuleTree.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarModelTree/entity/SarModuleTree.java @@ -10,62 +10,76 @@ import lombok.Data; @TableName("sar_module_tree") public class SarModuleTree { + //序列号 @SerializedName("GUID") @TableId private String guid; + + //系统 @SerializedName("FTVSTYPE1") @TableField("FTVSTYPE1") private String ftvstype1; - + //模块团队代号 @SerializedName("FTVSTYPE2") @TableField("FTVSTYPE2") private String ftvstype2; - + //模块团队名称 @SerializedName("FTVSTYPE3") @TableField("FTVSTYPE3") private String ftvstype3; + //模块结构家族SF @SerializedName("FTVSTYPE4") @TableField("FTVSTYPE4") private String ftvstype4; + //模块结构元素SE @SerializedName("FTVSTYPE5") @TableField("FTVSTYPE5") private String ftvstype5; + //结构单元SU @SerializedName("FTVSTYPE6") @TableField("FTVSTYPE6") private String ftvstype6; + //功能分组码VSG @SerializedName("FTVSTYPE7") @TableField("FTVSTYPE7") private String ftvstype7; + //关联特征族代号(驱动要素) @SerializedName("FTVSTYPE9") @TableField("FTVSTYPE9") private String ftvstype9; + //是否需要额外描述 @SerializedName("ACLUSERNAMES") @TableField("ACLUSERNAMES") private String aclusernames; + //操作人 @SerializedName("CREATOR") @TableField("CREATOR") private String creator; + //SF_ID @SerializedName("SERIESID") @TableField("SERIESID") private String seriesid; //SF_ID + //SE_ID @SerializedName("RESERVED") @TableField("RESERVED") private String reserved; //SE_ID + //SU_ID @SerializedName("STARTED") @TableField("STARTED") private String started; //SU_ID + //操作时间 @SerializedName("CREATIONDATE") @TableField("CREATIONDATE") private String creationdate; @@ -79,4 +93,14 @@ public class SarModuleTree { @TableField(exist = false) private String nextCondition; + //列ID + @SerializedName("ROWID") + @TableField(exist = false) + private String rowId; + + //产品线分类 + @SerializedName("PRODUCTTYPE") + @TableField(exist = false) + private String productType; + } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarModelTree/service/ISarModelTreeService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarModelTree/service/ISarModelTreeService.java index e17248c0..68469327 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarModelTree/service/ISarModelTreeService.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarModelTree/service/ISarModelTreeService.java @@ -1,7 +1,7 @@ package com.adc.da.slrs.sarModelTree.service; import com.adc.da.slrs.sarModelTree.entity.SarModelTree; -import com.adc.da.slrs.sarVppsTree.entity.SarVppsTree; +import com.adc.da.slrs.sarStandProjectLibrary.entity.myResponse.ResponseDto; import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; @@ -19,4 +19,7 @@ public interface ISarModelTreeService extends IService { List getAll(SarModelTree sarModelTree); List recursionGetChildren(SarModelTree parent); + + public ResponseDto syncModelTreeDataToDB(String json); + } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarModelTree/service/ISarModuleTreeService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarModelTree/service/ISarModuleTreeService.java index 44254478..14941c85 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarModelTree/service/ISarModuleTreeService.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarModelTree/service/ISarModuleTreeService.java @@ -14,4 +14,5 @@ public interface ISarModuleTreeService { public Head analysisJsonAndStorage(String json); + } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarModelTree/service/impl/SarModelTreeServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarModelTree/service/impl/SarModelTreeServiceImpl.java index ca1a9a16..accf3622 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarModelTree/service/impl/SarModelTreeServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarModelTree/service/impl/SarModelTreeServiceImpl.java @@ -1,16 +1,29 @@ package com.adc.da.slrs.sarModelTree.service.impl; -import com.adc.da.slrs.sarModelTree.entity.SarModelTree; +import com.adc.da.slrs.sarModelTree.entity.*; import com.adc.da.slrs.sarModelTree.dao.SarModelTreeDao; import com.adc.da.slrs.sarModelTree.service.ISarModelTreeService; +import com.adc.da.slrs.sarStandProjectLibrary.entity.myResponse.Head; +import com.adc.da.slrs.sarStandProjectLibrary.entity.myResponse.ResponseDto; +import com.adc.da.util.UUIDUtils; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.google.gson.Gson; +import com.google.gson.JsonArray; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; import org.apache.commons.lang.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.transaction.interceptor.TransactionAspectSupport; +import java.util.ArrayList; +import java.util.LinkedList; import java.util.List; +import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; -import java.util.stream.Stream; /** *

@@ -23,6 +36,8 @@ import java.util.stream.Stream; @Service public class SarModelTreeServiceImpl extends ServiceImpl implements ISarModelTreeService { + private static final Logger logger = LoggerFactory.getLogger(SarModelTreeServiceImpl.class); + /** * 查询所有菜单 * @param sarModelTree @@ -94,4 +109,258 @@ public class SarModelTreeServiceImpl extends ServiceImpl resultList = new ArrayList<>(); + try{ + //把字符串转换成对象 + JsonObject parse = JsonParser.parseString(json).getAsJsonObject(); + //要把jsonObject里的HEAD强转成JsonObject类型 + JsonObject HEAD = (JsonObject) parse.get("HEAD"); + //因为是最后要取的值了,所以就拿到之后把它转换成String类型 + HEAD.get("CONSUMER").getAsString(); + //构建head头信息 + head.setBIZTRANSACTIONID(HEAD.get("BIZTRANSACTIONID").getAsString()); + + //获取json中的list + JsonArray list = (JsonArray)parse.get("LIST"); + Gson gson = new Gson(); + List moduleTreeList = new LinkedList<>(); + + AtomicInteger successCount = new AtomicInteger(); + + list.forEach(item->{ + JsonObject objectJson=(JsonObject) item; + SarModuleTree sarModuleTree = gson.fromJson(objectJson, SarModuleTree.class); + //返回结果集 + + String pName = sarModuleTree.getFtvstype1(); + String p2Name = sarModuleTree.getFtvstype2(); + String p3Name = sarModuleTree.getFtvstype3(); + String p4Name = sarModuleTree.getFtvstype4(); + String p5Name = sarModuleTree.getFtvstype5(); + String p6Name = sarModuleTree.getFtvstype6(); + String jgysName = sarModuleTree.getFtvstype9(); + String modelType = sarModuleTree.getProductType(); + if(StringUtils.equals(modelType,"f0_mssg")){ + modelType ="TRUCK";//卡车类 + }else{ + modelType ="CAR";//乘用车类 + } + if(StringUtils.isNotBlank(pName)){ + QueryWrapper queryP1Wrapper = new QueryWrapper<>(); + queryP1Wrapper.eq("NAME",pName); + queryP1Wrapper.eq("MODEL_TYPE",modelType); + queryP1Wrapper.eq("MODEL_LEVEL",1); + queryP1Wrapper.eq("MODEL_PID",rootId); + queryP1Wrapper.eq("DEL_FLAG","1"); + List p1TreeDataList = this.baseMapper.selectList(queryP1Wrapper); + SarModelTree p1TreeData = null; + if (p1TreeDataList !=null && !p1TreeDataList.isEmpty()) { + p1TreeData = p1TreeDataList.get(0); + p1TreeData.setModel(pName); + p1TreeData.setModelLevel(1); + p1TreeData.setModelPid(rootId); + p1TreeData.setModelType(modelType); + p1TreeData.setName(pName); + p1TreeData.setPid(rootPID); + p1TreeData.setDelFlag("1"); + p1TreeData.setHasChildren("1"); + this.baseMapper.updateById(p1TreeData); + }else{ + p1TreeData = new SarModelTree(); + p1TreeData.setId(UUIDUtils.randomUUID(20)); + p1TreeData.setModel(pName); + p1TreeData.setModelLevel(1); + p1TreeData.setModelPid(rootId); + p1TreeData.setModelType(modelType); + p1TreeData.setName(pName); + p1TreeData.setPid(rootPID); + p1TreeData.setDelFlag("1"); + p1TreeData.setHasChildren("1"); + this.baseMapper.insert(p1TreeData); + } + + if(StringUtils.isNotBlank(p2Name)){ + QueryWrapper queryP2Wrapper = new QueryWrapper<>(); + queryP2Wrapper.eq("NAME",pName); + queryP2Wrapper.eq("MODEL_TYPE",modelType); + queryP2Wrapper.eq("MODEL_LEVEL",1); + queryP2Wrapper.eq("MODEL_PID",rootId); + queryP2Wrapper.eq("DEL_FLAG","1"); + List p2TreeDataList = this.baseMapper.selectList(queryP2Wrapper); + SarModelTree p2TreeData = null; + if (p2TreeDataList !=null && !p2TreeDataList.isEmpty()) { + p2TreeData = p2TreeDataList.get(0); + p2TreeData.setModel(p3Name); + p2TreeData.setModelLevel(2); + p2TreeData.setModelPid(p1TreeData.getId()); + p2TreeData.setModelType(modelType); + p2TreeData.setName(p2Name); + p2TreeData.setPid(p1TreeData.getName()); + p2TreeData.setDelFlag("1"); + p2TreeData.setHasChildren("1"); + this.baseMapper.updateById(p2TreeData); + }else{ + p2TreeData = new SarModelTree(); + p2TreeData.setId(UUIDUtils.randomUUID(20)); + p2TreeData.setModel(p3Name); + p2TreeData.setModelLevel(2); + p2TreeData.setModelPid(p1TreeData.getId()); + p2TreeData.setModelType(modelType); + p2TreeData.setName(p2Name); + p2TreeData.setPid(p1TreeData.getName()); + p2TreeData.setDelFlag("1"); + p2TreeData.setHasChildren("1"); + this.baseMapper.insert(p2TreeData); + } + + if(StringUtils.isNotBlank(p3Name)){ + QueryWrapper queryP3Wrapper = new QueryWrapper<>(); + queryP3Wrapper.eq("NAME",pName); + queryP3Wrapper.eq("MODEL_TYPE",modelType); + queryP3Wrapper.eq("MODEL_LEVEL",1); + queryP3Wrapper.eq("MODEL_PID",rootId); + queryP3Wrapper.eq("DEL_FLAG","1"); + List p3TreeDataList = this.baseMapper.selectList(queryP3Wrapper); + SarModelTree p3TreeData = null; + + if (p3TreeDataList !=null && !p3TreeDataList.isEmpty()) { + p3TreeData = p3TreeDataList.get(0); + p3TreeData.setModel(p4Name); + p3TreeData.setModelLevel(3); + p3TreeData.setModelPid(p2TreeData.getId()); + p3TreeData.setModelType(modelType); + p3TreeData.setName(p4Name); + p3TreeData.setPid(p2TreeData.getName()); + p3TreeData.setDelFlag("1"); + p3TreeData.setHasChildren("1"); + this.baseMapper.updateById(p3TreeData); + }else{ + p3TreeData = new SarModelTree(); + p3TreeData.setId(UUIDUtils.randomUUID(20)); + p3TreeData.setModel(p4Name); + p3TreeData.setModelLevel(3); + p3TreeData.setModelPid(p2TreeData.getId()); + p3TreeData.setModelType(modelType); + p3TreeData.setName(p4Name); + p3TreeData.setPid(p2TreeData.getName()); + p3TreeData.setDelFlag("1"); + p3TreeData.setHasChildren("1"); + this.baseMapper.insert(p3TreeData); + } + + if(StringUtils.isNotBlank(p4Name)){ + QueryWrapper queryP4Wrapper = new QueryWrapper<>(); + queryP4Wrapper.eq("NAME",pName); + queryP4Wrapper.eq("MODEL_TYPE",modelType); + queryP4Wrapper.eq("MODEL_LEVEL",1); + queryP4Wrapper.eq("MODEL_PID",rootId); + queryP4Wrapper.eq("DEL_FLAG","1"); + List p4TreeDataList = this.baseMapper.selectList(queryP4Wrapper); + SarModelTree p4TreeData = null; + + if (p4TreeDataList !=null && !p4TreeDataList.isEmpty()) { + p4TreeData = p4TreeDataList.get(0); + p4TreeData.setModel(p5Name); + p4TreeData.setModelLevel(4); + p4TreeData.setModelPid(p3TreeData.getId()); + p4TreeData.setModelType(modelType); + p4TreeData.setName(p5Name); + p4TreeData.setPid(p3TreeData.getName()); + p4TreeData.setDelFlag("1"); + p4TreeData.setHasChildren("1"); + this.baseMapper.updateById(p4TreeData); + }else{ + p4TreeData = new SarModelTree(); + p4TreeData.setId(UUIDUtils.randomUUID(20)); + p4TreeData.setModel(p5Name); + p4TreeData.setModelLevel(4); + p4TreeData.setModelPid(p3TreeData.getId()); + p4TreeData.setModelType(modelType); + p4TreeData.setName(p5Name); + p4TreeData.setPid(p3TreeData.getName()); + p4TreeData.setDelFlag("1"); + p4TreeData.setHasChildren("1"); + this.baseMapper.insert(p4TreeData); + } + + if(StringUtils.isNotBlank(p5Name)){ + QueryWrapper queryP5Wrapper = new QueryWrapper<>(); + queryP5Wrapper.eq("NAME",pName); + queryP5Wrapper.eq("MODEL_TYPE",modelType); + queryP5Wrapper.eq("MODEL_LEVEL",1); + queryP5Wrapper.eq("MODEL_PID",rootId); + queryP5Wrapper.eq("DEL_FLAG","1"); + List p5TreeDataList = this.baseMapper.selectList(queryP5Wrapper); + SarModelTree p5TreeData = null; + + if (p5TreeDataList !=null && !p5TreeDataList.isEmpty()) { + p5TreeData = p5TreeDataList.get(0); + p5TreeData.setModel(p6Name); + p5TreeData.setModelLevel(5); + p5TreeData.setModelPid(p4TreeData.getId()); + p5TreeData.setModelType(modelType); + p5TreeData.setName(p6Name); + p5TreeData.setPid(p4TreeData.getName()); + p5TreeData.setFeatures(jgysName); + p5TreeData.setDelFlag("1"); + p5TreeData.setHasChildren("1"); + this.baseMapper.updateById(p5TreeData); + }else{ + p5TreeData = new SarModelTree(); + p5TreeData.setId(UUIDUtils.randomUUID(20)); + p5TreeData.setModel(p6Name); + p5TreeData.setModelLevel(5); + p5TreeData.setModelPid(p4TreeData.getId()); + p5TreeData.setModelType(modelType); + p5TreeData.setName(p6Name); + p5TreeData.setPid(p4TreeData.getName()); + p5TreeData.setFeatures(jgysName); + p5TreeData.setDelFlag("1"); + p5TreeData.setHasChildren("1"); + this.baseMapper.insert(p5TreeData); + } + } + } + } + } + } + successCount.getAndIncrement(); + }); + head.setERRORCODE("0"); + head.setRESULT("成功"); + ResponseResult returnData = new ResponseResult(); + returnData.setGUID("-1"); + returnData.setMESSAGE(""); + returnData.setSTATUS("S"); + resultList.add(returnData); + ResponseDto dto = new ResponseDto(head,resultList); + return dto; + }catch (Exception ex){ + logger.error(ex.getMessage(),ex); + head.setERRORCODE("2"); + head.setRESULT("业务失败需要重做"); + ResponseResult returnData = new ResponseResult(); + returnData.setGUID("-1"); + returnData.setMESSAGE("数据写入过程中发生错误,需重新推送"); + returnData.setSTATUS("E"); + resultList.add(returnData); + ResponseDto dto = new ResponseDto(head,resultList); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return dto; + } + + } + + + } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarModelTree/service/impl/SarModuleTreeServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarModelTree/service/impl/SarModuleTreeServiceImpl.java index e5119153..82459152 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarModelTree/service/impl/SarModuleTreeServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarModelTree/service/impl/SarModuleTreeServiceImpl.java @@ -128,7 +128,7 @@ public class SarModuleTreeServiceImpl extends ServiceImpl对修改关闭,对扩展开放