| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002 |
- package cn.com.goldenwater.dcproj.service.impl.importex;
- import cn.com.goldenwater.core.service.AbstractCrudService;
- import cn.com.goldenwater.dcproj.constValue.ImpPblmEnum;
- import cn.com.goldenwater.dcproj.dao.*;
- import cn.com.goldenwater.dcproj.dto.BisInspRgstrDto;
- import cn.com.goldenwater.dcproj.dto.BisInspRsvrRgstrPcDto;
- import cn.com.goldenwater.dcproj.dto.BisInspSdRgstrDto;
- import cn.com.goldenwater.dcproj.dto.PersListDto;
- import cn.com.goldenwater.dcproj.model.*;
- import cn.com.goldenwater.dcproj.param.*;
- import cn.com.goldenwater.dcproj.service.BisInspAllRlationPersService;
- import cn.com.goldenwater.dcproj.service.BisInspPblmService;
- import cn.com.goldenwater.dcproj.service.GwComFileService;
- import cn.com.goldenwater.dcproj.service.ImpPblmService;
- import cn.com.goldenwater.dcproj.util.PtypeConversionUtil;
- import cn.com.goldenwater.dcproj.utils.InspUtils;
- import cn.com.goldenwater.dcproj.utils.ZipUtil;
- import cn.com.goldenwater.dcproj.utils.export.FieldFormat;
- import cn.com.goldenwater.dcproj.utils.impexcel.ExpAndImpUtil;
- import cn.com.goldenwater.dcproj.utils.impexcel.ExpUtil;
- import cn.com.goldenwater.dcproj.utils.impexcel.ImpUtil;
- import cn.com.goldenwater.dcproj.utils.impexcel.ImportExcel;
- import cn.com.goldenwater.dcproj.utils.impexcel.format.PblmFieldFormatExp;
- import cn.com.goldenwater.dcproj.utils.impexcel.format.PblmFieldFormatImp;
- import cn.com.goldenwater.id.util.UuidUtil;
- import com.alibaba.fastjson.JSONObject;
- import com.github.pagehelper.PageInfo;
- import org.apache.commons.collections.MapUtils;
- import org.apache.commons.io.FileUtils;
- import org.apache.commons.lang3.ArrayUtils;
- import org.apache.commons.lang3.StringUtils;
- import org.apache.poi.ss.usermodel.Workbook;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.data.redis.core.RedisTemplate;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import org.springframework.web.multipart.MultipartFile;
- import javax.servlet.http.HttpServletResponse;
- import java.io.ByteArrayOutputStream;
- import java.io.File;
- import java.io.IOException;
- import java.util.*;
- import java.util.stream.Collectors;
- import static cn.com.goldenwater.dcproj.constValue.ImpPblmEnum.*;
- import static cn.com.goldenwater.dcproj.utils.impexcel.ImpUtil.*;
- import static cn.com.goldenwater.dcproj.utils.impexcel.ImportExcel.convertMapToBean;
- import static cn.com.goldenwater.dcproj.utils.impexcel.field.ExcelFieldLists.pblmFieldArrays;
- /**
- * <p>
- * 水库问题导入Service实现类,业务逻辑主要处理部分
- * 1)rollbackFor属性 只要有异常就会回滚
- * </p>
- *
- * @author liyz
- * @date 2019/7/10 16:10
- **/
- @Service
- @Transactional(rollbackFor = Exception.class)
- public class ImpPblmServiceImpl extends AbstractCrudService implements ImpPblmService {
- @Value("${export.templatePath}")
- private String templatePath;
- @Value("${impExcel.basePath}")
- private String impExcelBashPath;
- @Value("${web.upload-path}")
- private String imgPath;
- @Value("${getFile.prefix}")
- private String imgPathPrefix;
- @Autowired
- private RedisTemplate redisTemplate;
- @Autowired
- private ImpPblmDao impPblmDao;
- @Autowired
- private GwComFileService gwComFileService;
- @Autowired
- private BisInspPblmService bisInspPblmService;
- @Autowired
- private ObjInspPblmsDao objInspPblmsDao;
- @Autowired
- private ObjKeyPblmsDao objKeyPblmsDao;
- @Autowired
- private BisInspRsvrRgstrDao bisInspRsvrRgstrDao;
- @Autowired
- private BisInspSvwtAreaRgstrDao bisInspSvwtAreaRgstrDao;
- @Autowired
- private BisInspSvwtWuntRgstrDao bisInspSvwtWuntRgstrDao;
- @Autowired
- private BisInspPblmDao bisInspPblmDao;
- @Autowired
- private AttWagaRgstrDao attWagaRgstrDao;
- @Autowired
- private BisInspSdRgstrDao bisInspSdRgstrDao;
- @Autowired
- private BisInspSwhsRgstrDao bisInspSwhsRgstrDao;
- @Autowired
- private BisInspWiuRgstrDao bisInspWiuRgstrDao;
- @Autowired
- private BisInspAllObjDao bisInspAllObjDao;
- @Autowired
- private BisInspKeyRegisterSectionDao bisInspKeyRegisterSectionDao;
- @Autowired
- private BisInspAllRlationPersService bisInspAllRlationPersService;
- private int updateSuccessCount = 0;
- private int insertSuccessCount = 0;
- /**
- * 要检查问题标准的类型
- */
- private static String[] checkedOrgTypes = new String[]{
- ImpPblmEnum.IMP_REVER.getOrgType(),
- ImpPblmEnum.IMP_WAGA.getOrgType(),
- ImpPblmEnum.IMP_SD.getOrgType(),
- ImpPblmEnum.IMP_SWHS.getOrgType(),
- ImpPblmEnum.IMP_WIU.getOrgType()
- };
- public ImpPblmServiceImpl(ImpPblmDao impPblmDao) {
- super(impPblmDao);
- this.impPblmDao = impPblmDao;
- }
- @Override
- public void downloadTemplate(HttpServletResponse response,String userId,String orgType,String orgIds,String datas,String orgId) throws Exception{
- // if(orgType.equals(orgIds)){
- // orgIds = "";
- // }
- ImpPblmEnum impPblmEnum = ImpPblmEnum.getEnumByOrgType(orgType);
- if(impPblmEnum == null){
- return;
- }
- switch (impPblmEnum) {
- case IMP_REVER:
- // 水库
- this.downloadTemplateRever(response, userId, orgType, orgIds ,datas,orgId);
- break;
- case IMP_WAGA:
- // 水闸
- this.downloadTemplateWaga(response, userId, orgType, orgIds,datas,orgId);
- break;
- case IMP_EMPWT:
- // 水利工程建设
- this.downloadTemplateKeyReg(response, userId, orgType, orgIds,datas,orgId);
- break;
- case IMP_EMPWTRUN:
- // 水利工程运行
- this.downloadTemplateKeyReg(response, userId, orgType, orgIds,datas,orgId);
- break;
- case IMP_SD:
- // 淤地坝
- this.downloadTemplateSd(response, userId, orgIds, impPblmEnum,datas,orgId);
- break;
- case IMP_WIU:
- // 取水口
- this.downloadTemplateWiu(response, userId, orgIds, impPblmEnum,datas,orgId);
- break;
- case IMP_SWHS:
- // 水源地
- this.downloadTemplateSwhs(response, userId, orgIds, impPblmEnum,datas,orgId);
- break;
- case IMP_SVWT:
- // 节水管理与评价
- this.downloadTemplateSvwt(response, userId, orgIds, impPblmEnum, datas,orgId);
- break;
- case IMP_WUNT:
- // 用水单位抽查
- this.downloadTemplateWunt(response, userId, orgIds, impPblmEnum,datas,orgId);
- break;
- default:
- break;
- }
- }
- private Object getConverDatas(String datas,Object object){
- try {
- if(datas == null){
- return object;
- }
- return JSONObject.parseObject(datas, object.getClass());
- }catch (Exception e){
- e.printStackTrace();
- }
- return object;
- }
- public void downloadTemplateRever(HttpServletResponse response,String userId,String orgType,
- String orgIds,String datas,String orgId) throws Exception{
- ReverParam reverParam = (ReverParam)this.getConverDatas(datas,new ReverParam());
- reverParam.setOrgIds(InspUtils.setOrgIds(orgIds));
- reverParam.setPersId(userId);
- reverParam.setOrgId(orgId);
- List<BisInspPblm> pblmList=bisInspPblmDao.findReverPlbmList(reverParam);
- // 模板路径
- String filePath = templatePath + File.separator + "pblmSk.xls";
- // SHEET名称
- String sheetName = "水库问题";
- // 文件名称带后缀
- String fileName = sheetName + ".xls";
- // startRow
- int startRow = 2;
- // 使用通用的下载模板的方法
- List<Map<String, Object>> dataList = ExpAndImpUtil.convertBeanToList(pblmList, pblmFieldArrays, PblmFieldFormatExp.class);
- // 处理其他特殊字段
- for(BisInspPblm bisInspPblm : pblmList){
- // 处理图片路径
- List<GwComFile> bizFiles = gwComFileService.findFileByBiz(bisInspPblm.getPblmId());
- String[] filePaths = bizFiles.stream().filter(x -> x.getBizId() != null && x.getBizId().equals(bisInspPblm.getPblmId())).map(GwComFile::getFilePath).toArray(String[]::new);
- String filePathsStr = StringUtils.join(filePaths,";");
- // 处理groupName
- List<BisInspAll> list = impPblmDao.getGroupList(userId, bisInspPblm.getOid());
- for(Map<String,Object> map : dataList){
- if(bisInspPblm.getPblmId().equals(map.get("pblmId"))){
- // 处理省市县
- ExpUtil.getAdNames(map,bisInspPblm.getAdFullName());
- // 问题标准附件
- map.put("attachSheet",(bisInspPblm.getAttach() != null ? bisInspPblm.getAttach() : "")+"-"+(bisInspPblm.getSheet()!=null ? bisInspPblm.getSheet() : ""));
- map.put("path", FieldFormat.formatCheckNull(filePathsStr));
- // 处理RsCode
- // BisInspRsvrRgstr bisInspRsvrRgstr = bisInspRsvrRgstrDao.get(bisInspPblm.getRegid());
- // if(bisInspRsvrRgstr != null){
- // map.put("rsCode",bisInspRsvrRgstr.getRsCode());
- // }
- map.put("rsCode",bisInspPblm.getCode());
- if(list.size() > 0){
- map.put("groupName",list.get(0).getPnm());
- }
- // insp_pblm_code 要取snNum
- map.put("inspPblmCode",bisInspPblm.getSnNum());
- }
- }
- }
- // 获取一个已经填满数据的WorkBook
- Workbook workBook = ExpAndImpUtil.getWorkbook(dataList, filePath, startRow, sheetName);
- List<BisInspAll> list = impPblmDao.getGroupList(userId, orgType);
- String[] groupNames = list.stream().map(BisInspAll::getPnm).toArray(String[]::new);
- // 给组别加上一个下拉列表,组别字段在第5列,firstCol=5-1
- ExpAndImpUtil.createListBox(groupNames,3,4,workBook);
- // 获取水库名称列表 从登记表获取
- TypeParam typeParam = new TypeParam();
- typeParam.setPresId(userId);
- typeParam.setpType(IMP_REVER.getObjType());
- List<BisInspRsvrRgstrPcDto> bisInspRsvrRgstrPcDtoList = bisInspRsvrRgstrDao.findPcPage(typeParam);
- String[] rsNames = bisInspRsvrRgstrPcDtoList.stream().map(BisInspRsvrRgstrPcDto::getNm).distinct().toArray(String[]::new);
- // 给水库名称再加一个下拉列表,水库名称在第7列,firstCol=7-1
- ByteArrayOutputStream os = ExpAndImpUtil.createListBox(rsNames,3,6,workBook);
- // 下载
- ExpAndImpUtil.downloadExcelFile(response, os,fileName);
- }
- public void downloadTemplateSd(HttpServletResponse response,String userId,String orgIds,
- ImpPblmEnum impPblmEnum,String datas,String orgId) throws Exception{
- SdPblmParam sdPblmParam = (SdPblmParam)this.getConverDatas(datas,new SdPblmParam());
- sdPblmParam.setOrgIds(InspUtils.setOrgIds(orgIds));
- sdPblmParam.setPersId(userId);
- sdPblmParam.setOrgId(orgId);
- sdPblmParam.setpType(impPblmEnum.getObjType());
- List<BisInspPblm> pblmList=bisInspPblmDao.findSdPblmList(sdPblmParam);
- // 使用通用的业务下载方法
- this.downloadTemplateCommon(response,userId,impPblmEnum,pblmList);
- }
- public void downloadTemplateSwhs(HttpServletResponse response,String userId,String orgIds,
- ImpPblmEnum impPblmEnum,String datas,String orgId) throws Exception{
- PblmParam pblmParam = (PblmParam)this.getConverDatas(datas,new PblmParam());
- pblmParam.setOrgIds(InspUtils.setOrgIds(orgIds));
- pblmParam.setPersId(userId);
- pblmParam.setOrgId(orgId);
- pblmParam.setpType(impPblmEnum.getObjType());
- List<BisInspPblm> pblmList=bisInspPblmDao.findPblmList(pblmParam);
- // 使用通用的业务下载方法
- this.downloadTemplateCommon(response,userId,impPblmEnum,pblmList);
- }
- public void downloadTemplateWiu(HttpServletResponse response,String userId,String orgIds,
- ImpPblmEnum impPblmEnum,String datas,String orgId) throws Exception{
- this.downloadTemplateSwhs(response,userId,orgIds,impPblmEnum,datas,orgId);
- }
- public void downloadTemplateSvwt(HttpServletResponse response,String userId,String orgIds,
- ImpPblmEnum impPblmEnum,String datas,String orgId) throws Exception{
- this.downloadTemplateSwhs(response,userId,orgIds,impPblmEnum,datas,orgId);
- }
- public void downloadTemplateWunt(HttpServletResponse response,String userId,String orgIds,
- ImpPblmEnum impPblmEnum,String datas,String orgId) throws Exception{
- this.downloadTemplateSwhs(response,userId,orgIds,impPblmEnum,datas,orgId);
- }
- private void downloadTemplateCommon(HttpServletResponse response,String userId,ImpPblmEnum impPblmEnum,List<BisInspPblm> pblmList) throws Exception{
- // 模板路径
- String filePath = templatePath + File.separator + impPblmEnum.getFilePath();
- // SHEET名称
- String sheetName = impPblmEnum.getSheetName();
- // 文件名称带后缀
- String fileName = impPblmEnum.getFileName();
- // startRow
- int startRow = impPblmEnum.getStartRow();
- // 使用通用的下载模板的方法
- List<Map<String, Object>> dataList = ExpAndImpUtil.convertBeanToList(pblmList, pblmFieldArrays, PblmFieldFormatExp.class);
- // 处理其他特殊字段
- for(BisInspPblm bisInspPblm : pblmList){
- for(Map<String,Object> map : dataList){
- if(bisInspPblm.getPblmId().equals(map.get("pblmId"))){
- // 处理省市县
- ExpUtil.getAdNames(map,bisInspPblm.getAdFullName());
- // 问题标准附件
- map.put("attachSheet",this.formatAttachSheet(bisInspPblm.getAttach(),bisInspPblm.getSheet()));
- // 处理图片路径
- List<GwComFile> bizFiles = gwComFileService.findFileByBiz(bisInspPblm.getPblmId());
- String[] filePaths = bizFiles.stream().map(GwComFile::getFilePath).toArray(String[]::new);
- String filePathsStr = StringUtils.join(filePaths,";");
- map.put("path", FieldFormat.formatCheckNull(filePathsStr));
- // 处理groupName
- String pType = bisInspPblm.getObjType();
- List<BisInspAll> list = impPblmDao.getGroupLists(userId, bisInspPblm.getOid(),PtypeConversionUtil.completion(pType));
- if(list.size() > 0){
- map.put("groupName",list.get(0).getPnm());
- }
- // insp_pblm_code 如果没有 去取snNum
- if(StringUtils.isBlank(bisInspPblm.getInspPblmCode())){
- map.put("inspPblmCode",bisInspPblm.getSnNum());
- }
- }
- }
- }
- // 获取一个已经填满数据的WorkBook
- Workbook workBook = ExpAndImpUtil.getWorkbook(dataList, filePath, startRow, sheetName);
- List<BisInspAll> list = impPblmDao.getGroupLists(userId, impPblmEnum.getOrgType(),PtypeConversionUtil.completion(impPblmEnum.getObjType()));
- String[] groupNamesList = list.stream().map(BisInspAll::getPnm).toArray(String[]::new);
- // 给组别加上一个下拉列表,组别字段在第5列,firstCol=5-1
- ByteArrayOutputStream os = ExpAndImpUtil.createListBox(groupNamesList,3,4,workBook);
- // 下载
- ExpAndImpUtil.downloadExcelFile(response, os,fileName);
- }
- public void downloadTemplateWaga(HttpServletResponse response,String userId,String orgType,
- String orgIds,String datas,String orgId) throws Exception{
- WagaParam wagaParam = (WagaParam)this.getConverDatas(datas,new WagaParam());
- wagaParam.setOrgIds(InspUtils.setOrgIds(orgIds));
- wagaParam.setPersId(userId);
- wagaParam.setOrgId(orgId);
- List<BisInspPblm> pblmList=bisInspPblmDao.findWagaPlbmList(wagaParam);
- // 模板路径
- String filePath = templatePath + File.separator + "pblmSz.xls";
- // SHEET名称
- String sheetName = "水闸问题";
- // 文件名称带后缀
- String fileName = sheetName + ".xls";
- // startRow
- int startRow = 2;
- // 使用通用的下载模板的方法
- List<Map<String, Object>> dataList = ExpAndImpUtil.convertBeanToList(pblmList, pblmFieldArrays, PblmFieldFormatExp.class);
- // 处理其他特殊字段
- for(BisInspPblm bisInspPblm : pblmList){
- // 处理图片路径
- List<GwComFile> bizFiles = gwComFileService.findFileByBiz(bisInspPblm.getPblmId());
- String[] filePaths = bizFiles.stream().map(GwComFile::getFilePath).toArray(String[]::new);
- String filePathsStr = StringUtils.join(filePaths,";");
- // 处理groupName
- List<BisInspAll> list = impPblmDao.getGroupList(userId, bisInspPblm.getOid());
- for(Map<String,Object> map : dataList){
- if(bisInspPblm.getPblmId().equals(map.get("pblmId"))){
- // 处理省市县
- ExpUtil.getAdNames(map,bisInspPblm.getAdFullName());
- // 问题标准附件
- map.put("attachSheet",(bisInspPblm.getAttach() != null ? bisInspPblm.getAttach() : "")+"-"+(bisInspPblm.getSheet()!=null ? bisInspPblm.getSheet() : ""));
- map.put("path", FieldFormat.formatCheckNull(filePathsStr));
- // 处理objCode 水闸编码
- // AttWagaRgstr attWagaRgstr = attWagaRgstrDao.get(bisInspPblm.getRegid());
- // if(attWagaRgstr != null){
- // map.put("objCode",attWagaRgstr.getObjCode());
- // map.put("gateName",attWagaRgstr.getGateName());
- // }
- map.put("objCode",bisInspPblm.getCode());
- map.put("gateName",bisInspPblm.getNm());
- if(list.size() > 0){
- map.put("groupName",list.get(0).getPnm());
- }
- // insp_pblm_code 要取snNum
- map.put("inspPblmCode",bisInspPblm.getSnNum());
- }
- }
- }
- Workbook workBook = ExpAndImpUtil.getWorkbook(dataList, filePath, startRow, sheetName);
- List<BisInspAll> list = impPblmDao.getGroupList(userId, orgType);
- String[] groupNamesList = list.stream().map(BisInspAll::getPnm).toArray(String[]::new);
- // 组别字段在第5列,firstCol=5-1
- ExpAndImpUtil.createListBox(groupNamesList,3,4,workBook);
- // 获取水闸名称列表 从登记表里获取
- TypeParam typeParam = new TypeParam();
- typeParam.setPresId(userId);
- typeParam.setpType(IMP_WAGA.getObjType());
- List<BisInspWagaRgstrDto> bisInspWagaRgstrDtoList = attWagaRgstrDao.findWagaPage(typeParam);
- String[] gateNames = bisInspWagaRgstrDtoList.stream().map(BisInspWagaRgstrDto::getNm).distinct().toArray(String[]::new);
- // 给水闸名称再加一个下拉列表,水闸名称在第7列,firstCol=7-1
- ByteArrayOutputStream os = ExpAndImpUtil.createListBox(gateNames,3,6,workBook);
- ExpAndImpUtil.downloadExcelFile(response, os,fileName);
- }
- public void downloadTemplateKeyReg(HttpServletResponse response,String userId,
- String orgType,String orgIds,String datas,String orgId) throws Exception{
- ImpPblmEnum impPblmEnum = ImpPblmEnum.getEnumByOrgType(orgType);
- // 督查类型 4水利工程建设 7水利工程运行
- if(impPblmEnum == null){
- return;
- }
- KeyRegPatam keyRegPatam = (KeyRegPatam)this.getConverDatas(datas,new KeyRegPatam());
- keyRegPatam.setOrgIds(InspUtils.setOrgIds(orgIds));
- keyRegPatam.setPersId(userId);
- keyRegPatam.setOrgId(orgId);
- keyRegPatam.setpType(impPblmEnum.getObjType());
- // 如果是建设
- if(impPblmEnum == IMP_EMPWT) {
- // 复查结论
- keyRegPatam.setReviConc("0");
- }
- List<KeyRegPblm> pblmList=bisInspPblmDao.findKeyRegPlbmList(keyRegPatam);
- // 模板文件路径
- String filePath = templatePath + File.separator + impPblmEnum.getFilePath();
- // 开始行
- int startRow = 2;
- // 使用通用的下载模板的方法
- List<Map<String, Object>> dataList = ExpAndImpUtil.convertBeanToList(pblmList, pblmFieldArrays, PblmFieldFormatExp.class);
- // 处理其他特殊字段
- for(KeyRegPblm bisInspPblm : pblmList){
- for(Map<String,Object> map : dataList){
- if(bisInspPblm.getPblmId().equals(map.get("pblmId"))){
- // 处理省市县
- ExpUtil.getAdNames(map,bisInspPblm.getAdFullName());
- // 处理图片路径
- List<GwComFile> bizFiles = gwComFileService.findFileByBiz(bisInspPblm.getPblmId());
- String[] filePaths = bizFiles.stream().map(GwComFile::getFilePath).toArray(String[]::new);
- String filePathsStr = StringUtils.join(filePaths,";");
- map.put("path", FieldFormat.formatCheckNull(filePathsStr));
- // 处理groupName
- List<BisInspAll> list = impPblmDao.getGroupList(userId, bisInspPblm.getOid());
- if(list.size() > 0){
- map.put("groupName",list.get(0).getPnm());
- }
- // 处理单位名称
- List<String> dwNmList = impPblmDao.getNmByRegId(bisInspPblm.getRegid(),orgType);
- if(dwNmList.size() > 0){
- map.put("dwNm", dwNmList.get(0));
- }else {
- map.put("dwNm", "");
- }
- try {
- if("004".equals(orgType)){
- // 处理标段名称
- BisInspKeyRegisterSection bisInspKeyRegisterSection = bisInspKeyRegisterSectionDao.findSecByUnitId(bisInspPblm.getRegid());
- if(bisInspKeyRegisterSection != null){
- map.put("bdNm", bisInspKeyRegisterSection.getNm());
- }else {
- map.put("bdNm", "");
- }
- }
- }catch (Exception e){
- e.printStackTrace();
- }
- // 处理attachWg
- if(bisInspPblm.getAttachWg() != null && bisInspPblm.getAttachWg().endsWith("-")){
- map.put("attachWg",bisInspPblm.getAttachWg().replace("-",""));
- }
- // 处理attachDef
- if(bisInspPblm.getAttachDef() != null && bisInspPblm.getAttachDef().endsWith("-")){
- map.put("attachDef",bisInspPblm.getAttachDef().replace("-",""));
- }
- }
- }
- }
- Workbook workBook = ExpAndImpUtil.getWorkbook(dataList, filePath, startRow, impPblmEnum.getSheetName());
- List<BisInspAll> list = impPblmDao.getGroupList(userId, orgType);
- String[] groupNamesList = list.stream().map(BisInspAll::getPnm).toArray(String[]::new);
- // 组别字段在第5列,firstCol=5-1
- ByteArrayOutputStream os = ExpAndImpUtil.createListBox(groupNamesList,3,4,workBook);
- ExpAndImpUtil.downloadExcelFile(response, os,impPblmEnum.getFileName());
- }
- private String formatAttachSheet(String attach,String sheet){
- if(StringUtils.isBlank(attach)){
- return "";
- }else if(StringUtils.isBlank(sheet)){
- return attach;
- }else{
- return attach + "-" + sheet;
- }
- }
- private String formatAttachSheet(String value){
- if(StringUtils.isBlank(value)){
- return "";
- }else if(value.endsWith("-")){
- return value.replace("-","");
- }else{
- return value;
- }
- }
- @Override
- public String uploadFile(MultipartFile[] files) {
- // return this.uploadFileSingle(files);
- return this.uploadFileMore(files);
- }
- public String uploadFileMore(MultipartFile[] files){
- if(files.length > 0){
- String info = "";
- for (MultipartFile file : files){
- // 如果上传成功
- switch (file.getOriginalFilename().split("\\.")[1]){
- case ImpUtil.XLS:
- // info = this.uploadFileExcel(file);
- info = this.uploadFileExcelCommon(file);
- break;
- case ImpUtil.ZIP:
- // info = this.uploadFileZip(file);
- info = this.uploadFileZipCommon(file);
- break;
- default:
- info = "文件类型不对";
- break;
- }
- }
- return info;
- }else {
- return "文件为空";
- }
- }
- public String uploadFileSingle(MultipartFile file) {
- String info = "";
- // 如果上传成功
- switch (file.getOriginalFilename().split("\\.")[1]){
- case ImpUtil.XLS:
- info = this.uploadFileExcel(file);
- break;
- case ImpUtil.ZIP:
- info = this.uploadFileZip(file);
- break;
- default:
- info = "文件类型不对";
- break;
- }
- return info;
- }
- @Override
- public Map<String,Object> parseTemplate(String filePath,String userId,String orgType) {
- Map<String,Object> map = new HashMap<>();
- List<LinkedHashMap<String,Object>> listParse = null;
- int startRow = 2;
- int endRow = 0;
- List<LinkedHashMap<String, Object>> listShow = new ArrayList<>();
- try {
- // 获取到从Excel里提取到的数据,并已格式化
- listParse = ImportExcel.getParseData(filePath,startRow,endRow, PblmFieldFormatImp.class);
- if(listParse.size() > 0){
- String cacheId = UuidUtil.uuid();
- redisTemplate.opsForList().rightPushAll(cacheId,listParse);
- map.put("cacheId",cacheId);
- }else{
- map.put("cacheId","");
- }
- // 添加警告,(先不放开)
- if(listParse.size() > 0){
- // if(listParse.get(0).get("rsCode") != null){
- // checkHasObjPblm(listParse,userId,"001");
- // }else if(listParse.get(0).get("objCode") != null){
- // checkHasObjPblm(listParse,userId,"006");
- // }
- checkHasObjPblm(listParse,userId,orgType);
- }
- listShow = ImportExcel.getShowData(listParse, PblmFieldFormatExp.class);
- map.put("listParse",listShow);
- } catch (IOException e) {
- e.printStackTrace();
- }
- return map;
- }
- @Override
- public boolean insertTemplate(String cacheId,String userId,String updateState,String orgType) {
- return this.insertTemplateState(cacheId,userId,updateState,orgType);
- }
- public boolean insertTemplateState(String cacheId,String userId,String updateState,String orgType) {
- // 从redis里获取到数据
- List<LinkedHashMap<String, Object>> listParse = this.getParseDataByRedis(cacheId);
- // 去重复pblmId处理,可能增加问题时会直接复制了上一行数据会把pblmId带上,预防一下,取第一条,剩余pblmId置空
- ExpAndImpUtil.handleRepeatPrimaryKey(listParse,"pblmId");
- // 取出来的数据,分为两种情况,一种是有pblmId的,一种是没有的
- // 如果有
- List<LinkedHashMap<String, Object>> hasPblmIdList = listParse.stream().filter(x -> StringUtils.isNotBlank(MapUtils.getString(x,"pblmId"))).collect(Collectors.toList());
- // 如果无
- List<LinkedHashMap<String, Object>> notHasPblmIdList = listParse.stream().filter(x -> StringUtils.isBlank(MapUtils.getString(x,"pblmId"))).collect(Collectors.toList());
- // 批量插入
- boolean hasSuccess = true;
- boolean notHasSuccess = true;
- // 有pblmId,则更新
- this.updateSuccessCount = 0;
- if(hasPblmIdList.size() > 0){
- hasSuccess = this.batchUpdate(hasPblmIdList,userId,updateState,orgType);
- }else {
- hasSuccess = false;
- }
- // 无pblmId,则添
- this.insertSuccessCount = 0;
- if(notHasPblmIdList.size() > 0){
- notHasSuccess = this.batchInsert(notHasPblmIdList,userId,updateState,orgType);
- }else {
- notHasSuccess = false;
- }
- if(hasSuccess && notHasSuccess){
- // return "插入成功!";
- return true;
- }else {
- // return "插入失败!";
- return false;
- }
- }
- @Override
- public String insertTemplateInfo(String cacheId,String userId,String updateState,String orgType) {
- // 从redis里获取到数据
- List<LinkedHashMap<String, Object>> listParse = this.getParseDataByRedis(cacheId);
- // 去重复pblmId处理,可能增加问题时会直接复制了上一行数据会把pblmId带上,预防一下,取第一条,剩余pblmId置空
- ExpAndImpUtil.handleRepeatPrimaryKey(listParse,"pblmId");
- // 取出来的数据,分为两种情况,一种是有pblmId的,一种是没有的
- // 如果有
- List<LinkedHashMap<String, Object>> hasPblmIdList = listParse.stream().filter(x -> StringUtils.isNotBlank(MapUtils.getString(x,"pblmId"))).collect(Collectors.toList());
- // 如果无
- List<LinkedHashMap<String, Object>> notHasPblmIdList = listParse.stream().filter(x -> StringUtils.isBlank(MapUtils.getString(x,"pblmId"))).collect(Collectors.toList());
- // 批量插入
- // 有pblmId,则更新
- this.updateSuccessCount = 0;
- if(hasPblmIdList.size() > 0){
- this.batchUpdate(hasPblmIdList,userId,updateState,orgType);
- }
- // 无pblmId,则添加
- this.insertSuccessCount = 0;
- if(notHasPblmIdList.size() > 0){
- this.batchInsert(notHasPblmIdList,userId,updateState,orgType);
- }
- // 总数
- int sumCount = listParse.size();
- // 更新
- int updateCount = hasPblmIdList.size();
- // 新增
- int insertCount = notHasPblmIdList.size();
- return " 此次填报共:<b>" + sumCount + "</b>条,其中库里<i>原有数据</i>:<b>" + updateCount + "</b>条,<i>新增数据</i>:<b>" + insertCount + "</b>条。" +
- "<p><b>" + updateCount + "</b>条<i>原有数据</i>:修改成功<b>" + this.updateSuccessCount + "</b>条,失败<b>"+ (updateCount - this.updateSuccessCount) + "</b>条</p>" +
- "<p><b>" + insertCount + "</b>条<i>新增数据</i>:添加成功<b>" + this.insertSuccessCount + "</b>条,失败<b>"+ (insertCount - this.insertSuccessCount) + "</b>条</p>";
- }
- /**
- * 真正执行入库操作的方法(更新)
- * @see cn.com.goldenwater.dcproj.controller.pblm.BisInspPblmController#insert(BisInspPblm)
- */
- private boolean batchUpdate(List<LinkedHashMap<String, Object>> listParse,String userId,String updateState,String orgType){
- boolean success = false;
- this.updateSuccessCount = 0;
- List<BisInspPblm> list = new ArrayList<>();
- // List<GwComFile> listGwComFile = new ArrayList<>();
- // 把list<map> 转为 list<bean>
- for(LinkedHashMap<String,Object> lhp : listParse){
- try{
- BisInspPblm bisInspPblm = (BisInspPblm) convertMapToBean(BisInspPblm.class, lhp);
- // 如果这里为NULL,就不用继续了,肯定失败
- if(bisInspPblm == null){
- continue;
- }
- // 设置问题字段
- boolean setColumnState = this.setColumn(bisInspPblm,lhp,userId,orgType);
- if(!setColumnState){
- continue;
- }
- // 这里更新的时候暂时不更新多媒体,不确定会不会更改多媒体
- // 设置文件字段
- // this.setFileColumn(bisInspPblm,lhp,listGwComFile);
- // 添加进问题List
- list.add(bisInspPblm);
- }catch (Exception e){
- e.printStackTrace();
- }
- }
- // 用mybatis执行批量插入,提高效率
- try {
- if(list.size() > 0){
- // 最后再检查一下字段里是否有错误标识,检查无误,问题入库
- if(!list.toString().contains(ERR)){
- // 更新问题表,出于安全考虑,没有选择SQL批量更新,
- for(BisInspPblm bisInspPblm : list){
- bisInspPblmDao.update(bisInspPblm);
- }
- success = true;
- // 成功计数
- this.updateSuccessCount = list.size();
- }
- }else {
- this.updateSuccessCount = 0;
- }
- }catch (Exception e){
- e.printStackTrace();
- }
- return success;
- }
- /**
- * 真正执行入库操作的方法
- * @see cn.com.goldenwater.dcproj.controller.pblm.BisInspPblmController#insert(BisInspPblm)
- */
- private boolean batchInsert(List<LinkedHashMap<String, Object>> listParse,String userId,String updateState,String orgType){
- boolean success = false;
- this.insertSuccessCount = 0;
- List<BisInspPblm> list = new ArrayList<>();
- List<GwComFile> listGwComFile = new ArrayList<>();
- // 把list<map> 转为 list<bean>
- for(LinkedHashMap<String,Object> lhp : listParse){
- try{
- BisInspPblm bisInspPblm = (BisInspPblm) convertMapToBean(BisInspPblm.class, lhp);
- // 如果这里为NULL,就不用继续了,肯定失败
- if(bisInspPblm == null){
- continue;
- }
- // 设置问题字段
- boolean setColumnState = this.setColumn(bisInspPblm,lhp,userId,orgType);
- if(!setColumnState){
- continue;
- }
- // 设置文件字段
- this.setFileColumn(bisInspPblm,lhp,listGwComFile);
- // 添加进问题List
- list.add(bisInspPblm);
- }catch (Exception e){
- e.printStackTrace();
- }
- }
- // 用mybatis执行批量插入,提高效率
- try {
- if(list.size() > 0){
- // 最后再检查一下字段里是否有错误标识,检查无误,问题入库
- if(!list.toString().contains(ERR)){
- // 判断是否需要覆盖新增,如果是,先把原来的清掉
- if("0".equals(updateState)){
- for(BisInspPblm pblm : list){
- // 先删文件
- // 按bizId一个一个删,一下子删怕错删数据
- String bizId = pblm.getPblmId();
- List<GwComFile> gwComFileList = gwComFileService.findFileByBiz(bizId);
- // 不用deleteBy 太危险
- for(int i=0;i<gwComFileList.size();i++){
- String id = gwComFileList.get(i).getId();
- gwComFileService.delete(id);
- }
- // 再删问题
- BisInspPblmParam pblmParam = new BisInspPblmParam();
- pblmParam.setObjId(pblm.getObjId());
- List<BisInspPblm> pblmList = bisInspPblmService.findList(pblmParam);
- for(int i=0;i<pblmList.size();i++){
- String pblmId = pblmList.get(i).getPblmId();
- bisInspPblmService.delete(pblmId);
- }
- }
- }
- if(list.size()>0){
- impPblmDao.batchInsert(list);
- }
- // 问题多媒体文件入库
- if(listGwComFile.size() > 0){
- impPblmDao.batchInsertGwFile(listGwComFile);
- }
- success = true;
- // 成功计数
- this.insertSuccessCount = list.size();
- }
- }else {
- this.insertSuccessCount = 0;
- }
- }catch (Exception e){
- e.printStackTrace();
- }
- return success;
- }
- private void setFileColumn(BisInspPblm bisInspPblm,LinkedHashMap<String,Object> lhp,List<GwComFile> listGwComFile){
- // 有图片
- Object path = lhp.get("path");
- if(path != null && !"".equals(path)){
- String pathStr = path.toString().replace(";",";");
- String[] pathStrArr = pathStr.split(";");
- String isHasVideo = "0";
- // 没有分号时length为1
- if(pathStrArr.length > 0){
- for(String pathStrItem : pathStrArr){
- GwComFile gwComFile = this.setFileColumnSingle(pathStrItem,bisInspPblm);
- if(StringUtils.isNotBlank(gwComFile.getFilePath())){
- listGwComFile.add(gwComFile);
- isHasVideo = "1";
- }
- }
- }
- // 应该根据path里的值来决定是否有多媒体,所以暂时把下面这段逻辑注释掉
- // if(StringUtils.isNotBlank(MapUtils.getString(lhp,"hasVedio"))){
- // isHasVideo = MapUtils.getString(lhp,"hasVedio");
- // }
- bisInspPblm.setHasVedio(isHasVideo);
- }else {
- bisInspPblm.setHasVedio("0");
- }
- }
- private GwComFile setFileColumnSingle(String pathStr,BisInspPblm bisInspPblm){
- // pathStr /lyz/test.png
- GwComFile gwComFile = new GwComFile();
- String gwId = UuidUtil.uuid();
- gwComFile.setId(gwId);
- gwComFile.setBizId(bisInspPblm.getPblmId());
- // 去除前面和后面的空格,不然文件类型会识别不了
- pathStr = pathStr.trim();
- if(pathStr.contains("\\")){
- pathStr = pathStr.replace("\\","/");
- }
- // 设置其他字段
- String[] fileTitles = pathStr.split("/");
- if(fileTitles.length > 0){
- String fileTitle = fileTitles[fileTitles.length-1];
- // 设置文件名称和title
- gwComFile.setFileTitle(fileTitle);
- gwComFile.setFileName(fileTitle);
- // 设置扩展名
- String[] fileExts = fileTitle.split("\\.");
- if(fileExts.length > 0){
- gwComFile.setFileExt(fileExts[fileExts.length-1]);
- }
- }
- // 设置path字段
- String[] pathStrArr = pathStr.split(":");
- // 有:说明带盘符 length为2,无:分割说明不带盘符 length为1
- if(pathStrArr.length > 0){
- try{
- this.setColumnFilePath(gwComFile,pathStrArr,pathStr,gwId);
- }catch (Exception e){
- e.printStackTrace();
- }
- }
- return gwComFile;
- }
- /**
- * 设置文件路径
- *
- * @param gwComFile 文件实体类
- * @param pathStrArr 从模板里获取的路径以:分割之后的数组 ["D","/lyz/test.png"] 或者 ["/lyz/test.png"] 或者 ["/lyz/test"]
- * @param pathStr 从模板里获取的路径 /lyz/test.png
- * @param gwId 文件id
- */
- private void setColumnFilePath(GwComFile gwComFile,String[] pathStrArr,String pathStr,String gwId){
- // 图片临时路径 /DC/upload/2019/7/20/lyz/图片.jpg 从模板里获取
- String pathStrItemSave = getDateFormatPath(this.impExcelBashPath) + File.separator + pathStrArr[pathStrArr.length-1];
- // 对从模板里获取的图片路径进行处理
- pathStrItemSave = this.checkIsExistImg(gwComFile,pathStrItemSave.replace("\\","/"));
- // 图片的后缀
- String suffixPath = File.separator + gwId + pathStrItemSave.substring(pathStrItemSave.lastIndexOf("."));
- // 图片存储的表里存的路径,入库用 /upload/
- String pathStrTableSave = getDateFormatPath(this.imgPathPrefix) + suffixPath;
- // 图片存储的真正路径
- String pathStrDiskSave = getDateFormatPath(this.imgPath) + suffixPath;
- // 判断临时路径处有 没有这张图片,有的话复制到图片文件夹下
- File file = new File(pathStrItemSave);
- if(file.exists()){
- try {
- FileUtils.copyFile(file,new File(pathStrDiskSave));
- gwComFile.setFilePath(pathStrTableSave);
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- private String checkIsExistImg(GwComFile gwComFile, String pathStrItemSave) {
- // 解析获取的图片路径,判断用户到底上传了这张图片没有
- // 1.有后缀名,且大小写正确
- // 2.无后缀名
- // 3.有后缀名,大小写不正确
- try{
- // 模板里的图片的名称 test.png | test
- String imgName = pathStrItemSave.split("/")[pathStrItemSave.split("/").length-1];
- // .png .jpg .jpeg gif
- if(imgName.contains(".")){
- // test
- imgName = imgName.substring(0,imgName.lastIndexOf("."));
- }
- // D:\lyz
- String folderPath = pathStrItemSave.substring(0,pathStrItemSave.lastIndexOf("/"));
- File folder = new File(folderPath);
- File[] fileList = folder.listFiles();
- if(fileList != null){
- for(File f : fileList){
- String fileName = f.getName();
- if(fileName.contains(imgName)){
- boolean isExist = false;
- String ext1 = fileName.substring(fileName.lastIndexOf(".")+1);
- // 如果有后缀名
- if(pathStrItemSave.contains(".")){
- String ext2 = pathStrItemSave.substring(pathStrItemSave.lastIndexOf(".")+1);
- if(ext1.toUpperCase().equals(ext2.toUpperCase())){
- isExist = true;
- }
- }else{
- isExist = true;
- }
- if(isExist){
- // D:\lyz\test.png
- pathStrItemSave = folderPath + File.separator + fileName;
- // test.png
- gwComFile.setFileTitle(fileName);
- // .png
- gwComFile.setFileExt(ext1);
- }
- }
- }
- }
- }catch (Exception e){
- e.printStackTrace();
- }
- return pathStrItemSave;
- }
- private boolean setColumn(BisInspPblm bisInspPblm,LinkedHashMap<String,Object> lhp,String userId,String orgType){
- int count = 0;
- if(!this.setColumnOfRequired(bisInspPblm,lhp,userId,orgType)){
- count ++;
- }
- if(!this.setColumnOfSpecial(bisInspPblm,lhp,userId,orgType)){
- count ++;
- }
- if(!this.setColumnOfOther(bisInspPblm,lhp,userId,orgType)){
- count ++;
- }
- if(count > 0){
- return false;
- }else {
- return true;
- }
- }
- private boolean setColumnOfRequiredRever(BisInspPblm bisInspPblm,LinkedHashMap<String,Object> lhp,String userId,ImpPblmEnum impPblmEnum){
- // 必要字段 1):督查问题ID 。
- if(StringUtils.isBlank(bisInspPblm.getPblmId())){
- // 如果导进来的不带pblmId,给赋值
- bisInspPblm.setPblmId(UuidUtil.uuid());
- }
- // 必要字段2):名录ID 获取方式 根据1组别,2用户id,3督查类型,4水库编码 确定唯一objId和rgstrId
- // 4 水库编码 改成使用名称
- // Object rsCode = lhp.get("rsCode");
- Object rsCode = lhp.get("rsName");
- if(rsCode == null){
- return false;
- }
- // 1 组别
- Object groupName = lhp.get("groupName");
- if(groupName == null){
- return false;
- }
- String id = this.getGroupIdByName(groupName.toString(),userId,impPblmEnum.getOrgType());
- if(StringUtils.isBlank(id)){
- return false;
- }
- // 获取名录ID 和 对应的objId,rgstrId
- BisInspRsvrRgstrPcDto pcDto = this.getRsvrRgstrDto(userId, impPblmEnum.getObjType(), rsCode.toString(),id);
- if(pcDto == null){
- return false;
- }
- // 设置ObjId,关键性字段
- bisInspPblm.setObjId(pcDto.getObjId());
- if(bisInspPblm.getObjId() == null){
- return false;
- }
- // 字段 25):REGID 根据类型 来判断 是 1 小水库,2 农饮 3 水毁 4重点工程--登记ID
- bisInspPblm.setRegid(pcDto.getRgstrId());
- return true;
- }
- private boolean setColumnOfRequiredWaga(BisInspPblm bisInspPblm,LinkedHashMap<String,Object> lhp,String userId,ImpPblmEnum impPblmEnum){
- // 必要字段 1):督查问题ID
- if(StringUtils.isBlank(bisInspPblm.getPblmId())){
- bisInspPblm.setPblmId(UuidUtil.uuid());
- }
- // 必要字段2):名录ID 获取方式 根据1组别,2用户id,3督查类型,4水库编码 确定唯一objId和rgstrId
- // 4 水闸编码 改用水闸名称
- // Object objCode = lhp.get("objCode");
- Object objCode = lhp.get("gateName");
- if(objCode == null){
- return false;
- }
- // 1 组别
- Object groupName = lhp.get("groupName");
- if(groupName == null){
- return false;
- }
- String id = this.getGroupIdByName(groupName.toString(),userId,impPblmEnum.getOrgType());
- if(StringUtils.isBlank(id)){
- return false;
- }
- // 获取名录ID 和 对应的objId,rgstrId
- BisInspWagaRgstrDto pcDto = this.getWagaRgstrDto(userId, impPblmEnum.getObjType(), objCode.toString(),id);
- if(pcDto == null){
- return false;
- }
- // 设置ObjId,关键性字段
- bisInspPblm.setObjId(pcDto.getObjId());
- if(bisInspPblm.getObjId() == null){
- return false;
- }
- // 字段 25):REGID 根据类型 来判断 是 1 小水库,2 农饮 3 水毁 4重点工程--登记ID
- bisInspPblm.setRegid(pcDto.getRgstrId());
- return true;
- }
- private boolean setColumnOfRequiredByJs(BisInspPblm bisInspPblm,LinkedHashMap<String,Object> lhp,String userId,ImpPblmEnum impPblmEnum){
- // 通过上传模板里的工程名称和单位名称和标段名称来获取对应的obj_id 和 reg_id
- ImpPblmKeyReg keyReg = new ImpPblmKeyReg();
- keyReg.setGcNm(MapUtils.getString(lhp,"nm"));
- keyReg.setDwNm(MapUtils.getString(lhp,"dwNm"));
- keyReg.setBdNm(MapUtils.getString(lhp,"bdNm"));
- keyReg.setObjType(impPblmEnum.getObjType());
- // 先设置一下组id
- String groupId = this.getGroupIdByName(MapUtils.getString(lhp,"groupName"),userId,impPblmEnum.getOrgType());
- keyReg.setGroupId(groupId);
- return this.setColumnOfRequiredByKeyReg(bisInspPblm,keyReg);
- }
- private boolean setColumnOfRequiredByYx(BisInspPblm bisInspPblm,LinkedHashMap<String,Object> lhp,String userId,ImpPblmEnum impPblmEnum){
- // 通过上传模板里的工程名称和单位名称来获取对应的obj_id 和 reg_id
- ImpPblmKeyReg keyReg = new ImpPblmKeyReg();
- keyReg.setDwNm(MapUtils.getString(lhp,"dwNm"));
- keyReg.setGcNm(MapUtils.getString(lhp,"nm"));
- keyReg.setObjType(impPblmEnum.getObjType());
- // 先设置一下组id
- String groupId = this.getGroupIdByName(MapUtils.getString(lhp,"groupName"),userId,impPblmEnum.getOrgType());
- keyReg.setGroupId(groupId);
- return this.setColumnOfRequiredByKeyReg(bisInspPblm,keyReg);
- }
- private boolean setColumnOfRequiredByKeyReg(BisInspPblm bisInspPblm,ImpPblmKeyReg keyReg){
- // [必要字段] 1):督查问题ID
- if(StringUtils.isBlank(bisInspPblm.getPblmId())){
- bisInspPblm.setPblmId(UuidUtil.uuid());
- }
- // [必要字段] 2)名录ID和 3)登记表ID
- List<ImpPblmKeyReg> keyRegList = impPblmDao.getImpKeyRegList(keyReg);
- if(keyRegList == null || keyRegList.size() != 1){
- return false;
- }else {
- String objId = keyRegList.get(0).getObjId();
- String regId = keyRegList.get(0).getRegId();
- if(StringUtils.isBlank(objId)){
- return false;
- }else {
- bisInspPblm.setObjId(objId);
- }
- if(StringUtils.isBlank(regId)){
- return false;
- }else {
- bisInspPblm.setRegid(regId);
- }
- }
- return true;
- }
- private boolean setColumnOfRequiredBySd(BisInspPblm bisInspPblm,LinkedHashMap<String,Object> lhp,String userId,ImpPblmEnum impPblmEnum){
- // 必要字段 1):督查问题ID 。
- if(StringUtils.isBlank(bisInspPblm.getPblmId())){
- // 如果导进来的不带pblmId,给赋值
- bisInspPblm.setPblmId(UuidUtil.uuid());
- }
- // 必要字段2):名录ID 获取方式 根据1组别,2用户id,3督查类型,4水库编码 确定唯一objId和rgstrId
- String code = MapUtils.getString(lhp,"code");
- if(code == null){
- return false;
- }
- // 1 组别
- String groupName = MapUtils.getString(lhp,"groupName");
- if(groupName == null){
- return false;
- }
- List<BisInspAll> ids = this.getGroupIdByNameList(groupName, userId, impPblmEnum.getOrgType());
- BisInspSdRgstrDto pcDto = null;
- for(BisInspAll bisInspAll : ids){
- BisInspSdRgstrDto pcDtoItem = this.getSdRgstrDto(userId, impPblmEnum.getObjType(), code, bisInspAll.getId());
- if(pcDtoItem != null){
- pcDto = pcDtoItem;
- break;
- }
- }
- // 获取名录ID 和 对应的objId,rgstrId
- if(pcDto == null){
- return false;
- }
- // 设置ObjId,关键性字段
- bisInspPblm.setObjId(pcDto.getObjId());
- if(StringUtils.isBlank(bisInspPblm.getObjId())){
- return false;
- }
- // 字段 25):REGID 根据类型 来判断 是 1 小水库,2 农饮 3 水毁 4重点工程--登记ID
- bisInspPblm.setRegid(pcDto.getId());
- if(StringUtils.isBlank(bisInspPblm.getRegid())){
- return false;
- }
- return true;
- }
-
- private boolean setColumnOfRequiredBySwhs(BisInspPblm bisInspPblm,LinkedHashMap<String,Object> lhp,String userId,ImpPblmEnum impPblmEnum){
- // 必要字段 1):督查问题ID 。
- if(StringUtils.isBlank(bisInspPblm.getPblmId())){
- // 如果导进来的不带pblmId,给赋值
- bisInspPblm.setPblmId(UuidUtil.uuid());
- }
- // 必要字段2):名录ID 获取方式 根据1组别,2用户id,3督查类型,4水库编码 确定唯一objId和rgstrId
- String code = MapUtils.getString(lhp,"code");
- if(code == null){
- return false;
- }
- // 1 组别
- String groupName = MapUtils.getString(lhp,"groupName");
- if(groupName == null){
- return false;
- }
- List<BisInspAll> ids = this.getGroupIdByNameList(groupName, userId, impPblmEnum.getOrgType());
- // 通用登记表
- BisInspRgstrDto pcDto = null;
- for(BisInspAll bisInspAll : ids){
- BisInspRgstrDto pcDtoItem = this.getRgstrCommon(userId, impPblmEnum.getObjType(), code, bisInspAll.getId());
- if(pcDtoItem != null){
- pcDto = pcDtoItem;
- break;
- }
- }
- // 获取名录ID 和 对应的objId,rgstrId
- if(pcDto == null){
- return false;
- }
- // 设置ObjId,关键性字段
- bisInspPblm.setObjId(pcDto.getObjId());
- if(StringUtils.isBlank(bisInspPblm.getObjId())){
- return false;
- }
- // 字段 25):REGID 根据类型 来判断 是 1 小水库,2 农饮 3 水毁 4重点工程--登记ID
- bisInspPblm.setRegid(pcDto.getId());
- if(StringUtils.isBlank(bisInspPblm.getRegid())){
- return false;
- }
- return true;
- }
- private boolean setColumnOfRequiredByWiu(BisInspPblm bisInspPblm,LinkedHashMap<String,Object> lhp,String userId,ImpPblmEnum impPblmEnum){
- return this.setColumnOfRequiredBySwhs(bisInspPblm,lhp,userId,impPblmEnum);
- }
- private boolean setColumnOfRequiredBySvwt(BisInspPblm bisInspPblm,LinkedHashMap<String,Object> lhp,String userId,ImpPblmEnum impPblmEnum){
- // 必要字段1)督查问题主键ID
- if(StringUtils.isBlank(bisInspPblm.getPblmId())){
- // 如果导进来的不带pblmId,给赋值
- bisInspPblm.setPblmId(UuidUtil.uuid());
- }
- // 必要字段2)3)根据 1组别,2用户id,3督查类型 确定唯一objId和rgstrId
- String nm = MapUtils.getString(lhp,"nm");
- if(StringUtils.isBlank(nm)){
- return false;
- }
- // 组别
- String groupName = MapUtils.getString(lhp,"groupName");
- if(StringUtils.isBlank(groupName)){
- return false;
- }
- List<BisInspAll> groupIds = this.getGroupIdByNameList(groupName, userId, impPblmEnum.getOrgType());
- // 通用登记表
- BisInspRgstrDto pcDto = null;
- // 可能获取到多个组的唯一id
- for(BisInspAll bisInspAll : groupIds){
- BisInspRgstrDto pcDtoItem = this.getRgstrCommon(userId, impPblmEnum.getObjType(), nm, bisInspAll.getId());
- // 获得第一个不为Null的对象
- if(pcDtoItem != null){
- pcDto = pcDtoItem;
- break;
- }
- }
- // 获取对应的objId和rgstrId(regid)
- if(pcDto == null){
- return false;
- }
- // 设置ObjId 关键性字段
- bisInspPblm.setObjId(pcDto.getObjId());
- if(StringUtils.isBlank(bisInspPblm.getObjId())){
- return false;
- }
- // 设置regId 关键性字段
- bisInspPblm.setRegid(pcDto.getId());
- if(StringUtils.isBlank(bisInspPblm.getRegid())){
- return false;
- }
- return true;
- }
- private boolean setColumnOfRequiredByWunt(BisInspPblm bisInspPblm,LinkedHashMap<String,Object> lhp,String userId,ImpPblmEnum impPblmEnum){
- return this.setColumnOfRequiredBySvwt(bisInspPblm,lhp,userId,impPblmEnum);
- }
- /** 设置必要的字段方法 主要不同之处在于获取objId和regId **/
- private boolean setColumnOfRequired(BisInspPblm bisInspPblm,LinkedHashMap<String,Object> lhp,String userId,String orgType){
- ImpPblmEnum impPblmEnum = ImpPblmEnum.getEnumByOrgType(orgType);
- if(impPblmEnum == null){
- return false;
- }
- switch (impPblmEnum){
- case IMP_REVER:
- return this.setColumnOfRequiredRever(bisInspPblm, lhp, userId,impPblmEnum);
- case IMP_WAGA:
- return this.setColumnOfRequiredWaga(bisInspPblm, lhp, userId,impPblmEnum);
- case IMP_EMPWT:
- return this.setColumnOfRequiredByJs(bisInspPblm,lhp,userId,impPblmEnum);
- case IMP_EMPWTRUN:
- return this.setColumnOfRequiredByYx(bisInspPblm,lhp,userId,impPblmEnum);
- case IMP_SD:
- return this.setColumnOfRequiredBySd(bisInspPblm,lhp,userId,impPblmEnum);
- case IMP_SWHS:
- return this.setColumnOfRequiredBySwhs(bisInspPblm,lhp,userId,impPblmEnum);
- case IMP_WIU:
- return this.setColumnOfRequiredByWiu(bisInspPblm,lhp,userId,impPblmEnum);
- case IMP_SVWT:
- return this.setColumnOfRequiredBySvwt(bisInspPblm,lhp,userId,impPblmEnum);
- case IMP_WUNT:
- return this.setColumnOfRequiredByWunt(bisInspPblm,lhp,userId,impPblmEnum);
- default:
- return false;
- }
- }
- /** 设置问题标准 ,暂时两种标准 **/
- private boolean setColumnOfSpecial(BisInspPblm bisInspPblm,LinkedHashMap<String,Object> lhp,String userId,String orgType){
- ImpPblmEnum impPblmEnum = ImpPblmEnum.getEnumByOrgType(orgType);
- if(impPblmEnum == null){
- return false;
- }
- switch (impPblmEnum){
- case IMP_REVER:
- return this.setColumnOfSpecialByObjInsp(bisInspPblm,lhp,userId,orgType);
- case IMP_WAGA:
- return this.setColumnOfSpecialByObjInsp(bisInspPblm,lhp,userId,orgType);
- case IMP_EMPWT:
- return this.setColumnOfSpecialByObjKey(bisInspPblm,lhp,userId,orgType);
- case IMP_EMPWTRUN:
- return this.setColumnOfSpecialByObjKey(bisInspPblm,lhp,userId,orgType);
- case IMP_SD:
- return this.setColumnOfSpecialByObjInsp(bisInspPblm,lhp,userId,orgType);
- case IMP_SWHS:
- return this.setColumnOfSpecialByObjInsp(bisInspPblm,lhp,userId,orgType);
- case IMP_WIU:
- return this.setColumnOfSpecialByObjInsp(bisInspPblm,lhp,userId,orgType);
- case IMP_SVWT:
- return this.setColumnOfSpecialByObjInsp(bisInspPblm,lhp,userId,orgType);
- case IMP_WUNT:
- return this.setColumnOfSpecialByObjInsp(bisInspPblm,lhp,userId,orgType);
- default:
- return false;
- }
- }
- private String getGroupIdByName(String groupName,String userId,String orgType){
- List<BisInspAll> list = impPblmDao.getGroupList(userId, orgType);
- List<BisInspAll> groupNamesList = list.stream().filter(b -> b.getPnm().equals(groupName)).collect(Collectors.toList());
- if(groupNamesList.size() == 1){
- return groupNamesList.get(0).getId();
- }else {
- return "";
- }
- }
- private List<BisInspAll> getGroupIdByNameList(String groupName,String userId,String orgType){
- List<BisInspAll> list = impPblmDao.getGroupList(userId, orgType);
- List<BisInspAll> groupNamesList = list.stream().filter(b -> b.getPnm().equals(groupName)).collect(Collectors.toList());
- // 组名一样,很尴尬,先取第一个
- return groupNamesList;
- }
- /** 在解析时就判断一下数据正确与否 **/
- private List<LinkedHashMap<String,Object>> checkHasObjPblm(List<LinkedHashMap<String,Object>> listParse,String userId,String orgType){
- for(LinkedHashMap<String,Object> lhp : listParse){
- try{
- if(ArrayUtils.contains(checkedOrgTypes,orgType)){
- // 检查一下此种问题标准是否匹配
- List<ObjInspPblms> objPblmsList = this.getObjInspPblmsList(lhp,orgType);
- if(objPblmsList.size() != 1){
- this.setWarnField(lhp);
- }
- }
- // 检查一下组别
- String groupId = this.getGroupIdByName(MapUtils.getString(lhp,"groupName"),userId,orgType);
- if(StringUtils.isBlank(groupId)){
- this.setWarnFieldGroupName(lhp);
- }
- // 工程运行检查一下工程名称和单位名称是否匹配
- if(ImpPblmEnum.getEnumByOrgType(orgType) == IMP_EMPWTRUN){
- ImpPblmKeyReg keyReg = new ImpPblmKeyReg();
- keyReg.setDwNm(MapUtils.getString(lhp,"dwNm"));
- keyReg.setGcNm(MapUtils.getString(lhp,"nm"));
- keyReg.setObjType(orgType.replaceFirst("^0*",""));
- keyReg.setGroupId(groupId);
- List<ImpPblmKeyReg> keyRegList = impPblmDao.getImpKeyRegList(keyReg);
- if(keyRegList == null || keyRegList.size() != 1){
- this.setWarnFieldEmpwt(lhp);
- }
- }
- // 工程建设检查一下工程名称和单位名称和标段名称是匹配
- if(ImpPblmEnum.getEnumByOrgType(orgType) == IMP_EMPWT){
- ImpPblmKeyReg keyReg = new ImpPblmKeyReg();
- keyReg.setBdNm(MapUtils.getString(lhp,"bdNm"));
- keyReg.setDwNm(MapUtils.getString(lhp,"dwNm"));
- keyReg.setGcNm(MapUtils.getString(lhp,"nm"));
- keyReg.setObjType(orgType.replaceFirst("^0*",""));
- keyReg.setGroupId(groupId);
- List<ImpPblmKeyReg> keyRegList = impPblmDao.getImpKeyRegList(keyReg);
- if(keyRegList == null || keyRegList.size() != 1){
- this.setWarnFieldEmpwtRun(lhp);
- }
- }
- }catch (Exception e){
- this.setWarnField(lhp);
- e.printStackTrace();
- }
- }
- return listParse;
- }
- private void setWarnField(LinkedHashMap<String,Object> lhp){
- lhp.put("inspPblmCode",lhp.get("inspPblmCode") + WARN);
- lhp.put("inspPblmCate",lhp.get("inspPblmCate") + WARN);
- lhp.put("attachSheet",lhp.get("attachSheet") + WARN);
- }
- private void setWarnFieldGroupName(LinkedHashMap<String,Object> lhp){
- lhp.put("groupName",lhp.get("groupName") + WARN);
- }
- private void setWarnFieldEmpwt(LinkedHashMap<String,Object> lhp){
- lhp.put("nm",lhp.get("nm") + WARN);
- lhp.put("dwNm",lhp.get("dwNm") + WARN);
- lhp.put("bdNm",lhp.get("bdNm") + WARN);
- }
- private void setWarnFieldEmpwtRun(LinkedHashMap<String,Object> lhp){
- lhp.put("nm",lhp.get("nm") + WARN);
- lhp.put("dwNm",lhp.get("dwNm") + WARN);
- }
- private List<ObjInspPblms> getObjInspPblmsList(LinkedHashMap<String,Object> lhp,String orgType){
- List<ObjInspPblms> objInspPblmsList = new ArrayList<>();
- String dcType = Integer.toString(Integer.parseInt(orgType));
- // 从问题标准库OBJ_INSP_PBLMS 里获取数据
- ObjInspPblmsParam objInspPblmsParam = new ObjInspPblmsParam();
- // 根据 问题序号(SN_NUM),严重程度(INSP_PBLM_CATE),督查类型(TYPE),附件序号(ATTACH),SHEET序号(SHEET)
- // 1.问题序号(SN_NUM)
- String pblmCode = MapUtils.getString(lhp,"inspPblmCode");
- if(StringUtils.isNotBlank(pblmCode) && ImpUtil.checkIsInt(pblmCode)){
- objInspPblmsParam.setSnNum(pblmCode.trim());
- }else {
- return objInspPblmsList;
- }
- // 2.严重程度(INSP_PBLM_CATE)
- String inspPblmCate = MapUtils.getString(lhp,"inspPblmCate");
- if(inspPblmCate != null){
- objInspPblmsParam.setInspPblmCate(inspPblmCate);
- }else {
- return objInspPblmsList;
- }
- // 3.督查类型(TYPE)
- objInspPblmsParam.setType(dcType);
- // 4.附件序号(ATTACH)和 SHEET
- boolean state = this.setAttachSheet(objInspPblmsParam,lhp);
- if(!state){
- return objInspPblmsList;
- }
- // 得到问题标准
- // ObjInspPblms objInspPblms = objInspPblmsDao.getBy(objInspPblmsParam);
- objInspPblmsList = objInspPblmsDao.findList(objInspPblmsParam);
- return objInspPblmsList;
- }
- private KeyRegPblm getKeyRegPblm(LinkedHashMap<String,Object> lhp,String attachType){
- KeyRegPblm keyRegPblm = new KeyRegPblm();
- // 获取严重程度
- String inspPblmCate = MapUtils.getString(lhp,"inspPblmCate");
- if(inspPblmCate == null){
- return keyRegPblm;
- }
- // 问题类别
- String pblmType = MapUtils.getString(lhp,"inspPblmName").trim();
- try{
- // 1.获取 违规行为附件编号,违规行为问题标准序号
- String attachWg = MapUtils.getString(lhp,"attachWg");
- String attachWgSn = MapUtils.getString(lhp,"attachWgSn");
- List<ObjKeyPblms> objKeyPblmsWgList = this.getObjKeyPblmsList(attachWg,attachWgSn,inspPblmCate,attachType,pblmType);
- // if(attachType.equals("水利工程运行")){
- // if(checkIsInt(attachWg)){
- // // 完全一样,只是有一个sheet为null,当它为int的时候,sheet是null?
- // objKeyPblmsWgList = objKeyPblmsWgList.stream().filter(x -> StringUtils.isBlank(x.getSheet())).collect(Collectors.toList());
- // }
- // }
- if(objKeyPblmsWgList.size() == 1){
- keyRegPblm.setPblmsTypeId(objKeyPblmsWgList.get(0).getId());
- keyRegPblm.setInspPblmName(objKeyPblmsWgList.get(0).getInspPblmsName());
- keyRegPblm.setInspPblmType(objKeyPblmsWgList.get(0).getPblmType());
- }
- // 2.获取 合同管理附件编号,合同管理问题标准序号
- String attachHetong = MapUtils.getString(lhp,"attachHetong");
- String attachHetongSn = MapUtils.getString(lhp,"attachHetongSn");
- List<ObjKeyPblms> objKeyPblmsHtList = this.getObjKeyPblmsList(attachHetong,attachHetongSn,inspPblmCate,attachType,pblmType);
- if(objKeyPblmsHtList.size() == 1){
- keyRegPblm.setPblmsId(objKeyPblmsHtList.get(0).getId());
- if(StringUtils.isBlank(keyRegPblm.getInspPblmName())){
- keyRegPblm.setInspPblmName(objKeyPblmsHtList.get(0).getInspPblmsName());
- }
- if(StringUtils.isBlank(keyRegPblm.getInspPblmType())){
- keyRegPblm.setInspPblmType(objKeyPblmsHtList.get(0).getPblmType());
- }
- }
- // 3.获取 质量安全附件编号,质量安全问题标准序号
- String attachQua = MapUtils.getString(lhp,"attachQua");
- String attachQuaSn = MapUtils.getString(lhp,"attachQuaSn");
- List<ObjKeyPblms> objKeyPblmsQuaList = this.getObjKeyPblmsList(attachQua,attachQuaSn,inspPblmCate,attachType,pblmType);
- if(objKeyPblmsQuaList.size() == 1){
- keyRegPblm.setQualityTypeId(objKeyPblmsQuaList.get(0).getId());
- if(StringUtils.isBlank(keyRegPblm.getInspPblmName())){
- keyRegPblm.setInspPblmName(objKeyPblmsQuaList.get(0).getInspPblmsName());
- }
- if(StringUtils.isBlank(keyRegPblm.getInspPblmType())){
- keyRegPblm.setInspPblmType(objKeyPblmsQuaList.get(0).getPblmType());
- }
- }
- // 4.获取 缺陷管理附件编号,缺陷管理问题标准序号
- String attachDe = MapUtils.getString(lhp,"attachDe");
- String attachDeSn = MapUtils.getString(lhp,"attachDeSn");
- List<ObjKeyPblms> objKeyPblmsDeList = this.getObjKeyPblmsList(attachDe,attachDeSn,inspPblmCate,attachType,pblmType);
- if(objKeyPblmsDeList.size() == 1){
- keyRegPblm.setDefectTypeId(objKeyPblmsDeList.get(0).getId());
- if(StringUtils.isBlank(keyRegPblm.getInspPblmName())){
- keyRegPblm.setInspPblmName(objKeyPblmsDeList.get(0).getInspPblmsName());
- }
- if(StringUtils.isBlank(keyRegPblm.getInspPblmType())){
- keyRegPblm.setInspPblmType(objKeyPblmsDeList.get(0).getPblmType());
- }
- }
- }catch (Exception e){
- e.printStackTrace();
- return new KeyRegPblm();
- }
- return keyRegPblm;
- }
- private List<ObjKeyPblms> getObjKeyPblmsList(String attachSheet,String sn,String inspPblmCate,String attachType,String pblmType){
- List<ObjKeyPblms> objKeyPblmsList = new ArrayList<>();
- if(attachSheet == null || sn == null){
- return objKeyPblmsList;
- }
- // 从问题标准库OBJ_KEY_PBLMS 里获取数据
- ObjKeyPblmsParam objKeyPblmsParam = new ObjKeyPblmsParam();
- // 根据 问题序号(SN_NUM),严重程度(INSP_PBLM_CATE) ,附件序号(ATTACH),SHEET序号(SHEET)
- // 1.问题序号(SN_NUM)
- objKeyPblmsParam.setSn(sn.trim());
- // 2.严重程度(INSP_PBLM_CATE)
- objKeyPblmsParam.setInspPblmCate(inspPblmCate);
- // 3.附件序号(ATTACH)和 SHEET
- boolean state = this.setAttachSheetKeyReg(objKeyPblmsParam,attachSheet);
- if(!state){
- return objKeyPblmsList;
- }
- // 4.水利工程类型
- objKeyPblmsParam.setAttachType(attachType);
- // 5.问题类别
- objKeyPblmsParam.setPblmType(pblmType);
- // 得到问题标准
- objKeyPblmsList = objKeyPblmsDao.findList(objKeyPblmsParam);
- return objKeyPblmsList;
- }
- private boolean setAttachSheetKeyReg(ObjKeyPblmsParam objKeyPblmsParam,String attachSheet){
- if(attachSheet == null){
- return false;
- }else {
- if(attachSheet.contains("-")){
- String[] attachSheetArr = attachSheet.split("-");
- if(attachSheetArr.length == 2){
- objKeyPblmsParam.setAttach(attachSheetArr[0].trim());
- objKeyPblmsParam.setSheet(attachSheetArr[1].trim());
- }else {
- return false;
- }
- }else {
- if(ImpUtil.checkIsInt(attachSheet) && attachSheet.length() == 1){
- objKeyPblmsParam.setAttach(attachSheet);
- }else {
- return false;
- }
- }
- return true;
- }
- }
- private boolean setAttachSheet(ObjInspPblmsParam objInspPblmsParam,LinkedHashMap<String,Object> lhp){
- Object attachSheet = lhp.get("attachSheet");
- if(attachSheet == null){
- return false;
- }else {
- String attachSheetStr = attachSheet.toString();
- if(attachSheetStr.contains("-")){
- String[] attachSheetArr = attachSheetStr.split("-");
- if(attachSheetArr.length == 2){
- objInspPblmsParam.setAttach(attachSheetArr[0].trim());
- objInspPblmsParam.setSheet(attachSheetArr[1].trim());
- }else {
- return false;
- }
- }else {
- if(ImpUtil.checkIsInt(attachSheetStr) && attachSheetStr.length() == 1){
- objInspPblmsParam.setAttach(attachSheetStr);
- // sheet 1
- objInspPblmsParam.setSheet("1");
- }else {
- return false;
- }
- }
- return true;
- }
- }
- private boolean setColumnOfSpecialByObjInsp(BisInspPblm bisInspPblm,LinkedHashMap<String,Object> lhp,String userId,String orgType){
- // 得到问题标准List
- List<ObjInspPblms> objInspPblmsList = this.getObjInspPblmsList(lhp,orgType);
- // 获取问题标准
- ObjInspPblms objInspPblms;
- if(objInspPblmsList.size() == 1){
- objInspPblms = objInspPblmsList.get(0);
- if(objInspPblms == null){
- return false;
- }
- }else{
- return false;
- }
- // 字段 6):INSP_PBLM_TYPE 督查问题类型 -> 从 objInspPblms 里获取
- bisInspPblm.setInspPblmType(objInspPblms.getSort2());
- // 字段 7):INSP_PBLM_CODE 督查问题编码 -> 从 objInspPblms 里获取
- bisInspPblm.setInspPblmCode(objInspPblms.getSnNum());
- // 字段 8):INSP_PBLM_NAME 督查问题名称 -> 从 objInspPblms 里获取
- bisInspPblm.setInspPblmName(objInspPblms.getInspPblmsName());
- // 字段30):PBLMS_TYPE_ID 标准库唯一问题id,可用于存放172(违规行为)
- bisInspPblm.setPblmsTypeId(objInspPblms.getGuid());
- return true;
- }
- private boolean setColumnOfSpecialByObjKey(BisInspPblm bisInspPblm,LinkedHashMap<String,Object> lhp,String userId,String orgType){
- // 得到问题标准List
- String attachType = "";
- if("004".equals(orgType)){
- attachType = "水利工程建设";
- }else if("007".equals(orgType)){
- attachType = "水利工程运行";
- }
- KeyRegPblm keyRegPblm = this.getKeyRegPblm(lhp,attachType);
- // 获取问题标准
- // 字段 6):INSP_PBLM_TYPE 督查问题类型 -> 从 keyRegPblm 里获取
- bisInspPblm.setInspPblmType(keyRegPblm.getInspPblmType());
- // 字段 8):INSP_PBLM_NAME 督查问题名称 -> 从 keyRegPblm 里获取 事实上这里也取类型
- bisInspPblm.setInspPblmName(keyRegPblm.getInspPblmType());
- // 字段30):PBLMS_TYPE_ID 标准库唯一问题id,可用于存放172(违规行为)
- bisInspPblm.setPblmsTypeId(keyRegPblm.getPblmsTypeId());
- bisInspPblm.setPblmsId(keyRegPblm.getPblmsId());
- bisInspPblm.setQualityTypeId(keyRegPblm.getQualityTypeId());
- bisInspPblm.setDefectTypeId(keyRegPblm.getDefectTypeId());
- String problemType = "";
- if(StringUtils.isNotBlank(keyRegPblm.getPblmsTypeId())){
- problemType = "0";
- }else if(StringUtils.isNotBlank(keyRegPblm.getPblmsId())){
- problemType = "2";
- }else if(StringUtils.isNotBlank(keyRegPblm.getQualityTypeId())){
- problemType = "1";
- }else if(StringUtils.isNotBlank(keyRegPblm.getDefectTypeId())){
- problemType = "3";
- }
- // 字段35):PROBLEM_TYPE 问题类别(0违规,1质量,2合同,3工程缺陷) -
- bisInspPblm.setProblemType(problemType);
- return true;
- }
- private boolean setColumnOfOther(BisInspPblm bisInspPblm,LinkedHashMap<String,Object> lhp,String userId,String orgType){
- ImpPblmEnum impPblmEnum = ImpPblmEnum.getEnumByOrgType(orgType);
- // 字段 4):INSP_GROUP_ID 督查组ID - (无值项)
- // 字段 5):PGUID 复查原问题PGUID - (无值项)
- // 字段 9):INSP_PBLM_DESC 督查问题描述 = 详细描述 -> 从Excel解析而来
- // 字段10):INSP_ADD_DESC 督查问题地址描述精确度县乡街道 - (无值项)
- // 字段11):PBLM_LONG 问题经度 - (无值项)
- // 字段12):PBLM_LAT 问题纬度 - (无值项)
- // 字段13):IF_CASE_PBLM 是否典型问题,0否,1是 -> 从Excel解析而来
- // 字段14):INSP_PBLM_ORG_NAME 问题责任单位 - (无值项)
- // 字段15):PBLM_PERS_NAME 问题责任人 - (无值项)
- // 字段16):INSP_PBLM_CATE 督查问题严重程度:0一般,1较重,2严重;3:特别严重 -> 从Excel解析而来
- // 字段17):PBLM_STAT 问题状态
- bisInspPblm.setPblmStat("1");
- // 字段18):REVI_OPIN 复查意见 - (无值项)
- // 字段19):REVI_CONC 复查状态2已复查,1未复查,0新问题 -
- // 字段20):REVI_ORG_GUID 复核单位GUID -
- // 字段21):DATA_STAT 数据状态0:暂存;1:已提交;2:已上报;3:退回;4:审核;5:审办;6:整改通知;7:整改反馈;8:销号;9:删除
- // 字段22):COLL_TIME 采集时间
- // 上报时间,填的话按填写的,不填的话,当前
- // bisInspPblm.setCollTime(new Date());
- try{
- bisInspPblm.setCollTime((Date)lhp.get("collTime"));
- }catch (Exception e){
- bisInspPblm.setCollTime(new Date());
- }
- // 字段23):REC_PERS 操作记录人员
- // 上报人,如果填写按填写的人,不填,按当前用户
- bisInspPblm.setRecPers(this.getRecPers(lhp,userId));
- // 字段24):NOTE 备注
- // 字段26):COMMON_FILE_IDS 上传文件id,多个问题用','分隔
- bisInspPblm.setCommonFileIds("-1");
- // 字段27):FILE_NO 问题附件 -
- // 字段28):FILE_NO_NUMBER 问题序号 -
- // 字段29):PBLMS_ID 非172问题标准父节点id,172工程(合同问题)标准库id
- // 字段32):CWS_CODE 工程code -
- // 字段33):VILLAGE_CODE 村code -
- // 字段34):HAS_VEDIO 是否有多媒体 根据path是否为空来判断
- // 设置是否有多媒体 1无 0有
- Object path = lhp.get("path");
- if(path != null && StringUtils.isNotBlank(path.toString())){
- bisInspPblm.setHasVedio("1");
- }else {
- bisInspPblm.setHasVedio("0");
- }
- // 字段35):PROBLEM_TYPE 问题类别(0违规,1质量,2合同,3工程缺陷) -
- // 字段36):QUALITY_TYPE_ID 172质量缺陷标准id -
- // 字段37):DEFECT_TYPE_ID 172工程缺陷标准id -
- // 字段38):FDBK_ID 172问题最新反馈id -
- // 字段39):ITEM_ID 对应规则id -
- // 字段40):WATER_USER_ID 用水户id
- // 字段41):QUOTE 是否引用 1是 0否
- bisInspPblm.setQuote("0");
- // 字段19):REVI_CONC 复查状态2已复查,1未复查,0新问题 -
- bisInspPblm.setReviConc("0");
- // 字段21):DATA_STAT 数据状态0:暂存;1:已提交;2:已上报;3:退回;4:审核;5:审办;6:整改通知;7:整改反馈;8:销号;9:删除;
- bisInspPblm.setDataStat("1");
- // 和督查类型相关的几个字段
- // 必要字段 3):督查对象类型1小水库,2人饮工程,3水毁工程,4 172工程建设,5水文司地下水,6水闸,7 172工程运行
- bisInspPblm.setObjType(impPblmEnum.getObjType());
- // 字段31):VILL_TYPE 问题类型,0小水库,1行政村,2饮水工程,3水源地,4水毁,5地下水,6人饮(落实情况),7水闸,8水利工程建设,9水利工程运行
- bisInspPblm.setVillType(impPblmEnum.getVillType());
- return true;
- }
- private String getRecPers(LinkedHashMap<String,Object> lhp,String userId){
- try {
- String persName = MapUtils.getString(lhp,"persName");
- if(StringUtils.isBlank(persName)){
- return userId;
- }
- // 查找有无此用户
- UserListByCurUserParam userParam = new UserListByCurUserParam();
- userParam.setCurUserId(userId);
- userParam.setPersName(persName);
- userParam.setPageNum(1);
- userParam.setPageSize(20);
- PageInfo<PersListDto> list = bisInspAllRlationPersService.listByCurUser(userParam);
- if(list != null){
- List<PersListDto> persListDtos = list.getList();
- if(persListDtos != null && persListDtos.size() > 0){
- return persListDtos.get(0).getGuid();
- }
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- return userId;
- }
- private BisInspRsvrRgstrPcDto getRsvrRgstrDto(String userId,String pType,String code,String id){
- if(StringUtils.isNotBlank(userId) && StringUtils.isNotBlank(pType)
- && StringUtils.isNotBlank(id) && StringUtils.isNotBlank(code)){
- TypeParam typeParam = new TypeParam();
- typeParam.setPresId(userId);
- typeParam.setpType(pType);
- typeParam.setId(id);
- // typeParam.setCode(code);
- typeParam.setRsName(code);
- List<BisInspRsvrRgstrPcDto> list = bisInspRsvrRgstrDao.findPcPage(typeParam);
- if(list.size() == 1){
- return list.get(0);
- }
- }
- return null;
- }
- private BisInspWagaRgstrDto getWagaRgstrDto(String userId,String pType,String code,String id){
- if(StringUtils.isNotBlank(userId) && StringUtils.isNotBlank(pType)
- && StringUtils.isNotBlank(id) && StringUtils.isNotBlank(code)){
- TypeParam typeParam = new TypeParam();
- typeParam.setPresId(userId);
- typeParam.setpType(pType);
- typeParam.setPlnaId(id);
- // typeParam.setCode(code);
- typeParam.setRsName(code);
- List<BisInspWagaRgstrDto> list = attWagaRgstrDao.findWagaPage(typeParam);
- if(list.size() == 1){
- return list.get(0);
- }
- }
- return null;
- }
- private BisInspSdRgstrDto getSdRgstrDto(String userId,String pType,String code,String id){
- if(StringUtils.isNotBlank(userId) && StringUtils.isNotBlank(pType)
- && StringUtils.isNotBlank(id) && StringUtils.isNotBlank(code)){
- TypeParam typeParam = new TypeParam();
- typeParam.setPresId(userId);
- typeParam.setpType(pType);
- typeParam.setId(id);
- typeParam.setCode(code);
- List<BisInspSdRgstrDto> list = bisInspSdRgstrDao.findSdPage(typeParam);
- if(list.size() == 1){
- return list.get(0);
- }
- }
- return null;
- }
- private BisInspRgstrDto getRgstrCommon(String userId,String pType,String code,String id){
- ImpPblmEnum impPblmEnum = ImpPblmEnum.getEnumByObjType(pType);
- if(impPblmEnum == null){
- return null;
- }
- switch (impPblmEnum){
- case IMP_SWHS:
- return this.getSwhsRgstr(userId,pType,code,id);
- case IMP_WIU:
- return this.getWiuRgstr(userId, pType, code, id);
- case IMP_SVWT:
- return this.getSvwtRgstr(userId, pType, code, id);
- case IMP_WUNT:
- return this.getWuntRgstr(userId, pType, code, id);
- default:
- return null;
- }
- }
- private BisInspRgstrDto getSwhsRgstr(String userId,String pType,String code,String id){
- if(StringUtils.isNotBlank(userId) && StringUtils.isNotBlank(pType)
- && StringUtils.isNotBlank(id) && StringUtils.isNotBlank(code)){
- TypeParam typeParam = new TypeParam();
- typeParam.setPresId(userId);
- typeParam.setpType(pType);
- typeParam.setId(id);
- typeParam.setCode(code);
- List<BisInspRgstrDto> list = bisInspSwhsRgstrDao.findSwhsPage(typeParam);
- if(list.size() == 1){
- return list.get(0);
- }
- }
- return null;
- }
- private BisInspRgstrDto getWiuRgstr(String userId,String pType,String code,String id){
- if(StringUtils.isNotBlank(userId) && StringUtils.isNotBlank(pType)
- && StringUtils.isNotBlank(id) && StringUtils.isNotBlank(code)){
- TypeParam typeParam = new TypeParam();
- typeParam.setPresId(userId);
- typeParam.setpType(pType);
- typeParam.setId(id);
- typeParam.setCode(code);
- List<BisInspRgstrDto> list = bisInspWiuRgstrDao.findWiuList(typeParam);
- if(list.size() == 1){
- return list.get(0);
- }
- }
- return null;
- }
- private BisInspRgstrDto getSvwtRgstr(String userId,String pType,String nm,String id){
- if(StringUtils.isNotBlank(userId) && StringUtils.isNotBlank(pType)
- && StringUtils.isNotBlank(id) && StringUtils.isNotBlank(nm)){
- TypeParam typeParam = new TypeParam();
- typeParam.setPresId(userId);
- typeParam.setpType(pType);
- typeParam.setId(id);
- typeParam.setRsName(nm);
- List<BisInspRgstrDto> list = null;
- if(ImpPblmEnum.getEnumByObjType(pType) == IMP_SVWT){
- list = bisInspSvwtAreaRgstrDao.findSvwtAreaList(typeParam);
- }
- if(ImpPblmEnum.getEnumByObjType(pType) == IMP_WUNT){
- list = bisInspSvwtWuntRgstrDao.findSvwtWuntList(typeParam);
- }
- if(list != null && list.size() == 1){
- return list.get(0);
- }
- }
- return null;
- }
- private BisInspRgstrDto getWuntRgstr(String userId,String pType,String nm,String id){
- return this.getSvwtRgstr(userId,pType,nm,id);
- }
- /**
- * 只入库一次,只取一次,取完及时删除
- */
- private List<LinkedHashMap<String,Object>> getParseDataByRedis(String cacheId){
- // 取出
- List<LinkedHashMap<String,Object>> listParse = redisTemplate.opsForList().range(cacheId, 0, -1);
- // 删除
- redisTemplate.delete(cacheId);
- return listParse;
- }
- private String uploadFileExcel(MultipartFile file){
- String excleName = UuidUtil.uuid();
- // 获取到Excel的存放路径
- String parentPath = getDateFormatPath(this.impExcelBashPath);
- // 把文件流写入到此位置
- boolean success = gwComFileService.writeFile(excleName, ImpUtil.XLS, file, parentPath);
- if(success){
- return parentPath + File.separator + excleName + ".xls";
- }else {
- return "";
- }
- }
- private String uploadFileExcelCommon(MultipartFile file){
- // 临时路径
- String parentPath = getDateFormatPath(this.impExcelBashPath);
- String filePath = "";
- try{
- filePath = ExpAndImpUtil.upload(file,parentPath);
- }catch (Exception e){
- e.printStackTrace();
- }
- return filePath;
- }
- private String uploadFileZip(MultipartFile file){
- String zipName = UuidUtil.uuid();
- // 先存放到一个临时路径,再剪切或复制到图片路径下
- String parentPath = getDateFormatPath(this.impExcelBashPath);
- // 把文件流写入到此位置
- boolean success = gwComFileService.writeFile(zipName, ImpUtil.ZIP, file, parentPath);
- String filePath = "";
- if(success){
- // 解压
- try {
- filePath = parentPath + File.separator + zipName + "." + ImpUtil.ZIP;
- //解压到此文件夹
- ZipUtil.unzip(new File(filePath), parentPath);
- }catch (Exception e){
- filePath = "";
- e.printStackTrace();
- }
- }
- return filePath;
- }
- private String uploadFileZipCommon(MultipartFile file){
- // 先存放到一个临时路径,再剪切或复制到图片路径下
- String parentPath = getDateFormatPath(this.impExcelBashPath);
- String filePath = "";
- try{
- filePath = ExpAndImpUtil.uploadFileZipCommon(file,parentPath);
- }catch (Exception e){
- e.printStackTrace();
- }
- return filePath;
- }
- }
|