소스 검색

655项目需求变更

donglang 4 일 전
부모
커밋
6d4994b51a

+ 4 - 0
sckw-modules-api/sckw-system-api/src/main/java/com/sckw/system/api/RemoteSystemService.java

@@ -320,4 +320,8 @@ public interface RemoteSystemService {
     Integer getActualDisPatch(ActualDisPatchDto dto);
 
     KwsUserResDto queryByAccount(String account);
+
+    List<KwsUserResDto> queryByEntId(Long entId);
+
+    KwsUserResDto queryByUserId(Long userId);
 }

+ 5 - 0
sckw-modules-api/sckw-system-api/src/main/java/com/sckw/system/api/model/dto/res/KwsUserResDto.java

@@ -136,4 +136,9 @@ public class KwsUserResDto implements Serializable {
     private Long roleId;
     private List<RoleInfoDto> roleInfoDto;
     private Long driverId;
+
+    /**
+     * 区分门卫;1-山下(邓总)、2-山上
+     */
+    private Integer type;
 }

+ 55 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/dubbo/RemoteSystemServiceImpl.java

@@ -22,7 +22,9 @@ import com.sckw.system.model.*;
 import com.sckw.system.model.vo.res.FindAreaTreeResVo;
 import com.sckw.system.model.vo.res.KwsUserResVo;
 import com.sckw.system.repository.KwsEntTypeRepository;
+import com.sckw.system.repository.KwsRoleRepository;
 import com.sckw.system.repository.KwsUserRepository;
+import com.sckw.system.repository.KwsUserRoleRepository;
 import com.sckw.system.service.KwsUserService;
 import com.sckw.system.service.SysAreaService;
 import jakarta.annotation.Resource;
@@ -61,6 +63,8 @@ public class RemoteSystemServiceImpl implements RemoteSystemService {
     private final KwsRoleDao kwsRoleDao;
     private final KwsEntTypeRepository kwsEntTypeRepository;
     private final KwsUserRepository kwsUserRepository;
+    private final KwsRoleRepository roleRepository;
+    private final KwsUserRoleRepository userRoleRepository;
 
     /**
      * @param keys type#value,type#value
@@ -1131,4 +1135,55 @@ public class RemoteSystemServiceImpl implements RemoteSystemService {
 
     }
 
+    /**
+     * 通过企业id查询user
+     * @param entId
+     * @return
+     */
+    public List<KwsUserResDto> queryByEntId(Long entId) {
+        // 查询角色
+        List<KwsRole> roles = roleRepository.queryByEntId(entId);
+        if (CollectionUtils.isEmpty(roles)) {
+            return Collections.emptyList();
+        }
+        Set<Long> roleIds = roles.stream()
+                .filter(role -> Objects.equals(role.getName(), "门卫"))
+                .map(KwsRole::getId)
+                .collect(Collectors.toSet());
+
+        // 查询用户和角色映射
+        List<KwsUserRole> userRoles = userRoleRepository.queryByRoleIds(roleIds);
+        if (CollectionUtils.isEmpty(userRoles)) {
+            return Collections.emptyList();
+        }
+        Set<Long> userIds = userRoles.stream()
+                .map(KwsUserRole::getUserId)
+                .collect(Collectors.toSet());
+
+        // 查询用户
+        List<KwsUser> kwsUserList = kwsUserRepository.queryByUserIds(userIds);
+        if (CollectionUtils.isEmpty(kwsUserList)) {
+            return Collections.emptyList();
+        }
+
+        return kwsUserList.stream()
+                .map(kwsUser -> BeanUtil.copyProperties(kwsUser, KwsUserResDto.class))
+                .collect(Collectors.toList());
+    }
+
+    /**
+     * 通过企业id查询user
+     * @param userId
+     * @return
+     */
+    public KwsUserResDto queryByUserId(Long userId) {
+        KwsUser kwsUser = kwsUserRepository.queryByUserId(userId);
+        if (kwsUser != null) {
+            KwsUserResDto kwsUserResDto = new KwsUserResDto();
+            BeanUtil.copyProperties(kwsUser, kwsUserResDto);
+            return kwsUserResDto;
+        }
+        return new KwsUserResDto();
+    }
+
 }

+ 5 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/model/KwsUser.java

@@ -67,4 +67,9 @@ public class KwsUser extends BaseModel {
      */
     private String driverId;
 
+    /**
+     * 区分门卫;1-山下(邓总)、2-山上
+     */
+    private Integer type;
+
 }

+ 6 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/repository/KwsRoleRepository.java

@@ -27,4 +27,10 @@ public class KwsRoleRepository extends ServiceImpl<KwsRoleDao, KwsRole> {
                 .eq(KwsRole::getEntId,entId)
                 .eq(BaseModel::getDelFlag,0));
     }
+
+    public List<KwsRole> queryByEntId(Long entId) {
+        return list(Wrappers.<KwsRole>lambdaQuery()
+                .eq(KwsRole::getEntId,entId)
+                .eq(BaseModel::getDelFlag,0));
+    }
 }

+ 8 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/repository/KwsUserRepository.java

@@ -32,4 +32,12 @@ public class KwsUserRepository extends ServiceImpl<KwsUserDao, KwsUser> {
                 .eq(KwsUser::getAccount,account)
                 .last("limit 1"));
     }
