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.BisInspAllObjParam; import cn.com.goldenwater.dcproj.param.BisInspSvwtAreaRgstrParam; 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.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 zhangcheng * @date 2019/11/25 17:33 */ @Service @Transactional public class BisInspOffLineSvwtProcess extends BisInspOffLineProcess { @Autowired BisInspAllObjDao bisInspAllObjDao; @Autowired BisInspPblmDao bisInspPblmDao;//督查问题 @Autowired BisInspSvwtAreaRgstrWswmDao bisInspSvwtAreaRgstrWswmDao; @Autowired BisInspSvwtAreaRgstrWseDao bisInspSvwtAreaRgstrWseDao; @Autowired BisInspSvwtAreaRgstrDao bisInspSvwtAreaRgstrDao; @Autowired AttAdBaseDao attAdBaseDao; @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); //解析节水管理与评价填报信息 BisInspOffLineSvwtRgeister bisInspOffLineSvwtRgeister = om.readValue(bisInspOffLineObj.getRegister(), BisInspOffLineSvwtRgeister.class); //解析节水管理与评价基本信息对象 if (bisInspOffLineObj.getBase() != null) { /* if (null == bisInspOffLineObj.getReplace() || bisInspOffLineObj.getReplace()) { delRgstrData(bisInspOffLineObj); }*/ //添加到督查任务 String objId = UuidUtil.uuid(); String groupId = bisInspOffLineObj.getGroupId(); BisInspSvwtAreaRgstr bisInspSvwtAreaRgstr = new BisInspSvwtAreaRgstr(); String regId = objId; String persId = bisInspOffLineObj.getPersId(); BisInspSvwtAreaRgstr bisInspSvwtAreaRgstrBase = om.readValue(bisInspOffLineObj.getBase(), BisInspSvwtAreaRgstr.class); insertBisInspAllObj(bisInspOffLineObj, groupId, objId, bisInspSvwtAreaRgstrBase); insertSvntRgstr(bisInspSvwtAreaRgstrBase, groupId, objId, persId, regId, bisInspSvwtAreaRgstr); //节约用水管理情况检查表 insertSvwtWswmInfo(bisInspOffLineSvwtRgeister, regId, persId, bisInspSvwtAreaRgstr); //节水评价情况检查表 insertSvwtWseInfo(bisInspOffLineSvwtRgeister, regId, persId, bisInspSvwtAreaRgstr); //更新督查 字表状态 bisInspSvwtAreaRgstrDao.update(bisInspSvwtAreaRgstr); bisInspOffLineRet.setRegId(regId); bisInspOffLineRet.setObjId(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.SVWT.getValue(), bisInspAllObj.getObjId()); } } /** * 添加到督查任务 * * @param groupId * @param objId * @param bisInspSvwtAreaRgstrBase */ public void insertBisInspAllObj(BisInspOffLineObj bisInspOffLineObj, String groupId, String objId, BisInspSvwtAreaRgstr bisInspSvwtAreaRgstrBase) { BisInspAllObj bisInspAllObj = new BisInspAllObj(); bisInspAllObj.setId(groupId); bisInspAllObj.setObjId(objId); bisInspAllObj.setNm(bisInspSvwtAreaRgstrBase.getAdName()); bisInspAllObj.setCode(bisInspSvwtAreaRgstrBase.getAdCode());//非空字段 bisInspAllObj.setPtype("15"); bisInspAllObj.setOrgId(bisInspOffLineObj.getOrgId()); bisInspAllObj.setAdCode(bisInspOffLineObj.getProvince()); bisInspAllObj.setLgtd(bisInspSvwtAreaRgstrBase.getPcX()); bisInspAllObj.setLttd(bisInspSvwtAreaRgstrBase.getPcY()); bisInspAllObj.setLgtdpc(bisInspSvwtAreaRgstrBase.getGdX()); bisInspAllObj.setLttdpc(bisInspSvwtAreaRgstrBase.getGdY()); bisInspAllObjDao.insert(bisInspAllObj); } /** * 插入登记表信息 * * @param bisInspOffLineObj * @param objId * @param om * @param regId * @param bisInspSvwtAreaRgstr * @throws IOException */ public void insertSvntRgstr(BisInspSvwtAreaRgstr bisInspSvwtAreaRgstrBase, String groupId, String objId, String persId, String regId, BisInspSvwtAreaRgstr bisInspSvwtAreaRgstr) throws IOException { bisInspSvwtAreaRgstr.setId(regId); bisInspSvwtAreaRgstr.setObjId(objId); bisInspSvwtAreaRgstr.setAdName(bisInspSvwtAreaRgstrBase.getAdName()); bisInspSvwtAreaRgstr.setAdCode(bisInspSvwtAreaRgstrBase.getAdCode()); bisInspSvwtAreaRgstr.setLoc(bisInspSvwtAreaRgstrBase.getLoc()); bisInspSvwtAreaRgstr.setBChkUnit(bisInspSvwtAreaRgstrBase.getBChkUnit()); bisInspSvwtAreaRgstr.setContact(bisInspSvwtAreaRgstrBase.getContact()); bisInspSvwtAreaRgstr.setContactTel(bisInspSvwtAreaRgstrBase.getContactTel()); bisInspSvwtAreaRgstr.setPrincipal(bisInspSvwtAreaRgstrBase.getPrincipal()); bisInspSvwtAreaRgstr.setPrincipalTel(bisInspSvwtAreaRgstrBase.getPrincipalTel()); bisInspSvwtAreaRgstr.setNote(bisInspSvwtAreaRgstrBase.getNote()); bisInspSvwtAreaRgstr.setChkUnit(bisInspSvwtAreaRgstrBase.getChkUnit()); bisInspSvwtAreaRgstr.setChkPers(bisInspSvwtAreaRgstrBase.getChkPers()); bisInspSvwtAreaRgstr.setChkTm(bisInspSvwtAreaRgstrBase.getChkTm()); bisInspSvwtAreaRgstr.setState("1"); bisInspSvwtAreaRgstr.setDataStat("0"); bisInspSvwtAreaRgstr.setPersId(persId); bisInspSvwtAreaRgstr.setGroupId(groupId); bisInspSvwtAreaRgstr.setGdX(bisInspSvwtAreaRgstrBase.getGdX()); bisInspSvwtAreaRgstr.setGdY(bisInspSvwtAreaRgstrBase.getGdY()); bisInspSvwtAreaRgstr.setPcX(bisInspSvwtAreaRgstrBase.getPcX()); bisInspSvwtAreaRgstr.setPcY(bisInspSvwtAreaRgstrBase.getPcY()); bisInspSvwtAreaRgstr.setInTm(new Date()); bisInspSvwtAreaRgstr.setUpTm(new Date()); bisInspSvwtAreaRgstrDao.insert(bisInspSvwtAreaRgstr); } /** * 插入节约用水管理情况 * * @param bisInspOffLineSvwtRgeister * @param regId * @param bisInspOffLineObj * @param bisInspSvwtAreaRgstr */ public void insertSvwtWswmInfo(BisInspOffLineSvwtRgeister bisInspOffLineSvwtRgeister, String regId, String persId, BisInspSvwtAreaRgstr bisInspSvwtAreaRgstr) { //节水评价情况检查表 BisInspSvwtAreaRgstrWswm bisInspSvwtAreaRgstrWswm = new BisInspSvwtAreaRgstrWswm(); if (bisInspOffLineSvwtRgeister.getBisInspSvwtAreaRgstrWswm() != null) { bisInspSvwtAreaRgstrWswm = bisInspOffLineSvwtRgeister.getBisInspSvwtAreaRgstrWswm(); bisInspSvwtAreaRgstrWswm.setId(UuidUtil.uuid()); bisInspSvwtAreaRgstrWswm.setRgstrId(regId); bisInspSvwtAreaRgstrWswm.setInTm(new Date()); bisInspSvwtAreaRgstrWswm.setUpTm(new Date()); bisInspSvwtAreaRgstrWswm.setDataStat("0"); bisInspSvwtAreaRgstrWswm.setPersId(persId); bisInspSvwtAreaRgstrWswmDao.insert(bisInspSvwtAreaRgstrWswm); bisInspSvwtAreaRgstr.setWswmInfoStat("2"); } else { bisInspSvwtAreaRgstrWswm.setId(UuidUtil.uuid()); bisInspSvwtAreaRgstrWswm.setRgstrId(regId); bisInspSvwtAreaRgstrWswm.setInTm(new Date()); bisInspSvwtAreaRgstrWswm.setUpTm(new Date()); bisInspSvwtAreaRgstrWswm.setDataStat("0"); bisInspSvwtAreaRgstrWswm.setPersId(persId); bisInspSvwtAreaRgstrWswmDao.insert(bisInspSvwtAreaRgstrWswm); bisInspSvwtAreaRgstr.setWswmInfoStat("1"); } } /** * 插入节水评价情况 * * @param bisInspOffLineSvwtRgeister * @param regId * @param bisInspOffLineObj * @param bisInspSvwtAreaRgstr */ public void insertSvwtWseInfo(BisInspOffLineSvwtRgeister bisInspOffLineSvwtRgeister, String regId, String persId, BisInspSvwtAreaRgstr bisInspSvwtAreaRgstr) { //节水评价情况检查表 BisInspSvwtAreaRgstrWse bisInspSvwtAreaRgstrWse = new BisInspSvwtAreaRgstrWse(); if (bisInspOffLineSvwtRgeister.getBisInspSvwtAreaRgstrWse() != null) { bisInspSvwtAreaRgstrWse = bisInspOffLineSvwtRgeister.getBisInspSvwtAreaRgstrWse(); bisInspSvwtAreaRgstrWse.setId(UuidUtil.uuid()); bisInspSvwtAreaRgstrWse.setRgstrId(regId); bisInspSvwtAreaRgstrWse.setInTm(new Date()); bisInspSvwtAreaRgstrWse.setUpTm(new Date()); bisInspSvwtAreaRgstrWse.setDataStat("0"); bisInspSvwtAreaRgstrWse.setPersId(persId); bisInspSvwtAreaRgstrWseDao.insert(bisInspSvwtAreaRgstrWse); bisInspSvwtAreaRgstr.setWseInfoStat2("2"); } else { bisInspSvwtAreaRgstrWse.setId(UuidUtil.uuid()); bisInspSvwtAreaRgstrWse.setRgstrId(regId); bisInspSvwtAreaRgstrWse.setInTm(new Date()); bisInspSvwtAreaRgstrWse.setUpTm(new Date()); bisInspSvwtAreaRgstrWse.setDataStat("0"); bisInspSvwtAreaRgstrWse.setPersId(persId); bisInspSvwtAreaRgstrWseDao.insert(bisInspSvwtAreaRgstrWse); bisInspSvwtAreaRgstr.setWseInfoStat2("1"); } } @Override public BisInspOffLineRetBase getBaseInfo(BisInspOffLine bisInspOffLine) { BisInspOffLineRetBase bisInspOffLineRetBase = new BisInspOffLineRetBase(); BisInspSvwtAreaRgstrParam bisInspSvwtAreaRgstrParam = new BisInspSvwtAreaRgstrParam(); bisInspSvwtAreaRgstrParam.setAdName(bisInspOffLine.getName()); bisInspSvwtAreaRgstrParam.setAdCode(AdLevelUtil.getAddvcd(bisInspOffLine.getAddvcd())); bisInspOffLineRetBase.setBase(bisInspSvwtAreaRgstrDao.findList(bisInspSvwtAreaRgstrParam)); return bisInspOffLineRetBase; } }