劳务实名制调整

This commit is contained in:
pengjie 2023-08-11 16:32:44 +08:00
parent a7822824b5
commit fe79b849ec
13 changed files with 107 additions and 31 deletions

View File

@ -99,6 +99,9 @@ public class GovProjectSubItemController {
@PostMapping(value = "/page") @PostMapping(value = "/page")
public Result<IPage<ProjectSubItemDto>> queryPageList(@ApiIgnore @RequestBody Map<String, Object> map) { public Result<IPage<ProjectSubItemDto>> queryPageList(@ApiIgnore @RequestBody Map<String, Object> map) {
QueryWrapper<ProjectSubItem> queryWrapper = QueryGenerator.initPageQueryWrapper(ProjectSubItem.class, map); QueryWrapper<ProjectSubItem> queryWrapper = QueryGenerator.initPageQueryWrapper(ProjectSubItem.class, map);
if (StringUtils.isBlank(MapUtils.getString(map, "engineeringSn"))) {
queryWrapper.lambda().eq(ProjectSubItem::getEngineeringSn, "");
}
Page<ProjectSubItem> page = PageUtil.getPage(map); Page<ProjectSubItem> page = PageUtil.getPage(map);
IPage<ProjectSubItemDto> pageList = projectSubItemService.pageList(page, queryWrapper); IPage<ProjectSubItemDto> pageList = projectSubItemService.pageList(page, queryWrapper);
return Result.success(pageList); return Result.success(pageList);
@ -125,6 +128,9 @@ public class GovProjectSubItemController {
public Result<IPage<ProjectSubItem>> parentPage(@ApiIgnore @RequestBody Map<String, Object> map) { public Result<IPage<ProjectSubItem>> parentPage(@ApiIgnore @RequestBody Map<String, Object> map) {
QueryWrapper<ProjectSubItem> queryWrapper = QueryGenerator.initPageQueryWrapper(ProjectSubItem.class, map); QueryWrapper<ProjectSubItem> queryWrapper = QueryGenerator.initPageQueryWrapper(ProjectSubItem.class, map);
Page<ProjectSubItem> page = PageUtil.getPage(map); Page<ProjectSubItem> page = PageUtil.getPage(map);
if (StringUtils.isBlank(MapUtils.getString(map, "engineeringSn"))) {
queryWrapper.lambda().eq(ProjectSubItem::getEngineeringSn, "");
}
IPage<ProjectSubItem> pageList = projectSubItemService.pageParentList(page, queryWrapper); IPage<ProjectSubItem> pageList = projectSubItemService.pageParentList(page, queryWrapper);
return Result.success(pageList); return Result.success(pageList);
} }
@ -140,6 +146,9 @@ public class GovProjectSubItemController {
@PostMapping(value = "/list") @PostMapping(value = "/list")
public Result<List<ProjectSubItemDto>> queryList(@RequestBody ProjectSubItem projectSubItem) { public Result<List<ProjectSubItemDto>> queryList(@RequestBody ProjectSubItem projectSubItem) {
QueryWrapper<ProjectSubItem> queryWrapper = QueryGenerator.initQueryWrapper(projectSubItem); QueryWrapper<ProjectSubItem> queryWrapper = QueryGenerator.initQueryWrapper(projectSubItem);
if (StringUtils.isBlank(projectSubItem.getEngineeringSn())) {
queryWrapper.lambda().eq(ProjectSubItem::getEngineeringSn, "");
}
List<ProjectSubItemDto> list = projectSubItemService.getList(queryWrapper); List<ProjectSubItemDto> list = projectSubItemService.getList(queryWrapper);
return Result.success(list); return Result.success(list);
} }

View File

@ -11,6 +11,7 @@ import com.zhgd.xmgl.modules.basicdata.service.IEngineeringService;
import com.zhgd.xmgl.modules.basicdata.statistics.EngineeringStat; import com.zhgd.xmgl.modules.basicdata.statistics.EngineeringStat;
import com.zhgd.xmgl.modules.wisdom.dto.AttendanceRecordDto; import com.zhgd.xmgl.modules.wisdom.dto.AttendanceRecordDto;
import com.zhgd.xmgl.modules.wisdom.dto.WorkerAttendanceStatDto; import com.zhgd.xmgl.modules.wisdom.dto.WorkerAttendanceStatDto;
import com.zhgd.xmgl.modules.wisdom.dto.WorkerInfoDto;
import com.zhgd.xmgl.modules.wisdom.entity.WorkerInfo; import com.zhgd.xmgl.modules.wisdom.entity.WorkerInfo;
import com.zhgd.xmgl.modules.wisdom.service.IAttendanceRecordService; import com.zhgd.xmgl.modules.wisdom.service.IAttendanceRecordService;
import com.zhgd.xmgl.modules.wisdom.service.IWorkerAttendanceService; import com.zhgd.xmgl.modules.wisdom.service.IWorkerAttendanceService;
@ -26,9 +27,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore; import springfox.documentation.annotations.ApiIgnore;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
@ -133,16 +132,11 @@ public class GovWorkerStatController {
return Result.success(workerInfoService.getPageList(page, wrapper)); return Result.success(workerInfoService.getPageList(page, wrapper));
} }
@OperLog(operModul = "劳务实名制管理", operType = "分页查询", operDesc = "查询在册人员详细信息") @OperLog(operModul = "劳务实名制管理", operType = "分页查询", operDesc = "查询在册人员从业经历")
@ApiOperation(value = " 查询在册人员详细信息", notes = "查询在册人员详细信息", httpMethod = "POST") @ApiOperation(value = " 查询在册人员从业经历", notes = "查询在册人员从业经历", httpMethod = "POST")
@ApiImplicitParam(name = "id", value = "人员唯一标识", paramType = "body", dataType = "String") @ApiImplicitParam(name = "idCard", value = "人员身份证号", paramType = "body", dataType = "String")
@PostMapping(value = "/queryDetailBySn") @PostMapping(value = "/queryDetailBySn")
public Result<Map<String, Object>> queryDetailBySn(@ApiIgnore @RequestBody WorkerInfo workerInfoEntity) { public Result<Page<WorkerInfoDto>> queryDetailBySn(@ApiIgnore Page page,@ApiIgnore @RequestBody WorkerInfo workerInfo) {
Map<String, Object> resultMap = new HashMap<>(); return Result.success(workerInfoService.getDetail(page, Wrappers.<WorkerInfo>lambdaQuery().eq(WorkerInfo::getIdCard, workerInfo.getIdCard())));
WorkerInfo workerInfo = workerInfoService.getOne(Wrappers.<WorkerInfo>lambdaQuery().eq(WorkerInfo::getId, workerInfoEntity.getId()));
resultMap.put("workerInfo", workerInfo);
List<WorkerInfo> historyList = workerInfoService.list(Wrappers.<WorkerInfo>lambdaQuery().eq(WorkerInfo::getIdCard, workerInfo.getIdCard()));
resultMap.put("historyList", historyList);
return Result.success(resultMap);
} }
} }

View File

@ -0,0 +1,19 @@
package com.zhgd.xmgl.modules.basicdata.dto;
import com.zhgd.xmgl.modules.basicdata.entity.AnnexFile;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
@ApiModel(value = "附件信息分类(DTO)", description = "AnnexFileDto")
public class AnnexFileDto {
@ApiModelProperty(value = "附件分类标识")
private String label;
@ApiModelProperty(value = "附件列表")
private List<AnnexFile> annexFileList;
}

View File

@ -1,6 +1,5 @@
package com.zhgd.xmgl.modules.basicdata.dto; package com.zhgd.xmgl.modules.basicdata.dto;
import com.zhgd.xmgl.modules.basicdata.entity.AnnexFile;
import com.zhgd.xmgl.modules.basicdata.entity.NoticeAccept; import com.zhgd.xmgl.modules.basicdata.entity.NoticeAccept;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
@ -44,7 +43,7 @@ public class NoticeDto {
private Integer isRead; private Integer isRead;
@ApiModelProperty(value = "附件") @ApiModelProperty(value = "附件")
private List<AnnexFile> annexFileList; private List<AnnexFileDto> annexFileList;
@ApiModelProperty(value = "接收方信息") @ApiModelProperty(value = "接收方信息")
private List<NoticeAccept> acceptList; private List<NoticeAccept> acceptList;

View File

@ -184,6 +184,7 @@ public class EngineeringServiceImpl extends ServiceImpl<EngineeringMapper, Engin
@Override @Override
public Page<EngineeringStat> engineeringStat(Page page, Wrapper<Engineering> wrapper) { public Page<EngineeringStat> engineeringStat(Page page, Wrapper<Engineering> wrapper) {
Page<EngineeringStat> engineeringStatPage = baseMapper.engineeringStat(page, wrapper); Page<EngineeringStat> engineeringStatPage = baseMapper.engineeringStat(page, wrapper);
if (engineeringStatPage.getRecords().size() > 0) {
List<EngineeringMain> engineeringMains = engineeringMainService.getByEngineeringSn(engineeringStatPage.getRecords().stream().map(e -> e.getEngineeringSn()).collect(Collectors.toList())); List<EngineeringMain> engineeringMains = engineeringMainService.getByEngineeringSn(engineeringStatPage.getRecords().stream().map(e -> e.getEngineeringSn()).collect(Collectors.toList()));
List<SystemDictData> state = systemDictDataService.getByType(ParamEnum.SysDictType.ENGINEERING_STATE.getValue()); List<SystemDictData> state = systemDictDataService.getByType(ParamEnum.SysDictType.ENGINEERING_STATE.getValue());
List<SystemDictData> type = systemDictDataService.getByType(ParamEnum.SysDictType.ENGINEERING_TYPE.getValue()); List<SystemDictData> type = systemDictDataService.getByType(ParamEnum.SysDictType.ENGINEERING_TYPE.getValue());
@ -195,6 +196,7 @@ public class EngineeringServiceImpl extends ServiceImpl<EngineeringMapper, Engin
stat.setEngineeringTypeName(CommonUtil.getDictValue(type, stat.getEngineeringType())); stat.setEngineeringTypeName(CommonUtil.getDictValue(type, stat.getEngineeringType()));
stat.setEngineeringUseName(CommonUtil.getDictValue(purpose, stat.getEngineeringUse())); stat.setEngineeringUseName(CommonUtil.getDictValue(purpose, stat.getEngineeringUse()));
} }
}
return engineeringStatPage; return engineeringStatPage;
} }

View File

@ -9,8 +9,12 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zhgd.jeecg.common.util.PageUtil; import com.zhgd.jeecg.common.util.PageUtil;
import com.zhgd.xmgl.async.AsyncAiAnalyse; import com.zhgd.xmgl.async.AsyncAiAnalyse;
import com.zhgd.xmgl.handler.exception.CustomException; import com.zhgd.xmgl.handler.exception.CustomException;
import com.zhgd.xmgl.modules.basicdata.dto.AnnexFileDto;
import com.zhgd.xmgl.modules.basicdata.dto.NoticeDto; import com.zhgd.xmgl.modules.basicdata.dto.NoticeDto;
import com.zhgd.xmgl.modules.basicdata.entity.*; import com.zhgd.xmgl.modules.basicdata.entity.AnnexFile;
import com.zhgd.xmgl.modules.basicdata.entity.Notice;
import com.zhgd.xmgl.modules.basicdata.entity.NoticeAccept;
import com.zhgd.xmgl.modules.basicdata.entity.SystemUser;
import com.zhgd.xmgl.modules.basicdata.mapper.NoticeMapper; import com.zhgd.xmgl.modules.basicdata.mapper.NoticeMapper;
import com.zhgd.xmgl.modules.basicdata.service.*; import com.zhgd.xmgl.modules.basicdata.service.*;
import com.zhgd.xmgl.modules.basicdata.vo.NoticeVo; import com.zhgd.xmgl.modules.basicdata.vo.NoticeVo;
@ -23,10 +27,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList; import java.util.*;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -105,7 +106,16 @@ public class NoticeServiceImpl extends ServiceImpl<NoticeMapper, Notice> impleme
List<NoticeAccept> noticeAcceptList = noticeAcceptService.getList(notice.getNoticeId()); List<NoticeAccept> noticeAcceptList = noticeAcceptService.getList(notice.getNoticeId());
noticeDto.setAcceptList(noticeAcceptList); noticeDto.setAcceptList(noticeAcceptList);
noticeDto.setAcceptSnList(noticeAcceptList.stream().map(n -> n.getAccept()).collect(Collectors.toList())); noticeDto.setAcceptSnList(noticeAcceptList.stream().map(n -> n.getAccept()).collect(Collectors.toList()));
noticeDto.setAnnexFileList(annexFileList); List<AnnexFileDto> annexFileDtoList = new ArrayList<>();
// annexFileList.stream().collect(Collectors.groupingBy((a) -> a.getLabel()));
Set<String> label = annexFileList.stream().map(a -> a.getLabel()).collect(Collectors.toSet());
for (String s : label) {
AnnexFileDto annexFileDto = new AnnexFileDto();
annexFileDto.setLabel(s);
annexFileDto.setAnnexFileList(annexFileList.stream().filter(a -> a.getLabel().equals(s)).collect(Collectors.toList()));
annexFileDtoList.add(annexFileDto);
}
noticeDto.setAnnexFileList(annexFileDtoList);
return noticeDto; return noticeDto;
} }

