Procházet zdrojové kódy

fix:工时管理 乙方PMO数据权限

caozixuan před 1 rokem
rodič
revize
e0970b3030

+ 1 - 1
sop-business/src/main/java/com/qmth/sop/business/service/TBDingService.java

@@ -61,7 +61,7 @@ public interface TBDingService extends IService<TBDing> {
      */
     IPage<TBDingSubmitQueryResult> query(IPage<Map> iPage, Long serviceId, String status, Long createId, String userName, Long supplierId, String custom, String sopNo, Long days);
 
-    List<TBDingSubmitQueryResult> query(SysUser account, Long serviceId, String status, Long createId, String userName, Long supplierId, String custom, String sopNo, Long days);
+    List<TBDingSubmitQueryResult> query(SysUser requestUser, Long serviceId, String status, Long createId, String userName, Long supplierId, String custom, String sopNo, Long days);
 
     TBDingCountResult count(Long serviceId, Long createId, String userName, Long supplierId, String custom, String sopNo);
 

+ 16 - 0
sop-business/src/main/java/com/qmth/sop/business/service/impl/TBDingApplyServiceImpl.java

@@ -139,6 +139,14 @@ public class TBDingApplyServiceImpl extends ServiceImpl<TBDingApplyMapper, TBDin
     public IPage<DingApplyUnDoneResult> flowTaskUnDoneList(IPage<Map> iPage, Long serviceId, String name, Long supplierId, String customName, Long startTime, Long endTime, Long applyStartTime, Long applyEndTime) throws Exception {
         SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
         DataPermissionDto dpr = sysUserService.buildUserDataPermission(requestUser.getId());
+        if (dpr.getHasThirdPmo()) {
+            // 乙方PMO
+            Long userSupplierId = requestUser.getSupplierId();
+            if (userSupplierId == null || userSupplierId == 0) {
+                throw ExceptionResultEnum.ERROR.exception(String.format("请先在用户管理中绑定[%s]对应的供应商",RoleTypeEnum.THIRD_PMO.getDesc()));
+            }
+            supplierId = userSupplierId;
+        }
         IPage<DingApplyUnDoneResult> dingApplyUnDoneResultIPage = this.baseMapper.flowTaskUnDoneList(iPage, serviceId, name, supplierId, customName, startTime, endTime, applyStartTime, applyEndTime, dpr);
         if (Objects.nonNull(dingApplyUnDoneResultIPage) && !CollectionUtils.isEmpty(dingApplyUnDoneResultIPage.getRecords())) {
             for (DingApplyUnDoneResult d : dingApplyUnDoneResultIPage.getRecords()) {
@@ -205,6 +213,14 @@ public class TBDingApplyServiceImpl extends ServiceImpl<TBDingApplyMapper, TBDin
     public IPage<DingApplyDoneResult> flowTaskDoneList(IPage<Map> iPage, Long serviceId, String name, Long supplierId, DingExceptionApproveEnum dingExceptionApprove, String customName, Long startTime, Long endTime, Long applyStartTime, Long applyEndTime) throws Exception {
         SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
         DataPermissionDto dpr = sysUserService.buildUserDataPermission(requestUser.getId());
+        if (dpr.getHasThirdPmo()) {
+            // 乙方PMO
+            Long userSupplierId = requestUser.getSupplierId();
+            if (userSupplierId == null || userSupplierId == 0) {
+                throw ExceptionResultEnum.ERROR.exception(String.format("请先在用户管理中绑定[%s]对应的供应商",RoleTypeEnum.THIRD_PMO.getDesc()));
+            }
+            supplierId = userSupplierId;
+        }
         IPage<DingApplyDoneResult> dingApplyDoneResultIPage = this.baseMapper.flowTaskDoneList(iPage, serviceId, name, supplierId, Objects.nonNull(dingExceptionApprove) ? dingExceptionApprove.name() : null, customName, startTime, endTime, applyStartTime, applyEndTime, dpr);
         if (Objects.nonNull(dingApplyDoneResultIPage) && !CollectionUtils.isEmpty(dingApplyDoneResultIPage.getRecords())) {
             for (DingApplyDoneResult d : dingApplyDoneResultIPage.getRecords()) {

+ 42 - 2
sop-business/src/main/java/com/qmth/sop/business/service/impl/TBDingServiceImpl.java

@@ -433,14 +433,30 @@ public class TBDingServiceImpl extends ServiceImpl<TBDingMapper, TBDing> impleme
         SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
         Long userId = requestUser.getId();
         DataPermissionDto dpr = sysUserService.buildUserDataPermission(userId);
+        if (dpr.getHasThirdPmo()) {
+            // 乙方PMO
+            Long userSupplierId = requestUser.getSupplierId();
+            if (userSupplierId == null || userSupplierId == 0) {
+                throw ExceptionResultEnum.ERROR.exception(String.format("请先在用户管理中绑定[%s]对应的供应商", RoleTypeEnum.THIRD_PMO.getDesc()));
+            }
+            supplierId = userSupplierId;
+        }
 
         return this.baseMapper.query(iPage, serviceId, status, createId, userName, supplierId, custom, sopNo, days, dpr);
     }
 
     @Override
-    public List<TBDingSubmitQueryResult> query(SysUser account, Long serviceId, String status, Long createId, String userName, Long supplierId, String custom, String sopNo, Long days) {
-        Long userId = account.getId();
+    public List<TBDingSubmitQueryResult> query(SysUser requestUser, Long serviceId, String status, Long createId, String userName, Long supplierId, String custom, String sopNo, Long days) {
+        Long userId = requestUser.getId();
         DataPermissionDto dpr = sysUserService.buildUserDataPermission(userId);
+        if (dpr.getHasThirdPmo()) {
+            // 乙方PMO
+            Long userSupplierId = requestUser.getSupplierId();
+            if (userSupplierId == null || userSupplierId == 0) {
+                throw ExceptionResultEnum.ERROR.exception(String.format("请先在用户管理中绑定[%s]对应的供应商",RoleTypeEnum.THIRD_PMO.getDesc()));
+            }
+            supplierId = userSupplierId;
+        }
         return this.baseMapper.query(serviceId, status, createId, userName, supplierId, custom, sopNo, days, dpr);
     }
 
@@ -449,6 +465,14 @@ public class TBDingServiceImpl extends ServiceImpl<TBDingMapper, TBDing> impleme
         SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
         Long userId = requestUser.getId();
         DataPermissionDto dpr = sysUserService.buildUserDataPermission(userId);
+        if (dpr.getHasThirdPmo()) {
+            // 乙方PMO
+            Long userSupplierId = requestUser.getSupplierId();
+            if (userSupplierId == null || userSupplierId == 0) {
+                throw ExceptionResultEnum.ERROR.exception(String.format("请先在用户管理中绑定[%s]对应的供应商",RoleTypeEnum.THIRD_PMO.getDesc()));
+            }
+            supplierId = userSupplierId;
+        }
         return this.baseMapper.count(serviceId, createId, userName, supplierId, custom, sopNo, dpr);
     }
 
@@ -457,6 +481,14 @@ public class TBDingServiceImpl extends ServiceImpl<TBDingMapper, TBDing> impleme
         SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
         Long userId = requestUser.getId();
         DataPermissionDto dpr = sysUserService.buildUserDataPermission(userId);
+        if (dpr.getHasThirdPmo()) {
+            // 乙方PMO
+            Long userSupplierId = requestUser.getSupplierId();
+            if (userSupplierId == null || userSupplierId == 0) {
+                throw ExceptionResultEnum.ERROR.exception(String.format("请先在用户管理中绑定[%s]对应的供应商",RoleTypeEnum.THIRD_PMO.getDesc()));
+            }
+            supplierId = userSupplierId;
+        }
         return this.baseMapper.attendanceQuery(iPage, serviceId, userName, startTime, endTime, supplierId, custom, sopNo, Objects.nonNull(type) ? type.name() : null, Objects.nonNull(status) ? status.name() : null, dpr, abnormal);
     }
 
@@ -465,6 +497,14 @@ public class TBDingServiceImpl extends ServiceImpl<TBDingMapper, TBDing> impleme
         SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
         Long userId = requestUser.getId();
         DataPermissionDto dpr = sysUserService.buildUserDataPermission(userId);
+        if (dpr.getHasThirdPmo()) {
+            // 乙方PMO
+            Long userSupplierId = requestUser.getSupplierId();
+            if (userSupplierId == null || userSupplierId == 0) {
+                throw ExceptionResultEnum.ERROR.exception(String.format("请先在用户管理中绑定[%s]对应的供应商",RoleTypeEnum.THIRD_PMO.getDesc()));
+            }
+            supplierId = userSupplierId;
+        }
         return this.baseMapper.attendanceCount(serviceId, userName, startTime, endTime, supplierId, custom, sopNo, dpr);
     }
 

+ 27 - 0
sop-business/src/main/java/com/qmth/sop/business/service/impl/TBDingSubmitServiceImpl.java

@@ -16,6 +16,7 @@ import com.qmth.sop.business.service.TBDingSubmitService;
 import com.qmth.sop.common.contant.SystemConstant;
 import com.qmth.sop.common.enums.DingSubmitStatusEnum;
 import com.qmth.sop.common.enums.ExceptionResultEnum;
+import com.qmth.sop.common.enums.RoleTypeEnum;
 import com.qmth.sop.common.util.DateDisposeUtils;
 import com.qmth.sop.common.util.ServletUtil;
 import org.springframework.stereotype.Service;
@@ -59,6 +60,14 @@ public class TBDingSubmitServiceImpl extends ServiceImpl<TBDingSubmitMapper, TBD
 
         SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
         DataPermissionDto dpr = sysUserService.buildUserDataPermission(requestUser.getId());
+        if (dpr.getHasThirdPmo()) {
+            // 乙方PMO
+            Long userSupplierId = requestUser.getSupplierId();
+            if (userSupplierId == null || userSupplierId == 0) {
+                throw ExceptionResultEnum.ERROR.exception(String.format("请先在用户管理中绑定[%s]对应的供应商", RoleTypeEnum.THIRD_PMO.getDesc()));
+            }
+            supplierId = userSupplierId;
+        }
         IPage<DingSubmitResult> page = this.baseMapper.findDingSubmitPage(new Page<>(pageNumber, pageSize), serviceUnitId, dingSubmitStatusEnumList,
                 submitUserId, archivesName, supplierId, customName, sopNo, violationHoursLimit, dingExceptionLimit, remainLimit, exceptionLimit, dpr);
         for (DingSubmitResult record : page.getRecords()) {
@@ -83,6 +92,14 @@ public class TBDingSubmitServiceImpl extends ServiceImpl<TBDingSubmitMapper, TBD
 
         SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
         DataPermissionDto dpr = sysUserService.buildUserDataPermission(requestUser.getId());
+        if (dpr.getHasThirdPmo()) {
+            // 乙方PMO
+            Long userSupplierId = requestUser.getSupplierId();
+            if (userSupplierId == null || userSupplierId == 0) {
+                throw ExceptionResultEnum.ERROR.exception(String.format("请先在用户管理中绑定[%s]对应的供应商", RoleTypeEnum.THIRD_PMO.getDesc()));
+            }
+            supplierId = userSupplierId;
+        }
 
         List<DingSubmitResult> dingSubmitResultList = this.baseMapper.findDingSubmitList(serviceUnitId, dingSubmitStatusEnumList,
                 submitUserId, null, archivesName, supplierId, customName, sopNo, violationHoursLimit, dingExceptionLimit, remainLimit, exceptionLimit, dpr);
@@ -297,6 +314,16 @@ public class TBDingSubmitServiceImpl extends ServiceImpl<TBDingSubmitMapper, TBD
         customName = SystemConstant.translateSpecificSign(customName);
 
         DataPermissionDto dpr = sysUserService.buildUserDataPermission(requestUserId);
+        if (dpr.getHasThirdPmo()) {
+            SysUser requestUser = sysUserService.getById(requestUserId);
+            // 乙方PMO
+            Long userSupplierId = requestUser.getSupplierId();
+            if (userSupplierId == null || userSupplierId == 0) {
+                throw ExceptionResultEnum.ERROR.exception(String.format("请先在用户管理中绑定[%s]对应的供应商", RoleTypeEnum.THIRD_PMO.getDesc()));
+            }
+            supplierId = userSupplierId;
+        }
+
         List<DingSubmitResult> dingSubmitResultList = this.baseMapper.findDingSubmitList(serviceUnitId, dingSubmitStatusEnumList,
                 submitUserId, null, archivesName, supplierId, customName, sopNo, violationHoursLimit, dingExceptionLimit,
                 remainLimit, exceptionLimit, dpr);

+ 1 - 2
sop-business/src/main/java/com/qmth/sop/business/templete/service/impl/TaskLogicServiceImpl.java

@@ -350,8 +350,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
         File fileTemp = null;
         try {
             fileTemp = SystemConstant.getFileTempVar(SystemConstant.XLSX_PREFIX);
-
-            List<TBDingSubmitQueryResult> tbDingCountQueryResults = tbDingService.query((SysUser) map.get("account"), (Long) map.get("serviceId"), (String) map.get("status"), (Long) map.get("createId"), (String) map.get("userName"), (Long) map.get("supplierId"), (String) map.get("String"), (String) map.get("sopNo"), (Long) map.get("days"));
+            List<TBDingSubmitQueryResult> tbDingCountQueryResults = tbDingService.query((SysUser) map.get(SystemConstant.USER), (Long) map.get("serviceId"), (String) map.get("status"), (Long) map.get("createId"), (String) map.get("userName"), (Long) map.get("supplierId"), (String) map.get("String"), (String) map.get("sopNo"), (Long) map.get("days"));
 
             EasyExcel.write(fileTemp, TBDingSubmitQueryResult.class).sheet("考勤打卡统计导出").doWrite(tbDingCountQueryResults);