package cn.com.goldenwater.dcproj.service.impl.offline; import cn.com.goldenwater.dcproj.constValue.BisInspEnum; import cn.com.goldenwater.dcproj.dao.*; import cn.com.goldenwater.dcproj.model.*; import cn.com.goldenwater.dcproj.param.AttWagaBaseParam; import cn.com.goldenwater.dcproj.param.BisInspAllObjParam; import cn.com.goldenwater.dcproj.param.BisInspWagaBaseParam; import cn.com.goldenwater.dcproj.service.GwComFileService; import cn.com.goldenwater.dcproj.service.SupervisionPlanService; import cn.com.goldenwater.dcproj.utils.AdLevelUtil; import cn.com.goldenwater.id.util.UuidUtil; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; /** * 水闸离线填报 * * @author lhc * @date 2019/11/22 10:32 */ @Service @Transactional public class BisInspOffLineWagaProcess extends BisInspOffLineProcess { @Autowired AttWagaBaseDao attWagaBaseDao; @Autowired AttWagaRgstrDao attWagaRgstrDao; @Autowired BisInspAllObjDao bisInspAllObjDao; @Autowired BisInspPblmDao bisInspPblmDao;//督查问题 @Autowired BisInspWagaMrsCiDao bisInspWagaMrsCiDao; @Autowired BisInspWagaSafeManageDao bisInspWagaSafeManageDao; @Autowired BisInspWagaProenInfoDao bisInspWagaProenInfoDao; @Autowired BisInspWagaDmamInfoDao bisInspWagaDmamInfoDao; @Autowired BisInspWagaBaseDao bisInspWagaBaseDao; @Autowired private GwComFileService gwComFileService;//文件操作 @Value("${getFile.prefix}") public String prefix; @Autowired SupervisionPlanService supervisionPlanService; @Override public BisInspOffLineRet process(BisInspOffLineObj bisInspOffLineObj, String fileDir) throws IOException { BisInspOffLineRet bisInspOffLineRet = new BisInspOffLineRet(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); ObjectMapper om = new ObjectMapper(); om.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); //解析小水库填报信息 BisInspOffLineWagaRgeister bisInspOffLineWagaRgeister = om.readValue(bisInspOffLineObj.getRegister(), BisInspOffLineWagaRgeister.class); //解析小水库基本信息对象 if (bisInspOffLineObj.getBase() != null) { /* if (null == bisInspOffLineObj.getReplace() || bisInspOffLineObj.getReplace()) { delRgstrData(bisInspOffLineObj); }*/ //添加到督查任务 String objId = UuidUtil.uuid(); String groupId = bisInspOffLineObj.getGroupId(); AttWagaRgstr attWagaRgstr = new AttWagaRgstr(); String regId = objId; String persId = bisInspOffLineObj.getPersId(); AttWagaBase attWagaBase = om.readValue(bisInspOffLineObj.getBase(), AttWagaBase.class); BisInspOffLineWaga bisInspOffLineWaga = bisInspOffLineWagaRgeister.getBisInspOffLineWaga(); //添加到督查任务 if (null == bisInspOffLineWaga) { insertBisInspAllObj(bisInspOffLineObj, groupId, objId, attWagaBase); insertAttWagaRgstr(attWagaBase, groupId, objId, persId, regId, attWagaRgstr); } else { if (StringUtils.isNotBlank(bisInspOffLineWaga.getObjId()) && StringUtils.isNotBlank(bisInspOffLineWaga.getRegId())) { regId = bisInspOffLineWaga.getRegId(); objId = bisInspOffLineWaga.getObjId(); attWagaRgstr.setId(regId); attWagaRgstr.setObjId(objId); } } //插入水闸基本信息表 insertAttWagaBase(bisInspOffLineWaga, bisInspOffLineWagaRgeister, regId, persId, attWagaRgstr); //水闸督查管理责任体系建设和落实情况 insertWagaMrsCi(bisInspOffLineWagaRgeister, regId, persId, attWagaRgstr); //bisInspWagaSafeManage 水闸督查安全管理情况 insertWagaSafeManage(bisInspOffLineWagaRgeister, regId, persId, attWagaRgstr); //水闸督查日常管理和维修养护情况 insertWagaDmamInfo(bisInspOffLineWagaRgeister, regId, persId, attWagaRgstr); //水闸督查工程实体情况 insertWagaProenInfo(bisInspOffLineWagaRgeister, regId, persId, attWagaRgstr); //更新督查 字表状态 attWagaRgstrDao.update(attWagaRgstr); bisInspOffLineRet.setRegId(regId); bisInspOffLineObj.setOrgId(objId); } return bisInspOffLineRet; } /** * 删除任务及登记表信息 * * @param groupId * @param nm */ public void delRgstrData(BisInspOffLineObj bisInspOffLineObj) { //登记表查找重复数据,然后删除 BisInspAllObjParam bisInspAllObjParam = new BisInspAllObjParam(); bisInspAllObjParam.setId(bisInspOffLineObj.getGroupId()); bisInspAllObjParam.setNm(bisInspOffLineObj.getNm()); List bisInspAllObjs = bisInspAllObjDao.findList(bisInspAllObjParam); for (BisInspAllObj bisInspAllObj : bisInspAllObjs) { //删除登记表 //删除登记表关联的各个填报表数据 supervisionPlanService.cleanObjDataByObjId(BisInspEnum.WAGA.getValue(), bisInspAllObj.getObjId()); } } /** * 添加到督查任务 * * @param groupId * @param objId * @param attWagaBase */ public void insertBisInspAllObj(BisInspOffLineObj bisInspOffLineObj, String groupId, String objId, AttWagaBase attWagaBase) { BisInspAllObj bisInspAllObj = new BisInspAllObj(); bisInspAllObj.setId(groupId); bisInspAllObj.setObjId(objId); bisInspAllObj.setNm(attWagaBase.getGateName()); bisInspAllObj.setCode(attWagaBase.getObjCode()); bisInspAllObj.setPtype("6"); bisInspAllObj.setOrgId(bisInspOffLineObj.getOrgId()); bisInspAllObj.setAdCode(bisInspOffLineObj.getProvince()); bisInspAllObj.setLgtdpc(attWagaBase.getCenterX()); bisInspAllObj.setLttdpc(attWagaBase.getCenterY()); bisInspAllObj.setLgtd(attWagaBase.getGdX()); bisInspAllObj.setLttd(attWagaBase.getGdY()); bisInspAllObjDao.insert(bisInspAllObj); } /** * 插入登记表信息 * * @param bisInspOffLineObj * @param objId * @param om * @param regId * @param attWagaRgstr * @throws IOException */ public void insertAttWagaRgstr(AttWagaBase attWagaBase, String groupId, String objId, String persId, String regId, AttWagaRgstr attWagaRgstr) throws IOException { attWagaRgstr.setId(regId); attWagaRgstr.setObjId(objId); attWagaRgstr.setObjCode(attWagaBase.getObjCode()); attWagaRgstr.setGateName(attWagaBase.getGateName()); attWagaRgstr.setAdCode(attWagaBase.getAdCode()); attWagaRgstr.setGateType(attWagaBase.getGateType()); attWagaRgstr.setGateFlow(attWagaBase.getGateFlow()); attWagaRgstr.setEngScal(attWagaBase.getEngScal()); attWagaRgstr.setEngSta(attWagaBase.getEngSta()); attWagaRgstr.setBuidTimeYear(attWagaBase.getBuidTimeYear()); attWagaRgstr.setBuidTimeMon(attWagaBase.getBuidTimeMon()); attWagaRgstr.setStaTimeYear(attWagaBase.getStaTimeYear()); attWagaRgstr.setStaTimeMon(attWagaBase.getStaTimeMon()); attWagaRgstr.setLocation(attWagaBase.getLocationCun()); attWagaRgstr.setGateAdmName(attWagaBase.getGateAdmName()); attWagaRgstr.setGateAdmOrg(attWagaBase.getGateAdmOrg()); attWagaRgstr.setLocationXiang(attWagaBase.getLocationXiang()); attWagaRgstr.setState("1"); attWagaRgstr.setDataStat("0"); attWagaRgstr.setPersId(persId); attWagaRgstr.setGroupId(groupId); attWagaRgstr.setCenterX(attWagaBase.getCenterX()); attWagaRgstr.setCenterY(attWagaBase.getCenterY()); attWagaRgstr.setGdX(attWagaBase.getGdX()); attWagaRgstr.setGdY(attWagaBase.getGdY()); attWagaRgstr.setIntm(new Date()); attWagaRgstrDao.insert(attWagaRgstr); } public void insertAttWagaBase(BisInspOffLineWaga bisInspOffLineWaga, BisInspOffLineWagaRgeister bisInspOffLineWagaRgeister, String regId, String persId, AttWagaRgstr attWagaRgstr) { if (null != bisInspOffLineWaga) { if (bisInspOffLineWaga.getBase()) { //水闸督查基本信息 BisInspWagaBase bisInspWagaBase = null; if (bisInspOffLineWagaRgeister.getBisInspWagaBase() != null) { //根据Regid获取ID BisInspWagaBaseParam bisInspWagaBaseParam = new BisInspWagaBaseParam(); bisInspWagaBaseParam.setRgstrId(regId); List bisInspWagaBases = bisInspWagaBaseDao.findList(bisInspWagaBaseParam); if (bisInspWagaBases.size() > 0) { bisInspWagaBase = bisInspOffLineWagaRgeister.getBisInspWagaBase(); attWagaRgstr.setBaseStat(bisInspWagaBase.getDataStat()); bisInspWagaBase.setUptm(new Date()); bisInspWagaBase.setRgstrId(regId); bisInspWagaBase.setId(bisInspWagaBases.get(0).getId()); bisInspWagaBaseDao.update(bisInspWagaBase); } } } } else { //水闸督查基本信息 BisInspWagaBase bisInspWagaBase = new BisInspWagaBase(); if (bisInspOffLineWagaRgeister.getBisInspWagaBase() != null) { bisInspWagaBase = bisInspOffLineWagaRgeister.getBisInspWagaBase(); attWagaRgstr.setBaseStat(bisInspWagaBase.getDataStat()); } else { attWagaRgstr.setBaseStat("1"); } bisInspWagaBase.setId(UuidUtil.uuid()); bisInspWagaBase.setRgstrId(regId); bisInspWagaBase.setIntm(new Date()); bisInspWagaBase.setUptm(new Date()); bisInspWagaBase.setDataStat("0"); bisInspWagaBase.setRecPersId(persId); bisInspWagaBaseDao.insert(bisInspWagaBase); } } /** * 插入水闸督查管理责任体系建设和落实情况 * * @param bisInspOffLineWagaRgeister * @param regId * @param bisInspOffLineObj * @param attWagaRgstr */ public void insertWagaMrsCi(BisInspOffLineWagaRgeister bisInspOffLineWagaRgeister, String regId, String persId, AttWagaRgstr attWagaRgstr) { //水闸督查管理责任体系建设和落实情况 BisInspWagaMrsCi bisInspWagaMrsCi = new BisInspWagaMrsCi(); if (bisInspOffLineWagaRgeister.getBisInspWagaMrsCi() != null) { bisInspWagaMrsCi = bisInspOffLineWagaRgeister.getBisInspWagaMrsCi(); bisInspWagaMrsCi.setId(UuidUtil.uuid()); bisInspWagaMrsCi.setRgstrId(regId); bisInspWagaMrsCi.setIntm(new Date()); bisInspWagaMrsCi.setUptm(new Date()); bisInspWagaMrsCi.setDataStat("0"); bisInspWagaMrsCi.setRecPersId(persId); bisInspWagaMrsCiDao.insert(bisInspWagaMrsCi); attWagaRgstr.setMrsCiStat("2"); } else { bisInspWagaMrsCi.setId(UuidUtil.uuid()); bisInspWagaMrsCi.setRgstrId(regId); bisInspWagaMrsCi.setIntm(new Date()); bisInspWagaMrsCi.setUptm(new Date()); bisInspWagaMrsCi.setDataStat("0"); bisInspWagaMrsCi.setRecPersId(persId); bisInspWagaMrsCiDao.insert(bisInspWagaMrsCi); attWagaRgstr.setMrsCiStat("1"); } } /** * 插入水闸督查安全管理情况 * * @param bisInspOffLineWagaRgeister * @param regId * @param bisInspOffLineObj * @param attWagaRgstr */ public void insertWagaSafeManage(BisInspOffLineWagaRgeister bisInspOffLineWagaRgeister, String regId, String persId, AttWagaRgstr attWagaRgstr) { BisInspWagaSafeManage bisInspWagaSafeManage = new BisInspWagaSafeManage(); if (bisInspOffLineWagaRgeister.getBisInspWagaSafeManage() != null) { bisInspWagaSafeManage = bisInspOffLineWagaRgeister.getBisInspWagaSafeManage(); bisInspWagaSafeManage.setId(UuidUtil.uuid()); bisInspWagaSafeManage.setRgstrId(regId); bisInspWagaSafeManage.setIntm(new Date()); bisInspWagaSafeManage.setUptm(new Date()); bisInspWagaSafeManage.setRecPersId(persId); bisInspWagaSafeManage.setDataStat("0"); bisInspWagaSafeManageDao.insert(bisInspWagaSafeManage); attWagaRgstr.setSafeStat("2"); } else { bisInspWagaSafeManage.setId(UuidUtil.uuid()); bisInspWagaSafeManage.setRgstrId(regId); bisInspWagaSafeManage.setIntm(new Date()); bisInspWagaSafeManage.setUptm(new Date()); bisInspWagaSafeManage.setDataStat("0"); bisInspWagaSafeManage.setRecPersId(persId); bisInspWagaSafeManageDao.insert(bisInspWagaSafeManage); attWagaRgstr.setSafeStat("1"); } } /** * 水闸督查日常管理和维修养护情况 * * @param bisInspOffLineWagaRgeister * @param regId * @param bisInspOffLineObj * @param attWagaRgstr */ public void insertWagaDmamInfo(BisInspOffLineWagaRgeister bisInspOffLineWagaRgeister, String regId, String persId, AttWagaRgstr attWagaRgstr) { BisInspWagaDmamInfo bisInspWagaDmamInfo = new BisInspWagaDmamInfo(); if (bisInspOffLineWagaRgeister.getBisInspWagaDmamInfo() != null) { bisInspWagaDmamInfo = bisInspOffLineWagaRgeister.getBisInspWagaDmamInfo(); bisInspWagaDmamInfo.setId(UuidUtil.uuid()); bisInspWagaDmamInfo.setRgstrId(regId); bisInspWagaDmamInfo.setIntm(new Date()); bisInspWagaDmamInfo.setUptm(new Date()); bisInspWagaDmamInfo.setDataStat("0"); bisInspWagaDmamInfo.setRecPersId(persId); bisInspWagaDmamInfoDao.insert(bisInspWagaDmamInfo); attWagaRgstr.setDmamStat("2"); } else { bisInspWagaDmamInfo.setId(UuidUtil.uuid()); bisInspWagaDmamInfo.setRgstrId(regId); bisInspWagaDmamInfo.setIntm(new Date()); bisInspWagaDmamInfo.setUptm(new Date()); bisInspWagaDmamInfo.setDataStat("0"); bisInspWagaDmamInfo.setRecPersId(persId); bisInspWagaDmamInfoDao.insert(bisInspWagaDmamInfo); attWagaRgstr.setDmamStat("1"); } } /** * 水闸督查工程实体情况 * * @param bisInspOffLineWagaRgeister * @param regId * @param bisInspOffLineObj * @param attWagaRgstr */ public void insertWagaProenInfo(BisInspOffLineWagaRgeister bisInspOffLineWagaRgeister, String regId, String persId, AttWagaRgstr attWagaRgstr) { BisInspWagaProenInfo bisInspWagaProenInfo = new BisInspWagaProenInfo(); if (bisInspOffLineWagaRgeister.getBisInspWagaProenInfo() != null) { bisInspWagaProenInfo = bisInspOffLineWagaRgeister.getBisInspWagaProenInfo(); bisInspWagaProenInfo.setId(UuidUtil.uuid()); bisInspWagaProenInfo.setRgstrId(regId); bisInspWagaProenInfo.setIntm(new Date()); bisInspWagaProenInfo.setUptm(new Date()); bisInspWagaProenInfo.setDataStat("0"); bisInspWagaProenInfo.setRecPersId(persId); bisInspWagaProenInfoDao.insert(bisInspWagaProenInfo); attWagaRgstr.setProenStat("2"); } else { bisInspWagaProenInfo.setId(UuidUtil.uuid()); bisInspWagaProenInfo.setRgstrId(regId); bisInspWagaProenInfo.setIntm(new Date()); bisInspWagaProenInfo.setUptm(new Date()); bisInspWagaProenInfo.setDataStat("0"); bisInspWagaProenInfo.setRecPersId(persId); bisInspWagaProenInfoDao.insert(bisInspWagaProenInfo); attWagaRgstr.setProenStat("1"); } } @Override public BisInspOffLineRetBase getBaseInfo(BisInspOffLine bisInspOffLine) { BisInspOffLineRetBase bisInspOffLineRetBase = new BisInspOffLineRetBase(); AttWagaBaseParam attWagaBaseParam = new AttWagaBaseParam(); attWagaBaseParam.setGateName(bisInspOffLine.getName()); attWagaBaseParam.setAdCode(AdLevelUtil.getAddvcd(bisInspOffLine.getAddvcd())); bisInspOffLineRetBase.setBase(attWagaBaseDao.findList(attWagaBaseParam)); return bisInspOffLineRetBase; } }