3e9674978463947e34285d0f3a74f64b12add78a.svn-base 76 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514
  1. package cn.com.goldenwater.dcproj.service.impl.mend;
  2. import cn.com.goldenwater.core.model.BaseBean;
  3. import cn.com.goldenwater.core.service.AbstractCrudService;
  4. import cn.com.goldenwater.dcproj.annotation.NotExport;
  5. import cn.com.goldenwater.dcproj.constValue.BisInspEnum;
  6. import cn.com.goldenwater.dcproj.constValue.SplitValue;
  7. import cn.com.goldenwater.dcproj.dao.BisInspPblmPlistDao;
  8. import cn.com.goldenwater.dcproj.dao.BisInspPblmPlistLogDao;
  9. import cn.com.goldenwater.dcproj.dao.BisInspRsvrRgstrDao;
  10. import cn.com.goldenwater.dcproj.dto.LoginUser;
  11. import cn.com.goldenwater.dcproj.model.AttAdBase;
  12. import cn.com.goldenwater.dcproj.model.BisInspAllRlationPers;
  13. import cn.com.goldenwater.dcproj.model.BisInspPblm;
  14. import cn.com.goldenwater.dcproj.model.BisInspPblmPlist;
  15. import cn.com.goldenwater.dcproj.model.BisInspPblmPlistLog;
  16. import cn.com.goldenwater.dcproj.model.BisInspRsvrRgstr;
  17. import cn.com.goldenwater.dcproj.model.GwComFile;
  18. import cn.com.goldenwater.dcproj.model.OlBisInspOrg;
  19. import cn.com.goldenwater.dcproj.param.BisInspPblmPlistParam;
  20. import cn.com.goldenwater.dcproj.service.AttAdBaseService;
  21. import cn.com.goldenwater.dcproj.service.BisInspAllRlationPersService;
  22. import cn.com.goldenwater.dcproj.service.BisInspPblmPlistService;
  23. import cn.com.goldenwater.dcproj.service.BisInspPblmService;
  24. import cn.com.goldenwater.dcproj.service.DicService;
  25. import cn.com.goldenwater.dcproj.service.GwComFileService;
  26. import cn.com.goldenwater.dcproj.service.OlBisInspOrgService;
  27. import cn.com.goldenwater.dcproj.util.BisInspPblmPlistConventUtil;
  28. import cn.com.goldenwater.dcproj.util.FileUtil;
  29. import cn.com.goldenwater.dcproj.utils.AdLevelUtil;
  30. import cn.com.goldenwater.dcproj.utils.DateUtils;
  31. import cn.com.goldenwater.dcproj.utils.InspPblmUtils;
  32. import cn.com.goldenwater.dcproj.utils.InspUtils;
  33. import cn.com.goldenwater.dcproj.utils.expExcel.ExcelExport;
  34. import cn.com.goldenwater.dcproj.utils.expExcel.ExportAbstract;
  35. import cn.com.goldenwater.dcproj.utils.expExcel.ExportUtil;
  36. import cn.com.goldenwater.dcproj.utils.impexcel.ExpAndImpUtil;
  37. import cn.com.goldenwater.id.util.UuidUtil;
  38. import cn.com.goldenwater.target.CheckException;
  39. import com.github.pagehelper.PageHelper;
  40. import com.github.pagehelper.PageInfo;
  41. import io.swagger.annotations.ApiModelProperty;
  42. import org.apache.commons.collections.CollectionUtils;
  43. import org.apache.commons.collections.MapUtils;
  44. import org.apache.commons.lang3.ArrayUtils;
  45. import org.apache.commons.lang3.StringUtils;
  46. import org.slf4j.Logger;
  47. import org.slf4j.LoggerFactory;
  48. import org.springframework.beans.factory.annotation.Autowired;
  49. import org.springframework.beans.factory.annotation.Value;
  50. import org.springframework.stereotype.Service;
  51. import org.springframework.transaction.annotation.Transactional;
  52. import org.springframework.web.multipart.MultipartFile;
  53. import javax.servlet.http.HttpServletResponse;
  54. import java.io.BufferedInputStream;
  55. import java.io.File;
  56. import java.io.FileInputStream;
  57. import java.io.FileOutputStream;
  58. import java.io.IOException;
  59. import java.io.OutputStream;
  60. import java.lang.reflect.Field;
  61. import java.nio.charset.StandardCharsets;
  62. import java.text.ParseException;
  63. import java.text.SimpleDateFormat;
  64. import java.time.LocalDate;
  65. import java.time.format.DateTimeFormatter;
  66. import java.util.ArrayList;
  67. import java.util.Calendar;
  68. import java.util.Date;
  69. import java.util.List;
  70. import java.util.Map;
  71. import java.util.Objects;
  72. import java.util.Optional;
  73. import java.util.stream.Collectors;
  74. import static cn.com.goldenwater.dcproj.utils.BeanUtil.transBean2Map;
  75. import static cn.com.goldenwater.dcproj.utils.expExcel.ExportUtil.COMMONLIST_AND_OPEN_ANNOTATION;
  76. /**
  77. * @author lhc
  78. * @date 2020-11-4
  79. */
  80. @Service
  81. @Transactional
  82. public class BisInspPblmPlistServiceImpl extends AbstractCrudService<BisInspPblmPlist, BisInspPblmPlistParam> implements BisInspPblmPlistService {
  83. private Logger logger = LoggerFactory.getLogger(BisInspPblmPlistServiceImpl.class);
  84. @Autowired
  85. private BisInspPblmPlistDao bisInspPblmPlistDao;
  86. @Autowired
  87. private BisInspPblmPlistLogDao bisInspPblmPlistLogDao;
  88. @Autowired
  89. private DicService dicService;
  90. @Autowired
  91. private BisInspAllRlationPersService bisInspAllRlationPersService;
  92. @Autowired
  93. private BisInspPblmService bisInspPblmService;
  94. @Autowired
  95. private AttAdBaseService attAdBaseService;
  96. @Autowired
  97. private GwComFileService gwComFileService;
  98. @Autowired
  99. private OlBisInspOrgService olBisInspOrgService;
  100. @Value("${export.templatePath}")
  101. private String templatePath;
  102. @Value("${web.upload-path}")
  103. private String uploadPath;
  104. @Autowired
  105. private BisInspRsvrRgstrDao bisInspRsvrRgstrDao;
  106. public BisInspPblmPlistServiceImpl(BisInspPblmPlistDao bisInspPblmPlistDao) {
  107. super(bisInspPblmPlistDao);
  108. this.bisInspPblmPlistDao = bisInspPblmPlistDao;
  109. }
  110. @Override
  111. public int insert(BisInspPblmPlist bisInspPblmPlist) {
  112. String uuid = UuidUtil.uuid(); // 生成uuid
  113. bisInspPblmPlist.setId(uuid);
  114. bisInspPblmPlist.setIntm(new Date());
  115. bisInspPblmPlist.setUptm(new Date());
  116. bisInspPblmPlist.setDataStat("0");
  117. BisInspAllRlationPers bisInspAllRlationPers = bisInspAllRlationPersService.getById(bisInspPblmPlist.getPersId());
  118. bisInspPblmPlist.setPersName(bisInspAllRlationPers.getPersName());
  119. bisInspPblmPlist.setPblmState("0");
  120. bisInspPblmPlist.setCrtState("0");
  121. bisInspPblmPlist.setIsStart("0");
  122. bisInspPblmPlist.setImpSource("水利厅");
  123. // 0未销号 1 销号
  124. bisInspPblmPlist.setPblmOut("0");
  125. //获取问题属性,冗余到整改表
  126. BisInspPblm bisInspPblm = bisInspPblmService.get(bisInspPblmPlist.getPblmId());
  127. if (null != bisInspPblm) {
  128. // 四川省 填报问题提交时 如果时小水库 判断 水库注册登记号 是否 存在
  129. /* if (bisInspPblm.getObjCode().startsWith("51") && "1".equals(bisInspPblm.getObjType())) {
  130. List<BisInspRsvrRgstr> rsvrRgstrList = bisInspRsvrRgstrDao.getByPblmId(bisInspPblmPlist.getPblmId());
  131. if (null != rsvrRgstrList && rsvrRgstrList.size() > 0) {
  132. String damRegCode = rsvrRgstrList.get(0).getDamRegCode();
  133. if (StringUtils.isBlank(damRegCode)) {
  134. throw new CheckException("水库注册登记号不能为空!");
  135. }
  136. bisInspPblmPlist.setDamRegCode(damRegCode);
  137. }
  138. }*/
  139. // 设置复核状态 0 未复核
  140. bisInspPblmPlist.setReviewStat("0");
  141. bisInspPblmPlist.setObjCode(bisInspPblm.getObjCode());
  142. bisInspPblmPlist.setObjAdCode(bisInspPblm.getObjAdCode());
  143. bisInspPblmPlist.setPblmAdName(attAdBaseService.getByAdcode(bisInspPblm.getObjAdCode()).getAdFullName());
  144. bisInspPblmPlist.setObjName(bisInspPblm.getObjName());
  145. bisInspPblmPlist.setObjType(bisInspPblm.getObjType());
  146. bisInspPblmPlist.setPblmDescBz(bisInspPblm.getPblmDescBz());
  147. bisInspPblmPlist.setPblmNameBz(bisInspPblm.getPblmNameBz());
  148. bisInspPblmPlist.setPblmTm(bisInspPblm.getCollTime());
  149. bisInspPblmPlist.setInspPblmDesc(bisInspPblm.getInspPblmDesc());
  150. bisInspPblmPlist.setInspPblmCate(bisInspPblm.getInspPblmCate());
  151. // 根据问题中的 是否省属 设置 整改的 省属 属性
  152. bisInspPblmPlist.setProvincial(bisInspPblm.getProvincial());
  153. // 根据问题中的 机构id和 所属行政区域代码 设置 整改记录中的机构Id和所属行政区域代码
  154. bisInspPblmPlist.setBelongOrgId(bisInspPblm.getBelongOrgId());
  155. bisInspPblmPlist.setBelongAdCode(bisInspPblm.getBelongAdCode());
  156. // 山东省的 市、县 自查 整改流程 1-未下发 默认值
  157. if (bisInspPblm.getBelongAdCode().startsWith("37")) {
  158. String curOrgId = bisInspPblmPlist.getSendOrgId();
  159. OlBisInspOrg olBisInspOrg = olBisInspOrgService.get(curOrgId);
  160. AttAdBase attAdBase = attAdBaseService.getByAdcode(olBisInspOrg.getAdCode());
  161. String adGrad = attAdBase.getAdGrad();
  162. if ("3".equals(adGrad)) {
  163. // 市级自查 添加整改问题
  164. bisInspPblmPlist.setSelfInspProcessState("1");
  165. // 增加 自查记录
  166. AddOptionLog(uuid, "0", "添加整改问题", "", "市级待下发", bisInspPblmPlist.getPersId(), bisInspAllRlationPers.getPersName(), bisInspPblmPlist.getSendOrgId(), bisInspPblmPlist.getSendOrgName());
  167. } else if ("4".equals(adGrad)) {
  168. // 县级级自查 添加整改问题
  169. bisInspPblmPlist.setSelfInspProcessState("2");
  170. // 增加 自查记录
  171. AddOptionLog(uuid, "0", "添加整改问题", "", "县级待整改反馈", bisInspPblmPlist.getPersId(), bisInspAllRlationPers.getPersName(), bisInspPblmPlist.getSendOrgId(), bisInspPblmPlist.getSendOrgName());
  172. }
  173. }
  174. }
  175. return this.bisInspPblmPlistDao.insert(bisInspPblmPlist);
  176. }
  177. @Override
  178. public int update(BisInspPblmPlist bisInspPblmPlist) {
  179. bisInspPblmPlist.setUptm(new Date());
  180. return this.bisInspPblmPlistDao.update(bisInspPblmPlist);
  181. }
  182. @Override
  183. public int delete(String id) {
  184. return this.bisInspPblmPlistDao.delete(id);
  185. }
  186. @Override
  187. public PageInfo<BisInspPblmPlist> getList(BisInspPblmPlistParam bisInspPblmPlistParam) {
  188. PageHelper.startPage(bisInspPblmPlistParam);
  189. bisInspPblmPlistParam.setObjAdCode(AdLevelUtil.getAddvcd(bisInspPblmPlistParam.getObjAdCode()));
  190. List<BisInspPblmPlist> list = this.bisInspPblmPlistDao.getList(bisInspPblmPlistParam);
  191. PageInfo<BisInspPblmPlist> pageInfo = new PageInfo<>(list);
  192. for (BisInspPblmPlist bisInspPblmPlist : pageInfo.getList()) {
  193. //补充省市县
  194. if (bisInspPblmPlist.getPblmAdName() != null) {
  195. if (bisInspPblmPlist.getPblmAdName().contains(SplitValue.HENG_SPLIT)) {
  196. String[] split = bisInspPblmPlist.getPblmAdName().split(SplitValue.HENG_SPLIT);
  197. if (split.length == 3) {
  198. bisInspPblmPlist.setProvince(split[0]);
  199. bisInspPblmPlist.setCity(split[1]);
  200. bisInspPblmPlist.setCounty(split[2]);
  201. }
  202. if (split.length == 2) {
  203. bisInspPblmPlist.setProvince(split[0]);
  204. bisInspPblmPlist.setCity(split[1]);
  205. bisInspPblmPlist.setCounty("");
  206. }
  207. } else {
  208. bisInspPblmPlist.setProvince(bisInspPblmPlist.getPblmAdName());
  209. }
  210. }
  211. }
  212. return pageInfo;
  213. }
  214. @Override
  215. public PageInfo<BisInspPblmPlist> sendOrgGetList(BisInspPblmPlistParam bisInspPblmPlistParam, String adCode) {
  216. bisInspPblmPlistParam.setObjAdCode(AdLevelUtil.getAddvcd(bisInspPblmPlistParam.getObjAdCode()));
  217. bisInspPblmPlistParam.setImpSource(InspUtils.setOrgIds(bisInspPblmPlistParam.getImpSource()));
  218. setDate(bisInspPblmPlistParam);
  219. if (adCode.startsWith("37")) {
  220. // 山东省的 省、市、县 分级查询
  221. String orgType = bisInspPblmPlistParam.getOrgType();
  222. if (StringUtils.isEmpty(orgType)) {
  223. // 默认为省级查询
  224. orgType = "province";
  225. bisInspPblmPlistParam.setProvincialLevel(null);
  226. }
  227. bisInspPblmPlistParam.setOrgType(null);
  228. AttAdBase curAdBase = attAdBaseService.getByAdcode(adCode);
  229. String adGrad = curAdBase.getAdGrad();
  230. bisInspPblmPlistParam.setAdGrad(null);
  231. if ("2".equals(adGrad)) {
  232. // 当前机构为省级用户
  233. if ("city".equals(orgType)) {
  234. // 省级用户查看 市级自查菜单
  235. List<OlBisInspOrg> cityOrgList = olBisInspOrgService.getByPid(bisInspPblmPlistParam.getOrgId(), null);
  236. bisInspPblmPlistParam.setBelongOrgId(cityOrgList.stream().map(m -> m.getOrgId()).collect(Collectors.joining("','", "'", "'")));
  237. bisInspPblmPlistParam.setOrgType(orgType);
  238. bisInspPblmPlistParam.setAdGrad(adGrad);
  239. bisInspPblmPlistParam.setProvincialLevel(null);
  240. bisInspPblmPlistParam.setObjAdCode(bisInspPblmPlistParam.getProvince());
  241. bisInspPblmPlistParam.setProvince(null);
  242. } else if ("county".equals(orgType)) {
  243. // 省级用户查看 县级自查菜单
  244. logger.debug("county -- province:" + bisInspPblmPlistParam.getProvince());
  245. List<OlBisInspOrg> cityOrgList = olBisInspOrgService.getByPid(bisInspPblmPlistParam.getOrgId(), null);
  246. List<OlBisInspOrg> countyOrgList = new ArrayList<>();
  247. for (OlBisInspOrg cityOrg : cityOrgList) {
  248. List<OlBisInspOrg> countyInspOrgs = olBisInspOrgService.getByPid(cityOrg.getOrgId(), null);
  249. if (null != countyInspOrgs && countyInspOrgs.size() > 0) {
  250. countyOrgList.addAll(countyInspOrgs);
  251. }
  252. }
  253. bisInspPblmPlistParam.setBelongOrgId(countyOrgList.stream().map(m -> m.getOrgId()).collect(Collectors.joining("','", "'", "'")));
  254. logger.debug("county -- belongorgid:" + bisInspPblmPlistParam.getBelongOrgId());
  255. bisInspPblmPlistParam.setOrgType(orgType);
  256. bisInspPblmPlistParam.setAdGrad(adGrad);
  257. bisInspPblmPlistParam.setProvincialLevel(null);
  258. bisInspPblmPlistParam.setObjAdCode(bisInspPblmPlistParam.getProvince());
  259. bisInspPblmPlistParam.setProvince(null);
  260. }
  261. } else if ("3".equals(adGrad)) {
  262. bisInspPblmPlistParam.setProvincialLevel(null);
  263. // 当前机构为市级用户
  264. if ("province".equals(orgType)) {
  265. // 市级用户查看 省级下发的
  266. OlBisInspOrg bisInspOrg = olBisInspOrgService.get(bisInspPblmPlistParam.getOrgId());
  267. bisInspPblmPlistParam.setBelongOrgId(bisInspOrg.getOrgPid());
  268. bisInspPblmPlistParam.setOrgType(orgType);
  269. bisInspPblmPlistParam.setAdGrad(adGrad);
  270. bisInspPblmPlistParam.setProvincialLevel("2");
  271. } else if ("city".equals(orgType)) {
  272. // 市级用户查看 市级自查菜单
  273. } else if ("county".equals(orgType)) {
  274. // 市级用户查看 县级自查菜单
  275. List<OlBisInspOrg> cityOrgList = olBisInspOrgService.getByPid(bisInspPblmPlistParam.getOrgId(), null);
  276. bisInspPblmPlistParam.setBelongOrgId(cityOrgList.stream().map(m -> m.getOrgId()).collect(Collectors.joining("','", "'", "'")));
  277. bisInspPblmPlistParam.setOrgType(orgType);
  278. bisInspPblmPlistParam.setAdGrad(adGrad);
  279. }
  280. } else if ("4".equals(adGrad)) {
  281. bisInspPblmPlistParam.setProvincialLevel(null);
  282. // 当前用户的区、县级别的 用户 ,查询 上级 市级的
  283. if ("province".equals(orgType)) {
  284. // 县级用户查看 省级下发的
  285. OlBisInspOrg bisInspOrg = olBisInspOrgService.get(bisInspPblmPlistParam.getOrgId());
  286. OlBisInspOrg cityBisInspOrg = olBisInspOrgService.get(bisInspOrg.getOrgPid());
  287. bisInspPblmPlistParam.setBelongOrgId(cityBisInspOrg.getOrgPid());
  288. bisInspPblmPlistParam.setOrgType(orgType);
  289. bisInspPblmPlistParam.setAdGrad(adGrad);
  290. bisInspPblmPlistParam.setProvincialLevel("2");
  291. } else if ("city".equals(orgType)) {
  292. // 县级用户查询 市级 下发的 问题
  293. OlBisInspOrg bisInspOrg = olBisInspOrgService.get(bisInspPblmPlistParam.getOrgId());
  294. bisInspPblmPlistParam.setBelongOrgId(bisInspOrg.getOrgPid());
  295. bisInspPblmPlistParam.setOrgType(orgType);
  296. bisInspPblmPlistParam.setAdGrad(adGrad);
  297. }
  298. }
  299. } else {
  300. bisInspPblmPlistParam.setBelongOrgId(null);
  301. bisInspPblmPlistParam.setOrgType(null);
  302. bisInspPblmPlistParam.setAdGrad(null);
  303. }
  304. PageHelper.startPage(bisInspPblmPlistParam);
  305. //只能查询分配给个人类别的,还有自己添加的,做过滤
  306. List<BisInspPblmPlist> list = this.bisInspPblmPlistDao.sendOrgGetList(bisInspPblmPlistParam);
  307. logger.info("bisInspPblmPlistParam:" + bisInspPblmPlistParam.toString());
  308. PageInfo<BisInspPblmPlist> pageInfo = new PageInfo<>(list);
  309. for (BisInspPblmPlist bisInspPblmPlist : pageInfo.getList()) {
  310. bisInspPblmPlist.setYear(DateUtils.Date2Str(bisInspPblmPlist.getPblmTm(), "yyyy"));
  311. // 补充省市县
  312. if (bisInspPblmPlist.getPblmAdName() != null) {
  313. if (bisInspPblmPlist.getPblmAdName().contains(SplitValue.HENG_SPLIT)) {
  314. String[] split = bisInspPblmPlist.getPblmAdName().split(SplitValue.HENG_SPLIT);
  315. if (split.length == 3) {
  316. bisInspPblmPlist.setProvince(split[0]);
  317. bisInspPblmPlist.setCity(split[1]);
  318. bisInspPblmPlist.setCounty(split[2]);
  319. }
  320. if (split.length == 2) {
  321. bisInspPblmPlist.setProvince(split[0]);
  322. bisInspPblmPlist.setCity(split[1]);
  323. bisInspPblmPlist.setCounty("");
  324. }
  325. } else {
  326. bisInspPblmPlist.setProvince(bisInspPblmPlist.getPblmAdName());
  327. }
  328. }
  329. // 查询
  330. logger.info("=======================================bisInspPblmPlistParam.getProvince():" + bisInspPblmPlistParam.getProvince() + "==============================================================");
  331. List<Map<String, String>> bpmDataIdList = bisInspPblmPlistDao.getBpmDataId(bisInspPblmPlist.getId(), bisInspPblmPlistParam.getOrgId(), bisInspPblmPlistParam.getProvince());
  332. if (CollectionUtils.isNotEmpty(bpmDataIdList)) {
  333. Map<String, String> bpmData = bpmDataIdList.get(0);
  334. bisInspPblmPlist.setTaskInstId(bpmData.get("taskInstId"));
  335. bisInspPblmPlist.setProcInstId(bpmData.get("procInstId"));
  336. bisInspPblmPlist.setProcTypeName("督查-" + bpmData.get("procTypeName"));
  337. }
  338. // 四川省 如果督查对象是水库 就把 大坝注册登记号 damRegCode 带出来
  339. if (StringUtils.isEmpty(bisInspPblmPlist.getDamRegCode()) && "1".equals(bisInspPblmPlist.getObjType()) && (null != bisInspPblmPlist.getObjAdCode() ? bisInspPblmPlist.getObjAdCode().startsWith("51") : (null != bisInspPblmPlist.getBelongAdCode() ? bisInspPblmPlist.getBelongAdCode().startsWith("51") : false))) {
  340. List<BisInspRsvrRgstr> rgstrList = this.bisInspRsvrRgstrDao.getByPblmId(bisInspPblmPlist.getPblmId());
  341. if (null != rgstrList && rgstrList.size() > 0) {
  342. bisInspPblmPlist.setDamRegCode(rgstrList.get(0).getDamRegCode());
  343. }
  344. }
  345. }
  346. return pageInfo;
  347. }
  348. private void setDate(BisInspPblmPlistParam bisInspPblmPlistParam) {
  349. // 1. 判断 时间类别
  350. String timeType = Optional.ofNullable(bisInspPblmPlistParam).map(BisInspPblmPlistParam::getTimeType).orElse("");
  351. if (timeType.contains("_")) {
  352. //自定义时间段
  353. String[] dateStr = timeType.split("_");
  354. if (2 == dateStr.length) {
  355. bisInspPblmPlistParam.setSttm(DateUtils.Str2Date(dateStr[0]));
  356. bisInspPblmPlistParam.setEntm(DateUtils.Str2Date(dateStr[1]));
  357. return;
  358. }
  359. }
  360. Calendar sttm = Calendar.getInstance();
  361. switch (timeType) {
  362. // 近一个月
  363. case "1":
  364. sttm.add(Calendar.MONTH, -1);
  365. break;
  366. // 近三个月
  367. case "2":
  368. sttm.add(Calendar.MONTH, -3);
  369. break;
  370. // 近半年
  371. case "3":
  372. sttm.add(Calendar.MONTH, -6);
  373. break;
  374. // 近一年
  375. case "4":
  376. sttm.add(Calendar.YEAR, -1);
  377. break;
  378. // 今年
  379. case "6":
  380. sttm.set(Integer.parseInt(DateUtils.getToday("yyyy")), Calendar.JANUARY, 1);
  381. break;
  382. case "7":
  383. // 按年度
  384. break;
  385. default:
  386. return;
  387. }
  388. bisInspPblmPlistParam.setSttm(sttm.getTime());
  389. bisInspPblmPlistParam.setEntm(new Date());
  390. if ("7".equals(timeType)) {
  391. // 福建省 督查首页 按年份统计
  392. String year = bisInspPblmPlistParam.getYear();
  393. DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd");
  394. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  395. LocalDate startDate = null;
  396. if (cn.com.goldenwater.dcproj.utils.StringUtils.isNotBlank(year)) {
  397. try {
  398. startDate = LocalDate.parse(year + "-01-01", dtf);
  399. } catch (Exception e) {
  400. startDate = LocalDate.now().withMonth(1).withDayOfMonth(1);
  401. }
  402. }
  403. if (null == startDate) {
  404. startDate = LocalDate.now().withMonth(1).withDayOfMonth(1);
  405. }
  406. LocalDate endDate = startDate.plusYears(1L).minusDays(1L);
  407. try {
  408. bisInspPblmPlistParam.setSttm(sdf.parse(startDate.format(dtf)));
  409. bisInspPblmPlistParam.setEntm(sdf.parse(endDate.format(dtf)));
  410. } catch (ParseException e) {
  411. bisInspPblmPlistParam.setSttm(sttm.getTime());
  412. bisInspPblmPlistParam.setEntm(new Date());
  413. }
  414. bisInspPblmPlistParam.setYear(String.valueOf(startDate.getYear()));
  415. }
  416. }
  417. @Override
  418. public PageInfo<BisInspPblmPlist> recvGetList(BisInspPblmPlistParam bisInspPblmPlistParam) {
  419. PageHelper.startPage(bisInspPblmPlistParam);
  420. List<BisInspPblmPlist> list = this.bisInspPblmPlistDao.recvGetList(bisInspPblmPlistParam);
  421. PageInfo<BisInspPblmPlist> pageInfo = new PageInfo<>(list);
  422. for (BisInspPblmPlist bisInspPblmPlist : pageInfo.getList()) {
  423. //补充省市县
  424. if (bisInspPblmPlist.getPblmAdName() != null) {
  425. if (bisInspPblmPlist.getPblmAdName().contains(SplitValue.HENG_SPLIT)) {
  426. String[] split = bisInspPblmPlist.getPblmAdName().split(SplitValue.HENG_SPLIT);
  427. if (split.length == 3) {
  428. bisInspPblmPlist.setProvince(split[0]);
  429. bisInspPblmPlist.setCity(split[1]);
  430. bisInspPblmPlist.setCounty(split[2]);
  431. }
  432. if (split.length == 2) {
  433. bisInspPblmPlist.setProvince(split[0]);
  434. bisInspPblmPlist.setCity(split[1]);
  435. bisInspPblmPlist.setCounty("");
  436. }
  437. } else {
  438. bisInspPblmPlist.setProvince(bisInspPblmPlist.getPblmAdName());
  439. }
  440. }
  441. }
  442. return pageInfo;
  443. }
  444. @Override
  445. public PageInfo<BisInspPblmPlist> recvCountyGetList(BisInspPblmPlistParam bisInspPblmPlistParam) {
  446. PageHelper.startPage(bisInspPblmPlistParam);
  447. List<BisInspPblmPlist> list = this.bisInspPblmPlistDao.recvCountyGetList(bisInspPblmPlistParam);
  448. PageInfo<BisInspPblmPlist> pageInfo = new PageInfo<>(list);
  449. for (BisInspPblmPlist bisInspPblmPlist : pageInfo.getList()) {
  450. //补充省市县
  451. if (bisInspPblmPlist.getPblmAdName() != null) {
  452. if (bisInspPblmPlist.getPblmAdName().contains(SplitValue.HENG_SPLIT)) {
  453. String[] split = bisInspPblmPlist.getPblmAdName().split(SplitValue.HENG_SPLIT);
  454. if (split.length == 3) {
  455. bisInspPblmPlist.setProvince(split[0]);
  456. bisInspPblmPlist.setCity(split[1]);
  457. bisInspPblmPlist.setCounty(split[2]);
  458. }
  459. if (split.length == 2) {
  460. bisInspPblmPlist.setProvince(split[0]);
  461. bisInspPblmPlist.setCity(split[1]);
  462. bisInspPblmPlist.setCounty("");
  463. }
  464. } else {
  465. bisInspPblmPlist.setProvince(bisInspPblmPlist.getPblmAdName());
  466. }
  467. }
  468. }
  469. return pageInfo;
  470. }
  471. @Override
  472. public String getHandWarn(BisInspPblmPlistParam bisInspPblmPlistParam) {
  473. String info = "";
  474. //bisInspPblmPlistParam.setIsRect("0");
  475. List<BisInspPblmPlist> list = this.bisInspPblmPlistDao.getHandWarn(bisInspPblmPlistParam);
  476. if (list != null && list.size() > 0) {
  477. info = "有" + list.size() + "个整改问题暂时没反馈,请及时催促相关单位填写整改情况。";
  478. } else {
  479. info = "暂无问题需要反馈!";
  480. }
  481. return info;
  482. }
  483. @Override
  484. public void downloadTemplate(HttpServletResponse response) {
  485. // 模板路径
  486. String filePath = templatePath + File.separator + "pblm_zg.xls";
  487. try {
  488. ExportUtil.download(response, new ArrayList<>(), filePath);
  489. } catch (IOException e) {
  490. e.printStackTrace();
  491. }
  492. }
  493. @Override
  494. public String uploadFile(MultipartFile[] file) {
  495. return null;
  496. }
  497. @Override
  498. public void exportListExcel(BisInspPblmPlistParam bisInspPblmPlistParam, String adCode, HttpServletResponse response) throws IOException {
  499. /* 1. 获取整改数据 */
  500. bisInspPblmPlistParam.setObjAdCode(AdLevelUtil.getAddvcd(bisInspPblmPlistParam.getObjAdCode()));
  501. bisInspPblmPlistParam.setImpSource(InspUtils.setOrgIds(bisInspPblmPlistParam.getImpSource()));
  502. setDate(bisInspPblmPlistParam);
  503. if (adCode.startsWith("37")) {
  504. // 山东省的 省、市、县 分级查询
  505. String orgType = bisInspPblmPlistParam.getOrgType();
  506. if (StringUtils.isEmpty(orgType)) {
  507. // 默认为省级查询
  508. orgType = "province";
  509. bisInspPblmPlistParam.setProvincialLevel(null);
  510. }
  511. bisInspPblmPlistParam.setOrgType(null);
  512. AttAdBase curAdBase = attAdBaseService.getByAdcode(adCode);
  513. String adGrad = curAdBase.getAdGrad();
  514. bisInspPblmPlistParam.setAdGrad(null);
  515. if ("2".equals(adGrad)) {
  516. // 当前机构为省级用户
  517. if ("city".equals(orgType)) {
  518. // 省级用户查看 市级自查菜单
  519. List<OlBisInspOrg> cityOrgList = olBisInspOrgService.getByPid(bisInspPblmPlistParam.getOrgId(), null);
  520. bisInspPblmPlistParam.setBelongOrgId(cityOrgList.stream().map(m -> m.getOrgId()).collect(Collectors.joining("','", "'", "'")));
  521. bisInspPblmPlistParam.setOrgType(orgType);
  522. bisInspPblmPlistParam.setAdGrad(adGrad);
  523. bisInspPblmPlistParam.setProvincialLevel(null);
  524. bisInspPblmPlistParam.setObjAdCode(bisInspPblmPlistParam.getProvince());
  525. bisInspPblmPlistParam.setProvince(null);
  526. } else if ("county".equals(orgType)) {
  527. // 省级用户查看 县级自查菜单
  528. logger.debug("county -- province:" + bisInspPblmPlistParam.getProvince());
  529. List<OlBisInspOrg> cityOrgList = olBisInspOrgService.getByPid(bisInspPblmPlistParam.getOrgId(), null);
  530. List<OlBisInspOrg> countyOrgList = new ArrayList<>();
  531. for (OlBisInspOrg cityOrg : cityOrgList) {
  532. List<OlBisInspOrg> countyInspOrgs = olBisInspOrgService.getByPid(cityOrg.getOrgId(), null);
  533. if (null != countyInspOrgs && countyInspOrgs.size() > 0) {
  534. countyOrgList.addAll(countyInspOrgs);
  535. }
  536. }
  537. bisInspPblmPlistParam.setBelongOrgId(countyOrgList.stream().map(m -> m.getOrgId()).collect(Collectors.joining("','", "'", "'")));
  538. logger.debug("county -- belongorgid:" + bisInspPblmPlistParam.getBelongOrgId());
  539. bisInspPblmPlistParam.setOrgType(orgType);
  540. bisInspPblmPlistParam.setAdGrad(adGrad);
  541. bisInspPblmPlistParam.setProvincialLevel(null);
  542. bisInspPblmPlistParam.setObjAdCode(bisInspPblmPlistParam.getProvince());
  543. bisInspPblmPlistParam.setProvince(null);
  544. }
  545. } else if ("3".equals(adGrad)) {
  546. bisInspPblmPlistParam.setProvincialLevel(null);
  547. // 当前机构为市级用户
  548. if ("province".equals(orgType)) {
  549. // 市级用户查看 省级下发的
  550. OlBisInspOrg bisInspOrg = olBisInspOrgService.get(bisInspPblmPlistParam.getOrgId());
  551. bisInspPblmPlistParam.setBelongOrgId(bisInspOrg.getOrgPid());
  552. bisInspPblmPlistParam.setOrgType(orgType);
  553. bisInspPblmPlistParam.setAdGrad(adGrad);
  554. bisInspPblmPlistParam.setProvincialLevel("2");
  555. } else if ("city".equals(orgType)) {
  556. // 市级用户查看 市级自查菜单
  557. } else if ("county".equals(orgType)) {
  558. // 市级用户查看 县级自查菜单
  559. List<OlBisInspOrg> cityOrgList = olBisInspOrgService.getByPid(bisInspPblmPlistParam.getOrgId(), null);
  560. bisInspPblmPlistParam.setBelongOrgId(cityOrgList.stream().map(m -> m.getOrgId()).collect(Collectors.joining("','", "'", "'")));
  561. bisInspPblmPlistParam.setOrgType(orgType);
  562. bisInspPblmPlistParam.setAdGrad(adGrad);
  563. }
  564. } else if ("4".equals(adGrad)) {
  565. bisInspPblmPlistParam.setProvincialLevel(null);
  566. // 当前用户的区、县级别的 用户 ,查询 上级 市级的
  567. if ("province".equals(orgType)) {
  568. // 县级用户查看 省级下发的
  569. OlBisInspOrg bisInspOrg = olBisInspOrgService.get(bisInspPblmPlistParam.getOrgId());
  570. OlBisInspOrg cityBisInspOrg = olBisInspOrgService.get(bisInspOrg.getOrgPid());
  571. bisInspPblmPlistParam.setBelongOrgId(cityBisInspOrg.getOrgPid());
  572. bisInspPblmPlistParam.setOrgType(orgType);
  573. bisInspPblmPlistParam.setAdGrad(adGrad);
  574. bisInspPblmPlistParam.setProvincialLevel("2");
  575. } else if ("city".equals(orgType)) {
  576. // 县级用户查询 市级 下发的 问题
  577. OlBisInspOrg bisInspOrg = olBisInspOrgService.get(bisInspPblmPlistParam.getOrgId());
  578. bisInspPblmPlistParam.setBelongOrgId(bisInspOrg.getOrgPid());
  579. bisInspPblmPlistParam.setOrgType(orgType);
  580. bisInspPblmPlistParam.setAdGrad(adGrad);
  581. }
  582. }
  583. } else {
  584. bisInspPblmPlistParam.setBelongOrgId(null);
  585. bisInspPblmPlistParam.setOrgType(null);
  586. bisInspPblmPlistParam.setAdGrad(null);
  587. }
  588. List<BisInspPblmPlist> list = this.bisInspPblmPlistDao.sendOrgGetList(bisInspPblmPlistParam);
  589. if (list == null || list.size() == 0) {
  590. logger.info("--------------------------------------exp pblm mend size 0-----------------------------------------------");
  591. return;
  592. }
  593. list.stream().filter(pblm -> StringUtils.isNotBlank(pblm.getPblmAdName())).forEach(pblm -> {
  594. pblm.setYear(DateUtils.Date2Str(pblm.getPblmTm(), "yyyy"));
  595. String pblmOut = "1".equals(pblm.getPblmOut()) ? "是" : "否";
  596. pblm.setPblmOut(pblmOut);
  597. if (pblm.getPblmAdName().contains(SplitValue.HENG_SPLIT)) {
  598. String[] split = pblm.getPblmAdName().split(SplitValue.HENG_SPLIT);
  599. if (split.length == 3) {
  600. pblm.setProvince(split[0]);
  601. pblm.setCity(split[1]);
  602. pblm.setCounty(split[2]);
  603. }
  604. if (split.length == 2) {
  605. pblm.setProvince(split[0]);
  606. pblm.setCity(split[1]);
  607. pblm.setCounty("");
  608. }
  609. } else {
  610. pblm.setProvince(pblm.getPblmAdName());
  611. }
  612. });
  613. String mkdirName = templatePath + File.separator + "整改问题_" + DateUtils.getToday("yyyyMMddHHmmss");
  614. File file = new File(mkdirName);
  615. // 如果文件夹不存在
  616. if (!file.exists()) {
  617. // 创建文件夹
  618. file.mkdirs();
  619. logger.info("--------------------------------------exp pblm mend mak dir-----------------------------------------------");
  620. }
  621. try {
  622. exportExcel(list, response, "整改问题列表", mkdirName, COMMONLIST_AND_OPEN_ANNOTATION, BisInspPblmPlist.class);
  623. ExpAndImpUtil.downloadFile(response, mkdirName + File.separator + "整改问题列表.xls", "整改问题模板");
  624. } catch (Exception e) {
  625. logger.error("导出excel出错");
  626. }
  627. }
  628. @Override
  629. public void export(BisInspPblmPlistParam bisInspPblmPlistParam, String adCode, HttpServletResponse response) throws IOException {
  630. /* 1. 获取整改数据 */
  631. bisInspPblmPlistParam.setObjAdCode(AdLevelUtil.getAddvcd(bisInspPblmPlistParam.getObjAdCode()));
  632. bisInspPblmPlistParam.setImpSource(InspUtils.setOrgIds(bisInspPblmPlistParam.getImpSource()));
  633. setDate(bisInspPblmPlistParam);
  634. if (adCode.startsWith("37")) {
  635. // 山东省的 省、市、县 分级查询
  636. String orgType = bisInspPblmPlistParam.getOrgType();
  637. if (StringUtils.isEmpty(orgType)) {
  638. // 默认为省级查询
  639. orgType = "province";
  640. bisInspPblmPlistParam.setProvincialLevel(null);
  641. }
  642. bisInspPblmPlistParam.setOrgType(null);
  643. AttAdBase curAdBase = attAdBaseService.getByAdcode(adCode);
  644. String adGrad = curAdBase.getAdGrad();
  645. bisInspPblmPlistParam.setAdGrad(null);
  646. if ("2".equals(adGrad)) {
  647. // 当前机构为省级用户
  648. if ("city".equals(orgType)) {
  649. // 省级用户查看 市级自查菜单
  650. List<OlBisInspOrg> cityOrgList = olBisInspOrgService.getByPid(bisInspPblmPlistParam.getOrgId(), null);
  651. bisInspPblmPlistParam.setBelongOrgId(cityOrgList.stream().map(m -> m.getOrgId()).collect(Collectors.joining("','", "'", "'")));
  652. bisInspPblmPlistParam.setOrgType(orgType);
  653. bisInspPblmPlistParam.setAdGrad(adGrad);
  654. bisInspPblmPlistParam.setProvincialLevel(null);
  655. bisInspPblmPlistParam.setObjAdCode(bisInspPblmPlistParam.getProvince());
  656. bisInspPblmPlistParam.setProvince(null);
  657. } else if ("county".equals(orgType)) {
  658. // 省级用户查看 县级自查菜单
  659. logger.debug("county -- province:" + bisInspPblmPlistParam.getProvince());
  660. List<OlBisInspOrg> cityOrgList = olBisInspOrgService.getByPid(bisInspPblmPlistParam.getOrgId(), null);
  661. List<OlBisInspOrg> countyOrgList = new ArrayList<>();
  662. for (OlBisInspOrg cityOrg : cityOrgList) {
  663. List<OlBisInspOrg> countyInspOrgs = olBisInspOrgService.getByPid(cityOrg.getOrgId(), null);
  664. if (null != countyInspOrgs && countyInspOrgs.size() > 0) {
  665. countyOrgList.addAll(countyInspOrgs);
  666. }
  667. }
  668. bisInspPblmPlistParam.setBelongOrgId(countyOrgList.stream().map(m -> m.getOrgId()).collect(Collectors.joining("','", "'", "'")));
  669. logger.debug("county -- belongorgid:" + bisInspPblmPlistParam.getBelongOrgId());
  670. bisInspPblmPlistParam.setOrgType(orgType);
  671. bisInspPblmPlistParam.setAdGrad(adGrad);
  672. bisInspPblmPlistParam.setProvincialLevel(null);
  673. bisInspPblmPlistParam.setObjAdCode(bisInspPblmPlistParam.getProvince());
  674. bisInspPblmPlistParam.setProvince(null);
  675. }
  676. } else if ("3".equals(adGrad)) {
  677. bisInspPblmPlistParam.setProvincialLevel(null);
  678. // 当前机构为市级用户
  679. if ("province".equals(orgType)) {
  680. // 市级用户查看 省级下发的
  681. OlBisInspOrg bisInspOrg = olBisInspOrgService.get(bisInspPblmPlistParam.getOrgId());
  682. bisInspPblmPlistParam.setBelongOrgId(bisInspOrg.getOrgPid());
  683. bisInspPblmPlistParam.setOrgType(orgType);
  684. bisInspPblmPlistParam.setAdGrad(adGrad);
  685. bisInspPblmPlistParam.setProvincialLevel("2");
  686. } else if ("city".equals(orgType)) {
  687. // 市级用户查看 市级自查菜单
  688. } else if ("county".equals(orgType)) {
  689. // 市级用户查看 县级自查菜单
  690. List<OlBisInspOrg> cityOrgList = olBisInspOrgService.getByPid(bisInspPblmPlistParam.getOrgId(), null);
  691. bisInspPblmPlistParam.setBelongOrgId(cityOrgList.stream().map(m -> m.getOrgId()).collect(Collectors.joining("','", "'", "'")));
  692. bisInspPblmPlistParam.setOrgType(orgType);
  693. bisInspPblmPlistParam.setAdGrad(adGrad);
  694. }
  695. } else if ("4".equals(adGrad)) {
  696. bisInspPblmPlistParam.setProvincialLevel(null);
  697. // 当前用户的区、县级别的 用户 ,查询 上级 市级的
  698. if ("province".equals(orgType)) {
  699. // 县级用户查看 省级下发的
  700. OlBisInspOrg bisInspOrg = olBisInspOrgService.get(bisInspPblmPlistParam.getOrgId());
  701. OlBisInspOrg cityBisInspOrg = olBisInspOrgService.get(bisInspOrg.getOrgPid());
  702. bisInspPblmPlistParam.setBelongOrgId(cityBisInspOrg.getOrgPid());
  703. bisInspPblmPlistParam.setOrgType(orgType);
  704. bisInspPblmPlistParam.setAdGrad(adGrad);
  705. bisInspPblmPlistParam.setProvincialLevel("2");
  706. } else if ("city".equals(orgType)) {
  707. // 县级用户查询 市级 下发的 问题
  708. OlBisInspOrg bisInspOrg = olBisInspOrgService.get(bisInspPblmPlistParam.getOrgId());
  709. bisInspPblmPlistParam.setBelongOrgId(bisInspOrg.getOrgPid());
  710. bisInspPblmPlistParam.setOrgType(orgType);
  711. bisInspPblmPlistParam.setAdGrad(adGrad);
  712. }
  713. }
  714. } else {
  715. bisInspPblmPlistParam.setBelongOrgId(null);
  716. bisInspPblmPlistParam.setOrgType(null);
  717. bisInspPblmPlistParam.setAdGrad(null);
  718. }
  719. List<BisInspPblmPlist> list = this.bisInspPblmPlistDao.sendOrgGetList(bisInspPblmPlistParam);
  720. if (list == null || list.size() == 0) {
  721. logger.info("--------------------------------------exp pblm mend size 0-----------------------------------------------");
  722. return;
  723. }
  724. list.stream().filter(pblm -> StringUtils.isNotBlank(pblm.getPblmAdName())).forEach(pblm -> {
  725. pblm.setYear(DateUtils.Date2Str(pblm.getPblmTm(), "yyyy"));
  726. String pblmOut = "1".equals(pblm.getPblmOut()) ? "是" : "否";
  727. pblm.setPblmOut(pblmOut);
  728. if (pblm.getPblmAdName().contains(SplitValue.HENG_SPLIT)) {
  729. String[] split = pblm.getPblmAdName().split(SplitValue.HENG_SPLIT);
  730. if (split.length == 3) {
  731. pblm.setProvince(split[0]);
  732. pblm.setCity(split[1]);
  733. pblm.setCounty(split[2]);
  734. }
  735. if (split.length == 2) {
  736. pblm.setProvince(split[0]);
  737. pblm.setCity(split[1]);
  738. pblm.setCounty("");
  739. }
  740. } else {
  741. pblm.setProvince(pblm.getPblmAdName());
  742. }
  743. });
  744. /* 2.0 创建文件夹 */
  745. String mkdirName = templatePath + File.separator + "整改问题_" + DateUtils.getToday("yyyyMMddHHmmss");
  746. File file = new File(mkdirName);
  747. // 如果文件夹不存在
  748. if (!file.exists()) {
  749. // 创建文件夹
  750. file.mkdirs();
  751. logger.info("--------------------------------------exp pblm mend mak dir-----------------------------------------------");
  752. }
  753. /* 2. 获取表格 */
  754. try {
  755. exportExcel(list, response, "整改问题列表", mkdirName, COMMONLIST_AND_OPEN_ANNOTATION, BisInspPblmPlist.class);
  756. } catch (Exception e) {
  757. logger.error("导出excel出错");
  758. }
  759. logger.info("--------------------------------------exp pblm mend excel -----------------------------------------------");
  760. /* 3. 循环问题获取问题文件 */
  761. if (list != null && list.size() > 0) {
  762. for (int i = 1; i <= list.size(); i++) {
  763. // 添加文件夹
  764. addMkdir(list.get(i - 1), i, mkdirName);
  765. }
  766. }
  767. /* 4. 导出 */
  768. String zipFileName = "整改问题_" + DateUtils.getToday("yyyyMMddHHmmss") + ".zip";
  769. FileUtil.compressToZip(mkdirName, templatePath, zipFileName);
  770. logger.info("--------------------------------------exp pblm mend zip -----------------------------------------------");
  771. /* 5.压缩包导出 */
  772. File zipFile = new File(templatePath + File.separator + zipFileName);
  773. response.setCharacterEncoding("UTF-8");
  774. response.setHeader("Content-Disposition",
  775. "attachment; filename=" + new String(zipFileName.getBytes(StandardCharsets.UTF_8), "ISO8859-1"));
  776. response.setContentLength((int) zipFile.length());
  777. response.setContentType("application/zip");// 定义输出类型
  778. FileInputStream fis = new FileInputStream(zipFile);
  779. BufferedInputStream buff = new BufferedInputStream(fis);
  780. byte[] b = new byte[1024];// 相当于我们的缓存
  781. long k = 0;// 该值用于计算当前实际下载了多少字节
  782. OutputStream myout = response.getOutputStream();// 从response对象中得到输出流,准备下载
  783. // 开始循环下载
  784. while (k < zipFile.length()) {
  785. int j = buff.read(b, 0, 1024);
  786. k += j;
  787. myout.write(b, 0, j);
  788. }
  789. myout.flush();
  790. buff.close();
  791. zipFile.delete();
  792. }
  793. @Override
  794. public void exportExcel(BisInspPblmPlistParam bisInspPblmPlistParam, String adCode, HttpServletResponse response) throws IOException {
  795. /* 1. 获取整改数据 */
  796. bisInspPblmPlistParam.setObjAdCode(AdLevelUtil.getAddvcd(bisInspPblmPlistParam.getObjAdCode()));
  797. bisInspPblmPlistParam.setImpSource(InspUtils.setOrgIds(bisInspPblmPlistParam.getImpSource()));
  798. setDate(bisInspPblmPlistParam);
  799. if (adCode.startsWith("37")) {
  800. // 山东省的 省、市、县 分级查询
  801. String orgType = bisInspPblmPlistParam.getOrgType();
  802. if (StringUtils.isEmpty(orgType)) {
  803. // 默认为省级查询
  804. orgType = "province";
  805. bisInspPblmPlistParam.setProvincialLevel(null);
  806. }
  807. bisInspPblmPlistParam.setOrgType(null);
  808. AttAdBase curAdBase = attAdBaseService.getByAdcode(adCode);
  809. String adGrad = curAdBase.getAdGrad();
  810. bisInspPblmPlistParam.setAdGrad(null);
  811. if ("2".equals(adGrad)) {
  812. // 当前机构为省级用户
  813. if ("city".equals(orgType)) {
  814. // 省级用户查看 市级自查菜单
  815. List<OlBisInspOrg> cityOrgList = olBisInspOrgService.getByPid(bisInspPblmPlistParam.getOrgId(), null);
  816. bisInspPblmPlistParam.setBelongOrgId(cityOrgList.stream().map(m -> m.getOrgId()).collect(Collectors.joining("','", "'", "'")));
  817. bisInspPblmPlistParam.setOrgType(orgType);
  818. bisInspPblmPlistParam.setAdGrad(adGrad);
  819. bisInspPblmPlistParam.setProvincialLevel(null);
  820. bisInspPblmPlistParam.setObjAdCode(bisInspPblmPlistParam.getProvince());
  821. bisInspPblmPlistParam.setProvince(null);
  822. } else if ("county".equals(orgType)) {
  823. // 省级用户查看 县级自查菜单
  824. logger.debug("county -- province:" + bisInspPblmPlistParam.getProvince());
  825. List<OlBisInspOrg> cityOrgList = olBisInspOrgService.getByPid(bisInspPblmPlistParam.getOrgId(), null);
  826. List<OlBisInspOrg> countyOrgList = new ArrayList<>();
  827. for (OlBisInspOrg cityOrg : cityOrgList) {
  828. List<OlBisInspOrg> countyInspOrgs = olBisInspOrgService.getByPid(cityOrg.getOrgId(), null);
  829. if (null != countyInspOrgs && countyInspOrgs.size() > 0) {
  830. countyOrgList.addAll(countyInspOrgs);
  831. }
  832. }
  833. bisInspPblmPlistParam.setBelongOrgId(countyOrgList.stream().map(m -> m.getOrgId()).collect(Collectors.joining("','", "'", "'")));
  834. logger.debug("county -- belongorgid:" + bisInspPblmPlistParam.getBelongOrgId());
  835. bisInspPblmPlistParam.setOrgType(orgType);
  836. bisInspPblmPlistParam.setAdGrad(adGrad);
  837. bisInspPblmPlistParam.setProvincialLevel(null);
  838. bisInspPblmPlistParam.setObjAdCode(bisInspPblmPlistParam.getProvince());
  839. bisInspPblmPlistParam.setProvince(null);
  840. }
  841. } else if ("3".equals(adGrad)) {
  842. bisInspPblmPlistParam.setProvincialLevel(null);
  843. // 当前机构为市级用户
  844. if ("province".equals(orgType)) {
  845. // 市级用户查看 省级下发的
  846. OlBisInspOrg bisInspOrg = olBisInspOrgService.get(bisInspPblmPlistParam.getOrgId());
  847. bisInspPblmPlistParam.setBelongOrgId(bisInspOrg.getOrgPid());
  848. bisInspPblmPlistParam.setOrgType(orgType);
  849. bisInspPblmPlistParam.setAdGrad(adGrad);
  850. bisInspPblmPlistParam.setProvincialLevel("2");
  851. } else if ("city".equals(orgType)) {
  852. // 市级用户查看 市级自查菜单
  853. } else if ("county".equals(orgType)) {
  854. // 市级用户查看 县级自查菜单
  855. List<OlBisInspOrg> cityOrgList = olBisInspOrgService.getByPid(bisInspPblmPlistParam.getOrgId(), null);
  856. bisInspPblmPlistParam.setBelongOrgId(cityOrgList.stream().map(m -> m.getOrgId()).collect(Collectors.joining("','", "'", "'")));
  857. bisInspPblmPlistParam.setOrgType(orgType);
  858. bisInspPblmPlistParam.setAdGrad(adGrad);
  859. }
  860. } else if ("4".equals(adGrad)) {
  861. bisInspPblmPlistParam.setProvincialLevel(null);
  862. // 当前用户的区、县级别的 用户 ,查询 上级 市级的
  863. if ("province".equals(orgType)) {
  864. // 县级用户查看 省级下发的
  865. OlBisInspOrg bisInspOrg = olBisInspOrgService.get(bisInspPblmPlistParam.getOrgId());
  866. OlBisInspOrg cityBisInspOrg = olBisInspOrgService.get(bisInspOrg.getOrgPid());
  867. bisInspPblmPlistParam.setBelongOrgId(cityBisInspOrg.getOrgPid());
  868. bisInspPblmPlistParam.setOrgType(orgType);
  869. bisInspPblmPlistParam.setAdGrad(adGrad);
  870. bisInspPblmPlistParam.setProvincialLevel("2");
  871. } else if ("city".equals(orgType)) {
  872. // 县级用户查询 市级 下发的 问题
  873. OlBisInspOrg bisInspOrg = olBisInspOrgService.get(bisInspPblmPlistParam.getOrgId());
  874. bisInspPblmPlistParam.setBelongOrgId(bisInspOrg.getOrgPid());
  875. bisInspPblmPlistParam.setOrgType(orgType);
  876. bisInspPblmPlistParam.setAdGrad(adGrad);
  877. }
  878. }
  879. } else {
  880. bisInspPblmPlistParam.setBelongOrgId(null);
  881. bisInspPblmPlistParam.setOrgType(null);
  882. bisInspPblmPlistParam.setAdGrad(null);
  883. }
  884. List<BisInspPblmPlist> list = this.bisInspPblmPlistDao.sendOrgGetList(bisInspPblmPlistParam);
  885. if (list == null || list.size() == 0) {
  886. logger.info("--------------------------------------exp pblm mend size 0-----------------------------------------------");
  887. return;
  888. }
  889. list.stream().filter(pblm -> StringUtils.isNotBlank(pblm.getPblmAdName())).forEach(pblm -> {
  890. pblm.setYear(DateUtils.Date2Str(pblm.getPblmTm(), "yyyy"));
  891. String pblmOut = "1".equals(pblm.getPblmOut()) ? "是" : "否";
  892. pblm.setPblmOut(pblmOut);
  893. if (pblm.getPblmAdName().contains(SplitValue.HENG_SPLIT)) {
  894. String[] split = pblm.getPblmAdName().split(SplitValue.HENG_SPLIT);
  895. if (split.length == 3) {
  896. pblm.setProvince(split[0]);
  897. pblm.setCity(split[1]);
  898. pblm.setCounty(split[2]);
  899. }
  900. if (split.length == 2) {
  901. pblm.setProvince(split[0]);
  902. pblm.setCity(split[1]);
  903. pblm.setCounty("");
  904. }
  905. } else {
  906. pblm.setProvince(pblm.getPblmAdName());
  907. }
  908. });
  909. /* 2.0 创建文件夹 */
  910. String mkdirName = templatePath + File.separator + "整改问题_" + DateUtils.getToday("yyyyMMddHHmmss");
  911. File file = new File(mkdirName);
  912. // 如果文件夹不存在
  913. if (!file.exists()) {
  914. // 创建文件夹
  915. file.mkdirs();
  916. logger.info("--------------------------------------exp pblm mend mak dir-----------------------------------------------");
  917. }
  918. /* 2. 获取表格 */
  919. try {
  920. exportExcel(list, response, "整改问题列表", mkdirName, COMMONLIST_AND_OPEN_ANNOTATION, BisInspPblmPlist.class);
  921. } catch (Exception e) {
  922. logger.error("导出excel出错");
  923. }
  924. logger.info("--------------------------------------exp pblm mend excel -----------------------------------------------");
  925. /* 4. 导出 */
  926. String zipFileName = "整改问题_" + DateUtils.getToday("yyyyMMddHHmmss") + ".zip";
  927. FileUtil.compressToZip(mkdirName, templatePath, zipFileName);
  928. logger.info("--------------------------------------exp pblm mend zip -----------------------------------------------");
  929. /* 5.压缩包导出 */
  930. File zipFile = new File(templatePath + File.separator + zipFileName);
  931. response.setCharacterEncoding("UTF-8");
  932. response.setHeader("Content-Disposition",
  933. "attachment; filename=" + new String(zipFileName.getBytes(StandardCharsets.UTF_8), "ISO8859-1"));
  934. response.setContentLength((int) zipFile.length());
  935. response.setContentType("application/zip");// 定义输出类型
  936. FileInputStream fis = new FileInputStream(zipFile);
  937. BufferedInputStream buff = new BufferedInputStream(fis);
  938. byte[] b = new byte[1024];// 相当于我们的缓存
  939. long k = 0;// 该值用于计算当前实际下载了多少字节
  940. OutputStream myout = response.getOutputStream();// 从response对象中得到输出流,准备下载
  941. // 开始循环下载
  942. while (k < zipFile.length()) {
  943. int j = buff.read(b, 0, 1024);
  944. k += j;
  945. myout.write(b, 0, j);
  946. }
  947. myout.flush();
  948. buff.close();
  949. zipFile.delete();
  950. }
  951. /**
  952. * 去除所有的整改类别(汉字)
  953. *
  954. * @return
  955. */
  956. @Override
  957. public List<String> getAllClassType(String adCode) {
  958. return bisInspPblmPlistDao.getAllClassType(adCode);
  959. }
  960. @Override
  961. public void insertFile(BisInspPblmPlist bisInspPblmPlist) {
  962. String uuid = UuidUtil.uuid(); // 生成uuid
  963. bisInspPblmPlist.setId(uuid);
  964. bisInspPblmPlist.setUptm(new Date());
  965. bisInspPblmPlist.setDataStat("0");
  966. BisInspAllRlationPers bisInspAllRlationPers = bisInspAllRlationPersService.getById(bisInspPblmPlist.getPersId());
  967. bisInspPblmPlist.setPersName(bisInspAllRlationPers.getPersName());
  968. bisInspPblmPlist.setPblmState("0");
  969. bisInspPblmPlist.setCrtState("0");
  970. bisInspPblmPlist.setIsStart("0");
  971. bisInspPblmPlist.setIsRect("0");
  972. this.bisInspPblmPlistDao.insert(bisInspPblmPlist);
  973. }
  974. void exportExcel(List<?> result, HttpServletResponse response, String fileName, String filePath, List<String> list, Class cla) throws NoSuchFieldException {
  975. if (list == null || list.size() == 0) {
  976. exportExcel(result, response, fileName);
  977. return;
  978. }
  979. List<Map<String, Object>> mapList = new ArrayList<>();
  980. result.forEach(worker -> mapList.add(transBean2Map(worker)));
  981. mapList.forEach(worker -> conventPblmPlist(worker));
  982. ExportAbstract export = new ExcelExport();
  983. if (StringUtils.isBlank(fileName)) {
  984. fileName = "结果列表";
  985. }
  986. export.setFileName(fileName);
  987. export.setExport_ps_export(true);
  988. export.setExport_ps_type(ExportAbstract.XLS);
  989. export.setExport_bzip(false);
  990. export.setTitle(fileName);
  991. ArrayList<Object> cols = new ArrayList<Object>();
  992. Field[] fields;
  993. if (cla == BisInspPblmPlist.class) {
  994. Class superClass = BaseBean.class;
  995. fields = new Field[25];
  996. fields[0] = superClass.getDeclaredField("province"); // 省
  997. fields[1] = cla.getDeclaredField("city"); // 市
  998. fields[2] = cla.getDeclaredField("county"); // 县
  999. fields[3] = cla.getDeclaredField("impSource"); // 数据来源
  1000. fields[4] = cla.getDeclaredField("year"); // 检查年度
  1001. fields[5] = cla.getDeclaredField("pblmNub"); // 印发文号
  1002. fields[6] = cla.getDeclaredField("pblmNubName"); // 印发文件名
  1003. fields[7] = cla.getDeclaredField("dutyName"); // 责任处室
  1004. fields[8] = cla.getDeclaredField("pblmClassify"); // 督查类型
  1005. fields[9] = cla.getDeclaredField("objName"); // 对象名称
  1006. fields[10] = cla.getDeclaredField("pblmNameBz"); // 问题类型
  1007. fields[11] = cla.getDeclaredField("checkPointBz"); // 检查项目
  1008. fields[12] = cla.getDeclaredField("pblmDescBz");// 问题描述
  1009. fields[13] = cla.getDeclaredField("inspPblmDesc");// 详细描述
  1010. fields[14] = cla.getDeclaredField("inspPblmCate");// 严重程度
  1011. fields[15] = cla.getDeclaredField("pblmTm");// 上报时间
  1012. fields[16] = cla.getDeclaredField("pblmCrtm");// 整改时限
  1013. fields[17] = cla.getDeclaredField("pblmReason");// 整改建议
  1014. fields[18] = cla.getDeclaredField("isRect");// 是否反馈
  1015. fields[19] = cla.getDeclaredField("pblmPltm");// 预计完成时间
  1016. fields[20] = cla.getDeclaredField("pblmActm");// 实际完成整改时间
  1017. fields[21] = cla.getDeclaredField("crtState");// 整改状态
  1018. fields[22] = cla.getDeclaredField("crtInfo");// 整改措施
  1019. fields[23] = cla.getDeclaredField("crtNote");// 问题整改备注
  1020. fields[24] = cla.getDeclaredField("pblmOut");// 是否销号
  1021. } else {
  1022. fields = cla.getDeclaredFields();
  1023. Class clazz = cla.getSuperclass();
  1024. if (clazz != null && clazz != Objects.class) {
  1025. fields = ArrayUtils.addAll(fields, clazz.getDeclaredFields());
  1026. }
  1027. }
  1028. for (int j = 0; j <= fields.length - 1; j++) {
  1029. //设置可访问
  1030. Field field = fields[j];
  1031. if (list.contains(field.getName())) {
  1032. continue;
  1033. }
  1034. field.setAccessible(true);
  1035. if (field.getAnnotation(ApiModelProperty.class) != null && field.getAnnotation(NotExport.class) == null) {
  1036. cols.add(field.getName() + "[" + ExportUtil.fileFormat(field.getAnnotation(ApiModelProperty.class).value()) + "]");
  1037. }
  1038. }
  1039. if (cols.size() < 1) {
  1040. cols.add("name[名称]");
  1041. cols.add("code[编码]");
  1042. }
  1043. export.setCols(cols);
  1044. export.setGroupable(false);
  1045. // 设置视图指标
  1046. export.setLevel(1);
  1047. export.setLocksize(0);
  1048. try {
  1049. export.Export(response);
  1050. // 导出表头
  1051. export.ExportHeadForCustom(response);
  1052. export.ContinueExport(mapList);
  1053. FileOutputStream output = new FileOutputStream(filePath + File.separator + fileName + ".xls");
  1054. // 写入磁盘
  1055. export.getWb().write(output);
  1056. } catch (Exception e) {
  1057. e.printStackTrace();
  1058. }
  1059. }
  1060. void exportExcel(List<?> result, HttpServletResponse response, String fileName) {
  1061. List<Map<String, Object>> mapList = new ArrayList<>();
  1062. ExportAbstract export = new ExcelExport();
  1063. if (StringUtils.isBlank(fileName)) {
  1064. fileName = "结果列表";
  1065. }
  1066. export.setFileName(fileName);
  1067. export.setExport_ps_export(true);
  1068. export.setExport_ps_type(ExportAbstract.XLS);
  1069. export.setExport_bzip(false);
  1070. export.setTitle(fileName);
  1071. ArrayList<Object> cols = new ArrayList<Object>();
  1072. boolean flag = true;
  1073. for (Object o : result) {
  1074. mapList.add(transBean2Map(o));
  1075. if (flag) {
  1076. Field[] fields = o.getClass().getDeclaredFields();
  1077. for (int j = 0; j <= fields.length - 1; j++) {
  1078. //设置可访问
  1079. Field field = fields[j];
  1080. // if (list.contains(field.getName())) {
  1081. // continue;
  1082. // }
  1083. field.setAccessible(true);
  1084. if (field.getAnnotation(ApiModelProperty.class) != null) {
  1085. cols.add(field.getName() + "[" + field.getAnnotation(ApiModelProperty.class).value() + "]");
  1086. }
  1087. }
  1088. flag = false;
  1089. }
  1090. }
  1091. if (cols.size() < 1) {
  1092. cols.add("name[名称]");
  1093. cols.add("code[编码]");
  1094. cols.add("location[地址]");
  1095. cols.add("adCode[行政区划编码]");
  1096. }
  1097. export.setCols(cols);
  1098. export.setGroupable(false);
  1099. // 设置视图指标
  1100. export.setLevel(1);
  1101. export.setLocksize(0);
  1102. try {
  1103. export.Export(response);
  1104. //导出表头
  1105. export.ExportHeadForCustom(response);
  1106. export.ContinueExport(mapList);
  1107. FileOutputStream output = new FileOutputStream(templatePath + File.separator + "整改问题_" + File.separator + fileName + ".xls");
  1108. // 写入磁盘
  1109. export.getWb().write(output);
  1110. } catch (Exception e) {
  1111. e.printStackTrace();
  1112. }
  1113. }
  1114. /**
  1115. * 添加问题的附件
  1116. *
  1117. * @param bisInspPblmPlist 整改问题
  1118. */
  1119. void addMkdir(BisInspPblmPlist bisInspPblmPlist, int number, String filePath) {
  1120. /* 1. 获取附件信息 */
  1121. List<GwComFile> gwComFileList = gwComFileService.findFileByBiz(bisInspPblmPlist.getId());
  1122. // 问题没附件,退出
  1123. if (gwComFileList == null || gwComFileList.size() == 0) {
  1124. return;
  1125. }
  1126. // 创建附件文件夹
  1127. String fujianFilePath = filePath + File.separator + number;
  1128. createFile(fujianFilePath);
  1129. gwComFileList.forEach(file -> {
  1130. // 获取要复制的文件
  1131. File oldfile = new File(uploadPath.replace("upload/", "") + file.getFilePath().replaceAll("\\\\", "/").replaceAll("//", "/"));
  1132. //要生成的新文件(指定路径如果没有则创建)
  1133. File newfile = new File(fujianFilePath + File.separator + file.getFileName());
  1134. try {
  1135. newfile.createNewFile();
  1136. } catch (IOException e) {
  1137. logger.error("整改问题导出-创建新文件失败!");
  1138. e.printStackTrace();
  1139. }
  1140. try (//文件输入流,用于读取要复制的文件
  1141. FileInputStream fileInputStream = new FileInputStream(oldfile);
  1142. //新文件输出流
  1143. FileOutputStream fileOutputStream = new FileOutputStream(newfile);) {
  1144. byte[] buffer = new byte[1024];
  1145. int len;
  1146. // 将文件流信息读取文件缓存区,如果读取结果不为-1就代表文件没有读取完毕,反之已经读取完毕
  1147. while ((len = fileInputStream.read(buffer)) != -1) {
  1148. fileOutputStream.write(buffer, 0, len);
  1149. fileOutputStream.flush();
  1150. }
  1151. } catch (IOException e) {
  1152. logger.error("整改问题导出-复制文件失败!");
  1153. e.printStackTrace();
  1154. }
  1155. });
  1156. }
  1157. private File createFile(String fileName) {
  1158. File file = new File(fileName);
  1159. // 如果文件夹不存在
  1160. if (!file.exists()) {
  1161. // 创建文件夹
  1162. file.mkdirs();
  1163. }
  1164. return file;
  1165. }
  1166. void conventPblmPlist(Map<String, Object> map) {
  1167. BisInspEnum bisInspEnum = BisInspEnum.getEnumByType(MapUtils.getString(map, "objType", ""));
  1168. map.put("objType", bisInspEnum != null ? bisInspEnum.getDesc() : "");
  1169. map.put("inspPblmCate", InspPblmUtils.plbmCateDesc(MapUtils.getString(map, "inspPblmCate", "")));
  1170. map.put("pblmTm", map.get("pblmTm") != null ? DateUtils.Date2Str((Date) map.get("pblmTm")) : "");
  1171. map.put("pblmCrtm", map.get("pblmCrtm") != null ? DateUtils.Date2Str((Date) map.get("pblmCrtm")) : "");
  1172. map.put("pblmPltm", map.get("pblmPltm") != null ? DateUtils.Date2Str((Date) map.get("pblmPltm")) : "");
  1173. map.put("pblmActm", map.get("pblmActm") != null ? DateUtils.Date2Str((Date) map.get("pblmActm")) : "");
  1174. map.put("intm", map.get("intm") != null ? DateUtils.Date2Str((Date) map.get("intm")) : "");
  1175. map.put("uptm", map.get("uptm") != null ? DateUtils.Date2Str((Date) map.get("uptm")) : "");
  1176. map.put("isRect", BisInspPblmPlistConventUtil.isRect(MapUtils.getString(map, "isRect", "")));
  1177. map.put("crtState", BisInspPblmPlistConventUtil.crtState(MapUtils.getString(map, "crtState", "")));
  1178. map.put("dataStat", BisInspPblmPlistConventUtil.dataStat(MapUtils.getString(map, "dataStat", "")));
  1179. map.put("isStart", BisInspPblmPlistConventUtil.isRect(MapUtils.getString(map, "isStart", "")));
  1180. }
  1181. /**
  1182. * 市、县 自查 整改流程 处理
  1183. *
  1184. * @param bisInspPblmPlistParam
  1185. * @return
  1186. */
  1187. @Override
  1188. public void dealWithOptions(BisInspPblmPlistParam bisInspPblmPlistParam, LoginUser loginUser, String optOrgId) {
  1189. // 获取当前操作人 行政区划
  1190. String adCode = olBisInspOrgService.getDefaultOrg(optOrgId).getAdCode();
  1191. // 获取当前操作人 行政级别
  1192. AttAdBase attAdBase = attAdBaseService.getByAdcode(adCode);
  1193. String adGrad = attAdBase.getAdGrad();
  1194. // 获取当前操作 状态 同意1or驳回 2
  1195. String isAgree = bisInspPblmPlistParam.getIsAgree();
  1196. // 获取 当前操作 意见
  1197. String comment = bisInspPblmPlistParam.getComment();
  1198. // 获取当前 整改问题的处理状态 1 未下发 2 待整改反馈 3 待审核 4 待再次反馈 5 销号
  1199. BisInspPblmPlist curBisInspPblmPlist = bisInspPblmPlistDao.get(bisInspPblmPlistParam.getId());
  1200. String selfInspProcessState = curBisInspPblmPlist.getSelfInspProcessState();
  1201. selfInspProcessState = cn.com.goldenwater.dcproj.utils.StringUtils.isEmpty(selfInspProcessState) ? "1" : selfInspProcessState;
  1202. String nextState = null;
  1203. String stataNote = "";
  1204. String auditResult = "";
  1205. bisInspPblmPlistParam.setIsStart(null);
  1206. switch (selfInspProcessState) {
  1207. case "1":
  1208. // 下发 状态更新为 2
  1209. nextState = "2";
  1210. bisInspPblmPlistParam.setIsStart("1");
  1211. if ("3".equals(adGrad)) {
  1212. // 市级
  1213. stataNote = "市级下发";
  1214. } else if ("4".equals(adGrad)) {
  1215. // 县级
  1216. stataNote = "县级下发";
  1217. } else {
  1218. stataNote = "问题下发";
  1219. }
  1220. break;
  1221. case "2":
  1222. // 整改反馈 状态更新为3
  1223. nextState = "3";
  1224. if ("3".equals(adGrad)) {
  1225. // 市级
  1226. stataNote = "市级自查整改反馈";
  1227. } else if ("4".equals(adGrad)) {
  1228. // 县级
  1229. stataNote = "县级整改反馈";
  1230. // 判断 整改问题 是否属于县级
  1231. String belongOrgId = curBisInspPblmPlist.getBelongOrgId();
  1232. OlBisInspOrg belongInspOrg = olBisInspOrgService.get(belongOrgId);
  1233. AttAdBase belongAdBase = attAdBaseService.getByAdcode(belongInspOrg.getAdCode());
  1234. if ("4".equals(belongAdBase.getAdGrad())) {
  1235. // 整改问题 属于县级 自查 反馈之后 直接销号
  1236. nextState = "5";
  1237. stataNote = "县级自查整改反馈";
  1238. // 销号
  1239. bisInspPblmPlistParam.setPblmOut("1");
  1240. // 设置 流程默认 备注
  1241. comment = "县级自查整改反馈自动销号";
  1242. }
  1243. } else {
  1244. stataNote = "整改反馈";
  1245. }
  1246. break;
  1247. case "3":
  1248. if ("3".equals(adGrad)) {
  1249. stataNote = "市级";
  1250. } else if ("4".equals(adGrad)) {
  1251. stataNote = "县级";
  1252. } else {
  1253. stataNote = "";
  1254. }
  1255. if ("1".equals(isAgree)) {
  1256. // 审核通过 销号 状态更新为5
  1257. nextState = "5";
  1258. auditResult = "同意";
  1259. stataNote += "审核通过";
  1260. // 销号
  1261. bisInspPblmPlistParam.setPblmOut("1");
  1262. } else {
  1263. // 审核不同过 待再次整改反馈 状态更新为4
  1264. nextState = "4";
  1265. auditResult = "驳回";
  1266. stataNote += "审核驳回";
  1267. }
  1268. break;
  1269. case "4":
  1270. // 再次整改反馈 状态更新为3
  1271. nextState = "3";
  1272. if ("3".equals(adGrad)) {
  1273. stataNote = "市级";
  1274. } else if ("4".equals(adGrad)) {
  1275. stataNote = "县级";
  1276. } else {
  1277. stataNote = "";
  1278. }
  1279. stataNote += "再次整改反馈";
  1280. break;
  1281. case "5":
  1282. // 销号
  1283. break;
  1284. default:
  1285. // 其它
  1286. break;
  1287. }
  1288. if (null != nextState) {
  1289. // 更新 整改问题 整改状态
  1290. updateSelfInspProcessState(bisInspPblmPlistParam, nextState);
  1291. // 增加 节点操作记录
  1292. AddOptionLog(bisInspPblmPlistParam.getId(), selfInspProcessState, stataNote, auditResult, comment, loginUser.getPersId(), loginUser.getPersName(), optOrgId, attAdBase.getAdFullName());
  1293. }
  1294. }
  1295. /**
  1296. * 市、县自查 批量下发整改问题
  1297. *
  1298. * @param bisInspPblmPlistParamList
  1299. * @param loginUser
  1300. * @param optOrgId
  1301. */
  1302. @Override
  1303. public void batchIssue(List<BisInspPblmPlistParam> bisInspPblmPlistParamList, LoginUser loginUser, String optOrgId) {
  1304. // 批量下发 整改问题不为空
  1305. if (cn.com.goldenwater.dcproj.utils.StringUtils.isNotEmpty(bisInspPblmPlistParamList)) {
  1306. // 获取当前操作人 行政区划
  1307. String adCode = olBisInspOrgService.getDefaultOrg(optOrgId).getAdCode();
  1308. // 获取当前操作人 行政级别
  1309. AttAdBase attAdBase = attAdBaseService.getByAdcode(adCode);
  1310. String adGrad = attAdBase.getAdGrad();
  1311. for (BisInspPblmPlistParam bisInspPblmPlistParam : bisInspPblmPlistParamList) {
  1312. // 批量下发 整改问题id不为空
  1313. String id = bisInspPblmPlistParam.getId();
  1314. if (cn.com.goldenwater.dcproj.utils.StringUtils.isEmpty(id)) {
  1315. continue;
  1316. }
  1317. // 获取当前 整改问题的处理状态 1 未下发 2 待整改反馈 3 待审核 4 待再次反馈 5 销号
  1318. BisInspPblmPlist curBisInspPblmPlist = bisInspPblmPlistDao.get(id);
  1319. String selfInspProcessState = curBisInspPblmPlist.getSelfInspProcessState();
  1320. selfInspProcessState = cn.com.goldenwater.dcproj.utils.StringUtils.isEmpty(selfInspProcessState) ? "1" : selfInspProcessState;
  1321. String nextState = null;
  1322. String stataNote = "";
  1323. // 当前是未下发状态
  1324. if ("1".equals(selfInspProcessState)) {
  1325. BisInspPblmPlistParam inspPblmPlistParamItem = new BisInspPblmPlistParam();
  1326. inspPblmPlistParamItem.setId(id);
  1327. // 下发 状态更新为 2
  1328. nextState = "2";
  1329. // 设置是否启动 为 已启动
  1330. inspPblmPlistParamItem.setIsStart("1");
  1331. if ("3".equals(adGrad)) {
  1332. // 市级
  1333. stataNote = "市级下发";
  1334. } else if ("4".equals(adGrad)) {
  1335. // 县级
  1336. stataNote = "县级下发";
  1337. } else {
  1338. stataNote = "问题下发";
  1339. }
  1340. // 更新 整改问题 整改状态
  1341. updateSelfInspProcessState(inspPblmPlistParamItem, nextState);
  1342. // 增加 节点操作记录
  1343. AddOptionLog(id, selfInspProcessState, stataNote, "", "", loginUser.getPersId(), loginUser.getPersName(), optOrgId, attAdBase.getAdFullName());
  1344. }
  1345. }
  1346. }
  1347. }
  1348. private int AddOptionLog(String plistId, String crtState, String stataNote, String auditResult, String comment, String persId, String persname, String optOrgId, String optOrgName) {
  1349. BisInspPblmPlistLog bisInspPblmPlistLog = new BisInspPblmPlistLog();
  1350. bisInspPblmPlistLog.setId(UuidUtil.uuid());
  1351. // 整改问题Id
  1352. bisInspPblmPlistLog.setPblmClistId(plistId);
  1353. // 流程状态 1 、2、3、4
  1354. bisInspPblmPlistLog.setState(crtState);
  1355. // 流程状态描述 问题下发 、整改反馈、审核、再次反馈
  1356. bisInspPblmPlistLog.setStateNote(stataNote);
  1357. // 审批结果
  1358. bisInspPblmPlistLog.setAuditResult(auditResult);
  1359. // 审批意见(备注)
  1360. bisInspPblmPlistLog.setNote(comment);
  1361. // 操作人所属机构
  1362. bisInspPblmPlistLog.setOrgId(optOrgId);
  1363. bisInspPblmPlistLog.setOrgNm(optOrgName);
  1364. // 操作人
  1365. bisInspPblmPlistLog.setPersId(persId);
  1366. bisInspPblmPlistLog.setPersName(persname);
  1367. bisInspPblmPlistLog.setDataStat("0");
  1368. bisInspPblmPlistLog.setIntm(new Date());
  1369. bisInspPblmPlistLog.setUptm(bisInspPblmPlistLog.getIntm());
  1370. return bisInspPblmPlistLogDao.insert(bisInspPblmPlistLog);
  1371. }
  1372. private int updateSelfInspProcessState(BisInspPblmPlistParam bisInspPblmPlistParam, String nextState) {
  1373. BisInspPblmPlistParam inspPblmPlistParamUpdate = new BisInspPblmPlistParam();
  1374. inspPblmPlistParamUpdate.setId(bisInspPblmPlistParam.getId());
  1375. inspPblmPlistParamUpdate.setSelfInspProcessState(nextState);
  1376. // 是否启动
  1377. inspPblmPlistParamUpdate.setIsStart(bisInspPblmPlistParam.getIsStart());
  1378. // 是否反馈
  1379. inspPblmPlistParamUpdate.setIsRect(bisInspPblmPlistParam.getIsRect());
  1380. inspPblmPlistParamUpdate.setPblmPltm(bisInspPblmPlistParam.getPblmPltm());
  1381. inspPblmPlistParamUpdate.setPblmActm(bisInspPblmPlistParam.getPblmActm());
  1382. // 问题整改状态
  1383. inspPblmPlistParamUpdate.setCrtState(bisInspPblmPlistParam.getCrtState());
  1384. inspPblmPlistParamUpdate.setCrtInfo(bisInspPblmPlistParam.getCrtInfo());
  1385. inspPblmPlistParamUpdate.setCrtNote(bisInspPblmPlistParam.getCrtNote());
  1386. // 是否到现场复核
  1387. inspPblmPlistParamUpdate.setIsSite(bisInspPblmPlistParam.getIsSite());
  1388. inspPblmPlistParamUpdate.setChkDept(bisInspPblmPlistParam.getChkDept());
  1389. inspPblmPlistParamUpdate.setDcBatch(bisInspPblmPlistParam.getDcBatch());
  1390. inspPblmPlistParamUpdate.setPblmCrtm(bisInspPblmPlistParam.getPblmCrtm());
  1391. inspPblmPlistParamUpdate.setPblmReason(bisInspPblmPlistParam.getPblmReason());
  1392. inspPblmPlistParamUpdate.setPblmTm(bisInspPblmPlistParam.getPblmTm());
  1393. // 是否销号
  1394. inspPblmPlistParamUpdate.setPblmOut(bisInspPblmPlistParam.getPblmOut());
  1395. inspPblmPlistParamUpdate.setUptm(new Date());
  1396. return updateSelfInspStateById(inspPblmPlistParamUpdate);
  1397. }
  1398. /**
  1399. * 市、县自查 更新 整改问题 的 问题状态
  1400. *
  1401. * @param bisInspPblmPlistParam
  1402. * @return
  1403. */
  1404. @Override
  1405. public int updateSelfInspStateById(BisInspPblmPlistParam bisInspPblmPlistParam) {
  1406. return bisInspPblmPlistDao.updateSelfInspStateById(bisInspPblmPlistParam);
  1407. }
  1408. /**
  1409. * 四川 水库大坝 按大坝注册登记号 查询整改问题列表
  1410. *
  1411. * @param inspPblmPlistParam
  1412. * @return
  1413. */
  1414. @Override
  1415. public List<BisInspPblmPlist> findListByDamRegCode(BisInspPblmPlistParam inspPblmPlistParam) {
  1416. if (StringUtils.isBlank(inspPblmPlistParam.getDamRegCode())) {
  1417. throw new CheckException("大坝注册登记号不能为空!");
  1418. }
  1419. List<BisInspPblmPlist> listByDamRegCode = this.bisInspPblmPlistDao.findListByDamRegCode(inspPblmPlistParam.getDamRegCode());
  1420. // 设置 工作流信息
  1421. if (null != listByDamRegCode && listByDamRegCode.size() > 0) {
  1422. for (BisInspPblmPlist pblmPlist : listByDamRegCode) {
  1423. // 查询
  1424. logger.info("=======================================bisInspPblmPlistParam.getProvince():" + inspPblmPlistParam.getProvince() + "==============================================================");
  1425. List<Map<String, String>> bpmDataIdList = bisInspPblmPlistDao.getBpmDataId(pblmPlist.getId(), inspPblmPlistParam.getOrgId(), inspPblmPlistParam.getProvince());
  1426. if (CollectionUtils.isNotEmpty(bpmDataIdList)) {
  1427. Map<String, String> bpmData = bpmDataIdList.get(0);
  1428. pblmPlist.setTaskInstId(bpmData.get("taskInstId"));
  1429. pblmPlist.setProcInstId(bpmData.get("procInstId"));
  1430. pblmPlist.setProcTypeName("督查-" + bpmData.get("procTypeName"));
  1431. }
  1432. }
  1433. }
  1434. return listByDamRegCode;
  1435. }
  1436. }