diff --git a/src/main/java/com/zhgd/mybatis/DataScopeHandler.java b/src/main/java/com/zhgd/mybatis/DataScopeHandler.java index 75ec974a3..5ffb64951 100644 --- a/src/main/java/com/zhgd/mybatis/DataScopeHandler.java +++ b/src/main/java/com/zhgd/mybatis/DataScopeHandler.java @@ -260,7 +260,6 @@ public class DataScopeHandler implements DataPermissionHandler { tables.put("pipeline_welder", new MapBuilder().put(DEVICE_COLUMN, "device_unit_id").build()); tables.put("project_schedule", new MapBuilder().put(DEVICE_COLUMN, "device_unit_id").build()); tables.put("quality_supervise", new MapBuilder().put(DEVICE_COLUMN, "device_id").build()); - tables.put("worker_admission_detail", new MapBuilder().put(DEVICE_COLUMN, "work_area").build()); tables.put("danger_environment_evaluate", new MapBuilder().put(DEVICE_COLUMN, "device_id").put(PROJECT_COLUMN, "project_group_id").build()); tables.put("civilize_construction", new MapBuilder().put(DEVICE_COLUMN, "device_id").put(PROJECT_COLUMN, "project_group_id").build()); diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/entity/ReturnTrainingDetail.java b/src/main/java/com/zhgd/xmgl/modules/baotou/entity/ReturnTrainingDetail.java index 6428dac8b..ef840eb06 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/entity/ReturnTrainingDetail.java +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/entity/ReturnTrainingDetail.java @@ -47,7 +47,7 @@ public class ReturnTrainingDetail implements Serializable { * 工作区域(装置) */ @ApiModelProperty(value = "工作区域(装置)") - private java.lang.Long workArea; + private java.lang.String workAreaName; /** * 岗位(工种) */ @@ -94,9 +94,6 @@ public class ReturnTrainingDetail implements Serializable { @ApiModelProperty(value = "更新时间") private java.util.Date updateDate; - @TableField(exist = false) - @ApiModelProperty(value = "工作区域(装置)名称") - private java.lang.String workAreaName; @TableField(exist = false) @ApiModelProperty(value = "岗位(工种)名称") private java.lang.String postWorkTypeName; diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/entity/WorkerAdmissionDetail.java b/src/main/java/com/zhgd/xmgl/modules/baotou/entity/WorkerAdmissionDetail.java index d249c2d66..0e4ac3e41 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/entity/WorkerAdmissionDetail.java +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/entity/WorkerAdmissionDetail.java @@ -78,7 +78,7 @@ public class WorkerAdmissionDetail implements Serializable { */ @Excel(name = "工作区域(装置)", width = 15) @ApiModelProperty(value = "工作区域(装置)") - private java.lang.Long workArea; + private java.lang.String workAreaName; /** * 岗位(工种) */ @@ -191,9 +191,6 @@ public class WorkerAdmissionDetail implements Serializable { @ApiModelProperty(value = "单位名称") private java.lang.String enterpriseName; @TableField(exist = false) - @ApiModelProperty(value = "工作区域(装置)名称") - private java.lang.String workAreaName; - @TableField(exist = false) @ApiModelProperty(value = "岗位(工种)名称") private java.lang.String postWorkTypeName; @TableField(exist = false) diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/mapper/xml/ReturnTrainingDetailMapper.xml b/src/main/java/com/zhgd/xmgl/modules/baotou/mapper/xml/ReturnTrainingDetailMapper.xml index 9ccc214e0..319a6969b 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/mapper/xml/ReturnTrainingDetailMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/mapper/xml/ReturnTrainingDetailMapper.xml @@ -4,7 +4,6 @@ select * from ( select t.* - ,du.device_unit_name as work_area_name ,if(a.person_type=1,wt.type_name,c.department_name) as post_work_type_name ,etr.score ,etr.id as record_id @@ -41,7 +38,6 @@ from return_training_detail t join return_training_application rta on rta.id=t.application_id left join exam_train_record etr on etr.application_id=rta.id and etr.worker_card=t.id_card and etr.submit = 1 - left join device_unit du on du.id=t.work_area LEFT JOIN worker_info a on a.id_card=t.id_card LEFT JOIN team_info b ON a.team_id = b.id LEFT JOIN department_info c ON a.department_id = c.id diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/mapper/xml/WorkerAdmissionDetailMapper.xml b/src/main/java/com/zhgd/xmgl/modules/baotou/mapper/xml/WorkerAdmissionDetailMapper.xml index cf8854ff8..1bb2ff0e4 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/mapper/xml/WorkerAdmissionDetailMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/mapper/xml/WorkerAdmissionDetailMapper.xml @@ -18,7 +18,6 @@ from (select t.*, ei1.enterprise_name as epc_cbs_name, ei2.enterprise_name as enterprise_name, - du1.device_unit_name as work_area_name, t2.name as post_work_type_name, tr.start_exam_time, tr.is_pass, @@ -31,7 +30,6 @@ left join worker_admission wa on wa.id=t.worker_admission_id left join enterprise_info ei1 on ei1.id=t.epc_cbs left join enterprise_info ei2 on ei2.id=t.enterprise_id - left join device_unit du1 on du1.id=t.work_area @@ -76,12 +74,10 @@ from (select t.*, ei1.enterprise_name as epc_cbs_name, ei2.enterprise_name as enterprise_name, - du1.device_unit_name as work_area_name, t2.name as post_work_type_name from worker_admission_detail t left join enterprise_info ei1 on ei1.id=t.epc_cbs left join enterprise_info ei2 on ei2.id=t.enterprise_id - left join device_unit du1 on du1.id=t.work_area left join ( diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/service/impl/CivilizeConstructionServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/baotou/service/impl/CivilizeConstructionServiceImpl.java index c74367609..b91a2663c 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/service/impl/CivilizeConstructionServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/service/impl/CivilizeConstructionServiceImpl.java @@ -189,11 +189,11 @@ public class CivilizeConstructionServiceImpl extends ServiceImpl userIdsByUnit = noticeService.getUserIdsByUnit(new NoticeUnit(record.getProjectSn(), record.getProjectGroupId(), record.getSupervisingUnitId(), record.getEpcContractorId(), record.getConstructionUnitId())); - EnterpriseInfo enterpriseInfo = enterpriseInfoService.getOne(new LambdaQueryWrapper().eq(EnterpriseInfo::getId, record.getConstructionUnitId()).last(Cts.IGNORE_DATA_SCOPE_CONDITION)); - noticeService.addUsersNotice(userIdsByUnit, "新增文明施工检查", - StrUtil.format("标题:文明施工检查,内容:{}发现文明施工问题,请及时整改。发送时间:{}", - enterpriseInfo.getEnterpriseName(), DateUtil.now()), "10"); +// List userIdsByUnit = noticeService.getUserIdsByUnit(new NoticeUnit(record.getProjectSn(), record.getProjectGroupId(), record.getSupervisingUnitId(), record.getEpcContractorId(), record.getConstructionUnitId())); +// EnterpriseInfo enterpriseInfo = enterpriseInfoService.getOne(new LambdaQueryWrapper().eq(EnterpriseInfo::getId, record.getConstructionUnitId()).last(Cts.IGNORE_DATA_SCOPE_CONDITION)); +// noticeService.addUsersNotice(userIdsByUnit, "新增文明施工检查", +// StrUtil.format("标题:文明施工检查,内容:{}发现文明施工问题,请及时整改。发送时间:{}", +// enterpriseInfo.getEnterpriseName(), DateUtil.now()), "10"); baseMapper.insert(record); } diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/service/impl/ConstructionEquipmentToolServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/baotou/service/impl/ConstructionEquipmentToolServiceImpl.java index 9ac6abe06..d17b7de03 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/service/impl/ConstructionEquipmentToolServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/service/impl/ConstructionEquipmentToolServiceImpl.java @@ -157,7 +157,7 @@ public class ConstructionEquipmentToolServiceImpl extends ServiceImpl detailList = contractorMonthlyDetailService.list(new LambdaQueryWrapper() .eq(ContractorMonthlyDetail::getApproveId, approveId)); diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/service/impl/EngineerControllerCheckServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/baotou/service/impl/EngineerControllerCheckServiceImpl.java index beaa5ccf1..7bfc2f271 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/service/impl/EngineerControllerCheckServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/service/impl/EngineerControllerCheckServiceImpl.java @@ -131,6 +131,8 @@ public class EngineerControllerCheckServiceImpl extends ServiceImpl m.getWorkerName()).orElse(null)); - detail.setWorkArea(FlowUtil.getPullDownLong(jo, "field4239411495267")); + detail.setWorkAreaName(FlowUtil.getString(jo, "field6900388110980")); detail.setPostWorkType(FlowUtil.getPullDownLong(jo, "field7484411505770")); detail.setSex(FlowUtil.getPullDownInteger(jo, "field9370711501896")); detail.setAge(Convert.toStr(FlowUtil.getInteger(jo, "field9087611515056"))); @@ -159,7 +159,7 @@ public class ReturnTrainingApplicationServiceImpl extends ServiceImpl m.getWorkerName()).orElse(null)); - detail.setWorkArea(FlowUtil.getPullDownLong(jo, "field2982911864361")); + detail.setWorkAreaName(FlowUtil.getString(jo, "field9629988265932")); detail.setPostWorkType(FlowUtil.getPullDownLong(jo, "field4744811867669")); detail.setSex(FlowUtil.getPullDownInteger(jo, "field1418511843858")); detail.setAge(FlowUtil.getString(jo, "field1290511871434")); diff --git a/src/main/java/com/zhgd/xmgl/modules/baotou/service/impl/WorkerAdmissionDetailServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/baotou/service/impl/WorkerAdmissionDetailServiceImpl.java index 29a03a68a..317e989a9 100644 --- a/src/main/java/com/zhgd/xmgl/modules/baotou/service/impl/WorkerAdmissionDetailServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/baotou/service/impl/WorkerAdmissionDetailServiceImpl.java @@ -450,7 +450,6 @@ public class WorkerAdmissionDetailServiceImpl extends ServiceImpl idCardMap = IdCardUtils.getBirthdayAgeSex(idCard); Integer sex = Integer.valueOf(idCardMap.get("sex")); Integer isCertificateQualified = FlowUtil.getPullDownInteger(m, "field1062926653275"); @@ -238,7 +237,7 @@ public class WorkerAdmissionServiceImpl extends ServiceImpl op = workerTypeList.stream().filter(p -> Objects.equals(p.getData(), postWorkType + "")).findFirst(); String team = null; @@ -426,7 +425,7 @@ public class WorkerAdmissionServiceImpl extends ServiceImpl o.getEnterpriseName().equals(importInfo.get("单位"))).findFirst().map(EnterpriseInfo::getId).orElse(null)); - detail.setWorkArea(deviceUnits.stream().filter(o -> o.getDeviceUnitName().equals(importInfo.get("*工作区域"))).findFirst().map(o -> o.getId()).orElse(null)); + detail.setWorkAreaName(importInfo.get("*工作区域")); detail.setPostWorkType(workerTypeList.stream().filter(o -> o.getName().equals(importInfo.get("*岗位(工种)"))).findFirst().map(o -> Integer.valueOf(o.getData())).orElse(null)); //detail.setTeam(""); Map idCardInfoMap = IdCardUtils.getBirthdayAgeSex(importInfo.get("*身份证号")); diff --git a/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/FlowOrgRepositoryServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/FlowOrgRepositoryServiceImpl.java index 91803d2d0..f87e7c2fc 100644 --- a/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/FlowOrgRepositoryServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/basicdata/service/impl/FlowOrgRepositoryServiceImpl.java @@ -9,7 +9,9 @@ import com.wflow.bean.do_.DeptDo; import com.wflow.bean.do_.RoleDo; import com.wflow.bean.do_.UserDeptDo; import com.wflow.bean.do_.UserDo; -import com.wflow.bean.entity.*; +import com.wflow.bean.entity.WflowModelHistorys; +import com.wflow.bean.entity.WflowModelPerms; +import com.wflow.bean.entity.WflowModels; import com.wflow.bean.vo.ModelGroupVo; import com.wflow.bean.vo.OrgTreeVo; import com.wflow.bean.vo.UserVo; @@ -18,19 +20,26 @@ import com.wflow.mapper.WflowModelsMapper; import com.wflow.service.OrgRepositoryService; import com.wflow.workflow.bean.dto.NotifyDto; import com.wflow.workflow.bean.process.OrgUser; +import com.zhgd.xmgl.constant.Cts; import com.zhgd.xmgl.modules.basicdata.entity.BaseRole; import com.zhgd.xmgl.modules.basicdata.entity.BaseRoleUser; import com.zhgd.xmgl.modules.basicdata.entity.SystemUser; import com.zhgd.xmgl.modules.basicdata.mapper.BaseRoleMapper; import com.zhgd.xmgl.modules.basicdata.mapper.BaseRoleUserMapper; import com.zhgd.xmgl.modules.basicdata.mapper.SystemUserMapper; +import com.zhgd.xmgl.modules.basicdata.service.ISystemUserService; +import com.zhgd.xmgl.modules.worker.entity.EnterpriseInfo; +import com.zhgd.xmgl.modules.worker.entity.WorkerInfo; import com.zhgd.xmgl.modules.worker.mapper.DepartmentInfoMapper; import com.zhgd.xmgl.modules.worker.mapper.EnterpriseInfoMapper; import com.zhgd.xmgl.modules.worker.mapper.TeamInfoMapper; +import com.zhgd.xmgl.modules.worker.service.impl.EnterpriseInfoServiceImpl; +import com.zhgd.xmgl.modules.worker.service.impl.WorkerInfoServiceImpl; import com.zhgd.xmgl.modules.xz.entity.XzProjectOrg; import com.zhgd.xmgl.modules.xz.mapper.XzProjectOrgMapper; import com.zhgd.xmgl.tenant.TenantContextHolder; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Primary; import org.springframework.stereotype.Service; @@ -41,35 +50,35 @@ import java.util.stream.Collectors; @Service public class FlowOrgRepositoryServiceImpl implements OrgRepositoryService { + @Autowired + @Lazy + EnterpriseInfoServiceImpl enterpriseInfoService; @Autowired private SystemUserMapper systemUserMapper; - @Autowired private BaseRoleUserMapper baseRoleUserMapper; - @Autowired private BaseRoleMapper systemRoleMapper; - @Autowired private XzProjectOrgMapper xzProjectOrgMapper; - @Autowired private WflowModelPermsMapper modelPermsMapper; - @Autowired private WflowModelsMapper wflowModelsMapper; - @Autowired private TeamInfoMapper teamInfoMapper; - @Autowired private DepartmentInfoMapper departmentInfoMapper; - @Autowired private EnterpriseInfoMapper enterpriseInfoMapper; - @Autowired private NoticeServiceImpl noticeService; + @Lazy + @Autowired + private ISystemUserService systemUserService; + @Lazy + @Autowired + private WorkerInfoServiceImpl workerInfoService; @Override public List getModelsByPerm(String userId) { @@ -104,7 +113,7 @@ public class FlowOrgRepositoryServiceImpl implements OrgRepositoryService { return list; } - private void getList(Long deptId, List orgList){ + private void getList(Long deptId, List orgList) { XzProjectOrg parentId = xzProjectOrgMapper.selectOne(Wrappers.lambdaQuery().eq(XzProjectOrg::getId, deptId)); if (parentId != null) { getList(parentId.getParentId(), orgList); @@ -318,6 +327,21 @@ public class FlowOrgRepositoryServiceImpl implements OrgRepositoryService { noticeService.addUserNoticeAndApp(Long.valueOf(notify.getTarget()), notify.getTitle(), notify.getContent(), "10"); } + @Override + public com.alibaba.fastjson2.JSONObject getEnterpriseByUserId(String id) { + SystemUser systemUser = systemUserService.getById(id); + if (systemUser != null) { + List workerInfos = workerInfoService.list(new LambdaQueryWrapper() + .eq(WorkerInfo::getId, systemUser.getWorkerId()).last(Cts.IGNORE_DATA_SCOPE_CONDITION)); + if (CollUtil.isNotEmpty(workerInfos)) { + List enterpriseInfos = enterpriseInfoService.list(new LambdaQueryWrapper() + .eq(EnterpriseInfo::getId, workerInfos.get(0).getEnterpriseId()).last(Cts.IGNORE_DATA_SCOPE_CONDITION)); + return CollUtil.isNotEmpty(enterpriseInfos) ? com.alibaba.fastjson2.JSONObject.parseObject(JSON.toJSONString(enterpriseInfos.get(0))) : new com.alibaba.fastjson2.JSONObject(); + } + } + return null; + } + @Override public List selectEnterpriseByPy(String py) { String tenantId = TenantContextHolder.getTenantId(); diff --git a/src/main/java/com/zhgd/xmgl/modules/exam/mapper/xml/ExamTrainRecordMapper.xml b/src/main/java/com/zhgd/xmgl/modules/exam/mapper/xml/ExamTrainRecordMapper.xml index 0ff14dc38..7ccb98e81 100644 --- a/src/main/java/com/zhgd/xmgl/modules/exam/mapper/xml/ExamTrainRecordMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/exam/mapper/xml/ExamTrainRecordMapper.xml @@ -12,8 +12,7 @@ ei.enterprise_name, null as epc_cbs, null as epc_cbs_name, - wi.work_area as work_area, - du.device_unit_name as work_area_name, + wi.work_area_name as work_area_name, ifnull(wt.type_name,di.department_name) as work_type, wi.sex as sex, YEAR(CURDATE())-YEAR(wi.birthday) as age, @@ -31,7 +30,6 @@ left join enterprise_info ei on ei.id=wi.enterprise_id left join (select worker_id,certificate_number from worker_certificate group by worker_id) wc on ec.worker_id = wc.worker_id - left join device_unit du on du.id=wi.work_area where es.type!=1 and ec.submit = 1 ) a ${ew.customSqlSegment} @@ -45,8 +43,7 @@ ei.enterprise_name, wi.epc_cbs as epc_cbs, ei1.enterprise_name as epc_cbs_name, - wi.work_area as work_area, - du.device_unit_name as work_area_name, + wi.work_area_name as work_area_name, dt.name as work_type, wi.sex as sex, wi.age as age, @@ -62,7 +59,6 @@ left join enterprise_info ei1 on ei1.id=wi.epc_cbs left join (select worker_admission_detail_id,certificate_number from worker_admission_certificate_detail group by worker_admission_detail_id) wc on wc.worker_admission_detail_id = wi.id - left join device_unit du on du.id=wi.work_area left join ( SELECT * FROM dictionary_item @@ -208,7 +204,7 @@ wi.safe_score, wi.send_success_status, wi.exit_safe_score, - wi.work_area, + wi.work_area_name, wi.num, wi.worker_admission_detail_id, wi.entry_deadline, @@ -252,8 +248,7 @@ ei.enterprise_name, null as epc_cbs, null as epc_cbs_name, - wi.work_area as work_area, - du.device_unit_name as work_area_name, + wi.work_area_name as work_area_name, ifnull(wt.type_name,di.department_name) as work_type, wi.sex as sex, YEAR(CURDATE())-YEAR(wi.birthday) as age, @@ -270,7 +265,6 @@ left join enterprise_info ei on ei.id=wi.enterprise_id left join (select worker_id,certificate_number from worker_certificate group by worker_id) wc on ec.worker_id = wc.worker_id - left join device_unit du on du.id=wi.work_area where es.type!=1 and ec.submit = 1 ) a where a.id=#{recordId} @@ -284,8 +278,7 @@ ei.enterprise_name, wi.epc_cbs as epc_cbs, ei1.enterprise_name as epc_cbs_name, - wi.work_area as work_area, - du.device_unit_name as work_area_name, + wi.work_area_name as work_area_name, dt.name as work_type, wi.sex as sex, wi.age as age, @@ -300,7 +293,6 @@ left join enterprise_info ei1 on ei1.id=wi.epc_cbs left join (select worker_admission_detail_id,certificate_number from worker_admission_certificate_detail group by worker_admission_detail_id) wc on wc.worker_admission_detail_id = wi.id - left join device_unit du on du.id=wi.work_area left join ( SELECT * FROM dictionary_item diff --git a/src/main/java/com/zhgd/xmgl/modules/exam/vo/ExamTrainRecordVo.java b/src/main/java/com/zhgd/xmgl/modules/exam/vo/ExamTrainRecordVo.java index 63eea0da8..882a837dd 100644 --- a/src/main/java/com/zhgd/xmgl/modules/exam/vo/ExamTrainRecordVo.java +++ b/src/main/java/com/zhgd/xmgl/modules/exam/vo/ExamTrainRecordVo.java @@ -251,7 +251,7 @@ public class ExamTrainRecordVo extends ExamTrainRecord { */ @Excel(name = "工作区域(装置)", width = 15) @ApiModelProperty(value = "工作区域(装置)") - private java.lang.Long workArea; + private java.lang.String workAreaName; @ApiModelProperty(value = "班组名称") private String teamName; @@ -277,8 +277,6 @@ public class ExamTrainRecordVo extends ExamTrainRecord { private java.lang.String certificateNumber; @ApiModelProperty(value = "EPC承包商名称") private java.lang.String epcCbsName; - @ApiModelProperty(value = "工作区域(装置)名称") - private java.lang.String workAreaName; @ApiModelProperty(value = "分类:1:入场培训;2:复工培训;3:专项培训") private Integer subjectType; @ApiModelProperty(value = "岗位(工种)名称") diff --git a/src/main/java/com/zhgd/xmgl/modules/project/controller/ProjectEnterpriseController.java b/src/main/java/com/zhgd/xmgl/modules/project/controller/ProjectEnterpriseController.java index 9be6d2144..aaedc58c6 100644 --- a/src/main/java/com/zhgd/xmgl/modules/project/controller/ProjectEnterpriseController.java +++ b/src/main/java/com/zhgd/xmgl/modules/project/controller/ProjectEnterpriseController.java @@ -5,6 +5,8 @@ import cn.hutool.core.convert.Convert; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.gexin.fastjson.JSON; +import com.gexin.fastjson.JSONArray; +import com.gexin.fastjson.JSONObject; import com.zhgd.annotation.OperLog; import com.zhgd.jeecg.common.api.vo.Result; import com.zhgd.jeecg.common.execption.OpenAlertException; @@ -30,6 +32,8 @@ import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.MapUtils; +import org.apache.commons.lang3.StringUtils; +import org.simpleframework.xml.core.Validate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.web.bind.annotation.PostMapping; @@ -243,41 +247,64 @@ public class ProjectEnterpriseController { throw new OpenAlertException("企业资质不能为空"); } String title = "承包商入场申请"; - EnterpriseInfo existEnterpriseInfo = enterpriseInfoService.getOne(new LambdaQueryWrapper().eq(EnterpriseInfo::getSocialCode, socialCode).last(Cts.IGNORE_DATA_SCOPE_CONDITION)); - if (existEnterpriseInfo != null) { - List projectEnterpriseList = projectEnterpriseService.list(new LambdaQueryWrapper() - .eq(ProjectEnterprise::getEnterpriseId, existEnterpriseInfo.getId()) - .eq(ProjectEnterprise::getProjectSn, projectSn)); - if (CollUtil.isNotEmpty(projectEnterpriseList)) { - String msg = sub + "已存在"; - noticeService.addProjectLevelNotice(projectSn, title, msg, "10", null); - throw new OpenAlertException(msg); - } - } - HashSet haveQualificationTypes = new HashSet<>(); - if (Objects.equals(enterpriseTypeId, 6)) { - //专业分包 - haveQualificationTypes.add(1); - haveQualificationTypes.add(3); - haveQualificationTypes.add(4); - haveQualificationTypes.add(5); - haveQualificationTypes.add(6); - haveQualificationTypes.add(7); - } else { - haveQualificationTypes.add(1); - haveQualificationTypes.add(2); - } - for (Object qr : enterpriseQualifications) { - Map map1 = (Map) qr; - Integer qualificationType = Optional.ofNullable(map1.get("field6906058457282")).map(o -> Convert.toInt(((List) o).get(0))).orElse(null); - haveQualificationTypes.remove(qualificationType); +// EnterpriseInfo existEnterpriseInfo = enterpriseInfoService.getOne(new LambdaQueryWrapper().eq(EnterpriseInfo::getSocialCode, socialCode).last(Cts.IGNORE_DATA_SCOPE_CONDITION)); +// if (existEnterpriseInfo != null) { +// List projectEnterpriseList = projectEnterpriseService.list(new LambdaQueryWrapper() +// .eq(ProjectEnterprise::getEnterpriseId, existEnterpriseInfo.getId()) +// .eq(ProjectEnterprise::getProjectSn, projectSn)); +// if (CollUtil.isNotEmpty(projectEnterpriseList)) { +// String msg = sub + "已存在"; +// noticeService.addProjectLevelNotice(projectSn, title, msg, "10", null); +// throw new OpenAlertException(msg); +// } +// } +// HashSet haveQualificationTypes = new HashSet<>(); +// if (Objects.equals(enterpriseTypeId, 6)) { +// //专业分包 +// haveQualificationTypes.add(1); +// haveQualificationTypes.add(3); +// haveQualificationTypes.add(4); +// haveQualificationTypes.add(5); +// haveQualificationTypes.add(6); +// haveQualificationTypes.add(7); +// } else { +// haveQualificationTypes.add(1); +// haveQualificationTypes.add(2); +// } +// for (Object qr : enterpriseQualifications) { +// Map map1 = (Map) qr; +// Integer qualificationType = Optional.ofNullable(map1.get("field6906058457282")).map(o -> Convert.toInt(((List) o).get(0))).orElse(null); +// haveQualificationTypes.remove(qualificationType); +// } +// if (CollUtil.isNotEmpty(haveQualificationTypes)) { +// if (Objects.equals(enterpriseTypeId, 6L)) { +// throw new OpenAlertException("需要上传营业执照、企业资质、设计资质(设计专业提供)、安全生产许可证、职业健康安全管理体系认证证书、环境管理体系认证证书"); +// } else { +// throw new OpenAlertException("需要上传营业执照、资质证书"); +// } +// } + HashSet haveQualificationTypes = new HashSet<>(); + haveQualificationTypes.add("6"); + haveQualificationTypes.add("7"); + haveQualificationTypes.add("8"); + JSONArray ja = JSON.parseArray(JSON.toJSONString(map.get("field4204582838396"))); + for (int i = 0; i < ja.size(); i++) { + JSONObject jo = ja.getJSONObject(i); + String type = FlowUtil.getPullDownString(jo, "field6906058457282"); + haveQualificationTypes.remove(type); } if (CollUtil.isNotEmpty(haveQualificationTypes)) { - if (Objects.equals(enterpriseTypeId, 6L)) { - throw new OpenAlertException("需要上传营业执照、企业资质、设计资质(设计专业提供)、安全生产许可证、职业健康安全管理体系认证证书、环境管理体系认证证书"); - } else { - throw new OpenAlertException("需要上传营业执照、资质证书"); + String typeName = ""; + if (haveQualificationTypes.contains("6")) { + typeName += "职业健康安全管理体系认证证书、"; } + if (haveQualificationTypes.contains("7")) { + typeName += "环境管理体系认证证书、"; + } + if (haveQualificationTypes.contains("8")) { + typeName += "质量管理体系认证证书、"; + } + throw new OpenAlertException("需要上传" + StringUtils.removeEnd(typeName, "、")); } return Result.ok(); } @@ -346,35 +373,35 @@ public class ProjectEnterpriseController { enterpriseInfo.setProjectDirectorName(projectDirectorName); enterpriseInfo.setProjectDirectorPhone(projectDirectorPhone); enterpriseInfo.setProjectSn(projectSn); - String sub = enterpriseName + "(信用代码:" + socialCode + ")"; - EnterpriseInfo existEnterpriseInfo = enterpriseInfoService.getOne(new LambdaQueryWrapper().eq(EnterpriseInfo::getSocialCode, socialCode).last(Cts.IGNORE_DATA_SCOPE_CONDITION)); - if (existEnterpriseInfo != null) { - List projectEnterpriseList = projectEnterpriseService.list(new LambdaQueryWrapper() - .eq(ProjectEnterprise::getEnterpriseId, existEnterpriseInfo.getId()) - .eq(ProjectEnterprise::getProjectSn, projectSn)); - if (CollUtil.isNotEmpty(projectEnterpriseList)) { - String msg = sub + "已存在"; - noticeService.addProjectLevelNotice(projectSn, title, msg, "10", null); - return Result.ok(); - } - } +// String sub = enterpriseName + "(信用代码:" + socialCode + ")"; +// EnterpriseInfo existEnterpriseInfo = enterpriseInfoService.getOne(new LambdaQueryWrapper().eq(EnterpriseInfo::getSocialCode, socialCode).last(Cts.IGNORE_DATA_SCOPE_CONDITION)); +// if (existEnterpriseInfo != null) { +// List projectEnterpriseList = projectEnterpriseService.list(new LambdaQueryWrapper() +// .eq(ProjectEnterprise::getEnterpriseId, existEnterpriseInfo.getId()) +// .eq(ProjectEnterprise::getProjectSn, projectSn)); +// if (CollUtil.isNotEmpty(projectEnterpriseList)) { +// String msg = sub + "已存在"; +// noticeService.addProjectLevelNotice(projectSn, title, msg, "10", null); +// return Result.ok(); +// } +// } List enterpriseQualifications = Optional.ofNullable(map.get("enterpriseQualifications")).map(o -> ((List) o)).orElse(null); if (CollUtil.isEmpty(enterpriseQualifications)) { throw new OpenAlertException("企业资质不能为空"); } - HashSet haveQualificationTypes = new HashSet<>(); - if (Objects.equals(enterpriseTypeId, 6)) { - //专业分包 - haveQualificationTypes.add(1); - haveQualificationTypes.add(3); - haveQualificationTypes.add(4); - haveQualificationTypes.add(5); - haveQualificationTypes.add(6); - haveQualificationTypes.add(7); - } else { - haveQualificationTypes.add(1); - haveQualificationTypes.add(2); - } +// HashSet haveQualificationTypes = new HashSet<>(); +// if (Objects.equals(enterpriseTypeId, 6)) { +// //专业分包 +// haveQualificationTypes.add(1); +// haveQualificationTypes.add(3); +// haveQualificationTypes.add(4); +// haveQualificationTypes.add(5); +// haveQualificationTypes.add(6); +// haveQualificationTypes.add(7); +// } else { +// haveQualificationTypes.add(1); +// haveQualificationTypes.add(2); +// } ArrayList qualificationList = new ArrayList<>(); for (Object qr : enterpriseQualifications) { Map map1 = (Map) qr; @@ -386,7 +413,7 @@ public class ProjectEnterpriseController { Integer qualificationType = Optional.ofNullable(map1.get("field6906058457282")).map(o -> Convert.toInt(((List) o).get(0))).orElse(null); Date qualificationStartTime = FlowUtil.getStartDate(map1, "field8056482998908"); Date qualificationEndTime = FlowUtil.getEndDate(map1, "field8056482998908"); - haveQualificationTypes.remove(qualificationType); +// haveQualificationTypes.remove(qualificationType); EnterpriseQualification qualification = new EnterpriseQualification(); // qualification.setEnterpriseId(0L); qualification.setFileName(fileName); @@ -399,14 +426,14 @@ public class ProjectEnterpriseController { qualification.setQualificationEndTime(qualificationEndTime); qualificationList.add(qualification); } - if (CollUtil.isNotEmpty(haveQualificationTypes)) { - if (Objects.equals(enterpriseTypeId, 6L)) { - throw new OpenAlertException("需要上传营业执照、企业资质、设计资质(设计专业提供)、安全生产许可证、职业健康安全管理体系认证证书、环境管理体系认证证书"); - } else { - throw new OpenAlertException("需要上传营业执照、资质证书"); - } - } - enterpriseInfoService.saveEnterpriseInfo(enterpriseInfo); +// if (CollUtil.isNotEmpty(haveQualificationTypes)) { +// if (Objects.equals(enterpriseTypeId, 6L)) { +// throw new OpenAlertException("需要上传营业执照、企业资质、设计资质(设计专业提供)、安全生产许可证、职业健康安全管理体系认证证书、环境管理体系认证证书"); +// } else { +// throw new OpenAlertException("需要上传营业执照、资质证书"); +// } +// } + enterpriseInfoService.saveObj(enterpriseInfo); for (EnterpriseQualification qualification : qualificationList) { qualification.setEnterpriseId(enterpriseInfo.getId()); } diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/controller/WorkerInfoController.java b/src/main/java/com/zhgd/xmgl/modules/worker/controller/WorkerInfoController.java index dd176b287..ab6df854f 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/controller/WorkerInfoController.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/controller/WorkerInfoController.java @@ -1,7 +1,18 @@ package com.zhgd.xmgl.modules.worker.controller; +import cn.afterturn.easypoi.excel.ExcelExportUtil; +import cn.afterturn.easypoi.excel.entity.ExportParams; +import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.io.FileUtil; +import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.StrUtil; +import cn.hutool.core.util.ZipUtil; +import cn.hutool.extra.qrcode.QrCodeUtil; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.gexin.fastjson.TypeReference; import com.zhgd.annotation.OperLog; import com.zhgd.jeecg.common.api.vo.Result; import com.zhgd.jeecg.common.mybatis.EntityMap; @@ -12,20 +23,29 @@ import com.zhgd.xmgl.base.entity.vo.TrendOneVo; import com.zhgd.xmgl.modules.worker.entity.WorkerInfo; import com.zhgd.xmgl.modules.worker.entity.vo.*; import com.zhgd.xmgl.modules.worker.service.IWorkerInfoService; +import com.zhgd.xmgl.util.JoBuilder; +import com.zhgd.xmgl.util.MapBuilder; +import com.zhgd.xmgl.util.MinioUtils; +import com.zhgd.xmgl.util.PathUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.MapUtils; +import org.apache.poi.ss.usermodel.Workbook; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import springfox.documentation.annotations.ApiIgnore; +import java.io.File; +import java.io.FileOutputStream; import java.io.IOException; import java.util.*; +import java.util.function.Function; +import java.util.stream.Collectors; /** @@ -40,6 +60,9 @@ import java.util.*; @Slf4j @Api(tags = "劳务人员") public class WorkerInfoController { + @Lazy + @Autowired + MinioUtils minioUtils; @Autowired private IWorkerInfoService workerInfoService; @Autowired @@ -113,7 +136,6 @@ public class WorkerInfoController { return Result.ok(); } - /** * 通过id查询 * @@ -128,7 +150,6 @@ public class WorkerInfoController { return Result.success(workerInfoService.queryById(MapUtils.getString(map, "id"))); } - @OperLog(operModul = "劳务管理", operType = "查询", operDesc = "分页列表查询劳务人员") @ApiOperation(value = "分页列表查询劳务人员(常用)", notes = "分页列表查询劳务人员(常用)", httpMethod = "POST") @ApiImplicitParams({ @@ -167,7 +188,6 @@ public class WorkerInfoController { return Result.success(workerInfoService.selectWorkerInfoList(map)); } - @OperLog(operModul = "劳务管理", operType = "查询", operDesc = "人员总览人员类型和教育统计") @ApiOperation(value = "人员总览人员类型和教育统计(常用)", notes = "人员总览人员类型和教育统计(常用)") @ApiImplicitParams({ @@ -204,7 +224,6 @@ public class WorkerInfoController { return Result.success(workerInfoService.selectWorkerInfoList(map)); } - @OperLog(operModul = "劳务管理", operType = "查询", operDesc = "查询全部人员信息") @ApiOperation(value = "查询全部人员信息", notes = "查询全部人员信息", httpMethod = "GET") @ApiImplicitParams({ @@ -229,7 +248,6 @@ public class WorkerInfoController { return Result.success(Collections.singleton(workerInfoService.selectWorkerInfoList(map))); } - @ApiIdempotent @OperLog(operModul = "劳务管理", operType = "批量修改劳务人员班组", operDesc = "批量修改劳务人员班组") @ApiOperation(value = "批量修改劳务人员班组", notes = "批量修改劳务人员班组", httpMethod = "POST") @@ -301,7 +319,6 @@ public class WorkerInfoController { return Result.success(workerInfoService.getLaborManagementInfoList(map)); } - @OperLog(operModul = "劳务管理", operType = "查询", operDesc = "统计企业下项目各人员统计") @ApiOperation(value = "统计企业下项目各人员统计", notes = "统计企业下项目各人员统计") @ApiImplicitParams({ @@ -356,7 +373,6 @@ public class WorkerInfoController { return Result.success(workerInfoService.selectWorkerManageEnterpriseStatistics(map)); } - @OperLog(operModul = "劳务管理", operType = "查询", operDesc = "项目人员统计") @ApiOperation(value = "项目人员统计", notes = "项目人员统计") @ApiImplicitParams({ @@ -377,7 +393,6 @@ public class WorkerInfoController { return Result.success(workerInfoService.selectProjectPresentWorkerList(map)); } - @OperLog(operModul = "劳务管理", operType = "查询", operDesc = "查询所有工种出勤、在场人数列表") @ApiOperation(value = "查询所有工种出勤、在场人数列表", notes = "查询所有工种出勤、在场人数列表") @ApiImplicitParams({ @@ -503,7 +518,6 @@ public class WorkerInfoController { return Result.success(workerInfoService.getPersonnelSituationNum(projectSn)); } - @OperLog(operModul = "劳务管理", operType = "查询", operDesc = "指挥中心-人员概况") @ApiOperation(value = "指挥中心-人员概况", notes = "指挥中心-人员概况") @ApiImplicitParams({ @@ -514,7 +528,6 @@ public class WorkerInfoController { return Result.success(workerInfoService.getPersonnelSituation(projectSn)); } - @OperLog(operModul = "劳务管理", operType = "查询", operDesc = "人员管理-通过项目id,获取各种人员数量") @ApiOperation(value = "人员管理-通过项目id,获取各种人员数量", notes = "人员管理-通过项目id,以及时间区间查询人员增长趋势") @ApiImplicitParams({ @@ -539,7 +552,6 @@ public class WorkerInfoController { return Result.success(workerInfoService.getDeclareAge(map)); } - @OperLog(operModul = "劳务管理", operType = "查询", operDesc = "人员管理-通过项目sn,以及时间区间查询人员增长趋势") @ApiOperation(value = "人员管理-通过项目sn,以及时间区间查询人员增长趋势", notes = "人员管理-通过项目id,以及时间区间查询人员增长趋势") @ApiImplicitParams({ @@ -577,7 +589,6 @@ public class WorkerInfoController { return Result.success(workerInfoService.selectWorkerTeamAndDepartmentStatistics(map)); } - @OperLog(operModul = "劳务管理", operType = "查询", operDesc = "批量将要向住建局下发的人下发") @ApiIdempotent @ApiOperation(value = "批量将要向住建局下发的人下发", notes = "批量将要向住建局下发的人下发") @@ -746,7 +757,6 @@ public class WorkerInfoController { return Result.success(workerInfoService.statsEnterprise(map)); } - @OperLog(operModul = "劳务管理", operType = "查询", operDesc = "企业安全评分汇总表") @ApiOperation(value = "企业安全评分汇总表", notes = "企业安全评分汇总表", httpMethod = "POST") @ApiImplicitParams({ @@ -803,10 +813,77 @@ public class WorkerInfoController { @ApiImplicitParam(name = "enterpriseId", value = "企业id", paramType = "body", required = true, dataType = "String"), }) @PostMapping(value = "/getPostWorkTypeList") - public Result>> getPostWorkTypeList(@RequestBody Map map) { + public Result>> getPostWorkTypeList(@RequestBody Map map) { return Result.success(workerInfoService.getPostWorkTypeList(map)); } + @OperLog(operModul = "劳务管理", operType = "", operDesc = "人员制卡信息导出") + @ApiOperation(value = "人员制卡信息导出", notes = "人员制卡信息导出", httpMethod = "POST") + @ApiImplicitParam(name = "workerIdList", value = "劳务人员ID列表", paramType = "body", required = true) + @PostMapping(value = "/batchPrintCard") + public Result batchPrintCard(@ApiIgnore @RequestBody HashMap param) throws IOException { + List workerIdList = com.gexin.fastjson.JSON.parseObject(com.gexin.fastjson.JSON.toJSONString(param.get("workerIdList")), new TypeReference>() { + }); + if (CollUtil.isEmpty(workerIdList)) { + return Result.ok(); + } + List workerInfoList = workerInfoService.selectWorkerInfoList(new MapBuilder() + .put("workerIdList", param.get("workerIdList")) + .build()).getRecords(); + Map idCardMap = workerInfoList.stream().collect(Collectors.toMap(WorkerInfo::getIdCard, Function.identity())); + String foldName = "batchPrintCard/" + IdUtil.simpleUUID(); + File foldFile = new File(PathUtil.getBasePath() + "/" + foldName); + File head = new File(foldFile, "头像"); + File qrCode = new File(foldFile, "二维码"); + foldFile.mkdirs(); + head.mkdirs(); + qrCode.mkdirs(); + List entity = new ArrayList(); + entity.add(new ExcelExportEntity("编号", "num")); + entity.add(new ExcelExportEntity("姓名", "name")); + entity.add(new ExcelExportEntity("岗位/工种", "post")); + entity.add(new ExcelExportEntity("单位", "enterprise")); + entity.add(new ExcelExportEntity("发证日期", "date")); + List> excelList = new ArrayList>(); + Set workerNames = new HashSet<>(); + for (WorkerInfo detail : workerInfoList) { + String workerName = detail.getWorkerName(); + while (workerNames.contains(workerName)) { + workerName += workerName + "(1)"; + } + workerNames.add(workerName); + Map map = new HashMap(); + String num = detail.getNum(); + map.put("num", num); + map.put("name", workerName); + map.put("post", detail.getPostWorkTypeName()); + map.put("enterprise", detail.getEnterpriseName()); + map.put("date", DateUtil.today()); + excelList.add(map); + try { + String url = detail.getFieldAcquisitionUrl(); + MinioUtils.downloadFile(url); + FileUtil.move(FileUtil.file(PathUtil.getBasePath(), url), FileUtil.file(head, workerName + "." + StrUtil.subAfter(url, ".", true)), true); + } catch (Exception e) { + log.error("批量制卡", e); + } + // 生成指定url对应的二维码到文件,宽和高都是300像素 + QrCodeUtil.generate("/pages/projectEnd/laborManage/searchTeam/personDetail?id=" + idCardMap.get(detail.getIdCard()).getId(), 300, 300, FileUtil.file(qrCode, num + ".jpg")); + } + Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), entity, excelList); + FileOutputStream fos = null; + try { + fos = new FileOutputStream(foldFile + "/人员.xlsx"); + workbook.write(fos); + } finally { + if (fos != null) { + fos.close(); + } + } + ZipUtil.zip(foldFile.getAbsolutePath()); + minioUtils.uploadBySameName(foldName + ".zip", false); + return Result.success(new JoBuilder().put("file", foldName + ".zip").build()); + } } diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/entity/WorkerInfo.java b/src/main/java/com/zhgd/xmgl/modules/worker/entity/WorkerInfo.java index 47beaf63f..b8078d647 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/entity/WorkerInfo.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/entity/WorkerInfo.java @@ -346,7 +346,7 @@ public class WorkerInfo implements Serializable { */ @Excel(name = "工作区域(装置)", width = 15) @ApiModelProperty(value = "工作区域(装置)") - private java.lang.Long workArea; + private java.lang.String workAreaName; @ApiModelProperty(value = "编号") private java.lang.String num; @ApiModelProperty(value = "人员入场明细ID") @@ -425,9 +425,6 @@ public class WorkerInfo implements Serializable { @ApiModelProperty(value = "岗位(工种)名称") private java.lang.String postWorkTypeName; @TableField(exist = false) - @ApiModelProperty(value = "工作区域(装置)名称") - private java.lang.String workAreaName; - @TableField(exist = false) @ApiModelProperty(value = "EPC承包商名称") private java.lang.String epcCbsName; @TableField(exist = false) @@ -442,7 +439,7 @@ public class WorkerInfo implements Serializable { ", workerName='" + workerName + '\'' + ", idCard='" + idCard + '\'' + ", enterpriseId=" + enterpriseId + - ", workArea='" + workArea + '\'' + + ", workArea='" + workAreaName + '\'' + ", num='" + num + '\'' + ", entryDeadline='" + entryDeadline + '\'' + ", epcCbs='" + epcCbs + '\'' + 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 706ac2e40..755f400de 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 @@ -32,7 +32,6 @@ wt.type_name, if(wap.id is not null,1,2) presence ,if(a.person_type=1,b.team_name,c.department_name) as post_work_type_name - ,du.device_unit_name as work_area_name ,wt.id as worker_type_id ,if(a.person_type=1,b.id,c.id) as post_work_type_id from worker_info a @@ -51,7 +50,6 @@ and create_time>=current_date group by person_sn ) wa on wa.person_sn = a.person_sn - LEFT JOIN device_unit du on du.id=a.work_area WHERE 1 = 1 and a.num like concat('%', #{param.num},'%') @@ -837,7 +835,6 @@ or (TIMESTAMPDIFF(HOUR, a.nad_time, now()) >= 168 and a.worker_classify = 1)) then '核酸已超时' else '核酸未超时' end) as acid_status_name ,if(a.person_type=1,wt.type_name,c.department_name) as post_work_type_name - ,du.device_unit_name as work_area_name from worker_info a LEFT JOIN team_info b ON a.team_id = b.id LEFT JOIN enterprise_info en ON en.id = a.enterprise_id @@ -845,7 +842,6 @@ LEFT JOIN worker_type wt ON b.worker_type_id = wt.id LEFT JOIN dictionaries_record d ON a.job_type = d.id LEFT JOIN dictionaries_record e ON a.job_name = e.id - LEFT JOIN device_unit du on du.id=a.work_area WHERE a.project_sn = #{projectSn} and a.enterprise_id in @@ -1218,7 +1214,6 @@ else 0 end) work_day_num, ru.rule_name ,if(a.person_type=1,wt.type_name,c.department_name) as post_work_type_name - ,du.device_unit_name as work_area_name ,ei1.enterprise_name as epc_cbs_name from worker_info a INNER JOIN project p ON a.project_sn = p.project_sn @@ -1229,7 +1224,6 @@ LEFT JOIN dictionaries_record e ON a.job_name = e.id LEFT JOIN enterprise_info en ON a.enterprise_id = en.id LEFT JOIN worker_attendance_rule ru ON a.rule_id = ru.id - LEFT JOIN device_unit du on du.id=a.work_area LEFT JOIN enterprise_info ei1 on ei1.id=a.epc_cbs WHERE a.id = #{workerId} @@ -2646,11 +2640,10 @@ diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/EnterpriseInfoServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/EnterpriseInfoServiceImpl.java index 844b4bcfe..2e71eefc7 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/EnterpriseInfoServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/EnterpriseInfoServiceImpl.java @@ -1,6 +1,7 @@ package com.zhgd.xmgl.modules.worker.service.impl; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.convert.Convert; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; @@ -601,6 +602,7 @@ public class EnterpriseInfoServiceImpl extends ServiceImpl infoList = enterpriseInfoMapper.getEnterpriseInfoList(map); if (CollUtil.isNotEmpty(infoList)) { + enterpriseInfo.setId(Convert.toLong(infoList.get(0).get("id"))); this.updateEnterpriseInfo(enterpriseInfo); } else { this.saveEnterpriseInfo(enterpriseInfo); diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerInfoServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerInfoServiceImpl.java index c10847745..4f477d35c 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerInfoServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerInfoServiceImpl.java @@ -1986,7 +1986,7 @@ public class WorkerInfoServiceImpl extends ServiceImpl m.getId()).orElse(null)); + workerInfo.setWorkAreaName(importInfo.get("工作区域")); workerInfo.setNum(importInfo.get("编号")); workerInfo.setEntryDeadline(importInfo.get("计划入场截止时间")); workerInfo.setPersonMail(importInfo.get("邮箱")); @@ -2225,9 +2225,6 @@ public class WorkerInfoServiceImpl extends ServiceImpl page = PageUtil.getPage(map); queryWrapper.lambda().orderByDesc(XzWorkerSafeWatchAlarm::getAlarmTime); IPage pageList = xzWorkerSafeWatchAlarmService.page(page, queryWrapper); - String[] typeName = {"人员日常考勤", "每个项目自检任务", "一个月内缺勤超过", "一个月内迟到超过", "同一企业同一隐患连续检查到(x)次", "一级安全隐患未整改超过(x)分钟", "一级安全隐患未复查超过(x)分钟", "一级安全隐患未核验超过(x)分钟", "二级安全隐患未整改超过(x)分钟", "二级安全隐患未复查超过(x)分钟", "二级安全隐患未核验超过(x)分钟", "三级安全隐患未整改超过(x)分钟", "三级安全隐患未复查超过(x)分钟", "三级安全隐患未核验超过(x)分钟", "四级安全隐患未整改超过(x)分钟", "四级安全隐患未复查超过(x)分钟", "四级安全隐患未核验超过(x)分钟"}; + String[] typeName = {"一个月内连续缺勤超过", "每个项目自检任务", "一个月内缺勤超过", "一个月内迟到超过", "同一企业同一隐患连续检查到(x)次", "一级安全隐患未整改超过(x)分钟", "一级安全隐患未复查超过(x)分钟", "一级安全隐患未核验超过(x)分钟", "二级安全隐患未整改超过(x)分钟", "二级安全隐患未复查超过(x)分钟", "二级安全隐患未核验超过(x)分钟", "三级安全隐患未整改超过(x)分钟", "三级安全隐患未复查超过(x)分钟", "三级安全隐患未核验超过(x)分钟", "四级安全隐患未整改超过(x)分钟", "四级安全隐患未复查超过(x)分钟", "四级安全隐患未核验超过(x)分钟"}; for (XzWorkerSafeWatchAlarm record : pageList.getRecords()) { record.setType(typeName[Integer.parseInt(record.getType()) - 1]); } @@ -222,7 +222,7 @@ public class XzWorkerSafeWatchAlarmController { QueryWrapper queryWrapper = QueryGenerator.initPageQueryWrapper(XzWorkerSafeWatchAlarm.class, map); queryWrapper.lambda().orderByDesc(XzWorkerSafeWatchAlarm::getAlarmTime); IPage pageList = xzWorkerSafeWatchAlarmService.page(new Page<>(-1, -1), queryWrapper); - String [] typeName = {"人员日常考勤", "每个项目自检任务", "一个月内缺勤超过", "一个月内迟到超过"}; + String[] typeName = {"一个月内连续缺勤超过", "每个项目自检任务", "一个月内缺勤超过", "一个月内迟到超过"}; for (XzWorkerSafeWatchAlarm record : pageList.getRecords()) { record.setType(typeName[Integer.parseInt(record.getType()) - 1]); } diff --git a/src/main/java/com/zhgd/xmgl/task/EnterpriseQualificationTask.java b/src/main/java/com/zhgd/xmgl/task/EnterpriseQualificationTask.java index ad782bf95..a1de7dbea 100644 --- a/src/main/java/com/zhgd/xmgl/task/EnterpriseQualificationTask.java +++ b/src/main/java/com/zhgd/xmgl/task/EnterpriseQualificationTask.java @@ -55,17 +55,17 @@ public class EnterpriseQualificationTask { * 企业资质,提前一个月预警,预警一次 */ @SchedulerLock(name = "warnEnterpriseQualification", lockAtMostFor = 1000 * 60 * 60, lockAtLeastFor = 1000 * 60 * 5) - @Scheduled(cron = "0 5 0 * * ?") + @Scheduled(cron = "0 1 0 * * ?") @RequestMapping("warnEnterpriseQualification") public void warnEnterpriseQualification() { try { List qualifications = enterpriseQualificationService.list(new LambdaQueryWrapper() - .ge(EnterpriseQualification::getQualificationEndTime, DateUtil.formatDateTime(DateUtil.offsetMonth(new Date(), -1))) - .le(EnterpriseQualification::getQualificationEndTime, DateUtil.formatDateTime(new Date())) + .ge(EnterpriseQualification::getQualificationEndTime, DateUtil.formatDateTime(new Date())) + .le(EnterpriseQualification::getQualificationEndTime, DateUtil.formatDateTime(DateUtil.offsetMonth(new Date(), 1))) ); List haveWarns = enterpriseQualificationWarnService.list(new LambdaQueryWrapper() - .ge(EnterpriseQualificationWarn::getQualificationEndTime, DateUtil.formatDateTime(DateUtil.offsetMonth(new Date(), -1))) - .le(EnterpriseQualificationWarn::getQualificationEndTime, DateUtil.formatDateTime(new Date())) + .ge(EnterpriseQualificationWarn::getQualificationEndTime, DateUtil.formatDateTime(new Date())) + .le(EnterpriseQualificationWarn::getQualificationEndTime, DateUtil.formatDateTime(DateUtil.offsetMonth(new Date(), 1))) ); List pushList = xzEmergencyPushService.list(new LambdaQueryWrapper().eq(XzEmergencyPush::getType, 3)); Map> projectSnMap = pushList.stream().collect(Collectors.groupingBy(XzEmergencyPush::getProjectSn)); diff --git a/src/main/java/com/zhgd/xmgl/task/WorkerTask.java b/src/main/java/com/zhgd/xmgl/task/WorkerTask.java index 12b037177..d81c9f241 100644 --- a/src/main/java/com/zhgd/xmgl/task/WorkerTask.java +++ b/src/main/java/com/zhgd/xmgl/task/WorkerTask.java @@ -303,7 +303,7 @@ public class WorkerTask { @RequestMapping("/workerSafeWatchAlarm") public void workerSafeWatchAlarm() { log.info("开始执行对人员未履职情况进行监测"); - String[] typeName = {"人员日常考勤", "每个项目自检任务", "一个月内缺勤超过", "一个月内迟到超过"}; + String[] typeName = {"一个月内连续缺勤超过", "每个项目自检任务", "一个月内缺勤超过", "一个月内迟到超过"}; List projects = projectMapper.selectList(Wrappers.lambdaQuery().eq(Project::getStatus, 2)); for (Project project : projects) { if (project.getEnableWorkerSafeWatch() != null && project.getEnableWorkerSafeWatch() == 1) { diff --git a/src/main/java/com/zhgd/xmgl/util/ExcelUtils.java b/src/main/java/com/zhgd/xmgl/util/ExcelUtils.java index babe7cc85..efc17e98e 100644 --- a/src/main/java/com/zhgd/xmgl/util/ExcelUtils.java +++ b/src/main/java/com/zhgd/xmgl/util/ExcelUtils.java @@ -494,16 +494,16 @@ public class ExcelUtils { } //工作区域 - XSSFSheet sheet3 = workbook.getSheet("工作区域"); - if (deviceUnits.size() > 0) { - for (int i = 0; i < deviceUnits.size(); i++) { - XSSFRow row1 = sheet3.createRow(i); - XSSFCell cell1 = row1.createCell(0); - DeviceUnit obj = deviceUnits.get(i); - cell1.setCellType(CellType.STRING); - cell1.setCellValue(obj.getDeviceUnitName()); - } - } +// XSSFSheet sheet3 = workbook.getSheet("工作区域"); +// if (deviceUnits.size() > 0) { +// for (int i = 0; i < deviceUnits.size(); i++) { +// XSSFRow row1 = sheet3.createRow(i); +// XSSFCell cell1 = row1.createCell(0); +// DeviceUnit obj = deviceUnits.get(i); +// cell1.setCellType(CellType.STRING); +// cell1.setCellValue(obj.getDeviceUnitName()); +// } +// } //岗位(工种) XSSFSheet sheet4 = workbook.getSheet("岗位(工种)"); diff --git a/src/main/resources/excel/人员入场导入模板.xlsx b/src/main/resources/excel/人员入场导入模板.xlsx index 470002867..87b004a9f 100644 Binary files a/src/main/resources/excel/人员入场导入模板.xlsx and b/src/main/resources/excel/人员入场导入模板.xlsx differ diff --git a/src/main/resources/excel/人员导入模板.xlsx b/src/main/resources/excel/人员导入模板.xlsx index 6ff048281..d526945ef 100644 Binary files a/src/main/resources/excel/人员导入模板.xlsx and b/src/main/resources/excel/人员导入模板.xlsx differ