Pārlūkot izejas kodu

task-4651 新增接口
考勤统计,表单-人员能力评估表

xiexh 9 mēneši atpakaļ
vecāks
revīzija
41118d55a7

+ 4 - 0
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/sqlzdy/Service/SwdlService.java

@@ -24,7 +24,11 @@ public interface SwdlService {
 
     APIResult queryAttendanceData(@RequestBody(required = true) Map<String,Object> map)throws Exception ;
 
+    APIResult queryAttendance2Data(@RequestBody(required = true) Map<String,Object> map)throws Exception ;
+
     APIResult queryClassAdjustmentList(@RequestBody(required = true) Map<String,Object> map)throws Exception ;
 
     APIResult queryUserCommunicateList(@RequestBody(required = true) Map<String,Object> map)throws Exception ;
+
+    APIResult queryUserassessmentList(@RequestBody(required = true) Map<String, Object> map)throws Exception ;
 }

+ 73 - 2
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/sqlzdy/Service/SwdlServiceImpl.java

@@ -224,7 +224,32 @@ public class SwdlServiceImpl extends GenericProvider implements SwdlService {
         }
         return result;
     }
+    @Override
+    public APIResult queryAttendance2Data(
+            @ApiParam(name = "request", value = "传入查询请求map对象", required = true)
+            @RequestBody(required = true) Map<String,Object> map) throws Exception  {
+        APIResult<Object> result = new APIResult<>();
+        try {
+            int pageNo = Integer.parseInt(map.get("pageNo").toString());
+            int limit = Integer.parseInt(map.get("limit").toString());
+            int startPage = limit*(pageNo-1);
+            map.put("startPage",startPage);
 
+            Map paramMap= getAttendanceMap(map);
+            List<Map<String,Object>> list = updateDataTableDao.selectAttendance2Data(paramMap);
+            int totalCount = updateDataTableDao.selectAttendance2DataCount(map);
+            APIPageList<Map<String,Object>> pageList = getAPIPageList(list);
+            APIPageResult pageResult = new APIPageResult();
+            pageResult.setTotalCount(totalCount);
+            pageResult.setLimit(limit);
+            pageResult.setPage(pageNo);
+            pageList.setPageResult(pageResult);
+            result.setData(pageList);
+        } catch (Exception e) {
+            setExceptionResult(result, StateEnum.ERROR_FORM_BO.getCode(), I18nUtil.getMessage(StateEnum.ERROR_FORM_BO.getCode()+""), e);
+        }
+        return result;
+    }
     @Override
     public APIResult queryClassAdjustmentList(
             @ApiParam(name = "request", value = "传入查询请求map对象", required = true)
@@ -310,6 +335,48 @@ public class SwdlServiceImpl extends GenericProvider implements SwdlService {
         }
         return result;
     }
