| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354 |
- package cn.com.goldenwater.dcproj.controller.sso;
- import cn.com.goldenwater.core.web.BaseController;
- import cn.com.goldenwater.core.web.BaseResponse;
- import cn.com.goldenwater.dcproj.dao.GwComFileDao;
- import cn.com.goldenwater.dcproj.model.*;
- import cn.com.goldenwater.dcproj.param.GwComFileParam;
- import cn.com.goldenwater.dcproj.param.TacProvincePblmInfoParam;
- import cn.com.goldenwater.dcproj.param.TacProvincePblmMendInfoParam;
- import cn.com.goldenwater.dcproj.service.SsoService;
- import cn.com.goldenwater.dcproj.service.TacAttPawpBaseService;
- import cn.com.goldenwater.dcproj.service.TacProvincePblmInfoService;
- import cn.com.goldenwater.dcproj.service.TacProvincePblmMendInfoService;
- import cn.com.goldenwater.dcproj.util.StringUtil;
- import cn.com.goldenwater.dcproj.utils.DateUtils;
- import cn.com.goldenwater.dcproj.utils.http.SsoHttpHelper;
- import cn.com.goldenwater.id.util.UuidUtil;
- import com.dcxx.framework.watermanagesdk.model.ResponseMessage;
- import com.dcxx.framework.watermanagesdk.utils.EncryptHelper;
- import io.swagger.annotations.Api;
- import io.swagger.annotations.ApiParam;
- import net.sf.json.JSONArray;
- import org.apache.commons.collections.MapUtils;
- import org.apache.commons.lang3.StringUtils;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.BeanUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.context.annotation.ComponentScan;
- import org.springframework.scheduling.annotation.Scheduled;
- import org.springframework.web.bind.annotation.RequestBody;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestMethod;
- import org.springframework.web.bind.annotation.RestController;
- import java.util.*;
- import java.util.stream.Collectors;
- @Api(value = "定川数据同步接口", tags = "定川数据同步接口")
- @RestController
- @RequestMapping("/ding/chuan")
- @ComponentScan(basePackages =
- {"com.dcxx.framework.watermanagesdk.config"})
- public class DingChuanController extends BaseController {
- @Autowired
- private SsoService ssoService;
- @Autowired
- private SsoHttpHelper ssoHttpHelper;
- @Value("${watermanage.appkey}")
- private String appkey;
- @Value("${ding.chuan.send.data}")
- private String dingChuanSendData;
- @Value("${watermanage.appsecret}")
- private String appsecret;
- private Logger logger = LoggerFactory.getLogger(getClass());
- @Value("${watermanage.baseurl}")
- private String baseurl;
- @Autowired
- TacAttPawpBaseService tacAttPawpBaseService;
- @Autowired
- TacProvincePblmInfoService tacProvincePblmInfoService;
- @Autowired
- GwComFileDao gwComFileDao;
- @Autowired
- TacProvincePblmMendInfoService tacProvincePblmMendInfoService;
- //稽察整改问题反馈
- @RequestMapping(value = "/recvPblmMend", method = RequestMethod.POST)
- public BaseResponse<List<TacProvincePblmInfoRecv>> recvPblmMend(@ApiParam(name = "tacProvincePblmInfoRecvs", value = "tacProvincePblmInfoRecvs", required = true) @RequestBody List<TacProvincePblmInfoRecv> tacProvincePblmInfoRecvs) throws Exception {
- //问题ID是否为空,问题整改状态
- for (TacProvincePblmInfoRecv tacProvincePblmInfoRecv : tacProvincePblmInfoRecvs) {
- //搜索整改表是否加入过这个问题,加入过则更新,如果没有则先插入然后更新。
- TacProvincePblmMendInfoParam tacProvincePblmMendInfoParam = new TacProvincePblmMendInfoParam();
- tacProvincePblmMendInfoParam.setPblmId(tacProvincePblmInfoRecv.getId());
- List<TacProvincePblmMendInfo> tacProvincePblmMendInfos = tacProvincePblmMendInfoService.findList(tacProvincePblmMendInfoParam);
- TacProvincePblmMendInfo tacProvincePblmMendInfo = new TacProvincePblmMendInfo();
- tacProvincePblmMendInfo.setPblmId(tacProvincePblmInfoRecv.getId());
- tacProvincePblmMendInfo.setPersNm(tacProvincePblmInfoRecv.getPersName());
- tacProvincePblmMendInfo.setCrtInfo(tacProvincePblmInfoRecv.getCrtInfo());
- tacProvincePblmMendInfo.setCrtState(tacProvincePblmInfoRecv.getCrtState());
- tacProvincePblmMendInfo.setIsStart("1");
- tacProvincePblmMendInfo.setIsRect("1");
- tacProvincePblmMendInfo.setPblmOut("1");
- if (tacProvincePblmMendInfos.size() > 0) {
- //更新第一个的整改状态
- tacProvincePblmMendInfoService.updateByPblmId(tacProvincePblmMendInfo);
- } else {
- //补充其他列信息
- TacProvincePblmInfo tacProvincePblmInfo = tacProvincePblmInfoService.get(tacProvincePblmInfoRecv.getId());
- tacProvincePblmMendInfo.setPblmId(tacProvincePblmInfoRecv.getId());
- BeanUtils.copyProperties(tacProvincePblmInfo, tacProvincePblmMendInfo);
- //插入内容并更新整改状态
- tacProvincePblmMendInfoService.insert(tacProvincePblmMendInfo);
- }
- //插入附件
- for (GwComFile gwComFile : tacProvincePblmInfoRecv.getGwComFiles()) {
- gwComFile.setBizId(tacProvincePblmInfoRecv.getId());
- gwComFile.setId(UuidUtil.uuid());
- gwComFile.setCreateDate(new Date());
- gwComFileDao.insert(gwComFile);
- }
- }
- return buildSuccessResponse(tacProvincePblmInfoRecvs);
- }
- /**
- * @param
- * @return java.lang.String
- * @Description 同步稽察问题数据
- * @Date 2020/7/14
- **/
- //按照工程推送最终阶段历史问题,如果问题没有走到最终阶段则放弃。
- @RequestMapping(value = "/sendTacPblm", method = RequestMethod.POST)
- @Scheduled(cron = "0 0 8 * * ? ")
- public void sendTacPblm() throws Exception {
- logger.info("---------------start send Data---------------");
- logger.info("--------------------dingChuanSendData:" + dingChuanSendData + "--------------------");
- if (dingChuanSendData.equals("1")) {
- /* logger.info("---------------start send---------------");
- sendTacPblmByYear("2020");
- logger.info("---------------send 2020 pblm end---------------");
- sendTacPblmByYear("2021");
- logger.info("---------------send 2021 pblm end ---------------");*/
- sendTacPblmByYear("2022");
- logger.info("---------------send 2022 pblm end ---------------");
- }
- }
- public void sendTacPblmByYear(String year) throws Exception {
- try {
- List<DingChuanTacProject> dingChuanTacProjects = tacAttPawpBaseService.getAllPrject(year);
- for (DingChuanTacProject dingChuanTacProject : dingChuanTacProjects) {
- String watermanage_access_token = ssoHttpHelper.getAccessTokenDingChuan("988e2fa1f97611eb8ed3005056bb91dd", "113e2fb1f31311");
- //调用接口
- Date dt = new Date();
- Map<String, Object> parameter = new HashMap<>();//添加参数
- parameter.put("appkey", appkey);
- String nonce = UuidUtil.genernateNonce(8);
- parameter.put("nonce", nonce);
- String timestamp = System.currentTimeMillis() + "";
- parameter.put("timestamp", timestamp);
- String content = "988e2fa1f97611eb8ed3005056bb91dd" + "113e2fb1f31311" + nonce + timestamp;
- parameter.put("sign", EncryptHelper.sha(content));
- parameter.put("inspectCode", dingChuanTacProject.getInspectCode());
- parameter.put("inspectYear", dingChuanTacProject.getInspectYear());
- parameter.put("inspectBatch", dingChuanTacProject.getInspectBatch());
- parameter.put("inspectGroup", dingChuanTacProject.getInspectGroup());
- parameter.put("objectName", dingChuanTacProject.getObjectName());
- parameter.put("objectAdcd", dingChuanTacProject.getObjectAdcd());
- parameter.put("inspectionDate", dingChuanTacProject.getInspectionDate());
- parameter.put("projectOrgName", dingChuanTacProject.getProjectOrgName());
- parameter.put("adName", dingChuanTacProject.getAdName());
- parameter.put("inspectName", dingChuanTacProject.getInspectName());
- parameter.put("objectLocation", dingChuanTacProject.getObjectLocation());
- parameter.put("objectTypeName", dingChuanTacProject.getObjectTypeName());
- parameter.put("manageUnitName", dingChuanTacProject.getManageUnitName());
- parameter.put("suggestion", dingChuanTacProject.getSuggestion());
- parameter.put("reformPeriod", dingChuanTacProject.getReformPeriod());
- parameter.put("reformPeriodDate", dingChuanTacProject.getReformPeriodDate());
- parameter.put("groupLeaderName", getJcLeader(tacAttPawpBaseService.getJcDescData(dingChuanTacProject.getRgstrId())));
- parameter.put("groupMember", getJcPers(tacAttPawpBaseService.getJcDescData(dingChuanTacProject.getRgstrId())));
- parameter.put("inspectFileUrl", dingChuanTacProject.getInspectFileUrl());
- TacProvincePblmInfoParam tacProvincePblmInfoParam = new TacProvincePblmInfoParam();
- tacProvincePblmInfoParam.setRgstrId(dingChuanTacProject.getRgstrId());
- tacProvincePblmInfoParam.setStepId(dingChuanTacProject.getStepId());
- List<TacProvincePblmInfo> tacProvincePblmInfos = tacProvincePblmInfoService.findList(tacProvincePblmInfoParam);
- List<TacProvincePblmInfoDingChuan> tacProvincePblmInfoDingChuans = convertPblm(tacProvincePblmInfos);
- //获取问题对应附件信息
- for (TacProvincePblmInfoDingChuan tacProvincePblmInfoDingChuan : tacProvincePblmInfoDingChuans
- ) {
- GwComFileParam gwComFileParam = new GwComFileParam();
- gwComFileParam.setBizId(tacProvincePblmInfoDingChuan.getId());
- List<GwComFile> gwComFiles = gwComFileDao.findList(gwComFileParam);
- gwComFiles = convertGwFile(gwComFiles);
- tacProvincePblmInfoDingChuan.setGwComFileList(gwComFiles);
- }
- parameter.put("problemList", tacProvincePblmInfoDingChuans);//获取最后阶段问题数据
- if (tacProvincePblmInfos.size() > 0) {
- ResponseMessage re = ssoHttpHelper.allMethodDingChuan(parameter, "/api/open/saveInspectRecord", watermanage_access_token, "https://sldc.dcyun.com:38266/supervisepc");
- }
- }
- } catch (Exception ex) {
- ex.printStackTrace();
- }
- }
- public String getJcLeader(List<Map<String, Object>> descData) {
- List<String> jcLeaderList = descData.stream().filter(x -> "20".equals(MapUtils.getString(x, "ROLE_TYPE")))
- .map(x -> formatCheckNull(MapUtils.getString(x, "NAME")))
- .distinct().collect(Collectors.toList());
- String jcLeader = nameDeal(jcLeaderList);
- return jcLeader;
- }
- public String getJcPers(List<Map<String, Object>> descData) {
- List<String> jcExpertsList = descData.stream()
- .filter(x -> "11,12,13,14,15,16".contains(formatCheckNull(MapUtils.getString(x, "ROLE_TYPE"))))
- .map(x -> formatCheckNull(MapUtils.getString(x, "NAME")))
- .distinct()
- .collect(Collectors.toList());
- String jcExperts = nameDeal(jcExpertsList);
- return jcExperts;
- }
- public static String formatCheckNull(String value) {
- if (value == null) {
- return "";
- }
- return value;
- }
- private String nameDeal(List<String> nameList) {
- if (null == nameList || nameList.size() == 0) {
- return "";
- }
- int i = 0;
- int jcLeaderListSize = nameList.size();
- while (i < jcLeaderListSize) {
- if ((i + 1) % 3 == 0 && i + 1 != nameList.size()) {
- nameList.set(i, nameList.get(i) + "\n ");
- }
- i++;
- }
- return StringUtils.join(nameList, " ");
- }
- public List<GwComFile> convertGwFile(List<GwComFile> gwComFiles) {
- for (GwComFile gwComFile : gwComFiles) {
- gwComFile.setFilePath("http://pdc.goldenwater.com.cn" + gwComFile.getFilePath());
- }
- return gwComFiles;
- }
- public List<TacProvincePblmInfoDingChuan> convertPblm(List<TacProvincePblmInfo> tacProvincePblmInfos) {
- List<TacProvincePblmInfoDingChuan> tacProvincePblmInfoDingChuans = new ArrayList<>();
- for (TacProvincePblmInfo tacProvincePblmInfo : tacProvincePblmInfos) {
- TacProvincePblmInfoDingChuan tacProvincePblmInfoDingChuan = new TacProvincePblmInfoDingChuan();
- tacProvincePblmInfoDingChuan.setId(tacProvincePblmInfo.getId());
- tacProvincePblmInfoDingChuan.setProblemName(tacProvincePblmInfo.getPblmNm());
- tacProvincePblmInfoDingChuan.setPblmDesc(tacProvincePblmInfo.getPblmDesc());
- tacProvincePblmInfoDingChuan.setSubjectNames(tacProvincePblmInfo.getSubjectNames());
- tacProvincePblmInfoDingChuan.setPblmPasi(tacProvincePblmInfo.getPblmPasi());
- tacProvincePblmInfoDingChuan.setPblmReason(tacProvincePblmInfo.getPblmReason());
- tacProvincePblmInfoDingChuan.setPblmSggtn(tacProvincePblmInfo.getPblmSggtn());
- tacProvincePblmInfoDingChuan.setSn(tacProvincePblmInfo.getSn());
- tacProvincePblmInfoDingChuan.setListType(tacProvincePblmInfo.getListType());
- tacProvincePblmInfoDingChuans.add(tacProvincePblmInfoDingChuan);
- }
- return tacProvincePblmInfoDingChuans;
- }
- /*@Scheduled(cron = "0 0/10 * * * ? ")
- public void sendHisDataScheduled() throws Exception {
- if (dingChuanSendData.equals("1")) {
- //同步历史数据2020年 全年 所有月份的
- for (int i = 1; i < 13; i++) {
- sendHisData(2020, i);
- }
- Date dt = new Date();
- //同步2021年数据
- for (int i = 1; i < dt.getMonth() + 1; i++) {
- sendHisData(2021, i);
- logger.info("推送 2021年" + i + "月份 数据");
- }
- }
- }*/
- public void sendHisData(Integer year, Integer month) throws Exception {
- try {
- String watermanage_access_token = ssoHttpHelper.getAccessToken();
- //调用接口
- Date dt = new Date();
- List<WorkInxMonth> workInxMonths = tacAttPawpBaseService.getMonthPro("33", year, month, "330000000000", DateUtils.getTodayYMD());
- Map<String, String> parameter = new HashMap<>();//添加参数
- parameter.put("appkey", appkey);
- String nonce = UuidUtil.genernateNonce(8);
- parameter.put("nonce", nonce);
- String timestamp = System.currentTimeMillis() + "";
- parameter.put("timestamp", timestamp);
- String content = "appkey=" + appkey + "&appsecret=" + appsecret + "&nonce=" + nonce + "×tamp=" + timestamp;
- parameter.put("sign", EncryptHelper.sha(content));
- parameter.put("inxName", "建设项目稽察");
- parameter.put("inxCat", "强监管");
- parameter.put("workInxMonthList", JSONArray.fromObject(workInxMonths).toString());
- parameter.put("inxType", "1");
- parameter.put("inxDes", "建设项目稽察完成情况");
- parameter.put("inxUnit", "个");
- parameter.put("inxNumDes", "建设项目稽察完成量");
- parameter.put("inxDenDes", "建设项目稽察度计划量");
- parameter.put("inxStatDes", "建设项目稽察完成量");
- parameter.put("inxPctDes", "建设项目稽察完成率");
- parameter.put("ordId", "1");
- ResponseMessage re = ssoHttpHelper.allMethod(parameter, "/oapi/water-manage-entry/api/wmh/pushWorkIndex", watermanage_access_token);
- } catch (Exception ex) {
- ex.printStackTrace();
- }
- }
- /**
- * @param
- * @return java.lang.String
- * @Description 同步整体智治平台数据
- * @Date 2020/7/14
- **/
- //@RequestMapping(value = "/sendData", method = RequestMethod.POST)
- /*@Scheduled(cron = "0 0 0-4 * * ? ")
- public void sendData() throws Exception {
- try {
- String watermanage_access_token = ssoHttpHelper.getAccessToken();
- //调用接口
- Date dt = new Date();
- List<WorkInxMonth> workInxMonths = tacAttPawpBaseService.getMonthPro("33", DateUtils.getYear(dt), DateUtils.getMonth(dt), "330000000000", DateUtils.getTodayYMD());
- Map<String, String> parameter = new HashMap<>();//添加参数
- parameter.put("appkey", appkey);
- String nonce = UuidUtil.genernateNonce(8);
- parameter.put("nonce", nonce);
- String timestamp = System.currentTimeMillis() + "";
- parameter.put("timestamp", timestamp);
- String content = "appkey=" + appkey + "&appsecret=" + appsecret + "&nonce=" + nonce + "×tamp=" + timestamp;
- parameter.put("sign", EncryptHelper.sha(content));
- parameter.put("inxCat", "强监管");
- parameter.put("inxName", "建设项目稽察");
- parameter.put("workInxMonthList", JSONArray.fromObject(workInxMonths).toString());
- parameter.put("inxType", "1");
- parameter.put("inxDes", "建设项目稽察完成情况");
- parameter.put("inxUnit", "个");
- parameter.put("inxNumDes", "建设项目稽察完成量");
- parameter.put("inxDenDes", "建设项目稽察度计划量");
- parameter.put("inxStatDes", "建设项目稽察完成量");
- parameter.put("inxPctDes", "建设项目稽察完成率");
- parameter.put("ordId", "1");
- ResponseMessage re = ssoHttpHelper.allMethod(parameter, "/oapi/water-manage-entry/api/wmh/pushWorkIndex", watermanage_access_token);
- } catch (Exception ex) {
- ex.printStackTrace();
- }
- }*/
- }
|