View File

@ -40,6 +40,9 @@ public class WorkerInfoDto {
@ApiModelProperty(value = "单位类型") @ApiModelProperty(value = "单位类型")
private String companyType; private String companyType;
@ApiModelProperty(value = "单位社会信用代码")
private String creditCode;
@ApiModelProperty(value = "班组") @ApiModelProperty(value = "班组")
private String teamName; private String teamName;
@ -57,4 +60,10 @@ public class WorkerInfoDto {
@ApiModelProperty(value = "年龄") @ApiModelProperty(value = "年龄")
private Integer age; private Integer age;
@ApiModelProperty(value = "项目地址")
private String projectAddress;
@ApiModelProperty(value = "参建项目")
private String projectName;
} }

View File

@ -305,4 +305,8 @@ public class WorkerInfo implements Serializable {
@Excel(name = "宇泛人像注册信息ID", width = 20) @Excel(name = "宇泛人像注册信息ID", width = 20)
@ApiModelProperty(value = "宇泛人像注册信息ID") @ApiModelProperty(value = "宇泛人像注册信息ID")
private String faceGuid; private String faceGuid;
@TableField(exist = false)
@ApiModelProperty(value = "学历")
private String educationLevelName;
} }

View File

@ -41,4 +41,6 @@ public interface WorkerInfoMapper extends BaseMapper<WorkerInfo> {
Map<String, Object> getByType(@Param(Constants.WRAPPER) Wrapper<WorkerInfo> wrapper); Map<String, Object> getByType(@Param(Constants.WRAPPER) Wrapper<WorkerInfo> wrapper);
Page<Map<String, Object>> attendStat(Page page, @Param(Constants.WRAPPER) Wrapper<WorkerInfo> wrapper); Page<Map<String, Object>> attendStat(Page page, @Param(Constants.WRAPPER) Wrapper<WorkerInfo> wrapper);
Page<WorkerInfoDto> getDetail(Page page, @Param(Constants.WRAPPER) Wrapper<WorkerInfo> wrapper);
} }

