diff --git a/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/utils/DateUtils.java b/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/utils/DateUtils.java index e4d5d49..dc231a1 100644 --- a/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/utils/DateUtils.java +++ b/bonus-common/bonus-common-core/src/main/java/com/bonus/common/core/utils/DateUtils.java @@ -1,5 +1,6 @@ package com.bonus.common.core.utils; +import com.sun.org.apache.bcel.internal.generic.IF_ACMPEQ; import org.apache.commons.lang3.ObjectUtils; import java.lang.management.ManagementFactory; @@ -586,18 +587,24 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils { * * @param n 天数 * @param format 日期格式 + * @param sort 排序,sort =true 正序,false 倒叙 * @return 从当前日期往前推 n 天的所有日期的字符串列表 */ - public static List getDatesBefore(int n, String format) { + public static List getDatesBefore(int n, String format,boolean sort) { List dates = new ArrayList<>(); LocalDate today = LocalDate.now(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format); - - for (int i = 0; i < n; i++) { - LocalDate date = today.minusDays(i); - dates.add(date.format(formatter)); + if(sort){ + for (int i=n-1;i>=0;i--){ + LocalDate date = today.minusDays(i); + dates.add(date.format(formatter)); + } + }else{ + for (int i = 0; i < n; i++) { + LocalDate date = today.minusDays(i); + dates.add(date.format(formatter)); + } } - return dates; } diff --git a/bonus-modules/bonus-base/src/main/java/com/bonus/base/common/utils/AttrCodeUtils.java b/bonus-modules/bonus-base/src/main/java/com/bonus/base/common/utils/AttrCodeUtils.java index da80df1..cadd442 100644 --- a/bonus-modules/bonus-base/src/main/java/com/bonus/base/common/utils/AttrCodeUtils.java +++ b/bonus-modules/bonus-base/src/main/java/com/bonus/base/common/utils/AttrCodeUtils.java @@ -1,5 +1,8 @@ package com.bonus.base.common.utils; +/** + * @author 黑子 + */ public class AttrCodeUtils { /** diff --git a/bonus-modules/bonus-base/src/main/java/com/bonus/base/screen/controller/SubContractController.java b/bonus-modules/bonus-base/src/main/java/com/bonus/base/screen/controller/SubContractController.java index 844ad94..9fbf71a 100644 --- a/bonus-modules/bonus-base/src/main/java/com/bonus/base/screen/controller/SubContractController.java +++ b/bonus-modules/bonus-base/src/main/java/com/bonus/base/screen/controller/SubContractController.java @@ -1,6 +1,13 @@ package com.bonus.base.screen.controller; +import com.bonus.base.basic.domain.vo.DevModelVo; +import com.bonus.base.screen.domain.SubContractVo; +import com.bonus.base.screen.service.SubContractService; +import com.bonus.common.core.web.domain.AjaxResult; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -13,8 +20,51 @@ import org.springframework.web.bind.annotation.RestController; public class SubContractController { + @Autowired + private SubContractService service; + + @ApiOperation(value = "查询施工单位的人数") + @PostMapping("getSgUserByUnit") + public AjaxResult getSgUserByUnit(SubContractVo vo) { + return service.getSgUserByUnit(vo); + } + + + @ApiOperation(value = "查询施工人员年龄分布查询") + @PostMapping("getSgUserByAge") + public AjaxResult getSgUserByAge(SubContractVo vo) { + return service.getSgUserByAge(vo); + } + + @ApiOperation(value = "查询施工人员工种分布") + @PostMapping("getSgUserByWorkType") + public AjaxResult getSgUserByWorkType(SubContractVo vo) { + return service.getSgUserByWorkType(vo); + } + @ApiOperation(value = "查询今日施工人员考勤数据") + @PostMapping("getSgUserKqByType") + public AjaxResult getSgUserKqByType(SubContractVo vo) { + return service.getSgUserKqByType(vo); + } + @ApiOperation(value = "查询近七日施工人员曲线图") + @PostMapping("getUserNumByWeek") + public AjaxResult getUserNumByWeek(SubContractVo vo) { + return service.getUserNumByWeek(vo); + } + @ApiOperation(value = "查询关键岗位人员数据") + @PostMapping("getImportPostUser") + public AjaxResult getImportPostUser(SubContractVo vo) { + return service.getImportPostUser(vo); + } + + @ApiOperation(value = "查询施工人员打卡记录") + @PostMapping("getUserCheckList") + public AjaxResult getUserCheckList(SubContractVo vo) { + return service.getUserCheckList(vo); + } + } diff --git a/bonus-modules/bonus-base/src/main/java/com/bonus/base/screen/domain/SubContractVo.java b/bonus-modules/bonus-base/src/main/java/com/bonus/base/screen/domain/SubContractVo.java new file mode 100644 index 0000000..1156b7e --- /dev/null +++ b/bonus-modules/bonus-base/src/main/java/com/bonus/base/screen/domain/SubContractVo.java @@ -0,0 +1,37 @@ +package com.bonus.base.screen.domain; + +import com.itextpdf.text.pdf.PRAcroForm; +import lombok.Data; +import org.omg.CORBA.INTERNAL; + +/** + * 劳务实名制 + * @author 黑子 + */ +@Data +public class SubContractVo { + + /** + * 名称 + */ + private String name; + /** + * 班组名称 + */ + private String teamName; + /** + * 创建时间 + */ + private String createTime; + /** + * 照片 + */ + private String photo; + /** + * 限制条数 + */ + private int limit; + + + +} diff --git a/bonus-modules/bonus-base/src/main/java/com/bonus/base/screen/mapper/SubContractMapper.java b/bonus-modules/bonus-base/src/main/java/com/bonus/base/screen/mapper/SubContractMapper.java index accab49..81c04b6 100644 --- a/bonus-modules/bonus-base/src/main/java/com/bonus/base/screen/mapper/SubContractMapper.java +++ b/bonus-modules/bonus-base/src/main/java/com/bonus/base/screen/mapper/SubContractMapper.java @@ -1,6 +1,11 @@ package com.bonus.base.screen.mapper; +import com.bonus.base.screen.domain.MapValueVo; +import com.bonus.base.screen.domain.SubContractVo; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * @author 黑子 @@ -8,7 +13,53 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface SubContractMapper { + /** + * 施工人员单位 + * @param vo + * @return + */ + List getSgUserByUnit(SubContractVo vo); + /** + * 查询施工人员年龄数量分布 + * @param vo + * @return + */ + List getSgUserByAge(SubContractVo vo); - + /** + * 查询施工类型 + * @param vo + * @return + */ + List getSgUserByWorkType(SubContractVo vo); + + /** + * 查询施工人员 考勤 + * @param list + * @return + */ + Integer getSgUserKqByType(@Param("list") List list); + + /** + * 依据日期和类型查询时间 + * @param date + * @param typeList + * @return + */ + MapValueVo getUserNumByWeek(@Param("date") String date,@Param("list") List typeList); + + /** + * 查询重要岗位 + * @param vo + * @return + */ + List getImportPostUser(SubContractVo vo); + + /** + * 查询人员考勤数据 + * @param vo + * @return + */ + List getUserCheckList(SubContractVo vo); } diff --git a/bonus-modules/bonus-base/src/main/java/com/bonus/base/screen/service/SubContractService.java b/bonus-modules/bonus-base/src/main/java/com/bonus/base/screen/service/SubContractService.java index 14a661f..c88d826 100644 --- a/bonus-modules/bonus-base/src/main/java/com/bonus/base/screen/service/SubContractService.java +++ b/bonus-modules/bonus-base/src/main/java/com/bonus/base/screen/service/SubContractService.java @@ -1,13 +1,60 @@ package com.bonus.base.screen.service; +import com.bonus.base.screen.domain.SubContractVo; +import com.bonus.common.core.web.domain.AjaxResult; + /** * 大屏劳务实名制 业务接口层 * @author 黑子 */ public interface SubContractService { + /** + * 查询施工人员按照单位查询 + * @param vo + * @return + */ + AjaxResult getSgUserByUnit(SubContractVo vo); + /** + * 查询施工人员年龄分布查询 + * @param vo + * @return + */ + AjaxResult getSgUserByAge(SubContractVo vo); + /** + * 查询施工人员类型数据查询 + * @param vo + * @return + */ + AjaxResult getSgUserByWorkType(SubContractVo vo); + /** + * 查询今日施工人员考勤数据 + * @param vo + * @return + */ + AjaxResult getSgUserKqByType(SubContractVo vo); + /** + * 查询近期日施工人员数据 + * @param vo + * @return + */ + AjaxResult getUserNumByWeek(SubContractVo vo); + + /** + * 查询重要岗位人员 + * @param vo + * @return + */ + AjaxResult getImportPostUser(SubContractVo vo); + + /** + * 查询人员打卡记录 + * @param vo + * @return + */ + AjaxResult getUserCheckList(SubContractVo vo); } diff --git a/bonus-modules/bonus-base/src/main/java/com/bonus/base/screen/service/impl/ScreenDevModelServiceImpl.java b/bonus-modules/bonus-base/src/main/java/com/bonus/base/screen/service/impl/ScreenDevModelServiceImpl.java index e0dadf3..5594021 100644 --- a/bonus-modules/bonus-base/src/main/java/com/bonus/base/screen/service/impl/ScreenDevModelServiceImpl.java +++ b/bonus-modules/bonus-base/src/main/java/com/bonus/base/screen/service/impl/ScreenDevModelServiceImpl.java @@ -102,11 +102,11 @@ public class ScreenDevModelServiceImpl implements ScreenDevModelService { public AjaxResult getAttrList(ParamVo vo) { try{ if("1".equals(vo.getType())){ - vo.setType(AttrCodeUtils.GZM_WY); + vo.setCode(AttrCodeUtils.GZM_WY); }else if("2".equals(vo.getType())){ - vo.setType(AttrCodeUtils.GZM_CJ); + vo.setCode(AttrCodeUtils.GZM_CJ); }else if("3".equals(vo.getType())){ - vo.setType(AttrCodeUtils.GZM_ZL); + vo.setCode(AttrCodeUtils.GZM_ZL); } vo.setLimit(AttrCodeUtils.LIMIT); List list=mapper.getAttrList(vo); diff --git a/bonus-modules/bonus-base/src/main/java/com/bonus/base/screen/service/impl/SubContractServiceImpl.java b/bonus-modules/bonus-base/src/main/java/com/bonus/base/screen/service/impl/SubContractServiceImpl.java index 235cdfe..a785cfc 100644 --- a/bonus-modules/bonus-base/src/main/java/com/bonus/base/screen/service/impl/SubContractServiceImpl.java +++ b/bonus-modules/bonus-base/src/main/java/com/bonus/base/screen/service/impl/SubContractServiceImpl.java @@ -1,9 +1,26 @@ package com.bonus.base.screen.service.impl; +import com.bonus.base.common.utils.AttrCodeUtils; +import com.bonus.base.screen.domain.MapValueVo; +import com.bonus.base.screen.domain.SubContractVo; +import com.bonus.base.screen.mapper.SubContractMapper; import com.bonus.base.screen.service.SubContractService; +import com.bonus.base.screen.utils.PeopleTypeUtils; +import com.bonus.common.core.utils.DateUtils; +import com.bonus.common.core.web.domain.AjaxResult; +import com.google.common.collect.Maps; +import jdk.internal.org.objectweb.asm.tree.MultiANewArrayInsnNode; import lombok.extern.slf4j.Slf4j; +import org.checkerframework.checker.units.qual.A; +import org.hibernate.validator.internal.util.StringHelper; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Map; + /** * @author 黑子 * 大屏劳务实名制 业务处理成 @@ -11,4 +28,185 @@ import org.springframework.stereotype.Service; @Slf4j @Service public class SubContractServiceImpl implements SubContractService { + + + @Autowired + private SubContractMapper mapper; + + + @Override + public AjaxResult getSgUserByUnit(SubContractVo vo) { + try{ + List list=mapper.getSgUserByUnit(vo); + return AjaxResult.success("查询成功",list); + + }catch (Exception e){ + log.error(e.toString(),e); + } + return AjaxResult.success("查询失败",new ArrayList<>()); + } + + + @Override + public AjaxResult getSgUserByAge(SubContractVo vo) { + try{ + List list=mapper.getSgUserByAge(vo); + return AjaxResult.success("查询成功",list); + + }catch (Exception e){ + log.error(e.toString(),e); + } + return AjaxResult.success("查询失败",new ArrayList<>()); + } + + @Override + public AjaxResult getSgUserByWorkType(SubContractVo vo) { + try{ + List list=mapper.getSgUserByWorkType(vo); + return AjaxResult.success("查询成功",list); + + }catch (Exception e){ + log.error(e.toString(),e); + } + return AjaxResult.success("查询失败",new ArrayList<>()); + } + + /** + * 查询施工人员考勤数据 + * @param vo + * @return + */ + @Override + public AjaxResult getSgUserKqByType(SubContractVo vo) { + Map map= Maps.newHashMap(); + try{ + List list= Arrays.asList(PeopleTypeUtils.GL_USER_TYPE.split(",")); + Integer num=mapper.getSgUserKqByType(list); + map.put("glUser",transInteger(num)); + list= Arrays.asList(PeopleTypeUtils.GR_USER_TYPE.split(",")); + num=mapper.getSgUserKqByType(list); + map.put("grUser",transInteger(num)); + list= Arrays.asList(PeopleTypeUtils.TZ_USER_TYPE.split(",")); + num=mapper.getSgUserKqByType(list); + map.put("tzUser",transInteger(num)); + return AjaxResult.success("查询成功",map); + }catch (Exception e){ + map.put("glUser",0); + map.put("grUser",0); + map.put("tzUser",0); + log.error(e.toString(),e); + } + return AjaxResult.success("查询失败",map); + } + + /** + * 查询施工人员数据 + * @param vo + * @return + */ + @Override + public AjaxResult getUserNumByWeek(SubContractVo vo) { + Map> map=Maps.newHashMap(); + List gllist=new ArrayList<>(); + List tzlist=new ArrayList<>(); + List grlist=new ArrayList<>(); + try{ + List dateList= DateUtils.getDatesBefore(7,DateUtils.YYYY_MM_DD,true); + List glType= Arrays.asList(PeopleTypeUtils.GL_USER_TYPE.split(",")); + List tzType= Arrays.asList(PeopleTypeUtils.TZ_USER_TYPE.split(",")); + List grType= Arrays.asList(PeopleTypeUtils.GR_USER_TYPE.split(",")); + for (String date:dateList){ + MapValueVo data=mapper.getUserNumByWeek(date,glType); + gllist.add(getMapData(data,date)); + data=mapper.getUserNumByWeek(date,tzType); + tzlist.add(getMapData(data,date)); + data=mapper.getUserNumByWeek(date,grType); + grlist.add(getMapData(data,date)); + } + map.put("glList",gllist); + map.put("tzList",tzlist); + map.put("grList",grlist); + return AjaxResult.success("查询成功",map); + }catch (Exception e){ + //异常添加默认值 + List dateList= DateUtils.getDatesBefore(7,DateUtils.YYYY_MM_DD,true); + for (String date:dateList){ + gllist.add(getMapData(null,date)); + tzlist.add(getMapData(null,date)); + grlist.add(getMapData(null,date)); + } + map.put("glList",gllist); + map.put("tzList",tzlist); + map.put("grList",grlist); + log.error(e.toString(),e); + } + return AjaxResult.success("查询失败",map); + } + + /** + * 查询重要人员岗位 + * @param vo + * @return + */ + @Override + public AjaxResult getImportPostUser(SubContractVo vo) { + try{ + List list=mapper.getImportPostUser(vo); + return AjaxResult.success("查询成功",list); + }catch (Exception e){ + log.error(e.toString(),e); + } + return AjaxResult.success("查询失败",new ArrayList<>()); + } + + /** + * + * @param vo + * @return + */ + @Override + public AjaxResult getUserCheckList(SubContractVo vo) { + try{ + vo.setLimit(AttrCodeUtils.LIMIT); + List list=mapper.getUserCheckList(vo); + return AjaxResult.success("查询成功",list); + }catch (Exception e){ + log.error(e.toString(),e); + } + return AjaxResult.success("查询失败",new ArrayList<>()); + } + + + + /** + * 数据异常是默认数据 + * @param data + * @param date + * @return + */ + public MapValueVo getMapData(MapValueVo data,String date){ + if(data==null){ + data=new MapValueVo(); + data.setName(date); + data.setValue("0"); + }else{ + if(StringHelper.isNullOrEmptyString(data.getValue())){ + data.setValue("0"); + } + } + return data; + } + + /** + * 防止出现null + * @param num + * @return + */ + public int transInteger(Integer num){ + if(num==null){ + return 0; + } + return num; + } + } diff --git a/bonus-modules/bonus-base/src/main/java/com/bonus/base/screen/utils/PeopleTypeUtils.java b/bonus-modules/bonus-base/src/main/java/com/bonus/base/screen/utils/PeopleTypeUtils.java new file mode 100644 index 0000000..b131adb --- /dev/null +++ b/bonus-modules/bonus-base/src/main/java/com/bonus/base/screen/utils/PeopleTypeUtils.java @@ -0,0 +1,27 @@ +package com.bonus.base.screen.utils; + +/** + * 施工人员类型分类 + */ +public class PeopleTypeUtils { + + + /** + * 关联人员数据类型 + */ + public final static String GL_USER_TYPE="122"; + + /** + * 特种作业人员类型 + */ + public final static String TZ_USER_TYPE="122"; + + /** + * 工人族谱也类型 + */ + public final static String GR_USER_TYPE="122"; + + + + +} diff --git a/bonus-modules/bonus-base/src/main/resources/mapper/screen.basic/ScreenDevModelMapper.xml b/bonus-modules/bonus-base/src/main/resources/mapper/screen.basic/ScreenDevModelMapper.xml index 0511682..757bf41 100644 --- a/bonus-modules/bonus-base/src/main/resources/mapper/screen.basic/ScreenDevModelMapper.xml +++ b/bonus-modules/bonus-base/src/main/resources/mapper/screen.basic/ScreenDevModelMapper.xml @@ -31,7 +31,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + select count(1) value,unit.unit_type name + from tt_sys_user tsu + left join tt_sys_unit unit on tsu.unit_id=unit.id + where tsu.del_flag=0 + GROUP BY unit_type + + + + + + + +