Pārlūkot izejas kodu

修改任务管理代理人、渠道和保险公司的任务数在一定条件下相等的逻辑

hxl13994548489 2 gadi atpakaļ
vecāks
revīzija
3f149d0873

+ 2 - 2
src/main/java/com/ydtech/modules/order/dao/InsOrdersMapper.java

@@ -56,14 +56,14 @@ public interface InsOrdersMapper extends BaseMapper<InsOrders> {
      *  @Date: 2024/4/17 18:01
      *  @Description:  通过用户id查询订单、渠道、代理人、保险公司
      */
-    Page<InsOrders> queryPageOrderByLinkType(@Param("page") Page<InsOrders> page,@Param("orderQueryVo") OrderQueryVo orderQueryVo, @Param("agentUserIds") List<String> agentUserIds,  @Param("agreeIds") List<String> agreeIds,@Param("deptIds") List<String> deptIds,@Param("flag") Boolean flag);
+    Page<InsOrders> queryPageOrderByLinkType(@Param("page") Page<InsOrders> page,@Param("orderQueryVo") OrderQueryVo orderQueryVo, @Param("agentUserIds") List<String> agentUserIds,  @Param("agreeIds") List<String> agreeIds,@Param("deptIds") List<String> deptIds,@Param("flag") Boolean flag,@Param("type") int type);
     /**
      *  @version
      *  @author: hxl
      *  @Date: 2024/4/17 18:36
      *  @Description: 通过用户id查询订单、渠道、代理人、保险公司条数
      */
-    Long queryPageOrderByLinkTypeCount(@Param("orderQueryVo") OrderQueryVo orderQueryVo, @Param("agentUserIds")  List<String> agentUserIds, @Param("agreeIds")  List<String> agreeIds,@Param("deptIds") List<String> deptIds,@Param("flag") Boolean flag);
+    Long queryPageOrderByLinkTypeCount(@Param("orderQueryVo") OrderQueryVo orderQueryVo, @Param("agentUserIds")  List<String> agentUserIds, @Param("agreeIds")  List<String> agreeIds,@Param("deptIds") List<String> deptIds,@Param("flag") Boolean flag,@Param("type") int type);
     /**
      *  @version
      *  @author: hxl

+ 2 - 5
src/main/java/com/ydtech/modules/order/service/impl/InsOrdersServiceImpl.java

@@ -23,7 +23,6 @@ import com.ydtech.exception.SystemException;
 import com.ydtech.modules.admin.constants.RoleConstants;
 import com.ydtech.modules.admin.dao.SysUserLinkAreaMapper;
 import com.ydtech.modules.admin.dao.SysUserLinkPtlAgreementMapper;
-import com.ydtech.modules.admin.dao.SysUserMapper;
 import com.ydtech.modules.admin.model.*;
 import com.ydtech.modules.admin.model.dto.SysUserLinkPtlAgreementDto;
 import com.ydtech.modules.admin.model.po.SysUserIsDial;
@@ -34,7 +33,6 @@ import com.ydtech.modules.esm.service.EsmUserReferrerService;
 import com.ydtech.modules.fee.service.CostsCalcService;
 import com.ydtech.modules.fee.service.impl.FeeRuleSchemeServiceImpl;
 import com.ydtech.modules.fnc.entity.InsFeeAudit;
-import com.ydtech.modules.fnc.service.InsFeeAuditHistoryService;
 import com.ydtech.modules.fnc.service.InsFeeAuditService;
 import com.ydtech.modules.ins.dao.InsFileMapper;
 import com.ydtech.modules.ins.model.InsOrdersExcel;
@@ -86,7 +84,6 @@ import org.springframework.util.ObjectUtils;
 import javax.validation.constraints.NotBlank;
 import java.io.File;
 import java.math.BigDecimal;
-import java.time.Instant;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.time.temporal.ChronoUnit;
@@ -1002,8 +999,8 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         Page<InsOrders> orderVoPage = new Page<>();
         //注释逻辑给前台返回数据
         if ((agentUserIds != null && !agentUserIds.isEmpty()) || (agreeIds != null && !agreeIds.isEmpty())) {
-            orderVoPage = baseMapper.queryPageOrderByLinkType(page, orderQueryVo, agentUserIds, agreeIds, deptIds, flag);
-            total = baseMapper.queryPageOrderByLinkTypeCount(orderQueryVo, agentUserIds, agreeIds, deptIds, flag);
+            orderVoPage = baseMapper.queryPageOrderByLinkType(page, orderQueryVo, agentUserIds, agreeIds, deptIds, flag,type);
+            total = baseMapper.queryPageOrderByLinkTypeCount(orderQueryVo, agentUserIds, agreeIds, deptIds, flag,type);
         }
         orderVoPage.setTotal(total);
         return new BasePageResult<>(orderQueryVo.getPageNum(), orderQueryVo.getPageSize(), orderVoPage.getTotal(),

+ 39 - 21
src/main/resources/mapper/modules/admin/SysUserLinkAreaMapper.xml

@@ -71,32 +71,50 @@
 
     <select id="findAreaIdsByAgentUserId"  resultType="String">
         SELECT
-            su.id
+         DISTINCT id
         FROM
-            sys_user su
-                LEFT JOIN sys_user_info info ON info.id = su.id
-                LEFT JOIN sys_dept sd ON su.dept_id = sd.id
-                LEFT JOIN sys_user_role t3 ON su.id = t3.user_id
-                AND sd.del_flag = '0'
+        (
+        SELECT
+        su.id,
+        CASE
+        WHEN LENGTH( su.dept_id )> 9 THEN
+        SUBSTRING( su.dept_id, 3, 6 )+ ''
+        WHEN LENGTH( su.dept_id )> 7 THEN
+        SUBSTRING( su.dept_id, 3, 4 )+ ''
+        WHEN LENGTH( su.dept_id )> 5 THEN
+        SUBSTRING( su.dept_id, 3, 2 )+ '' ELSE '00'
+        END AS dept_id
+        FROM
+        sys_user su
+        LEFT JOIN sys_dept sd ON su.dept_id = sd.id
+        AND sd.del_flag = '0'
         WHERE
-           sd.management_source = 2
-            <if test="areaCodes != null and areaCodes.size>0" >
-                AND (
-                <foreach collection="areaCodes" item="item" open=" (" separator="or" close=") ">
-                    instr( su.dept_id, TRIM( TRAILING '0' FROM #{item} ))>0
-                </foreach>
-                )
-            </if>
+        sd.management_source = 2
+        ) b
+       <where>
+           <if test="areaCodes != null and areaCodes.size>0" >
+               AND (
+               <foreach collection="areaCodes" item="item" open=" (" separator="or" close=") ">
+                   b.dept_id LIKE  CONCAT(#{item}, '%')
+               </foreach>
+               )
+           </if>
+       </where>
     </select>
 
     <select id="findAreaCodeByUserId"  resultType="String">
-        SELECT
-            DISTINCT link.area_code
+        SELECT DISTINCT
+            b.area_code
         FROM
-            sys_user_link_area link
-        WHERE
-            link.user_id = #{userId}
-        ORDER BY
-            link.area_code
+            (
+                SELECT
+                    ( TRIM( TRAILING '0' FROM link.area_code ) ) AS area_code
+                FROM
+                    sys_user_link_area link
+                WHERE
+                    link.user_id = #{userId}
+                ORDER BY
+                    link.area_code
+            ) b
     </select>
 </mapper>

+ 18 - 0
src/main/resources/mapper/modules/order/InsOrdersMapper.xml

@@ -1012,6 +1012,14 @@
                 OR ( DATE_FORMAT(iac.sy_start_date, '%Y-%m-%d')  BETWEEN #{orderQueryVo.attachStartDateStr} AND #{orderQueryVo.attachEndDateStr} )
                 )
             </if>
+            <choose>
+                <when test="type==1">
+                    and dept.management_source=1
+                </when>
+                <when test="type==2">
+                    and dept.management_source=2
+                </when>
+            </choose>
         </where>
         order by io.createtime desc
     </select>
@@ -1026,6 +1034,8 @@
           ins_area_company iac
             left JOIN
         ins_orders io  on iac.orderno = io.orderno
+        LEFT JOIN
+        sys_dept dept ON dept.id = io.deptid
         <where>
             <if test="agentUserIds != null and agentUserIds.size>0" >
                 AND (
@@ -1124,6 +1134,14 @@
                 OR ( DATE_FORMAT(iac.sy_start_date, '%Y-%m-%d')  BETWEEN #{orderQueryVo.attachStartDateStr} AND #{orderQueryVo.attachEndDateStr} )
                 )
             </if>
+            <choose>
+                <when test="type==1">
+                    and dept.management_source=1
+                </when>
+                <when test="type==2">
+                    and dept.management_source=2
+                </when>
+            </choose>
         </where>
         ) as s
     </select>