From 21ab1dbd4f456fd76abedc4ad12f07f01f1d1850 Mon Sep 17 00:00:00 2001 From: haozq <1611483981@qq.com> Date: Tue, 24 Jun 2025 09:43:19 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=9C=AA=E6=89=A7=E8=A1=8C?= =?UTF-8?q?=E6=97=A5=E8=AE=A1=E5=88=92=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../executor/inter/entity/WorkDetailsVo.java | 2 + .../inter/mapper/JjBusinessMapper.java | 23 +- .../inter/service/JjBusinessService.java | 207 ++++++++++++++---- .../service/jobhandler/JJBusinessXxlJob.java | 3 +- .../resources/mapper/JjBusinessMapper.xml | 70 ++++-- 5 files changed, 243 insertions(+), 62 deletions(-) diff --git a/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/java/com/xxl/job/executor/inter/entity/WorkDetailsVo.java b/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/java/com/xxl/job/executor/inter/entity/WorkDetailsVo.java index d7dd57e..ab9ddf9 100644 --- a/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/java/com/xxl/job/executor/inter/entity/WorkDetailsVo.java +++ b/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/java/com/xxl/job/executor/inter/entity/WorkDetailsVo.java @@ -13,4 +13,6 @@ public class WorkDetailsVo { private String workType; + private String riskLevel; + } diff --git a/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/java/com/xxl/job/executor/inter/mapper/JjBusinessMapper.java b/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/java/com/xxl/job/executor/inter/mapper/JjBusinessMapper.java index 0763f90..28bfb4e 100644 --- a/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/java/com/xxl/job/executor/inter/mapper/JjBusinessMapper.java +++ b/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/java/com/xxl/job/executor/inter/mapper/JjBusinessMapper.java @@ -2,6 +2,7 @@ package com.xxl.job.executor.inter.mapper; import com.xxl.job.executor.inter.entity.BallUpDownVo; import com.xxl.job.executor.inter.entity.DictVo; +import com.xxl.job.executor.inter.entity.WorkDetailsVo; import com.xxl.job.executor.inter.vo.*; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -157,6 +158,9 @@ public interface JjBusinessMapper { */ List getAddWarnByClass(JjBusinessInfoVo vo); + + List getAddWarnByTicket(JjBusinessInfoVo vo); + /** * 删除告警 * @param vo @@ -299,7 +303,7 @@ public interface JjBusinessMapper { */ List getTodayWorkInfo(); - List getClassRisk(); + List getClassRisk(@Param("ticketId") String ticketId); /** * 查询作业票的班组长及人员数据 @@ -310,12 +314,25 @@ public interface JjBusinessMapper { /** * 查询工序信息 - * @param riskId + * @param list * @return */ - JjBusinessInfoVo getWorkInfo(@Param("id") String riskId); + List getWorkInfo(@Param("list") List list,@Param("type") String type); List getWarnInfoByType(@Param("type") String datatype); String getClassUserId(JjBusinessInfoVo vo); + + /** + * 删除施工班组 + * @param vo + */ + void delWarnByTeamId(JjBusinessInfoVo vo); + + /** + * 查询今日未施工的的是否有这个班组 + * @param jjBusinessInfoVo + * @return + */ + Integer getTodayWarnInfo(JjBusinessInfoVo jjBusinessInfoVo); } diff --git a/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/java/com/xxl/job/executor/inter/service/JjBusinessService.java b/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/java/com/xxl/job/executor/inter/service/JjBusinessService.java index f7f0659..2b12cb5 100644 --- a/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/java/com/xxl/job/executor/inter/service/JjBusinessService.java +++ b/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/java/com/xxl/job/executor/inter/service/JjBusinessService.java @@ -3,6 +3,7 @@ package com.xxl.job.executor.inter.service; import com.xxl.job.core.util.DateUtil; import com.xxl.job.executor.inter.entity.BallUpDownVo; import com.xxl.job.executor.inter.entity.DictVo; +import com.xxl.job.executor.inter.entity.WorkDetailsVo; import com.xxl.job.executor.inter.mapper.JjBusinessMapper; import com.xxl.job.executor.inter.utils.StringHelper; import com.xxl.job.executor.inter.vo.FpUserVo; @@ -241,14 +242,12 @@ public class JjBusinessService { vo.setAddGx(String.join(";",addGx)); } } - if(yRiskIds_copy!=null){ - //减少的工序 - yRiskIds_copy.removeAll(riskIds); - if(!yRiskIds_copy.isEmpty()){ - List delGx=mapper.getWorkGxList(yRiskIds_copy); - if(delGx!=null &&!delGx.isEmpty()){ - vo.setDelGx(String.join(";",delGx)); - } + //减少的工序 + yRiskIds_copy.removeAll(riskIds); + if(!yRiskIds_copy.isEmpty()){ + List delGx=mapper.getWorkGxList(yRiskIds_copy); + if(delGx!=null &&!delGx.isEmpty()){ + vo.setDelGx(String.join(";",delGx)); } } List isAdd=mapper.getAddWarnByClass(vo); @@ -359,8 +358,6 @@ public class JjBusinessService { needfpList.add("1"); //七日无施工 needfpList.add("3"); - //未执行日计划 - needfpList.add("11"); //新进巴纳祖 noNeedList.add("2"); //人数变化大 @@ -377,6 +374,8 @@ public class JjBusinessService { noNeedList.add("9"); //球机时长不足 noNeedList.add("10"); + //未执行日计划 + noNeedList.add("11"); //需要平准分配的 预警 for (String datatype:needfpList){ @@ -746,49 +745,112 @@ public class JjBusinessService { */ public void getWorkGxNoWork() { try{ - List riskIds=mapper.getClassRisk(); - List allRiskList=new ArrayList<>(); - for (String id:riskIds){ - String[] ids=id.split(","); - allRiskList.addAll( Arrays.asList(ids)); + // + JjBusinessInfoVo param=new JjBusinessInfoVo(); + param.setType("11"); + param.setWarnDay(DateUtil.getNowDate()); + List allList=mapper.getNoWorkList(param); + for (JjBusinessInfoVo jjBusinessInfoVo:allList){ + Integer num=mapper.getTodayWarnInfo(jjBusinessInfoVo); + if(num==null || num==0){ + mapper.delWarnByTeamId(jjBusinessInfoVo); + } } - //查询今日施工日计划 + + // 查询今日作业票未执行的日计划 List list=mapper.getTodayWorkInfo(); for (JjBusinessInfoVo vo:list){ vo.setType("11"); vo.setWarnType("未执行日计划"); vo.setWarnDay(DateUtil.getNowDate()); - if(!allRiskList.contains(vo.getRiskId())){ - JjBusinessInfoVo ticket=mapper.getTicketData(vo.getTicketId()); - if(ticket!=null){ - vo.setRelName(ticket.getRelName()); - vo.setPhone(ticket.getPhone()); - vo.setIdCard(ticket.getIdCard()); - vo.setStartTime(ticket.getStartTime()); - vo.setVoltageLevel(ticket.getVoltageLevel()); - vo.setTicketNo(ticket.getTicketNo()); - vo.setEndTime(ticket.getEndTime()); - vo.setWorkTeam(ticket.getWorkTeam()); - vo.setProName(ticket.getProName()); - JjBusinessInfoVo workInfo=mapper.getWorkInfo(vo.getTClassId()); - if(workInfo!=null){ - vo.setTGx(workInfo.getTGx()); - vo.setYGx(workInfo.getYGx()); - vo.setWorkContent(workInfo.getWorkContent()); - vo.setAddGx(workInfo.getAddGx()); - vo.setRiskLevel(workInfo.getRiskLevel()); - //今日工序未执行 - List isAdd=mapper.getAddWarnByClass(vo); - if(isAdd==null || isAdd.isEmpty()) { - mapper.insertWarnInfo(vo); - }else{ - vo.setKeyId(isAdd.get(0)); - mapper.updateWarnInfo(vo); - } + if(StringHelper.isNotEmpty(vo.getRiskId())){ + String[] str=vo.getRiskId().split(","); + List data=Arrays.asList(str); + List riskList = new ArrayList<>(data); + //已执行的风险作业 + List dataList=mapper.getClassRisk(vo.getTicketId()); + + + if(dataList!=null && !dataList.isEmpty()){ + List classRisk=new ArrayList<>(); + for (JjBusinessInfoVo riskIds: dataList) { + List strings = Arrays.asList(riskIds.getRiskId().split(",")); + classRisk.addAll(strings); + //找到执行中的站班会 + vo.setTClassId(riskIds.getId()); + } + riskList.removeAll(classRisk); + //未执行的风险作业 + if(!riskList.isEmpty()){ + JjBusinessInfoVo ticket=mapper.getTicketData(vo.getTicketId()); + if(ticket!=null){ + vo.setRelName(ticket.getRelName()); + vo.setPhone(ticket.getPhone()); + vo.setIdCard(ticket.getIdCard()); + vo.setStartTime(ticket.getStartTime()); + vo.setVoltageLevel(ticket.getVoltageLevel()); + vo.setTicketNo(ticket.getTicketNo()); + vo.setEndTime(ticket.getEndTime()); + vo.setWorkTeam(ticket.getWorkTeam()); + vo.setProName(ticket.getProName()); + //-未执行日计划-2,三及 + WorkDetailsVo twoDetailsVo=getMettingInfo(riskList,"1"); + if(twoDetailsVo!=null){ + vo.setRiskLevel("2"); + //已执行工序 + vo.setTGx(twoDetailsVo.getWorkGx()); + vo.setWorkContent(twoDetailsVo.getContent()); + //工作内容 + vo.setAddGx(twoDetailsVo.getContent()); + WorkDetailsVo detailsVo3=getMettingInfo(classRisk,"1"); + if(detailsVo3!=null){ + //未执行工序 + vo.setYGx(detailsVo3.getWorkGx()); + //未执行工序 + vo.setDelGx(detailsVo3.getContent()); + List isAdd=mapper.getAddWarnByTicket(vo); + if(isAdd==null || isAdd.isEmpty()) { + mapper.insertWarnInfo(vo); + }else{ + vo.setKeyId(isAdd.get(0)); + mapper.updateWarnInfo(vo); + } + } + } + + WorkDetailsVo detailsVo=getMettingInfo(riskList,"2"); + if(detailsVo!=null){ + //已执行的二三级 + vo.setRiskLevel("4"); + //已执行工序 + vo.setTGx(detailsVo.getWorkGx()); + vo.setWorkContent(detailsVo.getContent()); + //工作内容 + vo.setAddGx(detailsVo.getContent()); + //已执行工序及内容 + WorkDetailsVo detailsVo2=getMettingInfo(classRisk,"2"); + if(detailsVo2!=null){ + //未执行工序 + vo.setYGx(detailsVo2.getWorkGx()); + //未执行工序 + vo.setDelGx(detailsVo2.getContent()); + List isAdd=mapper.getAddWarnByTicket(vo); + if(isAdd==null || isAdd.isEmpty()) { + mapper.insertWarnInfo(vo); + }else{ + vo.setKeyId(isAdd.get(0)); + mapper.updateWarnInfo(vo); + } + } + } + } + + }else{ + mapper.delWarnByTeamId(vo); } + } - }else{ - mapper.deleteWarnInfoByClass(vo); + } } }catch (Exception e){ @@ -796,6 +858,61 @@ public class JjBusinessService { } } + /** + * 查询 工序及内容 + * @param + * @return + */ + public WorkDetailsVo getMettingInfo(List riskList,String type){ + try{ + WorkDetailsVo workDetailsVo=new WorkDetailsVo(); + List details=mapper.getWorkInfo(riskList,type); + StringBuffer workSite=new StringBuffer(); + StringBuffer content=new StringBuffer(); + List gxList=new ArrayList<>(); + List typeList=new ArrayList<>(); + if(details!=null && details.size()>0){ + details.forEach(vo->{ + if(StringHelper.isNotEmpty(vo.getWorkSite())){ + if(StringHelper.isNotEmpty(workSite.toString())){ + workSite.append(";"); + } + workSite.append(vo.getWorkSite()); + } + if(StringHelper.isNotEmpty(vo.getContent())){ + if(StringHelper.isNotEmpty(content.toString())){ + content.append(";"); + } + content.append(vo.getContent()); + content.append("-(").append(vo.getRiskLevel()).append("级风险)"); + } + //工序 + if(StringHelper.isNotEmpty(vo.getWorkGx())){ + if(!gxList.contains(vo.getWorkGx())){ + gxList.add(vo.getWorkGx()); + } + } + if(StringHelper.isNotEmpty(vo.getWorkType())){ + if(!typeList.contains(vo.getWorkType())){ + typeList.add(vo.getWorkType()); + } + } + }); + workDetailsVo.setWorkType(String.join(";",typeList)); + workDetailsVo.setWorkSite(workSite.toString()); + workDetailsVo.setContent(content.toString()); + workDetailsVo.setWorkGx(String.join(";",gxList)); + return workDetailsVo; + } + + }catch (Exception e){ + log.error(e.toString(),e); + } + return null; + + } + + public Double getBallUpTime(String puid){ diff --git a/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/java/com/xxl/job/executor/service/jobhandler/JJBusinessXxlJob.java b/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/java/com/xxl/job/executor/service/jobhandler/JJBusinessXxlJob.java index c110534..fddbffd 100644 --- a/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/java/com/xxl/job/executor/service/jobhandler/JJBusinessXxlJob.java +++ b/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/java/com/xxl/job/executor/service/jobhandler/JJBusinessXxlJob.java @@ -53,7 +53,6 @@ public class JJBusinessXxlJob { * 预警管理-工序变化 */ @XxlJob("todayGxChange") - @PostConstruct public void todayGxChange(){ service.todayGxChange(); } @@ -88,6 +87,7 @@ public class JJBusinessXxlJob { * 球机配置少 */ @XxlJob("getBallFew") + public void getBallFew(){ service.getBallFew(); } @@ -112,6 +112,7 @@ public class JJBusinessXxlJob { * 未执行工序 */ @XxlJob("getWorkGxNoWork") + @PostConstruct public void getWorkGxNoWork(){ service.getWorkGxNoWork(); } diff --git a/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/resources/mapper/JjBusinessMapper.xml b/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/resources/mapper/JjBusinessMapper.xml index 9ce4234..e880534 100644 --- a/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/resources/mapper/JjBusinessMapper.xml +++ b/xxl-job-executor-samples/xxl-job-executor-sample-springboot/src/main/resources/mapper/JjBusinessMapper.xml @@ -42,6 +42,7 @@ delete from jj_warn_info where ticket_id=#{ticketId} and type=#{type} AND warn_day=#{warnDay} + delete from jj_warn_info where key_id=#{keyId} @@ -54,6 +55,11 @@ delete from jj_warn_info where t_class_id=#{tClassId} and type=#{type} AND warn_day=#{warnDay} + + delete from jj_warn_info + where y_class_id=#{yClassId} and type=#{type} AND warn_day=#{warnDay} + + - + select distinct + jrp.work_site_name workSite , -- 作业部位 + jrp.work_content content, -- 作业内容 + jrp.work_procedure workGx, -- 工序 + jdc.`value` workType, -- 作业类型 + jrp.re_assessment_risk_level riskLevel + FROM jj_risk_precaution jrp left join jj_data_code jdc on jrp.work_type=jdc.code_value and jdc.code='WORK_TYPE' - where jrp.id=#{id} - limit 1 + where jrp.id in ( + + #{item} + + ) + + and jrp.re_assessment_risk_level in(2,3,'02','03') + + + and jrp.re_assessment_risk_level in(4,5,'04','05') + - + SELECT id , risk_precaution_id riskId FROM jj_class_meetting where current_constr_date=CURRENT_DATE + AND ticket_id=#{ticketId} and risk_precaution_id is not null + +