+
+    @Override
+        public APIResult queryUserassessmentList(
+                @ApiParam(name = "request", value = "传入查询请求map对象", required = true)
+                @RequestBody(required = true) Map<String,Object> map) throws Exception  {
+            APIResult<Object> result = new APIResult<>();
+            try {
+                int pageNo = Integer.parseInt(map.get("pageNo").toString());
+                int limit = Integer.parseInt(map.get("limit").toString());
+                int startPage = limit*(pageNo-1);
+                map.put("startPage",startPage);
+                HashMap<String, Object> stringObjectHashMap = new HashMap<>();
+                if (BeanUtils.isNotEmpty(map)) {
+                    stringObjectHashMap.put("pageNo", map.get("pageNo"));
+                    stringObjectHashMap.put("limit", map.get("limit"));
+                    stringObjectHashMap.put("startPage", map.get("startPage"));
+                    if(BeanUtils.isNotEmpty(map.get("param"))){
+                        Map param = (Map) map.get("param");
+                        if(BeanUtils.isNotEmpty(param.get("bianZhiBuMen"))){
+                            stringObjectHashMap.put("bianZhiBuMen",param.get("bianZhiBuMen"));
+                        }
+                        if(BeanUtils.isNotEmpty(param.get("gangWei"))){
+                            stringObjectHashMap.put("gangWei", String.join(",", (ArrayList)param.get("gangWei")));
+                        }
+                    }
+                }
+
+                List<Map<String,Object>> list = updateDataTableDao.queryUserassessmentList(stringObjectHashMap);
+                int totalCount = updateDataTableDao.queryUserassessmentListCount(stringObjectHashMap);
+                APIPageList<Map<String,Object>> pageList = getAPIPageList(list);
+                APIPageResult pageResult = new APIPageResult();
+                pageResult.setTotalCount(totalCount);
+                pageResult.setLimit(limit);
+                pageResult.setPage(pageNo);
+                pageList.setPageResult(pageResult);
+                result.setData(pageList);
+            } catch (Exception e) {
+                setExceptionResult(result, StateEnum.ERROR_FORM_BO.getCode(), I18nUtil.getMessage(StateEnum.ERROR_FORM_BO.getCode()+""), e);
+            }
+            return result;
+        }
+
     private Map getAttendanceMap(Map<String, Object> map) {
         HashMap<String, Object> stringObjectHashMap = new HashMap<>();
         if (BeanUtils.isNotEmpty(map)) {
@@ -319,7 +386,6 @@ public class SwdlServiceImpl extends GenericProvider implements SwdlService {
             stringObjectHashMap.put("locationId", getDiDian());
             if(BeanUtils.isNotEmpty(map.get("param"))){
                 Map param = (Map) map.get("param");
-                String buMen = (String) param.get("buMen");
                 if(BeanUtils.isNotEmpty(param.get("locationId"))){
                     stringObjectHashMap.put("locationId", param.get("locationId"));
                 }else{
@@ -328,9 +394,14 @@ public class SwdlServiceImpl extends GenericProvider implements SwdlService {
                 if(BeanUtils.isNotEmpty(param.get("yongHuId"))){
                     stringObjectHashMap.put("yongHuId", String.join(",", (ArrayList)param.get("yongHuId")));
                 }
+                if(BeanUtils.isNotEmpty(param.get("gongHao"))){
+                    stringObjectHashMap.put("gongHao",param.get("gongHao"));
+                }
+                if(BeanUtils.isNotEmpty(param.get("buMen"))){
+                    stringObjectHashMap.put("buMen",param.get("buMen"));
+                }
                 stringObjectHashMap.put("startDate",param.get("kaishiJianShiJ^S"));
                 stringObjectHashMap.put("endDate",param.get("kaishiJianShiJ^E"));
-
             }
         }
         return stringObjectHashMap;

+ 25 - 1
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/sqlzdy/control/SwdlController.java

@@ -79,7 +79,7 @@ public class SwdlController extends GenericProvider {
         return result;
 
     }
-    @ApiOperation("考勤概况统计")
+    @ApiOperation("考勤概况")
     @PostMapping("/attendance/queryData")
     APIResult queryAttendanceData(@RequestBody(required = true) Map<String,Object> map) throws Exception{
         APIResult result = new APIResult<>();
@@ -90,6 +90,18 @@ public class SwdlController extends GenericProvider {
         }
         return result;
 
+    }
+    @ApiOperation("考勤统计")
+    @PostMapping("/attendance2/queryData")
+    APIResult queryAttendance2Data(@RequestBody(required = true) Map<String,Object> map) throws Exception{
+        APIResult result = new APIResult<>();
+        try {
+            result = swdlService.queryAttendance2Data(map);
+        } catch (Exception e) {
+            setExceptionResult(result, StateEnum.ILLEGAL_REQUEST.getCode(), I18nUtil.getMessage(StateEnum.ILLEGAL_REQUEST.getCode() + ""), e);
+        }
+        return result;
+
     }
     @ApiOperation("移动端-调班列表查询")
     @PostMapping("/mobile/adjust/queryData")
@@ -115,4 +127,16 @@ public class SwdlController extends GenericProvider {
         return result;
 
     }
+    @ApiOperation("表单-人员能力评估表")
+    @PostMapping("/capability/assessment/queryData")
+    APIResult queryUserassessmentList(@RequestBody(required = true) Map<String,Object> map) throws Exception{
+        APIResult result = new APIResult<>();
+        try {
+            result = swdlService.queryUserassessmentList(map);
+        } catch (Exception e) {
+            setExceptionResult(result, StateEnum.ILLEGAL_REQUEST.getCode(), I18nUtil.getMessage(StateEnum.ILLEGAL_REQUEST.getCode() + ""), e);
+        }
+        return result;
+
+    }
 }

+ 9 - 0
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/sysdata/dao/UpdateDataTableDao.java

@@ -99,6 +99,10 @@ public interface UpdateDataTableDao {
 
     int selectAttendanceDataCount(@Param("map") Map<String, Object> map);
 
+    List<Map<String, Object>> selectAttendance2Data(@Param("map") Map<String, Object> map);
+
+    int selectAttendance2DataCount(@Param("map") Map<String, Object> map);
+
     List<Map<String, Object>> selectClassAdjustmentList(@Param("map") Map<String, Object> map);
 
     int selectClassAdjustmentListCount(@Param("map") Map<String, Object> map);
@@ -107,4 +111,9 @@ public interface UpdateDataTableDao {
     List<Map<String, Object>> queryUserCommunicateList(@Param("map")  Map<String, Object> map);
 
     int queryUserCommunicateListCount(@Param("map") Map<String, Object> map);
+
+    List<Map<String, Object>> queryUserassessmentList(@Param("map") HashMap<String, Object> map);
+
+    int queryUserassessmentListCount(@Param("map") HashMap<String, Object> map);
+
 }

+ 127 - 0
ibps-provider-root/modules/provider-business/src/main/resources/com/lc/ibps/klimsibps/mapping/UpdateDataTableMapper.xml

@@ -724,4 +724,131 @@
             </if>
         </where>
     </select>
+    <select id="queryUserassessmentList" resultType="java.util.Map" parameterType="java.util.Map">
+        SELECT
+        id_,
+        kao_he_lei_xing_,
+        kao_he_lei_mu_,
+        kao_he_nei_rong_ ,
+        gang_wei_
+        FROM
+        t_jyrykhpzzb
+        <where>
+            parent_id_ = ( SELECT id_ FROM t_jyrykhpzb WHERE bian_zhi_bu_men_ = #{map.bianZhiBuMen} ORDER BY create_time_ DESC LIMIT 1 )
+            <if test="@o.Ognl@isNotEmpty(map.gangWei)">
+                AND (FIND_IN_SET(gang_wei_, #{map.gangWei}) OR (gang_wei_ IS NULL OR gang_wei_ = ''))
+            </if>
+            <if test="@o.Ognl@isEmpty(map.gangWei)">
+                AND (gang_wei_ IS NULL OR gang_wei_ = '')
+            </if>
+        </where>
+        limit ${map.startPage},${map.limit}
+    </select>
+    <select id="queryUserassessmentListCount" resultType="java.lang.Integer" parameterType="java.util.Map">
+        SELECT
+        count(*)
+        FROM
+        t_jyrykhpzzb
+        <where>
+            parent_id_ = ( SELECT id_ FROM t_jyrykhpzb WHERE bian_zhi_bu_men_ = #{map.bianZhiBuMen} ORDER BY create_time_ DESC LIMIT 1 )
+            <if test="@o.Ognl@isNotEmpty(map.gangWei)">
+                AND (FIND_IN_SET(gang_wei_, #{map.gangWei}) OR (gang_wei_ IS NULL OR gang_wei_ = ''))
+            </if>
+            <if test="@o.Ognl@isEmpty(map.gangWei)">
+                AND (gang_wei_ IS NULL OR gang_wei_ = '')
+            </if>
+        </where>
+    </select>
+    <select id="selectAttendance2Data" resultType="java.util.Map" parameterType="java.util.Map">
+        SELECT
+        (
+        SELECT
+        COUNT( DISTINCT USER_ID_ )
+        FROM
+        v_attendance_statistics
+        <where>
+            di_dian_ = #{map.locationId}
+            <if test="@o.Ognl@isNotEmpty(map.buMen)">
+                AND bu_men_ like CONCAT('%', #{map.buMen}, '%')
+            </if>
+            <if test="@o.Ognl@isNotEmpty(map.startDate)">
+                AND ri_qi_ >= #{map.startDate}
+            </if>
+            <if test="@o.Ognl@isNotEmpty(map.endDate)">
+                AND ri_qi_ <![CDATA[ <= ]]> #{map.endDate}
+            </if>
+            <if test="@o.Ognl@isNotEmpty(map.yongHuId)">
+                AND FIND_IN_SET(yong_hu_id_, #{map.yongHuId})
+            </if>
+            <if test="@o.Ognl@isNotEmpty(map.gongHao)">
+                AND gong_hao_ = #{map.gongHao}
+            </if>
+        </where>
+        ) AS total_count,
+        USER_ID_,
+        ri_qi_,
+        user_name_,
+        pos_name_,
+        gong_hao_,
+        COUNT( ri_qi_ ) AS ying_chu_qin_shu,
+        SUM( CASE WHEN ( da_ka_shi_jian_1_ IS NULL OR da_ka_shi_jian_1_ = '' ) AND ( da_ka_shi_jian_2_ IS NULL OR da_ka_shi_jian_2_ = '' ) THEN 1 ELSE 0 END ) AS xiu_xi_shu,
+        COUNT( ri_qi_ ) - SUM( CASE WHEN ( da_ka_shi_jian_1_ IS NULL OR da_ka_shi_jian_1_ = '' ) AND ( da_ka_shi_jian_2_ IS NULL OR da_ka_shi_jian_2_ = '' ) THEN 1 ELSE 0 END ) AS shi_ji_chu_qin_shu,
+        SUM( kao_qin_zhuang_ta ) AS zheng_chang_shu,
+        SUM( CASE WHEN kao_qin_zhuang_ta = '异常' OR kao_qin_zhuang_ta IS NULL OR kao_qin_zhuang_ta = '' THEN 1 ELSE 0 END ) AS yi_chang_shu,
+        ROUND( SUM( ban_ci_shi_chang_ ) / 60.0, 2 ) AS total_ban_ci_shi_chang,
+        ROUND( SUM( gong_zuo_shi_chan ) / 60.0, 2 ) AS total_gong_zuo_shi_chan,
+        SUM( CASE WHEN zhuang_tai_1_ = '异常' OR zhuang_tai_2_ = '异常' THEN 1 ELSE 0 END ) AS chi_dao_ci_shu,
+        SUM( chi_dao_shi_chang ) AS total_chi_dao_shi_chang,
+        SUM( CASE WHEN zhuang_tai_1_ IS NULL OR zhuang_tai_1_ = '' THEN 1 ELSE 0 END ) + SUM( CASE WHEN zhuang_tai_2_ IS NULL OR zhuang_tai_2_ = '' THEN 1 ELSE 0 END ) AS kuang_gong_ci_shu,
+        SUM( CASE WHEN zhuang_tai_1_ = '异常' THEN 1 ELSE 0 END ) + SUM( CASE WHEN zhuang_tai_2_ = '异常' THEN 1 ELSE 0 END ) + SUM( CASE WHEN zhuang_tai_1_ IS NULL OR zhuang_tai_1_ = '' THEN 1 ELSE 0 END ) + SUM( CASE WHEN zhuang_tai_2_ IS NULL OR zhuang_tai_2_ = '' THEN 1 ELSE 0 END ) AS yi_chang_he_ji
+        FROM
+        v_attendance_statistics
+        <where>
+            di_dian_ = #{map.locationId}
+            <if test="@o.Ognl@isNotEmpty(map.buMen)">
+                AND bu_men_ like CONCAT('%', #{map.buMen}, '%')
+            </if>
+            <if test="@o.Ognl@isNotEmpty(map.startDate)">
+                AND ri_qi_ >= #{map.startDate}
+            </if>
+            <if test="@o.Ognl@isNotEmpty(map.endDate)">
+                AND ri_qi_ <![CDATA[ <= ]]> #{map.endDate}
+            </if>
+            <if test="@o.Ognl@isNotEmpty(map.yongHuId)">
+                AND FIND_IN_SET(yong_hu_id_, #{map.yongHuId})
+            </if>
+            <if test="@o.Ognl@isNotEmpty(map.gongHao)">
+                AND gong_hao_ = #{map.gongHao}
+            </if>
+        </where>
+        GROUP BY
+        USER_ID_
+        ORDER BY
+        USER_ID_
+        limit ${map.startPage},${map.limit}
+    </select>
+    <select id="selectAttendance2DataCount" resultType="java.lang.Integer" parameterType="java.util.Map">
+        SELECT
+        count(*)
+        FROM
+        v_attendance_statistics
+        <where>
+            di_dian_ = #{map.locationId}
+            <if test="@o.Ognl@isNotEmpty(map.buMen)">
+                AND bu_men_ like CONCAT('%', #{map.buMen}, '%')
+            </if>
+            <if test="@o.Ognl@isNotEmpty(map.startDate)">
+                AND ri_qi_ >= #{map.startDate}
+            </if>
+            <if test="@o.Ognl@isNotEmpty(map.endDate)">
+                AND ri_qi_ <![CDATA[ <= ]]> #{map.endDate}
+            </if>
+            <if test="@o.Ognl@isNotEmpty(map.yongHuId)">
+                AND FIND_IN_SET(yong_hu_id_, #{map.yongHuId})
+            </if>
+            <if test="@o.Ognl@isNotEmpty(map.gongHao)">
+                AND gong_hao_ = #{map.gongHao}
+            </if>
+        </where>
+    </select>
 </mapper>