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 bf4341b4..81b0f702 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,11 @@ public class GroupManagementServiceImpl implements GroupManagementService { 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..ef0ac366 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 @@ -81,6 +81,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 +92,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不为空"); GroupManagementEntity groupManagementEntity = JSON.parseObject(groupManagementResult, GroupManagementEntity.class); if(!StringUtils.equals(taxPlayerCodeDept.getName(), groupManagementEntity.getGroupName()) || !StringUtils.equals(taxPlayerCodeDept.getTaxpayerCode(), groupManagementEntity.getXhfNsrsbh()) @@ -115,12 +117,17 @@ 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); } } else { + log.debug("同步开票组织管理---redis is null"); //查询数据库 GroupManagementQuery groupManagementQuery = new GroupManagementQuery(); groupManagementQuery.setGroupId(taxPlayerCodeDept.getDeptId()); @@ -135,10 +142,15 @@ public class UserController { if(groupManagementEntityOptional.isPresent()){ GroupManagementEntity groupManagementEntity = groupManagementEntityOptional.get(); + boolean changed = isChanged(taxPlayerCodeDept, groupManagementEntity); + if (changed) { + updateGroup(taxPlayerCodeDept,groupManagementEntity); + } //新增redis缓存 String groupManagementStr = JSON.toJSONString(groupManagementEntity); redisService.set(kpzzglKey, groupManagementStr, RedisConstant.REDIS_EXPIRE_TIME_7DAYS); } else { + log.debug("同步开票组织管理---database is null"); GroupManagementEntity groupManagementEntity = new GroupManagementEntity(); groupManagementEntity.setId(DistributedKeyMaker.generateShotKey()); groupManagementEntity.setGroupId(taxPlayerCodeDept.getDeptId()); @@ -174,4 +186,39 @@ public class UserController { } }); } + + 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 ed98190a..eaaf5f50 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 @@ -290,4 +290,56 @@ and del_flag='0' group by group_id + + + + UPDATE + sys_group_management + + + group_name = #{groupManagementEntity.groupName,jdbcType=VARCHAR}, + + + group_type = #{groupManagementEntity.groupType,jdbcType=CHAR}, + + + xhf_mc = #{groupManagementEntity.xhfMc,jdbcType=VARCHAR}, + + + xhf_dz = #{groupManagementEntity.xhfDz,jdbcType=VARCHAR}, + + + xhf_dh = #{groupManagementEntity.xhfDh,jdbcType=VARCHAR}, + + + xhf_yh = #{groupManagementEntity.xhfYh,jdbcType=VARCHAR}, + + + xhf_zh = #{groupManagementEntity.xhfZh,jdbcType=VARCHAR}, + + + data_source = #{groupManagementEntity.dataSource,jdbcType=CHAR}, + + + is_default = #{groupManagementEntity.defaultItem,jdbcType=CHAR}, + + + data_status = #{groupManagementEntity.dataStatus,jdbcType=CHAR}, + + + del_flag = #{groupManagementEntity.delFlag,jdbcType=CHAR}, + + + create_time = #{groupManagementEntity.createTime,jdbcType=TIMESTAMP}, + + + update_time = #{groupManagementEntity.updateTime,jdbcType=TIMESTAMP}, + + + WHERE + xhf_nsrsbh = #{groupManagementEntity.xhfNsrsbh,jdbcType=VARCHAR} + and ent_id = #{groupManagementEntity.entId,jdbcType=VARCHAR} + and del_flag = '0' + and data_source = '1' +