Browse Source

审批相关数据ID使用雪花算法,修复区域数据关联

contract
Yen 2 years ago
parent
commit
8c4288c307
  1. 1
      src/main/java/com/qs/serve/modules/bms/controller/BmsRegionController.java
  2. 25
      src/main/java/com/qs/serve/modules/bms/service/impl/BmsRegion2ServiceImpl.java
  3. 29
      src/main/java/com/qs/serve/modules/bms/service/impl/BmsRegionServiceImpl.java
  4. 10
      src/main/java/com/qs/serve/modules/his/service/impl/HisUserSupplierServiceImpl.java

1
src/main/java/com/qs/serve/modules/bms/controller/BmsRegionController.java

@ -250,6 +250,7 @@ public class BmsRegionController {
param.setName(regionBo.getName()); param.setName(regionBo.getName());
param.setPid(regionBo.getPid()); param.setPid(regionBo.getPid());
boolean result = bmsRegionService.updateBmsRegionById(param); boolean result = bmsRegionService.updateBmsRegionById(param);
hisUserSupplierService.cleanTable();
return R.isTrue(result); return R.isTrue(result);
} }

25
src/main/java/com/qs/serve/modules/bms/service/impl/BmsRegion2ServiceImpl.java

@ -64,37 +64,38 @@ public class BmsRegion2ServiceImpl extends ServiceImpl<BmsRegion2Mapper,BmsRegio
BmsRegion2 currentRegion = this.getById(param.getId()); BmsRegion2 currentRegion = this.getById(param.getId());
List<BmsSupplier> regionSupplierList = bmsSupplierApplicationService.listByRegionIds(Arrays.asList(ori.getId()),ori.getLevel()); List<BmsSupplier> regionSupplierList = bmsSupplierApplicationService.listByRegionIds(Arrays.asList(ori.getId()),ori.getLevel());
for (BmsSupplier supplier : regionSupplierList) { if(CollectionUtil.isNotEmpty(regionSupplierList)){
String[] ids = currentRegion.getPathIds().split("_"); String[] ids = currentRegion.getPathIds().split("_");
String region1 = "0"; String region1 = "0";
String region2 = "0"; String region2 = "0";
String region3 = "0"; String region3 = "0";
String region4 = "0"; String region4 = "0";
String regionLast = "0"; String regionLast = "0";
if(ids.length>1){ if(ids.length>0){
region1 = ids[0]; region1 = ids[0];
regionLast = region1; regionLast = region1;
} }
if(ids.length>2){ if(ids.length>1){
region2 = ids[1]; region2 = ids[1];
regionLast = region2; regionLast = region2;
} }
if(ids.length>3){ if(ids.length>2){
region3 = ids[2]; region3 = ids[2];
regionLast = region3; regionLast = region3;
} }
if(ids.length>4){ if(ids.length>3){
region4 = ids[3]; region4 = ids[3];
regionLast = region4; regionLast = region4;
} }
supplier.setRegion2First(region1); for (BmsSupplier supplier : regionSupplierList) {
supplier.setRegion2Second(region2); supplier.setRegionFirst(region1);
supplier.setRegion2Third(region3); supplier.setRegionSecond(region2);
supplier.setRegion2First(region4); supplier.setRegionThird(region3);
supplier.setRegion2Last(regionLast); supplier.setRegionFourthly(region4);
bmsSupplierMapper.updateById(supplier); supplier.setRegionLast(regionLast);
bmsSupplierMapper.updateById(supplier);
}
} }
} }
} }
return b; return b;

29
src/main/java/com/qs/serve/modules/bms/service/impl/BmsRegionServiceImpl.java

