2024-01-04 09:07:20 +08:00
|
|
|
|
package com.zcloud.controller.offduty;
|
|
|
|
|
|
|
|
|
|
import com.zcloud.controller.base.BaseController;
|
|
|
|
|
import com.zcloud.entity.Page;
|
|
|
|
|
import com.zcloud.entity.PageData;
|
|
|
|
|
import com.zcloud.logs.LogAnno;
|
|
|
|
|
import com.zcloud.service.corp.CorpInfoService;
|
|
|
|
|
import com.zcloud.service.offduty.OffDutyService;
|
|
|
|
|
import com.zcloud.service.offduty.OffDutySetupService;
|
|
|
|
|
import com.zcloud.service.system.DepartmentService;
|
|
|
|
|
import com.zcloud.service.system.UsersService;
|
|
|
|
|
import com.zcloud.util.DateUtil;
|
|
|
|
|
import com.zcloud.util.ObjectExcelView;
|
|
|
|
|
import com.zcloud.util.SendMessageUtil;
|
|
|
|
|
import com.zcloud.util.Tools;
|
|
|
|
|
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
import org.springframework.stereotype.Controller;
|
|
|
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
|
|
import org.springframework.web.bind.annotation.ResponseBody;
|
|
|
|
|
import org.springframework.web.servlet.ModelAndView;
|
|
|
|
|
|
|
|
|
|
import java.util.*;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 说明:休假
|
|
|
|
|
* 作者:luoxiaobao
|
|
|
|
|
* 时间:2021-06-11
|
|
|
|
|
* 官网:www.zcloudchina.com
|
|
|
|
|
*/
|
|
|
|
|
@Controller
|
|
|
|
|
@RequestMapping("/app/offduty")
|
|
|
|
|
public class AppOffDutyController extends BaseController {
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private OffDutyService offdutyService;
|
|
|
|
|
@Autowired
|
|
|
|
|
private UsersService usersService;
|
|
|
|
|
@Autowired
|
|
|
|
|
private CorpInfoService corpinfoService;
|
|
|
|
|
@Autowired
|
|
|
|
|
private OffDutySetupService offdutySetupService;
|
|
|
|
|
@Autowired
|
|
|
|
|
private DepartmentService departmentService;
|
|
|
|
|
@Autowired
|
|
|
|
|
private SendMessageUtil sendMessageUtil;
|
|
|
|
|
|
|
|
|
|
/**新增
|
|
|
|
|
* @param
|
|
|
|
|
* @throws Exception
|
|
|
|
|
*/
|
|
|
|
|
@RequestMapping(value="/add")
|
|
|
|
|
@ResponseBody
|
|
|
|
|
@LogAnno(menuType= "手机",menuServer= "离岗管理",instructionsOperate = "离岗管理",instructionsType = "新增")
|
|
|
|
|
public Object add() throws Exception{
|
|
|
|
|
Map<String,Object> map = new HashMap<String,Object>();
|
|
|
|
|
String errInfo = "success";
|
|
|
|
|
PageData pd = new PageData();
|
|
|
|
|
pd = this.getPageData();
|
|
|
|
|
pd.put("OFFDUTY_ID", this.get32UUID()); //主键
|
|
|
|
|
pd.put("ISDELETE", "0"); //是否删除 0 未删除 1已删除
|
|
|
|
|
pd.put("OPERATTIME", DateUtil.date2Str(new Date())); //操作时间
|
|
|
|
|
pd.put("CREATTIME", DateUtil.date2Str(new Date())); //创建时间
|
|
|
|
|
pd.put("REVIEW_STATUS", "2"); //审核状态 0.待审批 -1.审批未通过 1.审批通过 2.无需审批
|
|
|
|
|
// 查看用户是否在休假中
|
|
|
|
|
PageData isRest = this.getPageData();
|
|
|
|
|
isRest.put("ISREST", "1");
|
|
|
|
|
isRest.put("USER_ID", pd.getString("USER_ID"));
|
|
|
|
|
isRest.put("CORPINFO_ID", pd.getString("CORPINFO_ID"));
|
|
|
|
|
List<PageData> restList = offdutyService.listAll(isRest);
|
|
|
|
|
if(restList != null && restList.size() > 0) {
|
|
|
|
|
// 休假中
|
|
|
|
|
map.put("ISREST", "1");
|
|
|
|
|
} else {
|
|
|
|
|
// 正常工作
|
|
|
|
|
map.put("ISREST", "0");
|
|
|
|
|
}
|
|
|
|
|
List<PageData> varList = offdutySetupService.listAll(pd); //获取企业审批设置判断是否需要审批
|
|
|
|
|
if (varList.size() > 0 && "2".equals(varList.get(0).getString("SETUP_STATE"))) {
|
|
|
|
|
pd.put("REVIEW_STATUS", "0"); //审核状态 0.待审批 -1.审批未通过 1.审批通过 2.无需审批
|
|
|
|
|
// 正常工作
|
|
|
|
|
map.put("ISREST", "0");
|
|
|
|
|
PageData mes = new PageData();
|
|
|
|
|
mes.put("RECEIVER_ID", pd.get("REVIEW_USER_ID"));// 收信人userid
|
|
|
|
|
mes.put("templateCode", "LG_TZ");// 短信模板编码
|
|
|
|
|
mes.put("CORPINFO_ID", pd.get("CORPINFO_ID"));// 企业id
|
|
|
|
|
List<PageData> paramsList = new ArrayList<PageData>();
|
|
|
|
|
pd.put("RECEIVER_ID", pd.get("REVIEW_USER_ID"));
|
|
|
|
|
sendMessageUtil.sendMessages(mes, paramsList);
|
|
|
|
|
// 给审批人发送短信,暂时先用发验证码代替
|
|
|
|
|
}
|
|
|
|
|
offdutyService.save(pd);
|
|
|
|
|
map.put("result", errInfo);
|
|
|
|
|
return map;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**删除
|
|
|
|
|
* @param
|
|
|
|
|
* @throws Exception
|
|
|
|
|
*/
|
|
|
|
|
@RequestMapping(value="/delete")
|
|
|
|
|
@ResponseBody
|
|
|
|
|
@LogAnno(menuType= "手机",menuServer= "离岗管理",instructionsOperate = "离岗管理",instructionsType = "删除")
|
|
|
|
|
public Object delete() throws Exception{
|
|
|
|
|
Map<String,String> map = new HashMap<String,String>();
|
|
|
|
|
String errInfo = "success";
|
|
|
|
|
PageData pd = new PageData();
|
|
|
|
|
pd = this.getPageData();
|
|
|
|
|
offdutyService.delete(pd);
|
|
|
|
|
map.put("result", errInfo); //返回结果
|
|
|
|
|
return map;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**修改
|
|
|
|
|
* @param
|
|
|
|
|
* @throws Exception
|
|
|
|
|
*/
|
|
|
|
|
@RequestMapping(value="/edit")
|
|
|
|
|
@ResponseBody
|
|
|
|
|
@LogAnno(menuType= "手机",menuServer= "离岗管理",instructionsOperate = "离岗管理",instructionsType = "修改")
|
|
|
|
|
public Object edit() throws Exception{
|
|
|
|
|
Map<String,Object> map = new HashMap<String,Object>();
|
|
|
|
|
String errInfo = "success";
|
|
|
|
|
PageData pd = new PageData();
|
|
|
|
|
pd = this.getPageData();
|
|
|
|
|
pd.put("OPERATTIME", DateUtil.date2Str(new Date())); //操作时间
|
|
|
|
|
offdutyService.edit(pd);
|
|
|
|
|
map.put("result", errInfo);
|
|
|
|
|
return map;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**列表
|
|
|
|
|
* @param page
|
|
|
|
|
* @throws Exception
|
|
|
|
|
*/
|
|
|
|
|
@RequestMapping(value="/list")
|
|
|
|
|
@ResponseBody
|
|
|
|
|
@LogAnno(menuType= "手机",menuServer= "离岗管理",instructionsOperate = "离岗管理",instructionsType = "列表")
|
|
|
|
|
public Object list(Page page) throws Exception{
|
|
|
|
|
Map<String,Object> map = new HashMap<String,Object>();
|
|
|
|
|
String errInfo = "success";
|
|
|
|
|
PageData pd = new PageData();
|
|
|
|
|
pd = this.getPageData();
|
|
|
|
|
PageData cpd = new PageData();
|
|
|
|
|
cpd = usersService.findById(pd);
|
|
|
|
|
pd.put("ISLEADER", cpd.getString("ISLEADER"));
|
|
|
|
|
if(cpd.getString("ISLEADER") != null && cpd.getString("ISLEADER").equals("1")){
|
|
|
|
|
String DEPARTMENT_ID = pd.getString("DEPARTMENT_ID");
|
|
|
|
|
String ids = departmentService.getDEPARTMENT_IDS(DEPARTMENT_ID);
|
|
|
|
|
ids=pd.getString("DEPARTMENT_ID")+","+ids; //把自己部门插入进去
|
|
|
|
|
if(ids!=null && Tools.notEmpty(ids)&& ids.lastIndexOf(",")>-1) {
|
|
|
|
|
ids = ids.substring(0,ids.lastIndexOf(","));
|
|
|
|
|
pd.put("DEPARTMENT_IDS", ids.split(","));
|
|
|
|
|
}else {
|
|
|
|
|
pd.put("DEPARTMENT_IDS", DEPARTMENT_ID);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
page.setPd(pd);
|
|
|
|
|
List<PageData> varList = offdutyService.list(page); //列出OffDuty列表
|
|
|
|
|
map.put("varList", varList);
|
|
|
|
|
map.put("page", page);
|
|
|
|
|
map.put("result", errInfo);
|
|
|
|
|
return map;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**去修改页面获取数据
|
|
|
|
|
* @param
|
|
|
|
|
* @throws Exception
|
|
|
|
|
*/
|
|
|
|
|
@RequestMapping(value="/goEdit")
|
|
|
|
|
@ResponseBody
|
|
|
|
|
@LogAnno(menuType= "手机",menuServer= "离岗管理",instructionsOperate = "离岗管理",instructionsType = "去修改页面获取数据")
|
|
|
|
|
public Object goEdit() throws Exception{
|
|
|
|
|
Map<String,Object> map = new HashMap<String,Object>();
|
|
|
|
|
String errInfo = "success";
|
|
|
|
|
PageData pd = new PageData();
|
|
|
|
|
pd = this.getPageData();
|
|
|
|
|
pd = offdutyService.findById(pd); //根据ID读取
|
|
|
|
|
map.put("pd", pd);
|
|
|
|
|
map.put("result", errInfo);
|
|
|
|
|
return map;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**查看当前用户是否正在休班
|
|
|
|
|
* @param page
|
|
|
|
|
* @throws Exception
|
|
|
|
|
*/
|
|
|
|
|
@RequestMapping(value="/isRest")
|
|
|
|
|
@ResponseBody
|
|
|
|
|
@LogAnno(menuType= "手机",menuServer= "离岗管理",instructionsOperate = "离岗管理",instructionsType = "查看当前用户是否正在休班")
|
|
|
|
|
public Object isRest() throws Exception{
|
|
|
|
|
Map<String,Object> map = new HashMap<String,Object>();
|
|
|
|
|
String errInfo = "success";
|
|
|
|
|
PageData pd = new PageData();
|
|
|
|
|
pd = this.getPageData();
|
|
|
|
|
PageData user = usersService.findById(pd);
|
|
|
|
|
PageData cpd = corpinfoService.findById(pd);
|
|
|
|
|
if (cpd.get("TRIALDAY")== null || Integer.parseInt(cpd.get("TRIALDAY").toString()) >= 0 ) {
|
|
|
|
|
if ("1".equals(cpd.getString("ISSTOP")) || cpd.get("ISSTOP") == null) {
|
|
|
|
|
if (Tools.notEmpty(user.getString("WORKSTATUS")) && "2".equals(user.getString("WORKSTATUS"))) {// 查看用户是否处于周期性休班中
|
|
|
|
|
// 休班(周期性)
|
|
|
|
|
map.put("ISREST", "1");
|
|
|
|
|
} else {
|
|
|
|
|
pd.put("ISREST", "1");
|
|
|
|
|
List<PageData> varList = offdutyService.listAll(pd);
|
|
|
|
|
if (varList != null && varList.size() > 0) {
|
|
|
|
|
// 休假中
|
|
|
|
|
map.put("ISREST", "1");
|
|
|
|
|
} else {
|
|
|
|
|
// 正常工作
|
|
|
|
|
map.put("ISREST", "0");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
map.put("varList", varList);
|
|
|
|
|
}
|
|
|
|
|
}else {
|
|
|
|
|
errInfo = "usercorperror";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
errInfo = "userUSEerror";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
map.put("result", errInfo);
|
|
|
|
|
if ("userUSEerror".equals(errInfo)) {
|
|
|
|
|
map.put("msg", "您的企业已到使用期限,请联系管理员");
|
|
|
|
|
}
|
|
|
|
|
else if ("usercorperror".equals(errInfo)) {
|
|
|
|
|
map.put("msg", "您的企业已停用,请联系管理员");
|
|
|
|
|
}
|
|
|
|
|
return map;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**批量删除
|
|
|
|
|
* @param
|
|
|
|
|
* @throws Exception
|
|
|
|
|
*/
|
|
|
|
|
@RequestMapping(value="/deleteAll")
|
2024-01-25 16:37:20 +08:00
|
|
|
|
// @RequiresPermissions("offduty:del")
|
2024-01-04 09:07:20 +08:00
|
|
|
|
@ResponseBody
|
|
|
|
|
@LogAnno(menuType= "手机",menuServer= "离岗管理",instructionsOperate = "离岗管理",instructionsType = "批量删除")
|
|
|
|
|
public Object deleteAll() throws Exception{
|
|
|
|
|
Map<String,Object> map = new HashMap<String,Object>();
|
|
|
|
|
String errInfo = "success";
|
|
|
|
|
PageData pd = new PageData();
|
|
|
|
|
pd = this.getPageData();
|
|
|
|
|
String DATA_IDS = pd.getString("DATA_IDS");
|
|
|
|
|
if(Tools.notEmpty(DATA_IDS)){
|
|
|
|
|
String ArrayDATA_IDS[] = DATA_IDS.split(",");
|
|
|
|
|
offdutyService.deleteAll(ArrayDATA_IDS);
|
|
|
|
|
errInfo = "success";
|
|
|
|
|
}else{
|
|
|
|
|
errInfo = "error";
|
|
|
|
|
}
|
|
|
|
|
map.put("result", errInfo); //返回结果
|
|
|
|
|
return map;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**导出到excel
|
|
|
|
|
* @param
|
|
|
|
|
* @throws Exception
|
|
|
|
|
*/
|
|
|
|
|
@RequestMapping(value="/excel")
|
|
|
|
|
@LogAnno(menuType= "手机",menuServer= "离岗管理",instructionsOperate = "离岗管理",instructionsType = "导出到excel")
|
|
|
|
|
public ModelAndView exportExcel() throws Exception{
|
|
|
|
|
ModelAndView mv = new ModelAndView();
|
|
|
|
|
PageData pd = new PageData();
|
|
|
|
|
pd = this.getPageData();
|
|
|
|
|
Map<String,Object> dataMap = new HashMap<String,Object>();
|
|
|
|
|
List<String> titles = new ArrayList<String>();
|
|
|
|
|
titles.add("用户"); //1
|
|
|
|
|
titles.add("公司"); //2
|
|
|
|
|
titles.add("开始时间"); //3
|
|
|
|
|
titles.add("结束时间"); //4
|
|
|
|
|
titles.add("休班原因"); //5
|
|
|
|
|
titles.add("删除状态 0 -未删除 1- 已删除"); //6
|
|
|
|
|
titles.add("添加人"); //7
|
|
|
|
|
titles.add("创建时间"); //8
|
|
|
|
|
titles.add("修改人"); //9
|
|
|
|
|
titles.add("修改时间"); //10
|
|
|
|
|
dataMap.put("titles", titles);
|
|
|
|
|
List<PageData> varOList = offdutyService.listAll(pd);
|
|
|
|
|
List<PageData> varList = new ArrayList<PageData>();
|
|
|
|
|
for(int i=0;i<varOList.size();i++){
|
|
|
|
|
PageData vpd = new PageData();
|
|
|
|
|
vpd.put("var1", varOList.get(i).getString("USER_ID")); //1
|
|
|
|
|
vpd.put("var2", varOList.get(i).getString("CORPINFO_ID")); //2
|
|
|
|
|
vpd.put("var3", varOList.get(i).getString("STARTTIME")); //3
|
|
|
|
|
vpd.put("var4", varOList.get(i).getString("ENDTIME")); //4
|
|
|
|
|
vpd.put("var5", varOList.get(i).getString("DESCR")); //5
|
|
|
|
|
vpd.put("var6", varOList.get(i).getString("ISDELETE")); //6
|
|
|
|
|
vpd.put("var7", varOList.get(i).getString("CREATOR")); //7
|
|
|
|
|
vpd.put("var8", varOList.get(i).getString("CREATTIME")); //8
|
|
|
|
|
vpd.put("var9", varOList.get(i).getString("OPERATOR")); //9
|
|
|
|
|
vpd.put("var10", varOList.get(i).getString("OPERATTIME")); //10
|
|
|
|
|
varList.add(vpd);
|
|
|
|
|
}
|
|
|
|
|
dataMap.put("varList", varList);
|
|
|
|
|
ObjectExcelView erv = new ObjectExcelView();
|
|
|
|
|
mv = new ModelAndView(erv,dataMap);
|
|
|
|
|
return mv;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**列表
|
|
|
|
|
* @param page
|
|
|
|
|
* @throws Exception
|
|
|
|
|
*/
|
|
|
|
|
@RequestMapping(value="/getSetup")
|
|
|
|
|
@ResponseBody
|
|
|
|
|
@LogAnno(menuType= "双重预防",menuServer= "离岗管理",instructionsOperate = "离岗管理",instructionsType = "获取离岗设置")
|
|
|
|
|
public Object getSetup(Page page) throws Exception{
|
|
|
|
|
Map<String,Object> map = new HashMap<String,Object>();
|
|
|
|
|
String errInfo = "success";
|
|
|
|
|
PageData pd = new PageData();
|
|
|
|
|
pd = this.getPageData();
|
|
|
|
|
page.setPd(pd);
|
|
|
|
|
List<PageData> varList = new ArrayList<>();
|
|
|
|
|
varList = offdutySetupService.list(page); //列出OffDutySetup列表
|
|
|
|
|
if (varList.isEmpty()) {
|
|
|
|
|
PageData var = new PageData();
|
|
|
|
|
var.put("CORPINFO_ID",pd.getString("CORPINFO_ID"));
|
|
|
|
|
var.put("SETUP_STATE", "1");
|
|
|
|
|
varList.add(var);
|
|
|
|
|
}
|
|
|
|
|
map.put("pd", varList.get(0));
|
|
|
|
|
map.put("page", page);
|
|
|
|
|
map.put("result", errInfo);
|
|
|
|
|
return map;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/** 审批离岗申请
|
|
|
|
|
* @param
|
|
|
|
|
* @throws Exception
|
|
|
|
|
*/
|
|
|
|
|
@RequestMapping(value="/review")
|
|
|
|
|
@ResponseBody
|
|
|
|
|
@LogAnno(menuType= "双重预防",menuServer= "离岗管理",instructionsOperate = "离岗管理",instructionsType = "审批")
|
|
|
|
|
public Object review() throws Exception{
|
|
|
|
|
Map<String,Object> map = new HashMap<String,Object>();
|
|
|
|
|
String errInfo = "success";
|
|
|
|
|
PageData pd = new PageData();
|
|
|
|
|
pd = this.getPageData();
|
|
|
|
|
pd.put("OPERATTIME", DateUtil.date2Str(new Date())); //操作时间
|
|
|
|
|
offdutyService.edit(pd);
|
|
|
|
|
map.put("result", errInfo);
|
|
|
|
|
return map;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/** 取消离岗申请
|
|
|
|
|
* @param
|
|
|
|
|
* @throws Exception
|
|
|
|
|
*/
|
|
|
|
|
@RequestMapping(value="/cancel")
|
|
|
|
|
@ResponseBody
|
|
|
|
|
@LogAnno(menuType= "双重预防",menuServer= "离岗管理",instructionsOperate = "离岗管理",instructionsType = "取消")
|
|
|
|
|
public Object cancel() throws Exception{
|
|
|
|
|
Map<String,Object> map = new HashMap<String,Object>();
|
|
|
|
|
String errInfo = "success";
|
|
|
|
|
PageData pd = new PageData();
|
|
|
|
|
pd = this.getPageData();
|
|
|
|
|
pd.put("ISDELETE", "1"); //是否删除 0 未删除 1已删除
|
|
|
|
|
pd.put("OPERATTIME", DateUtil.date2Str(new Date())); //操作时间
|
|
|
|
|
offdutyService.edit(pd);
|
|
|
|
|
map.put("result", errInfo);
|
|
|
|
|
return map;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|