diff --git a/src/main/java/com/zhgd/xmgl/modules/realnamestatistics/controller/ProjectOperationsAnalysisController.java b/src/main/java/com/zhgd/xmgl/modules/realnamestatistics/controller/ProjectOperationsAnalysisController.java index 54bf6026f..67994e4e1 100644 --- a/src/main/java/com/zhgd/xmgl/modules/realnamestatistics/controller/ProjectOperationsAnalysisController.java +++ b/src/main/java/com/zhgd/xmgl/modules/realnamestatistics/controller/ProjectOperationsAnalysisController.java @@ -15,6 +15,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -73,19 +74,22 @@ public class ProjectOperationsAnalysisController { @ApiOperation(value = " 查询考勤统计列表", notes = "查询考勤统计列表", httpMethod = "GET") @ApiImplicitParam(name = "projectSnList", value = "项目SN列表", paramType = "query", required = false, dataType = "String") - @RequestMapping(value = "/selectAttendanceDetailByPage", method = {RequestMethod.GET, RequestMethod.POST}) - public Result> selectAttendanceDetailByPage(@RequestBody(required = false) HashMap map, @RequestParam(name = "workerName", required = false) String workerName, - @RequestParam(name = "projectSn", required = false) String projectSn, - @RequestParam(name = "personType", required = false) String personType, - @RequestParam(name = "groupId", required = false) Long groupId, - @RequestParam(name = "workerTypeId", required = false) Long workerTypeId, - @RequestParam(name = "time", required = false) String time, - @RequestParam(name = "queryTime", required = false) String queryTime, - @RequestParam(name = "personSn", required = false) String personSn, - @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, - @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) { + @RequestMapping(value = "/selectAttendanceDetailByPage", method = {RequestMethod.GET}) + public Result> selectAttendanceDetailByPage(@RequestParam(required = false) HashMap map) { Result> result = new Result<>(); - Page list = projectOperationsAnalysisService.selectAttendanceDetailByPage(map, workerName, projectSn, groupId, workerTypeId, time, queryTime, personSn, pageNo, pageSize, personType); + Page list = projectOperationsAnalysisService.selectAttendanceDetailByPage(map); + result.setResult(list); + result.setSuccess(true); + result.setCode(200); + return result; + } + + @ApiOperation(value = " 查询考勤统计列表", notes = "查询考勤统计列表", httpMethod = "POST") + @ApiImplicitParam(name = "projectSnList", value = "项目SN列表", paramType = "query", required = false, dataType = "String") + @RequestMapping(value = "/selectAttendanceDetailByPage", method = {RequestMethod.POST}) + public Result> selectAttendanceDetailByPagePost(@RequestBody(required = false) HashMap map) { + Result> result = new Result<>(); + Page list = projectOperationsAnalysisService.selectAttendanceDetailByPage(map); result.setResult(list); result.setSuccess(true); result.setCode(200); diff --git a/src/main/java/com/zhgd/xmgl/modules/realnamestatistics/entity/vo/WorkerMonthAttendanceStatisticsVo.java b/src/main/java/com/zhgd/xmgl/modules/realnamestatistics/entity/vo/WorkerMonthAttendanceStatisticsVo.java index 9517263f7..fb4ab11c0 100644 --- a/src/main/java/com/zhgd/xmgl/modules/realnamestatistics/entity/vo/WorkerMonthAttendanceStatisticsVo.java +++ b/src/main/java/com/zhgd/xmgl/modules/realnamestatistics/entity/vo/WorkerMonthAttendanceStatisticsVo.java @@ -1,20 +1,25 @@ package com.zhgd.xmgl.modules.realnamestatistics.entity.vo; +import com.fasterxml.jackson.annotation.JsonInclude; import io.swagger.annotations.ApiModelProperty; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import org.jeecgframework.poi.excel.annotation.Excel; +import java.io.Serializable; + @Data @AllArgsConstructor @NoArgsConstructor public class WorkerMonthAttendanceStatisticsVo { - /**考勤人员唯一标识*/ + /** + * 考勤人员唯一标识 + */ @Excel(name = "考勤人员唯一标识", width = 15) - @ApiModelProperty(value="考勤人员唯一标识") - private java.lang.String workerName ; + @ApiModelProperty(value = "考勤人员唯一标识") + private java.lang.String workerName; private java.lang.String personSn ; @@ -125,27 +130,34 @@ public class WorkerMonthAttendanceStatisticsVo { /**day27*/ @Excel(name = "day27", width = 15) @ApiModelProperty(value="day27") - private java.lang.Integer day27 ; - /**day28*/ + private java.lang.Integer day27; + /** + * day28 + */ @Excel(name = "day28", width = 15) - @ApiModelProperty(value="day28") - private java.lang.Integer day28 ; - /**day29*/ + @ApiModelProperty(value = "day28") + private java.lang.Integer day28; + /** + * day29 + */ @Excel(name = "day29", width = 15) @ApiModelProperty(value = "day29") - private java.lang.Integer day29; + @JsonInclude(value = JsonInclude.Include.NON_NULL) + private Integer day29; /** * day30 */ @Excel(name = "day30", width = 15) @ApiModelProperty(value = "day30") - private java.lang.Integer day30; + @JsonInclude(value = JsonInclude.Include.NON_NULL) + private Integer day30; /** * day31 */ @Excel(name = "day31", width = 15) @ApiModelProperty(value = "day31") - private java.lang.Integer day31; + @JsonInclude(value = JsonInclude.Include.NON_NULL) + private Integer day31; @ApiModelProperty(value = "项目名称") private String projectName; @ApiModelProperty(value = "身份证头像") diff --git a/src/main/java/com/zhgd/xmgl/modules/realnamestatistics/mapper/ProjectOperationsAnalysisMapper.java b/src/main/java/com/zhgd/xmgl/modules/realnamestatistics/mapper/ProjectOperationsAnalysisMapper.java index 7389cb37f..4827d103d 100644 --- a/src/main/java/com/zhgd/xmgl/modules/realnamestatistics/mapper/ProjectOperationsAnalysisMapper.java +++ b/src/main/java/com/zhgd/xmgl/modules/realnamestatistics/mapper/ProjectOperationsAnalysisMapper.java @@ -24,7 +24,7 @@ public interface ProjectOperationsAnalysisMapper extends BaseMapper getAllDetails(); - Page selectAttendanceDetailByPage(Page page, @Param("paramMap") HashMap map, @Param("workerName") String workerName, @Param("projectSn") String projectSn, @Param("groupId") Long groupId, @Param("workerTypeId") Long workerTypeId, @Param("time") String time, @Param("queryTime") String queryTime, @Param("personSn") String personSn, @Param("personType") String personType); + Page selectAttendanceDetailByPage(Page page, @Param("p") HashMap map); Page selectWorkerTodayAttendancePageList(Page page, @Param("projectSn") String projectSn); diff --git a/src/main/java/com/zhgd/xmgl/modules/realnamestatistics/mapper/xml/ProjectOperationsAnalysisMapper.xml b/src/main/java/com/zhgd/xmgl/modules/realnamestatistics/mapper/xml/ProjectOperationsAnalysisMapper.xml index 32f4178e7..c2fa9b550 100644 --- a/src/main/java/com/zhgd/xmgl/modules/realnamestatistics/mapper/xml/ProjectOperationsAnalysisMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/realnamestatistics/mapper/xml/ProjectOperationsAnalysisMapper.xml @@ -73,18 +73,15 @@ IFNULL(day26,0) day26, IFNULL(day27,0) day27, IFNULL(day28,0) day28, - IFNULL(day29,0) day29, - IFNULL(day30,0) day30, - IFNULL(day31,0) day31, + IF(29>DAY(last_day(str_to_date(CONCAT(#{p.queryTime},'-01'),'%Y-%m-%d'))),NULL,day29) day29, + IF(30>DAY(last_day(str_to_date(CONCAT(#{p.queryTime},'-01'),'%Y-%m-%d'))),NULL,day30) day30, + IF(31>DAY(last_day(str_to_date(CONCAT(#{p.queryTime},'-01'),'%Y-%m-%d'))),NULL,day31) day31, p.project_name,i.id_card_big_photo_url,ei.enterprise_name from worker_info i INNER JOIN project p on i.project_sn=p.project_sn LEFT JOIN worker_month_attendance_statistics s on (i.person_sn=s.person_sn - - AND s.query_time=#{queryTime} - - - AND s.query_time=#{time} + + AND s.query_time=#{p.queryTime} ) LEFT JOIN team_info tm on tm.id=i.team_id @@ -92,30 +89,30 @@ LEFT JOIN department_info d on d.id=i.department_id LEFT JOIN enterprise_info ei on ei.id=tm.enterprise_id where 1=1 - + and i.project_sn in - #{item} - - AND i.project_sn=#{projectSn} + + AND i.project_sn=#{p.projectSn} - - AND i.person_type=#{personType} + + AND i.person_type=#{p.personType} - - AND i.team_id = #{groupId} + + AND i.team_id = #{p.groupId} - - AND t.id = #{workerTypeId} + + AND t.id = #{p.workerTypeId} - - AND i.worker_name like concat ('%',#{workerName},'%') + + AND i.worker_name like concat ('%',#{p.workerName},'%') - - AND i.person_sn=#{personSn} + + AND i.person_sn=#{p.personSn} order by s.query_time desc diff --git a/src/main/java/com/zhgd/xmgl/modules/realnamestatistics/service/IProjectOperationsAnalysisService.java b/src/main/java/com/zhgd/xmgl/modules/realnamestatistics/service/IProjectOperationsAnalysisService.java index bad5f37e5..a781368e8 100644 --- a/src/main/java/com/zhgd/xmgl/modules/realnamestatistics/service/IProjectOperationsAnalysisService.java +++ b/src/main/java/com/zhgd/xmgl/modules/realnamestatistics/service/IProjectOperationsAnalysisService.java @@ -30,7 +30,7 @@ public interface IProjectOperationsAnalysisService extends IService getAllWorkerType(String projectSn); - Page selectAttendanceDetailByPage(HashMap map, String workerName, String projectSn, Long groupId, Long workerTypeId, String time, String queryTime, String personSn, Integer pageNo, Integer pageSize, String personnelType); + Page selectAttendanceDetailByPage(HashMap map); Page selectWorkerTodayAttendancePageList(String projectSn, Integer pageNo, Integer pageSize, String personType); diff --git a/src/main/java/com/zhgd/xmgl/modules/realnamestatistics/service/impl/ProjectOperationsAnalysisServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/realnamestatistics/service/impl/ProjectOperationsAnalysisServiceImpl.java index fa18898ea..ca640816c 100644 --- a/src/main/java/com/zhgd/xmgl/modules/realnamestatistics/service/impl/ProjectOperationsAnalysisServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/realnamestatistics/service/impl/ProjectOperationsAnalysisServiceImpl.java @@ -1,8 +1,9 @@ package com.zhgd.xmgl.modules.realnamestatistics.service.impl; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.NumberUtil; -import com.alibaba.fastjson.JSON; +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; @@ -23,13 +24,12 @@ import com.zhgd.xmgl.modules.worker.service.IWorkerTypeService; import com.zhgd.xmgl.util.ProfileJudgeUtil; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.collections.MapUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** *

@@ -142,9 +142,18 @@ public class ProjectOperationsAnalysisServiceImpl extends ServiceImpl selectAttendanceDetailByPage(HashMap map, String workerName, String projectSn, Long groupId, Long workerTypeId, String time, String queryTime, String personSn, Integer pageNo, Integer pageSize, String personType) { + public Page selectAttendanceDetailByPage(HashMap map) { + long pageNo = Optional.ofNullable(MapUtils.getInteger(map, "pageNo")).orElse(1); + long pageSize = Optional.ofNullable(MapUtils.getInteger(map, "pageSize")).orElse(10); + if (StrUtil.isBlank(MapUtils.getString(map, "queryTime"))) { + map.put("queryTime", MapUtils.getString(map, "time")); + if (StrUtil.isBlank(MapUtils.getString(map, "queryTime"))) { + map.put("queryTime", DateUtil.format(new Date(), "yyyy-MM")); + } + } + Page page = new Page<>(pageNo, pageSize); - Page rPage = baseMapper.selectAttendanceDetailByPage(page, map, workerName, projectSn, groupId, workerTypeId, time, queryTime, personSn, personType); + Page rPage = baseMapper.selectAttendanceDetailByPage(page, map); try { Integer noAttendanceType = 0; Integer normalType = 1; @@ -164,7 +173,6 @@ public class ProjectOperationsAnalysisServiceImpl extends ServiceImpl> selectProjectTeamWorkTotalList(@RequestBody Map map) { + public Result> selectProjectTeamWorkTotalList(@RequestBody Map map) { return Result.success(workerInfoService.selectProjectTeamWorkTotalList(map)); } @@ -480,10 +480,11 @@ public class WorkerInfoController { @ApiImplicitParam(name = "projectSns", value = "项目SNS", paramType = "query", required = false, dataType = "String"), @ApiImplicitParam(name = "startDate", value = "开始时间,yyyy-MM-dd", paramType = "query", dataType = "String"), @ApiImplicitParam(name = "endDate", value = "结束时间,yyyy-MM-dd", paramType = "query", dataType = "String"), + @ApiImplicitParam(name = "inServiceType", value = "inServiceType", paramType = "query", dataType = "String"), }) @GetMapping(value = "/getDeclareAge") - public Result getDeclareAge(String projectSn, String startDate, String endDate, String projectSns) { - return Result.success(workerInfoService.getDeclareAge(projectSn, startDate, endDate, projectSns)); + public Result getDeclareAge(@RequestParam(required = false) HashMap map) { + return Result.success(workerInfoService.getDeclareAge(map)); } diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/entity/TeamInfo.java b/src/main/java/com/zhgd/xmgl/modules/worker/entity/TeamInfo.java index e497c12ee..0f0ca7f5c 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/entity/TeamInfo.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/entity/TeamInfo.java @@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -31,6 +33,7 @@ public class TeamInfo implements Serializable { */ @TableId(type = IdType.ASSIGN_ID) @ApiModelProperty(value = "id") + @JsonSerialize(using = ToStringSerializer.class) private java.lang.Long id; /** * 班组名称 @@ -61,7 +64,7 @@ public class TeamInfo implements Serializable { */ @Excel(name = "工种id", width = 15) @ApiModelProperty(value = "工种id") - + @JsonSerialize(using = ToStringSerializer.class) private java.lang.Long workerTypeId; /** * 班组类型 @@ -92,7 +95,7 @@ public class TeamInfo implements Serializable { */ @Excel(name = "所属企业id", width = 15) @ApiModelProperty(value = "所属企业id") - + @JsonSerialize(using = ToStringSerializer.class) private java.lang.Long enterpriseId; @ApiModelProperty(value = "是否特殊工种,0否,1是") diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/entity/vo/ProjectTeamWorkTotalVo.java b/src/main/java/com/zhgd/xmgl/modules/worker/entity/vo/ProjectTeamWorkTotalVo.java new file mode 100644 index 000000000..6ce4dd4c0 --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/worker/entity/vo/ProjectTeamWorkTotalVo.java @@ -0,0 +1,10 @@ +package com.zhgd.xmgl.modules.worker.entity.vo; + +import lombok.Data; + +@Data +public class ProjectTeamWorkTotalVo { + private String teamName; + private String attendancePersonNum; + private String totalPersonNum; +} diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/mapper/WorkerInfoMapper.java b/src/main/java/com/zhgd/xmgl/modules/worker/mapper/WorkerInfoMapper.java index aa9c9b47f..7465273af 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/mapper/WorkerInfoMapper.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/mapper/WorkerInfoMapper.java @@ -80,7 +80,7 @@ public interface WorkerInfoMapper extends BaseMapper { List> selectEnterprisePresenceWorkerCount(Map map); - List selectProjectTeamWorkTotalList(Map map); + Page selectProjectTeamWorkTotalList(Page page, @Param("p") Map map); List selectAllProjectTeamList(Map map); @@ -215,7 +215,7 @@ public interface WorkerInfoMapper extends BaseMapper { List getPersonnelList(@Param("projectSn") String projectSn); - List getDeclareAge(@Param("projectSn") String projectSn, @Param("startDate") String startDate, @Param("endDate") String endDate); + List getDeclareAge(@Param("p") HashMap map); PersonnelSituationVO getPersonnelSituation(String projectSn); diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/WorkerInfoMapper.xml b/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/WorkerInfoMapper.xml index 1ef95a217..e140b2fcd 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/WorkerInfoMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/WorkerInfoMapper.xml @@ -831,8 +831,8 @@ group by w1.enterprise_id - SELECT e.team_name, IFNULL(tp2.total_person_num, 0) total_person_num, IFNULL(tp.person_num, 0) attendance_person_num @@ -843,8 +843,8 @@ WHERE p.create_time >= CONCAT(DATE_FORMAT(now(), "%Y-%m-%d"), ' 00:00:00') and w1.inService_type = 1 AND w1.person_type = 1 - - and w1.project_sn = #{projectSn} + + and w1.project_sn = #{p.projectSn} group by w1.team_id ) tp ON e.id = tp.team_id @@ -852,16 +852,16 @@ FROM worker_info w1 where w1.inService_type = 1 AND w1.person_type = 1 - - and w1.project_sn = #{projectSn} + + and w1.project_sn = #{p.projectSn} group by w1.team_id ) tp2 ON e.id = tp2.team_id WHERE 1=1 - - and e.project_sn = #{projectSn} + + and e.project_sn = #{p.projectSn} - order by attendance_person_num desc LIMIT 10 + order by attendance_person_num desc select birthday - from worker_info - where project_sn = #{projectSn} - - and birthday >= #{startDate} + from worker_info wi + join project p on p.project_sn = wi.project_sn + where wi.project_sn = #{p.projectSn} + + and wi.birthday >= #{p.startDate} - - and birthday #{endDate} + + and wi.birthday #{p.endDate} - and birthday is not null and birthday != '' + + and wi.inService_type = 1 + + and wi.birthday is not null and wi.birthday != '' @@ -2382,12 +2386,18 @@ diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/WorkerMonthAttendanceStatisticsMapper.xml b/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/WorkerMonthAttendanceStatisticsMapper.xml index 8bf10c066..d3e358634 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/WorkerMonthAttendanceStatisticsMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/WorkerMonthAttendanceStatisticsMapper.xml @@ -8,11 +8,12 @@ day1, day2, day3, day4, day5, day6, day7, day8, day9, day10, day11, day12, day13, day14, day15, day16, day17, day18, day19, day20, day21, day22, day23, day24, day25, day26, day27, day28, - day29, day30, day31 + IF(29>DAY(last_day(str_to_date(CONCAT(#{param.monthTime},'-01'),'%Y-%m-%d'))),NULL,day29) day29, + IF(30>DAY(last_day(str_to_date(CONCAT(#{param.monthTime},'-01'),'%Y-%m-%d'))),NULL,day30) day30, + IF(31>DAY(last_day(str_to_date(CONCAT(#{param.monthTime},'-01'),'%Y-%m-%d'))),NULL,day31) day31 from worker_info a - INNER JOIN worker_month_attendance_statistics c ON a.person_sn=c.person_sn + LEFT JOIN worker_month_attendance_statistics c ON a.person_sn=c.person_sn AND c.query_time=#{param.monthTime} where a.project_sn=#{param.projectSn} and a.inService_type=#{param.inserviceType} - AND c.query_time=#{param.monthTime} and a.person_type=#{param.personType} @@ -193,4 +194,4 @@ and person_sn = #{personSn} and query_time = date_format(#{inputTime}, '%Y-%m') - \ No newline at end of file + diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/WorkerSafeEducationWorkerMapper.xml b/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/WorkerSafeEducationWorkerMapper.xml index a73d0e329..bec9afa4d 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/WorkerSafeEducationWorkerMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/WorkerSafeEducationWorkerMapper.xml @@ -49,22 +49,22 @@ - \ No newline at end of file + diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/WorkerWagesPaymentMapper.xml b/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/WorkerWagesPaymentMapper.xml index 84d0f8dce..97b40c78b 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/WorkerWagesPaymentMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/worker/mapper/xml/WorkerWagesPaymentMapper.xml @@ -131,9 +131,12 @@ and a.person_type = #{personType} - + and IFNULL(wp.pay_status, 0) = #{payStatus} + + and wp.pay_status = #{payStatus} +