@ -13,6 +13,7 @@ import com.qs.serve.modules.bms.mapper.BmsSupplierMapper;
import com.qs.serve.modules.bms.service.BmsFactoryService; import com.qs.serve.modules.bms.service.BmsFactoryService;
import com.qs.serve.modules.bms.service.BmsRegionUserService; import com.qs.serve.modules.bms.service.BmsRegionUserService;
import com.qs.serve.modules.his.service.HisUserChannelPointService; import com.qs.serve.modules.his.service.HisUserChannelPointService;
import com.qs.serve.modules.his.service.HisUserSupplierService;
import com.qs.serve.modules.sys.entity.SysUser; import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.sys.service.SysUserService; import com.qs.serve.modules.sys.service.SysUserService;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
@ -55,50 +56,52 @@ public class BmsRegionServiceImpl extends ServiceImpl<BmsRegionMapper,BmsRegion>
@Override @Override
public boolean updateBmsRegionById(BmsRegion param){ public boolean updateBmsRegionById(BmsRegion param){
BmsRegion ori = this.getById(param.getId());
param = this.flushSetLevel(param); param = this.flushSetLevel(param);
boolean b = this.updateById(param); boolean b = this.updateById(param);
BmsRegion ori = this.getById(param.getId());
boolean changePid = !ori.getPid().equals(param.getPid()); boolean changePid = !ori.getPid().equals(param.getPid());
if(!ori.getName().equals(param.getName())||changePid) { if(!ori.getName().equals(param.getName())||changePid) {
BmsRegion parentRegion = this.updatePathByPid(param.getId()); BmsRegion parentRegion = this.updatePathByPid(param.getId());
if(changePid){ if(changePid){
//hisUserSupplierService.cleanTable();
/*停用的逻辑 /*停用的逻辑
hisUserChannelPointService.removeRegion(2,ori.getPathIds()); hisUserChannelPointService.removeRegion(2,ori.getPathIds());
hisUserChannelPointService.flushRegion(2,parentRegion.getPathIds());*/ hisUserChannelPointService.flushRegion(2,parentRegion.getPathIds());*/
//更新客户 //更新客户
BmsRegion currentRegion = this.getById(param.getId()); BmsRegion currentRegion = this.getById(param.getId());
List<BmsSupplier> regionSupplierList = bmsSupplierApplicationService.listByRegionIds(Arrays.asList(ori.getId()),ori.getLevel()); List<BmsSupplier> regionSupplierList = bmsSupplierApplicationService.listByRegionIds(Arrays.asList(ori.getId()),ori.getLevel());
for (BmsSupplier supplier : regionSupplierList) { if(CollectionUtil.isNotEmpty(regionSupplierList)){
String[] ids = currentRegion.getPathIds().split("_"); String[] ids = currentRegion.getPathIds().split("_");
String region1 = "0"; String region1 = "0";
String region2 = "0"; String region2 = "0";
String region3 = "0"; String region3 = "0";
String region4 = "0"; String region4 = "0";
String regionLast = "0"; String regionLast = "0";
if(ids.length>1){ if(ids.length>0){
region1 = ids[0]; region1 = ids[0];
regionLast = region1; regionLast = region1;
} }
if(ids.length>2){ if(ids.length>1){
region2 = ids[1]; region2 = ids[1];
regionLast = region2; regionLast = region2;
} }
if(ids.length>3){ if(ids.length>2){
region3 = ids[2]; region3 = ids[2];
regionLast = region3; regionLast = region3;
} }
if(ids.length>4){ if(ids.length>3){
region4 = ids[3]; region4 = ids[3];
regionLast = region4; regionLast = region4;
} }
supplier.setRegionFirst(region1); for (BmsSupplier supplier : regionSupplierList) {
supplier.setRegionSecond(region2); supplier.setRegionFirst(region1);
supplier.setRegionThird(region3); supplier.setRegionSecond(region2);
supplier.setRegionFirst(region4); supplier.setRegionThird(region3);
supplier.setRegionLast(regionLast); supplier.setRegionFourthly(region4);
bmsSupplierMapper.updateById(supplier); supplier.setRegionLast(regionLast);
bmsSupplierMapper.updateById(supplier);
}
} }
} }
} }
return b; return b;

10
src/main/java/com/qs/serve/modules/his/service/impl/HisUserSupplierServiceImpl.java

@ -13,6 +13,8 @@ import com.qs.serve.modules.bms.entity.BmsRegion;
import com.qs.serve.modules.bms.entity.BmsRegion2; import com.qs.serve.modules.bms.entity.BmsRegion2;
import com.qs.serve.modules.bms.entity.BmsRegionUser; import com.qs.serve.modules.bms.entity.BmsRegionUser;
import com.qs.serve.modules.bms.entity.BmsSupplier; import com.qs.serve.modules.bms.entity.BmsSupplier;
import com.qs.serve.modules.bms.mapper.BmsRegion2Mapper;
import com.qs.serve.modules.bms.mapper.BmsRegionMapper;
import com.qs.serve.modules.bms.service.BmsRegion2Service; import com.qs.serve.modules.bms.service.BmsRegion2Service;
import com.qs.serve.modules.bms.service.BmsRegionService; import com.qs.serve.modules.bms.service.BmsRegionService;
import com.qs.serve.modules.bms.service.BmsRegionUserService; import com.qs.serve.modules.bms.service.BmsRegionUserService;
@ -39,8 +41,8 @@ import java.util.stream.Collectors;
public class HisUserSupplierServiceImpl extends ServiceImpl<HisUserSupplierMapper,HisUserSupplier> implements HisUserSupplierService { public class HisUserSupplierServiceImpl extends ServiceImpl<HisUserSupplierMapper,HisUserSupplier> implements HisUserSupplierService {
private BmsSupplierService bmsSupplierService; private BmsSupplierService bmsSupplierService;
private BmsRegionService saleRegionService; private BmsRegionMapper saleRegionMapper;
private BmsRegion2Service bizRegionService; private BmsRegion2Mapper bmsRegion2Mapper;
private BmsRegionUserService regionUserService; private BmsRegionUserService regionUserService;
private SysPostUserService sysPostUserService; private SysPostUserService sysPostUserService;
@ -152,7 +154,7 @@ public class HisUserSupplierServiceImpl extends ServiceImpl<HisUserSupplierMappe
.map(BmsRegionUser::getRegionId) .map(BmsRegionUser::getRegionId)
.collect(Collectors.toList()); .collect(Collectors.toList());
if(regionSaleIds.size()>0){ if(regionSaleIds.size()>0){
List<BmsRegion> saleRegions = saleRegionService.listByIds(regionSaleIds); List<BmsRegion> saleRegions = saleRegionMapper.selectBatchIds(regionSaleIds);
Map<Integer,List<BmsRegion>> saleRegionsMap = saleRegions.stream().collect(Collectors.groupingBy(BmsRegion::getLevel)); Map<Integer,List<BmsRegion>> saleRegionsMap = saleRegions.stream().collect(Collectors.groupingBy(BmsRegion::getLevel));
for (Integer level : saleRegionsMap.keySet()) { for (Integer level : saleRegionsMap.keySet()) {
List<BmsRegion> saleRegionListByLevel = saleRegionsMap.get(level); List<BmsRegion> saleRegionListByLevel = saleRegionsMap.get(level);
@ -165,7 +167,7 @@ public class HisUserSupplierServiceImpl extends ServiceImpl<HisUserSupplierMappe
.map(BmsRegionUser::getRegionId) .map(BmsRegionUser::getRegionId)
.collect(Collectors.toList()); .collect(Collectors.toList());
if(regionBizIds.size()>0){ if(regionBizIds.size()>0){
List<BmsRegion2> bizRegions = bizRegionService.listByIds(regionBizIds); List<BmsRegion2> bizRegions = bmsRegion2Mapper.selectBatchIds(regionBizIds);
Map<Integer,List<BmsRegion2>> saleRegionsMap = bizRegions.stream().collect(Collectors.groupingBy(BmsRegion2::getLevel)); Map<Integer,List<BmsRegion2>> saleRegionsMap = bizRegions.stream().collect(Collectors.groupingBy(BmsRegion2::getLevel));
for (Integer level : saleRegionsMap.keySet()) { for (Integer level : saleRegionsMap.keySet()) {
List<BmsRegion2> region2List = saleRegionsMap.get(level); List<BmsRegion2> region2List = saleRegionsMap.get(level);

Loading…
Cancel
Save