package cn.com.goldenwater.dcproj.controller.general; import cn.com.goldenwater.core.web.BaseController; import cn.com.goldenwater.core.web.BaseResponse; import cn.com.goldenwater.dcproj.dto.BisInspBaseListDto; import cn.com.goldenwater.dcproj.dto.EmpwtprjPadMapDto; import cn.com.goldenwater.dcproj.dto.LoginUser; import cn.com.goldenwater.dcproj.dto.MenuDto; import cn.com.goldenwater.dcproj.dto.PersInfoDto; import cn.com.goldenwater.dcproj.dto.RsStatusInfoDto; import cn.com.goldenwater.dcproj.model.AttInspType; import cn.com.goldenwater.dcproj.model.AttInteBase; import cn.com.goldenwater.dcproj.model.BisInspWorkInfo; import cn.com.goldenwater.dcproj.model.PersLoc; import cn.com.goldenwater.dcproj.param.EmptprjPadMapInfoParam; import cn.com.goldenwater.dcproj.param.GeneralInfoParam; import cn.com.goldenwater.dcproj.param.PersObjParam; import cn.com.goldenwater.dcproj.param.PersPositionParam; import cn.com.goldenwater.dcproj.param.RsStatusInfoParam; import cn.com.goldenwater.dcproj.param.StartAndEndTimeParam; import cn.com.goldenwater.dcproj.service.BisInspObjService; import cn.com.goldenwater.dcproj.service.GeneralInfoService; import cn.com.goldenwater.dcproj.service.OlBisInspOrgService; import cn.com.goldenwater.dcproj.service.PersPositionService; import cn.com.goldenwater.dcproj.target.VerifyBean; import cn.com.goldenwater.dcproj.utils.AdLevelUtil; import cn.com.goldenwater.dcproj.utils.HttpClientUtils; import cn.com.goldenwater.dcproj.utils.expExcel.ExportUtil; import cn.com.goldenwater.dcproj.vo.BisInspPblmMapVo; import cn.com.goldenwater.id.util.UuidUtil; import cn.com.goldenwater.util.common.SqlUtils; import com.github.pagehelper.PageInfo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import net.sf.json.JSONObject; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.Assert; 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.RequestParam; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletResponse; import java.util.*; import java.util.stream.Collectors; /** * Created by 61618 on 2019/4/12. */ @Api(value = "综合展示", tags = "综合展示") @RestController @RequestMapping("/dc/general/info") public class GeneralInfoController extends BaseController { @Autowired private GeneralInfoService generalInfoService; @Autowired private PersPositionService persPositionService; @Autowired private BisInspObjService bisInspObjService; @Autowired private OlBisInspOrgService olBisInspOrgService; @ApiOperation(value = "根据督查人员反查所在的督查组、计划、及参与的任务") @RequestMapping(value = "/getInfoByPers", method = RequestMethod.GET) public BaseResponse> getInfoByPers(@ApiParam(name = "persid", value = "用户id", required = true) @RequestParam(required = true) String persid, @ApiParam(name = "sttm", value = "开始时间", required = false) @RequestParam(required = false) String sttm, @ApiParam(name = "entm", value = "结束时间", required = false) @RequestParam(required = false) String entm) { List persInfoDtoList = generalInfoService.getInfoByPers(persid, sttm, entm, olBisInspOrgService.getProvince(getCurrentOrgId())); return buildSuccessResponse(persInfoDtoList); } @ApiOperation(value = "获取福建water-secretKey") @RequestMapping(value = "/getWaterSecretKey", method = RequestMethod.GET) public BaseResponse getInfoByPers(@RequestParam(required = true) String clientId, @RequestParam(required = false) String clientSecret) throws Exception { String requestUrl = "https://27.156.118.74:19901/superMap/water/admin/api/serviceManage/auth?clientId="+clientId+"&clientSecret="+clientSecret; String body = HttpClientUtils.doHttpsPost2(requestUrl,new HashMap<>(),new HashMap<>()); JSONObject jsonObject = JSONObject.fromObject(body); if(jsonObject!=null && "success".equals(jsonObject.getString("msg"))){ return buildSuccessResponse(jsonObject.getString("water-secretKey")); } return buildFailResponse(); } @ApiOperation(value = "获取水库列表,返回督查状态") @RequestMapping(value = "/getRsSupData", method = RequestMethod.POST) public BaseResponse> getRsSupData(@RequestBody RsStatusInfoParam rsStatusInfoParam, HttpServletResponse response) { rsStatusInfoParam.setProvince(olBisInspOrgService.getProvince(getCurrentOrgId())); rsStatusInfoParam.setOrgId(getCurrentOrgId()); if (rsStatusInfoParam.getProvince().length() == 12) { rsStatusInfoParam.setProvince(rsStatusInfoParam.getProvince().substring(0, 2)); } PageInfo rsStatusInfoPageInfo = generalInfoService.getRsSupData(rsStatusInfoParam, response); return buildSuccessResponse(rsStatusInfoPageInfo); } @VerifyBean @ApiOperation(value = "pad端一张图获取172列表,返回督查状态") @RequestMapping(value = "/getEmptprjData", method = RequestMethod.POST) public BaseResponse> getEmptprjData(@RequestBody EmptprjPadMapInfoParam p) throws Exception { p.setProvince(olBisInspOrgService.getProvince(getCurrentOrgId())); PageInfo pageInfo = generalInfoService.getEmptprjData(p); return buildSuccessResponse(pageInfo); } @ApiOperation(value = "添加兴趣点(地图)") @RequestMapping(value = "/insertInte", method = RequestMethod.POST) public BaseResponse insertInte(@RequestBody AttInteBase attInteBase) { String uuid = UuidUtil.uuid(); attInteBase.setId(uuid); int i = generalInfoService.insertInte(attInteBase); return buildSuccessResponse(uuid); } @ApiOperation(value = "查询兴趣点(地图)") @RequestMapping(value = "/getIntePage", method = RequestMethod.GET) public BaseResponse> getIntePage(StartAndEndTimeParam startAndEndTimeParam) { PageInfo rsStatusInfoPageInfo = generalInfoService.getIntePage(startAndEndTimeParam); return buildSuccessResponse(rsStatusInfoPageInfo); } @ApiOperation(value = "删除兴趣点(地图)") @RequestMapping(value = "/deleteInte", method = RequestMethod.GET) public BaseResponse deleteInte(@RequestParam String id) { int i = generalInfoService.deleteInte(id); return buildSuccessResponse(); } @ApiOperation(value = "修改兴趣点(地图)") @RequestMapping(value = "/updateInte", method = RequestMethod.POST) public BaseResponse updateInte(@RequestBody AttInteBase attInteBase) { Assert.notNull(attInteBase.getId(), "主键id为必填参数"); int i = generalInfoService.updateInte(attInteBase); return buildSuccessResponse(); } @ApiOperation(value = "根据人员id获取工作情况") @RequestMapping(value = "/getWorkInfoByPersId", method = RequestMethod.GET) public BaseResponse> getWorkInfoByPersId(@RequestParam String persId) { List workInfoList = generalInfoService.getWorkInfoByPersId(persId, olBisInspOrgService.getProvince(getCurrentOrgId())); return buildSuccessResponse(workInfoList); } @ApiOperation(value = "根据人员id以及经纬度获取工作情况") @RequestMapping(value = "/getSttmEntmByPersId", method = RequestMethod.GET) public BaseResponse> getSttmEntmByPersId(@RequestParam String persId, @RequestParam Double lon, @RequestParam Double lat) { LoginUser currentLoginUser = getCurrentLoginUser(); String orgId = getCurrentOrgId(); List persLocList = generalInfoService.getSttmEntmByPersId(persId, lon, lat, orgId,currentLoginUser); return buildSuccessResponse(persLocList); } @ApiOperation(value = "根据名称与类型全局搜索") @RequestMapping(value = "/getObjByNameAndType", method = RequestMethod.GET) public BaseResponse getObjByNameAndType(GeneralInfoParam param) { param.setProvince(AdLevelUtil.getAddvcd(olBisInspOrgService.getProvince(getCurrentOrgId()))); if (StringUtils.isBlank(param.getType())) { return null; } String subAd = AdLevelUtil.getAddvcd(olBisInspOrgService.getProvince(getCurrentOrgId())); if (StringUtils.isNotBlank(param.getAdCode())) { param.setAdCode(subAd); } PageInfo pageInfo = null; //人员 switch (param.getType()) { case "pers": PersPositionParam pos = new PersPositionParam(); pos.setPersId(param.getPersId()); pos.setAdCode(param.getAdCode()); pos.setPersName(param.getName()); pos.setPageNum(param.getPageNum()); pos.setPageSize(param.getPageSize()); Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.MINUTE, -0); calendar.add(Calendar.HOUR_OF_DAY, -1); calendar.add(Calendar.DAY_OF_MONTH, -0); Date date = calendar.getTime(); pos.setOperateTime(date); pos.setProvince(olBisInspOrgService.getProvince(getCurrentOrgId())); pos.setOrgId(""); pageInfo = persPositionService.findPersPageByOrgId(pos, null); break; case "rsvr": //水库 RsStatusInfoParam rsParam = new RsStatusInfoParam(); rsParam.setAdCode(param.getAdCode()); rsParam.setRsName(param.getName()); rsParam.setStatus(param.getStatus()); rsParam.setPersGuid(param.getPersId()); rsParam.setPageNum(param.getPageNum()); rsParam.setProvince(olBisInspOrgService.getProvince(getCurrentOrgId())); rsParam.setPageSize(param.getPageSize()); pageInfo = generalInfoService.getRsSupData(rsParam, null); break; case "other": PersObjParam persParam = new PersObjParam(); persParam.setOrgId(getCurrentOrgId()); persParam.setPersGuid(param.getPersId()); persParam.setAdCode(param.getAdCode()); persParam.setAdName(param.getName()); persParam.setWtdstNm(param.getName()); persParam.setStnm(param.getName()); persParam.setRsName(param.getName()); persParam.setPersGuid(param.getPersId()); persParam.setObjType(param.getObjType()); persParam.setFrgrd(param.getFrgrd()); persParam.setProvince(param.getProvince()); persParam.setLv(param.getLv()); persParam.setPageNum(param.getPageNum()); persParam.setPageSize(param.getPageSize()); pageInfo = bisInspObjService.getPageByPersId(persParam, null); break; default: } return buildSuccessResponse(pageInfo); } @ApiOperation(value = "根据行政编码统计对象数量") @RequestMapping(value = "/getObjCount", method = RequestMethod.GET) public BaseResponse getObjCount(GeneralInfoParam param) { param.setInIdsSql(SqlUtils.getinIdsSql(getCurrentPersId(), olBisInspOrgService.getProvince(getCurrentOrgId()))); List list = generalInfoService.getObjCount(param); return buildSuccessResponse(list); } @ApiOperation(value = "获取基本信息列表") @RequestMapping(value = "/getBaseList", method = {RequestMethod.POST, RequestMethod.GET}) public BaseResponse getBaseList(GeneralInfoParam param, HttpServletResponse response) { if (StringUtils.isBlank(param.getObjType())) { return buildFailResponse(10010, "无对于类型数据"); } if (StringUtils.isBlank(param.getAdCode())) { param.setAdCode(AdLevelUtil.getAddvcd(olBisInspOrgService.getProvince(getCurrentOrgId()))); } List list = generalInfoService.getBaseList(param); ExportUtil.exportExcel(param.getIsExport(), list, response); return buildSuccessResponse(list); } @ApiOperation(value = "获取基础信息列表分页") @RequestMapping(value = "getBasePage", method = {RequestMethod.POST, RequestMethod.GET}) public BaseResponse> getBasePage(GeneralInfoParam param, HttpServletResponse response) { if (StringUtils.isBlank(param.getObjType())) { return buildFailResponse(10010, "无对于类型数据"); } PageInfo pageInfo = generalInfoService.getBasePage(param, response); return buildSuccessResponse(pageInfo); } /** * 福建省综合展示 动态查询 督查类型列表 * @param param * @param response * @return */ @ApiOperation(value = "获取当前登录用户所在省市县机构的督查类型列表") @RequestMapping(value = "/getObjTypeList", method = {RequestMethod.POST, RequestMethod.GET}) public BaseResponse getObjTypeList(GeneralInfoParam param, HttpServletResponse response) { if(null == param){ param = new GeneralInfoParam(); } String curOrgId = getCurrentOrgId(); param.setOrgId(curOrgId); List list = generalInfoService.getObjTypeList(param); if(null != list && list.size()>0){ list = list.stream().filter(f->StringUtils.isNotBlank(f.getPgroup())).collect(Collectors.toList()); Map> resultMap = list.stream().collect(Collectors.groupingBy(g -> g.getPgroup())); return buildSuccessResponse(resultMap); } return buildSuccessResponse(list); } /** * 福建省综合展示 动态查询 督查类型的问题列表 * @param param * @param response * @return */ @ApiOperation(value = "获取当前登录用户所在省市县机构的问题列表") @RequestMapping(value = "/getPblmList", method = {RequestMethod.POST, RequestMethod.GET}) public BaseResponse getPblmList(GeneralInfoParam param, HttpServletResponse response) { if(null == param){ param = new GeneralInfoParam(); } // 机构 String curOrgId = getCurrentOrgId(); param.setOrgId(curOrgId); // 省份 String curProvince = olBisInspOrgService.getProvince(curOrgId); param.setProvince(AdLevelUtil.getAddvcd(curProvince)); // 当前用户 param.setPersId(getCurrentPersId()); if(StringUtils.isBlank(param.getAdCode())){ param.setAdCode(AdLevelUtil.getAddvcd(olBisInspOrgService.getRlProvince(curOrgId))); }else{ param.setAdCode(AdLevelUtil.getAddvcd(param.getAdCode())); } List list = generalInfoService.getPblmList(param); return buildSuccessResponse(list); } @ApiOperation(value = "根据用户id获取督查填报菜单列表") @RequestMapping(value = "/getObjTypeMenuList", method = RequestMethod.POST) public BaseResponse> getObjTypeMenuListByPersId(@RequestBody GeneralInfoParam param) { param.setPersId(getCurrentPersId()); param.setOwnApp("1"); return buildSuccessResponse(generalInfoService.getObjTypeMenuListByPersId(param)); } }