Parcourir la source

1、4.2bug修复;

zk il y a 1 an
Parent
commit
dccf50c574

+ 44 - 5
sckw-modules/sckw-manage/src/main/java/com/sckw/manage/service/KwmLineFreightRateService.java

@@ -4,12 +4,16 @@ import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.github.pagehelper.PageInfo;
 import com.sckw.core.exception.BusinessException;
 import com.sckw.core.model.constant.Global;
+import com.sckw.core.model.enums.SystemTypeEnum;
+import com.sckw.core.model.page.PageHelperUtil;
 import com.sckw.core.model.page.PageResult;
 import com.sckw.core.utils.CollectionUtils;
 import com.sckw.core.utils.StringUtils;
 import com.sckw.core.web.context.LoginUserHolder;
+import com.sckw.core.web.response.HttpResult;
 import com.sckw.excel.utils.DateUtil;
 import com.sckw.manage.dao.KwmLineFreightRateMapper;
 import com.sckw.manage.model.entity.KwmAddress;
@@ -20,6 +24,7 @@ import com.sckw.manage.model.vo.res.LineFreightRateExport;
 import com.sckw.manage.model.vo.res.LineFreightRateFindListResVO;
 import com.sckw.manage.model.vo.res.LineFreightRateListResVO;
 import com.sckw.system.api.RemoteSystemService;
+import com.sckw.system.api.RemoteUserService;
 import com.sckw.system.api.model.dto.res.UserCacheResDto;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
