Răsfoiți Sursa

add:考勤打卡

caozixuan 1 an în urmă
părinte
comite
8b0efe24a9

+ 26 - 34
sop-api/src/main/java/com/qmth/sop/server/api/TBDingController.java

@@ -3,20 +3,22 @@ package com.qmth.sop.server.api;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.qmth.boot.api.constant.ApiConstant;
-import com.qmth.sop.business.activiti.service.ActivitiService;
 import com.qmth.sop.business.annotation.OperationLog;
 import com.qmth.sop.business.bean.params.DingSaveParam;
 import com.qmth.sop.business.bean.result.*;
 import com.qmth.sop.business.entity.SysUser;
+import com.qmth.sop.business.entity.TBCrm;
 import com.qmth.sop.business.entity.TBTask;
-import com.qmth.sop.business.service.SysRoleService;
+import com.qmth.sop.business.service.TBCrmService;
 import com.qmth.sop.business.service.TBDingService;
 import com.qmth.sop.business.service.TBSopInfoService;
 import com.qmth.sop.business.service.TBTaskService;
-import com.qmth.sop.business.templete.execute.AsyncDingAttendanceExportService;
 import com.qmth.sop.business.templete.execute.AsyncDingCountExportService;
 import com.qmth.sop.common.contant.SystemConstant;
-import com.qmth.sop.common.enums.*;
+import com.qmth.sop.common.enums.DingResultEnum;
+import com.qmth.sop.common.enums.DingSubmitStatusEnum;
+import com.qmth.sop.common.enums.InOutTypeEnum;
+import com.qmth.sop.common.enums.TaskTypeEnum;
 import com.qmth.sop.common.util.Result;
 import com.qmth.sop.common.util.ResultUtil;
 import com.qmth.sop.common.util.ServletUtil;
@@ -29,11 +31,10 @@ import javax.validation.Valid;
 import javax.validation.constraints.Max;
 import javax.validation.constraints.Min;
 import java.io.IOException;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
 
 /**
  * 考勤打卡表 控制器
@@ -48,8 +49,6 @@ import java.util.stream.Stream;
 @RestController
 @RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_DING)
 public class TBDingController {
-
-
     @Resource
     TBDingService tBDingService;
 
@@ -58,17 +57,11 @@ public class TBDingController {
     @Resource
     AsyncDingCountExportService asyncDingCountExportService;
 
-    @Resource
-    AsyncDingAttendanceExportService asyncDingAttendanceExportService;
-
-    @Resource
-    ActivitiService activitiService;
-
     @Resource
     TBSopInfoService tbSopInfoService;
 
     @Resource
-    SysRoleService sysRoleService;
+    TBCrmService tbCrmService;
 
     @ApiOperation(value = "工时统计统计查询接口")
     @RequestMapping(value = "/query", method = RequestMethod.POST)
@@ -233,28 +226,27 @@ public class TBDingController {
     @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = DingElementResult.class)})
     @OperationLog
     public Result findDingRunningSop(@ApiParam(value = "服务单元id", required = true) @RequestParam String serviceUnitId) {
+        List<SopInfoResult> resultList = new ArrayList<>();
         SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
         Long requestUserId = requestUser.getId();
 
-
-        IPage<WorkTaskResult> page = activitiService.getFlowTaskList(new Page<>(1, SystemConstant.PAGE_SIZE_MAX_SELECT), requestUser.getId(),
-                TFCustomTypeEnum.SOP_FLOW, SystemConstant.convertIdToLong(serviceUnitId), null, FlowTaskTypeEnum.ALL, null);
-        List<SopInfoResult> list = page.getRecords().stream().filter(e -> {
-            RoleTypeEnum type = sysRoleService.findRoleTypeByUserCrm(requestUserId, e.getCrmNo());
-            return RoleTypeEnum.EFFECT_ENGINEER.equals(type) || RoleTypeEnum.ASSISTANT_ENGINEER.equals(type);
-        }).flatMap(e -> {
-
-            SopInfoResult result = new SopInfoResult();
-            result.setSopNo(e.getCode());
-            result.setCrmNo(e.getCrmNo());
-            result.setCrmName(e.getCrmName());
-            result.setCustomId(e.getCustomId());
-            result.setCustomName(e.getCustomName());
-            result.setCustomType(e.getCustomType());
-            result.setCustomTypeStr(e.getCustomTypeStr());
-            return Stream.of(result);
-        }).collect(Collectors.toList());
-        return ResultUtil.ok(list);
+        TBCrm tbCrm = tbCrmService.findOccupiedCrm(requestUserId, null, SystemConstant.convertIdToLong(serviceUnitId));
+        if (Objects.nonNull(tbCrm)) {
+            CrmProjectResult crmProjectResult = tbCrmService.findCrmProjectBySopNoOrCrmNo(null, tbCrm.getCrmNo());
+            List<String> sopNoList = tbSopInfoService.findFlowPassageByCrmNo(tbCrm.getCrmNo());
+            for (String sopNo : sopNoList) {
+                SopInfoResult result = new SopInfoResult();
+                result.setSopNo(sopNo);
+                result.setCrmNo(tbCrm.getCrmNo());
+                result.setCrmName(tbCrm.getName());
+                result.setCustomId(crmProjectResult.getCustomId());
+                result.setCustomName(crmProjectResult.getCustomName());
+                result.setCustomType(crmProjectResult.getCustomType());
+                result.setCustomTypeStr(crmProjectResult.getCustomType().getTitle());
+                resultList.add(result);
+            }
+        }
+        return ResultUtil.ok(resultList);
     }
 
     @ApiOperation(value = "考勤打卡-查询所有sop")

+ 3 - 1
sop-business/src/main/java/com/qmth/sop/business/mapper/TBCrmMapper.java

@@ -131,10 +131,12 @@ public interface TBCrmMapper extends BaseMapper<TBCrm> {
      *
      * @param userId         工程师用户id
      * @param userArchivesId 工程师档案id
+     * @param serviceUnitId 服务单元id
      * @return 被占用的派单
      */
     List<TBCrm> findOccupiedCrm(@Param("userId") Long userId,
-                                @Param("userArchivesId") Long userArchivesId);
+                                @Param("userArchivesId") Long userArchivesId,
+                                @Param("serviceUnitId") Long serviceUnitId);
 
     /**
      * 根据绑定的服务单元id和客户地址查询符合条件的派单

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

@@ -148,9 +148,10 @@ public interface TBCrmService extends IService<TBCrm> {
      *
      * @param userId         用户id
      * @param userArchivesId 档案id
+     * @param serviceUnitId  服务单元id
      * @return 正在进行的派单(被占用的)
      */
