| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237 |
- package cn.com.goldenwater.dcproj.service.impl.other;
- import cn.com.goldenwater.core.service.AbstractCrudService;
- import cn.com.goldenwater.dcproj.constValue.SplitValue;
- import cn.com.goldenwater.dcproj.dao.BisInspItemQuesNumDao;
- import cn.com.goldenwater.dcproj.dao.BisInspPblmDao;
- import cn.com.goldenwater.dcproj.dao.BisInspRsvrImpStatDao;
- import cn.com.goldenwater.dcproj.dao.ObjInspPblmsDao;
- import cn.com.goldenwater.dcproj.dto.BisInspItemQuesNumDto;
- import cn.com.goldenwater.dcproj.model.*;
- import cn.com.goldenwater.dcproj.param.BisInspRsvrImpStatParam;
- import cn.com.goldenwater.dcproj.param.ReverParam;
- import cn.com.goldenwater.dcproj.service.BisInspRsvrImpStatService;
- import cn.com.goldenwater.dcproj.service.ObjInspPblmsService;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- /**
- * 统计小水库填报异常信息
- *
- * @author lhc
- * @date 2019-11-08
- */
- @Service
- @Transactional
- public class BisInspRsvrImpStatServicesImpl extends AbstractCrudService<BisInspRsvrImpStat, BisInspRsvrImpStatParam> implements BisInspRsvrImpStatService {
- private Logger logger = LoggerFactory.getLogger(getClass());
- @Autowired
- private BisInspRsvrImpStatDao bisInspRsvrImpStatDao;
- @Autowired
- private BisInspPblmDao bisInspPblmDao;
- @Autowired
- private ObjInspPblmsService objInspPblmsService;
- @Autowired
- private ObjInspPblmsDao objInspPblmsDao;
- @Autowired
- private BisInspItemQuesNumDao bisInspItemQuesNumDao;
- public BisInspRsvrImpStatServicesImpl(BisInspRsvrImpStatDao bisInspRsvrImpStatDao) {
- super(bisInspRsvrImpStatDao);
- this.bisInspRsvrImpStatDao = bisInspRsvrImpStatDao;
- }
- @Override
- public List<BisInspRsvrImpStat> getRsvrImpStat(String persId, String pid) {
- //提取水库填报信息
- List<BisInspRsvrImpStat> bisInspRsvrImpStats = bisInspRsvrImpStatDao.getRsvrImpInfo(persId, pid);
- //提取小水库填报规则信息
- List<BisInspRsvrImpRule> bisInspRsvrImpRules = bisInspRsvrImpStatDao.getRsvrRule("1");
- //提取小水库填报规则关联选项信息
- //提出所有的填报的问题,用于做对比
- ReverParam reverParam = new ReverParam();
- reverParam.setOrgId(pid);
- reverParam.setPersId(persId);
- List<BisInspPblm> bisInspPblms = bisInspPblmDao.findReverPlbmList(reverParam);
- //设置填报项目对应规则表组合成对象
- for (BisInspRsvrImpRule bisInspRsvrImpRule : bisInspRsvrImpRules) {
- String id = bisInspRsvrImpRule.getId();
- String tName = bisInspRsvrImpRule.gettName();
- String eName = bisInspRsvrImpRule.geteName();
- String ivalue = bisInspRsvrImpRule.getiValue();
- List<ObjTypeCheck> objTypeChecks = getPblmsByQuesNum(id, tName, eName, ivalue, "1");
- bisInspRsvrImpRule.setObjTypeChecks(objTypeChecks);
- }
- for (BisInspRsvrImpStat bisInspRsvrImpStat : bisInspRsvrImpStats) {
- //设置是否异常
- //判断是否有异常
- bisInspRsvrImpStat.setSchPlanSameEmeFlag(getValResult("schPlanSameEme", bisInspRsvrImpStat.getSchPlanSameEme(), bisInspRsvrImpRules, bisInspPblms, bisInspRsvrImpStat));
- bisInspRsvrImpStat.setWaterRunInfoFlag(getValResult("waterRunInfo", bisInspRsvrImpStat.getWaterRunInfo(), bisInspRsvrImpRules, bisInspPblms, bisInspRsvrImpStat));
- bisInspRsvrImpStat.setFsltdzInfoFlag(getValResult("fsltdzInfo", bisInspRsvrImpStat.getFsltdzInfo(), bisInspRsvrImpRules, bisInspPblms, bisInspRsvrImpStat));
- bisInspRsvrImpStat.setHasSpeManageFlag(getValResult("hasSpeManage", bisInspRsvrImpStat.getHasSpeManage(), bisInspRsvrImpRules, bisInspPblms, bisInspRsvrImpStat));
- bisInspRsvrImpStat.setIfManageRegFlag(getValResult("ifManageReg", bisInspRsvrImpStat.getIfManageReg(), bisInspRsvrImpRules, bisInspPblms, bisInspRsvrImpStat));
- bisInspRsvrImpStat.setWiunWaoLegPersTrainFlag(getValResult("wiunWaoLegPersTrain", bisInspRsvrImpStat.getWiunWaoLegPersTrain(), bisInspRsvrImpRules, bisInspPblms, bisInspRsvrImpStat));
- bisInspRsvrImpStat.setWiunWaoLegPersCnpsFlag(getValResult("wiunWaoLegPersCnps", bisInspRsvrImpStat.getWiunWaoLegPersCnps(), bisInspRsvrImpRules, bisInspPblms, bisInspRsvrImpStat));
- bisInspRsvrImpStat.setTechPersResuFlag(getValResult("techPersResu", bisInspRsvrImpStat.getTechPersResu(), bisInspRsvrImpRules, bisInspPblms, bisInspRsvrImpStat));
- bisInspRsvrImpStat.setEmerPlanSameExtaFlag(getValResult("emerPlanSameExta", bisInspRsvrImpStat.getEmerPlanSameExta(), bisInspRsvrImpRules, bisInspPblms, bisInspRsvrImpStat));
- bisInspRsvrImpStat.setMainFlNormalFlag(getValResult("isMainFlNormal", bisInspRsvrImpStat.getIsMainFlNormal(), bisInspRsvrImpRules, bisInspPblms, bisInspRsvrImpStat));
- bisInspRsvrImpStat.setHasWiunWaoLegPersFlag(getValResult("hasWiunWaoLegPers", bisInspRsvrImpStat.getHasWiunWaoLegPers(), bisInspRsvrImpRules, bisInspPblms, bisInspRsvrImpStat));
- bisInspRsvrImpStat.setPatrolPersCnpsFlag(getValResult("patrolPersCnps", bisInspRsvrImpStat.getPatrolPersCnps(), bisInspRsvrImpRules, bisInspPblms, bisInspRsvrImpStat));
- bisInspRsvrImpStat.setSchPlanSameApprFlag(getValResult("schPlanSameAppr", bisInspRsvrImpStat.getSchPlanSameAppr(), bisInspRsvrImpRules, bisInspPblms, bisInspRsvrImpStat));
- bisInspRsvrImpStat.setSchPlanSameSpeedFlag(getValResult("schPlanSameSpeed", bisInspRsvrImpStat.getSchPlanSameSpeed(), bisInspRsvrImpRules, bisInspPblms, bisInspRsvrImpStat));
- bisInspRsvrImpStat.setEmerPlanSameSpeedFlag(getValResult("emerPlanSameSpeed", bisInspRsvrImpStat.getEmerPlanSameSpeed(), bisInspRsvrImpRules, bisInspPblms, bisInspRsvrImpStat));
- bisInspRsvrImpStat.setReinForceRunFlag(getValResult("reinForceRun", bisInspRsvrImpStat.getReinForceRun(), bisInspRsvrImpRules, bisInspPblms, bisInspRsvrImpStat));
- bisInspRsvrImpStat.setIfManageRegFlag(getValResult("ifManageRegRel", bisInspRsvrImpStat.getIfManageRegRel(), bisInspRsvrImpRules, bisInspPblms, bisInspRsvrImpStat));
- bisInspRsvrImpStat.setIfDamWarnLogoFlag(getValResult("ifDamWarnLogo", bisInspRsvrImpStat.getIfDamWarnLogo(), bisInspRsvrImpRules, bisInspPblms, bisInspRsvrImpStat));
- bisInspRsvrImpStat.setHasTechPersFlag(getValResult("hasTechPers", bisInspRsvrImpStat.getHasTechPers(), bisInspRsvrImpRules, bisInspPblms, bisInspRsvrImpStat));
- bisInspRsvrImpStat.setPourFyIsNormalFlag(getValResult(" pourFyIsNormal", bisInspRsvrImpStat.getPourFyIsNormal(), bisInspRsvrImpRules, bisInspPblms, bisInspRsvrImpStat));
- bisInspRsvrImpStat.setNotReinForceFlag(getValResult(" notReinForce", bisInspRsvrImpStat.getNotReinForce(), bisInspRsvrImpRules, bisInspPblms, bisInspRsvrImpStat));
- bisInspRsvrImpStat.setEmerPlanSameEmeFlag(getValResult(" emerPlanSameEme", bisInspRsvrImpStat.getEmerPlanSameEme(), bisInspRsvrImpRules, bisInspPblms, bisInspRsvrImpStat));
- bisInspRsvrImpStat.setDiskRunInfoFlag(getValResult(" diskRunInfo", bisInspRsvrImpStat.getDiskRunInfo(), bisInspRsvrImpRules, bisInspPblms, bisInspRsvrImpStat));
- bisInspRsvrImpStat.setExtDamSafeApprFlag(getValResult(" extDamSafeAppr", bisInspRsvrImpStat.getExtDamSafeAppr(), bisInspRsvrImpRules, bisInspPblms, bisInspRsvrImpStat));
- bisInspRsvrImpStat.setSchPlanSameExtaFlag(getValResult(" schPlanSameExta", bisInspRsvrImpStat.getSchPlanSameExta(), bisInspRsvrImpRules, bisInspPblms, bisInspRsvrImpStat));
- bisInspRsvrImpStat.setTechPersCnpsFlag(getValResult(" techPersCnps", bisInspRsvrImpStat.getTechPersCnps(), bisInspRsvrImpRules, bisInspPblms, bisInspRsvrImpStat));
- bisInspRsvrImpStat.setPatrolPersTrainFlag(getValResult(" patrolPersTrain", bisInspRsvrImpStat.getPatrolPersTrain(), bisInspRsvrImpRules, bisInspPblms, bisInspRsvrImpStat));
- bisInspRsvrImpStat.setPatrolPersResuFlag(getValResult(" patrolPersResu", bisInspRsvrImpStat.getPatrolPersResu(), bisInspRsvrImpRules, bisInspPblms, bisInspRsvrImpStat));
- bisInspRsvrImpStat.setRainForcFlag(getValResult(" rainForc", bisInspRsvrImpStat.getRainForc(), bisInspRsvrImpRules, bisInspPblms, bisInspRsvrImpStat));
- bisInspRsvrImpStat.setHasSetMainFlFlag(getValResult(" hasSetMainFl", bisInspRsvrImpStat.getHasSetMainFl(), bisInspRsvrImpRules, bisInspPblms, bisInspRsvrImpStat));
- bisInspRsvrImpStat.setHasWdEmnicFlag(getValResult(" hasWdEmnic", bisInspRsvrImpStat.getHasWdEmnic(), bisInspRsvrImpRules, bisInspPblms, bisInspRsvrImpStat));
- bisInspRsvrImpStat.setEmerPlanSameApprFlag(getValResult(" emerPlanSameAppr", bisInspRsvrImpStat.getEmerPlanSameAppr(), bisInspRsvrImpRules, bisInspPblms, bisInspRsvrImpStat));
- bisInspRsvrImpStat.setTechPersTrainFlag(getValResult(" techPersTrain", bisInspRsvrImpStat.getTechPersTrain(), bisInspRsvrImpRules, bisInspPblms, bisInspRsvrImpStat));
- bisInspRsvrImpStat.setHasPatrolPersFlag(getValResult(" hasPatrolPers", bisInspRsvrImpStat.getHasPatrolPers(), bisInspRsvrImpRules, bisInspPblms, bisInspRsvrImpStat));
- }
- //返回结果集合
- return bisInspRsvrImpStats;
- }
- public Boolean getValResult(String cName, String realValue, List<BisInspRsvrImpRule> bisInspRsvrImpRules, List<BisInspPblm> bisInspPblms, BisInspRsvrImpStat bisInspRsvrImpStat) {
- Map<String, Object> listIvalue = getVilate(cName, bisInspRsvrImpRules);
- if (listIvalue.size() > 0) {
- if (listIvalue.get(realValue) != null) {
- // 循环问题是否有填报,如果有则是true 没有则是false;
- Boolean realFlag = false;
- for (BisInspPblm bisInspPblm : bisInspPblms) {
- if (bisInspPblm.getRegid() != null && bisInspRsvrImpStat.getRgstrId() != null && bisInspPblm.getRegid().equals(bisInspRsvrImpStat.getRgstrId())) {
- List<ObjInspPblms> objInspPblms = (List<ObjInspPblms>) listIvalue.get(realValue);
- for (ObjInspPblms objInspPblm : objInspPblms) {
- if (bisInspPblm.getPblmsTypeId().equals(objInspPblm.getGuid())) {
- realFlag = true;
- }
- }
- }
- }
- return realFlag;
- } else {
- //循环问题是否包含item里面的子项目的填报,则视为异常
- Boolean realFlag = true;
- for (BisInspPblm bisInspPblm : bisInspPblms) {
- if (bisInspPblm.getRegid() != null && bisInspRsvrImpStat.getRgstrId() != null && bisInspPblm.getRegid().equals(bisInspRsvrImpStat.getRgstrId())) {
- for (String key : listIvalue.keySet()) {
- List<ObjInspPblms> objInspPblms = (List<ObjInspPblms>) listIvalue.get(key);
- for (ObjInspPblms objInspPblm : objInspPblms) {
- if (bisInspPblm.getPblmsTypeId() != null && objInspPblm.getGuid() != null && bisInspPblm.getPblmsTypeId().equals(objInspPblm.getGuid())) {
- realFlag = false;
- }
- }
- }
- }
- }
- return realFlag;
- }
- }
- return true;
- }
- public List<ObjTypeCheck> getPblmsByQuesNum(String id, String tName, String eName, String ivalue, String type) {
- List<ObjTypeCheck> list = new ArrayList<>();
- //跟id取出对应的 规则
- List<BisInspItemQuesNumDto> bisInspItemQuesNumDtoList = new ArrayList<>();
- bisInspItemQuesNumDtoList = bisInspItemQuesNumDao.getById(id,"");
- if (bisInspItemQuesNumDtoList != null && bisInspItemQuesNumDtoList.size() > 0) {
- for (BisInspItemQuesNumDto bisInspItemQuesNumDto : bisInspItemQuesNumDtoList) {
- //根据规则取出对应的附件 填入对象里
- String sn = bisInspItemQuesNumDto.getQuesSn();
- List<String> snList = new ArrayList<>();
- String[] snSplitList = sn.split(SplitValue.HENG_SPLIT);
- if (snSplitList.length > 0) {
- for (int i = 0; i < snSplitList.length; i++) {
- if (snSplitList[i].contains(SplitValue.HENG_SPLIT)) {
- Integer startIndex = Integer.parseInt(snSplitList[i].split(SplitValue.HENG_SPLIT)[0].toString());
- Integer endIndex = Integer.parseInt(snSplitList[i].split(SplitValue.HENG_SPLIT)[1].toString());
- while (startIndex <= endIndex) {
- snList.add(startIndex.toString());
- startIndex++;
- }
- } else {
- snList.add(snSplitList[i]);
- }
- }
- } else {
- snList.add(sn);
- }
- Map<String, Object> param = new HashMap<>();
- //获取标准库中问题类别
- param.put("type", type);
- param.put("fileNum", bisInspItemQuesNumDto.getFileNum());
- param.put("sheetNum", bisInspItemQuesNumDto.getSheetNum());
- param.put("snList", snList);
- List<Map<String, String>> pblmTypeList = objInspPblmsDao.getPblmsTypeBySnAttType(param);
- for (Map<String, String> pblmType : pblmTypeList) {
- String sort1 = pblmType.get("SORT1");
- String name = pblmType.get("INSP_PBLMS_NAME");
- List<ObjTypeCheck> checkList = new ArrayList<>();
- //获取每个问题类别下的检查项
- param.put("sort1", sort1);
- List<Map<String, String>> pblmCheckList = objInspPblmsDao.getPblmsCheckBySnAttType(param);
- for (Map<String, String> pblmCheck : pblmCheckList) {
- String sort2 = pblmCheck.get("SORT2");
- String check = pblmCheck.get("CHECK_POINT");
- //获取检查项下的所有问题描述列表(问题序号)
- param.put("sort2", sort2);
- List<ObjInspPblms> pblmList = objInspPblmsDao.getPblmsBySnAttTypeSort(param);
- ObjTypeCheck objTypeCheck = new ObjTypeCheck();
- objTypeCheck.setSort(sort2);
- objTypeCheck.setName(check);
- objTypeCheck.setItems(pblmList);
- objTypeCheck.settName(tName);
- objTypeCheck.seteName(eName);
- objTypeCheck.setIvalue(ivalue);
- checkList.add(objTypeCheck);
- }
- ObjTypeCheck objTypeCheck = new ObjTypeCheck();
- objTypeCheck.setSort(sort1);
- objTypeCheck.setName(name);
- objTypeCheck.setItems(checkList);
- objTypeCheck.settName(tName);
- objTypeCheck.seteName(eName);
- objTypeCheck.setIvalue(ivalue);
- list.add(objTypeCheck);
- }
- }
- }
- return list;
- }
- public Map<String, Object> getVilate(String cName, List<BisInspRsvrImpRule> bisInspRsvrImpRules) {
- Map<String, Object> listValue = new HashMap<>();
- for (BisInspRsvrImpRule bisInspRsvrImpRule : bisInspRsvrImpRules) {
- List<ObjTypeCheck> objTypeChecks = bisInspRsvrImpRule.getObjTypeChecks();
- for (ObjTypeCheck objTypeCheck : objTypeChecks) {
- if (cName.equals(objTypeCheck.geteName())) {
- listValue.put(objTypeCheck.getIvalue(), ((ObjTypeCheck) objTypeCheck.getItems().get(0)).getItems());
- }
- }
- }
- return listValue;
- }
- }
|