@@ -44,6 +49,9 @@ public class KwmLineFreightRateService {
     private final KwmLineFreightRateMapper lineFreightRateMapper;
     private final KwmAddressService addressService;
 
+    @DubboReference(version = "1.0.0", group = "design", check = false, timeout = 6000)
+    RemoteUserService remoteUserService;
+
     /**
      * @param addLineFreightRateParam
      * @return void
@@ -152,7 +160,20 @@ public class KwmLineFreightRateService {
      * @date 2024/3/1 16:27
      */
     public PageResult select(SelectLineFreightRateParam params) {
-        LambdaQueryWrapper<KwmLineFreightRate> wrapper = buildWrapper(BeanUtil.copyProperties(params, ExportLineFreightRateParam.class));
+        //新增客户经理权限过滤
+        List<Long> authEntIdList = new ArrayList<>();
+        if (SystemTypeEnum.MANAGE.getCode().equals(LoginUserHolder.getSystemType())) {
+            if (CollectionUtils.isEmpty(authEntIdList)) {
+                List<Long> ids = remoteUserService.findEnterpriseIdsByUserIdIsMain(LoginUserHolder.getUserId());
+                if (CollectionUtils.isEmpty(ids)){
+                    return PageResult.build(params.getPage(), params.getPageSize(), 0L, Collections.emptyList());
+                }
+                authEntIdList.addAll(ids);
+            }
+        } else {
+            authEntIdList.add(LoginUserHolder.getEntId());
+        }
+        LambdaQueryWrapper<KwmLineFreightRate> wrapper = buildWrapper(BeanUtil.copyProperties(params, ExportLineFreightRateParam.class), authEntIdList);
         Page<KwmLineFreightRate> page = new Page<>(params.getPage(), params.getPageSize());
         Page<KwmLineFreightRate> ipage = lineFreightRateMapper.selectPage(page, wrapper);
         List<KwmLineFreightRate> list = ipage.getRecords();
@@ -179,7 +200,20 @@ public class KwmLineFreightRateService {
      * @date 2024/3/1 16:40
      */
     public List<LineFreightRateExport> export(ExportLineFreightRateParam params) {
-        LambdaQueryWrapper<KwmLineFreightRate> wrapper = buildWrapper(params);
+        //新增客户经理权限过滤
+        List<Long> authEntIdList = new ArrayList<>();
+        if (SystemTypeEnum.MANAGE.getCode().equals(LoginUserHolder.getSystemType())) {
+            if (CollectionUtils.isEmpty(authEntIdList)) {
+                List<Long> ids = remoteUserService.findEnterpriseIdsByUserIdIsMain(LoginUserHolder.getUserId());
+                if (CollectionUtils.isEmpty(ids)){
+                    return new ArrayList<>();
+                }
+                authEntIdList.addAll(ids);
+            }
+        } else {
+            authEntIdList.add(LoginUserHolder.getEntId());
+        }
+        LambdaQueryWrapper<KwmLineFreightRate> wrapper = buildWrapper(params, authEntIdList);
         List<KwmLineFreightRate> list = lineFreightRateMapper.selectList(wrapper);
         if (CollectionUtils.isEmpty(list)) {
             return Collections.emptyList();
@@ -208,7 +242,9 @@ public class KwmLineFreightRateService {
      * @author yzc
      * @date 2024/3/1 16:40
      */
-    private LambdaQueryWrapper<KwmLineFreightRate> buildWrapper(ExportLineFreightRateParam params) {
+    private LambdaQueryWrapper<KwmLineFreightRate>
+
+    buildWrapper(ExportLineFreightRateParam params, List<Long> authEntIdList) {
         LambdaQueryWrapper<KwmLineFreightRate> wrapper = new LambdaQueryWrapper<>();
         if (Objects.nonNull(params.getStartCreateTime())) {
             wrapper.ge(KwmLineFreightRate::getCreateTime, params.getStartCreateTime());
@@ -222,14 +258,17 @@ public class KwmLineFreightRateService {
         if (Objects.nonNull(params.getEndMileage())) {
             wrapper.le(KwmLineFreightRate::getTransportMileage, params.getEndMileage());
         }
+        if (CollectionUtils.isNotEmpty(authEntIdList)) {
+            wrapper.in(KwmLineFreightRate::getEntId, authEntIdList);
+        }
+
         String keywords = params.getKeywords();
         if (StringUtils.isNotBlank(keywords)) {
             wrapper.and(e -> e.like(KwmLineFreightRate::getName, keywords)
                     .or().like(KwmLineFreightRate::getLoadName, keywords)
                     .or().like(KwmLineFreightRate::getUnloadName, keywords));
         }
-        wrapper.eq(KwmLineFreightRate::getEntId, LoginUserHolder.getEntId())
-                .eq(KwmLineFreightRate::getDelFlag, Global.NO)
+        wrapper.eq(KwmLineFreightRate::getDelFlag, Global.NO)
                 .orderByDesc(KwmLineFreightRate::getCreateTime);
         return wrapper;
     }

+ 15 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/KwtWaybillOrderController.java

@@ -60,6 +60,10 @@ public class KwtWaybillOrderController {
      **/
     @PostMapping("/statistics")
     public HttpResult statistics(@RequestBody WaybillOrderQueryDto params) throws SystemException {
+        // 运单创建人或有关授权用户
+        List<Long> userIds = LoginUserHolder.getAuthUserIdList();
+        params.setUserIds(userIds);
+        params.setEntId(LoginUserHolder.getEntId());
         return HttpResult.ok(waybillOrderV1Service.statistics(params));
     }
 
@@ -71,6 +75,10 @@ public class KwtWaybillOrderController {
      **/
     @PostMapping("/select")
     public HttpResult findListPage(@RequestBody WaybillOrderQueryDto params) throws SystemException {
+        // 运单创建人或有关授权用户
+        List<Long> userIds = LoginUserHolder.getAuthUserIdList();
+        params.setUserIds(userIds);
+        params.setEntId(LoginUserHolder.getEntId());
         // 设置分页参数
         PageHelper.startPage(params.getPage(), params.getPageSize());
         List<WaybillOrderSelectVo> list = waybillOrderV1Service.findListPage(params);
@@ -86,6 +94,9 @@ public class KwtWaybillOrderController {
      **/
     @PostMapping(value = "/export", produces = MediaType.APPLICATION_JSON_VALUE)
     public void export(@RequestBody WaybillOrderQueryDto params, HttpServletResponse response) {
+        // 运单创建人或有关授权用户
+        List<Long> userIds = LoginUserHolder.getAuthUserIdList();
+        params.setUserIds(userIds);
         params.setEntId(LoginUserHolder.getEntId());
         /*查询数据*/
         List<WaybillOrderSelectVo> list = waybillOrderV1Service.findListPage(params);
@@ -113,6 +124,10 @@ public class KwtWaybillOrderController {
      **/
     @PostMapping("/ndex")
     public HttpResult findNdexPage(@RequestBody WaybillOrderQueryDto params) throws SystemException {
+        // 运单创建人或有关授权用户
+        List<Long> userIds = LoginUserHolder.getAuthUserIdList();
+        params.setUserIds(userIds);
+        params.setEntId(LoginUserHolder.getEntId());
         return HttpResult.ok(waybillOrderV1Service.findNdexPage(params));
     }
 

+ 19 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/controller/operate/ManagementWaybillOrderController.java

@@ -5,12 +5,15 @@ import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.sckw.core.exception.CustomPromptException;
 import com.sckw.core.model.constant.Global;
+import com.sckw.core.model.enums.SystemTypeEnum;
 import com.sckw.core.model.page.PageHelperUtil;
 import com.sckw.core.model.page.PageResult;
 import com.sckw.core.web.constant.HttpStatus;
+import com.sckw.core.web.context.LoginUserHolder;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.excel.config.easyexcel.RequestHolder;
 import com.sckw.excel.utils.ExcelUtil;
+import com.sckw.system.api.RemoteUserService;
 import com.sckw.transport.model.dto.WaybillOrderQueryDto;
 import com.sckw.transport.model.param.ManagementWaybillOrderQuery;
 import com.sckw.transport.model.vo.WaybillOrderExportVo;
@@ -22,6 +25,7 @@ import jakarta.servlet.http.HttpServletResponse;
 import jakarta.validation.Valid;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.dubbo.config.annotation.DubboReference;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.CollectionUtils;
 import org.springframework.validation.annotation.Validated;
@@ -41,7 +45,8 @@ import java.util.List;
 @RequiredArgsConstructor
 @RequestMapping(value = "/kwtManagementWaybillOrder")
 public class ManagementWaybillOrderController {
-
+    @DubboReference(version = "1.0.0", group = "design", check = false, timeout = 6000)
+    RemoteUserService remoteUserService;
     @Autowired
     KwtManagementWaybillOrderService managementWaybillOrderService;
     @Autowired
@@ -74,8 +79,21 @@ public class ManagementWaybillOrderController {
     public HttpResult selectWaybillOrder(@Valid @RequestBody WaybillOrderQueryDto query) {
         try {
             //return managementWaybillOrderService.selectWaybillOrder(query);
+            //新增客户经理权限过滤
+            List<Long> authEntIdList = new ArrayList<>();
+            if (SystemTypeEnum.MANAGE.getCode().equals(LoginUserHolder.getSystemType())) {
+                if (CollectionUtils.isEmpty(authEntIdList)) {
+                    List<Long> ids = remoteUserService.findEnterpriseIdsByUserIdIsMain(LoginUserHolder.getUserId());
+                    if (com.sckw.core.utils.CollectionUtils.isEmpty(ids)){
+                        return HttpResult.ok(PageHelperUtil.getPageResult(new PageInfo<>(new ArrayList<>())));
+                    }
+                    authEntIdList.addAll(ids);
+                }
+            }
+
             // 设置分页参数
             PageHelper.startPage(query.getPage(), query.getPageSize());
+            query.setEntIds(authEntIdList);
             List<WaybillOrderSelectVo> list = waybillOrderV1Service.findListPage(query);
             PageResult result = PageHelperUtil.getPageResult(new PageInfo<>(list));
             return HttpResult.ok(result);

+ 1 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/dto/WaybillOrderQueryDto.java

@@ -94,7 +94,7 @@ public class WaybillOrderQueryDto extends PageRequest{
      * 运单状态
      */
     @JsonProperty("status")
-    @NotNull(message = "订单状态不能为空")
+    //@NotNull(message = "订单状态不能为空")
     private Integer status;
 
     /**

+ 1 - 13
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtWaybillOrderV1Service.java

@@ -121,10 +121,6 @@ public class KwtWaybillOrderV1Service {
      * @date 2024/3/8
      **/
     public List<TableTop> statistics(WaybillOrderQueryDto params){
-        // 运单创建人或有关授权用户
-        List<Long> userIds = LoginUserHolder.getAuthUserIdList();
-        params.setUserIds(userIds);
-        params.setEntId(LoginUserHolder.getEntId());
         //统计信息
         List<TableTop> tableTops = waybillOrderV1Dao.statistics(params);
 
@@ -159,11 +155,7 @@ public class KwtWaybillOrderV1Service {
      * @date 2024/3/8
      **/
     public List<WaybillOrderSelectVo> findListPage(WaybillOrderQueryDto params){
-        // 运单创建人或有关授权用户
-        List<Long> userIds = LoginUserHolder.getAuthUserIdList();
-        params.setUserIds(userIds);
         params.setQueryWstatus(CarWaybillTableTopEnum.getValue(params.getStatus()));
-        params.setEntId(LoginUserHolder.getEntId());
         List<WaybillOrderSelectVo> list = waybillOrderV1Dao.findListPage(params);
         if (CollectionUtils.isEmpty(list)) {
             return list;
@@ -188,17 +180,13 @@ public class KwtWaybillOrderV1Service {
      * @date 2024/3/8
      **/
     public PageResult findNdexPage(WaybillOrderQueryDto params){
-        // 运单创建人或有关授权用户
-        List<Long> userIds = LoginUserHolder.getAuthUserIdList();
-        params.setUserIds(userIds);
-        params.setEntId(LoginUserHolder.getEntId());
         params.setQueryWstatus(CarWaybillTableTopEnum.getValue(params.getStatus()));
         // 设置分页参数
         PageHelper.startPage(params.getPage(), params.getPageSize());
         List<WaybillOrderSelectVo> list = waybillOrderV1Dao.findListPage(params);
 
         //用户ID
-        userIds = list.stream().map(WaybillOrderSelectVo::getCreateBy).toList();
+        List<Long> userIds = list.stream().map(WaybillOrderSelectVo::getCreateBy).toList();
         List<UserCacheResDto> users = remoteSystemService.queryUserCacheByIds(userIds);
         Map<Long, UserCacheResDto> usersMap = new HashMap<>(Global.NUMERICAL_SIXTEEN);
         users.forEach(e -> usersMap.put(e.getId(), e));

+ 6 - 0
sckw-modules/sckw-transport/src/main/resources/mapper/KwtWaybillOrderV1Mapper.xml

@@ -82,6 +82,12 @@
                 #{item}
             </foreach>
         </if>
+        <if test="entIds != null and entIds.size() > 0">
+            and wo.ent_id IN
+            <foreach collection="entIds" open="(" close=")" item="item" separator=",">
+                #{item}
+            </foreach>
+        </if>
         <if test="queryWstatus != null and queryWstatus != ''">
             AND wo.status in
             <foreach collection="queryWstatus.split(',')" item="item" open="(" close=")" separator=",">