| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431 |
- package cn.com.goldenwater.dcproj.service.impl;
- import cn.com.goldenwater.core.persistence.CrudDao;
- import cn.com.goldenwater.core.service.AbstractCrudService;
- import cn.com.goldenwater.dcproj.constValue.CommonLabel;
- import cn.com.goldenwater.dcproj.constValue.SplitValue;
- import cn.com.goldenwater.dcproj.dao.*;
- import cn.com.goldenwater.dcproj.model.*;
- import cn.com.goldenwater.dcproj.param.BisInspRsvrynPblmMendParam;
- import cn.com.goldenwater.dcproj.param.GwComFileParam;
- import cn.com.goldenwater.dcproj.service.AttRsBaseService;
- import cn.com.goldenwater.dcproj.service.BisInspRsvrynPblmMendService;
- import cn.com.goldenwater.dcproj.service.GwComFileService;
- import cn.com.goldenwater.dcproj.utils.*;
- import com.github.pagehelper.PageHelper;
- import com.github.pagehelper.PageInfo;
- import net.sf.json.JSONArray;
- import net.sf.json.JSONObject;
- import net.sf.json.JsonConfig;
- import org.apache.commons.collections.map.HashedMap;
- import org.apache.commons.lang3.StringUtils;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.stereotype.Service;
- import java.io.File;
- import java.text.SimpleDateFormat;
- import java.util.*;
- import java.util.stream.Collectors;
- /**
- * @author lune
- * @date 2020-7-7
- */
- @Service
- public class BisInspRsvrynPblmMendServiceImpl extends AbstractCrudService<BisInspRsvrynPblmMend, BisInspRsvrynPblmMendParam> implements BisInspRsvrynPblmMendService {
- private Logger logger = LoggerFactory.getLogger(getClass());
- private static String accessToken = "";
- @Value("${mwr.ducha.url}")
- private String quanguoUrl;
- @Value("${hunan.phone}")
- private String phone;
- @Value("${quanguocode}")
- private String smscode;
- @Value("${getFile.prefix}")
- public String prefix;
- @Autowired
- private OlBisInspOrgDao olBisInspOrgDao;
- @Autowired
- private BisInspRsvrynPblmMendDao bisInspRsvrynPblmMendDao;
- @Autowired
- private GwComFileDao gwComFileDao;
- @Autowired
- private AttAdBaseDao attAdBaseDao;
- @Value("${web.upload-path}")
- public String fileDir;
- @Autowired
- private BisInspRsvrynRgstrDao bisInspRsvrynRgstrDao;
- @Autowired
- private GwComFileService gwComFileService;
- public BisInspRsvrynPblmMendServiceImpl(BisInspRsvrynPblmMendDao bisInspRsvrynPblmMendDao) {
- super(bisInspRsvrynPblmMendDao);
- this.bisInspRsvrynPblmMendDao = bisInspRsvrynPblmMendDao;
- }
- @Override
- public PageInfo<BisInspRsvrynPblmMend> findRsvrPblmPage(BisInspRsvrynPblmMendParam bisInspRsvrynPblmMendParam) {
- if (StringUtils.isNotBlank(bisInspRsvrynPblmMendParam.getAdCode())) {
- bisInspRsvrynPblmMendParam.setAdCode(AdLevelUtil.SubAd(bisInspRsvrynPblmMendParam.getAdCode()).get(SplitValue.SUBAD).toString());
- }
- PageHelper.startPage(bisInspRsvrynPblmMendParam);
- List<BisInspRsvrynPblmMend> result = bisInspRsvrynPblmMendDao.findRsvrPblmList(bisInspRsvrynPblmMendParam);
- if (result.size() > 0) {
- result.forEach(mend -> {
- List<GwComFile> gwComFiles = gwComFileDao.findFileByBiz(mend.getId());
- if (gwComFiles != null && gwComFiles.size() > 0) {
- gwComFiles = gwComFiles.stream().filter(file -> "MEND_EXTRA".equals(file.getBizType())).collect(Collectors.toList());
- }
- mend.setGwComFiles(gwComFiles);
- });
- }
- PageInfo<BisInspRsvrynPblmMend> pageInfo = new PageInfo<>(result);
- return pageInfo;
- }
- /**
- * 每日凌晨一点定时导入小水库问题数据
- */
- @Override
- public void getQuanguo() {
- //登录
- BisInspAllRlationPers bisInspAllRlationPers = this.login();
- Map<String, String> params = new HashMap<>();
- if (bisInspAllRlationPers != null) {
- Map<String, String> headerMap = new HashMap<>();
- headerMap.put(CommonLabel.ACCESS_TOKEN, accessToken);
- headerMap.put(CommonLabel.PERSID, bisInspAllRlationPers.getGuid());
- List<AttAdBase> attAdBases = attAdBaseDao.getAdData("000000000000");
- Calendar calendar = Calendar.getInstance();
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- String entm = DateUtils.Calendar2Str(calendar, "yyyy-MM-dd HH:mm:ss");
- calendar.add(Calendar.DAY_OF_MONTH, -3);//今天的时间减三天
- String sttm = DateUtils.Calendar2Str(calendar, "yyyy-MM-dd HH:mm:ss");
- logger.info("-------------开始导入部里数据----------------");
- for (AttAdBase attAdBase : attAdBases) {
- //设置省份导入
- String adCode = attAdBase.getAdCode();
- params.put("adCode", AdLevelUtil.getAddvcd(adCode));
- /*params.put("adCode", "53");*/
- params.put("startTime", sttm);
- params.put("endTime", entm);
- List<BisInspRsvrynPblmMend> bisInspRsvrynPblmMends = getBisInspRects(bisInspAllRlationPers, params, headerMap);
- //获取小水库数据并插入本地库
- // insertRsvr(bisInspRsvrynPblmMends, bisInspAllRlationPers, params, headerMap);
- bisInspRsvrynPblmMends.stream().forEach(bisInspRsvrynPblmMend -> {
- bisInspRsvrynPblmMendDao.insertRsvr(bisInspRsvrynPblmMend);
- //插入附件信息,下载附件文件
- String fileBizId = bisInspRsvrynPblmMend.getId();
- if (downloadFile(fileBizId, headerMap)) {
- //下载成功
- logger.info("下载成功");
- } else {
- //下载失败
- logger.info("下载失败");
- }
- //如果附件已经插入则放弃,如果没有则进行插入
- });
- }
- logger.info("-------------导入部里数据结束----------------");
- }
- }
- /**
- * 调用部里登录接口
- *
- * @return
- */
- public BisInspAllRlationPers login() {
- String apiUrl = quanguoUrl + "/bis/insp/loginByCode";
- Map<String, String> params = new HashMap<>();
- params.put("phone", phone);
- params.put("code", smscode);
- String content = HttpClientUtils.doHttpsPost(apiUrl, params, new HashedMap());
- JSONObject jsonObject = JSONObject.fromObject(content);
- //登录结果返回
- if (jsonObject != null && jsonObject.size() > 3) {
- //获取token
- accessToken = jsonObject.getString(CommonLabel.ACCESS_TOKEN);
- String data = jsonObject.getString("data");
- JSONObject object = JSONObject.fromObject(data);
- return (BisInspAllRlationPers) JSONObject.toBean(object, BisInspAllRlationPers.class);
- }
- return new BisInspAllRlationPers();
- }
- /**
- * 下发通知,问题反馈
- *
- * @param params
- * @param headerMap
- * @param
- */
- private void sendInform(Map<String, String> params, Map<String, String> headerMap, List<BisInspRsvrynPblmMend> bisInspRsvrynPblmMends) {
- /* String rectIds = rectList.stream().map(n -> n.getId()).collect(Collectors.joining(","));
- params.clear();
- params.put("rectIds", rectIds);
- String rectpblmUrl = quanguoUrl + "/api/bis/insp/rect/findRecPblmListByRectIds";
- HttpClientUtils.doHttpsPost(rectpblmUrl, params, headerMap);
- //通知下发成功,更改获取通知状态
- String rectMsgUrl = quanguoUrl + "/api/bis/insp/rect/restRectByIds";
- HttpClientUtils.doHttpsPost(rectMsgUrl, params, headerMap);
- //问题反馈成功,信息反馈(未部署)
- String rectPortUrl = quanguoUrl + "/api/bis/insp/rect/restRectPblmByIds";
- HttpClientUtils.doHttpsPost(rectPortUrl, params, headerMap);*/
- }
- /**
- * 获取小水库数据并插入本地库
- *
- * @param bisInspAllRlationPers
- * @param params
- * @param headerMap
- */
- private void insertRsvr(List<BisInspRsvrynPblmMend> bisInspRsvrynPblmMends, BisInspAllRlationPers bisInspAllRlationPers, Map<String, String> params, Map<String, String> headerMap) {
- /* List<BisInspRsvrynPblmMend> list = new ArrayList<>();
- int delDataStep = 0;
- for (int i = 0; i < bisInspRsvrynPblmMends.size(); i++) {
- list.add(bisInspRsvrynPblmMends.get(i));
- delDataStep++;
- if (delDataStep == 50) {
- bisInspRsvrynPblmMendDao.insertRsvr(list);
- list.clear();
- delDataStep = 0;
- }
- if (i == bisInspRsvrynPblmMends.size() - 1) {
- bisInspRsvrynPblmMendDao.insertRsvr(list);
- list.clear();
- }
- }*/
- }
- /**
- * 下载数据
- *
- * @param bisInspAllRlationPers
- * @param params
- * @param headerMap
- * @return
- */
- private List<BisInspRsvrynPblmMend> getBisInspRects(BisInspAllRlationPers bisInspAllRlationPers, Map<String, String> params, Map<String, String> headerMap) {
- //OlBisInspOrg olBisInspOrg = olBisInspOrgDao.get(bisInspAllRlationPers.getOrgId());
- //获取用户相关信息
- String rectUrl = quanguoUrl + "/bis/insp/rsvr/pblm/mend/downLoadRsvrList";
- Calendar date = Calendar.getInstance();
- params.put("year", String.valueOf(date.get(Calendar.YEAR)));
- params.put("mnth", String.valueOf(date.get(Calendar.MONTH) + 1));
- //params.put("rsName", "弄贯(二)水库");
- String rectContent = "";
- try {
- rectContent = HttpClientUtils.doHttpsPost2(rectUrl, params, headerMap);
- JSONObject jsonObject = JSONObject.fromObject(rectContent);
- JSONArray jsonArray = jsonObject.getJSONArray("data");
- List<BisInspRsvrynPblmMend> bisInspRsvrynPblmMends;
- bisInspRsvrynPblmMends = JSONArray.toList(jsonArray, new BisInspRsvrynPblmMend(), new JsonConfig());
- return bisInspRsvrynPblmMends;
- } catch (Exception e) {
- logger.info(rectContent);
- logger.info(e.getMessage());
- return null;
- }
- }
- /**
- * 手动导入小水库数据
- *
- * @param bisInspRsvrynPblmMendParam
- */
- @Override
- public void importRsvrData(BisInspRsvrynPblmMendParam bisInspRsvrynPblmMendParam) {
- //调用部里登录接口
- BisInspAllRlationPers bisInspAllRlationPers = this.login();
- Map<String, String> params = new HashMap<>();
- if (bisInspAllRlationPers != null) {
- Map<String, String> headerMap = new HashMap<>();
- headerMap.put(CommonLabel.ACCESS_TOKEN, accessToken);
- headerMap.put(CommonLabel.PERSID, bisInspAllRlationPers.getGuid());
- //获取用户相关信息
- List<AttAdBase> attAdBases = attAdBaseDao.getAdData("000000000000");
- for (AttAdBase attAdBase : attAdBases) {
- String adCode = attAdBase.getAdCode();
- params.put("adCode", AdLevelUtil.getAddvcd(adCode));
- List<BisInspRsvrynPblmMend> bisInspRsvrynPblmMends = getBisInspRects(bisInspAllRlationPers, params, headerMap);
- //获取小水库数据并插入本地库
- /*insertRsvr(bisInspRsvrynPblmMends, bisInspAllRlationPers, params, headerMap);*/
- bisInspRsvrynPblmMends.stream().forEach(bisInspRsvrynPblmMend -> {
- bisInspRsvrynPblmMendDao.insertRsvr(bisInspRsvrynPblmMend);
- });
- }
- }
- }
- public Boolean downloadFile(String bizId, Map<String, String> headerMap) {
- String rectUrl = quanguoUrl + "/file/findFileByBiz?bizId=" + bizId;
- Map<String, String> params = new HashMap<>();
- //params.put("bizId", bizId);
- String rectContent = "";
- try {
- rectContent = HttpClientUtils.doHttpsPost(rectUrl, params, headerMap);
- JSONObject jsonObject = JSONObject.fromObject(rectContent);
- JSONArray jsonArray = jsonObject.getJSONArray("data");
- List<GwComFile> gwComFiles;
- gwComFiles = JSONArray.toList(jsonArray, new GwComFile(), new JsonConfig());
- //拼接 访问地址做下载
- for (GwComFile gwComFile : gwComFiles
- ) {
- String path = quanguoUrl + "/" + gwComFile.getFilePath();
- fileDir = fileDir.replace("upload/", "");
- String dirPath = fileDir + gwComFile.getFilePath().substring(0, gwComFile.getFilePath().lastIndexOf("/"));
- File pathFile = new File(dirPath);
- if (!pathFile.exists()) {
- pathFile.mkdirs();
- }
- ;
- HttpsDownloadUtils.downloadFile(path, fileDir + gwComFile.getFilePath());
- //插入插入本地数据库记录
- if (null != gwComFileService.get(gwComFile.getId())) {
- gwComFileService.update(gwComFile);
- } else {
- gwComFileService.insert(gwComFile);
- }
- }
- return true;
- } catch (Exception ex) {
- logger.info(rectContent);
- logger.info(ex.getMessage());
- return false;
- }
- }
- @Override
- public void updRevwInfo() {
- //调用部里登录接口
- BisInspAllRlationPers bisInspAllRlationPers = this.login();
- Map<String, String> params = new HashMap<>();
- String mwrUrl = quanguoUrl + "/bis/insp/rsvr/pblm/mend/findRsvrList";
- Map<String, String> headerMap = new HashMap<>();
- headerMap.put(CommonLabel.ACCESS_TOKEN, accessToken);
- headerMap.put(CommonLabel.PERSID, bisInspAllRlationPers.getGuid());
- params.put("revwInfo", "revwInfo");
- params.put("persGuid", bisInspAllRlationPers.getGuid());
- String mwrContent = HttpClientUtils.doHttpsPost2(mwrUrl, params, headerMap);
- JSONObject jsonObject = JSONObject.fromObject(mwrContent);
- JSONArray mwrJsonArray = jsonObject.getJSONArray("data");
- List<BisInspRsvrynPblmMend> bisInspRsvrynPblmMends = JSONArray.toList(mwrJsonArray, new BisInspRsvrynPblmMend(), new JsonConfig());
- for (BisInspRsvrynPblmMend bisInspRsvrynPblmMend : bisInspRsvrynPblmMends) {
- bisInspRsvrynPblmMendDao.updateRevwInfo(bisInspRsvrynPblmMend.getId(), bisInspRsvrynPblmMend.getRevwInfo());
- }
- }
- @Override
- public int update2021(BisInspRsvrynPblmMend bisInspRsvrynPblmMend) {
- int update = update(bisInspRsvrynPblmMend);
- BisInspRsvrynRgstr bisInspRsvrynRgstr = new BisInspRsvrynRgstr();
- String rgstrId = bisInspRsvrynPblmMend.getRgstrId();
- bisInspRsvrynRgstr.setRgstrId(rgstrId);
- BisInspRsvrynPblmMendParam mendParam = new BisInspRsvrynPblmMendParam();
- mendParam.setRsCode(bisInspRsvrynPblmMend.getRsCode());
- // mendParam.setRsName(bisInspRsvrynPblmMend.getRsName());
- // mendParam.setAdCode(bisInspRsvrynPblmMend.getAdCode());
- List<BisInspRsvrynPblmMend> mendList = findList(mendParam);
- if (mendList != null) { //统计所有问题的状态得出登记表状态
- String rectState = "2";//要求前端校验提交的数据(即当前修改的问题必须有值)
- for (BisInspRsvrynPblmMend mend : mendList) {
- if (mend.getRevwState() == null || !"2".equals(mend.getRevwState())) {
- rectState = "1";
- break;
- }
- }
- bisInspRsvrynRgstr.setRectStat(rectState);
- }
- BisInspRsvrynRgstr rgstr = bisInspRsvrynRgstrDao.get(rgstrId);
- if (rgstr != null) {
- if (!Constant.STRING_TWO.equals(rgstr.getState())) {
- bisInspRsvrynRgstr.setState(Constant.STRING_ONE);
- }
- bisInspRsvrynRgstrDao.update(bisInspRsvrynRgstr);
- }
- List<GwComFile> gwComFiles = bisInspRsvrynPblmMend.getGwComFiles();
- // 为 佐证材料 类的文件 不能删除,所以直接加上
- GwComFileParam param = new GwComFileParam();
- param.setBizId(bisInspRsvrynPblmMend.getId());
- param.setBizType("MEND_PROV");
- List<GwComFile> prov = gwComFileService.findList(param);
- if (gwComFiles != null && gwComFiles.size() > 0) {
- if (prov != null) {
- gwComFiles.addAll(prov);
- }
- gwComFileService.updateBiz(gwComFiles, bisInspRsvrynPblmMend.getId());
- }
- return 0;
- }
- @Autowired
- private AttRsBaseService attRsBaseService;
- @Override
- public int insert2021(BisInspRsvrynPblmMend bisInspRsvrynPblmMend) {
- Optional.ofNullable(bisInspRsvrynPblmMend).map(BisInspRsvrynPblmMend::getRsCode).ifPresent(rsCode -> {
- AttRsBase attRsBase = attRsBaseService.get(rsCode);
- Optional.ofNullable(attRsBase).ifPresent(base -> {
- bisInspRsvrynPblmMend.setEngScal(base.getEngScal());
- bisInspRsvrynPblmMend.setRsName(base.getRsName());
- });
- });
- int insert = insert(bisInspRsvrynPblmMend);
- BisInspRsvrynRgstr bisInspRsvrynRgstr = new BisInspRsvrynRgstr();
- String rgstrId = bisInspRsvrynPblmMend.getRgstrId();
- bisInspRsvrynRgstr.setRgstrId(rgstrId);
- BisInspRsvrynPblmMendParam mendParam = new BisInspRsvrynPblmMendParam();
- // mendParam.setRsCode(bisInspRsvrynPblmMend.getRsCode());
- mendParam.setRsName(bisInspRsvrynPblmMend.getRsName());
- mendParam.setAdCode(bisInspRsvrynPblmMend.getAdCode());
- List<BisInspRsvrynPblmMend> mendList = findList(mendParam);
- if (mendList != null) { //统计所有问题的状态得出登记表状态
- String rectState = "2";//要求前端校验提交的数据(即当前修改的问题必须有值)
- for (BisInspRsvrynPblmMend mend : mendList) {
- if (mend.getRevwState() == null || !mend.getRevwState().equals("2")) {
- rectState = "1";
- break;
- }
- }
- bisInspRsvrynRgstr.setRectStat(rectState);
- }
- BisInspRsvrynRgstr rgstr = bisInspRsvrynRgstrDao.get(rgstrId);
- if (rgstr != null) {
- if (!Constant.STRING_TWO.equals(rgstr.getState())) {
- bisInspRsvrynRgstr.setState(Constant.STRING_ONE);
- }
- bisInspRsvrynRgstrDao.update(bisInspRsvrynRgstr);
- }
- List<GwComFile> gwComFiles = bisInspRsvrynPblmMend.getGwComFiles();
- if (gwComFiles != null && gwComFiles.size() > 0) {
- gwComFileService.updateBiz(gwComFiles, bisInspRsvrynPblmMend.getId());
- }
- return 0;
- }
- @Override
- public PageInfo<BisInspRsvrynPblmMend> pagerPc(BisInspRsvrynPblmMendParam bisInspRsvrynPblmMendParam) {
- PageHelper.startPage(bisInspRsvrynPblmMendParam);
- List<BisInspRsvrynPblmMend> list = bisInspRsvrynPblmMendDao.findList(bisInspRsvrynPblmMendParam);
- return new PageInfo<>(list);
- }
- }
|