| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417 |
- package cn.com.goldenwater.dcproj.controller.ducha;
- import cn.com.goldenwater.core.web.BaseController;
- import cn.com.goldenwater.core.web.BaseResponse;
- import cn.com.goldenwater.dcproj.dto.BisInspSelAreaDto;
- import cn.com.goldenwater.dcproj.dto.PersAllAreaDto;
- import cn.com.goldenwater.dcproj.dto.PersAllInfoDto;
- import cn.com.goldenwater.dcproj.model.AttRsBase;
- import cn.com.goldenwater.dcproj.model.BisInspSelArea;
- import cn.com.goldenwater.dcproj.model.OlBisInspOrg;
- import cn.com.goldenwater.dcproj.param.BisInspSelAreaParam;
- import cn.com.goldenwater.dcproj.param.InGroupResParam;
- import cn.com.goldenwater.dcproj.service.BisInspSelAreaService;
- import cn.com.goldenwater.dcproj.service.OlBisInspOrgService;
- import cn.com.goldenwater.dcproj.service.SupervisionPlanService;
- import cn.com.goldenwater.dcproj.util.CheckUtil;
- import cn.com.goldenwater.dcproj.utils.AdLevelUtil;
- import cn.com.goldenwater.dcproj.utils.InspPblmUtils;
- import cn.com.goldenwater.dcproj.utils.TimeRangeUtil;
- import cn.com.goldenwater.id.util.UuidUtil;
- import com.github.pagehelper.PageInfo;
- import io.swagger.annotations.Api;
- import io.swagger.annotations.ApiOperation;
- import io.swagger.annotations.ApiParam;
- import org.apache.commons.lang3.StringUtils;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.util.Assert;
- import org.springframework.web.bind.annotation.*;
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.*;
- import java.util.stream.Collectors;
- /**
- * @author litf
- * @date 2019-3-6
- */
- @Api(value = "可选区域管理", tags = "可选区域管理")
- @RestController
- @RequestMapping("/dc/insp/selarea")
- public class BisInspSelAreaController extends BaseController {
- private Logger logger = LoggerFactory.getLogger(getClass());
- @Autowired
- private BisInspSelAreaService bisInspSelAreaService;
- @Autowired
- private OlBisInspOrgService olBisInspOrgService;
- @Autowired
- private SupervisionPlanService supervisionPlanService;
- private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
- @ApiOperation(value = "增加可选区域")
- @RequestMapping(value = "/insert", method = RequestMethod.POST)
- public BaseResponse<String> insert(@ApiParam(name = "bisInspSelArea", value = "BisInspSelArea", required = true) @RequestBody BisInspSelArea bisInspSelArea) {
- String uuid = UuidUtil.uuid(); // 生成uuid
- bisInspSelArea.setAreaId(uuid);
- bisInspSelArea.setOrgId(getCurrentOrgId());
- int ret = bisInspSelAreaService.insert(bisInspSelArea);
- return buildSuccessResponse(uuid);
- }
- @ApiOperation(value = "批量增加可选区域")
- @RequestMapping(value = "/muli/insert", method = RequestMethod.POST)
- public BaseResponse<Map> muliInsert(@ApiParam(name = "bisInspSelArea", value = "BisInspSelArea", required = true) @RequestBody List<BisInspSelArea> lists) {
- if(StringUtils.isBlank(lists.get(0).getIsInsert()) && lists.size()>0){
- Map<String,Object> map = isValiArea(lists);
- if(map.get("msg")!=null){
- return buildSuccessResponse(map);
- }
- }
- int ret = 0;
- for (BisInspSelArea area : lists) {
- String uuid = UuidUtil.uuid();
- area.setAreaId(uuid);
- area.setOrgId(getCurrentOrgId());
- bisInspSelAreaService.insert(area);
- ret++;
- }
- return buildSuccessResponse(new HashMap());
- }
- public Map<String,Object> isValiArea(List<BisInspSelArea> lists){
- String msg = "";
- Map<String,Object> map = new HashMap<>();
- if (lists != null && StringUtils.isNotBlank(lists.get(0).getId()) && lists.size() > 0) {
- Map<String, String> mapGroup = supervisionPlanService.getYearMonth(lists.get(0).getId());
- List<String> adCodeList = new ArrayList<String>();
- List<String> errorList = new ArrayList<String>();
- lists.forEach(item -> {
- adCodeList.add(item.getAdCode());
- });
- List<PersAllInfoDto> allNodeDtoList = this.supervisionPlanService.getAllInfoByPersidAndOrgId(getCurrentPersId(), mapGroup.get("INSP_YEAR"), mapGroup.get("INSP_MNTH"), getCurrentOrgId(), null);
- if (allNodeDtoList != null && allNodeDtoList.size() > 0 && (StringUtils.isNotBlank(mapGroup.get("STTM")) || StringUtils.isNotBlank(mapGroup.get("ENTM")))) {
- allNodeDtoList.forEach(item -> {
- if (lists.get(0).getId().equals(item.getId()) && item.getPersAllAreaDtoList() != null && item.getPersAllAreaDtoList().size() > 0) {
- item.getPersAllAreaDtoList().forEach(item1 -> {
- adCodeList.add(item1.getAdCode());
- });
- }
- });
- if (adCodeList.size() > 0) {
- allNodeDtoList.forEach(item -> {
- long count = 0;
- if (!lists.get(0).getId().equals(item.getId()) && item.getPersAllAreaDtoList() != null && item.getPersAllAreaDtoList().size() > 0) {
- count = item.getPersAllAreaDtoList().stream().filter(item1 -> adCodeList.indexOf(item1.getAdCode()) > -1).count();
- }
- try {
- if (count > 0 && TimeRangeUtil.isTimeRange(item,mapGroup)) {
- errorList.add("(检查计划事项:"+item.getChkName()+"-组名:"+item.getNm()+")");
- }
- } catch (ParseException e) {
- e.printStackTrace();
- }
- });
- }
- }
- if(errorList.size()>0){
- msg = "(检查计划事项:"+mapGroup.get("CHK_NAME")+"-当前组:"+mapGroup.get("PNM")+")与其他组"+String.join(",",errorList)+"重叠";
- map.put("msg",msg);
- }
- }
- return map;
- }
- @ApiOperation(value = "根据ID删除可选区域")
- @RequestMapping(value = "/delete/{id}", method = RequestMethod.POST)
- public BaseResponse delete(@ApiParam(name = "id", value = "id", required = true) @PathVariable String id) {
- int ret = bisInspSelAreaService.delete(id);
- return buildSuccessResponse();
- }
- @ApiOperation(value = "根据ID删除可选区域")
- @RequestMapping(value = "/delete/{id}/{flag}", method = RequestMethod.POST)
- public BaseResponse delete(@ApiParam(name = "id", value = "id", required = true) @PathVariable String id, @ApiParam(name = "flag", value = "flag", required = true) @PathVariable String flag) {
- if ("1".equals(flag)) {
- String province = olBisInspOrgService.getProvince(getCurrentOrgId());
- bisInspSelAreaService.deleteAreaData(id, province);
- } else {
- bisInspSelAreaService.delete(id);
- }
- return buildSuccessResponse();
- }
- @ApiOperation(value = "根据ID批量删除可选区域")
- @PostMapping(value = "/deletes")
- public BaseResponse delete(@RequestBody BisInspSelAreaDto bisInspSelAreaDto) {
- if (null == bisInspSelAreaDto || null == bisInspSelAreaDto.getIds() || bisInspSelAreaDto.getIds().size() == 0) {
- return buildFailResponse("获取参数失败!");
- }
- String flag = Optional.of(bisInspSelAreaDto).map(BisInspSelAreaDto::getFlag).orElse(null);
- if ("1".equals(flag)) {
- String province = olBisInspOrgService.getProvince(getCurrentOrgId());
- for (String id : bisInspSelAreaDto.getIds()) {
- bisInspSelAreaService.deleteAreaData(id, province);
- }
- } else {
- for (String id : bisInspSelAreaDto.getIds()) {
- bisInspSelAreaService.delete(id);
- }
- }
- return buildSuccessResponse();
- }
- @ApiOperation(value = "更新可选区域信息")
- @RequestMapping(value = "/update", method = RequestMethod.POST)
- public BaseResponse update(@ApiParam(name = "bisInspSelArea", value = "BisInspSelArea", required = true) @RequestBody BisInspSelArea bisInspSelArea) {
- Assert.notNull(bisInspSelArea.getAreaId(), "主键areaId为必填参数");
- int ret = bisInspSelAreaService.update(bisInspSelArea);
- return buildSuccessResponse();
- }
- @ApiOperation(value = "根据ID获取可选区域")
- @RequestMapping(value = "/get/{id}", method = RequestMethod.GET)
- public BaseResponse<BisInspSelArea> get(@ApiParam(name = "id", value = "id", required = true) @PathVariable String id) {
- BisInspSelArea bisInspSelArea = bisInspSelAreaService.get(id);
- return buildSuccessResponse(bisInspSelArea);
- }
- @ApiOperation(value = "可选区域列表查询")
- @RequestMapping(value = "/list", method = RequestMethod.POST)
- public BaseResponse<PageInfo<BisInspSelArea>> list(@RequestBody BisInspSelAreaParam param) {
- param.setOrgId(getCurrentOrgId());
- if(StringUtils.isNotBlank(param.getId()) || StringUtils.isNotBlank(param.getAdCodes())){
- PageInfo<BisInspSelArea> list = bisInspSelAreaService.findPageInfo(param);
- return buildSuccessResponse(list);
- }
- return buildSuccessResponse(new PageInfo<>(new ArrayList<>()));
- }
- @ApiOperation(value = "可选区域列表查询(包含下级分组)")
- @RequestMapping(value = "/tree/list", method = RequestMethod.POST)
- public BaseResponse<PageInfo<BisInspSelArea>> treeList(@RequestBody BisInspSelAreaParam param) {
- param.setOrgId(getCurrentOrgId());
- param.setProvince(olBisInspOrgService.getProvinceFlag(getCurrentOrgId()));
- PageInfo<BisInspSelArea> list = bisInspSelAreaService.getAllSub(param);
- return buildSuccessResponse(list);
- }
- @ApiOperation(value = "根据人员id查询可选区域信息,pType=1小水库,2人饮工程,3水毁工程,pType=4地下水", notes = "")
- @RequestMapping(value = "/getAreaByPersid", method = RequestMethod.GET)
- public BaseResponse<List<Map<String, Object>>> getAreaByPersid(@RequestParam(value = "persId", required = false) String persId
- , @RequestParam(value = "adCode", required = false, defaultValue = "000000000000") String adCode,
- @RequestParam(value = "pType", required = false, defaultValue = "1") String pType) {
- //默认小水库
- if (StringUtils.isBlank(pType)) {
- pType = "1";
- }
- Map<String, Object> addvcd = AdLevelUtil.SubAd(adCode);
- String subAd = addvcd.get("subAd").toString();
- String level = addvcd.get("level").toString();
- String end = null, pattern = null, str = null;
- List<Map<String, Object>> list = null;
- if (level == null || "5".equals(level)) {
- end = "2";
- str = "0000000000";
- pattern = "\\d{12}";
- list = bisInspSelAreaService.getProvinceAreaByPersid(persId, end, str, pattern, adCode, pType, getCurrentOrgId());
- if (list.size() > 0) {
- return buildSuccessResponse(list);
- }
- } else if ("4".equals(level)) {
- end = "4";
- str = "00000000";
- pattern = subAd + "\\d{10}";
- list = bisInspSelAreaService.getProvinceAreaByPersid(persId, end, str, pattern, adCode, pType, getCurrentOrgId());
- if (list.size() > 0) {
- return buildSuccessResponse(list);
- } else {
- list = bisInspSelAreaService.getAddvcdByAdCode(subAd + "__00000000", "3");
- return buildSuccessResponse(list);
- }
- } else if ("3".equals(level)) {
- end = "6";
- str = "000000";
- pattern = subAd + "\\d{8}";
- list = bisInspSelAreaService.getProvinceAreaByPersid(persId, end, str, pattern, adCode, pType, getCurrentOrgId());
- if (list.size() > 0) {
- return buildSuccessResponse(list);
- } else {
- list = bisInspSelAreaService.getAddvcdByAdCode(subAd + "__000000", "4");
- return buildSuccessResponse(list);
- }
- }
- return buildFailResponse();
- }
- @ApiOperation(value = "根据人员id查询可选区域信息(手机缓存数据),pType=1小水库,2人饮工程,3水毁工程,pType=4地下水", notes = "")
- @RequestMapping(value = "/getAreaCacheByPersid", method = RequestMethod.GET)
- public BaseResponse<List<Map<String, Object>>> getAreaCacheByPersid(@RequestParam(value = "persId", required = false) String persId
- , @RequestParam(value = "adCode", required = false, defaultValue = "000000000000") String adCode,
- @RequestParam(value = "pType", required = false, defaultValue = "1") String pType) {
- if (StringUtils.isBlank(pType)) {
- pType = "1";
- }
- Map<String, Object> addvcd = AdLevelUtil.SubAd(adCode);
- String level = addvcd.get("level").toString();
- String end = null, pattern = null, str = null;
- List<Map<String, Object>> list = null;
- List<Map<String, Object>> retlist = new ArrayList<>();
- if ("5".equals(level) || level == null) {
- end = "2";
- str = "0000000000";
- pattern = "\\d{12}";
- list = bisInspSelAreaService.getProvinceAreaByPersid(persId, end, str, pattern, adCode, pType, getCurrentOrgId());
- if (list != null && !list.isEmpty()) {
- retlist.addAll(list);
- str = "00000000";
- String nmidStr = "";
- for (Map<String, Object> map : list) {
- String adCode1 = map.get("AD_CODE").toString();
- Map<String, Object> addvcd1 = AdLevelUtil.SubAd(adCode1);
- String subAd1 = addvcd1.get("subAd").toString();
- pattern = subAd1 + "\\d{10}";
- end = "4";
- list = bisInspSelAreaService.getProvinceAreaByPersid(persId, end, str, pattern, adCode1, pType, getCurrentOrgId());
- if (list == null || list.isEmpty()) {
- String subAd4 = subAd1.substring(0, 2) + "\\d{4}000000";
- if (!nmidStr.equals(subAd4)) {
- nmidStr = subAd4;
- list = bisInspSelAreaService.getAddvcdCacheByAdCode(subAd4, "3");
- }
- }
- retlist.addAll(list);
- if (list != null && !list.isEmpty()) {
- String subAdMid = "";
- for (Map<String, Object> params : list) {
- String adCode2 = params.get("AD_CODE").toString();
- Map<String, Object> addvcd2 = AdLevelUtil.SubAd(adCode2);
- String subAd2 = addvcd2.get("subAd").toString();
- end = "6";
- str = "000000";
- pattern = subAd2 + "\\d{8}";
- list = bisInspSelAreaService.getProvinceAreaByPersid(persId, end, str, pattern, adCode2, pType, getCurrentOrgId());
- if (list.size() > 0) {
- retlist.addAll(list);
- } else {
- String subAd3 = subAd2.substring(0, 2) + "\\d{4}000000";
- if (!subAdMid.equals(subAd3)) {
- subAdMid = subAd3;
- list = bisInspSelAreaService.getAddvcdCacheByAdCode(subAd3, "4");
- retlist.addAll(list);
- }
- }
- }
- }
- }
- }
- }
- return buildSuccessResponse(retlist);
- }
- @ApiOperation(value = "查询行政区下包含的水库", notes = "")
- @RequestMapping(value = "/getResByArea", method = RequestMethod.POST)
- public BaseResponse<PageInfo<Map<String, Object>>> getResByArea(@RequestBody BisInspSelAreaParam param) {
- String code = getPattern(param.getAdCode());
- param.setAdCode(code);
- if (param.getAreaId() != null && param.getAreaId().length() > 0) {
- String level = getLevel(param.getAreaId());
- param.setAreaId(level);
- }
- param.setOrgId(getCurrentOrgId());
- PageInfo<Map<String, Object>> list = bisInspSelAreaService.getResByArea(param);
- return buildSuccessResponse(list);
- }
- @ApiOperation(value = "查询督查组可选行政区", notes = "")
- @RequestMapping(value = "/getAreaByGroup", method = RequestMethod.GET)
- public BaseResponse<List<Map<String, Object>>> getOptionalArea(
- @RequestParam(value = "id") String id,
- @RequestParam(value = "adCode", defaultValue = "000000000000", required = false) String adCode,
- @RequestParam(value = "name", required = false) String name) {
- String ad = AdLevelUtil.Subordinate(adCode);
- List<Map<String, Object>> list = bisInspSelAreaService.getOptionalArea(id, ad, name, adCode, getCurrentOrgId());
- return buildSuccessResponse(list);
- }
- @ApiOperation(value = "查询督查组的区域分工", notes = "查询督查组的区域分工")
- @RequestMapping(value = "/getOptionalArea", method = RequestMethod.GET)
- public BaseResponse<List<Map<String, Object>>> getAreaByGroup(
- @RequestParam(value = "id") String id,
- @RequestParam(value = "adCode", defaultValue = "000000000000", required = false) String adCode,
- @RequestParam(value = "name", required = false) String name) {
- String province = olBisInspOrgService.getProvince(getCurrentOrgId());
- String ad = AdLevelUtil.Subordinate(adCode);
- List<Map<String, Object>> list = bisInspSelAreaService.getAreaByGroup(id, ad, name, adCode, province);
- return buildSuccessResponse(list);
- }
- public String getPattern(String adCode) {
- String[] adCodes = adCode.split(",");
- StringBuffer pattern = new StringBuffer();
- for (int i = 0; i < adCodes.length; i++) {
- if (i == (adCodes.length - 1)) {
- pattern.append("^").append(InspPblmUtils.Subordinate(adCodes[i]));
- } else {
- pattern.append("^").append(InspPblmUtils.Subordinate(adCodes[i])).append("|");
- }
- }
- return pattern.toString();
- }
- public String getLevel(String levels) {
- String[] level = levels.split(",");
- String ret = "";
- for (int i = 0; i < level.length; i++) {
- if (i == (level.length - 1)) {
- ret = ret + level[i];
- } else {
- ret = ret + level[i] + ",";
- }
- }
- return ret;
- }
- @ApiOperation(value = "查询不在该督查组下的水库", notes = "查询不在该督查组下的水库")
- @RequestMapping(value = "/getResByGroup", method = RequestMethod.POST)
- public BaseResponse<PageInfo<AttRsBase>> getResByGroup(@RequestBody InGroupResParam inGroupResParam) {
- OlBisInspOrg org = olBisInspOrgService.get(getCurrentOrgId());
- CheckUtil.notNull(org, "机构ID错误", getCurrentOrgId());
- inGroupResParam.setProvince(AdLevelUtil.getAddvcd(org.getAdCode()));
- inGroupResParam.setOrgId(getCurrentOrgId());
- PageInfo<AttRsBase> list = bisInspSelAreaService.getResByGroup(inGroupResParam);
- return buildSuccessResponse(list);
- }
- @ApiOperation(value = "删除分工(根据组id和行政区编码)", notes = "删除分工(根据组id和行政区编码)")
- @RequestMapping(value = "/deleteByGroupId", method = RequestMethod.GET)
- public BaseResponse deleteByGroupId(@RequestParam String id, @RequestParam String adCode) {
- this.bisInspSelAreaService.deleteByGroupId(id, adCode, getCurrentOrgId());
- return buildSuccessResponse();
- }
- @ApiOperation(value = "查询行政区下包含的稽察项目", notes = "")
- @RequestMapping(value = "/getPawpByArea", method = RequestMethod.POST)
- public BaseResponse<PageInfo<Map<String, Object>>> getPawpByArea(@RequestBody BisInspSelAreaParam param) {
- String code = getPattern(param.getAdCode());
- param.setAdCode(code);
- PageInfo<Map<String, Object>> list = bisInspSelAreaService.getPawpByArea(param);
- return buildSuccessResponse(list);
- }
- }
|