| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397 |
- package cn.com.goldenwater.dcproj.service.impl.general;
- import cn.com.goldenwater.dcproj.constValue.BisInspEnum;
- import cn.com.goldenwater.dcproj.dao.BisInspAllRlationPersDao;
- import cn.com.goldenwater.dcproj.dao.BisInspPblmPlistDao;
- import cn.com.goldenwater.dcproj.dao.GeneralInfoDao;
- import cn.com.goldenwater.dcproj.dao.MenuDao;
- import cn.com.goldenwater.dcproj.dao.OlBisInspOrgDao;
- 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.PersCwsInfoDto;
- import cn.com.goldenwater.dcproj.dto.PersGrwInfoDto;
- import cn.com.goldenwater.dcproj.dto.PersInfoDto;
- import cn.com.goldenwater.dcproj.dto.PersResInfoDto;
- import cn.com.goldenwater.dcproj.dto.PersWtdstInfoDto;
- import cn.com.goldenwater.dcproj.dto.RsCountDto;
- import cn.com.goldenwater.dcproj.dto.RsStatusInfoDto;
- import cn.com.goldenwater.dcproj.enums.PrivTypeEnum;
- import cn.com.goldenwater.dcproj.model.AttInspType;
- import cn.com.goldenwater.dcproj.model.AttInteBase;
- import cn.com.goldenwater.dcproj.model.BisInspAllRlationPers;
- import cn.com.goldenwater.dcproj.model.BisInspWorkInfo;
- import cn.com.goldenwater.dcproj.model.OlBisInspOrg;
- import cn.com.goldenwater.dcproj.model.PersLoc;
- import cn.com.goldenwater.dcproj.model.PersPositionViewLog;
- import cn.com.goldenwater.dcproj.param.EmptprjPadMapInfoParam;
- import cn.com.goldenwater.dcproj.param.GeneralInfoParam;
- import cn.com.goldenwater.dcproj.param.RsStatusInfoParam;
- import cn.com.goldenwater.dcproj.param.StartAndEndTimeParam;
- import cn.com.goldenwater.dcproj.service.GeneralInfoService;
- import cn.com.goldenwater.dcproj.service.PersPositionViewLogService;
- import cn.com.goldenwater.dcproj.utils.AdLevelUtil;
- import cn.com.goldenwater.dcproj.utils.BeanUtil;
- import cn.com.goldenwater.dcproj.utils.EnumUtil;
- import cn.com.goldenwater.dcproj.utils.expExcel.ExcelExport;
- import cn.com.goldenwater.dcproj.utils.expExcel.ExportAbstract;
- import cn.com.goldenwater.dcproj.utils.expExcel.ExportUtil;
- import cn.com.goldenwater.dcproj.vo.BisInspPblmMapVo;
- import cn.com.goldenwater.target.CheckException;
- import com.github.pagehelper.PageHelper;
- import com.github.pagehelper.PageInfo;
- import org.apache.commons.collections.CollectionUtils;
- import org.apache.commons.lang3.StringUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import javax.servlet.http.HttpServletResponse;
- import java.time.LocalDate;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Map;
- import java.util.Optional;
- /**
- * Created by 61618 on 2019/4/12.
- */
- @Service
- @Transactional(rollbackFor = Exception.class)
- public class GeneralInfoServiceImpl implements GeneralInfoService {
- @Autowired
- private GeneralInfoDao generalInfoDao;
- @Autowired
- private OlBisInspOrgDao olBisInspOrgDao;
- @Autowired
- private BisInspAllRlationPersDao bisInspAllRlationPersDao;
- @Autowired
- private PersPositionViewLogService persPositionViewLogService;
- @Autowired
- private MenuDao menuDao;
- @Autowired
- private BisInspPblmPlistDao bisInspPblmPlistDao;
- @Override
- public List<PersInfoDto> getInfoByPers(String persid, String sttm, String entm, String province) {
- //存放最终结果
- List<PersInfoDto> persInfoDtoList = this.generalInfoDao.getGroup(persid, sttm, entm, province);
- if (persInfoDtoList.size() > 0) {
- for (PersInfoDto persInfoDto : persInfoDtoList) {
- if ("001".equals(persInfoDto.getId().substring(0, 3)) || "036".equals(persInfoDto.getId().substring(0, 36))) {//小水库
- String ptype = "1";
- if ("036".equals(persInfoDto.getId().substring(0, 3))) {
- ptype = "36";
- }
- List<PersResInfoDto> persResInfoDtoList = this.generalInfoDao.getPersResInfoDtoList(persInfoDto.getId(), province, ptype);
- if (persResInfoDtoList.size() > 0) {
- persInfoDto.setPersResInfoDtoList(persResInfoDtoList);
- }
- } else if (BisInspEnum.VILL.getRlation().equals(persInfoDto.getId().substring(0, 3))) {//人饮
- List<PersCwsInfoDto> persCwsInfoDtoList = this.generalInfoDao.getPersCwsInfoDtoList(persInfoDto.getId(), province);
- if (persCwsInfoDtoList.size() > 0) {
- persInfoDto.setPersCwsInfoDtoList(persCwsInfoDtoList);
- }
- } else if (BisInspEnum.TRACK.getRlation().equals(persInfoDto.getId().substring(0, 3))) {//水毁
- List<PersWtdstInfoDto> persWtdstInfoDtoList = this.generalInfoDao.getPersWtdstInfoDtoList(persInfoDto.getId(), province);
- if (persWtdstInfoDtoList.size() > 0) {
- persInfoDto.setPersWtdstInfoDtoList(persWtdstInfoDtoList);
- }
- } else if (BisInspEnum.GRW.getRlation().equals(persInfoDto.getId().substring(0, 3))) {//地下水
- List<PersGrwInfoDto> persGrwInfoDtoList = this.generalInfoDao.getPersGrwInfoDtoList(persInfoDto.getId(), province);
- if (persGrwInfoDtoList.size() > 0) {
- persInfoDto.setPersGrwInfoDtoList(persGrwInfoDtoList);
- }
- }
- }
- }
- return persInfoDtoList;
- }
- @Override
- public PageInfo<RsStatusInfoDto> getRsSupData(RsStatusInfoParam rsStatusInfoParam, HttpServletResponse response) {
- if (!"".equals(rsStatusInfoParam.getAdCode())) {
- String subAd = AdLevelUtil.SubAd(rsStatusInfoParam.getAdCode()).get("subAd").toString();
- rsStatusInfoParam.setAdCode(subAd);
- }
- if ("1".equals(rsStatusInfoParam.getIsExport())) {
- List<Map<String, Object>> mapList = new ArrayList<>();
- for (RsStatusInfoDto info : this.generalInfoDao.getRsSupData(rsStatusInfoParam)) {
- mapList.add(BeanUtil.transBean2Map(info));
- }
- ExportAbstract export = new ExcelExport();
- export.setFileName("水库列表");
- export.setExport_ps_export(true);
- export.setExport_ps_type(ExportAbstract.XLS);
- export.setExport_bzip(false);
- export.setTitle("水库列表");
- ArrayList<Object> cols = new ArrayList<Object>();
- cols.add("rsCode[水库编码]");
- cols.add("rsName[水库名称]");
- cols.add("rsType[水库类型]");
- cols.add("totCap[总容量(万m3)]");
- cols.add("rsAdmName[负责公司]");
- cols.add("rsAdmDep[部门]");
- export.setCols(cols);
- export.setGroupable(false);
- // 设置视图指标
- export.setLevel(1);
- export.setLocksize(0);
- try {
- export.Export(response);
- export.ExportHeadForCustom(response);//导出表头
- export.ContinueExport(mapList);
- export.EndExport();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- PageHelper.startPage(rsStatusInfoParam.getPageNum(), rsStatusInfoParam.getPageSize());
- List<RsStatusInfoDto> rsStatusInfoList = this.generalInfoDao.getRsSupData(rsStatusInfoParam);
- if (rsStatusInfoList.size() > 0) {
- for (RsStatusInfoDto rs : rsStatusInfoList) {
- if (rs.getObjId() != null) {
- if (rs.getRgstrStatus().equals("0")) {
- rs.setStatus(rs.getUptm() + "年 未填报");
- } else if (rs.getRgstrStatus().equals("1")) {
- rs.setStatus(rs.getUptm() + "年 督查中");
- } else if (rs.getRgstrStatus().equals("2")) {
- rs.setStatus(rs.getUptm() + "年 已督查");
- }
- } else {
- rs.setStatus("未督查");
- }
- }
- }
- PageInfo<RsStatusInfoDto> pageInfo = new PageInfo(rsStatusInfoList);
- return pageInfo;
- }
- @Override
- public PageInfo<EmpwtprjPadMapDto> getEmptprjData(EmptprjPadMapInfoParam p) throws Exception {
- if (!"".equals(p.getAdCode())) {
- String subAd = AdLevelUtil.SubAd(p.getAdCode()).get("subAd").toString();
- p.setAdCode(subAd);
- }
- PageHelper.startPage(p.getPageNum(), p.getPageSize());
- List<EmpwtprjPadMapDto> rsStatusInfoList = this.generalInfoDao.getEmptprjData(p);
- if (rsStatusInfoList.size() > 0) {
- for (EmpwtprjPadMapDto rs : rsStatusInfoList) {
- if ("1".equals(rs.getHstInsp()) && rs.getObjId() != null) {
- if ("0".equals(rs.getRgstrStatus())) {
- rs.setStatus("复查-未督查");
- } else if ("1".equals(rs.getRgstrStatus())) {
- rs.setStatus("复查-督查中");
- } else if ("2".equals(rs.getRgstrStatus())) {
- rs.setStatus("复查-已督查");
- }
- } else if ("1".equals(rs.getHstInsp()) && rs.getObjId() == null) {
- rs.setStatus("2018-已督查");
- } else if (!"1".equals(rs.getHstInsp()) && rs.getObjId() != null) {
- if ("0".equals(rs.getRgstrStatus())) {
- rs.setStatus("2019-未督查");
- } else if ("1".equals(rs.getRgstrStatus())) {
- rs.setStatus("2019-督查中");
- } else if ("2".equals(rs.getRgstrStatus())) {
- rs.setStatus("2019-已督查");
- }
- } else {
- rs.setStatus("督查计划外");
- }
- }
- }
- PageInfo<EmpwtprjPadMapDto> pageInfo = new PageInfo(rsStatusInfoList);
- return pageInfo;
- }
- @Override
- public int insertInte(AttInteBase attInteBase) {
- return this.generalInfoDao.insertInte(attInteBase);
- }
- @Override
- public int deleteInte(String id) {
- return this.generalInfoDao.deleteInte(id);
- }
- @Override
- public int updateInte(AttInteBase attInteBase) {
- return this.generalInfoDao.updateInte(attInteBase);
- }
- @Override
- public List<BisInspWorkInfo> getWorkInfoByPersId(String persId, String province) {
- //获取人员所在组的督查对象
- List<BisInspWorkInfo> workInfoList = this.generalInfoDao.getWorkDetailByPersId(persId);
- return workInfoList;
- }
- @Override
- public List<PersLoc> getSttmEntmByPersId(String persId, Double lon, Double lat,String orgId,LoginUser currentLoginUser) {
- OlBisInspOrg inspOrg = olBisInspOrgDao.get(orgId);
- // 查询轨迹记录
- List<PersLoc> persLocList = this.generalInfoDao.getSttmEntm(persId, lon, lat, inspOrg.getRlcode());
- // 增加查询轨迹记录的日志
- BisInspAllRlationPers pers = bisInspAllRlationPersDao.get(persId);
- PersPositionViewLog persPositionViewLog = new PersPositionViewLog();
- persPositionViewLog.setPersIdViewed(persId);
- persPositionViewLog.setPersNameViewed(pers.getPersName());
- persPositionViewLog.setOrgId(orgId);
- persPositionViewLog.setAdCode(inspOrg.getAdCode());
- persPositionViewLog.setAdName(inspOrg.getOrgNm());
- persPositionViewLog.setPersId(currentLoginUser.getPersId());
- persPositionViewLog.setPersName(currentLoginUser.getPersName());
- persPositionViewLog.setNote(String.format("persid:%s;lon:%s;lat:%s",persId,null== lon?"null":lon.toString(),null== lat?"null":lat.toString()));
- persPositionViewLogService.insert(persPositionViewLog);
- return persLocList;
- }
- @Override
- public PageInfo<AttInteBase> getIntePage(StartAndEndTimeParam startAndEndTimeParam) {
- PageHelper.startPage(startAndEndTimeParam);
- List<AttInteBase> list = this.generalInfoDao.getIntePage(startAndEndTimeParam);
- PageInfo<AttInteBase> pageInfo = new PageInfo(list);
- return pageInfo;
- }
- @Override
- public List<RsCountDto> getObjCount(GeneralInfoParam param) {
- if (StringUtils.isNotBlank(param.getAdCode())) {
- param.setAdCode(AdLevelUtil.SubAd(param.getAdCode()).get("subAd").toString());
- }
- List<RsCountDto> list = new ArrayList<>();
- if (StringUtils.isBlank(param.getAdGrad())) {
- return list;
- }
- if ("1".equals(param.getObjType())) {
- list = generalInfoDao.getObjRsCount(param);
- return list;
- } else if ("2".equals(param.getObjType())) {
- list = generalInfoDao.getObjVlgCount(param);
- } else if ("21".equals(param.getObjType())) {
- param.setObjType(param.getObjType().substring(0, 1));
- list = generalInfoDao.getObjCwsCount(param);
- } else if ("22".equals(param.getObjType())) {
- param.setObjType(param.getObjType().substring(0, 1));
- list = generalInfoDao.getObjPspCount(param);
- } else if ("23".equals(param.getObjType())) {
- param.setObjType(param.getObjType().substring(0, 1));
- list = generalInfoDao.getObjAdBaseCount(param);
- } else if ("3".equals(param.getObjType())) {
- list = generalInfoDao.getObjWtdstCount(param);
- } else if ("4".equals(param.getObjType())) {
- list = generalInfoDao.getObjEmpwtCount(param);
- } else if ("6".equals(param.getObjType())) {
- list = generalInfoDao.getObjWagaCount(param);
- }
- return list;
- }
- @Override
- public List<BisInspBaseListDto> getBaseList(GeneralInfoParam param) {
- if (StringUtils.isNotBlank(param.getAdCode())) {
- param.setAdCode(String.valueOf(AdLevelUtil.SubAd(param.getAdCode()).get("subAd")));
- }
- return generalInfoDao.getBaseList(param);
- }
- @Override
- public PageInfo<BisInspBaseListDto> getBasePage(GeneralInfoParam param, HttpServletResponse response) {
- if (StringUtils.isNotBlank(param.getAdCode())) {
- param.setAdCode(String.valueOf(AdLevelUtil.SubAd(param.getAdCode()).get("subAd")));
- }
- if ("1".equals(param.getIsExport())) {
- BisInspEnum bisInspEnum = EnumUtil.getBisInspEnum(param.getObjType());
- String fileName = "结果列表";
- if (bisInspEnum != null) {
- fileName = bisInspEnum.getDesc() + "列表";
- }
- List<String> columns = new ArrayList<>();
- columns.add("id");
- columns.add("code");
- columns.add("objId");
- columns.add("rgstrId");
- columns.add("objType");
- columns.add("displayLevel");
- columns.add("baseCode");
- ExportUtil.exportExcel(generalInfoDao.getBaseList(param), response, fileName, columns, BisInspBaseListDto.class);
- }
- PageHelper.startPage(param);
- List<BisInspBaseListDto> listDtos = generalInfoDao.getBaseList(param);
- return new PageInfo<>(listDtos);
- }
- /**
- * 查询当前用户机构的督查类型列表
- * @param param
- * @return
- */
- @Override
- public List<AttInspType> getObjTypeList(GeneralInfoParam param){
- return this.generalInfoDao.getObjTypeList(param);
- }
- /**
- * 查询当前用户机构的督查类型的问题列表
- * @param param
- * @return
- */
- @Override
- public List<BisInspPblmMapVo> getPblmList(GeneralInfoParam param){
- if(StringUtils.isBlank(param.getObjType())){
- throw new CheckException("督查对象类型不能为空!");
- }
- if(StringUtils.isBlank(param.getStartTime()) && StringUtils.isBlank(param.getEndTime())){
- // 没有时间限制 默认设置为当年
- LocalDate curDate = LocalDate.now();
- param.setStartTime(String.format("%d-1-1",curDate.getYear()));
- param.setEndTime(String.format("%d-%d-%d",curDate.getYear(),curDate.getMonthValue(),curDate.getDayOfMonth()));
- }
- List<BisInspPblmMapVo> pblmMapVoList = this.generalInfoDao.selectPblmListByObjType(param);
- if(null != pblmMapVoList && pblmMapVoList.size()>0 ){
- // 设置 工作流信息
- for(BisInspPblmMapVo pblmVo :pblmMapVoList){
- String plistId = pblmVo.getId();
- if(StringUtils.isNotEmpty(plistId)){
- // 查询
- List<Map<String, String>> bpmDataIdList = this.bisInspPblmPlistDao.getBpmDataId(plistId, param.getOrgId(), param.getProvince());
- if (CollectionUtils.isNotEmpty(bpmDataIdList)) {
- Map<String, String> bpmData = bpmDataIdList.get(0);
- pblmVo.setTaskInstId(bpmData.get("taskInstId"));
- pblmVo.setProcInstId(bpmData.get("procInstId"));
- pblmVo.setProcTypeName("督查-" + bpmData.get("procTypeName"));
- }
- }
- }
- }
- return pblmMapVoList;
- }
- /**
- * 查询当前用户督查填报菜单
- * @param param
- * @return
- */
- @Override
- public List<MenuDto> getObjTypeMenuListByPersId(GeneralInfoParam param){
- String curUserId = param.getPersId();
- BisInspAllRlationPers pers = bisInspAllRlationPersDao.get(curUserId);
- Optional.ofNullable(pers).orElseThrow(() -> new CheckException("此人员不存在:" + curUserId));
- String owerSystem = pers.getOwnerSystem();
- List<MenuDto> menuList = menuDao.getListByUserId(curUserId, PrivTypeEnum.MENU.getValue(), param.getOwnApp(), owerSystem);
- if(null != menuList && menuList.size()>0){
- MenuDto menuDto = menuList.stream().filter(f -> "督查填报".equals(f.getMenuName())).findFirst().orElse(null);
- return null == menuDto? new ArrayList<>():menuDto.getMenuList();
- }else {
- return new ArrayList<>() ;
- }
- }
- }
|