-    TBCrm findOccupiedCrm(Long userId, Long userArchivesId);
+    TBCrm findOccupiedCrm(Long userId, Long userArchivesId, Long serviceUnitId);
 
     /**
      * 更新派单发布状态

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

@@ -340,9 +340,9 @@ public class TBCrmServiceImpl extends ServiceImpl<TBCrmMapper, TBCrm> implements
     }
 
     @Override
-    public TBCrm findOccupiedCrm(Long userId, Long userArchivesId) {
+    public TBCrm findOccupiedCrm(Long userId, Long userArchivesId,Long serviceUnitId) {
         TBCrm result = null;
-        List<TBCrm> tbCrmList = this.baseMapper.findOccupiedCrm(userId, userArchivesId);
+        List<TBCrm> tbCrmList = this.baseMapper.findOccupiedCrm(userId, userArchivesId,serviceUnitId);
         if (CollectionUtils.isNotEmpty(tbCrmList)) {
             if (tbCrmList.size() > 1) {
                 throw ExceptionResultEnum.ERROR.exception("被多个派单占用异常");

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

@@ -163,7 +163,7 @@ public class TBUserArchivesAllocationServiceImpl extends ServiceImpl<TBUserArchi
                     }
                     TBUserArchives tbUserArchives = tbUserArchivesService.findByUserId(userId);
                     if (!UserArchivesStatusEnum.FREE.equals(tbUserArchives.getStatus())) {
-                        TBCrm occupiedCrm = tbCrmService.findOccupiedCrm(userId, null);
+                        TBCrm occupiedCrm = tbCrmService.findOccupiedCrm(userId, null, null);
                         if (Objects.isNull(occupiedCrm)) {
                             throw ExceptionResultEnum.ERROR.exception("人员占用状态异常");
                         }

+ 3 - 0
sop-business/src/main/resources/mapper/TBCrmMapper.xml

@@ -362,6 +362,9 @@
             <if test="userArchivesId != null">
                 AND tbuaa.archives_id = #{userArchivesId}
             </if>
+            <if test="serviceUnitId != null">
+                AND tbc.service_id = #{serviceUnitId}
+            </if>
             AND tbc.status != 'FINISH'
         </where>
     </select>

+ 2 - 2
sop-business/src/main/resources/mapper/TBSopInfoMapper.xml

@@ -175,7 +175,7 @@
         <where> 1 = 1
             <if test="userId != null and userId != ''">
                 <choose>
-                    <when test="roleType != null roleType != '' and roleType == 'EFFECT_ENGINEER'">
+                    <when test="roleType != null and roleType != '' and roleType == 'EFFECT_ENGINEER'">
                         and (tbsid.engineer_user_id is not null and tbsid.engineer_user_id = #{userId})
                     </when>
                     <otherwise>
@@ -207,7 +207,7 @@
         <where>
             <if test="userId != null and userId != ''">
                 <choose>
-                    <when test="roleType != null roleType != '' and roleType == 'EFFECT_ENGINEER'">
+                    <when test="roleType != null and roleType != '' and roleType == 'EFFECT_ENGINEER'">
                         and (tbsid.engineer_user_id is not null and tbsid.engineer_user_id = #{userId})
                     </when>
                     <otherwise>