瀏覽代碼

fix: 服务单元条件、 考勤提交查询去掉因为找不到考勤组导致的人为报错

caozixuan 1 年之前
父節點
當前提交
6e1f603bb9

+ 16 - 21
sop-business/src/main/java/com/qmth/sop/business/service/impl/TBDingServiceImpl.java

@@ -21,8 +21,6 @@ import com.qmth.sop.common.util.FileUtil;
 import com.qmth.sop.common.util.ServletUtil;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.time.DateFormatUtils;
-import org.apache.ibatis.annotations.Param;
-import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -31,7 +29,6 @@ import java.io.IOException;
 import java.math.BigDecimal;
 import java.util.*;
 import java.util.stream.Collectors;
-import java.util.stream.Stream;
 
 /**
  * 考勤打卡表 服务实现.
@@ -508,24 +505,22 @@ public class TBDingServiceImpl extends ServiceImpl<TBDingMapper, TBDing> impleme
         }
         List<DingElementResult> dingElementResultList = this.baseMapper.findDingResultByUserId(userId, serviceUnitId);
         List<Long> dingGroupIds = dingElementResultList.stream().map(DingElementResult::getDingGroupId).distinct().collect(Collectors.toList());
-        if (CollectionUtils.isEmpty(dingGroupIds)) {
-            throw ExceptionResultEnum.ERROR.exception("缺少考勤组id");
-        }
-
-        List<SysDingObj> sysDingObjList = sysDingObjService.list(new QueryWrapper<SysDingObj>()
-                .lambda()
-                .in(SysDingObj::getDingGroupId, dingGroupIds)
-                .in(SysDingObj::getRoleId, roleIdList)
-                .eq(SysDingObj::getType, DingObjTypeEnum.DING));
-
-        if (CollectionUtils.isNotEmpty(sysDingObjList) && sysDingObjList.size() == 1) {
-            dingElementResultList = dingElementResultList
-                    .stream()
-                    .filter(e -> e.getDingGroupId()
-                            .equals(sysDingObjList.get(0).getDingGroupId()))
-                    .collect(Collectors.toList());
-            if (dingElementResultList.size() == 1) {
-                return dingElementResultList.get(0);
+        if (CollectionUtils.isNotEmpty(dingGroupIds)) {
+            List<SysDingObj> sysDingObjList = sysDingObjService.list(new QueryWrapper<SysDingObj>()
+                    .lambda()
+                    .in(SysDingObj::getDingGroupId, dingGroupIds)
+                    .in(SysDingObj::getRoleId, roleIdList)
+                    .eq(SysDingObj::getType, DingObjTypeEnum.DING));
+
+            if (CollectionUtils.isNotEmpty(sysDingObjList) && sysDingObjList.size() == 1) {
+                dingElementResultList = dingElementResultList
+                        .stream()
+                        .filter(e -> e.getDingGroupId()
+                                .equals(sysDingObjList.get(0).getDingGroupId()))
+                        .collect(Collectors.toList());
+                if (dingElementResultList.size() == 1) {
+                    return dingElementResultList.get(0);
+                }
             }
         }
         return null;

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

@@ -9,6 +9,8 @@
         left join t_b_service t on t.id = a.service_id
         left join sys_ding_obj do on do.ding_group_id=a.id
         <where>
+            AND t.status != 'FINISH'
+            AND t.status != 'CANCEL'
             <if test="supplierIds != null and supplierIds != ''">
                 and a.supplier_id in
                 <foreach collection="supplierIds" item="id" open="(" separator="," close=")">

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

@@ -19,7 +19,7 @@
         FROM
             t_b_crm tbc
                 LEFT JOIN
-            t_b_service tbs ON tbc.service_id = tbs.id AND tbs.enable AND tbs.status != 'CANCEL'
+            t_b_service tbs ON tbc.service_id = tbs.id
                 LEFT JOIN
             sys_custom sc ON tbc.custom_id = sc.id
                 LEFT JOIN
@@ -27,6 +27,7 @@
         <where>
             AND tbc.enable
             AND tbc.service_id IS NOT null
+            AND tbs.enable AND tbs.status = 'PUBLISH'
             <if test="serviceUnitId != null">
                 AND tbc.service_id = #{serviceUnitId}
             </if>
@@ -74,13 +75,15 @@
         FROM
             t_b_crm tbc
         LEFT JOIN
-            t_b_service tbs ON tbc.service_id = tbs.id AND tbs.enable AND tbs.status != 'CANCEL'
+            t_b_service tbs ON tbc.service_id = tbs.id
         LEFT JOIN
             sys_custom sc ON tbc.custom_id = sc.id
         LEFT JOIN
             sys_level sl ON sc.level_id = sl.id
         <where>
             AND tbc.enable
+            AND tbs.enable
+            AND tbs.status = 'PUBLISH'
             <if test="serviceUnitId != null">
                 AND tbc.service_id = #{serviceUnitId}
             </if>

+ 1 - 0
sop-business/src/main/resources/mapper/TBServiceRegionMapper.xml

@@ -20,6 +20,7 @@
         <where>
             AND tbsr.enable
             AND tbs.enable
+            AND tbs.status = 'PUBLISH'
             <if test="serviceUnitId != null">
                 AND tbsr.service_id = #{serviceUnitId}
             </if>

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

@@ -262,7 +262,7 @@
                             tfcfe.code = tbsi.sop_no
                             left join t_f_flow_approve tffa on
                             tffa.flow_id = tfcfe.flow_id
-                    <where> 1 = 1
+                    <where>
                         <if test="serviceId != null and serviceId != ''">
                             and tbsi.service_id = #{serviceId}
                         </if>