package com.liang.controller; import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.liang.common.base.BaseController; import com.liang.common.base.BaseResult; import com.liang.common.enums.PostInfoEnum; import com.liang.entity.*; import com.liang.service.PrjApproverecordService; import com.liang.service.StaBudgetapprovalService; import com.liang.service.SysDictInfoService; import io.swagger.annotations.ApiOperation; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; import org.springframework.format.annotation.DateTimeFormat; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.transaction.annotation.Transactional; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.text.DateFormat; import java.time.format.DateTimeFormatter; import java.util.*; /** * 科技项目审批(PrjApproverecord)表控制层 * * @author makejava * @since 2023-05-03 13:23:09 */ @Controller @RequestMapping("prjApproverecord") public class PrjApproverecordController extends BaseController { /** * 服务对象 */ @Resource private PrjApproverecordService prjApproverecordService; @Resource private SysDictInfoService sysDictInfoService; @Resource private StaBudgetapprovalService staBudgetapprovalService; /** * 分页查询 * * @param prjApproverecord 筛选条件 * @param pageRequest 分页对象 * @return 查询结果 */ @GetMapping public ResponseEntity> queryByPage(PrjApproverecord prjApproverecord, PageRequest pageRequest) { return ResponseEntity.ok(this.prjApproverecordService.queryByPage(prjApproverecord, pageRequest)); } /** * 通过主键查询单条数据 * * @param id 主键 * @return 单条数据 */ @GetMapping("{id}") public ResponseEntity queryById(@PathVariable("id") Integer id) { return ResponseEntity.ok(this.prjApproverecordService.queryById(id)); } /** * 删除数据 * * @param id 主键 * @return 删除是否成功 */ @DeleteMapping public ResponseEntity deleteById(Integer id) { return ResponseEntity.ok(this.prjApproverecordService.deleteById(id)); } @ApiOperation(value = "页面初始化", notes = "页面初始化") @RequestMapping(value = "/init", method = RequestMethod.GET) public String init(Model model) { //状态 List> approveList = sysDictInfoService.queryByCode("kybg_status"); approveList.addAll(sysDictInfoService.queryByCode("approve_status")); model.addAttribute("approveList", approveList); return "prjapproverecord/list"; } @ResponseBody @RequestMapping(value = "/list", method = RequestMethod.POST) public BaseResult list(@RequestParam("page") Integer pageNum, @RequestParam("limit") Integer pageSize, @RequestParam(required = false, defaultValue = "", value = "xm") String xm, @RequestParam(required = false, defaultValue = "", value = "zt") String zt, @RequestParam(required = false, defaultValue = "", value = "wc") String wc, @RequestParam(required = false, defaultValue = "", value = "tablename") String tablename, @RequestParam(required = false, defaultValue = "", value = "sortName") String sortName, @RequestParam(required = false, defaultValue = "", value = "sortOrder") String sortOrder) { PageHelper.startPage(pageNum, pageSize); Map paraMap = new HashMap<>(); paraMap.put("sortName", sortName); paraMap.put("sortOrder", sortOrder); paraMap.put("xm", xm); paraMap.put("zt", zt); paraMap.put("wc", wc); paraMap.put("tablename", tablename); SysUserInfo userInfo = getSysUserInfo(); if (!userInfo.getAccount().equals("admin")) { paraMap.put("userId", userInfo.getUserId().toString()); } List list = prjApproverecordService.getApproveList(paraMap); for (int i = 0; i < list.size(); i++) { list.get(i).setSpzt(list.get(i).getZt()); } PageInfo pageinfo = new PageInfo<>(list); //取出查询结果 List rows = pageinfo.getList(); int total = (int) pageinfo.getTotal(); Map result = new HashMap<>(); result.put(RESULT_ROWS, rows); result.put(RESULT_TOTAL, total); return BaseResult.success(result); } /** * 保存数据(提交审批:可研报告,任务书,年度预算,报账) * * @return */ @ResponseBody @RequestMapping(value = "/doAddApprove", method = RequestMethod.POST) public BaseResult doAddApprove(PrjApproverecord approverecord) { List recordList = new ArrayList<>(); PrjApproverecord record1 = new PrjApproverecord(); record1.setXm(approverecord.getXm()); record1.setXmid(approverecord.getXmid()); record1.setZt(approverecord.getZt()); record1.setTablename(approverecord.getTablename()); record1.setSpcz(approverecord.getSpcz()); record1.setTjr(approverecord.getTjr()); record1.setTjsj(approverecord.getTjsj()); record1.setShr(record1.getTjr()); record1.setShsj(record1.getTjsj()); record1.setSfsjsh(true);//是否需要上级审核 record1.setSjshr(approverecord.getSjshr()); record1.setSjshgw(approverecord.getSjshgw());//上级审核岗位 record1.setSffh(false);//是否返回 record1.setYcshr(false);//隐藏审核人 record1.setWc(true);//完成 recordList.add(record1); PrjApproverecord record2 = new PrjApproverecord(); record2.setXm(approverecord.getXm()); record2.setXmid(approverecord.getXmid()); record2.setTablename(approverecord.getTablename()); record2.setTjr(approverecord.getTjr()); record2.setTjsj(approverecord.getTjsj()); if ("sta_FeasibilityReport".equals(approverecord.getTablename()) || "prj_Project".equals(approverecord.getTablename())) { record2.setZt(PostInfoEnum.KYJHZZ.postName() + "审批");//状态 } else { record2.setZt(PostInfoEnum.KJXMGLZZ.postName() + "审批");//状态 } record2.setWc(false);//完成 record2.setShr(approverecord.getSjshr());//审核人 record2.setShgw(approverecord.getSjshgw());//审核岗位 recordList.add(record2); int num = prjApproverecordService.insertBatch(recordList); if (num > 0) { return BaseResult.success("保存成功!", approverecord); } else { return BaseResult.failure("保存失败!"); } } /** * 保存数据(提交审批:费用申请) * * @return */ @ResponseBody @RequestMapping(value = "/doAddApproveFysq", method = RequestMethod.POST) public BaseResult doAddApproveFysq(PrjApproverecord approverecord) { List recordList = new ArrayList<>(); PrjApproverecord record1 = new PrjApproverecord(); record1.setXm(approverecord.getXm()); record1.setXmid(approverecord.getXmid()); record1.setZt(approverecord.getZt()); record1.setTablename(approverecord.getTablename()); record1.setSpcz(approverecord.getSpcz()); record1.setTjr(approverecord.getTjr()); record1.setTjsj(approverecord.getTjsj()); record1.setShr(record1.getTjr()); record1.setShsj(record1.getTjsj()); record1.setSfsjsh(true);//是否需要上级审核 record1.setSjshr(approverecord.getSjshr()); record1.setSjshgw(approverecord.getSjshgw());//上级审核岗位 record1.setSffh(false);//是否返回 record1.setYcshr(false);//隐藏审核人 record1.setWc(true);//完成 recordList.add(record1); PrjApproverecord record2 = new PrjApproverecord(); record2.setXm(approverecord.getXm()); record2.setXmid(approverecord.getXmid()); record2.setTablename(approverecord.getTablename()); record2.setTjr(approverecord.getTjr()); record2.setTjsj(approverecord.getTjsj()); record2.setZt(PostInfoEnum.BMZR.postName() + "审批");//状态 record2.setWc(false);//完成 record2.setShr(approverecord.getSjshr());//审核人 record2.setShgw(approverecord.getSjshgw());//审核岗位 recordList.add(record2); int num = prjApproverecordService.insertBatch(recordList); if (num > 0) { return BaseResult.success("保存成功!", approverecord); } else { return BaseResult.failure("保存失败!"); } } /** * 保存数据(提交审批:付款申请) * * @return */ @ResponseBody @RequestMapping(value = "/doAddApproveFksq", method = RequestMethod.POST) public BaseResult doAddApproveFksq(PrjApproverecord approverecord) { List recordList = new ArrayList<>(); PrjApproverecord record1 = new PrjApproverecord(); record1.setXm(approverecord.getXm()); record1.setXmid(approverecord.getXmid()); record1.setZt(approverecord.getZt()); record1.setTablename(approverecord.getTablename()); record1.setSpcz(approverecord.getSpcz()); record1.setTjr(approverecord.getTjr()); record1.setTjsj(approverecord.getTjsj()); record1.setShr(record1.getTjr()); record1.setShsj(record1.getTjsj()); record1.setSfsjsh(true);//是否需要上级审核 record1.setSjshr(approverecord.getSjshr()); record1.setSjshgw(approverecord.getSjshgw());//上级审核岗位 record1.setSffh(false);//是否返回 record1.setYcshr(false);//隐藏审核人 record1.setWc(true);//完成 recordList.add(record1); PrjApproverecord record2 = new PrjApproverecord(); record2.setXm(approverecord.getXm()); record2.setXmid(approverecord.getXmid()); record2.setTablename(approverecord.getTablename()); record2.setTjr(approverecord.getTjr()); record2.setTjsj(approverecord.getTjsj()); record2.setZt(PostInfoEnum.KJXMGLZZ1.postName() + "审批");//状态 record2.setWc(false);//完成 record2.setShr(approverecord.getSjshr());//审核人 record2.setShgw(approverecord.getSjshgw());//审核岗位 recordList.add(record2); int num = prjApproverecordService.insertBatch(recordList); if (num > 0) { return BaseResult.success("保存成功!", approverecord); } else { return BaseResult.failure("保存失败!"); } } /** * 编辑数据(提交审批:可研报告,任务书,年度预算,报账) * * @return */ @ResponseBody @RequestMapping(value = "/doUpdateApprove", method = RequestMethod.POST) public BaseResult doUpdateApprove(PrjApproverecord approverecord) { List recordList = new ArrayList<>(); PrjApproverecord record1 = new PrjApproverecord(); record1.setId(approverecord.getId()); record1.setSpcz(approverecord.getSpcz()); record1.setShr(approverecord.getShr()); record1.setShsj(approverecord.getShsj()); if (approverecord.getSpcz().equals("返回修改")) { record1.setSffh(true);//是否返回 record1.setYj(approverecord.getYj()); } else { record1.setSffh(false);//是否返回 if (!approverecord.getSpcz().equals("提交审批")) record1.setYj(approverecord.getYj()); //是否需要上级审核 if (approverecord.getZt().equals(PostInfoEnum.KJXMGLZZ.postName() + "审批")) { record1.setSfsjsh(false); } else { record1.setSfsjsh(true); record1.setSjshr(approverecord.getSjshr()); record1.setSjshgw(approverecord.getSjshgw()); } } record1.setYcshr(false);//隐藏审核人 record1.setWc(true);//完成 recordList.add(record1); if (approverecord.getZt().equals("未提交(返回)") || approverecord.getSpcz().equals("返回修改")) { PrjApproverecord record2 = new PrjApproverecord(); record2.setXm(approverecord.getXm()); record2.setXmid(approverecord.getXmid()); record2.setTablename(approverecord.getTablename()); record2.setTjr(approverecord.getTjr()); record2.setTjsj(approverecord.getTjsj()); if (approverecord.getSpcz().equals("返回修改")) { record2.setZt("未提交(返回)"); record2.setShr(approverecord.getTjr());//审核人 } else { record2.setZt(PostInfoEnum.KJXMGLZZ.postName() + "审批"); record2.setShr(approverecord.getSjshr());//审核人 record2.setShgw(approverecord.getSjshgw());//审核岗位 } record2.setWc(false); recordList.add(record2); } int num = prjApproverecordService.insertApprove(recordList); if (num > 0) { return BaseResult.success("保存成功!"); } else { return BaseResult.failure("保存失败!"); } } /** * 编辑数据(提交审批:费用申请) * * @return */ @ResponseBody @RequestMapping(value = "/doUpdateApproveFysq", method = RequestMethod.POST) public BaseResult doUpdateApproveFysq(PrjApproverecord approverecord) { List recordList = new ArrayList<>(); PrjApproverecord record1 = new PrjApproverecord(); record1.setId(approverecord.getId()); record1.setSpcz(approverecord.getSpcz()); record1.setShr(approverecord.getShr()); record1.setShsj(DateUtil.format(new Date(), DatePattern.NORM_DATETIME_PATTERN)); double dmoney = approverecord.getSqje(); if (approverecord.getSpcz().equals("返回修改")) { record1.setSffh(true);//是否返回 record1.setYj(approverecord.getYj()); } else { record1.setSffh(false);//是否返回 if (!approverecord.getSpcz().equals("提交审批")) { record1.setYj(approverecord.getYj()); } //是否需要上级审核 if (approverecord.getZt().equals(PostInfoEnum.YZ.postName() + "审批") || approverecord.getZt().equals(PostInfoEnum.ZGYLD.postName() + "审批") && dmoney < 1000000) { record1.setSfsjsh(false); } else { record1.setSfsjsh(true); record1.setSjshr(approverecord.getSjshr()); record1.setSjshgw(approverecord.getSjshgw()); } } record1.setYcshr(false);//隐藏审核人 record1.setWc(true);//完成 recordList.add(record1); if (!(approverecord.getZt().equals(PostInfoEnum.YZ.postName() + "审批") || approverecord.getZt().equals(PostInfoEnum.ZGYLD.postName() + "审批") && dmoney < 1000000) || approverecord.getSpcz().equals("返回修改")) { PrjApproverecord record2 = new PrjApproverecord(); record2.setXm(approverecord.getXm()); record2.setXmid(approverecord.getXmid()); record2.setTablename(approverecord.getTablename()); record2.setTjr(approverecord.getTjr()); record2.setTjsj(approverecord.getTjsj()); if (approverecord.getSpcz().equals("返回修改")) { record2.setZt("未提交(返回)"); record2.setShr(approverecord.getTjr());//审核人 } else { if (approverecord.getZt().equals(PostInfoEnum.BMZR.postName() + "审批")) record2.setZt(PostInfoEnum.KJXMGLZZ.postName() + "审批"); else if (approverecord.getZt().equals(PostInfoEnum.KJXMGLZZ.postName() + "审批")) record2.setZt(PostInfoEnum.KJBBMZR.postName() + "审批"); else if (approverecord.getZt().equals(PostInfoEnum.KJBBMZR.postName() + "审批")) record2.setZt(PostInfoEnum.ZGYLD.postName() + "审批"); else if (approverecord.getZt().equals(PostInfoEnum.ZGYLD.postName() + "审批")) record2.setZt(PostInfoEnum.YZ.postName() + "审批"); else record2.setZt(PostInfoEnum.BMZR.postName() + "审批"); record2.setShr(approverecord.getSjshr());//审核人 record2.setShgw(approverecord.getSjshgw());//审核岗位 } record2.setWc(false); recordList.add(record2); } int num = prjApproverecordService.insertApprove(recordList); if (num > 0) { return BaseResult.success("保存成功!"); } else { return BaseResult.failure("保存失败!"); } } /** * 编辑数据(提交审批:付款申请) * * @return */ @ResponseBody @RequestMapping(value = "/doUpdateApproveFksq", method = RequestMethod.POST) @Transactional public BaseResult doUpdateApproveFksq(PrjApproverecord approverecord) { List recordList = new ArrayList<>(); PrjApproverecord record1 = new PrjApproverecord(); record1.setId(approverecord.getId()); record1.setSpcz(approverecord.getSpcz()); record1.setShr(approverecord.getShr()); record1.setShsj(DateUtil.format(new Date(), DatePattern.NORM_DATETIME_PATTERN)); if (approverecord.getSpcz().equals("返回修改")) { record1.setSffh(true);//是否返回 record1.setYj(approverecord.getYj()); } else { record1.setSffh(false);//是否返回 if (!approverecord.getSpcz().equals("提交审批")) record1.setYj("同意。"); //是否需要上级审核 if (approverecord.getZt().equals(PostInfoEnum.KJBBMZR.postName() + "审批")) { record1.setSfsjsh(false); } else { record1.setSfsjsh(true); record1.setSjshr(approverecord.getSjshr()); record1.setSjshgw(approverecord.getSjshgw()); } } record1.setYcshr(false);//隐藏审核人 record1.setWc(true);//完成 recordList.add(record1); if (!(approverecord.getZt().equals(PostInfoEnum.KJBBMZR.postName() + "审批")) || approverecord.getSpcz().equals("返回修改")) { PrjApproverecord record2 = new PrjApproverecord(); record2.setXm(approverecord.getXm()); record2.setXmid(approverecord.getXmid()); record2.setTablename(approverecord.getTablename()); record2.setTjr(approverecord.getTjr()); record2.setTjsj(approverecord.getTjsj()); if (approverecord.getSpcz().equals("返回修改")) { record2.setZt("未提交(返回)"); record2.setShr(approverecord.getTjr());//审核人 } else { if (approverecord.getZt().equals(PostInfoEnum.KJXMGLZZ1.postName() + "审批")) { record2.setZt(PostInfoEnum.KJXMGLZZ2.postName() + "审批"); } else if (approverecord.getZt().equals(PostInfoEnum.KJXMGLZZ2.postName() + "审批")) { record2.setZt(PostInfoEnum.KJBBMZR.postName() + "审批"); } else { record2.setZt(PostInfoEnum.KJXMGLZZ1.postName() + "审批"); } record2.setShr(approverecord.getSjshr());//审核人 record2.setShgw(approverecord.getSjshgw());//审核岗位 } record2.setWc(false); recordList.add(record2); } int num = prjApproverecordService.insertApprove(recordList); if (num > 0) { return BaseResult.success("保存成功!"); } else { return BaseResult.failure("保存失败!"); } } @ResponseBody @RequestMapping(value = "/spList/{xmid}/{tableName}", method = RequestMethod.POST) public BaseResult spList(@PathVariable("xmid") String xmid, @PathVariable("tableName") String tableName, @RequestParam("page") Integer pageNum, @RequestParam("limit") Integer pageSize, @RequestParam(required = false, defaultValue = "", value = "sortName") String sortName, @RequestParam(required = false, defaultValue = "", value = "sortOrder") String sortOrder) { PageHelper.startPage(pageNum, pageSize); Map paraMap = new HashMap<>(); paraMap.put("sortName", sortName); paraMap.put("sortOrder", sortOrder); paraMap.put("xmid", xmid.toString()); paraMap.put("tableName", tableName.toString()); List list = prjApproverecordService.getApproveByXmId2(paraMap); //判断备用金是否关联项目 if (list.get(0).getTablename().equals("sta_BudgetApproval")) { PrjApproverecord prjApproverecord = new PrjApproverecord(); StaBudgetapproval staBudgetapproval = staBudgetapprovalService.queryById(list.get(0).getXmid()); System.out.println(staBudgetapproval.toString()); if (staBudgetapproval.getSfbyj() == true && staBudgetapproval.getXmmc() != null) { prjApproverecord.setWc(true); prjApproverecord.setZt("该备用金已关联项目"); list.add(prjApproverecord); } else if (staBudgetapproval.getSfbyj() == true && staBudgetapproval.getXmmc() == null && "审批结束".equals(staBudgetapproval.getSpzt()) || "".equals(staBudgetapproval.getXmmc())) { prjApproverecord.setWc(false); prjApproverecord.setZt("该备用金暂未关联项目"); prjApproverecord.setShrxm(PostInfoEnum.KJXMGLZZ.postName()); list.add(prjApproverecord); } } PageInfo pageinfo = new PageInfo<>(list); //取出查询结果 List rows = pageinfo.getList(); int total = (int) pageinfo.getTotal(); Map result = new HashMap<>(); result.put(RESULT_ROWS, rows); result.put(RESULT_TOTAL, total); return BaseResult.success(result); } }