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.*; 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.ArrayList; import java.util.Date; import java.util.List; /** * 水源地离线填报 * * @author lhc * @date 2021/07/16 10:56 */ @Service @Transactional public class BisInspOffLineWrmProcess extends BisInspOffLineProcess { @Autowired BisInspAllObjDao bisInspAllObjDao; @Autowired BisInspPblmDao bisInspPblmDao;//督查问题 @Autowired BisInspWrmRgstrDao bisInspWrmRgstrDao; @Autowired BisInspWrmWtuntPblmDao bisInspWrmWtuntPblmDao; @Autowired BisInspWrmRgstrWintDao bisInspWrmRgstrWintDao; @Autowired BisInspWrmRgstrMacowiagDao bisInspWrmRgstrMacowiagDao; @Autowired AttAdBaseDao attAdBaseDao; @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); //解析水资源填报信息 BisInspOffLineWrmRgeister bisInspOffLineWrmRgeister = om.readValue(bisInspOffLineObj.getRegister(), BisInspOffLineWrmRgeister.class); //解析水源地对象 if (bisInspOffLineObj.getBase() != null) { String objId = UuidUtil.uuid(); String groupId = bisInspOffLineObj.getGroupId(); BisInspWrmRgstr bisInspWrmRgstr; String regId = objId; String persId = bisInspOffLineObj.getPersId(); bisInspWrmRgstr = om.readValue(bisInspOffLineObj.getBase(), BisInspWrmRgstr.class); if (StringUtils.isBlank(bisInspWrmRgstr.getRgstrId())) { insertBisInspAllObj(bisInspOffLineObj, groupId, objId, bisInspWrmRgstr); bisInspWrmRgstr.setRgstrId(regId); bisInspWrmRgstr.setObjId(objId); bisInspWrmRgstr.setId(regId); } insertWrmRgstr(groupId, objId, persId, regId, bisInspWrmRgstr); //bisInspWrmRgstr.setRgstrId(regId); bisInspWrmRgstr.setId(bisInspWrmRgstr.getRgstrId()); // bisInspWrmRgstr.setObjId(objId); regId = bisInspWrmRgstr.getRgstrId(); objId = bisInspWrmRgstr.getObjId(); //行政区取用水管控及地下水监管情况 insertMacowiag(bisInspOffLineWrmRgeister, regId, persId, bisInspWrmRgstr); //取水口取水监管情况检查表 //insertWint(bisInspOffLineWrmRgeister, regId, persId, bisInspWrmRgstr); //2019年水资源管理和节约用水监督检查发现问题问题清单 insertWintPblm(bisInspOffLineWrmRgeister, regId, persId, bisInspWrmRgstr); //更新督查 字表状态 bisInspWrmRgstrDao.update(bisInspWrmRgstr); bisInspOffLineRet.setObjId(objId); bisInspOffLineRet.setRegId(regId); } return bisInspOffLineRet; } /** * 添加到督查任务 * * @param groupId * @param objId * @param attSwhsBase */ public void insertBisInspAllObj(BisInspOffLineObj bisInspOffLineObj, String groupId, String objId, BisInspWrmRgstr bisInspWrmRgstr) { BisInspAllObj bisInspAllObj = new BisInspAllObj(); bisInspAllObj.setId(groupId); bisInspAllObj.setObjId(objId); bisInspAllObj.setNm(bisInspWrmRgstr.getAdName()); bisInspAllObj.setCode(bisInspWrmRgstr.getAdFullName());//非空字段 bisInspAllObj.setPtype("32"); bisInspAllObj.setOrgId(bisInspOffLineObj.getOrgId()); bisInspAllObj.setAdCode(bisInspOffLineObj.getProvince()); bisInspAllObj.setLgtd(bisInspWrmRgstr.getGdX()); bisInspAllObj.setLttd(bisInspWrmRgstr.getGdY()); bisInspAllObj.setLgtdpc(bisInspWrmRgstr.getCenterX()); bisInspAllObj.setLttdpc(bisInspWrmRgstr.getCenterY()); bisInspAllObj.setObjAdCode(bisInspWrmRgstr.getAdCode()); bisInspAllObjDao.insert(bisInspAllObj); } /** * 插入登记表信息 * * @param bisInspOffLineObj * @param objId * @param om * @param regId * @param bisInspSwhsRgstr * @throws IOException */ public void insertWrmRgstr(String groupId, String objId, String persId, String regId, BisInspWrmRgstr bisInspWrmRgstr) throws IOException { BisInspWrmRgstrParam bisInspWrmRgstrParam = new BisInspWrmRgstrParam(); bisInspWrmRgstrParam.setId(bisInspWrmRgstr.getRgstrId()); List bisInspWrmRgstrs = bisInspWrmRgstrDao.findList(bisInspWrmRgstrParam); if (bisInspWrmRgstrs != null && bisInspWrmRgstrs.size() == 1) { bisInspWrmRgstr.setId(regId); bisInspWrmRgstr.setUptm(new Date()); bisInspWrmRgstrDao.update(bisInspWrmRgstr); } else { bisInspWrmRgstr.setId(regId); bisInspWrmRgstr.setObjId(objId); bisInspWrmRgstr.setIntm(new Date()); bisInspWrmRgstr.setUptm(new Date()); bisInspWrmRgstrDao.insert(bisInspWrmRgstr); } } public void insertMacowiag(BisInspOffLineWrmRgeister bisInspOffLineWrmRgeister, String regId, String persId, BisInspWrmRgstr bisInspWrmRgstr) { //节水评价情况检查表 BisInspWrmRgstrMacowiag bisInspWrmRgstrMacowiag = new BisInspWrmRgstrMacowiag(); BisInspWrmRgstrMacowiagParam bisInspWrmRgstrMacowiagParam = new BisInspWrmRgstrMacowiagParam(); bisInspWrmRgstrMacowiagParam.setRgstrId(regId); List bisInspWrmRgstrMacowiags = bisInspWrmRgstrMacowiagDao.findList(bisInspWrmRgstrMacowiagParam); if (bisInspWrmRgstrMacowiags.size() > 0) { //删除后重新插入 bisInspWrmRgstrMacowiagDao.deleteBy(bisInspWrmRgstrMacowiagParam); } //添加新的检查附表 bisInspWrmRgstrMacowiag = bisInspOffLineWrmRgeister.getBisInspWrmRgstrMacowiag(); bisInspWrmRgstrMacowiag.setId(UuidUtil.uuid()); bisInspWrmRgstrMacowiag.setRgstrId(regId); bisInspWrmRgstrMacowiag.setUptm(new Date()); bisInspWrmRgstrMacowiag.setObjId(bisInspWrmRgstr.getObjId()); bisInspWrmRgstrMacowiagDao.insert(bisInspWrmRgstrMacowiag); } public void insertWint(BisInspOffLineWrmRgeister bisInspOffLineWrmRgeister, String regId, String persId, BisInspWrmRgstr bisInspWrmRgstr) { //节水评价情况检查表 BisInspWrmRgstrWint bisInspWrmRgstrWint; BisInspWrmRgstrWintParam bisInspWrmRgstrWintParam = new BisInspWrmRgstrWintParam(); bisInspWrmRgstrWintParam.setRgstrId(regId); List bisInspWrmRgstrWints = bisInspWrmRgstrWintDao.findList(bisInspWrmRgstrWintParam); bisInspWrmRgstrWint = bisInspOffLineWrmRgeister.getBisInspWrmRgstrWint(); if (null != bisInspWrmRgstrWints && bisInspWrmRgstrWints.size() > 0) { bisInspWrmRgstrWintDao.deleteBy(bisInspWrmRgstrWintParam); } bisInspWrmRgstrWint = bisInspOffLineWrmRgeister.getBisInspWrmRgstrWint(); if (null == bisInspWrmRgstrWint) { bisInspWrmRgstrWint = new BisInspWrmRgstrWint(); bisInspWrmRgstrWint.setIntm(new Date()); bisInspWrmRgstrWint.setUptm(new Date()); bisInspWrmRgstrWint.setPersId(persId); } bisInspWrmRgstrWint.setId(UuidUtil.uuid()); bisInspWrmRgstrWint.setRgstrId(regId); bisInspWrmRgstrWintDao.insert(bisInspWrmRgstrWint); } public void insertWintPblm(BisInspOffLineWrmRgeister bisInspOffLineWrmRgeister, String regId, String persId, BisInspWrmRgstr bisInspWrmRgstr) { //节水评价情况检查表 List bisInspWrmWtuntPblms; if (bisInspOffLineWrmRgeister.getBisInspWrmWtuntPblms().size() > 0) { bisInspWrmWtuntPblms = bisInspOffLineWrmRgeister.getBisInspWrmWtuntPblms(); for (BisInspWrmWtuntPblm bisInspWrmWtuntPblm : bisInspWrmWtuntPblms) { bisInspWrmWtuntPblm.setId(UuidUtil.uuid()); bisInspWrmWtuntPblm.setRgstrId(regId); bisInspWrmWtuntPblmDao.insert(bisInspWrmWtuntPblm); bisInspWrmRgstr.setWintStat("2"); } } } @Override public BisInspOffLineRetBase getBaseInfo(BisInspOffLine bisInspOffLine) { BisInspOffLineRetBase bisInspOffLineRetBase = new BisInspOffLineRetBase(); AttAdBaseParam attAdBaseParam = new AttAdBaseParam(); attAdBaseParam.setAdName(bisInspOffLine.getName()); attAdBaseParam.setAdCode(AdLevelUtil.getAddvcd(bisInspOffLine.getAddvcd())); bisInspOffLineRetBase.setBase(attAdBaseDao.findList(attAdBaseParam)); //判断登记表是否有重复对象 List bisInspWrmRgstrs = bisInspWrmRgstrDao.getWrmByIdNm(bisInspOffLine.getGroupId(), bisInspOffLine.getName()); if (null != bisInspWrmRgstrs && bisInspWrmRgstrs.size() > 0) { bisInspOffLineRetBase.setRepeat(true); bisInspOffLineRetBase.setRepeatList(bisInspWrmRgstrs); } else { bisInspOffLineRetBase.setRepeat(false); } return bisInspOffLineRetBase; } }