ソースを参照

数据报表:人员审核功能开发

lipf 1 ヶ月 前
コミット
d371045e80
17 ファイル変更308 行追加5 行削除
  1. 31 0
      commons/src/main/java/com/jzg/commons/entity/orders/vo/FeeAuditSummaryParam.java
  2. 30 0
      commons/src/main/java/com/jzg/commons/entity/orders/vo/FeeAuditSummaryVO.java
  3. 4 1
      commons/src/main/java/com/jzg/commons/entity/report/vo/ReportSearchCommonVo.java
  4. 30 0
      commons/src/main/java/com/jzg/commons/entity/user/vo/UserInfoWithPhone.java
  5. 13 0
      consoleStatistics/src/main/java/com/jzg/console/client/FeeAuditClient.java
  6. 26 0
      consoleStatistics/src/main/java/com/jzg/console/client/OrganizationClient.java
  7. 2 0
      consoleStatistics/src/main/java/com/jzg/console/controller/ReportFinanceDataManageController.java
  8. 16 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/controller/InsFeeAuditController.java
  9. 12 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/mapper/InsFeeAuditMapper.java
  10. 10 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/InsFeeAuditService.java
  11. 27 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsFeeAuditServiceImpl.java
  12. 28 0
      tenant/insurance/quotation-summary/src/main/resources/mapper/InsFeeAuditMapper.xml
  13. 15 4
      tenant/organization/src/main/java/com/jzg/organization/controller/SysUserJzgInfoController.java
  14. 9 0
      tenant/organization/src/main/java/com/jzg/organization/mapper/SysUserJzgInfoMapper.java
  15. 9 0
      tenant/organization/src/main/java/com/jzg/organization/service/SysUserJzgInfoService.java
  16. 26 0
      tenant/organization/src/main/java/com/jzg/organization/service/impl/SysUserJzgInfoServiceImpl.java
  17. 20 0
      tenant/organization/src/main/resources/mapper/SysUserJzgInfoMapper.xml

+ 31 - 0
commons/src/main/java/com/jzg/commons/entity/orders/vo/FeeAuditSummaryParam.java

@@ -0,0 +1,31 @@
+package com.jzg.commons.entity.orders.vo;
+
+import com.jzg.commons.core.base.PageRequest;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+
+@Data
+public class FeeAuditSummaryParam  extends PageRequest implements Serializable  {
+
+    @Serial
+    private static final long serialVersionUID = 5264837616895147955L;
+
+    @Schema(name = "签单开始时间")
+    private String signTimeStart;
+
+    @Schema(name = "签单结束时间")
+    private String signTimeEnd;
+
+    private LocalDateTime signTimeStartTime;
+
+    private LocalDateTime signTimeEndTime;
+
+    @Schema(name = "租户代码")
+    private String systemCode;
+
+}

+ 30 - 0
commons/src/main/java/com/jzg/commons/entity/orders/vo/FeeAuditSummaryVO.java

@@ -0,0 +1,30 @@
+package com.jzg.commons.entity.orders.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+@Data
+public class FeeAuditSummaryVO implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = -1881572631140225228L;
+
+    private String receiveUser;
+
+    private String auditStatus;
+
+    @Schema(name = "是否是疑问订单")
+    private String problemIdentify;
+
+    private Long num;
+
+    @Schema(name = "进行费用调整的数量")
+    private Long calFee;
+
+    @Schema(name = "费用审核耗时")
+    private Long costTime;
+
+}

+ 4 - 1
commons/src/main/java/com/jzg/commons/entity/report/vo/ReportSearchCommonVo.java

@@ -6,6 +6,7 @@ import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
+import java.io.Serial;
 import java.io.Serializable;
 import java.util.List;
 