View File

@ -10,6 +10,18 @@
${ew.customSqlSegment} ${ew.customSqlSegment}
</select> </select>
<select id="getDetail" resultType="com.zhgd.xmgl.modules.wisdom.dto.WorkerInfoDto">
SELECT w.*, c.company_name, c.type as companyType, c.credit_code, t.team_name, wt.type_name as workerTypeName,
IFNULL(e.address, p.project_address) projectAddress,
IFNULL(e.engineering_name, p.project_name) projectName FROM worker_info w
LEFT JOIN company c ON w.company_sn = c.company_sn
LEFT JOIN team_info t ON w.team_sn = t.team_sn
LEFT JOIN worker_type wt ON w.worker_type = wt.id
LEFT JOIN engineering e ON w.engineering_sn = e.engineering_sn
LEFT JOIN project p ON w.project_sn = p.project_sn
${ew.customSqlSegment}
</select>
<select id="attendStat" resultType="java.util.Map"> <select id="attendStat" resultType="java.util.Map">
SELECT w.id, w.person_name personName, t.team_name teamName FROM worker_info w SELECT w.id, w.person_name personName, t.team_name teamName FROM worker_info w
LEFT JOIN team_info t ON w.team_sn = t.team_sn LEFT JOIN team_info t ON w.team_sn = t.team_sn

