|
@@ -1,15 +1,22 @@
|
|
|
package com.ruoyi.powerdistribution.service.impl;
|
|
|
|
|
|
import java.util.List;
|
|
|
+
|
|
|
+import com.alibaba.fastjson2.JSONArray;
|
|
|
+import com.alibaba.fastjson2.JSONObject;
|
|
|
import com.ruoyi.common.utils.DateUtils;
|
|
|
+import com.ruoyi.powerdistribution.domain.PdmRiskRole;
|
|
|
import com.ruoyi.powerdistribution.domain.dto.PdmWorkPlanDTO;
|
|
|
import com.ruoyi.powerdistribution.domain.vo.WorkNumByCompanyStatistics;
|
|
|
import com.ruoyi.powerdistribution.domain.vo.WorkRiskStatistics;
|
|
|
+import com.ruoyi.powerdistribution.service.IPdmRiskRoleService;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import com.ruoyi.powerdistribution.mapper.PdmWorkPlanMapper;
|
|
|
import com.ruoyi.powerdistribution.domain.PdmWorkPlan;
|
|
|
import com.ruoyi.powerdistribution.service.IPdmWorkPlanService;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
/**
|
|
|
* 作业计划Service业务层处理
|
|
@@ -17,12 +24,16 @@ import com.ruoyi.powerdistribution.service.IPdmWorkPlanService;
|
|
|
* @author ruoyi
|
|
|
* @date 2024-12-01
|
|
|
*/
|
|
|
+@Slf4j
|
|
|
@Service
|
|
|
public class PdmWorkPlanServiceImpl implements IPdmWorkPlanService
|
|
|
{
|
|
|
@Autowired
|
|
|
private PdmWorkPlanMapper pdmWorkPlanMapper;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private IPdmRiskRoleService riskRoleService;
|
|
|
+
|
|
|
/**
|
|
|
* 查询作业计划
|
|
|
*
|
|
@@ -106,4 +117,51 @@ public class PdmWorkPlanServiceImpl implements IPdmWorkPlanService
|
|
|
public List<WorkNumByCompanyStatistics> getWorkNumByCompanyStatistics(WorkNumByCompanyStatistics workNumByCompany) {
|
|
|
return pdmWorkPlanMapper.getWorkNumByCompanyStatistics(workNumByCompany);
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional
|
|
|
+ public void workDataCompute() {
|
|
|
+ PdmWorkPlanDTO pdmWorkPlan = new PdmWorkPlanDTO();
|
|
|
+ pdmWorkPlan.setRiskType("0");//未处理
|
|
|
+ List<PdmWorkPlan> list = pdmWorkPlanMapper.selectPdmWorkPlanList(pdmWorkPlan);
|
|
|
+ List<PdmRiskRole> riskRoleList = riskRoleService.selectPdmRiskRoleList(new PdmRiskRole());
|
|
|
+ for(PdmWorkPlan plan:list){
|
|
|
+ String voltLvlCd = plan.getVoltLvlCd();
|
|
|
+ if(!"2001008,2001009".contains(voltLvlCd) &&
|
|
|
+ !("2006001".equals(plan.getIsEnergizedOpCd()) && "2005002".equals(plan.getPoweroffTypCd()) && "2008015".equals(plan.getWorkticketTypCd()))){
|
|
|
+ plan.setExceptionType("1001");//电压等级异常
|
|
|
+ }else{
|
|
|
+ //已处理
|
|
|
+ plan.setExceptionType("1");
|
|
|
+ }
|
|
|
+ checkRisk(plan,riskRoleList);
|
|
|
+ pdmWorkPlanMapper.updatePdmWorkPlan(plan);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 校验是否高风险
|
|
|
+ * @param plan
|
|
|
+ * @param riskRoleList
|
|
|
+ */
|
|
|
+ void checkRisk(PdmWorkPlan plan,List<PdmRiskRole> riskRoleList){
|
|
|
+ for(PdmRiskRole riskRole:riskRoleList){
|
|
|
+ JSONObject json = JSONObject.parseObject(riskRole.getRoleDes());
|
|
|
+ JSONArray jsonArray = json.getJSONArray("must");//暂时只有必须
|
|
|
+ for (int i = 0; i < jsonArray.size(); i++) {
|
|
|
+ String value = (String)jsonArray.get(i);
|
|
|
+ if(plan.getOpContent().contains(value)){
|
|
|
+ plan.setRiskType(riskRole.getRoleCode());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //如果没触发任何规则,则置为1:已处理
|
|
|
+ if("0".equals(plan.getRiskType())){
|
|
|
+ plan.setRiskType("1");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
}
|