@@ -21,7 +22,9 @@ import java.util.List;
 @NoArgsConstructor
 public class ReportSearchCommonVo implements Serializable {
 
-     @Schema(description = "用户id")
+    @Serial
+    private static final long serialVersionUID = -8629307976503058201L;
+    @Schema(description = "用户id")
      private String userId;
 
      @Schema(description = "路由可以")

+ 30 - 0
commons/src/main/java/com/jzg/commons/entity/user/vo/UserInfoWithPhone.java

@@ -0,0 +1,30 @@
+package com.jzg.commons.entity.user.vo;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+@Data
+public class UserInfoWithPhone implements Serializable {
+
+
+    @Serial
+    private static final long serialVersionUID = -8342922106296036199L;
+    private String userId;
+
+    private String jzgInfoId;
+
+    private String systemCode;
+
+    // 手机号, sys_user表的userName字段
+    private String userName;
+
+    private String name;
+
+    private String deptTid;
+
+    private String deptName;
+
+
+}

+ 13 - 0
consoleStatistics/src/main/java/com/jzg/console/client/FeeAuditClient.java

@@ -3,6 +3,8 @@ package com.jzg.console.client;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.jzg.commons.core.page.HttpResult;
 import com.jzg.commons.entity.dto.FeeAuditParam;
+import com.jzg.commons.entity.orders.vo.FeeAuditSummaryParam;
+import com.jzg.commons.entity.orders.vo.FeeAuditSummaryVO;
 import com.jzg.commons.entity.orders.vo.FeeAuditVo;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -19,4 +21,15 @@ public interface FeeAuditClient {
      */
     @PostMapping("/feeAudit/auditList")
     HttpResult<Page<FeeAuditVo>> auditList(@RequestBody FeeAuditParam param);
+
+    /**
+     * 查询费用审核统计数据
+     *
+     * @param param
+     * @author lipf
+     * @date 2026/7/24 14:28
+     */
+    @PostMapping("/feeAudit/queryAuditSummary")
+    HttpResult<Page<FeeAuditSummaryVO>> queryAuditSummary(@RequestBody FeeAuditSummaryParam param);
+
 }

+ 26 - 0
consoleStatistics/src/main/java/com/jzg/console/client/OrganizationClient.java

@@ -0,0 +1,26 @@
+package com.jzg.console.client;
+
+import com.jzg.commons.core.page.HttpResult;
+import com.jzg.commons.entity.user.vo.UserInfoWithPhone;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.Map;
+
+/**
+ * 调用 quotation-summary 的订单审核接口 Feign 客户端
+ */
+@FeignClient(value = "jzg-organization")
+public interface OrganizationClient {
+
+    /**
+     * 查询用户基础信息
+     *
+     * @author lipf
+     * @date 2026/7/24 14:10
+     */
+    @PostMapping("/api/v1/organization/queryUserInfo")
+    HttpResult<Map<String, UserInfoWithPhone>> queryUserInfo(@RequestParam("systemCode") String systemCode);
+
+}

+ 2 - 0
consoleStatistics/src/main/java/com/jzg/console/controller/ReportFinanceDataManageController.java

@@ -1,5 +1,6 @@
 package com.jzg.console.controller;
 
+import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.jzg.commons.core.base.BaseController;
@@ -294,6 +295,7 @@ public class ReportFinanceDataManageController extends BaseController {
     @Operation(summary = "财务数据-人员审核-列表查询", description = "财务数据-人员审核-列表查询")
     @PostMapping(value = "/personCheckDataPageList")
     public HttpResult<?> personCheckDataPageList(@RequestBody ReportSearchCommonVo reportSearchCommonVo) {
+        log.info("查询财务人员审核统计信息。 reportSearchCommonVo=[{}]", JSONUtil.toJsonStr(reportSearchCommonVo));
         try{
             IPage<?> pageList = reportPersonCheckDataService.getPageListByParams(reportSearchCommonVo);
             return HttpResult.ok(pageList);

+ 16 - 0
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/controller/InsFeeAuditController.java

@@ -9,6 +9,8 @@ import com.jzg.commons.entity.dto.CostCalculateRespVO;
 import com.jzg.commons.entity.dto.FeeAuditParam;
 import com.jzg.commons.entity.dto.VerifyOrderParam;
 import com.jzg.commons.entity.orders.vo.AuditCostInfoVo;
+import com.jzg.commons.entity.orders.vo.FeeAuditSummaryParam;
+import com.jzg.commons.entity.orders.vo.FeeAuditSummaryVO;
 import com.jzg.commons.entity.orders.vo.FeeAuditVo;
 import com.jzg.commons.entity.quote.vo.aggregated.QuoteEchoVo;
 import com.jzg.commons.entity.vo.PtlAgreementCostRatioVo;
@@ -219,4 +221,18 @@ public class InsFeeAuditController {
         CostCalculateRespVO costCalculateRespVO = insFeeAuditService.computedCostInfo(param);
         return HttpResult.ok(costCalculateRespVO);
     }
+
+    /**
+     * 查询费用审核统计数据
+     *
+     * @param param
+     * @author lipf
+     * @date 2026/7/24 14:28
+     */
+    @PostMapping("/queryAuditSummary")
+    HttpResult<Page<FeeAuditSummaryVO>> queryAuditSummary(@RequestBody FeeAuditSummaryParam param){
+        log.info("查询费用审核统计数据。 FeeAuditSummaryParam=[{}]",JSONUtil.toJsonStr(param));
+        Page<FeeAuditSummaryVO>  res = insFeeAuditService.queryAuditSummary(param);
+        return HttpResult.ok(res);
+    }
 }

+ 12 - 0
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/mapper/InsFeeAuditMapper.java

@@ -1,9 +1,12 @@
 package com.jzg.quotation.summary.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.jzg.commons.entity.dto.FeeAuditParam;
 import com.jzg.commons.entity.orders.po.InsFeeAudit;
+import com.jzg.commons.entity.orders.vo.FeeAuditSummaryParam;
+import com.jzg.commons.entity.orders.vo.FeeAuditSummaryVO;
 import com.jzg.commons.entity.orders.vo.FeeAuditVo;
 import org.apache.ibatis.annotations.Param;
 
@@ -34,6 +37,15 @@ public interface InsFeeAuditMapper extends BaseMapper<InsFeeAudit> {
      * @date 2026/7/16 14:33
      */
     InsFeeAudit selectFeeAuditByOrderNo(@Param("orderNo") String orderNo);
+
+    /**
+     * 查询费用审核汇总记录
+     *
+     * @param param 查询条件
+     * @author lipf
+     * @date 2026/7/24 14:41
+     */
+    Page<FeeAuditSummaryVO> queryAuditSummary(@Param("param") FeeAuditSummaryParam param);
 }
 
 

+ 10 - 0
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/InsFeeAuditService.java

@@ -9,6 +9,8 @@ import com.jzg.commons.entity.dto.VerifyOrderParam;
 import com.jzg.commons.entity.orders.po.InsFeeAudit;
 import com.jzg.commons.entity.orders.po.InsOrders;
 import com.jzg.commons.entity.orders.vo.AuditCostInfoVo;
+import com.jzg.commons.entity.orders.vo.FeeAuditSummaryParam;
+import com.jzg.commons.entity.orders.vo.FeeAuditSummaryVO;
 import com.jzg.commons.entity.orders.vo.FeeAuditVo;
 import com.jzg.commons.entity.quote.vo.aggregated.QuoteEchoVo;
 import com.jzg.commons.entity.vo.PtlAgreementCostRatioVo;
@@ -112,4 +114,12 @@ public interface InsFeeAuditService extends IService<InsFeeAudit> {
     String exportAuditList(FeeAuditParam param);
 
     CostCalculateRespVO computedCostInfo(PtlAgreementCostRatioVo param);
+
+    /**
+     * 查询费用审核统计数据
+     *
+     * @author lipf
+     * @date 2026/7/24 14:33
+     */
+    Page<FeeAuditSummaryVO> queryAuditSummary(FeeAuditSummaryParam param);
 }

+ 27 - 0
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsFeeAuditServiceImpl.java

@@ -17,6 +17,8 @@ import com.jzg.commons.entity.dto.FeeAuditParam;
 import com.jzg.commons.entity.dto.VerifyOrderParam;
 import com.jzg.commons.entity.orders.po.*;
 import com.jzg.commons.entity.orders.vo.AuditCostInfoVo;
+import com.jzg.commons.entity.orders.vo.FeeAuditSummaryParam;
+import com.jzg.commons.entity.orders.vo.FeeAuditSummaryVO;
 import com.jzg.commons.entity.orders.vo.FeeAuditVo;
 import com.jzg.commons.entity.po.*;
 import com.jzg.commons.entity.quote.vo.aggregated.QuoteEchoVo;
@@ -61,7 +63,9 @@ import java.io.File;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.time.Instant;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.concurrent.TimeUnit;
 
@@ -1161,6 +1165,29 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
             }
         });
     }
