6382d0a963b8ef65c470e009ba273c1ae9e42fdc.svn-base 112 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394
  1. package cn.com.goldenwater.dcproj.service.impl.system;
  2. import cn.com.goldenwater.dcproj.constValue.AdCodeLabel;
  3. import cn.com.goldenwater.dcproj.constValue.BisInspEnum;
  4. import cn.com.goldenwater.dcproj.constValue.SplitValue;
  5. import cn.com.goldenwater.dcproj.dao.*;
  6. import cn.com.goldenwater.dcproj.dto.*;
  7. import cn.com.goldenwater.dcproj.model.*;
  8. import cn.com.goldenwater.dcproj.param.*;
  9. import cn.com.goldenwater.dcproj.service.*;
  10. import cn.com.goldenwater.dcproj.service.impl.wdtst.BisInspWtdstTrackServiceImpl;
  11. import cn.com.goldenwater.dcproj.utils.AdLevelUtil;
  12. import cn.com.goldenwater.id.util.UuidUtil;
  13. import cn.com.goldenwater.target.CheckException;
  14. import com.github.pagehelper.PageHelper;
  15. import com.github.pagehelper.PageInfo;
  16. import org.apache.commons.collections.map.HashedMap;
  17. import org.apache.commons.lang3.StringUtils;
  18. import org.apache.commons.lang3.math.NumberUtils;
  19. import org.apache.poi.hssf.usermodel.HSSFWorkbook;
  20. import org.apache.poi.ss.usermodel.Cell;
  21. import org.apache.poi.ss.usermodel.Row;
  22. import org.apache.poi.ss.usermodel.Sheet;
  23. import org.apache.poi.ss.usermodel.Workbook;
  24. import org.apache.poi.xssf.usermodel.XSSFWorkbook;
  25. import org.springframework.beans.factory.annotation.Autowired;
  26. import org.springframework.stereotype.Service;
  27. import org.springframework.transaction.annotation.Transactional;
  28. import org.springframework.web.multipart.MultipartFile;
  29. import java.io.IOException;
  30. import java.io.InputStream;
  31. import java.text.SimpleDateFormat;
  32. import java.time.LocalDateTime;
  33. import java.util.*;
  34. import static cn.com.goldenwater.dcproj.utils.impexcel.ImpUtil.XLS;
  35. /**
  36. * Created by 61618 on 2019/4/17.
  37. */
  38. @Service
  39. @Transactional(rollbackFor = Exception.class)
  40. public class SupervisionPlanServiceImpl implements SupervisionPlanService {
  41. @Autowired
  42. private BisZhejiangVillRgstrService bisZhejiangVillRgstrService;
  43. @Autowired
  44. private AttJskejianFlkdisBaseDao jskejianFlkdisBaseDao;
  45. @Autowired
  46. private AttJskejianFlkdisRgstrDao jskejianFlkdisRgstrDao;
  47. @Autowired
  48. private AttJskejianWaterRgstrDao jskejianWaterRgstrDao;
  49. @Autowired
  50. private AttJskejianWaterBaseDao jskejianWaterBaseDao;
  51. @Autowired
  52. private AttJskejianEcofrdBaseDao jskejianEcofrdBaseDao;
  53. @Autowired
  54. private AttJskejianEcofrdRgstrDao jskejianEcofrdRgstrDao;
  55. @Autowired
  56. private AttWagaBaseDao attWagaBaseDao;
  57. @Autowired
  58. private SupervisionPlanDao supervisionPlanDao;
  59. @Autowired
  60. private BisNewCountryFeeService bisNewCountryFeeService;
  61. @Autowired
  62. private BisNewDcuserRelVillService bisNewDcuserRelVillService;
  63. @Autowired
  64. private BisNewWateruserInfoService bisNewWateruserInfoService;
  65. @Autowired
  66. private BisNewVillRgstrService bisNewVillRgstrService;
  67. @Autowired
  68. private BisInspAllObjDao bisInspAllObjDao;
  69. @Autowired
  70. private AttRsBaseDao attRsBaseDao;
  71. @Autowired
  72. private BisInspRsvrRgstrDao bisInspRsvrRgstrDao;
  73. @Autowired
  74. private BisInspVillRgstrDao bisInspVillRgstrDao;
  75. @Autowired
  76. private BisInspWtdstTrackDao bisInspWtdstTrackDao;
  77. @Autowired
  78. private AttEmpwtprjBaseDao attEmpwtprjBaseDao;
  79. @Autowired
  80. private BisInspKeyRegisterDao bisInspKeyRegisterDao;
  81. @Autowired
  82. private BisInspBaseDao bisInspBaseDao;
  83. @Autowired
  84. private BisInspGrwDao bisInspGrwDao;
  85. @Autowired
  86. private AttWagaRgstrDao attWagaRgstrDao;
  87. @Autowired
  88. private AttWagaBaseDao wagaBaseDao;
  89. @Autowired
  90. private BisInspBaseExtDao bisInspBaseExtDao;
  91. @Autowired
  92. private BisInspSafeExtManageDao bisInspSafeExtManageDao;
  93. @Autowired
  94. private BisInspObjFactory factory;
  95. @Autowired
  96. private BisInspPreListDao bisInspPreListDao;
  97. @Autowired
  98. private BisInspBaseViewDao bisInspBaseViewDao;
  99. @Autowired
  100. private BisInspBasePresExtDao bisInspBasePresExtDao;
  101. @Autowired
  102. BisInspRsvrProjectDao bisInspRsvrProjectDao;
  103. @Autowired
  104. BisInspRsvrBenefitsDao bisInspRsvrBenefitsDao;//水库效益发挥情况
  105. @Autowired
  106. private BisInspPblmDao bisInspPblmDao;
  107. @Autowired
  108. private BisInspVlgdrinkProjManageDao bisInspVlgdrinkProjManageDao;
  109. @Autowired
  110. private BisInspProSourceProtectDao bisInspProSourceProtectDao;
  111. @Autowired
  112. private BisInspSecsurveyVlgDao bisInspSecsurveyVlgDao;
  113. @Autowired
  114. private BisInspVlgdrinkFacOperDao bisInspVlgdrinkFacOperDao;
  115. @Autowired
  116. private BisInspWateruserInfoDao bisInspWateruserInfoDao;
  117. @Autowired
  118. private BisInspManageResponsibilityDao bisInspManageResponsibilityDao;
  119. @Autowired
  120. private BisInspKeyRegisterSectionDao bisInspKeyRegisterSectionDao;
  121. @Autowired
  122. private BisInspKeyRegSecUnitDao bisInspKeyRegSecUnitDao;
  123. @Autowired
  124. private AttMampuInfoDao attMampuInfoDao;
  125. @Autowired
  126. private BisInspWagaMrsCiDao bisInspWagaMrsCiDao;
  127. @Autowired
  128. private BisInspWagaSafeManageDao bisInspWagaSafeManageDao;
  129. @Autowired
  130. private BisInspWagaDmamInfoDao bisInspWagaDmamInfoDao;
  131. @Autowired
  132. private BisInspWagaProenInfoDao bisInspWagaProenInfoDao;
  133. @Autowired
  134. private BisInspRsvrRgstrService bisInspRsvrRgstrService;
  135. @Autowired
  136. private AttWagaRgstrService attWagaRgstrService;
  137. @Autowired
  138. private BisInspGrwService bisInspGrwService;
  139. @Autowired
  140. private BisInspKeyRegisterService bisInspKeyRegisterService;
  141. @Autowired
  142. private BisInspVillRgstrService bisInspVillRgstrService;
  143. @Autowired
  144. private BisInspWtdstDao bisInspWtdstDao;
  145. @Autowired
  146. private BisInspWtdstTrackServiceImpl bisInspWtdstTrackServiceImpl;
  147. @Autowired
  148. private BisInspSelAreaDao bisInspSelAreaDao;
  149. @Autowired
  150. private BisInspAllRlationDao bisInspAllRlationDao;
  151. @Autowired
  152. private BisInspAllDao bisInspAllDao;
  153. @Autowired
  154. private AttRsBaseCrrctDao attRsBaseCrrctDao;
  155. //稽察项目基本信息表
  156. @Autowired
  157. private TacAttPawpBaseDao tacAttPawpBaseDao;
  158. //稽察项目登记表
  159. @Autowired
  160. private TacPawpRgstrDao tacPawpRgstrDao;
  161. //专业稽察工作底稿
  162. @Autowired
  163. private TacPawpListDao tacPawpListDao;
  164. //查阅的资料目录
  165. @Autowired
  166. private TacPawpDrmDao tacPawpDrmDao;
  167. //前期与设计基本情况表
  168. @Autowired
  169. private TacPawpPdbstDao tacPawpPdbstDao;
  170. //建设管理基本情况表-项目法人责任制-TAC_PAWP_BSTOCM_PLPRS
  171. @Autowired
  172. private TacPawpBstocmPlprsDao tacPawpBstocmPlprsDao;
  173. //建设管理基本情况表-招标投标制-TAC_PAWP_BSTOCM_TSOPBFP
  174. @Autowired
  175. private TacPawpBstocmTsopbfpDao tacPawpBstocmTsopbfpDao;
  176. //建设管理基本情况表-招标投标制-标段-TAC_PAWP_BSTOCM_TSOPBFP_SCTN
  177. @Autowired
  178. private TacPawpBstocmTsopbfpSctnDao tacPawpBstocmTsopbfpSctnDao;
  179. //建设管理基本情况表-建设监理制-TAC_PAWP_BSTOCM_CPSS
  180. @Autowired
  181. private TacPawpBstocmCpssDao tacPawpBstocmCpssDao;
  182. //建设监理单位与标段关系表-TAC_PAWP_BSTOCM_SCTN
  183. @Autowired
  184. private TacPawpBstocmSctnDao tacPawpBstocmSctnDao;
  185. //建设管理基本情况表-合同管理制-TAC_PAWP_BSTOCM_CMS
  186. @Autowired
  187. private TacPawpBstocmCmsDao tacPawpBstocmCmsDao;
  188. //建设管理基本情况表-合同管理制-合同列表-TAC_PAWP_BSTOCM_CMS_PACT_LIST
  189. @Autowired
  190. private TacPawpBstocmCmsPactListDao tacPawpBstocmCmsPactListDao;
  191. //计划下达与执行基本情况表-TAC_PAWP_RAIOBIS
  192. @Autowired
  193. private TacPawpRaiobisDao tacPawpRaiobisDao;
  194. //资金使用与管理基本情况表-TAC_PAWP_BIOFUAM
  195. @Autowired
  196. private TacPawpBiofuamDao tacPawpBiofuamDao;
  197. //工程质量基本情况表--质量管理体制-TAC_PAWP_BITOPQ_QMS
  198. @Autowired
  199. private TacPawpBitopqQmsDao tacPawpBitopqQmsDao;
  200. //工程质量基本情况表--质量管理体制--体制列表-TAC_PAWP_BITOPQ_QMS_LIST
  201. //工程质量基本情况表--工程实体质量与验收-TAC_PAWP_BITOPQ_PEQAA
  202. @Autowired
  203. private TacPawpBitopqPeqaaDao tacPawpBitopqPeqaaDao;
  204. //工程安全基本情况表--项目法人-TAC_PAWP_BIOES_PE
  205. @Autowired
  206. private TacPawpBioesPeDao tacPawpBioesPeDao;
  207. //工程安全基本情况表--施工单位-TAC_PAWP_BIOES_RWUNIT
  208. @Autowired
  209. private TacPawpBioesRwunitDao tacPawpBioesRwunitDao;
  210. //稽察问题信息表-TAC_PBLM_INFO
  211. @Autowired
  212. private TacPawpBstocmCpssInfoDao tacPawpBstocmCpssInfoDao;
  213. @Autowired
  214. private AttFscBaseDao attFscBaseDao;
  215. @Autowired
  216. private BisInspFscRgstrDao bisInspFscRgstrDao;
  217. @Autowired
  218. private AttOtherBaseDao attOtherBaseDao;
  219. @Autowired
  220. private AttSdBaseDao sdBaseDao;
  221. @Autowired
  222. private BisInspOtherRgstrDao bisInspOtherRgstrDao;
  223. @Autowired
  224. private BisInspSdRgstrDao bisInspSdRgstrDao;
  225. @Autowired
  226. private BisInspSwhsRgstrDao swhsRgstrDao;
  227. //安全保障达标落实情况
  228. @Autowired
  229. private BisInspSwhsRgstrSafetyDao swhsRgstrSafetyDao;
  230. //保护措施监管情况
  231. @Autowired
  232. private BisInspSwhsRgstrMeasuresDao swhsRgstrMeasuresDao;
  233. //地级行政区应急备用水源建设情况
  234. @Autowired
  235. private BisInspSwhsRgstrWaterDao swhsRgstrWaterDao;
  236. @Autowired
  237. private AttSwhsBaseDao swhsBaseDao;
  238. //取水用户
  239. @Autowired
  240. private BisInspWiuRgstrDao wiuRgstrDao;
  241. //取水单位取用水情况
  242. @Autowired
  243. private BisInspWiuRgstrIntInfoDao wiuRgstrIntInfoDao;
  244. //取水许可审批监管情况
  245. @Autowired
  246. private BisInspWiuRgstrApprInfoDao wiuRgstrApprInfoDao;
  247. @Autowired
  248. private AttWiuBaseDao wiuBaseDao;
  249. @Autowired
  250. private BisInspOrgDao bisInspOrgDao;
  251. //行政区划取水量
  252. @Autowired
  253. private BisInspWintRgstrDao wintRgstrDao;
  254. //行政区填报表
  255. @Autowired
  256. private BisInspWintRgstrIntInfoDao wintRgstrIntInfoDao;
  257. @Autowired
  258. private AttAdXBaseDao attAdXBaseDao;
  259. @Autowired
  260. private BisInspSvwtAreaRgstrDao svwtAreaRgstrDao;
  261. @Autowired
  262. private BisInspSvwtAreaRgstrWseDao svwtAreaWseDao;
  263. @Autowired
  264. private BisInspSvwtAreaRgstrWswmDao svwtAreaWswmDao;
  265. @Autowired
  266. private BisInspSvwtWuntRgstrDao svwtWuntRgstrDao;
  267. @Autowired
  268. private BisInspSvwtWuntRgstrWuuswDao svwtWuntWuuswDao;
  269. @Autowired
  270. private BisInspSvwtWuntRgstrWsuswDao svwtWuntWsuswDao;
  271. @Autowired
  272. private AttWuntBaseDao wuntBaseDao;
  273. @Autowired
  274. private BisInspAllRlationPersDao bisInspAllRlationPersDao;
  275. @Autowired
  276. private AttGrwBaseDao grwBaseDao;
  277. @Autowired
  278. private OlBisInspOrgService inspOrgService;
  279. @Autowired
  280. private AttPrdCstrProjBaseDao attPrdCstrProjBaseDao;
  281. @Autowired
  282. private BisInspOprdCstrProjRgstrDao oprdCstrProjRgstrDao;
  283. @Autowired
  284. private BisInspRsmlRgstrDao bisInspRsmlRgstrDao;
  285. @Autowired
  286. private BisInspRsmlRgstrPresDao bisInspRsmlRgstrPresDao;
  287. @Autowired
  288. private BisInspRsmlRgstrProjectDao bisInspRsmlRgstrProjectDao;
  289. @Autowired
  290. private BisInspRsmlRgstrRunManageDao bisInspRsmlRgstrRunManageDao;
  291. @Autowired
  292. private BisInspRsraqgRgstrService bisInspRsraqgRgstrService;
  293. @Autowired
  294. private BisInspRsraqgRgstrCityService bisInspRsraqgRgstrCityService;
  295. @Autowired
  296. private BisInspRsraqgRgstrCountyService bisInspRsraqgRgstrCountyService;
  297. @Autowired
  298. private BisInspStndRgstrService bisInspStndRgstrService;
  299. @Autowired
  300. private BisZhejiangJgRgstrDao bisZhejiangJgRgstrDao;
  301. @Autowired
  302. private BisZhejiangJgRgstrService bisZhejiangJgRgstrService;
  303. @Autowired
  304. private BisInspRsfcoRgstrService bisInspRsfcoRgstrService;
  305. @Autowired
  306. private BisInspMfdpRgstrService bisInspMfdpRgstrService;
  307. @Autowired
  308. private BisInspRsfcoRgstrBaseDao bisInspRsfcoRgstrBaseDao;
  309. @Autowired
  310. private BisInspRsfcoRgstrFlliDao bisInspRsfcoRgstrFlliDao;
  311. @Autowired
  312. private BisInspRsfcoRgstrAoeparoDao bisInspRsfcoRgstrAoeparoDao;
  313. @Autowired
  314. private AttZhejiangJgBaseDao attZhejiangJgBaseDao;
  315. @Autowired
  316. private BisInspPlanYearService bisInspPlanYearService;
  317. /**
  318. * 根据用户信息与督查计划类型获取该用户可示可管理的单一机构的所有批次
  319. *
  320. * @param persid
  321. * @param ptype
  322. * @return
  323. */
  324. @Override
  325. public List<AllNodeDto> getNodeByPersid(String persid, String ptype, String orgId) {
  326. BisInspAllRlationPersDto bisInspAllRlationPersDto = this.supervisionPlanDao.getPersInfo(persid);
  327. String orgIdStr = AdCodeLabel.START_PARENT_ADCODE + ptype + bisInspAllRlationPersDto.getOrgId();
  328. if (ptype.length() == 2) {
  329. orgIdStr = "0" + ptype + bisInspAllRlationPersDto.getOrgId();
  330. }
  331. if (ptype.length() == 3) {
  332. orgIdStr = ptype + bisInspAllRlationPersDto.getOrgId();
  333. }
  334. return this.supervisionPlanDao.getNodeByOrgId(orgIdStr, orgId, inspOrgService.getProvince(orgId));
  335. }
  336. /**
  337. * 获取督查组相关的对象、人员、区域信息(新)
  338. *
  339. * @param persid
  340. * @param inspYear
  341. * @param inspMnth
  342. * @param orgId
  343. * @return
  344. */
  345. @Override
  346. public List<PersAllInfoDto> getAllInfoByPersidAndOrgId(String persid, String inspYear, String inspMnth, String orgId, String yearPlanId) {
  347. String orgIdStr = "___" + orgId;
  348. //获取所有组
  349. List<PersAllInfoDto> persAllInfoDtoList = this.supervisionPlanDao.getAllInfoByPersidAndOrgId(persid, inspYear, inspMnth, orgIdStr, orgId, inspOrgService.getProvince(orgId), yearPlanId);
  350. if (persAllInfoDtoList.size() > 0) {
  351. for (PersAllInfoDto p : persAllInfoDtoList) {
  352. String province = inspOrgService.getProvince(p.getOrgId());
  353. p.setPtype(String.valueOf(Integer.valueOf(p.getPtype())));
  354. //获取人员
  355. List<PersAllDto> persAllDtoList = this.supervisionPlanDao.getPersAllDtoList(p.getId(), p.getOrgId(), province);
  356. //获取督查对象
  357. List<PersAllObjDto> persAllObjDtoList = this.supervisionPlanDao.getPersAllObjDtoList(p.getId(), p.getOrgId(), province);
  358. //获取分工区域
  359. List<PersAllAreaDto> persAllAreaDtoList = this.supervisionPlanDao.getPersAllAreaDtoList(p.getId(), p.getOrgId(), province);
  360. p.setPersAllDtoList(persAllDtoList);
  361. p.setPersAllObjDtoList(persAllObjDtoList);
  362. p.setPersAllAreaDtoList(persAllAreaDtoList);
  363. }
  364. }
  365. return persAllInfoDtoList;
  366. }
  367. /**
  368. * 查询不在该督查组下的水库
  369. *
  370. * @param inGroupResParam 水库参数
  371. * @return
  372. */
  373. @Override
  374. public PageInfo<AttSupResBase> getSupResByGroup(InGroupResParam inGroupResParam) {
  375. if (StringUtils.isNotBlank(inGroupResParam.getAdcd())) {
  376. String adCode = this.getAdCodeLike("1", inGroupResParam.getAdcd());
  377. inGroupResParam.setAdcd(adCode);
  378. }
  379. PageHelper.startPage(inGroupResParam.getPageNum(), inGroupResParam.getPageSize());
  380. List<AttSupResBase> attGrwBaseList = this.supervisionPlanDao.getSupResByGroup(inGroupResParam);
  381. return new PageInfo<>(attGrwBaseList);
  382. }
  383. /**
  384. * 查询不在督查组督查范围内的督查对象(分页)
  385. *
  386. * @param inspObjParam 对象参数
  387. * @return
  388. */
  389. @Override
  390. public PageInfo getSupObjListNotInspGroupId(InspObjParam inspObjParam) {
  391. PageHelper.startPage(inspObjParam.getPageNum(), inspObjParam.getPageSize());
  392. List resultList = getObjListNotGroupId(inspObjParam);
  393. return new PageInfo<>(resultList);
  394. }
  395. /**
  396. * 查询不在督查组督查范围内的督查对象
  397. *
  398. * @param inspObjParam 对象参数
  399. * @return
  400. */
  401. @Override
  402. public List getObjListNotGroupId(InspObjParam inspObjParam) {
  403. // 保留原adCode
  404. String oldAdCode = inspObjParam.getAdCode();
  405. String adCode = this.getAdCodeLike(inspObjParam.getObjType(), inspObjParam.getAdCode());
  406. inspObjParam.setAdCode(adCode);
  407. BisInspEnum bisInspEnum = BisInspEnum.getEnumByType(inspObjParam.getObjType());
  408. Optional.ofNullable(bisInspEnum).orElseThrow(() -> new CheckException("未找到与 objType:" + inspObjParam.getObjType() + " 相对应的督查项!"));
  409. switch (bisInspEnum) {
  410. case REVER:
  411. // 小水库或者 36类型 或者 小水库标准化
  412. InGroupResParam inGroupReverResParam = inspObjParam2InGroupResParam(inspObjParam);
  413. inGroupReverResParam.setEngScal("'3','4', '5'");
  414. return this.supervisionPlanDao.getSupResByGroup(inGroupReverResParam);
  415. case REVER2:
  416. case STND:
  417. case RSSFDR:
  418. case RSSFGD:
  419. case RSVRYN:
  420. // 小水库或者 36类型 或者 小水库标准化
  421. InGroupResParam inGroupResParam = inspObjParam2InGroupResParam(inspObjParam);
  422. if (StringUtils.isBlank(inGroupResParam.getEngScal())) {
  423. inGroupResParam.setEngScal("'3','4', '5'");
  424. }
  425. return this.supervisionPlanDao.getSupResByGroup(inGroupResParam);
  426. case RSML:
  427. case RSLKBK:
  428. case RSFCOQH:
  429. InGroupResParam rsmlParam = inspObjParam2InGroupResParam(inspObjParam);
  430. if (StringUtils.isBlank(rsmlParam.getEngScal())) {
  431. rsmlParam.setEngScal("'1', '2', '3'");
  432. }
  433. return this.supervisionPlanDao.getSupResByGroup(rsmlParam);
  434. // return this.supervisionPlanDao.getSupResRsmlByGroup(inspObjParam2InGroupResParam(inspObjParam));
  435. // case STND:
  436. // //小水库或者 36类型 或者 小水库标准化
  437. // return this.supervisionPlanDao.getSupResStndByGroup(inspObjParam2InGroupResParam(inspObjParam));
  438. case VILL:
  439. case VILLZHEJIANG:
  440. case VILL2020:
  441. case IRR:
  442. case RDWSP:
  443. case VILLGD:
  444. case VILL2021:
  445. case SVWTQH:
  446. case FJWTENF:
  447. adCode = "______000000";
  448. if (StringUtils.isNotBlank(oldAdCode)) {
  449. adCode = oldAdCode.replace("00", "");
  450. if (adCode.length() == 2) {
  451. adCode = adCode + "____000000";
  452. } else if (adCode.length() == 4) {
  453. adCode = adCode + "__000000";
  454. } else {
  455. adCode = adCode + "000000";
  456. }
  457. }
  458. inspObjParam.setAdCode(adCode);
  459. inspObjParam.setAdGrad("'4'");
  460. return supervisionPlanDao.getSupCwsListNotInspGroupId(inspObjParam);
  461. case QYMTEN:
  462. case XJVILL:
  463. adCode = "______000000";
  464. if (StringUtils.isNotBlank(oldAdCode)) {
  465. adCode = oldAdCode.replace("00", "");
  466. if (adCode.length() == 2) {
  467. adCode = adCode + "____000000";
  468. } else if (adCode.length() == 4) {
  469. adCode = adCode + "__000000";
  470. } else {
  471. adCode = adCode + "000000";
  472. }
  473. }
  474. inspObjParam.setAdCode(adCode);
  475. inspObjParam.setAdGrad("'3'");
  476. return supervisionPlanDao.getSupCwsListNotInspGroupId(inspObjParam);
  477. case VILLQH:
  478. adCode = "______000000";
  479. if (StringUtils.isNotBlank(oldAdCode)) {
  480. adCode = oldAdCode.replace("00", "");
  481. if (adCode.length() == 2) {
  482. adCode = adCode + "____000000";
  483. } else if (adCode.length() == 4) {
  484. adCode = adCode + "__000000";
  485. } else {
  486. adCode = adCode + "000000";
  487. }
  488. }
  489. inspObjParam.setAdCode(adCode);
  490. inspObjParam.setAdGrad("'3','4'");
  491. return supervisionPlanDao.getSupCwsListNotInspGroupId(inspObjParam);
  492. case TRACK:
  493. return supervisionPlanDao.getSupWtdListNotInspGroupId(inspObjParam.getInspGroupId(), inspObjParam.getProvince(), inspObjParam.getObjType(), inspObjParam.getWtdstType()
  494. , inspObjParam.getWtdstNm(), inspObjParam.getWtdstState(), adCode, inspObjParam.getNm(), inspObjParam.getOrderBy(), inspObjParam.getYear(), inspObjParam.getPrjState());
  495. case EMPWT:
  496. case KEYSAFQH:
  497. case KEYCHKQH:
  498. //重点工程建设
  499. return supervisionPlanDao.getSupEmpListNotInspGroupId(inspObjParam.getInspGroupId(), inspObjParam.getObjType(),
  500. inspObjParam.getNm(), adCode, "2", inspObjParam.getOrderBy(), inspObjParam.getOrgId(), inspObjParam.getProvince());
  501. case EMPWTRUN:
  502. //重点工程运行
  503. return supervisionPlanDao.getSupEmpListNotInspGroupId(inspObjParam.getInspGroupId(), inspObjParam.getObjType(),
  504. inspObjParam.getNm(), adCode, "1", inspObjParam.getOrderBy(), inspObjParam.getOrgId(), inspObjParam.getProvince());
  505. case GRW:
  506. return supervisionPlanDao.getSupGrwListNotInspGroupId(inspObjParam.getInspGroupId(), inspObjParam.getObjType(), inspObjParam.getNm(),
  507. adCode, inspObjParam.getOrderBy(), inspObjParam.getSttp(), inspObjParam.getGateType(), inspObjParam.getOrgId(), inspObjParam.getProvince());
  508. case WAGA://水闸
  509. case WAGAJS:
  510. return supervisionPlanDao.getSupWagaListNotInspGroupId(inspObjParam);
  511. case PAWP://稽察项目
  512. return supervisionPlanDao.getSupPawpListNotInspGroupId(inspObjParam);
  513. case FSC:
  514. return supervisionPlanDao.getSupFscListNotInspGroupId(inspObjParam);
  515. case OTHER:
  516. return supervisionPlanDao.getSupOtherListNotInspGroupId(inspObjParam);
  517. case SD:
  518. return supervisionPlanDao.getSupSdListNotInspGroupId(inspObjParam);
  519. case WIU:
  520. case WIUJS:
  521. return supervisionPlanDao.getSupWiuListNotInspGroupId(inspObjParam);
  522. case SWHS:
  523. return supervisionPlanDao.getSupSwhsListNotInspGroupId(inspObjParam);
  524. case WUNT:
  525. return supervisionPlanDao.getWuntListNotInspGroupId(inspObjParam);
  526. case PRD:
  527. case PRDQH:
  528. return supervisionPlanDao.getPrdListNotInspGroupId(inspObjParam);
  529. case JSFL:
  530. return supervisionPlanDao.getJSFLListNotInspGroupId(inspObjParam);
  531. case JSWA:
  532. return supervisionPlanDao.getJSWAListNotInspGroupId(inspObjParam);
  533. case ECOFRD:
  534. return supervisionPlanDao.getEcofrdListNotInspGroupId(inspObjParam);
  535. case RSFCO:
  536. return supervisionPlanDao.getRsBaseListNotInspGroupId(inspObjParam);
  537. case RSRAQG:
  538. // 23
  539. return supervisionPlanDao.getAdBaseListNotInspGroupId(inspObjParam);
  540. case BIS_ZHEJIANG_JG_RGSTR:
  541. //获取不在督查组中的对象
  542. return supervisionPlanDao.getNotSuperviseGroupObj(inspObjParam);
  543. case MFDP:
  544. return supervisionPlanDao.getSupMfdpListNotInspGroupId(inspObjParam.getInspGroupId(), inspObjParam.getProvince(), inspObjParam.getObjType(), inspObjParam.getAdName()
  545. , adCode, inspObjParam.getNm(), inspObjParam.getOrderBy());
  546. case SAP:
  547. return supervisionPlanDao.getSapBaseListNotInspGroupId(inspObjParam);
  548. case EFP:
  549. // 不需要加adCode inspObjParam.setAdCode(null);
  550. return supervisionPlanDao.getEfpBaseListNotInspGroupId(inspObjParam);
  551. case WINTU:
  552. // 31.取用水督查
  553. return supervisionPlanDao.getWintuBaseListNotInspGroupId(inspObjParam);
  554. case CITY:
  555. inspObjParam.setAdGrad("'4'");
  556. return supervisionPlanDao.getAdXBaseListNotInspGroupId(inspObjParam);
  557. case WRM:
  558. case SVWT:
  559. case WTGOV:
  560. case WRM2021:
  561. case FJQA:
  562. case SDQA:
  563. inspObjParam.setAdGrad("'3','4'");
  564. return supervisionPlanDao.getAdXBaseListNotInspGroupId(inspObjParam);
  565. case CHMCLS:
  566. inspObjParam.setAdGrad("'2','3','4'");
  567. return supervisionPlanDao.getAdXBaseListNotInspGroupId(inspObjParam);
  568. case MFDPQH:
  569. if (StringUtils.isBlank(inspObjParam.getAdGrad())) {
  570. inspObjParam.setAdGrad("'3','4','5','6'");
  571. }
  572. return supervisionPlanDao.getAdXBaseListNotInspGroupId(inspObjParam);
  573. case WTUNT:
  574. case WTCRR:
  575. // 33.节约用水 AND 054.节水载体复核表
  576. return supervisionPlanDao.getWtuntBaseListNotInspGroupId(inspObjParam);
  577. case WRWS:
  578. // 53.市级 水资源管理及节水管理复核
  579. return supervisionPlanDao.getAdBaseMunicipalLevelListNotInspGroupIds(inspObjParam);
  580. case WRWX:
  581. // 56.县级 水资源管理及节水管理复核
  582. return supervisionPlanDao.getAdBaseCountyLevelListNotInspGroupIds(inspObjParam);
  583. case WTGT:
  584. case WTGTH:
  585. // 55.取水许可管理复核表登记
  586. // 57.取水许可管理复核表登记
  587. return supervisionPlanDao.getWtgtBaseListNotInspGroupId(inspObjParam);
  588. // case RSSFDR:
  589. // case RSSFGD:
  590. // return supervisionPlanDao.getRsListNotInGroup(inspObjParam);
  591. case SAMRMP:
  592. return supervisionPlanDao.getSamListNotInGroup(inspObjParam);
  593. case CDEP:
  594. return supervisionPlanDao.getSupCdepListNotInspGroupId(inspObjParam);
  595. case BID:
  596. return supervisionPlanDao.getSupBidListNotInspGroupId(inspObjParam);
  597. case RLRW:
  598. return supervisionPlanDao.getSupRlrwListNotInspGroupId(inspObjParam);
  599. case DRDMP:
  600. // 69
  601. return supervisionPlanDao.getSupDrdmpListNotInspGroupId(inspObjParam);
  602. case GROW:
  603. return supervisionPlanDao.getSupGrowListNotInspGroupId(inspObjParam);
  604. case FUND:
  605. return supervisionPlanDao.getSupFundListNotInspGroupId(inspObjParam);
  606. case WIUQH:
  607. // 72
  608. return supervisionPlanDao.getSupWiuqhListNotInspGroupId(inspObjParam);
  609. case SAFETY:
  610. // 74
  611. return supervisionPlanDao.getSafetyListNotInspGroupId(inspObjParam);
  612. case YNDEP:
  613. // 75
  614. return supervisionPlanDao.getYndepListNotInspGroupId(inspObjParam);
  615. case DPGM:
  616. // 76
  617. return supervisionPlanDao.getDpgmListNotInspGroupId(inspObjParam);
  618. case RVGM:
  619. // 77
  620. return supervisionPlanDao.getRvgmListNotInspGroupId(inspObjParam);
  621. case WTPRJ:
  622. // 78
  623. return supervisionPlanDao.getWtprjListNotInspGroupId(inspObjParam);
  624. case UNWT:
  625. // 78
  626. return supervisionPlanDao.getUnwtListNotInspGroupId(inspObjParam);
  627. case FLOODQH:
  628. // 78
  629. return supervisionPlanDao.getFloodqhListNotInspGroupId(inspObjParam);
  630. case DSTFLDQH:
  631. // 78
  632. return supervisionPlanDao.getDstfldqhListNotInspGroupId(inspObjParam);
  633. case HYST:
  634. return supervisionPlanDao.getAddAxListNotInspGroupId(inspObjParam);
  635. case STSTN:
  636. return supervisionPlanDao.getStstnListNotInspGroupId(inspObjParam);
  637. case GNRL:
  638. return supervisionPlanDao.getGnrlListNotInspGroupId(inspObjParam);
  639. case SWHSJS:
  640. return supervisionPlanDao.getSwhsjsListNotInspGroupId(inspObjParam);
  641. case RSVRSD:
  642. return supervisionPlanDao.getRsvrSdListNotInspGroupId(inspObjParam);
  643. case HYSTP:
  644. return supervisionPlanDao.getXsdyhglListNotInspGroupId(inspObjParam);
  645. case RDWPGD:
  646. return supervisionPlanDao.getRdwpGdListNotInspGroupId(inspObjParam);
  647. case JSPWIU:
  648. return supervisionPlanDao.getJsPwiuListNotInspGroupId(inspObjParam);
  649. case FJPJLGL:
  650. return supervisionPlanDao.getFpjlglListNotInspGroupId(inspObjParam);
  651. case FJPJMGDP:
  652. return supervisionPlanDao.getFjpjmgdpListNotInspGroupId(inspObjParam);
  653. case FJACCP:
  654. return supervisionPlanDao.getFjaccpListNotInspGroupId(inspObjParam);
  655. case FJSDU:
  656. return supervisionPlanDao.getFjsduListNotInspGroupId(inspObjParam);
  657. case FJPJCSU:
  658. return supervisionPlanDao.getFjpjcsuListNotInspGroupId(inspObjParam);
  659. case JSPWIU2024:
  660. return supervisionPlanDao.getJsPwiu2024ListNotInspGroupId(inspObjParam);
  661. case FJGNRL:
  662. return supervisionPlanDao.getFjgnrlListNotInspGroupId(inspObjParam);
  663. default:
  664. throw new CheckException("未找到与 objType:" + inspObjParam.getObjType() + " 相对应的督查项!");
  665. }
  666. }
  667. /**
  668. * 拼接 AD_CODE
  669. *
  670. * @param objType pType
  671. * @param ad AD_CODE
  672. * @return
  673. */
  674. public String getAdCodeLike(String objType, String ad) {
  675. if (StringUtils.isBlank(ad)) {
  676. return "";
  677. }
  678. // 获取行政划区字段名
  679. String eName = "AD_CODE";
  680. if ("1".equals(objType) || "22".equals(objType) ||
  681. "24".equals(objType) || "80".equals(objType) ||
  682. BisInspEnum.RSFCO.getValue().equals(objType)) {
  683. eName = "ADM_DIV";
  684. } else if ("3".equals(objType)) {
  685. eName = "LOC_AD";
  686. } else if ("5".equals(objType)) {
  687. eName = "ADCD";
  688. }
  689. String adCode;
  690. // 如果有多个行政区划编码,要根据逗号分隔截取
  691. if (ad.contains(SplitValue.DOUHAO_SPLIT)) {
  692. StringBuilder stringBuffer = new StringBuilder();
  693. String[] split = ad.split(SplitValue.DOUHAO_SPLIT);
  694. // 拼接sql,对多个截取后的行政区划进行模糊查询
  695. for (String s : split) {
  696. String subAd = AdLevelUtil.SubAd(s).get("subAd").toString();
  697. stringBuffer.append(subAd)
  698. .append("%' OR ")
  699. .append(eName)
  700. .append(" LIKE '");
  701. }
  702. //将最后的“ OR ADM_DIV LIKE ” 截掉
  703. String subAds = stringBuffer.substring(0, stringBuffer.length() - 18);
  704. adCode = "(" + eName + " LIKE '" + subAds + ")";
  705. } else {
  706. String subAd = AdLevelUtil.SubAd(ad).get("subAd").toString();
  707. adCode = eName + " LIKE '" + subAd + "%' ";
  708. }
  709. return adCode;
  710. }
  711. /**
  712. * InspObjParam 转换 InGroupResParam
  713. *
  714. * @param inspObjParam
  715. * @return
  716. */
  717. private InGroupResParam inspObjParam2InGroupResParam(InspObjParam inspObjParam) {
  718. InGroupResParam resParam = new InGroupResParam();
  719. resParam.setAdcd(inspObjParam.getAdCode());
  720. resParam.setAdnm(inspObjParam.getAdName());
  721. resParam.setEngScal(inspObjParam.getEngScal());
  722. resParam.setGroupId(inspObjParam.getInspGroupId());
  723. resParam.setRsName(inspObjParam.getNm());
  724. resParam.setOrderBy(inspObjParam.getOrderBy());
  725. resParam.setState(inspObjParam.getState());
  726. resParam.setPageSize(inspObjParam.getPageSize());
  727. resParam.setPageNum(inspObjParam.getPageNum());
  728. resParam.setProvince(inspObjParam.getProvince());
  729. resParam.setpType(inspObjParam.getObjType());
  730. resParam.setHstInsp(inspObjParam.getHstInsp());
  731. resParam.setIsBack(inspObjParam.getIsBack());
  732. resParam.setIsSupn(inspObjParam.getIsSupn());
  733. resParam.setIsTask(inspObjParam.getIsTask());
  734. return resParam;
  735. }
  736. @Override
  737. public SupInsertResult insertSupervisionObj(PersAllInfoDto persAllInfoDto) {
  738. SupInsertResult supInsertResult = new SupInsertResult();
  739. String province = inspOrgService.getProvince(persAllInfoDto.getOrgId());
  740. //修改督查组名称
  741. if (StringUtils.isNotBlank(persAllInfoDto.getNm())
  742. || StringUtils.isNotBlank(persAllInfoDto.getSttm())
  743. || StringUtils.isNotBlank(persAllInfoDto.getEntm())
  744. || StringUtils.isNotBlank(persAllInfoDto.getInspTask())) {
  745. BisInspAllDto bisInspAllDto = new BisInspAllDto();
  746. bisInspAllDto.setId(persAllInfoDto.getId());
  747. bisInspAllDto.setPid(persAllInfoDto.getPid());
  748. bisInspAllDto.setPnm(persAllInfoDto.getNm());
  749. bisInspAllDto.setPsn(persAllInfoDto.getPsn());
  750. bisInspAllDto.setOrgId(persAllInfoDto.getOrgId());
  751. bisInspAllDto.setInspTask(persAllInfoDto.getInspTask());
  752. bisInspAllDto.setSttm(persAllInfoDto.getSttm());
  753. bisInspAllDto.setEntm(persAllInfoDto.getEntm());
  754. bisInspAllDto.setInspYear(persAllInfoDto.getInspYear());
  755. bisInspAllDto.setInspMnth(persAllInfoDto.getInspMnth());
  756. bisInspAllDto.setInspTask(persAllInfoDto.getInspTask());
  757. this.supervisionPlanDao.updateNode(bisInspAllDto);
  758. }
  759. //添加督查组人员
  760. if (persAllInfoDto.getPersAllDtoList() != null && persAllInfoDto.getPersAllDtoList().size() > 0) {
  761. for (PersAllDto pers : persAllInfoDto.getPersAllDtoList()) {
  762. this.supervisionPlanDao.insertPers(persAllInfoDto.getId(), pers.getGuid(), pers.getPersType(), persAllInfoDto.getOrgId(), persAllInfoDto.getProvince(), String.valueOf(Integer.parseInt(persAllInfoDto.getId().substring(0, 3))));
  763. }
  764. }
  765. // 添加督查对象
  766. if (persAllInfoDto.getPersAllObjDtoList() != null && persAllInfoDto.getPersAllObjDtoList().size() > 0) {
  767. OlBisInspOrg inspOrg = inspOrgService.get(persAllInfoDto.getOrgId());
  768. String adCode = inspOrg.getRlcode();
  769. for (PersAllObjDto persObj : persAllInfoDto.getPersAllObjDtoList()) {
  770. String type = persObj.getPtype();
  771. if (type.length() == 1) {
  772. type = "00" + type;
  773. } else if (type.length() == 2) {
  774. type = "0" + type;
  775. }
  776. // 去重判断 跟据 基础表ID、组ID、PTYPE 判NullPointerException断是否重复
  777. BisInspAllObjParam inspAllObjParam = new BisInspAllObjParam();
  778. inspAllObjParam.setId(persAllInfoDto.getId());
  779. inspAllObjParam.setCode(persObj.getCode());
  780. inspAllObjParam.setPtype(persObj.getPtype());
  781. List<BisInspAllObj> inspAllObjDaoList = bisInspAllObjDao.findList(inspAllObjParam);
  782. if (inspAllObjDaoList != null && !inspAllObjDaoList.isEmpty()) {
  783. if (!BisInspEnum.TRACK.getRlation().equalsIgnoreCase(type)) {
  784. continue;
  785. }
  786. }
  787. // 添加督查对象
  788. BisInspAllObj bisInspAllObj = addObj(persAllInfoDto, persObj, adCode, province, type);
  789. // 添加登记表
  790. // HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
  791. BisInspObjStrategy strategy = factory.createStrategy(persObj.getPtype());
  792. strategy.insertObj(bisInspAllObj, persAllInfoDto.getPersid());
  793. }
  794. }
  795. //添加分工区域
  796. if (persAllInfoDto.getPersAllAreaDtoList() != null && persAllInfoDto.getPersAllAreaDtoList().size() > 0) {
  797. for (PersAllAreaDto pad : persAllInfoDto.getPersAllAreaDtoList()) {
  798. String uuid = UuidUtil.uuid();
  799. this.supervisionPlanDao.insertSupArea(uuid, persAllInfoDto.getId(), pad.getAdCode(), pad.getAdName(), persAllInfoDto.getOrgId(), province);
  800. }
  801. }
  802. supInsertResult.setId(persAllInfoDto.getId());
  803. supInsertResult.setNm(persAllInfoDto.getNm());
  804. supInsertResult.setPersCount(persAllInfoDto.getPersAllDtoList().size());
  805. supInsertResult.setObjCount(persAllInfoDto.getPersAllObjDtoList().size());
  806. supInsertResult.setAreaCount(persAllInfoDto.getPersAllAreaDtoList().size());
  807. return supInsertResult;
  808. }
  809. /**
  810. * 添加对象表 BIS_INSP_ALL_OBJ
  811. *
  812. * @param persAllInfoDto
  813. * @param persObj
  814. * @param adCode 行政区划
  815. * @param province 省级行政区划
  816. * @param type 督查类别
  817. * @return BisInspAllObj
  818. */
  819. private BisInspAllObj addObj(PersAllInfoDto persAllInfoDto, PersAllObjDto persObj, String adCode, String province, String type) {
  820. BisInspAllObj bisInspAllObj = new BisInspAllObj();
  821. bisInspAllObj.setObjId(UuidUtil.uuid());
  822. bisInspAllObj.setPtype(persObj.getPtype());
  823. bisInspAllObj.setCode(persObj.getCode());
  824. bisInspAllObj.setId(persAllInfoDto.getId());
  825. bisInspAllObj.setNm(persObj.getName());
  826. bisInspAllObj.setProvince(province);
  827. bisInspAllObj.setPersId(persAllInfoDto.getPersid());
  828. // 增加 是否省属 属性 1是2否
  829. bisInspAllObj.setProvincial(persObj.getObjProvincial());
  830. // 查询经纬度
  831. // 30 超标洪水防御 没有省级划分,所以无法获取经纬度
  832. if (!BisInspEnum.EFP.getRlation().equals(type)) {
  833. LgtdAndLttd lgtdAndLttd = this.supervisionPlanDao.getLgtdAndLttd(persObj.getCode(), type);
  834. Optional.ofNullable(lgtdAndLttd).ifPresent(ld -> {
  835. bisInspAllObj.setLgtd(ld.getLgtd());
  836. bisInspAllObj.setLttd(ld.getLttd());
  837. bisInspAllObj.setLgtdpc(ld.getLgtdPc());
  838. bisInspAllObj.setLttdpc(ld.getLttdPc());
  839. });
  840. }
  841. // 判断是否是全国数据
  842. if (!adCode.startsWith(AdCodeLabel.START_PARENT_ADCODE)) {
  843. bisInspAllObj.setAdCode(adCode);
  844. bisInspAllObj.setOrgId(persAllInfoDto.getOrgId());
  845. }
  846. // 添加督查对象
  847. this.bisInspAllObjDao.insert(bisInspAllObj);
  848. return bisInspAllObj;
  849. }
  850. /**
  851. * 督查组人员分配角色
  852. *
  853. * @param objIdDto
  854. * @return
  855. */
  856. @Override
  857. public int assignmentRole(ObjIdDto objIdDto) {
  858. int i = 0;
  859. String province = inspOrgService.getProvince(objIdDto.getOrgId());
  860. ObjIdDto persAllDto = this.supervisionPlanDao.getPers(objIdDto.getId(), objIdDto.getGuid());
  861. if (persAllDto != null) {//组里存在该人员
  862. if ("1".equals(objIdDto.getPersType())) {//如果添加组长,将组里其他组长设为组员
  863. this.supervisionPlanDao.updateTeamLeader(objIdDto.getId());
  864. }
  865. //已经在组里,修改人员类型
  866. i += this.supervisionPlanDao.updatePersType(objIdDto.getId(), objIdDto.getGuid(), objIdDto.getPersType());
  867. } else {
  868. if ("1".equals(objIdDto.getPersType())) {
  869. this.supervisionPlanDao.updateTeamLeader(objIdDto.getId());
  870. }
  871. //不在组里 执行添加
  872. this.supervisionPlanDao.insertPers(objIdDto.getId(), objIdDto.getGuid(), objIdDto.getPersType(), objIdDto.getOrgId(), province, String.valueOf(Integer.parseInt(objIdDto.getId().substring(0, 3))));
  873. }
  874. return i;
  875. }
  876. /**
  877. * 获取人员类型
  878. *
  879. * @param persid
  880. * @return
  881. */
  882. @Override
  883. public List<PersTypeDto> getPersType(String persid, String orgId, String yearId) {
  884. // if(StringUtils.isBlank(inspOrgService.getProvince(orgId))) {
  885. // return this.supervisionPlanDao.getPersTypeByPersid(persid, orgId, inspOrgService.getProvince(orgId));
  886. // }
  887. if (StringUtils.isBlank(yearId)) {
  888. return this.supervisionPlanDao.getPersTypeByPersidOrg(persid, inspOrgService.getProvince(orgId));
  889. } else {
  890. //根据年度计划返回督查类型
  891. BisInspPlanYear bisInspPlanYear = bisInspPlanYearService.get(yearId);
  892. PersTypeDto persTypeDto = new PersTypeDto(bisInspPlanYear.getObjType(), bisInspPlanYear.getObjName());
  893. List<PersTypeDto> list = new ArrayList<>();
  894. list.add(persTypeDto);
  895. return list;
  896. }
  897. }
  898. /**
  899. * 获取人员类型(根据接收单位)
  900. *
  901. * @param persid
  902. * @return
  903. */
  904. @Override
  905. public List<PersTypeDto> getPersTypeByPersid(String persid, String orgId) {
  906. return this.supervisionPlanDao.getPersTypeByPersid(persid, orgId, inspOrgService.getProvince(orgId));
  907. }
  908. /**
  909. * 清空督查对象
  910. *
  911. * @param objType
  912. * @param id
  913. */
  914. @Override
  915. public void cleanObjData(String objType, String id) {
  916. if (StringUtils.isBlank(id) || StringUtils.isBlank(objType)) {
  917. return;
  918. }
  919. BisInspPblmParam bisInspPblmParam = new BisInspPblmParam();
  920. bisInspPblmParam.setRegid(id);
  921. bisInspPblmParam.setObjType(objType);
  922. this.bisInspPblmDao.deleteBy(bisInspPblmParam);//删除问题
  923. if ("1".equals(objType) || "36".equals(objType)) {//水库
  924. BisInspBaseViewParam p = new BisInspBaseViewParam();
  925. p.setRgstrId(id);
  926. //获取走访情况
  927. BisInspBaseView bisInspBaseView = this.bisInspBaseViewDao.getBy(p);
  928. if (bisInspBaseView != null) {
  929. //删除走访人员情况
  930. this.bisInspPreListDao.deleteByViewId(bisInspBaseView.getViewId());
  931. }
  932. this.bisInspBaseViewDao.deleteBy(p);//删除水库走访情况
  933. BisInspSafeExtManageParam bisInspSafeExtManageParam = new BisInspSafeExtManageParam();
  934. bisInspSafeExtManageParam.setRgstrId(id);
  935. this.bisInspSafeExtManageDao.deleteBy(bisInspSafeExtManageParam);//删除水库安全运行管理情况
  936. BisInspBaseExtParam bisInspBaseExtParam = new BisInspBaseExtParam();
  937. bisInspBaseExtParam.setRgstrId(id);
  938. this.bisInspBaseExtDao.deleteBy(bisInspBaseExtParam);//删除水库“三项基本要求”落实情况
  939. BisInspBasePresExtParam bisInspBasePresExt = new BisInspBasePresExtParam();
  940. bisInspBasePresExt.setRgstrId(id);
  941. this.bisInspBasePresExtDao.deleteBy(bisInspBasePresExt);//删除水库“三个责任人”落实情况
  942. BisInspRsvrProjectParam bisInspRsvrProjectParam = new BisInspRsvrProjectParam();//水库工程实体情况
  943. bisInspRsvrProjectParam.setRgstrId(id);
  944. bisInspRsvrProjectDao.deleteBy(bisInspRsvrProjectParam);
  945. BisInspRsvrBenefitsParam bisInspRsvrBenefitsParam = new BisInspRsvrBenefitsParam();//水库效益发挥情况
  946. bisInspRsvrBenefitsParam.setRgstrId(id);
  947. bisInspRsvrBenefitsDao.deleteBy(bisInspRsvrBenefitsParam);
  948. BisInspRsvrRgstr bisInspRsvrRgstr = this.bisInspRsvrRgstrDao.get(id);
  949. this.bisInspRsvrRgstrDao.delete(id);//删除水库登记表
  950. if (bisInspRsvrRgstr != null) {
  951. bisInspAllObjDao.delete(bisInspRsvrRgstr.getObjId());//删除对象名录表
  952. AttRsBaseCrrctParam attRsBaseCrrctParam = new AttRsBaseCrrctParam();
  953. attRsBaseCrrctParam.setObjId(bisInspRsvrRgstr.getObjId());
  954. attRsBaseCrrctDao.deleteBy(attRsBaseCrrctParam);
  955. }
  956. } else if (BisInspEnum.VILL2020.getValue().equals(objType)) {
  957. BisNewVillRgstr villRgstr = bisNewVillRgstrService.get(id);
  958. bisNewVillRgstrService.delete(id);
  959. BisNewDcuserRelVillParam newDcuserRelVillParam = new BisNewDcuserRelVillParam();
  960. newDcuserRelVillParam.setRegstrId(villRgstr.getId());
  961. bisNewDcuserRelVillService.deleteBy(newDcuserRelVillParam);
  962. BisNewWateruserInfoParam newWateruserInfoParam = new BisNewWateruserInfoParam();
  963. newWateruserInfoParam.setRegstrId(villRgstr.getId());
  964. bisNewWateruserInfoService.deleteBy(newWateruserInfoParam);
  965. BisNewCountryFeeParam newCountryFeeParam = new BisNewCountryFeeParam();
  966. newCountryFeeParam.setRegstrId(villRgstr.getId());
  967. bisNewCountryFeeService.deleteBy(newCountryFeeParam);
  968. } else if (BisInspEnum.VILL.getValue().equals(objType)) {//人饮
  969. BisInspVlgdrinkProjManageParam bisInspVlgdrinkProjManageParam = new BisInspVlgdrinkProjManageParam();
  970. bisInspVlgdrinkProjManageParam.setEngId(id);
  971. this.bisInspVlgdrinkProjManageDao.deleteBy(bisInspVlgdrinkProjManageParam);//删除农村饮水工程运行管理情况表
  972. BisInspProSourceProtectParam bisInspProSourceProtectParam = new BisInspProSourceProtectParam();
  973. bisInspProSourceProtectParam.setEngId(id);
  974. this.bisInspProSourceProtectDao.deleteBy(bisInspProSourceProtectParam);//删除千人以上供水工程水源地保护登记表
  975. BisInspSecsurveyVlgParam bisInspSecsurveyVlgParam = new BisInspSecsurveyVlgParam();
  976. bisInspSecsurveyVlgParam.setEngId(id);
  977. this.bisInspSecsurveyVlgDao.deleteBy(bisInspSecsurveyVlgParam);//删除暗访调研行政村登记表
  978. BisInspVlgdrinkFacOperParam bisInspVlgdrinkFacOperParam = new BisInspVlgdrinkFacOperParam();
  979. bisInspVlgdrinkFacOperParam.setEngId(id);
  980. this.bisInspVlgdrinkFacOperDao.deleteBy(bisInspVlgdrinkFacOperParam);//删除村内农村饮水工程设施运行维护情况表
  981. BisInspWateruserInfoParam bisInspWateruserInfoParam = new BisInspWateruserInfoParam();
  982. bisInspWateruserInfoParam.setEngId(id);
  983. this.bisInspWateruserInfoDao.deleteBy(bisInspWateruserInfoParam);//删除农村饮水用水户登记表
  984. BisInspManageResponsibilityParam bisInspManageResponsibilityParam = new BisInspManageResponsibilityParam();
  985. bisInspManageResponsibilityParam.setEngId(id);
  986. this.bisInspManageResponsibilityDao.deleteBy(bisInspManageResponsibilityParam);
  987. BisInspVillRgstr bisInspVillRgstr = this.bisInspVillRgstrDao.get(id);
  988. this.bisInspVillRgstrDao.delete(id);//删除登记表
  989. if (bisInspVillRgstr != null) {
  990. this.bisInspAllObjDao.delete(bisInspVillRgstr.getObjId());//删除督查对象
  991. }
  992. } else if (BisInspEnum.TRACK.getValue().equals(objType)) {//水毁
  993. BisInspWtdstTrack bisInspWtdstTrack = this.bisInspWtdstTrackDao.get(id);
  994. this.bisInspWtdstTrackDao.delete(id);//删除登记表
  995. if (bisInspWtdstTrack != null) {
  996. this.bisInspAllObjDao.delete(bisInspWtdstTrack.getObjId());//删除督查对象
  997. }
  998. } else if (BisInspEnum.EMPWT.getValue().equals(objType)) {//水利工程建设
  999. BisInspKeyRegisterSectionParam bisInspKeyRegisterSectionParam = new BisInspKeyRegisterSectionParam();
  1000. bisInspKeyRegisterSectionParam.setRegId(id);
  1001. //获取172重点水利项目登记表标段基本信息
  1002. List<BisInspKeyRegisterSection> bisInspKeyRegisterSectionList = this.bisInspKeyRegisterSectionDao.findList(bisInspKeyRegisterSectionParam);
  1003. if (bisInspKeyRegisterSectionList.size() > 0) {
  1004. for (BisInspKeyRegisterSection b : bisInspKeyRegisterSectionList) {
  1005. BisInspKeyRegSecUnitParam bisInspKeyRegSecUnitParam = new BisInspKeyRegSecUnitParam();
  1006. bisInspKeyRegSecUnitParam.setSecId(b.getId());
  1007. //删除172重点水利项目标段责任单位
  1008. this.bisInspKeyRegSecUnitDao.deleteBy(bisInspKeyRegSecUnitParam);
  1009. }
  1010. }
  1011. //删除172重点水利项目登记表标段
  1012. this.bisInspKeyRegisterSectionDao.deleteBy(bisInspKeyRegisterSectionParam);
  1013. this.attMampuInfoDao.deleteByRegId(id);//删除管理单位信息表
  1014. BisInspKeyRegister bisInspKeyRegister = this.bisInspKeyRegisterDao.get(id);
  1015. this.bisInspKeyRegisterDao.delete(id);//删除登记表
  1016. if (bisInspKeyRegister != null) {
  1017. this.bisInspAllObjDao.delete(bisInspKeyRegister.getObjId());//删除督查对象
  1018. }
  1019. } else if (BisInspEnum.GRW.getValue().equals(objType)) {//地下水
  1020. BisInspGrwParam bisInspGrwParam = new BisInspGrwParam();
  1021. bisInspGrwParam.setId(id);
  1022. BisInspGrw bisInspGrw = this.bisInspGrwDao.getBy(bisInspGrwParam);
  1023. this.bisInspGrwDao.delete(id);//删除登记表
  1024. if (bisInspGrw != null) {
  1025. //删除督查对象
  1026. this.bisInspAllObjDao.delete(bisInspGrw.getObjId());
  1027. }
  1028. } else if (BisInspEnum.WAGA.getValue().equals(objType)) {//水闸
  1029. BisInspWagaMrsCiParam bisInspWagaMrsCi = new BisInspWagaMrsCiParam();
  1030. bisInspWagaMrsCi.setRgstrId(id);
  1031. //删除水闸督查管理责任体系建设和落实情况
  1032. this.bisInspWagaMrsCiDao.deleteBy(bisInspWagaMrsCi);
  1033. BisInspWagaSafeManageParam bisInspWagaSafeManage = new BisInspWagaSafeManageParam();
  1034. bisInspWagaSafeManage.setRgstrId(id);
  1035. //删除水闸督查安全管理情况
  1036. this.bisInspWagaSafeManageDao.deleteBy(bisInspWagaSafeManage);
  1037. BisInspWagaDmamInfoParam bisInspWagaDmamInfoParam = new BisInspWagaDmamInfoParam();
  1038. bisInspWagaDmamInfoParam.setRgstrId(id);
  1039. //删除水闸督查日常管理和维修养护情况
  1040. this.bisInspWagaDmamInfoDao.deleteBy(bisInspWagaDmamInfoParam);
  1041. BisInspWagaProenInfoParam bisInspWagaProenInfoParam = new BisInspWagaProenInfoParam();
  1042. bisInspWagaProenInfoParam.setRgstrId(id);
  1043. //删除水闸督查工程实体情况
  1044. this.bisInspWagaProenInfoDao.deleteBy(bisInspWagaProenInfoParam);
  1045. AttWagaRgstr attWagaRgstr = this.attWagaRgstrDao.get(id);
  1046. //删除登记表
  1047. this.attWagaRgstrDao.delete(id);
  1048. if (attWagaRgstr != null) {
  1049. //删除督查对象
  1050. this.bisInspAllObjDao.delete(attWagaRgstr.getObjId());
  1051. }
  1052. } else if (BisInspEnum.EMPWTRUN.getValue().equals(objType)) {//水利工程运行
  1053. BisInspKeyRegisterSectionParam bisInspKeyRegisterSectionParam = new BisInspKeyRegisterSectionParam();
  1054. bisInspKeyRegisterSectionParam.setRegId(id);
  1055. //获取172重点水利项目登记表标段基本信息
  1056. List<BisInspKeyRegisterSection> bisInspKeyRegisterSectionList = this.bisInspKeyRegisterSectionDao.findList(bisInspKeyRegisterSectionParam);
  1057. if (bisInspKeyRegisterSectionList.size() > 0) {
  1058. for (BisInspKeyRegisterSection b : bisInspKeyRegisterSectionList) {
  1059. BisInspKeyRegSecUnitParam bisInspKeyRegSecUnitParam = new BisInspKeyRegSecUnitParam();
  1060. bisInspKeyRegSecUnitParam.setSecId(b.getId());
  1061. //删除172重点水利项目标段责任单位
  1062. this.bisInspKeyRegSecUnitDao.deleteBy(bisInspKeyRegSecUnitParam);
  1063. }
  1064. }
  1065. //删除172重点水利项目登记表标段
  1066. this.bisInspKeyRegisterSectionDao.deleteBy(bisInspKeyRegisterSectionParam);
  1067. this.attMampuInfoDao.deleteByRegId(id);//删除管理单位信息表
  1068. BisInspKeyRegister bisInspKeyRegister = this.bisInspKeyRegisterDao.get(id);
  1069. this.bisInspKeyRegisterDao.delete(id);//删除登记表
  1070. if (bisInspKeyRegister != null) {
  1071. this.bisInspAllObjDao.delete(bisInspKeyRegister.getObjId());//删除督查对象
  1072. }
  1073. } else if (BisInspEnum.PAWP.getValue().equals(objType)) {
  1074. //删除专业稽察工作底稿
  1075. TacPawpListParam listParam = new TacPawpListParam();
  1076. listParam.setRgstrId(id);
  1077. List<TacPawpList> l = tacPawpListDao.findList(listParam);
  1078. for (TacPawpList t : l) {
  1079. //删除查阅的资料目录
  1080. TacPawpDrmParam drmParam = new TacPawpDrmParam();
  1081. drmParam.setListId(t.getId());
  1082. tacPawpDrmDao.deleteBy(drmParam);
  1083. }
  1084. tacPawpListDao.deleteBy(listParam);
  1085. //删除前期与设计基本情况表
  1086. TacPawpPdbstParam pdbstParam = new TacPawpPdbstParam();
  1087. pdbstParam.setRgstrId(id);
  1088. tacPawpPdbstDao.deleteBy(pdbstParam);
  1089. //删除建设管理基本情况表-项目法人责任制-TAC_PAWP_BSTOCM_PLPRS
  1090. TacPawpBstocmPlprsParam bstocmPlprsParam = new TacPawpBstocmPlprsParam();
  1091. bstocmPlprsParam.setRgstrId(id);
  1092. tacPawpBstocmPlprsDao.deleteBy(bstocmPlprsParam);
  1093. //删除建设管理基本情况表-招标投标制-TAC_PAWP_BSTOCM_TSOPBFP
  1094. TacPawpBstocmTsopbfpParam bstocmTsopbfpParam = new TacPawpBstocmTsopbfpParam();
  1095. bstocmTsopbfpParam.setRgstrId(id);
  1096. List<TacPawpBstocmTsopbfp> bstocmTsopbfps = tacPawpBstocmTsopbfpDao.findList(bstocmTsopbfpParam);
  1097. for (TacPawpBstocmTsopbfp t : bstocmTsopbfps
  1098. ) {
  1099. //删除建设管理基本情况表-招标投标制-标段-TAC_PAWP_BSTOCM_TSOPBFP_SCTN
  1100. TacPawpBstocmTsopbfpSctnParam bstocmTsopbfpSctnParam = new TacPawpBstocmTsopbfpSctnParam();
  1101. bstocmTsopbfpSctnParam.setTsopbfpId(t.getId());
  1102. tacPawpBstocmTsopbfpSctnDao.deleteBy(bstocmTsopbfpSctnParam);
  1103. //删除建设监理单位与标段关系表-TAC_PAWP_BSTOCM_SCTN
  1104. TacPawpBstocmSctnParam bstocmSctnParam = new TacPawpBstocmSctnParam();
  1105. bstocmSctnParam.setSctnId(t.getId());
  1106. tacPawpBstocmSctnDao.deleteBy(bstocmSctnParam);
  1107. }
  1108. tacPawpBstocmTsopbfpDao.deleteBy(bstocmTsopbfpParam);
  1109. //删除建设管理基本情况表-建设监理制-TAC_PAWP_BSTOCM_CPSS
  1110. TacPawpBstocmCpssInfoParam tacPawpBstocmCpssInfoParam = new TacPawpBstocmCpssInfoParam();
  1111. tacPawpBstocmCpssInfoParam.setRgstrId(id);
  1112. List<TacPawpBstocmCpssInfo> pawpBstocmCpsses = tacPawpBstocmCpssInfoDao.findList(tacPawpBstocmCpssInfoParam);
  1113. for (TacPawpBstocmCpssInfo pawpBstocmCpssInfo : pawpBstocmCpsses) {
  1114. TacPawpBstocmCpssParam bstocmCpssParam = new TacPawpBstocmCpssParam();
  1115. bstocmCpssParam.setCpssId(pawpBstocmCpssInfo.getId());
  1116. tacPawpBstocmCpssDao.deleteBy(bstocmCpssParam);
  1117. }
  1118. tacPawpBstocmCpssInfoDao.deleteBy(tacPawpBstocmCpssInfoParam);
  1119. //删除建设管理基本情况表-合同管理制-TAC_PAWP_BSTOCM_CMS
  1120. TacPawpBstocmCmsParam bstocmCmsParam = new TacPawpBstocmCmsParam();
  1121. bstocmCmsParam.setRgstrId(id);
  1122. List<TacPawpBstocmCms> bstocmCms = tacPawpBstocmCmsDao.findList(bstocmCmsParam);
  1123. for (TacPawpBstocmCms t : bstocmCms
  1124. ) {
  1125. //删除建设管理基本情况表-合同管理制-合同列表-TAC_PAWP_BSTOCM_CMS_PACT_LIST
  1126. TacPawpBstocmCmsPactListParam bstocmCmsPactListParam = new TacPawpBstocmCmsPactListParam();
  1127. bstocmCmsPactListParam.setCmsId(t.getId());
  1128. tacPawpBstocmCmsPactListDao.deleteBy(bstocmCmsPactListParam);
  1129. }
  1130. tacPawpBstocmCmsDao.deleteBy(bstocmCmsParam);
  1131. //删除计划下达与执行基本情况表-TAC_PAWP_RAIOBIS
  1132. TacPawpRaiobisParam raiobisParam = new TacPawpRaiobisParam();
  1133. raiobisParam.setRgstrId(id);
  1134. tacPawpRaiobisDao.deleteBy(raiobisParam);
  1135. //删除资金使用与管理基本情况表-TAC_PAWP_BIOFUAM
  1136. TacPawpBiofuamParam biofuamParam = new TacPawpBiofuamParam();
  1137. biofuamParam.setRgstrId(id);
  1138. tacPawpBiofuamDao.deleteBy(biofuamParam);
  1139. //删除工程质量基本情况表--质量管理体制-TAC_PAWP_BITOPQ_QMS
  1140. TacPawpBitopqQmsParam bitopqQmsParam = new TacPawpBitopqQmsParam();
  1141. bitopqQmsParam.setRgstrId(id);
  1142. tacPawpBitopqQmsDao.deleteBy(bitopqQmsParam);
  1143. //删除工程质量基本情况表--工程实体质量与验收-TAC_PAWP_BITOPQ_PEQAA
  1144. TacPawpBitopqPeqaaParam bitopqPeqaaParam = new TacPawpBitopqPeqaaParam();
  1145. bitopqPeqaaParam.setRgstrId(id);
  1146. tacPawpBitopqPeqaaDao.deleteBy(bitopqPeqaaParam);
  1147. //删除工程安全基本情况表--项目法人-TAC_PAWP_BIOES_PE
  1148. TacPawpBioesPeParam bioesPeParam = new TacPawpBioesPeParam();
  1149. bioesPeParam.setRgstrId(id);
  1150. tacPawpBioesPeDao.deleteBy(bioesPeParam);
  1151. //删除工程安全基本情况表--施工单位-TAC_PAWP_BIOES_RWUNIT
  1152. TacPawpBioesRwunitParam bioesRwunitParam = new TacPawpBioesRwunitParam();
  1153. bioesRwunitParam.setRgstrId(id);
  1154. tacPawpBioesRwunitDao.deleteBy(bioesRwunitParam);
  1155. //稽察项目登记表
  1156. TacPawpRgstr tacPawpRgstr = tacPawpRgstrDao.get(id);
  1157. //删除稽察项目登记表
  1158. tacPawpRgstrDao.delete(id);
  1159. if (tacPawpRgstr != null) {
  1160. //删除稽察项目相关问题
  1161. //删除督查对象
  1162. this.bisInspAllObjDao.delete(tacPawpRgstr.getObjId());
  1163. }
  1164. } else if (BisInspEnum.FSC.getValue().equals(objType)) {
  1165. BisInspFscRgstr rgstr = bisInspFscRgstrDao.get(id);
  1166. bisInspFscRgstrDao.delete(id);
  1167. if (rgstr != null) {
  1168. this.bisInspAllObjDao.delete(rgstr.getObjId());
  1169. }
  1170. } else if (BisInspEnum.OTHER.getValue().equals(objType)) {
  1171. BisInspOtherRgstr rgstr = bisInspOtherRgstrDao.get(id);
  1172. bisInspOtherRgstrDao.delete(id);
  1173. if (rgstr != null) {
  1174. this.bisInspAllObjDao.delete(rgstr.getObjId());
  1175. }
  1176. } else if (BisInspEnum.SD.getValue().equals(objType)) {
  1177. BisInspSdRgstr rgstr = bisInspSdRgstrDao.get(id);
  1178. bisInspSdRgstrDao.delete(id);
  1179. if (rgstr != null) {
  1180. this.bisInspAllObjDao.delete(rgstr.getObjId());
  1181. }
  1182. } else if (BisInspEnum.WIU.getValue().equals(objType)) {
  1183. //删除取水单位取用水情况
  1184. BisInspWiuRgstrIntInfoParam param = new BisInspWiuRgstrIntInfoParam();
  1185. param.setRgstrId(id);
  1186. wiuRgstrIntInfoDao.deleteBy(param);
  1187. //删除取水许可审批监管情况
  1188. BisInspWiuRgstrApprInfoParam apprInfoParam = new BisInspWiuRgstrApprInfoParam();
  1189. apprInfoParam.setRgstrId(id);
  1190. wiuRgstrApprInfoDao.deleteBy(apprInfoParam);
  1191. BisInspWiuRgstr rgstr = wiuRgstrDao.get(id);
  1192. wiuRgstrDao.delete(id);
  1193. if (rgstr != null) {
  1194. this.bisInspAllObjDao.delete(rgstr.getObjId());
  1195. }
  1196. } else if (BisInspEnum.SWHS.getValue().equals(objType)) {
  1197. //删除安全保障达标落实情况表
  1198. BisInspSwhsRgstrSafetyParam safetyParam = new BisInspSwhsRgstrSafetyParam();
  1199. safetyParam.setRgstrId(id);
  1200. swhsRgstrSafetyDao.deleteBy(safetyParam);
  1201. //删除保护措施监管情况
  1202. BisInspSwhsRgstrMeasuresParam measuresParam = new BisInspSwhsRgstrMeasuresParam();
  1203. measuresParam.setId(id);
  1204. swhsRgstrMeasuresDao.deleteBy(measuresParam);
  1205. //删除地级行政区应急备用水源建设情况表
  1206. BisInspSwhsRgstrWaterParam waterParam = new BisInspSwhsRgstrWaterParam();
  1207. waterParam.setRgstrId(id);
  1208. swhsRgstrWaterDao.deleteBy(waterParam);
  1209. BisInspSwhsRgstr rgstr = swhsRgstrDao.get(id);
  1210. swhsRgstrDao.delete(id);
  1211. if (rgstr != null) {
  1212. this.bisInspAllObjDao.delete(rgstr.getObjId());
  1213. }
  1214. } else if (BisInspEnum.CITY.getValue().equals(objType)) {
  1215. BisInspWintRgstrIntInfoParam intInfoParam = new BisInspWintRgstrIntInfoParam();
  1216. intInfoParam.setRgstrId(id);
  1217. wintRgstrIntInfoDao.deleteBy(intInfoParam);
  1218. BisInspWintRgstr rgstr = wintRgstrDao.get(id);
  1219. wintRgstrDao.delete(id);
  1220. if (rgstr != null) {
  1221. this.bisInspAllObjDao.delete(rgstr.getObjId());
  1222. }
  1223. } else if (BisInspEnum.SVWT.getValue().equals(objType)) {
  1224. BisInspSvwtAreaRgstrWswmParam wswmParam = new BisInspSvwtAreaRgstrWswmParam();
  1225. wswmParam.setRgstrId(id);
  1226. svwtAreaWswmDao.deleteBy(wswmParam);
  1227. BisInspSvwtAreaRgstrWseParam wseParam = new BisInspSvwtAreaRgstrWseParam();
  1228. wseParam.setRgstrId(id);
  1229. svwtAreaWseDao.deleteBy(wseParam);
  1230. BisInspSvwtAreaRgstr rgstr = svwtAreaRgstrDao.get(id);
  1231. if (rgstr != null) {
  1232. this.bisInspAllObjDao.delete(rgstr.getObjId());
  1233. }
  1234. } else if (BisInspEnum.WUNT.getValue().equalsIgnoreCase(objType)) {
  1235. BisInspSvwtWuntRgstrWuuswParam wuuswParam = new BisInspSvwtWuntRgstrWuuswParam();
  1236. wuuswParam.setRgstrId(id);
  1237. svwtWuntWuuswDao.deleteBy(wuuswParam);
  1238. BisInspSvwtWuntRgstrWsuswParam wsuswParam = new BisInspSvwtWuntRgstrWsuswParam();
  1239. wsuswParam.setRgstrId(id);
  1240. svwtWuntWsuswDao.deleteBy(wsuswParam);
  1241. BisInspSvwtWuntRgstr rgstr = svwtWuntRgstrDao.get(id);
  1242. if (rgstr != null) {
  1243. this.bisInspAllObjDao.delete(rgstr.getObjId());
  1244. }
  1245. } else if (BisInspEnum.PRD.getValue().equals(objType)) {
  1246. BisInspOprdCstrProjRgstr rgstr = oprdCstrProjRgstrDao.get(id);
  1247. oprdCstrProjRgstrDao.delete(id);
  1248. if (rgstr != null) {
  1249. this.bisInspAllObjDao.delete(rgstr.getObjId());
  1250. }
  1251. } else if (BisInspEnum.JSFL.getValue().equals(objType)) {
  1252. AttJskejianFlkdisRgstr rgstr = jskejianFlkdisRgstrDao.get(id);
  1253. jskejianFlkdisRgstrDao.delete(id);
  1254. if (rgstr != null) {
  1255. this.bisInspAllObjDao.delete(rgstr.getObjId());
  1256. }
  1257. } else if (BisInspEnum.JSWA.getValue().equals(objType)) {
  1258. AttJskejianWaterRgstr rgstr = jskejianWaterRgstrDao.get(id);
  1259. jskejianWaterRgstrDao.delete(id);
  1260. if (rgstr != null) {
  1261. this.bisInspAllObjDao.delete(rgstr.getObjId());
  1262. }
  1263. } else if (BisInspEnum.ECOFRD.getValue().equals(objType)) {
  1264. AttJskejianEcofrdRgstr rgstr = jskejianEcofrdRgstrDao.get(id);
  1265. jskejianEcofrdRgstrDao.delete(id);
  1266. if (rgstr != null) {
  1267. this.bisInspAllObjDao.delete(rgstr.getObjId());
  1268. }
  1269. } else if (BisInspEnum.RSML.getValue().equals(objType)) {
  1270. //三个责任人
  1271. BisInspRsmlRgstrPresParam presParam = new BisInspRsmlRgstrPresParam();
  1272. presParam.setRgstrId(id);
  1273. bisInspRsmlRgstrPresDao.deleteBy(presParam);
  1274. //运行管理
  1275. BisInspRsmlRgstrRunManageParam runManageParam = new BisInspRsmlRgstrRunManageParam();
  1276. runManageParam.setRgstrId(id);
  1277. bisInspRsmlRgstrRunManageDao.deleteBy(runManageParam);
  1278. //实体责任
  1279. BisInspRsmlRgstrProjectParam projectParam = new BisInspRsmlRgstrProjectParam();
  1280. projectParam.setRgstrId(id);
  1281. bisInspRsmlRgstrProjectDao.deleteBy(projectParam);
  1282. BisInspRsmlRgstr rgstr = bisInspRsmlRgstrDao.get(id);
  1283. bisInspRsmlRgstrDao.delete(id);
  1284. if (rgstr != null) {
  1285. this.bisInspAllObjDao.delete(rgstr.getObjId());
  1286. }
  1287. } else if (BisInspEnum.RSFCO.getValue().equals(objType)) {
  1288. BisInspRsfcoRgstrBaseParam baseParam = new BisInspRsfcoRgstrBaseParam();
  1289. baseParam.setRgstrId(id);
  1290. bisInspRsfcoRgstrBaseDao.deleteBy(baseParam);
  1291. BisInspRsfcoRgstrFlliParam flliParam = new BisInspRsfcoRgstrFlliParam();
  1292. flliParam.setRgstrId(id);
  1293. bisInspRsfcoRgstrFlliDao.deleteBy(flliParam);
  1294. BisInspRsfcoRgstrAoeparoParam aoeparoParam = new BisInspRsfcoRgstrAoeparoParam();
  1295. aoeparoParam.setRgstrId(id);
  1296. bisInspRsfcoRgstrAoeparoDao.deleteBy(aoeparoParam);
  1297. this.bisInspRsfcoRgstrService.delete(id);//删除水库登记表
  1298. } else if (BisInspEnum.MFDP.getValue().equals(objType)) {
  1299. bisInspMfdpRgstrService.delete(id);
  1300. }
  1301. }
  1302. /**
  1303. * 获取督查组相关的对象、人员、区域信息
  1304. *
  1305. * @param persid
  1306. * @param ptype
  1307. * @param id
  1308. * @return
  1309. */
  1310. @Override
  1311. public List<PersAllInfoDto> getAllInfoByPersid(String persid, String ptype, String id, String orgId) {
  1312. ptype = "00" + ptype;
  1313. String province = inspOrgService.getProvince(orgId);
  1314. List<PersAllInfoDto> persAllInfoDtoList = this.supervisionPlanDao.getAllInfoByPersid(persid, ptype, id, orgId, province);
  1315. if (persAllInfoDtoList.size() > 0) {
  1316. for (PersAllInfoDto p : persAllInfoDtoList) {
  1317. List<PersAllDto> persAllDtoList = this.supervisionPlanDao.getPersAllDtoList(p.getId(), orgId, province);
  1318. List<PersAllObjDto> persAllObjDtoList = this.supervisionPlanDao.getPersAllObjDtoListByType(p.getId(), ptype, orgId, province);
  1319. List<PersAllAreaDto> persAllAreaDtoList = this.supervisionPlanDao.getPersAllAreaDtoList(p.getId(), orgId, province);
  1320. p.setPersAllDtoList(persAllDtoList);
  1321. p.setPersAllObjDtoList(persAllObjDtoList);
  1322. p.setPersAllAreaDtoList(persAllAreaDtoList);
  1323. }
  1324. }
  1325. return persAllInfoDtoList;
  1326. }
  1327. /**
  1328. * 添加督查小组,不存在批次时同时添加批次
  1329. *
  1330. * @param groupInfoDto
  1331. * @return
  1332. */
  1333. @Override
  1334. public String insertGroupInfo(GroupInfoDto groupInfoDto) {
  1335. if (groupInfoDto.getPtype().length() == 1) {//将类型拼成类似于001这种格式
  1336. groupInfoDto.setPtype("00" + groupInfoDto.getPtype());
  1337. }
  1338. String province = inspOrgService.getProvince(groupInfoDto.getOrgId());
  1339. if (groupInfoDto.getPtype().length() == 2) {//将类型拼成类似于001这种格式
  1340. groupInfoDto.setPtype("0" + groupInfoDto.getPtype());
  1341. }
  1342. AllNodeDto nameDto = this.supervisionPlanDao.getNodeById(groupInfoDto.getPtype() + groupInfoDto.getOrgId());
  1343. if (nameDto == null) {
  1344. BisInspOrg bisInspOrg = bisInspOrgDao.get(groupInfoDto.getOrgId());
  1345. BisInspAllNodeDto bisInspAllNodeDto = new BisInspAllNodeDto();
  1346. String groupId = groupInfoDto.getPtype() + groupInfoDto.getOrgId();
  1347. bisInspAllNodeDto.setId(groupId);
  1348. bisInspAllNodeDto.setPnm(bisInspOrg.getOrgNm());
  1349. String pid = groupInfoDto.getPtype();
  1350. bisInspAllNodeDto.setPid(pid);
  1351. bisInspAllNodeDto.setSttm(groupInfoDto.getSttm());
  1352. bisInspAllNodeDto.setEntm(groupInfoDto.getEntm());
  1353. bisInspAllNodeDto.setInspYear(groupInfoDto.getInspYear());
  1354. bisInspAllNodeDto.setProvince(province);
  1355. bisInspAllNodeDto.setInspMnth(groupInfoDto.getInspMnth());
  1356. String intm = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
  1357. bisInspAllNodeDto.setIntm(intm);
  1358. this.supervisionPlanDao.insertNode(bisInspAllNodeDto);//新建批次
  1359. }
  1360. String id = groupInfoDto.getPtype() + groupInfoDto.getOrgId() + "___";
  1361. //查询是否存在批次insertGroupInfo
  1362. ObjectNameDto objectNameDto = this.supervisionPlanDao.getNodeBy(id, groupInfoDto.getInspYear(), groupInfoDto.getInspMnth(), groupInfoDto.getOrgId(), province);
  1363. if (objectNameDto == null) {//如果为空,新建批次
  1364. BisInspAllNodeDto bisInspAllNodeDto = new BisInspAllNodeDto();
  1365. String groupId = groupInfoDto.getPtype() + groupInfoDto.getOrgId() + "0" + groupInfoDto.getInspMnth();
  1366. BisInspAll max = bisInspAllDao.getMaxOne(groupInfoDto.getPtype() + groupInfoDto.getOrgId(), null);
  1367. if (null != max) {
  1368. Long upOne = NumberUtils.toLong(max.getId());
  1369. groupId = String.format("%0" + max.getId().length() + "d", (upOne + 1));
  1370. }
  1371. bisInspAllNodeDto.setId(groupId);
  1372. bisInspAllNodeDto.setPnm(groupInfoDto.getInspYear() + "年" + groupInfoDto.getInspMnth() + "月督查");
  1373. String pid = groupInfoDto.getPtype() + groupInfoDto.getOrgId();
  1374. bisInspAllNodeDto.setPid(pid);
  1375. bisInspAllNodeDto.setSttm(groupInfoDto.getSttm());
  1376. bisInspAllNodeDto.setEntm(groupInfoDto.getEntm());
  1377. bisInspAllNodeDto.setInspYear(groupInfoDto.getInspYear());
  1378. bisInspAllNodeDto.setInspMnth(groupInfoDto.getInspMnth());
  1379. bisInspAllNodeDto.setOrgId(groupInfoDto.getOrgId());
  1380. bisInspAllNodeDto.setProvince(province);
  1381. bisInspAllNodeDto.setInspType(groupInfoDto.getPtype());
  1382. String intm = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
  1383. bisInspAllNodeDto.setIntm(intm);
  1384. this.supervisionPlanDao.insertNode(bisInspAllNodeDto);//新建批次
  1385. String gid = groupId + "001";
  1386. bisInspAllNodeDto.setId(gid);
  1387. bisInspAllNodeDto.setPnm(groupInfoDto.getName());
  1388. bisInspAllNodeDto.setPid(groupId);
  1389. bisInspAllNodeDto.setInspTask(groupInfoDto.getInspTask());
  1390. bisInspAllNodeDto.setProvince(province);
  1391. this.supervisionPlanDao.insertNode(bisInspAllNodeDto);//新建组
  1392. return gid;
  1393. } else {//如果存在批次
  1394. String newGroupId = "";
  1395. ObjIdDto objIdDto = this.supervisionPlanDao.getMaxGroupId(objectNameDto.getId(), objectNameDto.getOrgId(), province);//获取最新组id
  1396. if (objIdDto.getId() != null) {//如果该批次下有组,则组id加1
  1397. String rtId = objIdDto.getId().substring(objIdDto.getId().length() - 1, objIdDto.getId().length());
  1398. int i = Integer.parseInt(rtId) + 1;
  1399. newGroupId = String.valueOf(i);
  1400. if ("10".equals(newGroupId)) {//新建组id末尾为10的时候进行截取处理
  1401. String sid = objIdDto.getId().substring(objIdDto.getId().length() - 2, objIdDto.getId().length() - 1);
  1402. int j = Integer.parseInt(sid) + 1;
  1403. String ss = String.valueOf(j);
  1404. newGroupId = objIdDto.getId().substring(0, objIdDto.getId().length() - 2) + ss + "0";
  1405. } else {
  1406. newGroupId = objIdDto.getId().substring(0, objIdDto.getId().length() - 1) + newGroupId;
  1407. }
  1408. } else {//如果该批次下没有组,则组id后三位为001
  1409. newGroupId = objectNameDto.getId() + "001";
  1410. }
  1411. BisInspAllNodeDto bisInspAllNodeDto = new BisInspAllNodeDto();
  1412. bisInspAllNodeDto.setId(newGroupId);
  1413. bisInspAllNodeDto.setPnm(groupInfoDto.getName());
  1414. bisInspAllNodeDto.setPid(objectNameDto.getId());
  1415. bisInspAllNodeDto.setSttm(groupInfoDto.getSttm());
  1416. bisInspAllNodeDto.setEntm(groupInfoDto.getEntm());
  1417. bisInspAllNodeDto.setInspType(groupInfoDto.getPtype());
  1418. bisInspAllNodeDto.setOrgId(groupInfoDto.getOrgId());
  1419. bisInspAllNodeDto.setInspYear(groupInfoDto.getInspYear());
  1420. bisInspAllNodeDto.setInspMnth(groupInfoDto.getInspMnth());
  1421. bisInspAllNodeDto.setProvince(province);
  1422. String intm = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
  1423. bisInspAllNodeDto.setIntm(intm);
  1424. bisInspAllNodeDto.setInspTask(groupInfoDto.getInspTask());
  1425. this.supervisionPlanDao.insertNode(bisInspAllNodeDto);//新建组
  1426. return newGroupId;
  1427. }
  1428. }
  1429. /**
  1430. * 根据id修改节点
  1431. *
  1432. * @param bisInspAllDto
  1433. */
  1434. @Override
  1435. public void updateNode(BisInspAllDto bisInspAllDto) {
  1436. this.supervisionPlanDao.updateNode(bisInspAllDto);
  1437. }
  1438. /**
  1439. * 清空督查对象(根据obj_id)
  1440. *
  1441. * @param objType
  1442. * @param objId
  1443. */
  1444. @Override
  1445. public void cleanObjDataByObjId(String objType, String objId) {
  1446. BisInspObjStrategy strategy = factory.createStrategy(objType);
  1447. if (strategy != null) {
  1448. strategy.cleanObjData(objId);
  1449. }
  1450. // 删除问题
  1451. BisInspPblmParam bisInspPblmParam = new BisInspPblmParam();
  1452. bisInspPblmParam.setObjId(objId);
  1453. bisInspPblmParam.setObjType(BisInspEnum.WRWS.getValue());
  1454. bisInspPblmDao.deleteBy(bisInspPblmParam);
  1455. // 删除对象名录表
  1456. BisInspAllObjParam bisInspAllObjParam = new BisInspAllObjParam();
  1457. bisInspAllObjParam.setObjId(objId);
  1458. bisInspAllObjDao.deleteBy(bisInspAllObjParam);
  1459. }
  1460. @Override
  1461. public void cleanObjDataByObjIds(String objType, List<String> objIds) {
  1462. BisInspObjStrategy strategy = factory.createStrategy(objType);
  1463. if (strategy != null) {
  1464. for (String objId : objIds) {
  1465. strategy.cleanObjData(objId);
  1466. // 删除问题
  1467. BisInspPblmParam bisInspPblmParam = new BisInspPblmParam();
  1468. bisInspPblmParam.setObjId(objId);
  1469. bisInspPblmParam.setObjType(BisInspEnum.WRWS.getValue());
  1470. bisInspPblmDao.deleteBy(bisInspPblmParam);
  1471. // 删除对象名录表
  1472. BisInspAllObjParam bisInspAllObjParam = new BisInspAllObjParam();
  1473. bisInspAllObjParam.setObjId(objId);
  1474. bisInspAllObjDao.deleteBy(bisInspAllObjParam);
  1475. }
  1476. }
  1477. }
  1478. /**
  1479. * 清空督查组信息
  1480. *
  1481. * @param groupId
  1482. */
  1483. @Override
  1484. public void cleanGroupInfo(String groupId, String orgId) {
  1485. BisInspAllObjParam bisInspObjParam = new BisInspAllObjParam();
  1486. bisInspObjParam.setId(groupId);
  1487. //根据组id获取objid
  1488. bisInspObjParam.setOrgId(orgId);
  1489. List<BisInspAllObj> bisInspAllObjList = this.bisInspAllObjDao.findList(bisInspObjParam);
  1490. if (bisInspAllObjList.size() > 0) {
  1491. for (BisInspAllObj bisInspAllObj : bisInspAllObjList) {
  1492. //根据objid删除登记表等数据
  1493. cleanObjDataByObjId(String.valueOf(Integer.parseInt(groupId.substring(0, 3))), bisInspAllObj.getObjId());
  1494. }
  1495. }
  1496. BisInspSelAreaParam bisInspSelAreaParam = new BisInspSelAreaParam();
  1497. bisInspSelAreaParam.setId(groupId);
  1498. //删除督查区域
  1499. this.bisInspSelAreaDao.deleteBy(bisInspSelAreaParam);
  1500. BisInspAllRlationParam bisInspAllRlationParam = new BisInspAllRlationParam();
  1501. bisInspAllRlationParam.setId(groupId);
  1502. //删除督查人员
  1503. this.bisInspAllRlationDao.deleteBy(bisInspAllRlationParam);
  1504. //删除组
  1505. this.bisInspAllDao.delete(groupId);
  1506. //删除上一级
  1507. BisInspAllParam bisInspAllParam = new BisInspAllParam();
  1508. bisInspAllParam.setPid(groupId.substring(0, groupId.length() - 3));
  1509. List<BisInspAll> bisInspAlls = this.bisInspAllDao.findList(bisInspAllParam);
  1510. if (bisInspAlls == null || bisInspAlls.size() == 0) {
  1511. this.bisInspAllDao.delete(groupId.substring(0, groupId.length() - 3));
  1512. }
  1513. }
  1514. /**
  1515. * 复用督查组信息
  1516. *
  1517. * @param allGroupInfoDto
  1518. */
  1519. @Override
  1520. public void copyGroupInfo(AllGroupInfoDto allGroupInfoDto) {
  1521. //督查类型
  1522. String province = inspOrgService.getProvince(allGroupInfoDto.getOrgId());
  1523. if (allGroupInfoDto.getPtype().length() == 1) {
  1524. allGroupInfoDto.setPtype("00" + allGroupInfoDto.getPtype());
  1525. }
  1526. if (allGroupInfoDto.getPtype().length() == 2) {
  1527. allGroupInfoDto.setPtype("0" + allGroupInfoDto.getPtype());
  1528. }
  1529. String id = allGroupInfoDto.getPtype() + allGroupInfoDto.getOrgId() + "___";
  1530. //查询是否存在批次
  1531. ObjectNameDto objectNameDto = this.supervisionPlanDao.getNodeBy(id, allGroupInfoDto.getInspYear(), allGroupInfoDto.getInspMnth(), allGroupInfoDto.getOrgId(), province);
  1532. if (objectNameDto == null) {//如果为空,新建批次
  1533. BisInspAllNodeDto bisInspAllNodeDto = new BisInspAllNodeDto();
  1534. String groupId = allGroupInfoDto.getPtype() + allGroupInfoDto.getOrgId() + "0" + allGroupInfoDto.getInspMnth();
  1535. bisInspAllNodeDto.setId(groupId);
  1536. bisInspAllNodeDto.setPnm(allGroupInfoDto.getInspYear() + "年" + allGroupInfoDto.getInspMnth() + "月督查");
  1537. String pid = allGroupInfoDto.getPtype() + allGroupInfoDto.getOrgId();
  1538. bisInspAllNodeDto.setPid(pid);
  1539. bisInspAllNodeDto.setInspYear(allGroupInfoDto.getInspYear());
  1540. bisInspAllNodeDto.setInspMnth(allGroupInfoDto.getInspMnth());
  1541. bisInspAllNodeDto.setSttm(allGroupInfoDto.getSttm());
  1542. bisInspAllNodeDto.setOrgId(allGroupInfoDto.getOrgId());
  1543. bisInspAllNodeDto.setEntm(allGroupInfoDto.getEntm());
  1544. bisInspAllNodeDto.setProvince(province);
  1545. this.supervisionPlanDao.insertNode(bisInspAllNodeDto);//新建批次
  1546. String gid = groupId + "001";
  1547. bisInspAllNodeDto.setId(gid);
  1548. bisInspAllNodeDto.setPnm("复用1组");
  1549. bisInspAllNodeDto.setPid(groupId);
  1550. bisInspAllNodeDto.setProvince(province);
  1551. this.supervisionPlanDao.insertNode(bisInspAllNodeDto);//新建组
  1552. //将人员和区域关联到新建组里
  1553. if (allGroupInfoDto.getPersAllDtoList().size() > 0) {
  1554. for (PersAllDto persAllDto : allGroupInfoDto.getPersAllDtoList()) {
  1555. //添加人员
  1556. this.supervisionPlanDao.insertPers(gid, persAllDto.getGuid(), persAllDto.getPersType(), allGroupInfoDto.getOrgId(), province, String.valueOf(Integer.parseInt(gid)));
  1557. }
  1558. }
  1559. if (allGroupInfoDto.getPersAllAreaDtoList().size() > 0) {
  1560. for (PersAllAreaDto persAllAreaDto : allGroupInfoDto.getPersAllAreaDtoList()) {
  1561. //添加区域
  1562. String uuid = UuidUtil.uuid();
  1563. this.supervisionPlanDao.insertSupArea(uuid, gid, persAllAreaDto.getAdCode(), persAllAreaDto.getAdName(), allGroupInfoDto.getOrgId(), province);
  1564. }
  1565. }
  1566. } else {//如果存在批次
  1567. String newGroupId = "";
  1568. ObjIdDto objIdDto = this.supervisionPlanDao.getMaxGroupId(objectNameDto.getId(), objectNameDto.getOrgId(), province);//获取最新组id
  1569. if (objIdDto.getId() != null) {//如果该批次下有组,则组id加1
  1570. String rtId = objIdDto.getId().substring(objIdDto.getId().length() - 1, objIdDto.getId().length());
  1571. int i = Integer.parseInt(rtId) + 1;
  1572. newGroupId = String.valueOf(i);
  1573. if ("10".equals(newGroupId)) {//新建组id末尾为10的时候进行截取处理
  1574. String sid = objIdDto.getId().substring(objIdDto.getId().length() - 2, objIdDto.getId().length() - 1);
  1575. int j = Integer.parseInt(sid) + 1;
  1576. String ss = String.valueOf(j);
  1577. newGroupId = objIdDto.getId().substring(0, objIdDto.getId().length() - 2) + ss + "0";
  1578. } else {
  1579. newGroupId = objIdDto.getId().substring(0, objIdDto.getId().length() - 1) + newGroupId;
  1580. }
  1581. } else {//如果该批次下没有组,则组id后三位为001
  1582. newGroupId = objectNameDto.getId() + "001";
  1583. }
  1584. BisInspAllNodeDto bisInspAllNodeDto = new BisInspAllNodeDto();
  1585. bisInspAllNodeDto.setId(newGroupId);
  1586. bisInspAllNodeDto.setPnm("复用" + newGroupId.substring(newGroupId.length() - 1, newGroupId.length()) + "组");
  1587. bisInspAllNodeDto.setPid(objectNameDto.getId());
  1588. bisInspAllNodeDto.setOrgId(objectNameDto.getOrgId());
  1589. bisInspAllNodeDto.setInspYear(allGroupInfoDto.getInspYear());
  1590. bisInspAllNodeDto.setInspMnth(allGroupInfoDto.getInspMnth());
  1591. bisInspAllNodeDto.setSttm(allGroupInfoDto.getSttm());
  1592. bisInspAllNodeDto.setEntm(allGroupInfoDto.getEntm());
  1593. this.supervisionPlanDao.insertNode(bisInspAllNodeDto);//新建组
  1594. if (allGroupInfoDto.getPersAllDtoList().size() > 0) {
  1595. for (PersAllDto persAllDto : allGroupInfoDto.getPersAllDtoList()) {
  1596. //添加人员
  1597. this.supervisionPlanDao.insertPers(newGroupId, persAllDto.getGuid(), persAllDto.getPersType(), allGroupInfoDto.getOrgId(), province, String.valueOf(Integer.parseInt(newGroupId.substring(0, 3))));
  1598. }
  1599. }
  1600. if (allGroupInfoDto.getPersAllAreaDtoList().size() > 0) {
  1601. for (PersAllAreaDto persAllAreaDto : allGroupInfoDto.getPersAllAreaDtoList()) {
  1602. //添加区域
  1603. String uuid = UuidUtil.uuid();
  1604. this.supervisionPlanDao.insertSupArea(uuid, newGroupId, persAllAreaDto.getAdCode(), persAllAreaDto.getAdName(), objectNameDto.getOrgId(), province);
  1605. }
  1606. }
  1607. }
  1608. }
  1609. @Override
  1610. public List<PersAllAreaDto> getPersAllAreaDtoList(String id, String orgId) {
  1611. String province = inspOrgService.getProvince(orgId);
  1612. List<PersAllAreaDto> persAllAreaDtoList = this.supervisionPlanDao.getPersAllAreaDtoList(id, orgId, province);
  1613. return persAllAreaDtoList;
  1614. }
  1615. @Override
  1616. public Map<String, Object> importExcel(MultipartFile file, String persId, String orgId) {
  1617. Map<String, Object> map = new HashedMap();
  1618. int success = 0;
  1619. int fail = 0;
  1620. Workbook wb = null;
  1621. InputStream fis = null;
  1622. List<Row> rowList = new ArrayList<Row>();
  1623. try {
  1624. fis = file.getInputStream();
  1625. if (file.getOriginalFilename().endsWith(XLS)) {
  1626. wb = new HSSFWorkbook(fis);
  1627. } else {
  1628. wb = new XSSFWorkbook(fis);
  1629. }
  1630. Sheet sheet = wb.getSheetAt(0);
  1631. Row row = null;
  1632. int lastRowNum = sheet.getPhysicalNumberOfRows();
  1633. for (int i = sheet.getFirstRowNum(); i < lastRowNum; i++) {
  1634. row = sheet.getRow(i);
  1635. if (row != null) {
  1636. rowList.add(row);
  1637. }
  1638. }
  1639. } catch (IOException e) {
  1640. e.printStackTrace();
  1641. } finally {
  1642. if (wb != null) {
  1643. try {
  1644. wb.close();
  1645. } catch (IOException e) {
  1646. e.printStackTrace();
  1647. }
  1648. }
  1649. if (fis != null) {
  1650. try {
  1651. fis.close();
  1652. } catch (IOException e) {
  1653. e.printStackTrace();
  1654. }
  1655. }
  1656. }
  1657. List<GroupInfoDto> list = new ArrayList<>();
  1658. if (rowList.size() > 2) {
  1659. Row row = null;
  1660. for (int i = 2; i < rowList.size(); i++) {
  1661. row = rowList.get(i);
  1662. GroupInfoDto groupInfoDto = new GroupInfoDto();
  1663. for (int j = row.getFirstCellNum(); j < row.getPhysicalNumberOfCells(); j++) {
  1664. Cell cell = row.getCell(j);
  1665. if (cell == null) {
  1666. continue;
  1667. }
  1668. if (j == 1) {
  1669. groupInfoDto.setPtype(fomateType(cleanFomate(String.valueOf(cell))));
  1670. }
  1671. if (j == 2) {
  1672. groupInfoDto.setName(cleanFomate(String.valueOf(cell)));
  1673. }
  1674. if (j == 3) {
  1675. Double db = cell.getNumericCellValue();
  1676. if (db != null) {
  1677. groupInfoDto.setInspYear(String.valueOf(db.intValue()));
  1678. }
  1679. }
  1680. if (j == 4) {
  1681. Double db = cell.getNumericCellValue();
  1682. if (db != null) {
  1683. groupInfoDto.setInspMnth(String.valueOf(db.intValue()));
  1684. }
  1685. }
  1686. if (j == 5) {
  1687. String areaNames = cleanFomate(String.valueOf(cell));
  1688. List<PersAllAreaDto> persAllAreaDtoList = convertAreaNamesToDto(map, fail, areaNames);
  1689. groupInfoDto.setPersAllAreaDtoList(persAllAreaDtoList);
  1690. }
  1691. if (j == 6) {
  1692. String objNames = cleanFomate(String.valueOf(cell));
  1693. List<PersAllObjDto> persAllObjDtoLis = convertObjNamesToDto(map, fail, objNames, groupInfoDto.getPtype());
  1694. groupInfoDto.setPersAllObjDtoList(persAllObjDtoLis);
  1695. }
  1696. if (j == 7) {
  1697. String persNames = cleanFomate(String.valueOf(cell));
  1698. List<PersAllDto> persList = convertPersIdsToDto(map, fail, persNames, "1");
  1699. groupInfoDto.setPersList(persList);
  1700. }
  1701. if (j == 8) {
  1702. String persNames = cleanFomate(String.valueOf(cell));
  1703. List<PersAllDto> persList = convertPersIdsToDto(map, fail, persNames, "2");
  1704. groupInfoDto.setPersList(persList);
  1705. }
  1706. if (j == 9) {
  1707. String persNames = cleanFomate(String.valueOf(cell));
  1708. List<PersAllDto> persList = convertPersIdsToDto(map, fail, persNames, "3");
  1709. groupInfoDto.setPersList(persList);
  1710. }
  1711. if (j == 10) {
  1712. String persNames = cleanFomate(String.valueOf(cell));
  1713. List<PersAllDto> persList = convertPersIdsToDto(map, fail, persNames, "4");
  1714. groupInfoDto.setPersList(persList);
  1715. }
  1716. if (j == 11) {
  1717. groupInfoDto.setSttm(cleanFomate(String.valueOf(cell)).replace("/", "-"));
  1718. }
  1719. if (j == 12) {
  1720. groupInfoDto.setEntm(cleanFomate(String.valueOf(cell)).replace("/", "-"));
  1721. }
  1722. }
  1723. if (StringUtils.isNotBlank(groupInfoDto.getPtype())) {
  1724. list.add(groupInfoDto);
  1725. }
  1726. }
  1727. }
  1728. if (list.size() > 0) {
  1729. for (GroupInfoDto groupInfoDto : list) {
  1730. try {
  1731. groupInfoDto.setOrgId(orgId);
  1732. String groupId = insertGroupInfo(groupInfoDto);
  1733. if (StringUtils.isBlank(groupId)) {
  1734. fail++;
  1735. if (map.get("false") == null) {
  1736. List<String> message = new ArrayList<>();
  1737. message.add(groupInfoDto.getName() + "添加失败");
  1738. map.put("false", message);
  1739. } else {
  1740. ((List) map.get("false")).add(groupInfoDto.getName() + "添加失败");
  1741. }
  1742. }
  1743. PersAllInfoDto persAllInfoDto = new PersAllInfoDto();
  1744. persAllInfoDto.setPersid(persId);
  1745. persAllInfoDto.setId(groupId);
  1746. persAllInfoDto.setPersAllAreaDtoList(groupInfoDto.getPersAllAreaDtoList() == null ? new ArrayList<>() : groupInfoDto.getPersAllAreaDtoList());
  1747. persAllInfoDto.setPersAllDtoList(groupInfoDto.getPersList() == null ? new ArrayList<>() : groupInfoDto.getPersList());
  1748. persAllInfoDto.setPersAllObjDtoList(groupInfoDto.getPersAllObjDtoList() == null ? new ArrayList<>() : groupInfoDto.getPersAllObjDtoList());
  1749. insertSupervisionObj(persAllInfoDto);
  1750. success++;
  1751. } catch (Exception e) {
  1752. fail++;
  1753. if (map.get("false") == null) {
  1754. List<String> message = new ArrayList<>();
  1755. message.add(groupInfoDto.getName() + "添加失败");
  1756. map.put("false", message);
  1757. } else {
  1758. ((List) map.get("false")).add(groupInfoDto.getName() + "添加失败");
  1759. }
  1760. }
  1761. }
  1762. }
  1763. map.put("success", success);
  1764. map.put("fail", fail);
  1765. return map;
  1766. }
  1767. @Override
  1768. public Map<String, String> getYearMonth(String id) {
  1769. return this.supervisionPlanDao.getYearMonth(id);
  1770. }
  1771. private List<PersAllObjDto> convertObjNamesToDto(Map<String, Object> map, int fail, String objNames, String ptype) {
  1772. List<PersAllObjDto> list = new ArrayList<>();
  1773. if (StringUtils.isBlank(objNames)) {
  1774. return list;
  1775. }
  1776. if (objNames.contains(",")) {
  1777. for (String objName : objNames.split(",")) {
  1778. getObjDtoByName(objName, list, map, fail, ptype);
  1779. }
  1780. } else {
  1781. getObjDtoByName(objNames, list, map, fail, ptype);
  1782. }
  1783. return list;
  1784. }
  1785. private void getObjDtoByName(String objName, List<PersAllObjDto> list, Map<String, Object> map, int fail, String ptype) {
  1786. if (BisInspEnum.REVER.getValue().equals(ptype) || BisInspEnum.RSFCO.getValue().endsWith(ptype)) {
  1787. AttRsBaseParam baseParam = new AttRsBaseParam();
  1788. baseParam.setRsName(objName);
  1789. List<AttRsBase> baseList = attRsBaseDao.findList(baseParam);
  1790. if (baseList.size() == 1) {
  1791. PersAllObjDto objDto = new PersAllObjDto();
  1792. objDto.setCode(baseList.get(0).getRsCode());
  1793. objDto.setName(baseList.get(0).getRsName());
  1794. objDto.setPtype(ptype);
  1795. list.add(objDto);
  1796. } else if (baseList.size() == 0) {
  1797. setFailMessage(map, fail, objName, "水库不存在");
  1798. } else if (baseList.size() > 1) {
  1799. setFailMessage(map, fail, objName, "水库名称重复");
  1800. }
  1801. } else if (BisInspEnum.VILL.getValue().equals(ptype) || BisInspEnum.CITY.getValue().equals(ptype) || BisInspEnum.SVWT.getValue().equals(ptype)
  1802. || BisInspEnum.VILL2020.getValue().endsWith(ptype) || BisInspEnum.MFDP.getValue().endsWith(ptype) || BisInspEnum.IRR.getValue().endsWith(ptype)) {
  1803. AttAdXBaseParam baseParam = new AttAdXBaseParam();
  1804. baseParam.setAdName(objName);
  1805. baseParam.setAdGrad("3");
  1806. List<AttAdXBase> baseList = attAdXBaseDao.findList(baseParam);
  1807. if (baseList.size() == 1) {
  1808. PersAllObjDto objDto = new PersAllObjDto();
  1809. objDto.setPtype(ptype);
  1810. objDto.setCode(baseList.get(0).getAdCode());
  1811. objDto.setName(baseList.get(0).getAdName());
  1812. list.add(objDto);
  1813. } else if (baseList.size() == 0) {
  1814. setFailMessage(map, fail, objName, "地区不存在");
  1815. } else if (baseList.size() > 1) {
  1816. setFailMessage(map, fail, objName, "地区重复");
  1817. }
  1818. } else if (BisInspEnum.TRACK.getValue().equals(ptype)) {
  1819. BisInspWtdstParam param = new BisInspWtdstParam();
  1820. param.setWtdstNm(objName);
  1821. List<BisInspWtdst> baseList = bisInspWtdstDao.findList(param);
  1822. if (baseList.size() == 1) {
  1823. PersAllObjDto objDto = new PersAllObjDto();
  1824. objDto.setName(baseList.get(0).getWtdstNm());
  1825. objDto.setCode(baseList.get(0).getWtdstId());
  1826. objDto.setPtype(ptype);
  1827. list.add(objDto);
  1828. } else if (baseList.size() == 0) {
  1829. setFailMessage(map, fail, objName, "工程不存在");
  1830. } else if (baseList.size() > 1) {
  1831. setFailMessage(map, fail, objName, "工程重复");
  1832. }
  1833. } else if (BisInspEnum.EMPWT.getValue().equals(ptype) || BisInspEnum.EMPWTRUN.getValue().equals(ptype)) {
  1834. AttEmpwtprjBaseParam param = new AttEmpwtprjBaseParam();
  1835. param.setNm(objName);
  1836. List<AttEmpwtprjBase> baseList = attEmpwtprjBaseDao.findList(param);
  1837. if (baseList.size() == 1) {
  1838. PersAllObjDto objDto = new PersAllObjDto();
  1839. objDto.setPtype(ptype);
  1840. objDto.setCode(baseList.get(0).getId());
  1841. objDto.setName(baseList.get(0).getNm());
  1842. list.add(objDto);
  1843. } else if (baseList.size() == 0) {
  1844. setFailMessage(map, fail, objName, "工程不存在");
  1845. } else if (baseList.size() > 1) {
  1846. setFailMessage(map, fail, objName, "工程重复");
  1847. }
  1848. } else if (BisInspEnum.GRW.getValue().equals(ptype)) {
  1849. AttGrwBaseParam param = new AttGrwBaseParam();
  1850. param.setStnm(objName);
  1851. List<AttGrwBase> baseList = grwBaseDao.findList(param);
  1852. if (baseList.size() == 1) {
  1853. PersAllObjDto objDto = new PersAllObjDto();
  1854. objDto.setPtype(ptype);
  1855. objDto.setName(baseList.get(0).getStnm());
  1856. objDto.setCode(baseList.get(0).getStcd());
  1857. list.add(objDto);
  1858. } else if (baseList.size() == 0) {
  1859. setFailMessage(map, fail, objName, "地下水不存在");
  1860. } else if (baseList.size() > 1) {
  1861. setFailMessage(map, fail, objName, "地下水重复");
  1862. }
  1863. } else if (BisInspEnum.WAGA.getValue().equals(ptype)) {
  1864. AttWagaBaseParam param = new AttWagaBaseParam();
  1865. param.setGateName(objName);
  1866. List<AttWagaBase> baseList = attWagaBaseDao.findList(param);
  1867. if (baseList.size() == 1) {
  1868. PersAllObjDto objDto = new PersAllObjDto();
  1869. objDto.setPtype(ptype);
  1870. objDto.setCode(baseList.get(0).getAdCode());
  1871. objDto.setName(baseList.get(0).getGateName());
  1872. list.add(objDto);
  1873. } else if (baseList.size() == 0) {
  1874. setFailMessage(map, fail, objName, "水闸不存在");
  1875. } else if (baseList.size() > 1) {
  1876. setFailMessage(map, fail, objName, "水闸重复");
  1877. }
  1878. } else if (BisInspEnum.PAWP.getValue().equals(ptype)) {
  1879. TacAttPawpBaseParam param = new TacAttPawpBaseParam();
  1880. param.setName(objName);
  1881. List<TacAttPawpBase> baseList = tacAttPawpBaseDao.findList(param);
  1882. if (baseList.size() == 1) {
  1883. PersAllObjDto objDto = new PersAllObjDto();
  1884. objDto.setPtype(ptype);
  1885. objDto.setCode(baseList.get(0).getId());
  1886. objDto.setName(baseList.get(0).getName());
  1887. list.add(objDto);
  1888. } else if (baseList.size() == 0) {
  1889. setFailMessage(map, fail, objName, "工程不存在");
  1890. } else if (baseList.size() > 1) {
  1891. setFailMessage(map, fail, objName, "工程重复");
  1892. }
  1893. } else if (BisInspEnum.FSC.getValue().equals(ptype)) {
  1894. AttFscBaseParam param = new AttFscBaseParam();
  1895. param.setName(objName);
  1896. List<AttFscBase> baseList = attFscBaseDao.findList(param);
  1897. if (baseList.size() == 1) {
  1898. PersAllObjDto objDto = new PersAllObjDto();
  1899. objDto.setPtype(ptype);
  1900. objDto.setCode(baseList.get(0).getId());
  1901. objDto.setName(baseList.get(0).getName());
  1902. list.add(objDto);
  1903. } else if (baseList.size() == 0) {
  1904. setFailMessage(map, fail, objName, "工程不存在");
  1905. } else if (baseList.size() > 1) {
  1906. setFailMessage(map, fail, objName, "工程重复");
  1907. }
  1908. } else if (BisInspEnum.OTHER.getValue().equals(ptype)) {
  1909. AttOtherBaseParam param = new AttOtherBaseParam();
  1910. param.setName(objName);
  1911. List<AttOtherBase> baseList = attOtherBaseDao.findList(param);
  1912. if (baseList.size() == 1) {
  1913. PersAllObjDto objDto = new PersAllObjDto();
  1914. objDto.setPtype(ptype);
  1915. objDto.setCode(baseList.get(0).getId());
  1916. objDto.setName(baseList.get(0).getName());
  1917. list.add(objDto);
  1918. } else if (baseList.size() == 0) {
  1919. setFailMessage(map, fail, objName, "工程不存在");
  1920. } else if (baseList.size() > 1) {
  1921. setFailMessage(map, fail, objName, "工程重复");
  1922. }
  1923. } else if (BisInspEnum.SD.getValue().equals(ptype)) {
  1924. AttSdBaseParam param = new AttSdBaseParam();
  1925. param.setSdName(objName);
  1926. List<AttSdBase> baseList = sdBaseDao.findList(param);
  1927. if (baseList.size() == 1) {
  1928. PersAllObjDto objDto = new PersAllObjDto();
  1929. objDto.setPtype(ptype);
  1930. objDto.setCode(baseList.get(0).getId());
  1931. objDto.setName(baseList.get(0).getSdName());
  1932. list.add(objDto);
  1933. } else if (baseList.size() == 0) {
  1934. setFailMessage(map, fail, objName, "淤地坝不存在");
  1935. } else if (baseList.size() > 1) {
  1936. setFailMessage(map, fail, objName, "淤地坝重复");
  1937. }
  1938. } else if (BisInspEnum.WIU.getValue().equals(ptype)) {
  1939. AttWiuBaseParam param = new AttWiuBaseParam();
  1940. param.setName(objName);
  1941. List<AttWiuBase> baseList = wiuBaseDao.findList(param);
  1942. if (baseList.size() == 1) {
  1943. PersAllObjDto objDto = new PersAllObjDto();
  1944. objDto.setPtype(ptype);
  1945. objDto.setCode(baseList.get(0).getId());
  1946. objDto.setName(baseList.get(0).getName());
  1947. list.add(objDto);
  1948. } else if (baseList.size() == 0) {
  1949. setFailMessage(map, fail, objName, "取水单位不存在");
  1950. } else if (baseList.size() > 1) {
  1951. setFailMessage(map, fail, objName, "取水单位重复");
  1952. }
  1953. } else if (BisInspEnum.SWHS.getValue().equals(ptype)) {
  1954. AttSwhsBaseParam param = new AttSwhsBaseParam();
  1955. param.setSwhsName(objName);
  1956. List<AttSwhsBase> baseList = swhsBaseDao.findList(param);
  1957. if (baseList.size() == 1) {
  1958. PersAllObjDto objDto = new PersAllObjDto();
  1959. objDto.setPtype(ptype);
  1960. objDto.setCode(baseList.get(0).getId());
  1961. objDto.setName(baseList.get(0).getSwhsName());
  1962. list.add(objDto);
  1963. } else if (baseList.size() == 0) {
  1964. setFailMessage(map, fail, objName, "水源地不存在");
  1965. } else if (baseList.size() > 1) {
  1966. setFailMessage(map, fail, objName, "水源地重复");
  1967. }
  1968. } else if (BisInspEnum.WUNT.getValue().equals(ptype)) {
  1969. AttWuntBaseParam param = new AttWuntBaseParam();
  1970. param.setUtName(objName);
  1971. List<AttWuntBase> baseList = wuntBaseDao.findList(param);
  1972. if (baseList.size() == 1) {
  1973. PersAllObjDto objDto = new PersAllObjDto();
  1974. objDto.setPtype(ptype);
  1975. objDto.setCode(baseList.get(0).getId());
  1976. objDto.setName(baseList.get(0).getUtName());
  1977. list.add(objDto);
  1978. } else if (baseList.size() == 0) {
  1979. setFailMessage(map, fail, objName, "用水单位不存在");
  1980. } else if (baseList.size() > 1) {
  1981. setFailMessage(map, fail, objName, "用水单位重复");
  1982. }
  1983. } else if (BisInspEnum.PRD.getValue().equals(ptype)) {
  1984. AttPrdCstrProjBaseParam param = new AttPrdCstrProjBaseParam();
  1985. param.setName(objName);
  1986. List<AttPrdCstrProjBase> baseList = attPrdCstrProjBaseDao.findList(param);
  1987. if (baseList.size() == 1) {
  1988. PersAllObjDto objDto = new PersAllObjDto();
  1989. objDto.setPtype(ptype);
  1990. objDto.setCode(baseList.get(0).getId());
  1991. objDto.setName(baseList.get(0).getName());
  1992. list.add(objDto);
  1993. } else if (baseList.size() == 0) {
  1994. setFailMessage(map, fail, objName, "水保工作核查不存在");
  1995. } else if (baseList.size() > 1) {
  1996. setFailMessage(map, fail, objName, "水保工作核查重复");
  1997. }
  1998. } else if (BisInspEnum.JSFL.getValue().equals(ptype)) {
  1999. AttJskejianFlkdisBaseParam param = new AttJskejianFlkdisBaseParam();
  2000. param.setName(objName);
  2001. List<AttJskejianFlkdisBase> baseList = jskejianFlkdisBaseDao.findList(param);
  2002. if (baseList.size() == 1) {
  2003. PersAllObjDto objDto = new PersAllObjDto();
  2004. objDto.setPtype(ptype);
  2005. objDto.setCode(baseList.get(0).getId());
  2006. objDto.setName(baseList.get(0).getName());
  2007. list.add(objDto);
  2008. } else if (baseList.size() == 0) {
  2009. setFailMessage(map, fail, objName, "河湖四乱核查不存在");
  2010. } else if (baseList.size() > 1) {
  2011. setFailMessage(map, fail, objName, "河湖四乱核查重复");
  2012. }
  2013. } else if (BisInspEnum.JSWA.getValue().equals(ptype)) {
  2014. AttJskejianWaterBaseParam param = new AttJskejianWaterBaseParam();
  2015. param.setName(objName);
  2016. List<AttJskejianWaterBase> baseList = jskejianWaterBaseDao.findList(param);
  2017. if (baseList.size() == 1) {
  2018. PersAllObjDto objDto = new PersAllObjDto();
  2019. objDto.setPtype(ptype);
  2020. objDto.setCode(baseList.get(0).getId());
  2021. objDto.setName(baseList.get(0).getName());
  2022. list.add(objDto);
  2023. } else if (baseList.size() == 0) {
  2024. setFailMessage(map, fail, objName, "非法采砂核查不存在");
  2025. } else if (baseList.size() > 1) {
  2026. setFailMessage(map, fail, objName, "非法采砂核查重复");
  2027. }
  2028. }
  2029. }
  2030. private void setFailMessage(Map<String, Object> map, int fail, String objName, String message) {
  2031. fail++;
  2032. if (map.get("false") == null) {
  2033. List<String> failList = new ArrayList<>();
  2034. failList.add(objName + message);
  2035. map.put("false", failList);
  2036. } else {
  2037. ((List) map.get("false")).add(objName + message);
  2038. }
  2039. }
  2040. private List<PersAllAreaDto> convertAreaNamesToDto(Map<String, Object> map, int fail, String areaNames) {
  2041. List<PersAllAreaDto> list = new ArrayList<>();
  2042. if (StringUtils.isBlank(areaNames)) {
  2043. return list;
  2044. }
  2045. if (areaNames.contains(SplitValue.DOUHAO_SPLIT)) {
  2046. for (String areaName : areaNames.split(SplitValue.DOUHAO_SPLIT)) {
  2047. AttAdXBaseParam param = new AttAdXBaseParam();
  2048. param.setAdName(areaName);
  2049. param.setAdFcode("000000000000");
  2050. List<AttAdXBase> adXBases = attAdXBaseDao.findList(param);
  2051. if (adXBases.size() == 1) {
  2052. PersAllAreaDto persAllAreaDto = new PersAllAreaDto();
  2053. persAllAreaDto.setAdCode(adXBases.get(0).getAdCode());
  2054. persAllAreaDto.setAdName(adXBases.get(0).getAdName());
  2055. list.add(persAllAreaDto);
  2056. } else if (adXBases.size() == 0) {
  2057. fail++;
  2058. if (map.get("false") == null) {
  2059. List<String> failList = new ArrayList<>();
  2060. failList.add(areaName + "地区查找失败");
  2061. map.put("false", failList);
  2062. } else {
  2063. ((List) map.get("false")).add(areaName + "地区查找失败");
  2064. }
  2065. } else if (adXBases.size() > 1) {
  2066. fail++;
  2067. if (map.get("false") == null) {
  2068. List<String> failList = new ArrayList<>();
  2069. failList.add(areaName + "地区重复");
  2070. map.put("false", failList);
  2071. } else {
  2072. ((List) map.get("false")).add(areaName + "地区重复");
  2073. }
  2074. }
  2075. }
  2076. } else {
  2077. AttAdXBaseParam param = new AttAdXBaseParam();
  2078. param.setAdName(areaNames);
  2079. param.setAdFcode("000000000000");
  2080. List<AttAdXBase> adXBases = attAdXBaseDao.findList(param);
  2081. if (adXBases.size() == 1) {
  2082. PersAllAreaDto persAllAreaDto = new PersAllAreaDto();
  2083. persAllAreaDto.setAdCode(adXBases.get(0).getAdCode());
  2084. persAllAreaDto.setAdName(adXBases.get(0).getAdName());
  2085. list.add(persAllAreaDto);
  2086. } else if (adXBases.size() == 0) {
  2087. fail++;
  2088. if (map.get("false") == null) {
  2089. List<String> failList = new ArrayList<>();
  2090. failList.add(areaNames + "地区查找失败");
  2091. map.put("false", failList);
  2092. } else {
  2093. ((List) map.get("false")).add(areaNames + "地区查找失败");
  2094. }
  2095. } else if (adXBases.size() > 1) {
  2096. fail++;
  2097. if (map.get("false") == null) {
  2098. List<String> failList = new ArrayList<>();
  2099. failList.add(areaNames + "地区重复");
  2100. map.put("false", failList);
  2101. } else {
  2102. ((List) map.get("false")).add(areaNames + "地区重复");
  2103. }
  2104. }
  2105. }
  2106. return list;
  2107. }
  2108. private List<PersAllDto> convertPersIdsToDto(Map<String, Object> map, int fail, String persNames, String persType) {
  2109. List<PersAllDto> list = new ArrayList<>();
  2110. if (StringUtils.isBlank(persNames)) {
  2111. return list;
  2112. }
  2113. if (persNames.contains(SplitValue.DOUHAO_SPLIT)) {
  2114. for (String persName : persNames.split(SplitValue.DOUHAO_SPLIT)) {
  2115. BisInspAllRlationPersParam persParam = new BisInspAllRlationPersParam();
  2116. if (persName.contains(SplitValue.HENG_SPLIT)) {
  2117. persParam.setPersName(persName.split(SplitValue.HENG_SPLIT)[0]);
  2118. persParam.setMobilenumb(persName.split(SplitValue.HENG_SPLIT)[1]);
  2119. } else {
  2120. persParam.setPersName(persName);
  2121. }
  2122. List<BisInspAllRlationPers> pers = bisInspAllRlationPersDao.findList(persParam);
  2123. if (pers.size() == 1) {
  2124. PersAllDto dto = new PersAllDto();
  2125. dto.setGuid(pers.get(0).getGuid());
  2126. dto.setPersName(pers.get(0).getPersName());
  2127. dto.setPersType(persType);
  2128. list.add(dto);
  2129. } else if (pers.size() == 0) {
  2130. fail++;
  2131. if (map.get("false") == null) {
  2132. List<String> failList = new ArrayList<>();
  2133. failList.add(persName + "人员查找失败");
  2134. map.put("false", failList);
  2135. } else {
  2136. ((List) map.get("false")).add(persName + "人员查找失败");
  2137. }
  2138. } else if (pers.size() > 1) {
  2139. fail++;
  2140. if (map.get("false") == null) {
  2141. List<String> failList = new ArrayList<>();
  2142. failList.add(persName + "姓名重复,无法确定唯一");
  2143. map.put("false", failList);
  2144. } else {
  2145. ((List) map.get("false")).add(persName + "姓名重复,无法确定唯一");
  2146. }
  2147. }
  2148. }
  2149. } else {
  2150. BisInspAllRlationPersParam persParam = new BisInspAllRlationPersParam();
  2151. persParam.setPersName(persNames);
  2152. List<BisInspAllRlationPers> pers = bisInspAllRlationPersDao.findList(persParam);
  2153. if (pers.size() == 1) {
  2154. PersAllDto dto = new PersAllDto();
  2155. dto.setGuid(pers.get(0).getGuid());
  2156. dto.setPersName(pers.get(0).getPersName());
  2157. dto.setPersType(persType);
  2158. list.add(dto);
  2159. } else if (pers.size() == 0) {
  2160. fail++;
  2161. if (map.get("false") == null) {
  2162. List<String> failList = new ArrayList<>();
  2163. failList.add(persNames + "查找失败");
  2164. map.put("false", failList);
  2165. } else {
  2166. ((List) map.get("false")).add(persNames + "查找失败");
  2167. }
  2168. } else if (pers.size() > 1) {
  2169. fail++;
  2170. if (map.get("false") == null) {
  2171. List<String> failList = new ArrayList<>();
  2172. failList.add(persNames + "姓名重复,无法确定唯一");
  2173. map.put("false", failList);
  2174. } else {
  2175. ((List) map.get("false")).add(persNames + "姓名重复,无法确定唯一");
  2176. }
  2177. }
  2178. }
  2179. return list;
  2180. }
  2181. private String fomateType(String field) {
  2182. if ("小水库".equals(field)) {
  2183. return "1";
  2184. }
  2185. if ("人饮".equals(field)) {
  2186. return "2";
  2187. }
  2188. if ("水毁".equals(field)) {
  2189. return "3";
  2190. }
  2191. if ("工程建设".equals(field)) {
  2192. return "4";
  2193. }
  2194. if ("地下水".equals(field)) {
  2195. return "5";
  2196. }
  2197. if ("水闸".equals(field)) {
  2198. return "6";
  2199. }
  2200. if ("工程运行".equals(field)) {
  2201. return "7";
  2202. }
  2203. if ("特定飞检".equals(field)) {
  2204. return "9";
  2205. }
  2206. if ("其他检查".equals(field)) {
  2207. return "10";
  2208. }
  2209. if ("淤地坝".equals(field)) {
  2210. return "11";
  2211. }
  2212. if ("取水口".equals(field)) {
  2213. return "12";
  2214. }
  2215. if ("水源地".equals(field)) {
  2216. return "13";
  2217. }
  2218. if ("分水及管控".equals(field)) {
  2219. return "14";
  2220. }
  2221. if ("节水管理".equals(field)) {
  2222. return "15";
  2223. }
  2224. if ("用水单位".equals(field)) {
  2225. return "16";
  2226. }
  2227. return "";
  2228. }
  2229. private String cleanFomate(String field) {
  2230. if (StringUtils.isBlank(field)) {
  2231. return "";
  2232. }
  2233. String result = field;
  2234. result = result.replace(" ", "");
  2235. result = result.replace(",", ",");
  2236. return result;
  2237. }
  2238. @Override
  2239. public void insertByYearMonth(BisInspYearAllDto bisInspYearAllDto) {
  2240. //获取督查类型及机构信息,增加下级节点 注意:关联年度任务ID
  2241. //插入批次
  2242. BisInspAll bisInspAll = new BisInspAll();
  2243. //根据父id查询最大的子id
  2244. String setId = bisInspYearAllDto.getPtype() + bisInspYearAllDto.getOrgId() + "001";
  2245. BisInspAll max = bisInspAllDao.getMaxOne(bisInspYearAllDto.getPtype() + bisInspYearAllDto.getOrgId(), setId);
  2246. if (null != max) {
  2247. Long upOne = NumberUtils.toLong(max.getId());
  2248. String newId = String.format("%0" + max.getId().length() + "d", (upOne + 1));
  2249. bisInspAll.setId(newId);
  2250. } else {
  2251. bisInspAll.setId(setId);
  2252. }
  2253. bisInspAll.setPid(bisInspYearAllDto.getPtype() + bisInspYearAllDto.getOrgId());
  2254. bisInspAll.setSttm(bisInspYearAllDto.getStTm());
  2255. bisInspAll.setEntm(bisInspYearAllDto.getEnTm());
  2256. bisInspAll.setPnm(bisInspYearAllDto.getPname());
  2257. bisInspAll.setProvince(bisInspYearAllDto.getProvince());
  2258. bisInspAll.setOrgId(bisInspYearAllDto.getOrgId());
  2259. //根据批次id获取组id及节点信息,并设置时间 注意:关联年度任务ID
  2260. String childPId = bisInspAll.getId();
  2261. String childId = childPId + "001";
  2262. //插入组
  2263. //组下插入人员
  2264. //组下插入行政区
  2265. //组下插入督查对象
  2266. }
  2267. }