package cn.com.goldenwater.dcproj.service.impl.offline; import cn.com.goldenwater.dcproj.constValue.SplitValue; import cn.com.goldenwater.dcproj.dao.*; import cn.com.goldenwater.dcproj.model.*; import cn.com.goldenwater.dcproj.param.AttGrwBaseParam; import cn.com.goldenwater.dcproj.service.GwComFileService; import cn.com.goldenwater.dcproj.service.SupervisionPlanService; 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/27 17:07 */ @Service @Transactional public class BisInspOffLineGrwProcess extends BisInspOffLineProcess { @Autowired AttGrwBaseDao attGrwBaseDao; @Autowired BisInspGrwDao bisInspGrwDao; @Autowired BisInspAllObjDao bisInspAllObjDao; @Autowired BisInspPblmDao bisInspPblmDao;//督查问题 @Autowired SupervisionPlanService supervisionPlanService; @Autowired private GwComFileService gwComFileService;//文件操作 @Value("${getFile.prefix}") public String prefix; @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); //解析地下水填报信息 BisInspGrw bisInspGrw = new BisInspGrw(); if (bisInspOffLineObj.getRegister() != null) { bisInspGrw = om.readValue(bisInspOffLineObj.getRegister(), BisInspGrw.class); } //解析地下水基本信息对象 if (bisInspOffLineObj.getBase() != null) { //添加到督查任务bisInspOffLineGrwRgeister String objId = UuidUtil.uuid(); String regId = objId; String groupId = bisInspOffLineObj.getGroupId(); String persId = bisInspOffLineObj.getPersId(); AttGrwBase attGrwBase = om.readValue(bisInspOffLineObj.getBase(), AttGrwBase.class); insertBisInspAllObj(bisInspOffLineObj, groupId, objId, attGrwBase); insertAttGrwRgstr(attGrwBase, objId, persId, regId, bisInspGrw); bisInspOffLineRet.setRegId(regId); bisInspOffLineRet.setObjId(objId); } return bisInspOffLineRet; } /** * 添加到督查任务 * * @param groupId * @param objId * @param attGrwBase */ public void insertBisInspAllObj(BisInspOffLineObj bisInspOffLineObj, String groupId, String objId, AttGrwBase attGrwBase) { BisInspAllObj bisInspAllObj = new BisInspAllObj(); bisInspAllObj.setId(groupId); bisInspAllObj.setObjId(objId); bisInspAllObj.setOrgId(bisInspOffLineObj.getOrgId()); bisInspAllObj.setAdCode(bisInspOffLineObj.getProvince()); bisInspAllObj.setNm(attGrwBase.getStnm()); bisInspAllObj.setCode(attGrwBase.getStcd()); bisInspAllObj.setPtype("5"); bisInspAllObj.setLgtd(attGrwBase.getLgtd()); bisInspAllObj.setLttd(attGrwBase.getLttd()); bisInspAllObj.setLgtdpc(attGrwBase.getLgtdPc()); bisInspAllObj.setLttdpc(attGrwBase.getLttdPc()); bisInspAllObjDao.insert(bisInspAllObj); } /** * 插入登记表信息 * * @param bisInspOffLineObj * @param objId * @param om * @param regId * @param bisInspGrw * @throws IOException */ public void insertAttGrwRgstr(AttGrwBase attGrwBase, String objId, String persId, String regId, BisInspGrw bisInspGrw) throws IOException { bisInspGrw.setId(regId); bisInspGrw.setObjId(objId); bisInspGrw.setStcd(attGrwBase.getStcd()); bisInspGrw.setStnm(attGrwBase.getStnm()); bisInspGrw.setSttp(attGrwBase.getSttp()); bisInspGrw.setStlc(attGrwBase.getStlc()); bisInspGrw.setInspState("1"); bisInspGrw.setFlagValid("0"); bisInspGrw.setCheckPid(persId); if (bisInspGrw.getFlagSign() != null && !"".equals(bisInspGrw.getFlagSign())) { bisInspGrw.setMaintainStatus("1");//已填报 } else { bisInspGrw.setMaintainStatus("0");//未填报 } if (bisInspGrw.getRepeatability() != null && !"".equals(bisInspGrw.getRepeatability())) { bisInspGrw.setPercentageStatus("1");//已填报 } else { bisInspGrw.setPercentageStatus("0");//未填报 } SimpleDateFormat df = new SimpleDateFormat(SplitValue.TIME_SPLIT_SEC);//设置日期格式 String format = df.format(new Date()); bisInspGrw.setInTm(format); bisInspGrw.setUpTm(format); bisInspGrwDao.insert(bisInspGrw); } @Override public BisInspOffLineRetBase getBaseInfo(BisInspOffLine bisInspOffLine) { BisInspOffLineRetBase bisInspOffLineRetBase = new BisInspOffLineRetBase(); AttGrwBaseParam attGrwBaseParam = new AttGrwBaseParam(); attGrwBaseParam.setStnm(bisInspOffLine.getName()); attGrwBaseParam.setStcd(bisInspOffLine.getCode()); bisInspOffLineRetBase.setBase(attGrwBaseDao.findList(attGrwBaseParam)); //判断登记表是否有重复对象 List bisInspBases = bisInspGrwDao.getGrwByIdNm(bisInspOffLine.getGroupId(), bisInspOffLine.getName()); if (null != bisInspBases && bisInspBases.size() > 0) { bisInspOffLineRetBase.setRepeat(true); bisInspOffLineRetBase.setRepeatList(bisInspBases); } else { bisInspOffLineRetBase.setRepeat(false); } return bisInspOffLineRetBase; } }