+
+    public KwsUser queryByUserId(Long userId) {
+        return getOne(Wrappers.<KwsUser>lambdaQuery()
+                .eq(BaseModel::getDelFlag,0)
+                .eq(BaseModel::getStatus,0)
+                .eq(KwsUser::getId,userId)
+                .last("limit 1"));
+    }
 }

+ 27 - 4
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/app/GatekeeperOrderService.java

@@ -18,6 +18,7 @@ import com.sckw.core.model.enums.GatekeeperTypeEnum;
 import com.sckw.core.utils.CollectionUtils;
 import com.sckw.core.utils.DateUtils;
 import com.sckw.core.utils.StringUtils;
+import com.sckw.core.web.context.LoginUserHolder;
 import com.sckw.core.web.response.result.PageDataResult;
 import com.sckw.fleet.api.RemoteFleetService;
 import com.sckw.fleet.api.model.vo.RTruckVo;
@@ -26,6 +27,7 @@ import com.sckw.order.api.model.OrderUnitInfoDetailVO;
 import com.sckw.product.api.dubbo.GoodsInfoService;
 import com.sckw.product.api.model.KwpGoods;
 import com.sckw.system.api.RemoteSystemService;
+import com.sckw.system.api.model.dto.res.KwsUserResDto;
 import com.sckw.transport.model.*;
 import com.sckw.transport.model.enuma.WeighbridgeTypeEnum;
 import com.sckw.transport.model.param.forklift.reponse.GatekeeperOrderResp;
@@ -105,8 +107,15 @@ public class GatekeeperOrderService {
         if (param.getStatus() == null) {
             throw new BusinessPlatfromException(ErrorCodeEnum.PARAM_ERROR, "状态不能为空!");
         }
+
+        Long userId = LoginUserHolder.getUserId();
+        KwsUserResDto kwsUserResDto = remoteSystemService.queryByUserId(userId);
+        if (kwsUserResDto == null) {
+            throw new BusinessPlatfromException(ErrorCodeEnum.PARAM_ERROR, "用户数据不能为空!");
+        }
+
         //构建查询条件
-        LambdaQueryWrapper<KwtGatekeeperWaybillOrder> wrapper = buildAndExecuteQuery(param);
+        LambdaQueryWrapper<KwtGatekeeperWaybillOrder> wrapper = buildAndExecuteQuery(param, kwsUserResDto);
 
         //查询门卫订单
         Page<KwtGatekeeperWaybillOrder> pageByStatus = gatekeeperWaybillOrderRepository.page(new Page<>(param.getPageNum(), param.getPageSize()), wrapper);
@@ -127,9 +136,9 @@ public class GatekeeperOrderService {
     /**
      * 构建查询条件并执行分页查询
      */
-    private LambdaQueryWrapper<KwtGatekeeperWaybillOrder> buildAndExecuteQuery(GatekeeperOrderQueryParam param) {
+    private LambdaQueryWrapper<KwtGatekeeperWaybillOrder> buildAndExecuteQuery(GatekeeperOrderQueryParam param, KwsUserResDto kwsUserResDto) {
         //基础查询条件
-        LambdaQueryWrapper<KwtGatekeeperWaybillOrder> queryWrapper = buildBaseQueryWrapper(param);
+        LambdaQueryWrapper<KwtGatekeeperWaybillOrder> queryWrapper = buildBaseQueryWrapper(param, kwsUserResDto);
 
         //模糊查询条件
         handleSearchKeyword(param, queryWrapper);
@@ -142,11 +151,25 @@ public class GatekeeperOrderService {
      * @param param
      * @return
      */
-    private  LambdaQueryWrapper<KwtGatekeeperWaybillOrder> buildBaseQueryWrapper(GatekeeperOrderQueryParam param) {
+    private  LambdaQueryWrapper<KwtGatekeeperWaybillOrder> buildBaseQueryWrapper(GatekeeperOrderQueryParam param, KwsUserResDto kwsUserResDto) {
         LambdaQueryWrapper<KwtGatekeeperWaybillOrder> wrapper = Wrappers.<KwtGatekeeperWaybillOrder>lambdaQuery()
                 .eq(KwtGatekeeperWaybillOrder::getEntId, param.getEntId())
                 .orderByDesc(KwtGatekeeperWaybillOrder::getCreateTime)
                 .orderByDesc(KwtGatekeeperWaybillOrder::getId);
+        //山下(邓总)
+        if (Objects.equals(kwsUserResDto.getType(), 1)) {
+            wrapper.and(w -> w
+                    .eq(KwtGatekeeperWaybillOrder::getWeighbridgeId, "10100111")
+                    .or()
+                    .isNull(KwtGatekeeperWaybillOrder::getWeighbridgeId));
+        }else {
+            //山上
+            wrapper.and(w -> w
+                    .in(KwtGatekeeperWaybillOrder::getWeighbridgeId, List.of("10100112", "10100113"))
+                    .or()
+                    .isNull(KwtGatekeeperWaybillOrder::getWeighbridgeId));
+        }
+
         //待进场
         if (param.getStatus() == 1) {
             wrapper.eq(KwtGatekeeperWaybillOrder::getStatus, GatekeeperStatusEnum.PENDING_ENTRY.getCode());