package com.javaweb.platform.controller;
|
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Controller;
|
import org.springframework.ui.ModelMap;
|
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.PathVariable;
|
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
import com.javaweb.common.annotation.Log;
|
import com.javaweb.common.config.ServerConfig;
|
import com.javaweb.common.enums.BusinessType;
|
import com.javaweb.platform.constant.ApplyStatus;
|
import com.javaweb.platform.constant.DrillType;
|
import com.javaweb.platform.domain.HoleInfo;
|
import com.javaweb.platform.domain.ProjectApply;
|
import com.javaweb.platform.domain.ProjectApplyHole;
|
import com.javaweb.platform.domain.UserMsg;
|
import com.javaweb.platform.mapper.ProjectInfoMapper;
|
import com.javaweb.platform.service.IHoleInfoService;
|
import com.javaweb.platform.service.IProjectApplyHoleService;
|
import com.javaweb.platform.service.IProjectApplyService;
|
import com.javaweb.platform.service.IProjectInfoService;
|
import com.javaweb.platform.service.IUserMsgService;
|
import com.javaweb.platform.utils.ValidcodeUtils;
|
import com.javaweb.common.core.controller.BaseController;
|
import com.javaweb.common.core.domain.AjaxResult;
|
import com.javaweb.common.utils.StringUtils;
|
import com.javaweb.common.utils.poi.ExcelUtil;
|
import com.javaweb.hydrology.domain.HydrologyHoleInfo;
|
import com.javaweb.hydrology.mapper.HydrologyHoleInfoMapper;
|
import com.javaweb.hydrology.service.impl.HydrologyHoleInfoServiceImpl;
|
import com.javaweb.common.core.page.TableDataInfo;
|
|
/**
|
* 申请信息Controller
|
*
|
* @author zmk
|
* @date 2022-03-12
|
*/
|
@Controller
|
@RequestMapping("/platform/projectapply")
|
public class ProjectApplyController extends BaseController
|
{
|
private String prefix = "platform/projectapply";
|
|
@Autowired
|
private IProjectApplyService projectApplyService;
|
|
@Autowired
|
private IProjectInfoService projectInfoService;
|
|
@Autowired
|
private ProjectInfoMapper projectInfoMapper;
|
|
@Autowired
|
private IHoleInfoService holeInfoService;
|
|
@Autowired
|
private HydrologyHoleInfoMapper hydrologyHoleInfo;
|
|
@Autowired
|
private IProjectApplyHoleService projectApplyHoleService;
|
|
@Autowired
|
private ServerConfig serverConfig;
|
|
@Autowired
|
private IUserMsgService userMsgService;
|
|
private Double radius =1000d;
|
|
@Autowired
|
private ValidcodeUtils validcodeUtils;
|
|
|
@RequiresPermissions("platform:projectapply:view")
|
@GetMapping()
|
public String projectapply()
|
{
|
return prefix + "/projectapply";
|
}
|
|
/**
|
* 查询申请信息列表
|
*/
|
@RequiresPermissions("platform:projectapply:list")
|
@PostMapping("/list")
|
@ResponseBody
|
public TableDataInfo list(ProjectApply projectApply)
|
{
|
startPage();
|
List<ProjectApply> list = projectApplyService.selectProjectApplyList(projectApply);
|
return getDataTable(list);
|
}
|
|
/**
|
* 导出申请信息列表
|
*/
|
@RequiresPermissions("platform:projectapply:export")
|
@Log(title = "申请信息", businessType = BusinessType.EXPORT)
|
@PostMapping("/export")
|
@ResponseBody
|
public AjaxResult export(ProjectApply projectApply)
|
{
|
List<ProjectApply> list = projectApplyService.selectProjectApplyList(projectApply);
|
ExcelUtil<ProjectApply> util = new ExcelUtil<ProjectApply>(ProjectApply.class);
|
return util.exportExcel(list, "projectapply");
|
}
|
|
/**
|
* 新增申请信息
|
*/
|
@GetMapping("/add")
|
public String add()
|
{
|
return prefix + "/add";
|
}
|
|
/**
|
* 新增保存申请信息
|
*/
|
@RequiresPermissions("platform:projectapply:add")
|
@Log(title = "申请信息", businessType = BusinessType.INSERT)
|
@PostMapping("/add")
|
@ResponseBody
|
public AjaxResult addSave(ProjectApply projectApply)
|
{
|
return toAjax(projectApplyService.insertProjectApply(projectApply));
|
}
|
|
/**
|
* 修改申请信息
|
*/
|
@GetMapping("/edit/{id}")
|
public String edit(@PathVariable("id") String id, ModelMap mmap)
|
{
|
ProjectApply projectApply = projectApplyService.selectProjectApplyById(id);
|
mmap.put("projectApply", projectApply);
|
return prefix + "/edit";
|
}
|
|
/**
|
* 修改保存申请信息
|
*/
|
@RequiresPermissions("platform:projectapply:edit")
|
@Log(title = "申请信息", businessType = BusinessType.UPDATE)
|
@PostMapping("/edit")
|
@ResponseBody
|
public AjaxResult editSave(ProjectApply projectApply)
|
{
|
return toAjax(projectApplyService.updateProjectApply(projectApply));
|
}
|
|
/**
|
* 删除申请信息
|
*/
|
@RequiresPermissions("platform:projectapply:remove")
|
@Log(title = "申请信息", businessType = BusinessType.DELETE)
|
@PostMapping( "/remove")
|
@ResponseBody
|
public AjaxResult remove(String ids)
|
{
|
return toAjax(projectApplyService.deleteProjectApplyByIds(ids));
|
}
|
|
/**
|
* 拒绝申请
|
* @param id
|
* @param mmap
|
* @return
|
*/
|
@GetMapping("/reject")
|
public String reject(String id, ModelMap mmap)
|
{
|
ProjectApply projectApply = projectApplyService.selectProjectApplyById(id);
|
mmap.put("projectApply", projectApply);
|
return prefix + "/reject";
|
}
|
|
|
@PostMapping("/rejectSave")
|
@ResponseBody
|
public AjaxResult rejectSave(ProjectApply projectApply)
|
{
|
|
//更新状态
|
projectApply.setStatus(ApplyStatus.apply_reject);
|
projectApplyService.updateProjectApply(projectApply);
|
|
//更新钻孔状态
|
ProjectApplyHole projectApplyHole = new ProjectApplyHole();
|
|
projectApplyHole.setApplyId(projectApply.getId());
|
projectApplyHole.setStatus(ApplyStatus.apply_reject);
|
projectApplyHoleService.updateProjectApplyStatus(projectApplyHole);
|
|
//获取申请人信息
|
ProjectApply apply = projectApplyService.selectProjectApplyById(projectApply.getId());
|
String createBy = apply.getCreateBy();
|
|
UserMsg userMsg = new UserMsg();
|
userMsg.setUserName(createBy);
|
userMsg.setCreateDate(new Date());
|
userMsg.setMsg(projectApply.getRejectMsg());
|
userMsgService.insertUserMsg(userMsg);
|
|
//发送短信
|
try {
|
validcodeUtils.sendMesgToPhone("6", apply.getTel());
|
} catch (Exception e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
}
|
|
|
return AjaxResult.success(ApplyStatus.apply_reject+"申请");
|
}
|
|
|
|
|
|
@PostMapping("/approve")
|
@ResponseBody
|
public AjaxResult approve(String ids)
|
{
|
String [] idArray=ids.split(",");
|
for(String id : idArray){
|
ProjectApply projectApply =new ProjectApply();
|
projectApply.setId(id);
|
projectApply.setStatus(ApplyStatus.apply_approve);
|
projectApplyService.updateProjectApply(projectApply);
|
|
ProjectApplyHole projectApplyHole=new ProjectApplyHole();
|
projectApplyHole.setApplyId(id);
|
projectApplyHole.setStatus(ApplyStatus.apply_approve);
|
//更新申请记录
|
projectApplyHoleService.updateProjectApplyStatus(projectApplyHole);
|
|
//获取申请人信息
|
ProjectApply apply = projectApplyService.selectProjectApplyById(id);
|
String createBy = apply.getCreateBy();
|
|
UserMsg userMsg = new UserMsg();
|
userMsg.setUserName(createBy);
|
userMsg.setCreateDate(new Date());
|
userMsg.setMsg("您申请的钻孔已通过,可以查看到对应的钻孔柱状图。对应的代建项目为【"+apply.getOnProjectName()+"】");
|
userMsgService.insertUserMsg(userMsg);
|
|
try {
|
validcodeUtils.sendMesgToPhone("5", apply.getTel());
|
} catch (Exception e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
}
|
|
|
}
|
return AjaxResult.success(ApplyStatus.apply_approve);
|
}
|
|
|
|
/**
|
* 定位申请信息
|
* @throws Exception
|
*/
|
@GetMapping("/location/{id}")
|
public String location(@PathVariable("id") String id, ModelMap mmap) throws Exception
|
{
|
ProjectApply projectApply = projectApplyService.selectProjectApplyById(id);
|
if(!StringUtils.isEmpty(projectApply.getFiles())){
|
String files =serverConfig.getUrl()+projectApply.getFiles();
|
projectApply.setFiles(files);
|
}
|
|
mmap.put("projectApply", projectApply);//项目位置
|
|
ProjectApplyHole applyHole=new ProjectApplyHole();
|
applyHole.setApplyId(projectApply.getId());
|
|
List<ProjectApplyHole> applyHoles =projectApplyHoleService.selectProjectApplyHoleList(applyHole);
|
|
|
List<HoleInfo> holeInfos =new ArrayList<>();
|
List<HydrologyHoleInfo> dxs = new ArrayList<>();//地下水
|
|
//查找钻孔
|
for(ProjectApplyHole applyHole2 : applyHoles){
|
|
if(applyHole2.getHoleType() !=null && applyHole2.getHoleType().equals(DrillType.DXS.getInfo())){
|
|
Long lid = Long.valueOf(applyHole2.getHoleId());
|
dxs.add(hydrologyHoleInfo.selectHydrologyHoleInfoById(lid));
|
|
}else{
|
|
holeInfos.add(holeInfoService.selectHoleInfoById(applyHole2.getHoleId()));
|
|
}
|
}
|
|
mmap.put("dxs", dxs);//项目位置
|
mmap.put("holeList", holeInfos);//项目位置
|
return prefix + "/location";
|
}
|
|
/*
|
* 地下水折线
|
*/
|
@GetMapping("/dxs")
|
public String dxs(String holeNum ,HttpServletRequest request, ModelMap mmap)
|
{
|
mmap.put("holeNum", holeNum);
|
return prefix + "/dxs";
|
}
|
|
@Autowired
|
private HydrologyHoleInfoServiceImpl hydrologyHoleInfoServiceImpl;
|
|
|
/*
|
* 地下水折线
|
*/
|
@PostMapping("/dxsChart")
|
@ResponseBody
|
public AjaxResult dxsChart(String holeNum ,HttpServletRequest request)
|
{
|
AjaxResult result = hydrologyHoleInfoServiceImpl.hydrologyChart(holeNum);
|
|
return result;
|
}
|
}
|