package com.idea.oa.apply.controller; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.github.pagehelper.PageInfo; import com.idea.oa.apply.model.ApplyOffWork; import com.idea.oa.apply.model.ApplyOffWorkTime; import com.idea.oa.apply.model.ApplyOffWorkTimeExample; import com.idea.oa.apply.model.inout.AddConfirmResult; import com.idea.oa.apply.model.inout.ApplyOffWorkIn; import com.idea.oa.apply.model.inout.UseDays; import com.idea.oa.apply.service.ApplyOffWorkService; import com.idea.oa.apply.service.ApplyOffWorkTimeService; import com.idea.oa.apply.util.constant.ConstantFlowType; import com.idea.oa.flow2.model.FlowMain; import com.idea.oa.flow2.model.FlowMainPush; import com.idea.oa.flow2.model.in.FlowMainCcVo; import com.idea.oa.flow2.service.FlowMainCcService; import com.idea.oa.flow2.service.FlowMainPushService; import com.idea.oa.flow2.service.FlowMainService; import com.idea.oa.holidayManagement.model.HolidayManagement; import com.idea.oa.holidayManagement.model.HolidayManagementExample; import com.idea.oa.holidayManagement.model.out.HolidayTime; import com.idea.oa.holidayManagement.service.HolidayManagementService; import com.rockstar.common.base.BaseController; import com.rockstar.common.domain.AjaxResult; import com.rockstar.flow.exception.FlowException; import com.rockstar.frame.model.extend.DateTrans; import com.rockstar.frame.model.extend.TableSplitResult; import com.rockstar.frame.model.extend.Tablepar; import com.rockstar.shiro.util.ShiroUtils; import io.swagger.annotations.Api; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.StringUtils; 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 java.math.BigDecimal; import java.math.MathContext; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; /** * Created by zt */ @Controller @RequestMapping(value = "/ApplyOffWorkController") @Api(value = "申请流程/分表_申请请假表") public class ApplyOffWorkController extends BaseController { //主表 @Autowired private ApplyOffWorkService modelService; @Autowired private HolidayManagementService holidayManagementService; @Autowired private FlowMainService flowMainService; @Autowired private ApplyOffWorkTimeService applyOffWorkTimeService; @Autowired private FlowMainCcService flowMainCcService; @Autowired private FlowMainPushService flowMainPushService; /** * 查询 请假统计详细 * @param tablepar * @param name * @param startTime * @param endTime * @return */ @PostMapping(value = "findApplyOffWorkListByInfo", produces = {"application/json;charset=UTF-8"}) @ResponseBody public TableSplitResult findOffWorkListByInfo(Tablepar tablepar, String name,String startTime,String endTime) { PageInfo page=modelService.findOffWorkListByInfo(tablepar, name, startTime, endTime); TableSplitResult result=new TableSplitResult<>(page.getPageNum(), page.getTotal(), page.getList()); return result; } @PostMapping(value = "findAllApplyOffWorkListByInfo", produces = {"application/json;charset=UTF-8"}) @ResponseBody public List findAllApplyOffWorkListByInfo(String name,String startTime,String endTime) { List result=modelService.findAllApplyOffWorkListByInfo(name, startTime, endTime); return result; } /** * 申请人撤回申请 * * @param flowMainid * @return */ @PostMapping(value = "recallApply", produces = {"application/json;charset=UTF-8"}) @ResponseBody public AjaxResult recallApply(String flowMainid) { AjaxResult ajaxResult = flowMainService.recallApply(flowMainid); if (new Integer(200).equals(ajaxResult.get("code"))) { FlowMain flowMain = flowMainService.selectByPrimaryKey(flowMainid); //添加业务信息(将请假信息中的修改掉,剩余年假,剩余调休,冻结年假,冻结调休都修改掉) ApplyOffWorkTimeExample example = new ApplyOffWorkTimeExample(); example.createCriteria().andOffWorkIdEqualTo(flowMain.getFormId()); List applyOffWorkTimes = applyOffWorkTimeService.selectByExample(example); BigDecimal totalTiaoXiu = new BigDecimal(0);//所有调休假小时 BigDecimal totalNianJia = new BigDecimal(0);//所有年假天数 // BigDecimal totalShiJia = new BigDecimal(0);//所有事假天数(因为不需要修改假期管理,所以不需要单独进行计算) { // ApplyOffWork applyOffWork = modelService.selectByPrimaryKey(flowMainPush.getFormId()); for (ApplyOffWorkTime applyOffWorkTime : applyOffWorkTimes) { {//修改请假表,将请假表的对应数据添加冻结时间,并减去可用时间 if (applyOffWorkTime.getOffWorkType().equals("1")) {//1年假 totalNianJia = totalNianJia.add(new BigDecimal(applyOffWorkTime.getUseTime().toString()), MathContext.DECIMAL32); } else if (applyOffWorkTime.getOffWorkType().equals("3")) {//3调休 totalTiaoXiu = totalTiaoXiu.add(new BigDecimal(applyOffWorkTime.getUseTime().toString()), MathContext.DECIMAL32); } else if (applyOffWorkTime.getOffWorkType().equals("2")) {//2事假 // totalShiJia=totalShiJia.add(new BigDecimal(applyOffWorkTime.getUseTime().toString()), MathContext.DECIMAL32); } } } } if (true) { String createdById = applyOffWorkTimes.get(0).getCreatedBy(); HolidayManagementExample holidayManagementExample = new HolidayManagementExample(); holidayManagementExample.createCriteria().andUserIdEqualTo(createdById); List holidayManagements = holidayManagementService.selectByExample(holidayManagementExample); if (holidayManagements.isEmpty()) { return result(0); } if (false) {//如果是最后 并且同意了,就进行下面的操作,或者不同意就进行另一种操作, //如果是同意了 { HolidayManagement holidayManagement = holidayManagements.get(0); if (totalNianJia.doubleValue() > 0) {//存在年假修改 Double freezeHolidayTime = holidayManagement.getFreezeHolidayTime(); // Double restHolidayTime = holidayManagement.getRestHolidayTime(); double v = new BigDecimal(freezeHolidayTime).subtract(totalNianJia, MathContext.DECIMAL32).doubleValue(); holidayManagement.setFreezeHolidayTime(v); } if (totalTiaoXiu.doubleValue() > 0) {//存在调休假修改 Double freezeExchangeTime = holidayManagement.getFreezeExchangeTime(); double v = new BigDecimal(freezeExchangeTime).subtract(totalTiaoXiu, MathContext.DECIMAL32).doubleValue(); holidayManagement.setFreezeExchangeTime(v); } holidayManagement.setUpdatedBy(ShiroUtils.getUser().getId()); holidayManagement.setUpdatedAt(new Date()); holidayManagementService.updateByPrimaryKeySelective(holidayManagement); } } else { //如果是不同意 { HolidayManagement holidayManagement = holidayManagements.get(0); if (totalNianJia.doubleValue() > 0) {//存在年假修改 Double freezeHolidayTime = holidayManagement.getFreezeHolidayTime(); double v = new BigDecimal(freezeHolidayTime).subtract(totalNianJia, MathContext.DECIMAL32).doubleValue(); holidayManagement.setFreezeHolidayTime(v); Double restHolidayTime = holidayManagement.getRestHolidayTime(); double v1 = new BigDecimal(restHolidayTime).add(totalNianJia, MathContext.DECIMAL32).doubleValue(); holidayManagement.setRestHolidayTime(v1); } if (totalTiaoXiu.doubleValue() > 0) {//存在调休假修改 Double freezeExchangeTime = holidayManagement.getFreezeExchangeTime(); double v = new BigDecimal(freezeExchangeTime).subtract(totalTiaoXiu, MathContext.DECIMAL32).doubleValue(); holidayManagement.setFreezeExchangeTime(v); Double restExchangeTime = holidayManagement.getRestExchangeTime(); double v1 = new BigDecimal(restExchangeTime).add(totalTiaoXiu, MathContext.DECIMAL32).doubleValue(); holidayManagement.setRestExchangeTime(v1); } holidayManagement.setUpdatedBy(ShiroUtils.getUser().getId()); holidayManagement.setUpdatedAt(new Date()); holidayManagementService.updateByPrimaryKeySelective(holidayManagement); } } } } return ajaxResult; } /** * 添加审核结果 * 根据不同的状态值confirmResult判断是 1:审核通过,转下一步;2:退回发起人;3:退回上节点;4:结束流程; * * @param addConfirmResult * @return */ @PostMapping(value = "AddConfirmResultOffWork", produces = {"application/json;charset=UTF-8"}) @ResponseBody @Transactional public AjaxResult AddConfirmResultOffWork(AddConfirmResult addConfirmResult) throws FlowException, ParseException { System.out.println("AddConfirmResultOffWork"); System.out.println(addConfirmResult); if (addConfirmResult.getConfirmResult() == null) { return result(-1); } String deploymentid = ConstantFlowType.OFF_WORK_DEPLOYMENTID; String constantFlowType = ConstantFlowType.OFF_WORK; FlowMainPush flowMainPush = flowMainPushService.selectByPrimaryKey(addConfirmResult.getFlowMainPushId()); ApplyOffWorkTimeExample example = new ApplyOffWorkTimeExample(); example.createCriteria().andOffWorkIdEqualTo(flowMainPush.getFormId()); List applyOffWorkTimes = applyOffWorkTimeService.selectByExample(example); BigDecimal hour_totalTiaoXiu = new BigDecimal(0);//所有调休假小时 BigDecimal day_totalNianJia = new BigDecimal(0);//所有年假天数 BigDecimal hour_totalShiJia = new BigDecimal(0);//所有事假天数 BigDecimal day_total_BingJia_hunjia_chanjia_peichanjia_sangjia = new BigDecimal(0);//所有,4病假,5婚假,6产假,7陪产假,8丧假 ,最小为0.5天 String isOkString = null; {//进行审核判断 { // ApplyOffWork applyOffWork = modelService.selectByPrimaryKey(flowMainPush.getFormId()); for (ApplyOffWorkTime applyOffWorkTime : applyOffWorkTimes) { {//修改请假表,将请假表的对应数据添加冻结时间,并减去可用时间 if (applyOffWorkTime.getOffWorkType().equals("1")) {//1年假 day_totalNianJia = day_totalNianJia.add(new BigDecimal(applyOffWorkTime.getUseTime().toString()), MathContext.DECIMAL32); } else if (applyOffWorkTime.getOffWorkType().equals("3")) {//3调休 hour_totalTiaoXiu = hour_totalTiaoXiu.add(new BigDecimal(applyOffWorkTime.getUseTime().toString()), MathContext.DECIMAL32); } else if (applyOffWorkTime.getOffWorkType().equals("2")) {//2事假 hour_totalShiJia = hour_totalShiJia.add(new BigDecimal(applyOffWorkTime.getUseTime().toString()), MathContext.DECIMAL32); } else if (applyOffWorkTime.getOffWorkType().equals("4") || applyOffWorkTime.getOffWorkType().equals("4") || applyOffWorkTime.getOffWorkType().equals("5") || applyOffWorkTime.getOffWorkType().equals("5") || applyOffWorkTime.getOffWorkType().equals("6") || applyOffWorkTime.getOffWorkType().equals("6") || applyOffWorkTime.getOffWorkType().equals("7") || applyOffWorkTime.getOffWorkType().equals("7") || applyOffWorkTime.getOffWorkType().equals("8") || applyOffWorkTime.getOffWorkType().equals("8")) {//4病假,5婚假,6产假,7陪产假,8丧假 ,最小为0.5天 day_total_BingJia_hunjia_chanjia_peichanjia_sangjia = day_total_BingJia_hunjia_chanjia_peichanjia_sangjia.add(new BigDecimal(applyOffWorkTime.getUseTime().toString()), MathContext.DECIMAL32); } } } } //添加判断条件 HashMap feeMoneyTotalMap = new HashMap<>(); if (hour_totalTiaoXiu.doubleValue() > 0 && day_totalNianJia.doubleValue() <= 0 && hour_totalShiJia.doubleValue() <= 0 && day_total_BingJia_hunjia_chanjia_peichanjia_sangjia.doubleValue() <= 0) { //假别仅有调休假 // String isExchangeOnly = conditionMap.get("isExchangeOnly").toString(); // Integer applyDay = Integer.valueOf(conditionMap.get("applyDay").toString()); feeMoneyTotalMap.put("isExchangeOnly", "yes"); feeMoneyTotalMap.put("applyDay", 0); } else { BigDecimal addDay = hour_totalTiaoXiu.add(hour_totalShiJia).divide(new BigDecimal(ConstantFlowType.ONE_DAY_TIME), 2, BigDecimal.ROUND_HALF_UP); if (addDay.add(day_totalNianJia).add(day_total_BingJia_hunjia_chanjia_peichanjia_sangjia).doubleValue() > 3) { // 假期天数合计>3天 feeMoneyTotalMap.put("isExchangeOnly", "no"); feeMoneyTotalMap.put("applyDay", 4); } else { feeMoneyTotalMap.put("isExchangeOnly", "no"); feeMoneyTotalMap.put("applyDay", 0); } } isOkString = flowMainService.doConfirmResult(addConfirmResult, deploymentid, constantFlowType, flowMainPush, feeMoneyTotalMap); if (!"ok_end".equals(isOkString) && !"ok_noEnd".equals(isOkString)) { return AjaxResult.error(isOkString); } } Boolean isEnd = false;//是否结束 Boolean isAgree = false;//是否同意 if (addConfirmResult.getConfirmResult().equals("4")) {//结束流程 isEnd = true; isAgree = false; } else if (addConfirmResult.getConfirmResult().equals("1")) {//1:审核通过,转下一步 if ("ok_end".equals(isOkString)) { isEnd = true; isAgree = true; } } //添加业务信息(将请假信息中的修改掉,剩余年假,剩余调休,冻结年假,冻结调休都修改掉) if (isEnd) { String createdById = applyOffWorkTimes.get(0).getCreatedBy(); HolidayManagementExample holidayManagementExample = new HolidayManagementExample(); holidayManagementExample.createCriteria().andUserIdEqualTo(createdById); List holidayManagements = holidayManagementService.selectByExample(holidayManagementExample); if (holidayManagements.isEmpty()) { return result(0); } if (isAgree) {//如果是最后 并且同意了,就进行下面的操作,或者不同意就进行另一种操作, this.booleanIsAgree(holidayManagements,day_totalNianJia,hour_totalTiaoXiu,applyOffWorkTimes,createdById); {//移动到booleanIsAgree方法中去了 // //如果是同意了 // { // HolidayManagement holidayManagement = holidayManagements.get(0); // if (day_totalNianJia.doubleValue() > 0) {//存在年假修改 // Double freezeHolidayTime = holidayManagement.getFreezeHolidayTime(); //// Double restHolidayTime = holidayManagement.getRestHolidayTime(); // double v = new BigDecimal(freezeHolidayTime).subtract(day_totalNianJia, MathContext.DECIMAL32).doubleValue(); // holidayManagement.setFreezeHolidayTime(v); // } // if (hour_totalTiaoXiu.doubleValue() > 0) {//存在调休假修改 // Double freezeExchangeTime = holidayManagement.getFreezeExchangeTime(); // double v = new BigDecimal(freezeExchangeTime).subtract(hour_totalTiaoXiu, MathContext.DECIMAL32).doubleValue(); // holidayManagement.setFreezeExchangeTime(v); // } // // holidayManagement.setUpdatedBy(ShiroUtils.getUser().getId()); // holidayManagement.setUpdatedAt(new Date()); // // holidayManagementService.updateByPrimaryKeySelective(holidayManagement); // } // {//审核通过后 在oa_work_attendance_log表中添加记录 // for (ApplyOffWorkTime applyOffWorkTime : applyOffWorkTimes) { // WorkAttendanceLog workAttendanceLog = new WorkAttendanceLog(); // // //// //=========================下面是重要的数据 //// user_id varchar (64) DEFAULT NULL COMMENT '用户id 姓名/部门/岗位', //// `do_day`date DEFAULT NULL COMMENT '发生的日期', //// `happen_type` int(4) DEFAULT NULL COMMENT //// '1年假,2调休,3事假,4病假,5婚假,6产假,7陪产假,8丧假,9加班,10迟到,11早退,12旷工,13外出,14居家,15出差', //// //=========================上面是重要的数据 //// do_start_time datetime DEFAULT NULL COMMENT '发生开始时间', //// do_end_time datetime DEFAULT NULL COMMENT '发生结束时间', //// `use_time`decimal(5, 2) DEFAULT NULL COMMENT '消耗时间(比如加班/调休时间小时)', //// from_table_id varchar(64) DEFAULT NULL COMMENT '来源表id', //// from_table_name varchar(64) DEFAULT NULL COMMENT '来源表名称', // // workAttendanceLog.setUserId(createdById); // workAttendanceLog.setDoDay(applyOffWorkTime.getStartDay()); // workAttendanceLog.setHappenType(offWorkTypeChangehappenType(applyOffWorkTime.getOffWorkType()));//'1年假,2调休,3事假,4病假,5婚假,6产假,7陪产假,8丧假,9加班,10迟到,11早退,12旷工,13外出,14居家,15出差', // workAttendanceLog.setFromTableId(applyOffWorkTime.getId()); // workAttendanceLog.setFromTableName("apply_off_work_time"); // // // workAttendanceLog.setCreatedBy(ShiroUtils.getUser().getId()); // workAttendanceLog.setCreatedAt(new Date()); // workAttendanceLog.setStatus(0); // workAttendanceLog.setUpdatedAt(workAttendanceLog.getCreatedAt()); // workAttendanceLog.setUpdatedBy(workAttendanceLog.getCreatedBy()); // // // //年假 上午/下午/全天 // //事假/调休 是时间:24小时如08:00', // //如果有跨天的问题需要新建多条数据日志 //// '请假类型(1年假,2事假,3调休,4病假,5婚假,6产假,7陪产假,8丧假)', // if (applyOffWorkTime.getOffWorkType().equals("2") || applyOffWorkTime.getOffWorkType().equals("3")) { // // workAttendanceLog.setDoStartTime(applyOffWorkTime.getStartDay()); // workAttendanceLog.setDoEndTime(applyOffWorkTime.getEndDay()); // //判断事假要把小时要转成天 // if (applyOffWorkTime.getOffWorkType().equals("2")) { //// if ("小时".equals(applyOffWorkTime.getTimeUnit())) { // BigDecimal divide = applyOffWorkTime.getUseTime().divide(new BigDecimal(ConstantFlowType.ONE_DAY_TIME), 2, BigDecimal.ROUND_HALF_UP); // workAttendanceLog.setUseTime(divide); //// } // } else { // workAttendanceLog.setUseTime(applyOffWorkTime.getUseTime()); // } // int result = workAttendanceLogService.insert(workAttendanceLog); // // // } else { // //计算年假调用的多少天,分别消耗的多少天 // List useDays = this.countDayUseDays(applyOffWorkTime.getStartDay(), applyOffWorkTime.getEndDay(), applyOffWorkTime.getStartTime(), applyOffWorkTime.getEndTime(), applyOffWorkTime.getUseTime()); // for (UseDays useDay : useDays) { // workAttendanceLog.setDoStartTime(useDay.getStartTime()); // workAttendanceLog.setDoEndTime(useDay.getEndTime()); // workAttendanceLog.setUseTime(useDay.getUseTime()); // workAttendanceLog.setDoDay(useDay.getDoDay()); // int result = workAttendanceLogService.insert(workAttendanceLog); // } // // } // // } // // } } } else { //如果是不同意 { HolidayManagement holidayManagement = holidayManagements.get(0); if (day_totalNianJia.doubleValue() > 0) {//存在年假修改 Double freezeHolidayTime = holidayManagement.getFreezeHolidayTime(); double v = new BigDecimal(freezeHolidayTime).subtract(day_totalNianJia, MathContext.DECIMAL32).doubleValue(); holidayManagement.setFreezeHolidayTime(v); Double restHolidayTime = holidayManagement.getRestHolidayTime(); double v1 = new BigDecimal(restHolidayTime).add(day_totalNianJia, MathContext.DECIMAL32).doubleValue(); holidayManagement.setRestHolidayTime(v1); } if (hour_totalTiaoXiu.doubleValue() > 0) {//存在调休假修改 Double freezeExchangeTime = holidayManagement.getFreezeExchangeTime(); double v = new BigDecimal(freezeExchangeTime).subtract(hour_totalTiaoXiu, MathContext.DECIMAL32).doubleValue(); holidayManagement.setFreezeExchangeTime(v); Double restExchangeTime = holidayManagement.getRestExchangeTime(); double v1 = new BigDecimal(restExchangeTime).add(hour_totalTiaoXiu, MathContext.DECIMAL32).doubleValue(); holidayManagement.setRestExchangeTime(v1); } holidayManagement.setUpdatedBy(ShiroUtils.getUser().getId()); holidayManagement.setUpdatedAt(new Date()); holidayManagementService.updateByPrimaryKeySelective(holidayManagement); } } } return result(1); } /** * 审核或申请结束且同意的情况下进行的处理 */ public void booleanIsAgree(List holidayManagements,BigDecimal day_totalNianJia,BigDecimal hour_totalTiaoXiu,List applyOffWorkTimes,String createdById) throws ParseException { //如果是同意了 { HolidayManagement holidayManagement = holidayManagements.get(0); if (day_totalNianJia.doubleValue() > 0) {//存在年假修改 Double freezeHolidayTime = holidayManagement.getFreezeHolidayTime(); // Double restHolidayTime = holidayManagement.getRestHolidayTime(); double v = new BigDecimal(freezeHolidayTime).subtract(day_totalNianJia, MathContext.DECIMAL32).doubleValue(); holidayManagement.setFreezeHolidayTime(v); } if (hour_totalTiaoXiu.doubleValue() > 0) {//存在调休假修改 Double freezeExchangeTime = holidayManagement.getFreezeExchangeTime(); double v = new BigDecimal(freezeExchangeTime).subtract(hour_totalTiaoXiu, MathContext.DECIMAL32).doubleValue(); holidayManagement.setFreezeExchangeTime(v); } holidayManagement.setUpdatedBy(ShiroUtils.getUser().getId()); holidayManagement.setUpdatedAt(new Date()); holidayManagementService.updateByPrimaryKeySelective(holidayManagement); } /*{//审核通过后 在oa_work_attendance_log表中添加记录 for (ApplyOffWorkTime applyOffWorkTime : applyOffWorkTimes) { WorkAttendanceLog workAttendanceLog = new WorkAttendanceLog(); // //=========================下面是重要的数据 // user_id varchar (64) DEFAULT NULL COMMENT '用户id 姓名/部门/岗位', // `do_day`date DEFAULT NULL COMMENT '发生的日期', // `happen_type` int(4) DEFAULT NULL COMMENT // '1年假,2调休,3事假,4病假,5婚假,6产假,7陪产假,8丧假,9加班,10迟到,11早退,12旷工,13外出,14居家,15出差', // //=========================上面是重要的数据 // do_start_time datetime DEFAULT NULL COMMENT '发生开始时间', // do_end_time datetime DEFAULT NULL COMMENT '发生结束时间', // `use_time`decimal(5, 2) DEFAULT NULL COMMENT '消耗时间(比如加班/调休时间小时)', // from_table_id varchar(64) DEFAULT NULL COMMENT '来源表id', // from_table_name varchar(64) DEFAULT NULL COMMENT '来源表名称', workAttendanceLog.setUserId(createdById); workAttendanceLog.setDoDay(applyOffWorkTime.getStartDay()); workAttendanceLog.setHappenType(offWorkTypeChangehappenType(applyOffWorkTime.getOffWorkType()));//'1年假,2调休,3事假,4病假,5婚假,6产假,7陪产假,8丧假,9加班,10迟到,11早退,12旷工,13外出,14居家,15出差', workAttendanceLog.setFromTableId(applyOffWorkTime.getId()); workAttendanceLog.setFromTableName("apply_off_work_time"); workAttendanceLog.setCreatedBy(ShiroUtils.getUser().getId()); workAttendanceLog.setCreatedAt(new Date()); workAttendanceLog.setStatus(0); workAttendanceLog.setUpdatedAt(workAttendanceLog.getCreatedAt()); workAttendanceLog.setUpdatedBy(workAttendanceLog.getCreatedBy()); //年假 上午/下午/全天 //事假/调休 是时间:24小时如08:00', //如果有跨天的问题需要新建多条数据日志 // '请假类型(1年假,2事假,3调休,4病假,5婚假,6产假,7陪产假,8丧假)', if (applyOffWorkTime.getOffWorkType().equals("2") || applyOffWorkTime.getOffWorkType().equals("3")) { workAttendanceLog.setDoStartTime(applyOffWorkTime.getStartDay()); workAttendanceLog.setDoEndTime(applyOffWorkTime.getEndDay()); //判断事假要把小时要转成天 if (applyOffWorkTime.getOffWorkType().equals("2")) { // if ("小时".equals(applyOffWorkTime.getTimeUnit())) { BigDecimal divide = applyOffWorkTime.getUseTime().divide(new BigDecimal(ConstantFlowType.ONE_DAY_TIME), 2, BigDecimal.ROUND_HALF_UP); workAttendanceLog.setUseTime(divide); // } } else { workAttendanceLog.setUseTime(applyOffWorkTime.getUseTime()); } int result = workAttendanceLogService.insert(workAttendanceLog); } else { //计算年假调用的多少天,分别消耗的多少天 List useDays = this.countDayUseDays(applyOffWorkTime.getStartDay(), applyOffWorkTime.getEndDay(), applyOffWorkTime.getStartTime(), applyOffWorkTime.getEndTime(), applyOffWorkTime.getUseTime()); for (UseDays useDay : useDays) { workAttendanceLog.setDoStartTime(useDay.getStartTime()); workAttendanceLog.setDoEndTime(useDay.getEndTime()); workAttendanceLog.setUseTime(useDay.getUseTime()); workAttendanceLog.setDoDay(useDay.getDoDay()); int result = workAttendanceLogService.insert(workAttendanceLog); } } } }*/ } //计算年假/病假/婚假...调用的多少天,分别消耗的多少天 private List countDayUseDays(Date startDay, Date endDay, String startTime, String endTime, BigDecimal useTime) throws ParseException { if (startDay.after(endDay)) { return null; } List useDayList = new ArrayList<>(); //如果是同一天 if (startDay.equals(endDay)) { UseDays useDays = new UseDays(); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String format = simpleDateFormat.format(startDay); if ("上午".equals(startTime)) { Date parse = simpleDateFormat1.parse(format + " 09:00:00"); useDays.setStartTime(parse); } else { Date parse = simpleDateFormat1.parse(format + " 13:00:00"); useDays.setStartTime(parse); } if ("上午".equals(endDay)) { Date parse = simpleDateFormat1.parse(format + " 12:00:00"); useDays.setEndTime(parse); } else { Date parse = simpleDateFormat1.parse(format + " 17:30:00"); useDays.setEndTime(parse); } useDays.setUseTime(useTime); useDays.setDoDay(useDays.getStartTime()); useDayList.add(useDays); return useDayList; } else {//发现不是同一天 //先设置第一天 UseDays useDays = new UseDays(); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String format = simpleDateFormat.format(startDay); if ("上午".equals(startTime)) { Date parse = simpleDateFormat1.parse(format + " 09:00:00"); useDays.setStartTime(parse); useDays.setUseTime(new BigDecimal(1)); } else { Date parse = simpleDateFormat1.parse(format + " 13:00:00"); useDays.setStartTime(parse); useDays.setUseTime(new BigDecimal(0.5)); } Date parse = simpleDateFormat1.parse(format + " 17:30:00"); useDays.setEndTime(parse); useDays.setDoDay(useDays.getStartTime()); useDayList.add(useDays); //下面设置第二天或最后一天 Calendar cal = Calendar.getInstance(); //设置月份 cal.setTime(startDay); cal.add(Calendar.DATE, 1); Calendar cal2 = Calendar.getInstance(); //设置月份 cal2.setTime(endDay); Date setstartTime=null; while (cal.get(Calendar.DAY_OF_YEAR) < cal2.get(Calendar.DAY_OF_YEAR)) { UseDays useDays2 = new UseDays(); setstartTime = simpleDateFormat1.parse(simpleDateFormat.format(cal.getTime()) + " 09:00:00"); useDays2.setStartTime(setstartTime); parse = simpleDateFormat1.parse(simpleDateFormat.format(cal.getTime()) + " 17:30:00"); useDays2.setEndTime(parse); useDays2.setUseTime(new BigDecimal(1)); useDays2.setDoDay(useDays2.getStartTime()); useDayList.add(useDays2); cal.add(Calendar.DATE, 1); } //设置最后一天 if (cal.get(Calendar.DAY_OF_YEAR) == cal2.get(Calendar.DAY_OF_YEAR)) { UseDays useDays3 = new UseDays(); setstartTime = simpleDateFormat1.parse(simpleDateFormat.format(cal.getTime()) + " 09:00:00"); useDays3.setStartTime(setstartTime); if ("上午".equals(endTime)) { parse = simpleDateFormat1.parse(simpleDateFormat.format(cal.getTime()) + " 12:00:00"); useDays3.setEndTime(parse); useDays3.setUseTime(new BigDecimal(0.5)); } else { parse = simpleDateFormat1.parse(simpleDateFormat.format(cal.getTime()) + " 17:30:00"); useDays3.setEndTime(parse); useDays3.setUseTime(new BigDecimal(1)); } useDays3.setDoDay(useDays3.getStartTime()); useDayList.add(useDays3); } return useDayList; } } /** * 请假和考勤标识的转换 * * @param offWorkType * @return */ private Integer offWorkTypeChangehappenType(String offWorkType) { switch (offWorkType) { // '请假类型(1年假,2事假,3调休,4病假,5婚假,6产假,7陪产假,8丧假)', // 1年假,2调休,3事假,4病假,5婚假,6产假,7陪产假,8丧假,9加班,10迟到,11早退,12旷工,13外出,14居家,15出差 case "1": return 1; case "2": return 3; case "3": return 2; case "4": return 4; case "5": return 5; case "6": return 6; case "7": return 7; case "8": return 8; default: return 0; } } /** * 发起付款申请流程 * * @param record * @return */ @PostMapping(value = "addApplyOffWork", produces = {"application/json;charset=UTF-8"}) @ResponseBody @Transactional public AjaxResult addApplyOffWork(ApplyOffWorkIn record) throws FlowException, ParseException { System.out.println("addApplyOffWork"); System.out.println(record); if (false) { return AjaxResult.error("这是一个错误测试信息"); } return myaddApplyPayment(record, null); } /** * 申请人重新发起申请 * * @param record * @return */ @PostMapping(value = "addApplyOffWorkAgain", produces = {"application/json;charset=UTF-8"}) @ResponseBody @Transactional public AjaxResult addApplyOffWorkAgain(ApplyOffWorkIn record) throws FlowException, ParseException { System.out.println("addApplyOffWorkAgain"); if (StringUtils.isEmpty(record.getFlowMainId())) { return AjaxResult.error("没有传入flowMainId的值"); } System.out.println(record); // record.setRemark("重新发起申请[" + record.getFlowMainId() + "],"); {//修改重新发起前的表状态 FlowMain flowMain1 = new FlowMain(); flowMain1.setId(record.getFlowMainId()); flowMain1.setReturnStatus(1);//0/null无状态,1已撤回并且已重新发起 flowMain1.setUpdatedAt(new Date()); flowMain1.setUpdatedBy(ShiroUtils.getUser().getId()); flowMainService.updateByPrimaryKeySelective(flowMain1); } return myaddApplyPayment(record, "重新发起申请[" + record.getFlowMainId() + "],"); } /** * 根据推送表的FlowMainPushId获取信息 * * @param flowMainPushId * @return */ @PostMapping(value = "getInfoByFlowMainPushId", produces = {"application/json;charset=UTF-8"}) @ResponseBody public ApplyOffWorkIn getInfoByFlowMainPushId(String flowMainPushId) { ApplyOffWorkIn myApplyOffWorkIn = modelService.getInfoByFlowMainPushId(flowMainPushId); if (myApplyOffWorkIn != null) { {//获取抄送人 // FlowMainCcExample example = new FlowMainCcExample(); // example.createCriteria().andFlowMainIdEqualTo(myApplyUseMoneyIn.getFlowMainId()); // List flowMainCcList = flowMainCcService.selectByExample(example); List flowMainCcList = flowMainCcService.selectVoByFlowMainId(myApplyOffWorkIn.getFlowMainId()); // HashSet set = new HashSet<>(); // for (FlowMainCc flowMainCc : flowMainCcList) { // set.add(flowMainCc.getCcUser()); // } // StringBuilder stringBuilder = new StringBuilder(); // if (!set.isEmpty()) { // for (String s : set) { // stringBuilder.append(s + ","); // } // } // myApplyUseMoneyIn.setCcList(stringBuilder.toString()); myApplyOffWorkIn.setFlowMainCcList(flowMainCcList); } {//获取apply_use_money_detail数据 ApplyOffWorkTimeExample example = new ApplyOffWorkTimeExample(); example.createCriteria().andOffWorkIdEqualTo(myApplyOffWorkIn.getId()); List ApplyOffWorkTimes = applyOffWorkTimeService.selectByExample(example); myApplyOffWorkIn.setApplyOffWorkTimeList(ApplyOffWorkTimes); } } return myApplyOffWorkIn; } /** * 写一个方法:根据用户id获取该用户的年假剩余时间,调休假剩余时间,冻结时间等 */ @PostMapping(value = "getHolidayManagementByUserId", produces = {"application/json;charset=UTF-8"}) @ResponseBody public HolidayTime getHolidayManagementByUserId(String userId) throws ParseException { HolidayManagementExample example = new HolidayManagementExample(); example.createCriteria().andUserIdEqualTo(userId); List holidayManagements = holidayManagementService.selectByExample(example); if (holidayManagements.isEmpty()) { return new HolidayTime((double) 0, (double) 0, (double) 0, (double) 0); } HolidayManagement holidayManagement = holidayManagements.get(0); if (holidayManagement.getHolidayType() == null) { return new HolidayTime((double) 0, (double) 0, (double) 0, (double) 0); } //写一个方法 计算当前用户还有多少年假和调休假, // 查看列表的时候 计算年假剩余天数 HolidayTime holidayTime = holidayManagementService.getHolidayTimeByEntiy(holidayManagement); return holidayTime; } /** * 写一个方法:获取该用户的年假剩余时间,调休假剩余时间,冻结时间等 */ @PostMapping(value = "getHolidayManagementByCreater", produces = {"application/json;charset=UTF-8"}) @ResponseBody public HolidayTime getHolidayManagementByCreater() throws ParseException { HolidayManagementExample example = new HolidayManagementExample(); example.createCriteria().andUserIdEqualTo(ShiroUtils.getUser().getId()); List holidayManagements = holidayManagementService.selectByExample(example); if (holidayManagements.isEmpty()) { return new HolidayTime((double) 0, (double) 0, (double) 0, (double) 0); } HolidayManagement holidayManagement = holidayManagements.get(0); if (holidayManagement.getHolidayType() == null) { return new HolidayTime((double) 0, (double) 0, (double) 0, (double) 0); } //写一个方法 计算当前用户还有多少年假和调休假,做一个定时,每天更新计算年假剩余天数 HolidayTime holidayTime = holidayManagementService.getHolidayTimeByEntiy(holidayManagement); return holidayTime; } /** * 根据申请人的id获取年假的信息 * * @return * @throws ParseException */ @PostMapping(value = "getHolidayManagementByApplyUserId", produces = {"application/json;charset=UTF-8"}) @ResponseBody public HolidayTime getHolidayManagementByApplyUserId(String userId) throws ParseException { HolidayManagementExample example = new HolidayManagementExample(); example.createCriteria().andUserIdEqualTo(userId); List holidayManagements = holidayManagementService.selectByExample(example); if (holidayManagements.isEmpty()) { return new HolidayTime((double) 0, (double) 0, (double) 0, (double) 0); } HolidayManagement holidayManagement = holidayManagements.get(0); if (holidayManagement.getHolidayType() == null) { return new HolidayTime((double) 0, (double) 0, (double) 0, (double) 0); } //写一个方法 计算当前用户还有多少年假和调休假,做一个定时,每天更新计算年假剩余天数 HolidayTime holidayTime = holidayManagementService.getHolidayTimeByEntiy(holidayManagement); return holidayTime; } /** * 根据主表的FlowMainId获取信息 * * @param flowMainId * @return */ @PostMapping(value = "getInfoByFlowMainId", produces = {"application/json;charset=UTF-8"}) @ResponseBody public ApplyOffWorkIn getInfoByFlowMainId(String flowMainId) { ApplyOffWorkIn myApplyOffWorkIn = modelService.getInfoByFlowMainId(flowMainId); if (myApplyOffWorkIn != null) { {//获取抄送人 // FlowMainCcExample example = new FlowMainCcExample(); // example.createCriteria().andFlowMainIdEqualTo(myApplyUseMoneyIn.getFlowMainId()); // List flowMainCcList = flowMainCcService.selectByExample(example); List flowMainCcList = flowMainCcService.selectVoByFlowMainId(myApplyOffWorkIn.getFlowMainId()); // HashSet set = new HashSet<>(); // for (FlowMainCc flowMainCc : flowMainCcList) { // set.add(flowMainCc.getCcUser()); // } // StringBuilder stringBuilder = new StringBuilder(); // if (!set.isEmpty()) { // for (String s : set) { // stringBuilder.append(s + ","); // } // } // myApplyUseMoneyIn.setCcList(stringBuilder.toString()); myApplyOffWorkIn.setFlowMainCcList(flowMainCcList); } {//获取apply_use_money_detail数据 ApplyOffWorkTimeExample example = new ApplyOffWorkTimeExample(); example.createCriteria().andOffWorkIdEqualTo(myApplyOffWorkIn.getId()); List ApplyOffWorkTimes = applyOffWorkTimeService.selectByExample(example); myApplyOffWorkIn.setApplyOffWorkTimeList(ApplyOffWorkTimes); } } return myApplyOffWorkIn; } /** * 发起请假申请流程 * addSystemRemark系统中的备注 * * @param record * @return */ public AjaxResult myaddApplyPayment(ApplyOffWorkIn record, String addSystemRemark) throws FlowException, ParseException { if (StringUtils.isEmpty(record.getApplyOffWorkTimeString())) { return AjaxResult.error("没有获取到请假详细信息,请重新确认"); } BigDecimal hour_totalTiaoXiu = new BigDecimal(0);//所有调休假小时 BigDecimal day_totalNianJia = new BigDecimal(0);//所有年假天数 BigDecimal hour_totalShiJia = new BigDecimal(0);//所有事假天数 BigDecimal day_total_BingJia_hunjia_chanjia_peichanjia_sangjia = new BigDecimal(0);//所有,4病假,5婚假,6产假,7陪产假,8丧假 ,最小为0.5天 // 记得有2个地方要加,如果还有别的类型的话,还有一个在审核的时候AddConfirmResultOffWork { record.setUpdatedAt(new Date()); record.setCreatedAt(record.getUpdatedAt()); record.setCreatedBy(ShiroUtils.getUser().getId()); record.setUpdatedBy(record.getCreatedBy()); record.setStatus(0); modelService.insert(record); String applyOffWorkTimeString = record.getApplyOffWorkTimeString(); JSONArray jsonArray = JSONArray.parseArray(applyOffWorkTimeString); for (int i = 0; i < jsonArray.size(); i++) { JSONObject object = jsonArray.getJSONObject(i); ApplyOffWorkTime applyOffWorkTime = JSONObject.parseObject(object.toJSONString(), ApplyOffWorkTime.class);// 将string类型直接封装成对象 if (applyOffWorkTime.getUseTime().doubleValue()<=0) { throw new RuntimeException("请假时间不能小于0小时"); } applyOffWorkTime.setOffWorkId(record.getId()); // 用到 `off_work_type` varchar(100) DEFAULT NULL COMMENT '请假类型(1年假,2事假,3调休)', // 用到 `time_unit` varchar(100) DEFAULT NULL COMMENT '请假消耗时间单位(天/小时)', // 用到 `use_time` decimal(10,2) DEFAULT NULL COMMENT '请假消耗时间', // `start_day` date DEFAULT NULL COMMENT '开始天', // `start_time` varchar(100) DEFAULT NULL COMMENT '开始上午/下午/全天/24小时如08:00', // `end_day` date DEFAULT NULL COMMENT '开始天', // `end_time` varchar(100) DEFAULT NULL COMMENT '开始上午/下午/全天/24小时如08:00', applyOffWorkTime.setUpdatedAt(new Date()); applyOffWorkTime.setCreatedAt(applyOffWorkTime.getUpdatedAt()); applyOffWorkTime.setCreatedBy(ShiroUtils.getUser().getId()); applyOffWorkTime.setUpdatedBy(applyOffWorkTime.getCreatedBy()); applyOffWorkTime.setStatus(0); applyOffWorkTimeService.insert(applyOffWorkTime); {//修改请假表,将请假表的对应数据添加冻结时间,并减去可用时间 if (applyOffWorkTime.getOffWorkType().equals(1) || applyOffWorkTime.getOffWorkType().equals("1")) {//1年假 day_totalNianJia = day_totalNianJia.add(new BigDecimal(applyOffWorkTime.getUseTime().toString()), MathContext.DECIMAL32); } else if (applyOffWorkTime.getOffWorkType().equals(3) || applyOffWorkTime.getOffWorkType().equals("3")) {//3调休 hour_totalTiaoXiu = hour_totalTiaoXiu.add(new BigDecimal(applyOffWorkTime.getUseTime().toString()), MathContext.DECIMAL32); } else if (applyOffWorkTime.getOffWorkType().equals(2) || applyOffWorkTime.getOffWorkType().equals("2")) {//2事假 hour_totalShiJia = hour_totalShiJia.add(new BigDecimal(applyOffWorkTime.getUseTime().toString()), MathContext.DECIMAL32); } else if (applyOffWorkTime.getOffWorkType().equals(4) || applyOffWorkTime.getOffWorkType().equals("4") || applyOffWorkTime.getOffWorkType().equals(5) || applyOffWorkTime.getOffWorkType().equals("5") || applyOffWorkTime.getOffWorkType().equals(6) || applyOffWorkTime.getOffWorkType().equals("6") || applyOffWorkTime.getOffWorkType().equals(7) || applyOffWorkTime.getOffWorkType().equals("7") || applyOffWorkTime.getOffWorkType().equals(8) || applyOffWorkTime.getOffWorkType().equals("8")) {//4病假,5婚假,6产假,7陪产假,8丧假 ,最小为0.5天 day_total_BingJia_hunjia_chanjia_peichanjia_sangjia = day_total_BingJia_hunjia_chanjia_peichanjia_sangjia.add(new BigDecimal(applyOffWorkTime.getUseTime().toString()), MathContext.DECIMAL32); } } } if (day_totalNianJia.doubleValue() > 0 || hour_totalTiaoXiu.doubleValue() > 0) { /** * 做一个方法,修改年假表的数据 */ holidayManagementService.updateTime(day_totalNianJia.doubleValue(), hour_totalTiaoXiu.doubleValue(), record.getCreatedBy()); } } HashMap feeMoneyTotalMap = new HashMap<>(); if (hour_totalTiaoXiu.doubleValue() > 0 && day_totalNianJia.doubleValue() <= 0 && hour_totalShiJia.doubleValue() <= 0 && day_total_BingJia_hunjia_chanjia_peichanjia_sangjia.doubleValue() <= 0) { //假别仅有调休假 // String isExchangeOnly = conditionMap.get("isExchangeOnly").toString(); // Integer applyDay = Integer.valueOf(conditionMap.get("applyDay").toString()); feeMoneyTotalMap.put("isExchangeOnly", "yes"); feeMoneyTotalMap.put("applyDay", 0); } else { BigDecimal addDay = hour_totalTiaoXiu.add(hour_totalShiJia).divide(new BigDecimal(ConstantFlowType.ONE_DAY_TIME), 2, BigDecimal.ROUND_HALF_UP); if (addDay.add(day_totalNianJia).add(day_total_BingJia_hunjia_chanjia_peichanjia_sangjia).doubleValue() > 3) { // 假期天数合计>3天 feeMoneyTotalMap.put("isExchangeOnly", "no"); feeMoneyTotalMap.put("applyDay", 4); } else { feeMoneyTotalMap.put("isExchangeOnly", "no"); feeMoneyTotalMap.put("applyDay", 0); } } // feeMoneyTotalMap.put("billMoney", feeMoneyTotalDouble); String applyTheme = "" + ShiroUtils.getUser().getTruename() + "的请假申请单"; AjaxResult ajaxResult = flowMainService.doFlowMain(applyTheme, record.getId(), addSystemRemark, record.getCcList(), ConstantFlowType.OFF_WORK_PROCESSDEFINE, ConstantFlowType.OFF_WORK_DEPLOYMENTID, feeMoneyTotalMap, ConstantFlowType.OFF_WORK_NAME, ConstantFlowType.OFF_WORK,ShiroUtils.getUser()); if (ajaxResult.get("code").equals(1688)) { //表成功了 且已经审核完成 // 需要进行后续的处理 Boolean isEnd = true;//是否结束 Boolean isAgree = true;//是否同意 //添加业务信息(将请假信息中的修改掉,剩余年假,剩余调休,冻结年假,冻结调休都修改掉) if (isEnd) { String createdById = record.getCreatedBy(); HolidayManagementExample holidayManagementExample = new HolidayManagementExample(); holidayManagementExample.createCriteria().andUserIdEqualTo(createdById); List holidayManagements = holidayManagementService.selectByExample(holidayManagementExample); if (holidayManagements.isEmpty()) { return result(0); } if (isAgree) {//如果是最后 并且同意了,就进行下面的操作,或者不同意就进行另一种操作, ApplyOffWorkTimeExample example = new ApplyOffWorkTimeExample(); example.createCriteria().andOffWorkIdEqualTo(record.getId()); List applyOffWorkTimes = applyOffWorkTimeService.selectByExample(example); this.booleanIsAgree(holidayManagements,day_totalNianJia,hour_totalTiaoXiu,applyOffWorkTimes,createdById); } else { //如果是不同意 { HolidayManagement holidayManagement = holidayManagements.get(0); if (day_totalNianJia.doubleValue() > 0) {//存在年假修改 Double freezeHolidayTime = holidayManagement.getFreezeHolidayTime(); double v = new BigDecimal(freezeHolidayTime).subtract(day_totalNianJia, MathContext.DECIMAL32).doubleValue(); holidayManagement.setFreezeHolidayTime(v); Double restHolidayTime = holidayManagement.getRestHolidayTime(); double v1 = new BigDecimal(restHolidayTime).add(day_totalNianJia, MathContext.DECIMAL32).doubleValue(); holidayManagement.setRestHolidayTime(v1); } if (hour_totalTiaoXiu.doubleValue() > 0) {//存在调休假修改 Double freezeExchangeTime = holidayManagement.getFreezeExchangeTime(); double v = new BigDecimal(freezeExchangeTime).subtract(hour_totalTiaoXiu, MathContext.DECIMAL32).doubleValue(); holidayManagement.setFreezeExchangeTime(v); Double restExchangeTime = holidayManagement.getRestExchangeTime(); double v1 = new BigDecimal(restExchangeTime).add(hour_totalTiaoXiu, MathContext.DECIMAL32).doubleValue(); holidayManagement.setRestExchangeTime(v1); } holidayManagement.setUpdatedBy(ShiroUtils.getUser().getId()); holidayManagement.setUpdatedAt(new Date()); holidayManagementService.updateByPrimaryKeySelective(holidayManagement); } } } return AjaxResult.success(); } return ajaxResult; } @PostMapping(value = "list", produces = {"application/json;charset=UTF-8"}) @ResponseBody public Object list(Tablepar tablepar, ApplyOffWork model, DateTrans dt) { PageInfo page = modelService.list(tablepar, model, dt); TableSplitResult result = new TableSplitResult(page.getPageNum(), page.getTotal(), page.getList()); return result; } @PostMapping(value = "listAll", produces = {"application/json;charset=UTF-8"}) @ResponseBody public Object listAll(ApplyOffWork model, DateTrans dt) { return modelService.listAll(model, dt); } @PostMapping(value = "add", produces = {"application/json;charset=UTF-8"}) @ResponseBody public AjaxResult add(ApplyOffWork record) { record.setCreatedAt(new Date()); int result = modelService.insert(record); return result(result); } @PostMapping(value = "remove/{id}", produces = {"application/json;charset=UTF-8"}) @ResponseBody public AjaxResult remove(@PathVariable("id") String id) { int result = modelService.deleteByPrimaryKey(id); return result(result); } @PostMapping(value = "edit", produces = {"application/json;charset=UTF-8"}) @ResponseBody public AjaxResult editSave(ApplyOffWork model) { int result = modelService.updateByPrimaryKeySelective(model); return result(result); } @PostMapping(value = "getById", produces = {"application/json;charset=UTF-8"}) @ResponseBody public ApplyOffWork getById(String id) { return modelService.selectByPrimaryKey(id); } }