diff --git a/src/main/java/com/qs/serve/modules/bms/controller/BmsRegion2Controller.java b/src/main/java/com/qs/serve/modules/bms/controller/BmsRegion2Controller.java new file mode 100644 index 00000000..a3419557 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/bms/controller/BmsRegion2Controller.java @@ -0,0 +1,189 @@ +package com.qs.serve.modules.bms.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.qs.serve.common.model.annotation.SysLog; +import com.qs.serve.common.model.dto.PageVo; +import com.qs.serve.common.model.dto.R; +import com.qs.serve.common.model.enums.BizType; +import com.qs.serve.common.model.enums.SystemModule; +import com.qs.serve.common.util.*; +import com.qs.serve.modules.bms.entity.BmsRegion2; +import com.qs.serve.modules.bms.entity.bo.BmsRegionBatchBo; +import com.qs.serve.modules.bms.entity.vo.BmsRegionTreeVo; +import com.qs.serve.modules.bms.service.BmsFactoryService; +import com.qs.serve.modules.bms.service.BmsRegion2Service; +import com.qs.serve.modules.bms.service.BmsRuleRegionService; +import com.qs.serve.modules.bms.service.BmsSupplierService; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; + +/** + * 基础档案 行政区域 + * @author YenHex + * @since 2022-10-10 + */ +@Slf4j +@AllArgsConstructor +@RestController +@RequestMapping("bms/bizRegion") +public class BmsRegion2Controller { + + private BmsRegion2Service BmsRegion2Service; + private BmsSupplierService bmsSupplierService; + private BmsRuleRegionService bmsRuleRegionService; + + /** + * 列表 + * @param param + * @return + */ + @GetMapping("/list") + @PreAuthorize("hasRole('bms:region:query')") + public R> getList(BmsRegion2 param){ + LambdaQueryWrapper regionWrapper = new LambdaQueryWrapper<>(param); + List list = BmsRegion2Service.list(regionWrapper); + return R.ok(list); + } + + /** + * 翻页查询 + * @param param + * @return + */ + @GetMapping("/page") + @PreAuthorize("hasRole('bms:region:query')") + public R> getPage(BmsRegion2 param){ + PageUtil.startPage(); + LambdaQueryWrapper regionWrapper = new LambdaQueryWrapper<>(param); + List list = BmsRegion2Service.list(regionWrapper); + return R.byPageHelperList(list); + } + + /** + * 树查询 + * @param param + * @return + */ + @GetMapping("/tree") + @PreAuthorize("hasRole('bms:region:query')") + public R> getTree(BmsRegion2 param){ + return R.ok(BmsRegion2Service.getTree(param)); + } + + /** + * 根据ID查询 + * @param id + * @return + */ + @GetMapping("/getById/{id}") + @SysLog(module = SystemModule.BASE, title = "区域档案", biz = BizType.QUERY) + @PreAuthorize("hasRole('bms:region:query')") + public R getById(@PathVariable("id") String id){ + BmsRegion2 BmsRegion2 = BmsRegion2Service.getById(id); + return R.ok(BmsRegion2); + } + + /** + * 更新(只允许改名称) + * @param regionBo + * @return + */ + @PostMapping("/updateById") + @SysLog(module = SystemModule.BASE, title = "区域档案", biz = BizType.UPDATE) + @PreAuthorize("hasRole('bms:region:update')") + public R updateById(@RequestBody @Valid BmsRegionBatchBo.BmsRegionBo regionBo){ + BmsRegion2 param = new BmsRegion2(); + param.setId(regionBo.getId()); + param.setName(regionBo.getName()); + boolean result = BmsRegion2Service.updateById(param); + return R.isTrue(result); + } + + /** + * 更新工厂 + * @param regionBo + * @return + */ + @PostMapping("/updateFactory") + @SysLog(module = SystemModule.BASE, title = "区域档案", biz = BizType.UPDATE) + @PreAuthorize("hasRole('bms:region:update')") + public R updateFactory(@RequestBody BmsRegion2 regionBo){ + BmsRegion2 param = new BmsRegion2(); + param.setId(regionBo.getId()); + boolean result = BmsRegion2Service.updateById(param); + return R.isTrue(result); + } + + /** + * 新增区域档案 + * @param regionBo + * @return + */ + @PostMapping("/save") + @SysLog(module = SystemModule.BASE, title = "区域档案", biz = BizType.INSERT) + @PreAuthorize("hasRole('bms:region:insert')") + public R save(@RequestBody @Valid BmsRegionBatchBo.BmsRegionBo regionBo){ + BmsRegion2 param = CopierUtil.copy(regionBo,new BmsRegion2()); + if(param.getId()==null){ + param.setId(IdUtil.getSnowFlakeId()+""); + } + BmsRegion2Service.flushLevel(param); + boolean result = BmsRegion2Service.save(param); + return R.isTrue(result); + } + + /** + * (批量)编辑(更新,只允许改名称) + * @param regionBo + * @return + */ + @PostMapping("/editBatch") + @SysLog(module = SystemModule.BASE, title = "区域档案", biz = BizType.INSERT) + @PreAuthorize("hasRole('bms:region:insert')") + public R editBatch(@RequestBody @Valid BmsRegionBatchBo regionBo){ + ValidateTools.valid(regionBo.getRegionList()); + for (BmsRegionBatchBo.BmsRegionBo BmsRegion2Bo : regionBo.getRegionList()) { + BmsRegion2 dbRegion = BmsRegion2Service.getByCode(BmsRegion2Bo.getCode()); + if(dbRegion==null){ + BmsRegion2 region = CopierUtil.copy(BmsRegion2Bo,new BmsRegion2()); + BmsRegion2Service.save(region); + }else { + BmsRegion2 param = new BmsRegion2(); + param.setId(BmsRegion2Bo.getId()); + param.setName(BmsRegion2Bo.getName()); + BmsRegion2Service.updateById(param); + } + } + BmsRegion2Service.flushAllLevel(); + return R.ok(); + } + + /** + * 删除区域档案 + * @param id + * @return + */ + @DeleteMapping("/deleteById/{id}") + @SysLog(module = SystemModule.BASE, title = "区域档案", biz = BizType.DELETE) + @PreAuthorize("hasRole('bms:region:delete')") + public R deleteById(@PathVariable("id") String id){ + if(BmsRegion2Service.listChild(id).size()>0){ + return R.error("含有子区域无法删除"); + } + //如果有供应商则不允许删除 + if(bmsSupplierService.listByRegionId(id).size()>0){ + return R.error("地区含有供应商无法删除"); + } + //删除商品限制 + bmsRuleRegionService.removeByRegionId(Long.parseLong(id)); + boolean result = BmsRegion2Service.removeById(id); + return R.isTrue(result); + } + +} + diff --git a/src/main/java/com/qs/serve/modules/bms/controller/BmsRegionController.java b/src/main/java/com/qs/serve/modules/bms/controller/BmsRegionController.java index 243eea41..f94b8cc0 100644 --- a/src/main/java/com/qs/serve/modules/bms/controller/BmsRegionController.java +++ b/src/main/java/com/qs/serve/modules/bms/controller/BmsRegionController.java @@ -26,7 +26,7 @@ import java.util.Arrays; import java.util.List; /** - * 基础档案 区域档案 + * 基础档案 销售区域 * @author YenHex * @since 2022-10-10 */ diff --git a/src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierController.java b/src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierController.java index f6b5821e..4c35b970 100644 --- a/src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierController.java +++ b/src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierController.java @@ -8,7 +8,6 @@ import com.qs.serve.common.model.enums.BizType; import com.qs.serve.common.model.enums.SystemModule; import com.qs.serve.common.util.*; import com.qs.serve.modules.bms.entity.BmsRegion; -import com.qs.serve.modules.bms.entity.bo.BmsSupplierBatchBo; import com.qs.serve.modules.bms.entity.bo.BmsSupplierBo; import com.qs.serve.modules.bms.entity.bo.BmsSupplierParentBo; import com.qs.serve.modules.bms.entity.vo.BmsSupplierTreeVo; @@ -17,7 +16,7 @@ import com.qs.serve.modules.bms.service.BmsRegionService; import com.qs.serve.modules.sys.entity.SysUser; import com.qs.serve.modules.sys.entity.bo.SysRelateSuppliersParam; import com.qs.serve.modules.sys.entity.bo.SysRelateSuppliersParam2; -import com.qs.serve.modules.sys.entity.bo.SysRelateSuppliersParam3; +import com.qs.serve.modules.sys.entity.dto.SysUserVo; import com.qs.serve.modules.sys.service.SysUserService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -28,6 +27,8 @@ import com.qs.serve.modules.bms.entity.BmsSupplier; import com.qs.serve.modules.bms.service.BmsSupplierService; import javax.validation.Valid; +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; @@ -55,13 +56,18 @@ public class BmsSupplierController { @GetMapping("/list") @PreAuthorize("hasRole('bms:supplier:query')") public R> getList(BmsSupplier param){ - LambdaQueryWrapper supplierWrapper = new LambdaQueryWrapper<>(param); - if(CollectionUtil.isNotEmpty(param.getRegionIds())){ - supplierWrapper.in(BmsSupplier::getRegionLast,param.getRegionIds()); - } - List list = bmsSupplierService.list(supplierWrapper); + String userId = param.getUserId(); + param.setCurrUserId(userId); + List list = bmsSupplierService.selectSupplierList(param); initSupplierList(list); initParentList(list); + for (BmsSupplier supplier : list) { + supplier.setMasterFlag(0); + if(supplier.getUserId().equals(userId)){ + supplier.setMasterFlag(1); + break; + } + } return R.ok(list); } @@ -103,7 +109,9 @@ public class BmsSupplierController { String regionId = supplier.getRegionLast(); if(regionId!=null&&!regionId.equals("0")){ BmsRegion bmsRegion2 = bmsRegionService.getById(regionId); - supplier.setRegionLabel(bmsRegion2.getName()); + if(bmsRegion2!=null){ + supplier.setRegionLabel(bmsRegion2.getName()); + } } } List list2 = list.stream().map(supplier->{ @@ -126,70 +134,83 @@ public class BmsSupplierController { @PostMapping("/relateSuppliers") @PreAuthorize("hasRole('bms:supplier:update')") public R relateSuppliers(@RequestBody @Valid SysRelateSuppliersParam param){ - LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); - lqw.eq(BmsSupplier::getUserId,param.getUserId()); List supplierIds = param.getSupplierIds(); - List list = bmsSupplierService.list(lqw); - List addIds = null; - if(CollectionUtil.isNotEmpty(list)){ - List rmList = list.stream().filter(sup->!supplierIds.contains(Long.parseLong(sup.getId()))).collect(Collectors.toList()); - List rmIds = rmList.stream().map(obj->Long.parseLong(obj.getId())).collect(Collectors.toList()); - if(CollectionUtil.isNotEmpty(rmIds)){ - rmIds.forEach(rmId->bmsSupplierMapper.removeRelateUserInfo(rmId)); + String userId = param.getUserId(); + List list = bmsSupplierService.listByIds(supplierIds); + for (BmsSupplier supplier : list) { + if(userId.equals(supplier.getUserId())){ + continue; } - addIds = supplierIds.stream() - .filter( - supId-> list.stream().noneMatch(obj->obj.getId().equals(supId.toString())) - ) - .collect(Collectors.toList()); - - }else { - addIds = supplierIds; - } - if(CollectionUtil.isNotEmpty(addIds)){ - SysUser user = sysUserService.getById(param.getUserId()); - BmsSupplier bmsSupplier = new BmsSupplier(); - LambdaQueryWrapper lqw2 = new LambdaQueryWrapper<>(); - lqw2.in(BmsSupplier::getId,addIds); - bmsSupplier.setUserCode(user.getCode()); - bmsSupplier.setUserId(user.getId()); - bmsSupplier.setUserName(user.getName()); - bmsSupplierService.update(bmsSupplier,lqw2); + if(CollectionUtil.isNotEmpty(supplier.getOtherUserIds())){ + boolean exist = false; + for (String otherUserId : supplier.getOtherUserIds()) { + if(userId.equals(otherUserId)){ + exist = true; + break; + } + } + if(exist){ + continue; + } + } + List otherUserIds = new ArrayList<>(); + if(CollectionUtil.isNotEmpty(supplier.getOtherUserIds())){ + otherUserIds.addAll(Arrays.asList(supplier.getOtherUserIds())); + } + otherUserIds.add(userId); + //更新次要负责人 + BmsSupplier supplierParam = new BmsSupplier(); + supplierParam.setId(supplier.getId()); + supplierParam.setOtherUserIds(otherUserIds.toArray(new String[otherUserIds.size()])); + bmsSupplierService.updateById(supplierParam); } return R.ok(); } /** - * 更改客户授权 + * 更改客户授权(客户页面) * @return */ @PostMapping("/relateSuppliers2") @PreAuthorize("hasRole('bms:supplier:update')") public R relateSuppliers2(@RequestBody SysRelateSuppliersParam2 param){ - if(param.getUserId()==null){ - bmsSupplierMapper.removeRelateUserInfo(param.getSupplierId()); - }else { - SysUser user = sysUserService.getById(param.getUserId()); - BmsSupplier bmsSupplier = new BmsSupplier(); - bmsSupplier.setId(param.getSupplierId().toString()); - bmsSupplier.setUserCode(user.getCode()); - bmsSupplier.setUserId(user.getId()); - bmsSupplier.setUserName(user.getName()); - bmsSupplierService.updateById(bmsSupplier); - } + BmsSupplier bmsSupplier = new BmsSupplier(); + bmsSupplier.setId(param.getSupplierId().toString()); + bmsSupplier.setOtherUserIds(param.getUserIds()==null?new String[]{}:param.getUserIds()); + bmsSupplierService.updateById(bmsSupplier); return R.ok(); } + /** - * 更改客户其它用户授权 + * 删除客户分配 * @return */ - @PostMapping("/relateOtherUsers") + @PostMapping("/relateRemove") @PreAuthorize("hasRole('bms:supplier:update')") - public R relateOtherUsers(@RequestBody SysRelateSuppliersParam3 param){ - BmsSupplier bmsSupplier = new BmsSupplier(); - bmsSupplier.setId(param.getSupplierId().toString()); - bmsSupplier.setOtherUserIds(param.getUserIds()); + public R relateRemove(@RequestBody SysRelateSuppliersParam param){ + List supplierIds = param.getSupplierIds(); + String userId = param.getUserId(); + List list = bmsSupplierService.listByIds(supplierIds); + for (BmsSupplier supplier : list) { + if(userId.equals(supplier.getUserId())){ + bmsSupplierMapper.removeRelateUserInfo(Long.parseLong(supplier.getId())); + } + if(CollectionUtil.isNotEmpty(supplier.getOtherUserIds())){ + List otherUserIds = new ArrayList<>(); + for (String otherUserId : supplier.getOtherUserIds()) { + if(userId.equals(otherUserId)){ + continue; + } + otherUserIds.add(otherUserId); + } + //更新次要负责人 + BmsSupplier supplierParam = new BmsSupplier(); + supplierParam.setId(supplier.getId()); + supplierParam.setOtherUserIds(otherUserIds.toArray(new String[otherUserIds.size()])); + bmsSupplierService.updateById(supplierParam); + } + } return R.ok(); } @@ -210,7 +231,14 @@ public class BmsSupplierController { bmsSupplier.setPid(null); } BmsRegion region = bmsRegionService.getById(bmsSupplier.getRegionLast()); - bmsSupplier.setRegionLabel(region.getName()); + if(region!=null){ + bmsSupplier.setRegionLabel(region.getName()); + } + if(CollectionUtil.isNotEmpty(bmsSupplier.getOtherUserIds())){ + List userList = sysUserService.listByIds(Arrays.asList(bmsSupplier.getOtherUserIds())); + List userVos = userList.stream().map(SysUser::toSysUserVo).collect(Collectors.toList()); + bmsSupplier.setUserVos(userVos); + } return R.ok(bmsSupplier); } diff --git a/src/main/java/com/qs/serve/modules/bms/entity/BmsRegion2.java b/src/main/java/com/qs/serve/modules/bms/entity/BmsRegion2.java new file mode 100644 index 00000000..9b13f14f --- /dev/null +++ b/src/main/java/com/qs/serve/modules/bms/entity/BmsRegion2.java @@ -0,0 +1,78 @@ +package com.qs.serve.modules.bms.entity; + +import com.baomidou.mybatisplus.annotation.*; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.qs.serve.common.framework.mybatis.handler.meta.SplitStringTypeHandler; +import lombok.Data; +import org.apache.ibatis.type.JdbcType; +import org.hibernate.validator.constraints.Length; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.List; + +/** + * 区域档案 实体类 + * @author YenHex + * @since 2022-10-10 + */ +@Data +@TableName(value = "bms_region2") +public class BmsRegion2 implements Serializable { + + private static final long serialVersionUID = 1L; + + /** id */ + @TableId(type = IdType.INPUT) + private String id; + + /** 名称 */ + @Length(max = 20,message = "名称长度不能超过20字") + private String name; + + /** 编码 */ + @Length(max = 20,message = "编码长度不能超过20字") + private String code; + + /** 父级ID */ + @Length(max = 32,message = "父级ID长度不能超过32字") + private String pid; + + /** 层级 */ + private Integer level; + + /** 创建时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + /** 创建人 */ + @TableField(fill = FieldFill.INSERT) + private String createBy; + + /** 更新时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @TableField(fill = FieldFill.UPDATE) + private LocalDateTime updateTime; + + /** 更新人 */ + @TableField(fill = FieldFill.UPDATE) + private String updateBy; + + /** 租户id */ + @JsonIgnore + @JsonProperty + private String tenantId; + + /** 删除标识 */ + @JsonIgnore + @JsonProperty + private Boolean delFlag; + +} + diff --git a/src/main/java/com/qs/serve/modules/bms/entity/BmsSupplier.java b/src/main/java/com/qs/serve/modules/bms/entity/BmsSupplier.java index c995604e..aed16ba1 100644 --- a/src/main/java/com/qs/serve/modules/bms/entity/BmsSupplier.java +++ b/src/main/java/com/qs/serve/modules/bms/entity/BmsSupplier.java @@ -2,12 +2,14 @@ package com.qs.serve.modules.bms.entity; import java.time.LocalDateTime; import java.io.Serializable; +import java.util.List; import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import com.qs.serve.common.framework.mybatis.handler.meta.SplitStringTypeHandler; +import com.qs.serve.modules.sys.entity.dto.SysUserVo; import lombok.Data; import org.apache.ibatis.type.JdbcType; import org.hibernate.validator.constraints.Length; @@ -123,5 +125,14 @@ public class BmsSupplier implements Serializable { /** 父级ID信息 */ @TableField(exist = false) private Object parentRegionInfo; + + /** 主要负责人标识 */ + @TableField(exist = false) + private Integer masterFlag; + + /** 其它负责人列表 */ + @TableField(exist = false) + List userVos; + } diff --git a/src/main/java/com/qs/serve/modules/bms/entity/bo/BmsSupplierBo.java b/src/main/java/com/qs/serve/modules/bms/entity/bo/BmsSupplierBo.java index 21978978..2dd3d489 100644 --- a/src/main/java/com/qs/serve/modules/bms/entity/bo/BmsSupplierBo.java +++ b/src/main/java/com/qs/serve/modules/bms/entity/bo/BmsSupplierBo.java @@ -18,7 +18,7 @@ public class BmsSupplierBo { private String id; /** 区域ID */ - private Long regionId; + private String regionId; /** 详细地址 */ private String address; diff --git a/src/main/java/com/qs/serve/modules/bms/mapper/BmsRegion2Mapper.java b/src/main/java/com/qs/serve/modules/bms/mapper/BmsRegion2Mapper.java new file mode 100644 index 00000000..36019a41 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/bms/mapper/BmsRegion2Mapper.java @@ -0,0 +1,14 @@ +package com.qs.serve.modules.bms.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.qs.serve.modules.bms.entity.BmsRegion2; + +/** + * 区域档案 Mapper + * @author YenHex + * @date 2022-10-10 + */ +public interface BmsRegion2Mapper extends BaseMapper { + +} + diff --git a/src/main/java/com/qs/serve/modules/bms/service/BmsRegion2Service.java b/src/main/java/com/qs/serve/modules/bms/service/BmsRegion2Service.java new file mode 100644 index 00000000..b4092eb6 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/bms/service/BmsRegion2Service.java @@ -0,0 +1,30 @@ +package com.qs.serve.modules.bms.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.qs.serve.modules.bms.entity.BmsRegion; +import com.qs.serve.modules.bms.entity.BmsRegion2; +import com.qs.serve.modules.bms.entity.vo.BmsRegionTreeVo; + +import java.util.List; + +/** + * 区域档案 服务接口 + * @author YenHex + * @date 2022-10-10 + */ +public interface BmsRegion2Service extends IService { + + List getTree(BmsRegion2 param); + + List listChild(String pid); + + BmsRegion2 getByCode(String code); + + void flushLevel(BmsRegion2 param); + + void flushAllLevel(); + + void updateLevel(String id,Integer level); + +} + diff --git a/src/main/java/com/qs/serve/modules/bms/service/impl/BmsRegion2ServiceImpl.java b/src/main/java/com/qs/serve/modules/bms/service/impl/BmsRegion2ServiceImpl.java new file mode 100644 index 00000000..e6635cc9 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/bms/service/impl/BmsRegion2ServiceImpl.java @@ -0,0 +1,107 @@ +package com.qs.serve.modules.bms.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.qs.serve.common.model.dto.TreeNode; +import com.qs.serve.common.util.*; +import com.qs.serve.modules.bms.entity.BmsRegion2; +import com.qs.serve.modules.bms.entity.vo.BmsRegionTreeVo; +import com.qs.serve.modules.bms.mapper.BmsRegion2Mapper; +import com.qs.serve.modules.bms.service.BmsRegion2Service; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.stream.Collectors; + +/** + * 区域档案 服务实现类 + * @author YenHex + * @since 2022-10-10 + */ +@Slf4j +@Service +@AllArgsConstructor +public class BmsRegion2ServiceImpl extends ServiceImpl implements BmsRegion2Service { + + @Override + public List getTree(BmsRegion2 param) { + LambdaQueryWrapper regionWrapper = new LambdaQueryWrapper<>(param); + List list = this.list(regionWrapper); + List treeVoList = list.stream().map(region->{ + BmsRegionTreeVo treeNode = CopierUtil.copy(region,new BmsRegionTreeVo()); + treeNode.setId(region.getId()); + treeNode.setParentId(region.getPid()); + treeNode.setSort(0); + return treeNode; + }).collect(Collectors.toList()); + return TreeUtil.buildByRecursive(treeVoList,TreeUtil.DEFAULT_PID_STRING); + } + + @Override + public List listChild(String pid) { + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(BmsRegion2::getPid,pid); + return this.list(lqw); + } + + @Override + public BmsRegion2 getByCode(String code) { + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(BmsRegion2::getCode,code); + return this.getOne(lqw,false); + } + + @Override + public void flushLevel(BmsRegion2 param) { + if(StringUtils.hasText(param.getPid())){ + BmsRegion2 parent = this.getById(param.getPid()); + if(parent!=null){ + if(parent.getLevel()>2){ + Assert.throwEx("最高支持3层级"); + } + param.setLevel(parent.getLevel()+1); + }else { + param.setPid(null); + param.setLevel(1); + } + } + } + + @Override + public void flushAllLevel() { + List treeVoList = this.getTree(new BmsRegion2()); + for (BmsRegionTreeVo firstTree : treeVoList) { + if(firstTree.getLevel()==null||firstTree.getLevel()!=1){ + this.updateLevel(firstTree.getId(),1); + } + if(CollectionUtil.isNotEmpty(firstTree.getChildren())){ + for (TreeNode secondTreeNode : firstTree.getChildren()) { + BmsRegionTreeVo secondTree = (BmsRegionTreeVo)secondTreeNode; + if(secondTree.getLevel()==null||secondTree.getLevel()!=2){ + this.updateLevel(secondTree.getId(),2); + } + if(CollectionUtil.isNotEmpty(secondTree.getChildren())){ + for (TreeNode thirdTreeNode : secondTree.getChildren()) { + BmsRegionTreeVo thirdTree = (BmsRegionTreeVo)thirdTreeNode; + if(thirdTree.getLevel()==null||thirdTree.getLevel()!=3){ + this.updateLevel(thirdTree.getId(),3); + } + } + } + } + } + } + } + + + @Override + public void updateLevel(String id, Integer level) { + BmsRegion2 param = new BmsRegion2(); + param.setId(id); + param.setLevel(level); + this.updateById(param); + } +} + diff --git a/src/main/java/com/qs/serve/modules/bms/service/impl/BmsSupplierServiceImpl.java b/src/main/java/com/qs/serve/modules/bms/service/impl/BmsSupplierServiceImpl.java index 329a9b91..993f56ff 100644 --- a/src/main/java/com/qs/serve/modules/bms/service/impl/BmsSupplierServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/bms/service/impl/BmsSupplierServiceImpl.java @@ -64,7 +64,7 @@ public class BmsSupplierServiceImpl extends ServiceImpl and (`bms_supplier`.`user_id` = #{query.currUserId} or FIND_IN_SET(#{query.currUserId},`bms_supplier`.`other_user_ids`) ) + + and bms_supplier.regionLast in + + #{selectId} + +