View File

@ -35,4 +35,6 @@ public interface IWorkerInfoService extends IService<WorkerInfo> {
boolean updateInfo(WorkerInfo workerInfo); boolean updateInfo(WorkerInfo workerInfo);
boolean delInfo(WorkerInfo workerInfo); boolean delInfo(WorkerInfo workerInfo);
Page<WorkerInfoDto> getDetail(Page page, Wrapper<WorkerInfo> wrapper);
} }

View File

@ -10,6 +10,8 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.zhgd.xmgl.async.AsyncAttendance; import com.zhgd.xmgl.async.AsyncAttendance;
import com.zhgd.xmgl.modules.basicdata.entity.SystemDictData;
import com.zhgd.xmgl.modules.basicdata.service.ISystemDictDataService;
import com.zhgd.xmgl.modules.wisdom.dto.WorkerInfoDto; import com.zhgd.xmgl.modules.wisdom.dto.WorkerInfoDto;
import com.zhgd.xmgl.modules.wisdom.entity.AttendanceStatistics; import com.zhgd.xmgl.modules.wisdom.entity.AttendanceStatistics;
import com.zhgd.xmgl.modules.wisdom.entity.WorkerInfo; import com.zhgd.xmgl.modules.wisdom.entity.WorkerInfo;
@ -20,6 +22,8 @@ import com.zhgd.xmgl.modules.wisdom.mapper.WorkerTypeMapper;
import com.zhgd.xmgl.modules.wisdom.service.IWorkerInfoService; import com.zhgd.xmgl.modules.wisdom.service.IWorkerInfoService;
import com.zhgd.xmgl.modules.wisdom.statistics.WorkerAttributeStat; import com.zhgd.xmgl.modules.wisdom.statistics.WorkerAttributeStat;
import com.zhgd.xmgl.modules.wisdom.statistics.WorkerInfoStat; import com.zhgd.xmgl.modules.wisdom.statistics.WorkerInfoStat;
import com.zhgd.xmgl.util.CommonUtil;
import com.zhgd.xmgl.util.ParamEnum;
import org.apache.commons.collections.MapUtils; import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -43,6 +47,9 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
@Autowired @Autowired
private WorkerTypeMapper workerTypeMapper; private WorkerTypeMapper workerTypeMapper;
@Autowired
private ISystemDictDataService systemDictDataService;
@Autowired @Autowired
private AttendanceStatisticsMapper attendanceStatisticsMapper; private AttendanceStatisticsMapper attendanceStatisticsMapper;
@ -80,8 +87,10 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
@Override @Override
public Page<WorkerInfo> getPageList(Page page, Wrapper<WorkerInfo> wrapper) { public Page<WorkerInfo> getPageList(Page page, Wrapper<WorkerInfo> wrapper) {
Page<WorkerInfo> pageList = baseMapper.selectPage(page, wrapper); Page<WorkerInfo> pageList = baseMapper.selectPage(page, wrapper);
List<SystemDictData> systemDictData = systemDictDataService.getByType(ParamEnum.SysDictType.EDUCATION_LEVEL.getValue());
for (WorkerInfo workerInfo : pageList.getRecords()) { for (WorkerInfo workerInfo : pageList.getRecords()) {
workerInfo.setAge(DateUtil.ageOfNow(workerInfo.getBirthday())); workerInfo.setAge(DateUtil.ageOfNow(workerInfo.getBirthday()));
workerInfo.setEducationLevelName(CommonUtil.getDictValue(systemDictData, workerInfo.getEducationLevel()));
} }
return pageList; return pageList;
} }
@ -244,6 +253,11 @@ public class WorkerInfoServiceImpl extends ServiceImpl<WorkerInfoMapper, WorkerI
return flag; return flag;
} }
@Override
public Page<WorkerInfoDto> getDetail(Page page, Wrapper<WorkerInfo> wrapper) {
return baseMapper.getDetail(page, wrapper);
}
private WorkerAttributeStat age(String attribute, Integer start, Integer end, List<WorkerInfo> workerByAge, Integer workerSum) { private WorkerAttributeStat age(String attribute, Integer start, Integer end, List<WorkerInfo> workerByAge, Integer workerSum) {
int num = workerByAge.stream().filter(w -> start <= DateUtil.ageOfNow(w.getBirthday()) int num = workerByAge.stream().filter(w -> start <= DateUtil.ageOfNow(w.getBirthday())
&& DateUtil.ageOfNow(w.getBirthday()) <= end).collect(Collectors.toList()).size(); && DateUtil.ageOfNow(w.getBirthday()) <= end).collect(Collectors.toList()).size();

View File

@ -47,7 +47,7 @@ public class ParamEnum {
ATTEND_SYNC_API("attend_sync_api", "考勤相关信息同步接口"), ATTEND_SYNC_API("attend_sync_api", "考勤相关信息同步接口"),
ENVIRONMENT_ALARM_TYPE("environment_alarm_type", "扬尘各类型预警"), ENVIRONMENT_ALARM_TYPE("environment_alarm_type", "扬尘各类型预警"),
ENVIRONMENT_ALARM_TYPE_THRESHOLD("environment_alarm_type_threshold", "扬尘各类型预警阈值"), ENVIRONMENT_ALARM_TYPE_THRESHOLD("environment_alarm_type_threshold", "扬尘各类型预警阈值"),
EDUCATION_LEVEL("education_level", "学历"),
NODE_PLAN_STATE("node_plan_state", "项目进度管理状态"); NODE_PLAN_STATE("node_plan_state", "项目进度管理状态");
private String value; private String value;
private String desc; private String desc;