+
+    /**
+     * 查询费用审核统计数据
+     *
+     * @param param
+     * @author lipf
+     * @date 2026/7/24 14:33
+     */
+    @Override
+    public Page<FeeAuditSummaryVO> queryAuditSummary(FeeAuditSummaryParam param) {
+        if(StrUtil.isNotEmpty(param.getSignTimeStart())){
+            LocalDate start = LocalDate.parse(param.getSignTimeStart(), DateTimeFormatter.ISO_DATE);
+            param.setSignTimeStartTime(start.atStartOfDay());
+        }
+        if(StrUtil.isNotEmpty(param.getSignTimeEnd())){
+            LocalDate start = LocalDate.parse(param.getSignTimeEnd(), DateTimeFormatter.ISO_DATE);
+            param.setSignTimeEndTime(start.plusDays(1).atStartOfDay());
+        }
+        // 1. 创建 Page 对象,从 param 中获取分页信息
+        // Page<FeeAuditSummaryVO> page = new Page<>(param.getPages(), param.getSize());
+        Page<FeeAuditSummaryVO> res = baseMapper.queryAuditSummary(param);
+        return res;
+    }
 }
 
 

+ 28 - 0
tenant/insurance/quotation-summary/src/main/resources/mapper/InsFeeAuditMapper.xml

