Răsfoiți Sursa

add. 新加根据用户id查询用户档案信息接口

caozixuan 8 luni în urmă
părinte
comite
7ad925be16

+ 5 - 5
sop-business/src/main/java/com/qmth/sop/business/bean/result/UserArchivesInfoResult.java

@@ -26,7 +26,7 @@ public class UserArchivesInfoResult {
     private String mobileNumber;
 
     @ApiModelProperty(value = "认证角色集合")
-    private List<RoleResult> roleInfoList;
+    private String archivesRoleName;
 
     public Long getUserId() {
         return userId;
@@ -60,11 +60,11 @@ public class UserArchivesInfoResult {
         this.mobileNumber = mobileNumber;
     }
 
-    public List<RoleResult> getRoleInfoList() {
-        return roleInfoList;
+    public String getArchivesRoleName() {
+        return archivesRoleName;
     }
 
-    public void setRoleInfoList(List<RoleResult> roleInfoList) {
-        this.roleInfoList = roleInfoList;
+    public void setArchivesRoleName(String archivesRoleName) {
+        this.archivesRoleName = archivesRoleName;
     }
 }

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

@@ -654,7 +654,7 @@ public class TBUserArchivesServiceImpl extends ServiceImpl<TBUserArchivesMapper,
         result.setMobileNumber(dto.getMobileNumber());
         result.setSupplierName(dto.getSupplierName());
         result.setName(dto.getName());
-        result.setRoleInfoList(dto.getRoleInfoList());
+        result.setArchivesRoleName(dto.getRoleInfoList().stream().map(RoleResult::getRoleName).collect(Collectors.joining(",")));
         return result;
     }
 }

+ 220 - 8
sop-business/src/main/resources/mapper/TBDingSubmitMapper.xml

@@ -38,7 +38,9 @@
             tbds.id AS submitId,
             tbds.submit_user_id AS submitUserId,
             su.real_name AS submitUserName,
-            tbds.submit_time AS submitTime
+            tbds.submit_time AS submitTime,
+            tbs.update_time AS serviceUpdateTime,
+            tbc.update_time AS crmUpateTime
         FROM
             t_b_ding_statistic sta
                 LEFT JOIN
@@ -46,12 +48,14 @@
                 LEFT JOIN
             t_b_crm tbc ON sta.crm_no = tbc.crm_no
                 LEFT JOIN
-            t_b_ding_submit tbds ON sta.sop_no = tbds.sop_no
+            t_b_ding_submit tbds
+                ON sta.service_id = tbds.service_id
+                AND sta.sop_no = tbds.sop_no
                 AND sta.user_archives_id = tbds.user_archives_id
                 LEFT JOIN
             sys_user su ON tbds.submit_user_id = su.id
         <where>
-            AND tbs.status = 'PUBLISH'
+            AND tbs.status = 'PUBLISH' AND sta.sop_no IS NOT NULL
             <if test="serviceUnitId != null">
                 AND sta.service_id = #{serviceUnitId}
             </if>
@@ -100,7 +104,108 @@
                 </choose>
             </if>
         </where>
-        ORDER BY tbs.update_time DESC,tbc.update_time DESC
+        UNION ALL
+        SELECT
+            sta.service_id AS serviceUnitId,
+            tbs.name AS serviceUnitName,
+            sta.sop_no AS sopNo,
+            sta.crm_no AS crmNo,
+            sta.custom_name AS customName,
+            sta.province AS province,
+            sta.city AS city,
+            sta.user_id AS userId,
+            sta.user_archives_id AS archivesId,
+            sta.user_archives_code AS archivesCode,
+            sta.user_archives_name AS archivesName,
+            CONCAT(sta.user_archives_name,
+            '(',
+            sta.user_archives_code,
+            ')') AS archivesInfo,
+            sta.scan_start_time AS scanStartTime,
+            sta.scan_end_time AS scanEndTime,
+            sta.mark_paper_start_time AS markPaperStartTime,
+            sta.mark_paper_end_time AS markPaperEndTime,
+            sta.role_name AS sopRoleTypeStr,
+            sta.supplier_name AS supplierName,
+            sta.actual_days AS actualDays,
+            sta.weekdays AS weekdays,
+            sta.weekends AS weekends,
+            sta.legal_holidays AS legalHolidays,
+            sta.violation_days AS violationDays,
+            sta.work_hours AS workHours,
+            sta.ding_exception_count AS dingExceptionCount,
+            sta.remain_count AS remainCount,
+            sta.exception_count AS exceptionCount,
+            IFNULL(tbds.submit_status, 'WILL_SUBMIT') AS submitStatus,
+            tbds.id AS submitId,
+            tbds.submit_user_id AS submitUserId,
+            su.real_name AS submitUserName,
+            tbds.submit_time AS submitTime,
+            tbs.update_time AS serviceUpdateTime,
+            tbc.update_time AS crmUpateTime
+        FROM
+            t_b_ding_statistic sta
+                LEFT JOIN
+            t_b_service tbs ON sta.service_id = tbs.id
+                LEFT JOIN
+            t_b_crm tbc ON sta.crm_no = tbc.crm_no
+                LEFT JOIN
+            t_b_ding_submit tbds ON sta.service_id = tbds.service_id
+                AND tbds.sop_no IS NULL
+                AND sta.user_archives_id = tbds.user_archives_id
+                LEFT JOIN
+            sys_user su ON tbds.submit_user_id = su.id
+        <where>
+            AND tbs.status = 'PUBLISH' AND sta.sop_no IS NULL
+            <if test="serviceUnitId != null">
+                AND sta.service_id = #{serviceUnitId}
+            </if>
+            <if test="dingSubmitStatusList != null and dingSubmitStatusList != '' and dingSubmitStatusList.size > 0">
+                AND IFNULL(tbds.submit_status, 'WILL_SUBMIT') IN
+                <foreach collection="dingSubmitStatusList" item="item" index="index" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="submitUserId != null">
+                AND tbds.submit_user_id = #{serviceUnitId}
+            </if>
+            <if test="archivesName != null and archivesName != ''">
+                AND sta.user_archives_name LIKE CONCAT('%',#{archivesName},'%')
+            </if>
+            <if test="supplierId != null">
+                AND sta.supplier_id = #{supplierId}
+            </if>
+            <if test="customName != null and customName != ''">
+                AND sta.custom_name LIKE CONCAT('%',#{customName},'%')
+            </if>
+            <if test="sopNo != null and sopNo != ''">
+                AND sta.sop_no = #{sopNo}
+            </if>
+            <if test="violationHoursLimit != null">
+                AND sta.violation_days > #{violationHoursLimit}
+            </if>
+            <if test="dingExceptionLimit != null">
+                AND sta.ding_exception_count > #{dingExceptionLimit}
+            </if>
+            <if test="exceptionLimit != null">
+                AND sta.exception_count > #{exceptionLimit}
+            </if>
+            <if test="dpr != null and !dpr.hasAdmin and !dpr.hasPmo">
+                <choose>
+                    <when test="dpr.hasBusiness">
+                        AND tbs.service_lead_id = #{dpr.requestUserId}
+                    </when>
+                    <otherwise>
+                        <choose>
+                            <when test="dpr.hasRegionManager">
+                                AND tbc.lead_id = #{dpr.requestUserId}
+                            </when>
+                        </choose>
+                    </otherwise>
+                </choose>
+            </if>
+        </where>
+        ORDER BY serviceUpdateTime DESC , crmUpateTime DESC
     </select>
 
     <select id="findDingSubmitList" resultType="com.qmth.sop.business.bean.result.DingSubmitResult">
@@ -139,7 +244,113 @@
             tbds.id AS submitId,
             tbds.submit_user_id AS submitUserId,
             su.real_name AS submitUserName,
-            tbds.submit_time AS submitTime
+            tbds.submit_time AS submitTime,
+            tbs.update_time AS serviceUpdateTime,
+            tbc.update_time AS crmUpateTime
+        FROM
+            t_b_ding_statistic sta
+                LEFT JOIN
+            t_b_service tbs ON sta.service_id = tbs.id
+                LEFT JOIN
+            t_b_crm tbc ON sta.crm_no = tbc.crm_no
+                LEFT JOIN
+            t_b_ding_submit tbds ON sta.service_id = tbds.service_id
+                AND sta.sop_no = tbds.sop_no
+                AND sta.user_archives_id = tbds.user_archives_id
+                LEFT JOIN
+            sys_user su ON tbds.submit_user_id = su.id
+        <where>
+            AND tbs.status = 'PUBLISH' AND sta.sop_no IS NOT NULL
+            <if test="serviceUnitId != null">
+                AND sta.service_id = #{serviceUnitId}
+            </if>
+            <if test="dingSubmitStatusList != null and dingSubmitStatusList != '' and dingSubmitStatusList.size > 0">
+                AND IFNULL(tbds.submit_status, 'WILL_SUBMIT') IN
+                <foreach collection="dingSubmitStatusList" item="item" index="index" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="submitUserId != null">
+                AND tbds.submit_user_id = #{serviceUnitId}
+            </if>
+            <if test="archivesId != null">
+                AND sta.user_archives_id = #{archivesId}
+            </if>
+            <if test="archivesName != null and archivesName != ''">
+                AND sta.user_archives_name LIKE CONCAT('%',#{archivesName},'%')
+            </if>
+            <if test="supplierId != null">
+                AND sta.supplier_id = #{supplierId}
+            </if>
+            <if test="customName != null and customName != ''">
+                AND sta.custom_name LIKE CONCAT('%',#{customName},'%')
+            </if>
+            <if test="sopNo != null and sopNo != ''">
+                AND sta.sop_no = #{sopNo}
+            </if>
+            <if test="violationHoursLimit != null">
+                AND sta.violation_days > #{violationHoursLimit}
+            </if>
+            <if test="dingExceptionLimit != null">
+                AND sta.ding_exception_count > #{dingExceptionLimit}
+            </if>
+            <if test="exceptionLimit != null">
+                AND sta.exception_count > #{exceptionLimit}
+            </if>
+            <if test="dpr != null and !dpr.hasAdmin and !dpr.hasPmo">
+                <choose>
+                    <when test="dpr.hasBusiness">
+                        AND tbs.service_lead_id = #{dpr.requestUserId}
+                    </when>
+                    <otherwise>
+                        <choose>
+                            <when test="dpr.hasRegionManager">
+                                AND tbc.lead_id = #{dpr.requestUserId}
+                            </when>
+                        </choose>
+                    </otherwise>
+                </choose>
+            </if>
+        </where>
+        UNION ALL
+        SELECT
+            sta.service_id AS serviceUnitId,
+            tbs.name AS serviceUnitName,
+            sta.sop_no AS sopNo,
+            sta.crm_no AS crmNo,
+            sta.custom_name AS customName,
+            sta.province AS province,
+            sta.city AS city,
+            sta.user_id AS userId,
+            sta.user_archives_id AS archivesId,
+            sta.user_archives_code AS archivesCode,
+            sta.user_archives_name AS archivesName,
+            CONCAT(sta.user_archives_name,
+            '(',
+            sta.user_archives_code,
+            ')') AS archivesInfo,
+            sta.scan_start_time AS scanStartTime,
+            sta.scan_end_time AS scanEndTime,
+            sta.mark_paper_start_time AS markPaperStartTime,
+            sta.mark_paper_end_time AS markPaperEndTime,
+            sta.role_name AS sopRoleTypeStr,
+            sta.supplier_name AS supplierName,
+            sta.actual_days AS actualDays,
+            sta.weekdays AS weekdays,
+            sta.weekends AS weekends,
+            sta.legal_holidays AS legalHolidays,
+            sta.violation_days AS violationDays,
+            sta.work_hours AS workHours,
+            sta.ding_exception_count AS dingExceptionCount,
+            sta.remain_count AS remainCount,
+            sta.exception_count AS exceptionCount,
+            IFNULL(tbds.submit_status, 'WILL_SUBMIT') AS submitStatus,
+            tbds.id AS submitId,
+            tbds.submit_user_id AS submitUserId,
+            su.real_name AS submitUserName,
+            tbds.submit_time AS submitTime,
+            tbs.update_time AS serviceUpdateTime,
+            tbc.update_time AS crmUpateTime
         FROM
             t_b_ding_statistic sta
                 LEFT JOIN
@@ -147,12 +358,13 @@
                 LEFT JOIN
             t_b_crm tbc ON sta.crm_no = tbc.crm_no
                 LEFT JOIN
-            t_b_ding_submit tbds ON sta.sop_no = tbds.sop_no
+            t_b_ding_submit tbds ON sta.service_id = tbds.service_id
+                AND tbds.sop_no IS NULL
                 AND sta.user_archives_id = tbds.user_archives_id
                 LEFT JOIN
             sys_user su ON tbds.submit_user_id = su.id
         <where>
-            AND tbs.status = 'PUBLISH'
+            AND tbs.status = 'PUBLISH' AND sta.sop_no IS NULL
             <if test="serviceUnitId != null">
                 AND sta.service_id = #{serviceUnitId}
             </if>
@@ -204,6 +416,6 @@
                 </choose>
             </if>
         </where>
-        ORDER BY tbs.update_time DESC,tbc.update_time DESC
+        ORDER BY serviceUpdateTime DESC , crmUpateTime DESC
     </select>
 </mapper>