Kaynağa Gözat

加入月考勤功能

java110 5 yıl önce
ebeveyn
işleme
89897b7c2d

+ 83 - 0
java110-db/src/main/resources/mapper/report/ReportAttendanceServiceDaoImplMapper.xml

@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="reportFeeServiceDaoImpl">
+
+    <!-- 查询实收金额 -->
+    <select id="getMonthAttendanceCount" parameterType="Map" resultType="Map">
+        select count(1) count from (
+        select distinct t.staff_id
+        from attendance_classes_task t
+        left join u_user s on t.staff_id = s.user_id and s.status_cd = '0'
+        left join u_org_staff_rel uosr on uosr.staff_id = s.user_id and uosr.status_cd = '0'
+        left join u_org uo on uosr.org_id = uo.org_id and uo.status_cd = '0'
+        where 1 =1
+        and t.status_cd = '0'
+        <if test="staffName !=null and staffName != ''">
+            and s.staff_name like concat('%',#{staffName},'%')
+        </if>
+        <if test="departmentId !=null and departmentId != ''">
+            and uo.org_id = #{departmentId}
+        </if>
+        <if test="taskId !=null and taskId != ''">
+            and t.task_id= #{taskId}
+        </if>
+        <if test="classId !=null and classId != ''">
+            and t.class_id= #{classId}
+        </if>
+        <if test="staffId !=null and staffId != ''">
+            and t.staff_id= #{staffId}
+        </if>
+        <if test="taskYear !=null and taskYear != ''">
+            and t.task_year= #{taskYear}
+        </if>
+        <if test="taskMonth !=null and taskMonth != ''">
+            and t.task_month= #{taskMonth}
+        </if>
+        ) tt
+    </select>
+
+    <!-- 查询房屋个数 add by wuxw 2018-07-03 -->
+    <select id="getMonthAttendance" parameterType="Map" resultType="Map">
+        select distinct t.class_id classId,t.staff_id staffId,
+        s.name staffName,uo.org_name departmentName,
+        (select count(1) from attendance_classes_task_detail b where t.task_id = b.task_id and b.state = '10000')
+        noClockIn,
+        (select count(1) from attendance_classes_task_detail b where t.task_id = b.task_id and b.state = '30000')
+        clockIn,
+        (select count(1) from attendance_classes_task_detail b where t.task_id = b.task_id and b.state = '40000') late,
+        (select count(1) from attendance_classes_task_detail b where t.task_id = b.task_id and b.state = '50000') early,
+        (select count(1) from attendance_classes_task_detail b where t.task_id = b.task_id and b.state = '60000') free
+        from attendance_classes_task t
+        left join u_user s on t.staff_id = s.user_id and s.status_cd = '0'
+        left join u_org_staff_rel uosr on uosr.staff_id = s.user_id and uosr.status_cd = '0'
+        left join u_org uo on uosr.org_id = uo.org_id and uo.status_cd = '0'
+        where 1 =1
+        and t.status_cd = '0'
+        <if test="staffName !=null and staffName != ''">
+            and s.staff_name like concat('%',#{staffName},'%')
+        </if>
+        <if test="departmentId !=null and departmentId != ''">
+            and uo.org_id = #{departmentId}
+        </if>
+        <if test="taskId !=null and taskId != ''">
+            and t.task_id= #{taskId}
+        </if>
+        <if test="classId !=null and classId != ''">
+            and t.class_id= #{classId}
+        </if>
+        <if test="staffId !=null and staffId != ''">
+            and t.staff_id= #{staffId}
+        </if>
+        <if test="taskYear !=null and taskYear != ''">
+            and t.task_year= #{taskYear}
+        </if>
+        <if test="taskMonth !=null and taskMonth != ''">
+            and t.task_month= #{taskMonth}
+        </if>
+        <if test="page != -1 and page != null ">
+            limit #{page}, #{row}
+        </if>
+    </select>
+</mapper>

+ 5 - 5
java110-interface/src/main/java/com/java110/intf/report/IAttendanceInnerServiceSMO.java

@@ -22,8 +22,8 @@ import java.util.List;
  * add by wuxw 2019/4/24
  * add by wuxw 2019/4/24
  **/
  **/
 @FeignClient(name = "report-service", configuration = {FeignConfiguration.class})
 @FeignClient(name = "report-service", configuration = {FeignConfiguration.class})
-@RequestMapping("/attendanceInnerServiceApi")
-public interface IAttendanceInnerServiceSMO {
+@RequestMapping("/reportAttendanceInnerServiceApi")
+public interface IReportAttendanceInnerServiceSMO {
 
 
 
 
 
 
@@ -35,16 +35,16 @@ public interface IAttendanceInnerServiceSMO {
      * @return FeeConfigDto 对象数据
      * @return FeeConfigDto 对象数据
      */
      */
     @RequestMapping(value = "/getMonthAttendanceCount", method = RequestMethod.POST)
     @RequestMapping(value = "/getMonthAttendanceCount", method = RequestMethod.POST)
-    long getMonthAttendanceCount(@RequestBody AttendanceClassesTaskDto attendanceClassesTaskDto);
+    int getMonthAttendanceCount(@RequestBody AttendanceClassesTaskDto attendanceClassesTaskDto);
 
 
     /**
     /**
-     * <p>查询小区楼信息</p>
+     * <p>查询月考勤数量</p>
      *
      *
      *
      *
      * @param attendanceClassesTaskDto 数据对象分享
      * @param attendanceClassesTaskDto 数据对象分享
      * @return FeeConfigDto 对象数据
      * @return FeeConfigDto 对象数据
      */
      */
     @RequestMapping(value = "/getMonthAttendance", method = RequestMethod.POST)
     @RequestMapping(value = "/getMonthAttendance", method = RequestMethod.POST)
-    List<FeeConfigDto> getMonthAttendance(@RequestBody AttendanceClassesTaskDto attendanceClassesTaskDto);
+    List<AttendanceClassesTaskDto> getMonthAttendance(@RequestBody AttendanceClassesTaskDto attendanceClassesTaskDto);
 
 
 }
 }

+ 2 - 1
service-common/src/main/java/com/java110/common/api/AttendanceClassApi.java

@@ -253,7 +253,8 @@ public class AttendanceClassApi {
 
 
     /**
     /**
      * 添加设备接口类
      * 添加设备接口类
-     *
+     * @serviceCode /attendanceClass/getMonthAttendance
+     * @path /app/attendanceClass/getMonthAttendance
      * @return 成功或者失败
      * @return 成功或者失败
      * @throws Exception
      * @throws Exception
      */
      */

+ 18 - 1
service-common/src/main/java/com/java110/common/bmo/attendanceClassesTaskDetail/impl/GetAttendanceClassesTaskDetailBMOImpl.java

@@ -4,6 +4,7 @@ import com.java110.common.bmo.attendanceClassesTaskDetail.IGetAttendanceClassesT
 import com.java110.dto.attendanceClassesTask.AttendanceClassesTaskDto;
 import com.java110.dto.attendanceClassesTask.AttendanceClassesTaskDto;
 import com.java110.dto.attendanceClassesTaskDetail.AttendanceClassesTaskDetailDto;
 import com.java110.dto.attendanceClassesTaskDetail.AttendanceClassesTaskDetailDto;
 import com.java110.intf.common.IAttendanceClassesTaskDetailInnerServiceSMO;
 import com.java110.intf.common.IAttendanceClassesTaskDetailInnerServiceSMO;
+import com.java110.intf.report.IReportAttendanceInnerServiceSMO;
 import com.java110.vo.ResultVo;
 import com.java110.vo.ResultVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.HttpStatus;
@@ -19,6 +20,9 @@ public class GetAttendanceClassesTaskDetailBMOImpl implements IGetAttendanceClas
     @Autowired
     @Autowired
     private IAttendanceClassesTaskDetailInnerServiceSMO attendanceClassesTaskDetailInnerServiceSMOImpl;
     private IAttendanceClassesTaskDetailInnerServiceSMO attendanceClassesTaskDetailInnerServiceSMOImpl;
 
 
+    @Autowired
+    private IReportAttendanceInnerServiceSMO reportAttendanceInnerServiceSMOImpl;
+
     /**
     /**
      * @param attendanceClassesTaskDetailDto
      * @param attendanceClassesTaskDetailDto
      * @return 订单服务能够接受的报文
      * @return 订单服务能够接受的报文
@@ -44,7 +48,20 @@ public class GetAttendanceClassesTaskDetailBMOImpl implements IGetAttendanceClas
 
 
     @Override
     @Override
     public ResponseEntity<String> getMonthAttendance(AttendanceClassesTaskDto attendanceClassesTaskDto) {
     public ResponseEntity<String> getMonthAttendance(AttendanceClassesTaskDto attendanceClassesTaskDto) {
-        return null;
+        int count = reportAttendanceInnerServiceSMOImpl.getMonthAttendanceCount(attendanceClassesTaskDto);
+
+        List<AttendanceClassesTaskDto> attendanceClassesTaskDtos = null;
+        if (count > 0) {
+            attendanceClassesTaskDtos = reportAttendanceInnerServiceSMOImpl.getMonthAttendance(attendanceClassesTaskDto);
+        } else {
+            attendanceClassesTaskDtos = new ArrayList<>();
+        }
+
+        ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) attendanceClassesTaskDto.getRow()), count, attendanceClassesTaskDtos);
+
+        ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
+
+        return responseEntity;
     }
     }
 
 
 }
 }

+ 28 - 0
service-report/src/main/java/com/java110/report/dao/IReportAttendanceServiceDao.java

@@ -0,0 +1,28 @@
+package com.java110.report.dao;
+
+import com.java110.dto.attendanceClassesTask.AttendanceClassesTaskDto;
+import com.java110.dto.fee.FeeConfigDto;
+import com.java110.dto.report.ReportFeeDetailDto;
+import com.java110.dto.report.ReportFeeDto;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @ClassName ICommunityServiceDao
+ * @Description TODO
+ * @Author wuxw
+ * @Date 2020/10/15 22:10
+ * @Version 1.0
+ * add by wuxw 2020/10/15
+ **/
+public interface IReportAttendanceServiceDao {
+
+
+
+     int getMonthAttendanceCount(Map info);
+
+
+     List<Map> getMonthAttendance(Map info);
+}

+ 50 - 0
service-report/src/main/java/com/java110/report/dao/impl/ReportAttendanceServiceDaoImpl.java

@@ -0,0 +1,50 @@
+package com.java110.report.dao.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.base.dao.BaseServiceDao;
+import com.java110.dto.report.ReportFeeDetailDto;
+import com.java110.dto.report.ReportFeeDto;
+import com.java110.report.dao.IReportAttendanceServiceDao;
+import com.java110.report.dao.IReportFeeServiceDao;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @ClassName ReportCommunityServiceDaoImpl
+ * @Description TODO
+ * @Author wuxw
+ * @Date 2020/10/15 22:15
+ * @Version 1.0
+ * add by wuxw 2020/10/15
+ **/
+@Service("reportAttendanceServiceDaoImpl")
+public class ReportAttendanceServiceDaoImpl extends BaseServiceDao implements IReportAttendanceServiceDao {
+
+    private static Logger logger = LoggerFactory.getLogger(ReportAttendanceServiceDaoImpl.class);
+
+    @Override
+    public int getMonthAttendanceCount(Map info) {
+        logger.debug("查询费用月统计数据 入参 info : {}", JSONObject.toJSONString(info));
+
+        List<Map> businessReportFeeMonthStatisticsInfos = sqlSessionTemplate.selectList("reportAttendanceServiceDaoImpl.getMonthAttendanceCount", info);
+        if (businessReportFeeMonthStatisticsInfos.size() < 1) {
+            return 0;
+        }
+
+        return Integer.parseInt(businessReportFeeMonthStatisticsInfos.get(0).get("count").toString());
+    }
+
+    @Override
+    public List<Map> getMonthAttendance(Map info) {
+        logger.debug("查询费用信息 入参 info : {}", JSONObject.toJSONString(info));
+
+        List<Map> roomDtos = sqlSessionTemplate.selectList("reportAttendanceServiceDaoImpl.getMonthAttendance", info);
+
+        return roomDtos;
+    }
+
+}

+ 41 - 0
service-report/src/main/java/com/java110/report/smo/impl/ReportAttendanceInnerServiceSMOImpl.java

@@ -0,0 +1,41 @@
+package com.java110.report.smo.impl;
+
+
+import com.java110.core.base.smo.BaseServiceSMO;
+import com.java110.dto.attendanceClassesTask.AttendanceClassesTaskDto;
+import com.java110.dto.fee.FeeConfigDto;
+import com.java110.intf.report.IReportAttendanceInnerServiceSMO;
+import com.java110.report.dao.IReportAttendanceServiceDao;
+import com.java110.report.dao.IReportFeeMonthStatisticsServiceDao;
+import com.java110.utils.util.BeanConvertUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * @ClassName FloorInnerServiceSMOImpl
+ * @Description 费用月统计内部服务实现类
+ * @Author wuxw
+ * @Date 2019/4/24 9:20
+ * @Version 1.0
+ * add by wuxw 2019/4/24
+ **/
+@RestController
+public class ReportAttendanceInnerServiceSMOImpl extends BaseServiceSMO implements IReportAttendanceInnerServiceSMO {
+
+    @Autowired
+    private IReportAttendanceServiceDao reportAttendanceServiceDaoImpl;
+
+
+    @Override
+    public int getMonthAttendanceCount(@RequestBody  AttendanceClassesTaskDto attendanceClassesTaskDto) {
+        return reportAttendanceServiceDaoImpl.getMonthAttendanceCount(BeanConvertUtil.beanCovertMap(attendanceClassesTaskDto));
+    }
+
+    @Override
+    public List<AttendanceClassesTaskDto> getMonthAttendance(@RequestBody AttendanceClassesTaskDto attendanceClassesTaskDto) {
+        return BeanConvertUtil.covertBeanList(reportAttendanceServiceDaoImpl.getMonthAttendance(BeanConvertUtil.beanCovertMap(attendanceClassesTaskDto)),AttendanceClassesTaskDto.class);
+    }
+}