@@ -302,4 +302,32 @@
         </where>
         ORDER BY io.create_time desc
     </select>
+    <!-- 查询费用审核汇总记录 lipf 2026年7月24日14:42:35 -->
+    <select id="queryAuditSummary" resultType="com.jzg.commons.entity.orders.vo.FeeAuditSummaryVO">
+        select
+        ifa.receive_user,
+        ifa.audit_status,
+        ifa.problem_identify,
+        count(*) as num,
+        sum(ifa.calFee) as calFee,
+        sum(TIMESTAMPDIFF(SECOND, ifa.create_time, ifa.audit_time)) as costTime
+        from (
+            select a.*, if(re_cal_fee_time IS NULL, 0, 1) as calFee,
+            IF(a.problem_time IS NULL, 0, 1) AS problem_identify
+            from
+            ins_fee_audit a
+        ) as ifa
+        left join ins_orders io on
+        ifa.order_no = io.id
+        <where>
+            ifa.receive_user is not null
+            <if test="param.signTimeStartTime != null">
+                and io.sign_time &gt;= #{param.signTimeStartTime}
+            </if>
+            <if test="param.signTimeEndTime != null">
+                and io.sign_time &lt; #{param.signTimeEndTime}
+            </if>
+        </where>
+        group by ifa.receive_user, ifa.audit_status, problem_identify
+    </select>
 </mapper>

+ 15 - 4
tenant/organization/src/main/java/com/jzg/organization/controller/SysUserJzgInfoController.java

@@ -3,15 +3,13 @@ package com.jzg.organization.controller;
 import com.jzg.commons.core.page.HttpResult;
 import com.jzg.commons.entity.po.SysUserJzgInfo;
 
+import com.jzg.commons.entity.user.vo.UserInfoWithPhone;
 import com.jzg.organization.service.SysUserJzgInfoService;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
 import java.util.Map;
@@ -50,4 +48,17 @@ public class SysUserJzgInfoController {
     public HttpResult<Map<String,String>> queryJzgInfoId2UserId(@RequestBody List<String> jzgInfoTids){
         return HttpResult.ok(sysUserJzgInfoService.queryJzgInfoId2UserId(jzgInfoTids));
     }
+
+    /**
+     * 查询用户基础信息
+     *
+     * @author lipf
+     * @date 2026/7/24 14:10
+     */
+    @PostMapping("/api/v1/organization/queryUserInfo")
+    HttpResult<Map<String, UserInfoWithPhone>> queryUserInfo(@RequestParam("systemCode") String systemCode){
+        return HttpResult.ok(sysUserJzgInfoService.queryUserInfo(systemCode));
+    }
+
+
 }

+ 9 - 0
tenant/organization/src/main/java/com/jzg/organization/mapper/SysUserJzgInfoMapper.java

@@ -6,6 +6,7 @@ import com.jzg.commons.entity.dto.PartnerReviewParam;
 import com.jzg.commons.entity.dto.SysUserJzgInfoDto;
 import com.jzg.commons.entity.po.SysUserJzgInfo;
 import com.jzg.commons.entity.user.vo.SysTennatVo;
+import com.jzg.commons.entity.user.vo.UserInfoWithPhone;
 import com.jzg.commons.entity.vo.*;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
