From fb7040d53be444127f0246f84dcc59d0e585c7a9 Mon Sep 17 00:00:00 2001 From: yuezhihang Date: Thu, 21 Apr 2022 16:32:44 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B8=85=E5=8D=95=E4=BF=AE=E6=94=B9=20?= =?UTF-8?q?=E4=BD=BF=E7=94=A8mq?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/adc/da/mq/CreateUpdateMQService.java | 35 ++++ .../com/adc/da/mq/SendQdUpdateMQService.java | 161 ++++++++++++++++++ .../entity/SarLawsAttrDetailedList.java | 4 + .../SarLawsAttrDetailedListServiceImpl.java | 1 + .../service/ISarLawsAttrInfoService.java | 4 + .../impl/SarLawsAttrInfoServiceImpl.java | 9 + .../entity/DetailedUpDto.java | 4 + .../sarLawsDetailedList/entity/TimeDto.java | 3 + .../impl/SarLawsDetailedListServiceImpl.java | 64 ++++++- .../service/ISarStandAttrInfoService.java | 4 + .../impl/SarStandAttrInfoServiceImpl.java | 9 + .../SarLawsAttrDetailedListMapper.xml | 5 +- 12 files changed, 294 insertions(+), 9 deletions(-) create mode 100644 adc-da-slrs/src/main/java/com/adc/da/mq/CreateUpdateMQService.java create mode 100644 adc-da-slrs/src/main/java/com/adc/da/mq/SendQdUpdateMQService.java diff --git a/adc-da-slrs/src/main/java/com/adc/da/mq/CreateUpdateMQService.java b/adc-da-slrs/src/main/java/com/adc/da/mq/CreateUpdateMQService.java new file mode 100644 index 00000000..d41a21f7 --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/mq/CreateUpdateMQService.java @@ -0,0 +1,35 @@ +package com.adc.da.mq; + +import com.adc.da.slrs.otConvertMq.entity.OtConvertMq; +import org.springframework.amqp.core.AmqpTemplate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.HashMap; +import java.util.Hashtable; +import java.util.List; +import java.util.Map; + + +@Component +public class CreateUpdateMQService { + @Autowired + private AmqpTemplate rabbitTemplate; + + /** + * @Author yuezhihang + * @Description 创建消息队列 + * Date 2018/8/24 13:59 + * @Param [convert, convertType] + * @return int + **/ + public void sendMQ(Hashtable hashtable , List remove , List add){ + Map map=new HashMap<>(); + map.put("table",hashtable); + map.put("remove",remove); + map.put("add",add); + //发送消息队列 + this.rabbitTemplate.convertAndSend("qd-update-exchange_SQ_GSAR_RELEASE", "qd-update-key_SQ_GSAR_RELEASE", map); + } + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/mq/SendQdUpdateMQService.java b/adc-da-slrs/src/main/java/com/adc/da/mq/SendQdUpdateMQService.java new file mode 100644 index 00000000..78804f0b --- /dev/null +++ b/adc-da-slrs/src/main/java/com/adc/da/mq/SendQdUpdateMQService.java @@ -0,0 +1,161 @@ +package com.adc.da.mq; + +import com.adc.da.slrs.sarLawsAttrInfo.service.ISarLawsAttrInfoService; +import com.adc.da.slrs.sarLawsStandInfo.entity.SarLawsStandInfo; +import com.adc.da.slrs.sarLawsStandInfo.service.ISarLawsStandInfoService; +import com.adc.da.slrs.sarStandAttrInfo.service.ISarStandAttrInfoService; +import com.adc.da.slrs.sarStandardsInfo.entity.SarStandardsInfo; +import com.adc.da.slrs.sarStandardsInfo.service.ISarStandardsInfoService; +import com.adc.da.sys.service.IDicTypeEOService; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.rabbitmq.client.Channel; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.amqp.rabbit.annotation.Exchange; +import org.springframework.amqp.rabbit.annotation.Queue; +import org.springframework.amqp.rabbit.annotation.QueueBinding; +import org.springframework.amqp.rabbit.annotation.RabbitListener; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.messaging.Message; +import org.springframework.stereotype.Component; +import java.util.*; + +@Component +public class SendQdUpdateMQService { + + @Autowired + private ISarStandAttrInfoService iSarStandAttrInfoService; + + @Autowired + private ISarStandardsInfoService sarStandardsInfoService; + + @Autowired + private ISarLawsStandInfoService lawsStandInfoService; + + @Autowired + private ISarLawsAttrInfoService lawsAttrInfoService; + + + //查询数据字典 + @Autowired + private IDicTypeEOService dicTypeEOService; + + + private static final Logger logger = LoggerFactory.getLogger(SendQdUpdateMQService.class); + + + @RabbitListener(bindings = @QueueBinding( + value = @Queue(value = "createQdUpdateMQ_SQ_GSAR_RELEASE", durable = "true"), + exchange = @Exchange(value = "qd-update-exchange_SQ_GSAR_RELEASE", ignoreDeclarationExceptions = "true"), + key = "qd-update-key_SQ_GSAR_RELEASE")) + public void createMQ(Map bussMap, Message message, Channel channel) throws Exception{ + + //数据字典数据组装 + Map dicTypeEO = dicTypeEOService.getDicTypeListCode(); + Map dict=new HashMap<>(); + List> arr = (List>) dicTypeEO.get("SYRZCLASS"); + arr.forEach(stringStringMap -> { + dict.put(stringStringMap.get("label"),stringStringMap.get("value")); + }); + + + //写修改逻辑 + Thread.sleep(5000); + Hashtable tool= (Hashtable) bussMap.get("table"); + List remove= (List) bussMap.get("remove"); + List add= (List) bussMap.get("add"); + remove.forEach(s -> { + QueryWrapper wrapper=new QueryWrapper<>(); + wrapper.eq("ID",s); + List infos=sarStandardsInfoService.list(wrapper); + if (null!=infos && infos.size()>0) { + SarStandardsInfo sarStandardsInfo = new SarStandardsInfo(); + sarStandardsInfo.setId(s); + sarStandardsInfo.setIsRelateAccess("2"); + Map bussAttrInfoMap = iSarStandAttrInfoService.getBussAttrInfo(s); + if (bussAttrInfoMap != null) { + StringBuilder stringBuilder = new StringBuilder(); + if (tool.get(s).contains(",")) { + for (String e : tool.get(s).split(",")) { + stringBuilder.append(dict.get(e)); + } + } else { + stringBuilder.append(dict.get(s)); + } + bussAttrInfoMap.replace("SYRZ", stringBuilder.toString()); + } + } + + QueryWrapper wrapper1=new QueryWrapper<>(); + wrapper.eq("ID",s); + List infos1=lawsStandInfoService.list(wrapper1); + if (null!=infos1 && infos1.size()>0) { + SarLawsStandInfo sarLawsStandInfo = new SarLawsStandInfo(); + sarLawsStandInfo.setId(s); + sarLawsStandInfo.setIsRelateAccess("2"); + Map bussAttrInfoMap = lawsAttrInfoService.getBussAttrInfo(s); + if (bussAttrInfoMap != null) { + StringBuilder stringBuilder = new StringBuilder(); + if (tool.get(s).contains(",")) { + for (String e : tool.get(s).split(",")) { + stringBuilder.append(dict.get(e)); + } + } else { + stringBuilder.append(dict.get(s)); + } + bussAttrInfoMap.replace("SYRZ", stringBuilder.toString()); + } + } + }); + + add.forEach(s -> { + QueryWrapper wrapper=new QueryWrapper<>(); + wrapper.eq("ID",s); + List infos=sarStandardsInfoService.list(wrapper); + if (null!=infos && infos.size()>0) { + SarStandardsInfo sarStandardsInfo = new SarStandardsInfo(); + sarStandardsInfo.setId(s); + sarStandardsInfo.setIsRelateAccess("1"); + Map bussAttrInfoMap = iSarStandAttrInfoService.getBussAttrInfo(s); + if (bussAttrInfoMap != null) { + StringBuilder stringBuilder = new StringBuilder(); + if (tool.get(s).contains(",")) { + for (String e : tool.get(s).split(",")) { + stringBuilder.append(dict.get(e)); + } + } else { + stringBuilder.append(dict.get(s)); + } + bussAttrInfoMap.replace("SYRZ", stringBuilder.toString()); + } + } + + QueryWrapper wrapper1=new QueryWrapper<>(); + wrapper.eq("ID",s); + List infos1=lawsStandInfoService.list(wrapper1); + if (null!=infos1 && infos1.size()>0) { + SarLawsStandInfo sarLawsStandInfo = new SarLawsStandInfo(); + sarLawsStandInfo.setId(s); + sarLawsStandInfo.setIsRelateAccess("1"); + Map bussAttrInfoMap = lawsAttrInfoService.getBussAttrInfo(s); + if (bussAttrInfoMap != null) { + StringBuilder stringBuilder = new StringBuilder(); + if (tool.get(s).contains(",")) { + for (String e : tool.get(s).split(",")) { + stringBuilder.append(dict.get(e)); + } + } else { + stringBuilder.append(dict.get(s)); + } + bussAttrInfoMap.replace("SYRZ", stringBuilder.toString()); + } + } + }); + + + + + + } + +} diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/entity/SarLawsAttrDetailedList.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/entity/SarLawsAttrDetailedList.java index b037f45f..a1466f08 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/entity/SarLawsAttrDetailedList.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/entity/SarLawsAttrDetailedList.java @@ -55,4 +55,8 @@ public class SarLawsAttrDetailedList extends BaseEntity { @TableField(value = "zccssrq") private String zccssrq; + @ApiModelProperty(value = "适用认证") + @TableField(value = "syrz") + private String syrz; + } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/service/impl/SarLawsAttrDetailedListServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/service/impl/SarLawsAttrDetailedListServiceImpl.java index 8f11594a..2a610dd6 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/service/impl/SarLawsAttrDetailedListServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrDetailedList/service/impl/SarLawsAttrDetailedListServiceImpl.java @@ -224,6 +224,7 @@ public class SarLawsAttrDetailedListServiceImpl extends ServiceImpl * 服务类 @@ -16,4 +18,6 @@ public interface ISarLawsAttrInfoService extends IService { String selectFieldValByLawsId(String field,String standId); int updateLawsInfo(String standId,String field,String value); + + Map getBussAttrInfo(String standId); } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrInfo/service/impl/SarLawsAttrInfoServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrInfo/service/impl/SarLawsAttrInfoServiceImpl.java index 48ec8683..ac95cf5b 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrInfo/service/impl/SarLawsAttrInfoServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsAttrInfo/service/impl/SarLawsAttrInfoServiceImpl.java @@ -3,9 +3,12 @@ package com.adc.da.slrs.sarLawsAttrInfo.service.impl; import com.adc.da.slrs.sarLawsAttrInfo.entity.SarLawsAttrInfo; import com.adc.da.slrs.sarLawsAttrInfo.dao.SarLawsAttrInfoDao; import com.adc.da.slrs.sarLawsAttrInfo.service.ISarLawsAttrInfoService; +import com.adc.da.utils.util.InitStandAttrUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; +import java.util.Map; + /** *

* 服务实现类 @@ -26,4 +29,10 @@ public class SarLawsAttrInfoServiceImpl extends ServiceImpl getBussAttrInfo(String standId) { + String fieldInfo = InitStandAttrUtil.queryFieldLaws; + return this.baseMapper.selectLawsFieldAndData(fieldInfo,standId); + } } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsDetailedList/entity/DetailedUpDto.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsDetailedList/entity/DetailedUpDto.java index a0238fc1..85a1e2aa 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsDetailedList/entity/DetailedUpDto.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsDetailedList/entity/DetailedUpDto.java @@ -68,4 +68,8 @@ public class DetailedUpDto { @ApiModelProperty(value = "新车型实施时间") private String inforlist3; + @ApiModelProperty(value = "适用认证") + private String inforlist4; + + } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsDetailedList/entity/TimeDto.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsDetailedList/entity/TimeDto.java index 510ebe8c..921e59d1 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsDetailedList/entity/TimeDto.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsDetailedList/entity/TimeDto.java @@ -23,4 +23,7 @@ public class TimeDto { @ApiModelProperty(value = "新车型实施日期") private String xcxssrqgj; + @ApiModelProperty(value = "适用认证") + private String syrz; + } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsDetailedList/service/impl/SarLawsDetailedListServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsDetailedList/service/impl/SarLawsDetailedListServiceImpl.java index 326eadd3..b1f0c5fd 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsDetailedList/service/impl/SarLawsDetailedListServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarLawsDetailedList/service/impl/SarLawsDetailedListServiceImpl.java @@ -1,6 +1,7 @@ package com.adc.da.slrs.sarLawsDetailedList.service.impl; import com.adc.da.att.service.IAttFileEOService; +import com.adc.da.mq.CreateUpdateMQService; import com.adc.da.slrs.processModel.utils.ExcelImportUtilByWk; import com.adc.da.slrs.sarBussionessStand.dao.SarBussionessStandDao; import com.adc.da.slrs.sarBussionessStand.entity.SarBussionessStand; @@ -86,6 +87,10 @@ public class SarLawsDetailedListServiceImpl extends ServiceImpl idList) { @@ -633,6 +638,7 @@ public class SarLawsDetailedListServiceImpl extends ServiceImpl sarLawsAttrDetailedLists=sarLawsAttrDetailedListDao.selectList(wrapper); List list1=new ArrayList<>(); + List list2=new ArrayList<>(); + //避免出现数据丢失 处理一下适用认证信息 + Hashtable hashtable=new Hashtable<>(); if (sarLawsAttrDetailedLists.size()>0){ - sarLawsAttrDetailedLists.forEach(sarLawsAttrDetailedList -> {list1.add(sarLawsAttrDetailedList.getStandId());}); + sarLawsAttrDetailedLists.forEach(sarLawsAttrDetailedList -> { + dealWithHashTableData(list1, list2, hashtable, sarLawsAttrDetailedList); + }); } list1.removeAll(Arrays.asList(detailedUpDto.getInforlist().split(","))); if (list1.size()>0){ QueryWrapper wrapper1 = new QueryWrapper<>(); wrapper1.in("stand_id",list1); List res=sarLawsAttrDetailedListDao.selectList(wrapper); + if (res.size()>0){ + res.forEach(sarLawsAttrDetailedList -> { + dealWithHashTableData(list1, list2, hashtable, sarLawsAttrDetailedList); + }); + } + + res.forEach(sarLawsAttrDetailedList -> { list1.remove(sarLawsAttrDetailedList.getStandId()); }); + //前面筛选出 移除认证清单 if (null!=list1 && list1.size()>0){ - sarStandardsInfoDao.updateISRELATEACCESSById("2", list1); + sarStandardsInfoDao.updateISRELATEACCESSById("1", list1); + } + //剩下的数据是需要加入到认证清单的 + list2.removeAll(list1); + //下面写消息队列了开始 + createUpdateMQService.sendMQ(hashtable,list1,list2); + } +// //更新标准是否纳入认证清单 +// sarStandardsInfoDao.updateISRELATEACCESSById("1", Arrays.asList(detailedUpDto.getInforlist().split(","))); + + } + } + + private void dealWithHashTableData(List list1, List list2, Hashtable hashtable, SarLawsAttrDetailedList sarLawsAttrDetailedList) { + list1.add(sarLawsAttrDetailedList.getStandId()); + list2.add(sarLawsAttrDetailedList.getStandId()); + if (null != hashtable.get(sarLawsAttrDetailedList.getId()) && null != sarLawsAttrDetailedList.getSyrz()) { + if (sarLawsAttrDetailedList.getSyrz().contains(",")) { + List middle = new ArrayList<>(Arrays.asList(sarLawsAttrDetailedList.getSyrz().split(","))); + middle.forEach(s -> { + String as = hashtable.get(sarLawsAttrDetailedList.getId()); + if (!as.contains(s)) { + hashtable.put(sarLawsAttrDetailedList.getId(), as + "," + s); + } + }); + } else { +// 先确定hashTable中不为空 + if (null != sarLawsAttrDetailedList.getSyrz()) { + hashtable.put(sarLawsAttrDetailedList.getId(), sarLawsAttrDetailedList.getSyrz()); } } - //更新标准是否纳入认证清单 - sarStandardsInfoDao.updateISRELATEACCESSById("1", Arrays.asList(detailedUpDto.getInforlist().split(","))); - } } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandAttrInfo/service/ISarStandAttrInfoService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandAttrInfo/service/ISarStandAttrInfoService.java index 2d39eacd..c25044c5 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandAttrInfo/service/ISarStandAttrInfoService.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandAttrInfo/service/ISarStandAttrInfoService.java @@ -3,6 +3,8 @@ package com.adc.da.slrs.sarStandAttrInfo.service; import com.adc.da.slrs.sarStandAttrInfo.entity.SarStandAttrInfo; import com.baomidou.mybatisplus.extension.service.IService; +import java.util.Map; + /** *

* 服务类 @@ -16,4 +18,6 @@ public interface ISarStandAttrInfoService extends IService { String selectFieldValByStandId(String field,String standId); int updateStandInfo(String standId,String field,String value); + + Map getBussAttrInfo(String standId); } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandAttrInfo/service/impl/SarStandAttrInfoServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandAttrInfo/service/impl/SarStandAttrInfoServiceImpl.java index b1707e68..22848999 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandAttrInfo/service/impl/SarStandAttrInfoServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandAttrInfo/service/impl/SarStandAttrInfoServiceImpl.java @@ -3,10 +3,13 @@ package com.adc.da.slrs.sarStandAttrInfo.service.impl; import com.adc.da.slrs.sarStandAttrInfo.entity.SarStandAttrInfo; import com.adc.da.slrs.sarStandAttrInfo.dao.SarStandAttrInfoDao; import com.adc.da.slrs.sarStandAttrInfo.service.ISarStandAttrInfoService; +import com.adc.da.utils.util.InitStandAttrUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.Map; + /** *

* 服务实现类 @@ -30,4 +33,10 @@ public class SarStandAttrInfoServiceImpl extends ServiceImpl - INSERT INTO sar_laws_attr_detailed_list ( id, number, detailed_list_id, stand_id ,ssrq,xcxssrq,zccssrq) VALUES + INSERT INTO sar_laws_attr_detailed_list ( id, number, detailed_list_id, stand_id ,ssrq,xcxssrq,zccssrq,syrz) VALUES - (#{list.id,jdbcType=VARCHAR}, #{list.number}, #{list.detailedListId,jdbcType=VARCHAR}, #{list.standId,jdbcType=VARCHAR},#{list.ssrq,jdbcType=VARCHAR},#{list.xcxssrq,jdbcType=VARCHAR},#{list.zccssrq,jdbcType=VARCHAR}) + (#{list.id,jdbcType=VARCHAR}, #{list.number}, #{list.detailedListId,jdbcType=VARCHAR}, #{list.standId,jdbcType=VARCHAR},#{list.ssrq,jdbcType=VARCHAR},#{list.xcxssrq,jdbcType=VARCHAR},#{list.zccssrq,jdbcType=VARCHAR} + ,#{list.syrz,jdbcType=VARCHAR})