diff --git a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/groupmanagement/dao/GroupManagementMapper.java b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/groupmanagement/dao/GroupManagementMapper.java index 99281445..384102ab 100644 --- a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/groupmanagement/dao/GroupManagementMapper.java +++ b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/groupmanagement/dao/GroupManagementMapper.java @@ -46,4 +46,6 @@ public interface GroupManagementMapper { int countEntIdNumByXfnsrsbh(@Param("xfnsrsbh") String xfnsrsbh); List findAllGroupInfo(); + + int updateGroupByKey(@Param(value = "groupManagementEntity") GroupManagementEntity groupManagementEntity); } diff --git a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/groupmanagement/service/GroupManagementService.java b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/groupmanagement/service/GroupManagementService.java index 1dd7d636..1ec2408f 100644 --- a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/groupmanagement/service/GroupManagementService.java +++ b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/groupmanagement/service/GroupManagementService.java @@ -55,4 +55,6 @@ public interface GroupManagementService { * 查询所有组织信息 */ List findAllGroupInfo(); + + int updateGroupByKey(GroupManagementEntity groupManagementEntity); } diff --git a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/groupmanagement/service/impl/GroupManagementServiceImpl.java b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/groupmanagement/service/impl/GroupManagementServiceImpl.java index ce069c5d..82b527bc 100644 --- a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/groupmanagement/service/impl/GroupManagementServiceImpl.java +++ b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/groupmanagement/service/impl/GroupManagementServiceImpl.java @@ -208,6 +208,13 @@ public class GroupManagementServiceImpl implements GroupManagementService { public List findAllGroupInfo() { return groupManagementMapper.findAllGroupInfo(); } + + @Override + public int updateGroupByKey(GroupManagementEntity groupManagementEntity) { + return groupManagementMapper.updateGroupByKey(groupManagementEntity); + } + + /** * 构建组织树集合 */ diff --git a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/thirdservice/user/controller/UserController.java b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/thirdservice/user/controller/UserController.java index 230cc292..a2fea546 100644 --- a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/thirdservice/user/controller/UserController.java +++ b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/thirdservice/user/controller/UserController.java @@ -1,7 +1,9 @@ package com.dxhy.order.baseservice.module.thirdservice.user.controller; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.dxhy.order.constant.ConfigureConstant; import com.dxhy.order.constant.OrderInfoEnum; import com.dxhy.order.constant.OrderManagementConstant; @@ -25,9 +27,11 @@ import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; +import java.util.Collections; import java.util.Date; import java.util.List; import java.util.Optional; +import java.util.stream.Collectors; /** * 用户信息控制层 @@ -81,6 +85,7 @@ public class UserController { */ private void syncPhysicalGroupManagement(List taxplayercodeDeptList) { taxplayercodeDeptList.forEach(taxPlayerCodeDept -> { + log.debug("同步开票组织管理信息组织编码为:{}",taxPlayerCodeDept.getEnterpriseNumbers()); //查找出deptType不等于5 并且税号不为空(实体组织) 的数据 if (!ConfigureConstant.STRING_5.equals(Integer.toString(taxPlayerCodeDept.getDeptType())) && StringUtils.isNotBlank(taxPlayerCodeDept.getTaxpayerCode())) { @@ -91,6 +96,7 @@ public class UserController { String kpzzglKey = String.format(RedisConstant.REDIS_GROUP_MANAGEMENT_MESSAGE, key); String groupManagementResult = redisService.get(kpzzglKey); if(StringUtils.isNotBlank(groupManagementResult)){ + log.debug("同步开票组织管理---redis不为空:{}", JSONObject.toJSONString(groupManagementResult)); GroupManagementEntity groupManagementEntity = JSON.parseObject(groupManagementResult, GroupManagementEntity.class); if(!StringUtils.equals(taxPlayerCodeDept.getName(), groupManagementEntity.getGroupName()) || !StringUtils.equals(taxPlayerCodeDept.getTaxpayerCode(), groupManagementEntity.getXhfNsrsbh()) @@ -115,12 +121,22 @@ public class UserController { groupManagementEntity.setEntId(taxPlayerCodeDept.getDeptId()); groupManagementEntity.setUsingEntId(taxPlayerCodeDept.getDeptId()); groupManagementEntity.setUpdateTime(new Date()); - groupManagementService.updateGroup(groupManagementEntity); - + int count = groupManagementService.updateGroup(groupManagementEntity); + if (count == 0) { + log.debug("同步开票组织管理---id is not find"); + groupManagementService.updateGroupByKey(groupManagementEntity); + } //更新redis缓存 redisService.del(kpzzglKey); } + + + String repl = "(" + taxPlayerCodeDept.getEnterpriseNumbers() + ")"; + String replace = taxPlayerCodeDept.getName().replace(repl, ""); + taxPlayerCodeDept.setName(replace); + } else { + log.debug("同步开票组织管理---redis is null"); //查询数据库 GroupManagementQuery groupManagementQuery = new GroupManagementQuery(); groupManagementQuery.setGroupId(taxPlayerCodeDept.getDeptId()); @@ -135,14 +151,24 @@ public class UserController { if(groupManagementEntityOptional.isPresent()){ GroupManagementEntity groupManagementEntity = groupManagementEntityOptional.get(); + boolean changed = isChanged(taxPlayerCodeDept, groupManagementEntity); + + String repl = "(" + taxPlayerCodeDept.getEnterpriseNumbers() + ")"; + String replace = taxPlayerCodeDept.getName().replace(repl, ""); + + if (changed) { + updateGroup(taxPlayerCodeDept,groupManagementEntity); + } //新增redis缓存 String groupManagementStr = JSON.toJSONString(groupManagementEntity); redisService.set(kpzzglKey, groupManagementStr, RedisConstant.REDIS_EXPIRE_TIME_7DAYS); + taxPlayerCodeDept.setName(replace); } else { + log.debug("同步开票组织管理---database is null"); GroupManagementEntity groupManagementEntity = new GroupManagementEntity(); groupManagementEntity.setId(DistributedKeyMaker.generateShotKey()); groupManagementEntity.setGroupId(taxPlayerCodeDept.getDeptId()); - + String name = taxPlayerCodeDept.getName(); String repl = "(" + taxPlayerCodeDept.getEnterpriseNumbers() + ")"; String replace = taxPlayerCodeDept.getName().replace(repl, ""); taxPlayerCodeDept.setName(replace); @@ -164,14 +190,69 @@ public class UserController { groupManagementEntity.setUsingEntId(taxPlayerCodeDept.getDeptId()); groupManagementEntity.setCreateTime(new Date()); groupManagementEntity.setUpdateTime(new Date()); - groupManagementService.insertGroup(groupManagementEntity); + int count = groupManagementService.insertGroup(groupManagementEntity); + if (count == 0) { + List groupManagementEntities = groupManagementEntityList.stream().filter(groupManagementEntity1 -> StringUtils.equals(groupManagementEntity1.getGroupId(), groupManagementEntity.getGroupId()) + && StringUtils.equals(groupManagementEntity1.getXhfNsrsbh(), groupManagementEntity.getXhfNsrsbh()) + && StringUtils.equals(groupManagementEntity1.getXhfDz(), groupManagementEntity.getXhfDz()) + && StringUtils.equals(groupManagementEntity1.getXhfDh(), groupManagementEntity.getXhfDh()) + && StringUtils.equals(groupManagementEntity1.getXhfYh(), groupManagementEntity.getXhfYh()) + && StringUtils.equals(groupManagementEntity1.getXhfZh(), groupManagementEntity.getXhfZh()) + && StringUtils.equals(groupManagementEntity1.getEntId(), groupManagementEntity.getEntId()) + && StringUtils.equals(groupManagementEntity1.getGroupName(), groupManagementEntity.getGroupName()) + && StringUtils.equals(groupManagementEntity1.getXhfMc(), groupManagementEntity.getXhfMc())) + .collect(Collectors.toList()); + log.debug("同步开票组织管理---未变更信息组织{}",groupManagementEntityList.size()); + if (CollectionUtil.isEmpty(groupManagementEntities)){ + log.debug("同步开票组织管理---未执行插入补偿"); + groupManagementService.updateGroupByKey(groupManagementEntity); + } + } //新增redis缓存 + groupManagementEntity.setGroupName(name); + groupManagementEntity.setXhfMc(name); String groupManagementStr = JSON.toJSONString(groupManagementEntity); redisService.set(kpzzglKey, groupManagementStr, RedisConstant.REDIS_EXPIRE_TIME_7DAYS); + taxPlayerCodeDept.setName(replace); } } } }); } + + public boolean isChanged(TaxPlayerCodeDept taxPlayerCodeDept,GroupManagementEntity groupManagementEntity){ + + if(!StringUtils.equals(taxPlayerCodeDept.getName(), groupManagementEntity.getGroupName()) + || !StringUtils.equals(taxPlayerCodeDept.getTaxpayerCode(), groupManagementEntity.getXhfNsrsbh()) + || !StringUtils.equals(taxPlayerCodeDept.getName(), groupManagementEntity.getXhfMc()) + || !StringUtils.equals(taxPlayerCodeDept.getTaxpayerAddress(), groupManagementEntity.getXhfDz()) + || !StringUtils.equals(taxPlayerCodeDept.getTaxpayerPhone(), groupManagementEntity.getXhfDh()) + || !StringUtils.equals(taxPlayerCodeDept.getTaxpayerBank(), groupManagementEntity.getXhfYh()) + || !StringUtils.equals(taxPlayerCodeDept.getTaxpayerAccount(), groupManagementEntity.getXhfZh()) + || !StringUtils.equals(taxPlayerCodeDept.getDeptId(), groupManagementEntity.getEntId())) { + return true; + } + return false; + } + + public void updateGroup(TaxPlayerCodeDept taxPlayerCodeDept,GroupManagementEntity groupManagementEntity){ + String name = taxPlayerCodeDept.getName(); + String repl = "(" + taxPlayerCodeDept.getEnterpriseNumbers() + ")"; + String replace = taxPlayerCodeDept.getName().replace(repl, ""); + taxPlayerCodeDept.setName(replace); + groupManagementEntity.setGroupName(taxPlayerCodeDept.getName()); + groupManagementEntity.setXhfNsrsbh(taxPlayerCodeDept.getTaxpayerCode()); + groupManagementEntity.setXhfMc(taxPlayerCodeDept.getName()); + groupManagementEntity.setXhfDz(taxPlayerCodeDept.getTaxpayerAddress()); + groupManagementEntity.setXhfDh(taxPlayerCodeDept.getTaxpayerPhone()); + groupManagementEntity.setXhfYh(taxPlayerCodeDept.getTaxpayerBank()); + groupManagementEntity.setXhfZh(taxPlayerCodeDept.getTaxpayerAccount()); + groupManagementEntity.setEntId(taxPlayerCodeDept.getDeptId()); + groupManagementEntity.setUsingEntId(taxPlayerCodeDept.getDeptId()); + groupManagementEntity.setUpdateTime(new Date()); + groupManagementService.updateGroup(groupManagementEntity); + groupManagementEntity.setGroupName(name); + groupManagementEntity.setXhfMc(name); + } } diff --git a/order-management-base-service/src/main/resources/mybatis/mapper/GroupManagementMapper.xml b/order-management-base-service/src/main/resources/mybatis/mapper/GroupManagementMapper.xml index 6ff37b18..9f915537 100644 --- a/order-management-base-service/src/main/resources/mybatis/mapper/GroupManagementMapper.xml +++ b/order-management-base-service/src/main/resources/mybatis/mapper/GroupManagementMapper.xml @@ -291,4 +291,37 @@ and del_flag='0' group by group_id + + + + UPDATE + sys_group_management + + + group_name = #{groupManagementEntity.groupName,jdbcType=VARCHAR}, + + + xhf_mc = #{groupManagementEntity.xhfMc,jdbcType=VARCHAR}, + + + + + + + + + + + + + + + update_time = #{groupManagementEntity.updateTime,jdbcType=TIMESTAMP}, + + + WHERE + xhf_nsrsbh = #{groupManagementEntity.xhfNsrsbh,jdbcType=VARCHAR} + and ent_id = #{groupManagementEntity.entId,jdbcType=VARCHAR} + and del_flag = '0' +