@@ -85,4 +86,12 @@ public interface SysUserJzgInfoMapper extends BaseMapper<SysUserJzgInfo> {
      * @date 2026/4/24 15:36
      */
     void updateUserByUserId(@Param("userId") String userId);
+
+    /**
+     * 查询用户信息
+     *
+     * @author lipf
+     * @date 2026/7/24 14:15
+     */
+    List<UserInfoWithPhone> queryUserInfos(String systemCode);
 }

+ 9 - 0
tenant/organization/src/main/java/com/jzg/organization/service/SysUserJzgInfoService.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.jzg.commons.entity.dto.PartnerReviewParam;
 import com.jzg.commons.entity.po.SysUserJzgInfo;
+import com.jzg.commons.entity.user.vo.UserInfoWithPhone;
 import com.jzg.commons.entity.vo.PartnerRecommenderVo;
 
 import java.util.List;
@@ -70,4 +71,12 @@ public interface SysUserJzgInfoService extends IService<SysUserJzgInfo> {
      * @date 2026/6/30 14:15
      */
     Map<String, String> queryJzgInfoId2UserId(List<String> jzgInfoTids);
+
+    /**
+     * 查询用户基础信息
+     *
+     * @author lipf
+     * @date 2026/7/24 14:10
+     */
+    Map<String, UserInfoWithPhone> queryUserInfo(String systemCode);
 }

+ 26 - 0
tenant/organization/src/main/java/com/jzg/organization/service/impl/SysUserJzgInfoServiceImpl.java

@@ -1,14 +1,18 @@
 package com.jzg.organization.service.impl;
 
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.jzg.commons.entity.dto.PartnerReviewParam;
 import com.jzg.commons.entity.po.SysUserJzgInfo;
+import com.jzg.commons.entity.user.vo.UserInfoWithPhone;
 import com.jzg.commons.entity.vo.PartnerRecommenderVo;
 import com.jzg.organization.mapper.SysUserJzgInfoMapper;
 import com.jzg.organization.service.SysUserJzgInfoService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -16,6 +20,8 @@ import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.function.Function;
+import java.util.stream.Collectors;
 
 /**
  * @author quchen
@@ -25,6 +31,8 @@ import java.util.Map;
 @Service
 public class SysUserJzgInfoServiceImpl extends ServiceImpl<SysUserJzgInfoMapper, SysUserJzgInfo> implements SysUserJzgInfoService {
 
+    private static final Logger log = LoggerFactory.getLogger(SysUserJzgInfoServiceImpl.class);
+
     @Autowired
     private SysUserJzgInfoMapper sysUserJzgInfoMapper;
 
@@ -131,4 +139,22 @@ public class SysUserJzgInfoServiceImpl extends ServiceImpl<SysUserJzgInfoMapper,
         }
         return res;
     }
+
+
+    /**
+     * 查询用户基础信息
+     *
+     * @param systemCode
+     * @author lipf
+     * @date 2026/7/24 14:10
+     */
+    @Override
+    public Map<String, UserInfoWithPhone> queryUserInfo(String systemCode) {
+        List<UserInfoWithPhone> userInfos = baseMapper.queryUserInfos(systemCode);
+
+        Map<String, UserInfoWithPhone> res = userInfos.stream().filter(action -> StrUtil.isNotEmpty(action.getUserName()))
+                .collect(Collectors.toMap(UserInfoWithPhone::getUserName, Function.identity(), (oldItem, newItem) -> oldItem));
+        log.info("查询租户[{}]下有效的用户[{}]个", systemCode, CollUtil.size(res));
+        return res;
+    }
 }

+ 20 - 0
tenant/organization/src/main/resources/mapper/SysUserJzgInfoMapper.xml

@@ -492,5 +492,25 @@
             AND sa.type_attr = 3
         </where>
     </select>
+    <!-- 查询用户信息 lipf 2026年7月24日14:12:19 -->
+    <select id="queryUserInfos" resultType="com.jzg.commons.entity.user.vo.UserInfoWithPhone">
+        select
+        su.id as user_id,
+        suji.id as jzg_info_id,
+        suji.system_code,
+        su.username ,
+        suji.name ,
+        suji.dept_id ,
+        sd.name
+        from
+        sys_user su
+        left join sys_user_jzg_info suji on
+        su.id = suji.user_id
+        and suji.system_code = #{systemCode}
+        left join sys_dept sd
+        on sd.id = suji.dept_id
+        and sd.system_code = suji.system_code
+        where suji.system_code is not null
+    </select>
 
 </mapper>