diff --git a/huzhou/pom.xml b/huzhou/pom.xml
index 19970b6..bdf1a89 100644
--- a/huzhou/pom.xml
+++ b/huzhou/pom.xml
@@ -32,6 +32,12 @@
+
+ com.alibaba
+ easyexcel
+ 3.2.1
+
+
org.bouncycastle
bcprov-jdk15on
diff --git a/huzhou/src/main/java/org/jeecg/modules/huzhou/common/TemplateExcelUtils.java b/huzhou/src/main/java/org/jeecg/modules/huzhou/common/TemplateExcelUtils.java
new file mode 100644
index 0000000..dd6a34d
--- /dev/null
+++ b/huzhou/src/main/java/org/jeecg/modules/huzhou/common/TemplateExcelUtils.java
@@ -0,0 +1,77 @@
+package org.jeecg.modules.huzhou.common;
+
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.support.ExcelTypeEnum;
+import com.alibaba.excel.write.metadata.WriteSheet;
+import com.alibaba.excel.write.metadata.fill.FillWrapper;
+import org.apache.poi.ss.formula.functions.T;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.springframework.core.io.ClassPathResource;
+
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.URLEncoder;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 根据Excel模板导出可以采用该工具类
+ */
+public class TemplateExcelUtils {
+ /**
+ * 根据模板导出数据
+ * @param fileName
+ * @param sourcePath resource/template文件夹下路径
+ * @param list
+ * @param response
+ * @throws Exception
+ */
+ public static void downLoadExcel(String fileName, String sourcePath, List list, HttpServletResponse response)
+ throws Exception {
+ try{
+ OutputStream os = getOutputStream(fileName,response);
+ //读取模板
+ String path = "excelTemplate"+File.separator+sourcePath;
+ ClassPathResource classPathResource = new ClassPathResource(path);
+ InputStream is =classPathResource.getInputStream();
+ ExcelWriter excelWriter = EasyExcel.write(getOutputStream(fileName, response)).withTemplate(is).excelType(ExcelTypeEnum.XLSX).build();
+ WriteSheet writeSheet = EasyExcel.writerSheet().build();
+ // 这个 data 是官方约定就这么写, 传进去的 list 就是要遍历的表格数据,详见我定义的模板中图片位置右侧那部分
+ excelWriter.fill(new FillWrapper("list", list), writeSheet);
+ excelWriter.finish();
+ //向模板中写入内容
+ //写入成功后转化为输出流
+ }catch (Exception e){
+ e.printStackTrace();
+ throw e;
+ }
+ }
+
+ /**
+ * 导出文件时为Writer生成OutputStream.
+ * @param fileName 文件名
+ * @param response response
+ * @return ""
+ */
+ private static OutputStream getOutputStream(String fileName,
+ HttpServletResponse response) throws Exception {
+ try {
+ fileName = URLEncoder.encode(fileName, "UTF-8");
+ response.setContentType("application/vnd.ms-excel");
+ response.setCharacterEncoding("utf8");
+ response.setHeader("Content-Disposition", "attachment; filename=" + fileName + ".xlsx");
+ response.setHeader("Pragma", "public");
+ response.setHeader("Cache-Control", "no-store");
+ response.addHeader("Cache-Control", "max-age=0");
+ return response.getOutputStream();
+ } catch (IOException e) {
+ throw new Exception("导出excel表格失败!", e);
+ }
+ }
+
+}
diff --git a/huzhou/src/main/java/org/jeecg/modules/huzhou/controller/HuzhouContractinfoController.java b/huzhou/src/main/java/org/jeecg/modules/huzhou/controller/HuzhouContractinfoController.java
new file mode 100644
index 0000000..0678d36
--- /dev/null
+++ b/huzhou/src/main/java/org/jeecg/modules/huzhou/controller/HuzhouContractinfoController.java
@@ -0,0 +1,69 @@
+package org.jeecg.modules.huzhou.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.modules.huzhou.entity.HuzhouContractinfo;
+import org.jeecg.modules.huzhou.service.IHuzhouContractinfoService;
+import org.jeecg.modules.huzhou.vo.HuzhouContractinfoOV;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+@RestController
+@RequestMapping("/huzhouContractinfo")
+public class HuzhouContractinfoController {
+ @Autowired
+ private IHuzhouContractinfoService contractinfoService;
+ @GetMapping("/huzhouContractinfoPageList")
+ public Result> huzhouContractinfoPageList(HuzhouContractinfoOV contractinfo,
+ @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+ @RequestParam(name="pageSize", defaultValue="10") Integer pageSize){
+ Page pageList = contractinfoService.getContractinfoPageList(contractinfo, pageNo, pageSize);
+ return Result.ok(pageList);
+ }
+ @GetMapping("/getContractinfoById")
+ public Result> getContractinfoById(String id){
+ HuzhouContractinfo byId = contractinfoService.getById(id);
+ return Result.ok(byId);
+ } @GetMapping("/getContractinfoListById")
+ public Result> getContractinfoListById(String id){
+ HuzhouContractinfo byId = contractinfoService.getById(id);
+ List list = new ArrayList<>();
+ list.add(byId);
+ return Result.ok(list);
+ }
+ @GetMapping("/isExistContractinfo")
+ public Result> isExistContractinfo(String projectid){
+ List list = contractinfoService.getContractinfoByprojectId(projectid);
+ if(list.size()>0){
+ return Result.OK(true);
+ }
+ return Result.ok(false);
+ }
+ @PostMapping("/addContractinfo")
+ public Result> addContractinfo(@RequestParam(value = "file") MultipartFile file, HuzhouContractinfo contractinfo) throws IOException {
+ contractinfoService.addContractinfo(file,contractinfo);
+ return Result.ok("上传成功");
+ }
+ @PostMapping("/modifyContractinfo")
+ public Result> modifyContractinfo(@RequestParam(value = "file",required = false) MultipartFile file, HuzhouContractinfo contractinfo) throws IOException {
+ Boolean aBoolean = contractinfoService.modifyContractinfo(file, contractinfo);
+ if(aBoolean){
+ return Result.ok("修改成功");
+ }
+ return Result.error("修改失败");
+ }
+ @PostMapping("/deleteContractinfo")
+ public Result> deleteContractinfo(@RequestBody HuzhouContractinfo contractinfo) throws IOException {
+ Boolean aBoolean = contractinfoService.deleteContractinfo(contractinfo);
+ if(aBoolean){
+ return Result.ok("删除成功");
+ }
+ return Result.error("删除失败");
+ }
+
+}
diff --git a/huzhou/src/main/java/org/jeecg/modules/huzhou/controller/HuzhouPlanController.java b/huzhou/src/main/java/org/jeecg/modules/huzhou/controller/HuzhouPlanController.java
index 7719bd5..b65181e 100644
--- a/huzhou/src/main/java/org/jeecg/modules/huzhou/controller/HuzhouPlanController.java
+++ b/huzhou/src/main/java/org/jeecg/modules/huzhou/controller/HuzhouPlanController.java
@@ -1,43 +1,22 @@
package org.jeecg.modules.huzhou.controller;
-import com.alibaba.fastjson.JSON;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.google.common.collect.Lists;
-import org.apache.commons.lang.StringUtils;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
-import org.apache.poi.ss.usermodel.CellType;
-import org.apache.poi.ss.usermodel.Row;
-import org.apache.poi.ss.usermodel.Sheet;
-import org.apache.poi.ss.usermodel.Workbook;
-import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+
import org.apache.shiro.SecurityUtils;
-import org.checkerframework.checker.units.qual.A;
import org.jeecg.common.api.vo.Result;
-import org.jeecg.common.constant.SymbolConstant;
+
import org.jeecg.common.system.vo.LoginUser;
-import org.jeecg.common.util.CommonUtils;
-import org.jeecg.modules.huzhou.common.HuzhouCommonUtils;
+
import org.jeecg.modules.huzhou.entity.*;
import org.jeecg.modules.huzhou.service.*;
import org.jeecg.modules.huzhou.vo.HuzhouPlaninfoOV;
-import org.jeecg.modules.huzhou.vo.ProjectApproveOV;
-import org.springframework.beans.BeanUtils;
+
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
-import org.springframework.security.core.parameters.P;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.FileCopyUtils;
+
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.math.BigDecimal;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
+
import java.util.*;
@RestController
@@ -49,8 +28,7 @@ public class HuzhouPlanController {
private IWorkflowService workflowService;
@Autowired
private IHuzhouProcessinfoService processinfoService;
- @Autowired
- private IHuzhouPlaninfofileService planinfofileService;
+
@Autowired
private IHuzhouProjectinfoService projectinfoService;
@Autowired
@@ -74,60 +52,7 @@ public class HuzhouPlanController {
return Result.error((String)hashMap.get("msg"));
}
ArrayList huzhouPlaninfoArrayList = (ArrayList) hashMap.get("arr");
-// int physicalNumberOfRows = sheet.getPhysicalNumberOfRows();
-// HashMap NameMap = new HashMap();
-// HashMap chineseNameMap = new HashMap();
-//
-// Row titlerow = sheet.getRow(0);
-// Row chineseTitlerow = sheet.getRow(1);
-// int cellNum = 5;
-// //获取字段名称
-// for (int i = 0; i < cellNum; i++) {
-// NameMap.put(String.valueOf(i),titlerow.getCell(i).getStringCellValue());
-// }
-// for (int i = 1; i < cellNum; i++) {
-// chineseNameMap.put(String.valueOf(i),chineseTitlerow.getCell(i).getStringCellValue());
-// }
-// for (int i = 2; i < physicalNumberOfRows; i++) {
-// Row row = sheet.getRow(i);
-// HuzhouPlaninfo huzhouPlaninfo = new HuzhouPlaninfo();
-// for (int j = 0; j < cellNum; j++) {
-// String value = "";
-// if(row.getCell(j)!=null){
-// row.getCell(j).setCellType(CellType.STRING);
-// value = row.getCell(j).getStringCellValue();
-// }
-// if(value==null||value.length()==0){
-// String s = chineseNameMap.get(String.valueOf(j));
-// return Result.error("第"+(i+1)+"行,"+s+",不能为空");
-// }
-// String name = NameMap.get(String.valueOf(j));
-// SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
-// if("scheduledEndTime".equals(name)){
-// Date date = dateFormat.parse(value);
-// huzhouPlaninfo.setScheduledEndTime(date);
-// }else if("scheduledStartTime".equals(name)){
-// Date date = dateFormat.parse(value);
-// huzhouPlaninfo.setScheduledStartTime(date);
-// }else {
-// HuzhouCommonUtils.setObjectAttributes(huzhouPlaninfo,name,value);
-// }
-// if(value!=null&&"taskLevel".equals(name)){
-// int index = value.lastIndexOf(".");
-// if(index!=-1){
-// String substring = value.substring(0, index);
-// HuzhouCommonUtils.setObjectAttributes(huzhouPlaninfo,"superior",substring);
-// }else {
-//// String substring = value.substring(0, index);
-// HuzhouCommonUtils.setObjectAttributes(huzhouPlaninfo,"superior","0");
-// }
-// }
-// }
-// huzhouPlaninfo.setProjectId(projectid);
-// huzhouPlaninfo.setIsfinish("0");
-// huzhouPlaninfoArrayList.add(huzhouPlaninfo);
-//
-// }
+
planinfoService.saveBatch(huzhouPlaninfoArrayList);
ArrayList arrayList = new ArrayList<>();
@@ -166,6 +91,10 @@ public class HuzhouPlanController {
return Result.error((String)hashMap.get("msg"));
}
ArrayList huzhouPlaninfoArrayList = (ArrayList) hashMap.get("arr");
+ String isAllow = planinfoService.IsAllowModifyPlaninfo(projectid,huzhouPlaninfoArrayList);
+ if(!"1".equals(isAllow)){
+ return Result.error(isAllow);
+ }
//保存历史记录
planinfoHistoryService.savePlanInfoToHistory(projectid);
//删除原纪录
@@ -194,28 +123,26 @@ public class HuzhouPlanController {
return Result.error((String)hashMap.get("msg"));
}
ArrayList huzhouPlaninfoArrayList = (ArrayList) hashMap.get("arr");
- List planinfoHistoryList = planinfoService.getFinishListByProjectId(projectid);
- if(planinfoHistoryList.size()>0){
- for (HuzhouPlaninfo his:planinfoHistoryList){
- boolean isexist=false;
- String hisTaskLevel = his.getTaskLevel();
- String hisTaskName = his.getTaskName();
- for(int i =0;i arrayList = new ArrayList<>();
+ //设置下一个节点处理人
+ //使用角色查询
+ arrayList.add("1752895307869614081");
+ arrayList.add("1752895591849160705");
+ WorkFlow workFlow = workflowService.createFlow("项目计划审批流程", arrayList);
+ String businessKey = workFlow.getBusinessKey();
+ String processInstanceId = workFlow.getProcessInstanceId();
+ HuzhouProcessinfo huzhouProcessinfo = new HuzhouProcessinfo();
+ huzhouProcessinfo.setBusinesskey(businessKey);
+ huzhouProcessinfo.setStage("3");//项目计划
+ huzhouProcessinfo.setProcessstatus("1");
+ huzhouProcessinfo.setProcessinstanceid(processInstanceId);
+ huzhouProcessinfo.setProjectid(projectid);
+ processinfoService.save(huzhouProcessinfo);
+ projectinfoService.modifyStageById(projectid,"4");
planinfoHistoryService.savePlanInfoToHistory(projectid);
planinfoService.removeByProjectId(projectid);
planinfoService.saveBatch(huzhouPlaninfoArrayList);
@@ -226,31 +153,12 @@ public class HuzhouPlanController {
ArrayList planInfoMainTimelineList = planinfoService.getPlanInfoMainTimelineList(projectid);
return Result.ok(planInfoMainTimelineList);
}
-
- @PostMapping("/planUploadFile")
- @Transactional()
- public Result> planUploadFile(@RequestParam(value = "file")
- MultipartFile[] files,@RequestParam(value = "planinfoid") String planinfoid) throws IOException {
- //获取当前时间
- planinfoService.saveOrModifyPlanUploadFile(files,planinfoid,"1");
- return Result.OK("上传成功!!");
- }
- @PostMapping("/planUploadModifyFile")
- @Transactional()
- public Result> planUploadModifyFile(@RequestParam(value = "file")
- MultipartFile[] files,@RequestParam(value = "planinfoid") String planinfoid) throws IOException {
- planinfoService.saveOrModifyPlanUploadFile(files,planinfoid,"2");
- return Result.ok("修改成功");
- }
- @GetMapping("/queryPlaninfoFilePageByid")
- public Result> queryPlaninfoFilePageByid(String planinfoid,@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
- @RequestParam(name="pageSize", defaultValue="10") Integer pageSize){
- LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>();
- lambdaQueryWrapper.eq(HuzhouPlaninfofile::getPlaninfoid,planinfoid);
- lambdaQueryWrapper.orderByDesc(BaseEntity::getCreatetime);
- Page page = new Page<>(pageNo, pageSize);
- Page planinfofilePage = planinfofileService.page(page, lambdaQueryWrapper);
- return Result.ok(planinfofilePage);
+ @GetMapping("/qetplaninfoByid")
+ public Result> getplaninfoByid(String planinfoid){
+ HuzhouPlaninfo planinfo = planinfoService.getById(planinfoid);
+ ArrayList huzhouPlaninfos = new ArrayList<>();
+ huzhouPlaninfos.add(planinfo);
+ return Result.OK(huzhouPlaninfos);
}
}
diff --git a/huzhou/src/main/java/org/jeecg/modules/huzhou/controller/HuzhouPlaninfofileController.java b/huzhou/src/main/java/org/jeecg/modules/huzhou/controller/HuzhouPlaninfofileController.java
new file mode 100644
index 0000000..28868c8
--- /dev/null
+++ b/huzhou/src/main/java/org/jeecg/modules/huzhou/controller/HuzhouPlaninfofileController.java
@@ -0,0 +1,152 @@
+package org.jeecg.modules.huzhou.controller;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.apache.shiro.SecurityUtils;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.vo.LoginUser;
+import org.jeecg.modules.huzhou.entity.*;
+import org.jeecg.modules.huzhou.service.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+
+@RestController
+@RequestMapping("/huzhouPlaninfofile")
+public class HuzhouPlaninfofileController {
+ @Autowired
+ private IHuzhouPlaninfofileService planinfofileService;
+ @Autowired
+ private IHuzhouPlaninfoService planinfoService;
+ @Autowired
+ private IWorkflowService workflowService;
+ @Autowired
+ private IHuzhouProcessinfoService processinfoService;
+ @Autowired
+ private IHuzhouProjectinfoService projectinfoService;
+ @PostMapping("/planUploadFile")
+ @Transactional()
+ public Result> planUploadFile(@RequestParam(value = "file")
+ MultipartFile[] files, @RequestParam(value = "planinfoid") String planinfoid) throws IOException {
+ //检查是否可提交
+ HuzhouPlaninfo planinfo = planinfoService.getById(planinfoid);
+ String taskLevel = planinfo.getTaskLevel();
+ List childPlanList = planinfoService.queryChildPlan(planinfo.getProjectId(), planinfo.getTaskLevel(),"0,1");
+ if(childPlanList.size()>0){
+ return Result.error("存在未完成(审批中)的子项。当前阶段不允许提交文件");
+ }
+ //获取当前时间
+ planinfoService.saveOrModifyPlanUploadFile(files,planinfoid,"1");
+ ArrayList arrayList = new ArrayList<>();
+ //设置下一个节点处理人
+ //使用角色查询
+ arrayList.add("1752893978598207490");
+ WorkFlow workFlow = workflowService.createFlow("项目资料审批流程", arrayList);
+ String businessKey = workFlow.getBusinessKey();
+ String processInstanceId = workFlow.getProcessInstanceId();
+ HuzhouProcessinfo huzhouProcessinfo = new HuzhouProcessinfo();
+ huzhouProcessinfo.setBusinesskey(businessKey);
+ huzhouProcessinfo.setStage("4");//项目资料审批
+ huzhouProcessinfo.setProcessstatus("1");
+ huzhouProcessinfo.setProcessinstanceid(processInstanceId);
+ huzhouProcessinfo.setProjectid(planinfoid);
+ processinfoService.save(huzhouProcessinfo);
+ return Result.OK("上传成功!!");
+ }
+ @PostMapping("/planUploadModifyFile")
+ @Transactional()
+ public Result> planUploadModifyFile(@RequestParam(value = "file")
+ MultipartFile[] files,@RequestParam(value = "planinfoid") String planinfoid) throws IOException {
+ HuzhouPlaninfo planinfo = planinfoService.getById(planinfoid);
+
+
+ ArrayList arrayList = new ArrayList<>();
+ //设置下一个节点处理人
+ //使用角色查询
+ arrayList.add("1752893978598207490");
+ WorkFlow workFlow = workflowService.createFlow("项目资料审批流程", arrayList);
+ String businessKey = workFlow.getBusinessKey();
+ String processInstanceId = workFlow.getProcessInstanceId();
+ HuzhouProcessinfo huzhouProcessinfo = new HuzhouProcessinfo();
+ huzhouProcessinfo.setBusinesskey(businessKey);
+ huzhouProcessinfo.setStage("4");//项目资料审批
+ huzhouProcessinfo.setProcessstatus("1");
+ huzhouProcessinfo.setProcessinstanceid(processInstanceId);
+ huzhouProcessinfo.setProjectid(planinfoid);
+ processinfoService.save(huzhouProcessinfo);
+ planinfoService.saveOrModifyPlanUploadFile(files,planinfoid,"2");
+ //修改项目状态
+ projectinfoService.modifyStageById(planinfo.getProjectId(),"5");
+ return Result.ok("修改成功");
+ }
+ @GetMapping("/queryPlaninfoFilePageByid")
+ public Result> queryPlaninfoFilePageByid(String planinfoid,@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+ @RequestParam(name="pageSize", defaultValue="10") Integer pageSize){
+ LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>();
+ lambdaQueryWrapper.eq(HuzhouPlaninfofile::getPlaninfoid,planinfoid);
+ lambdaQueryWrapper.orderByDesc(BaseEntity::getCreatetime);
+ Page page = new Page<>(pageNo, pageSize);
+ Page planinfofilePage = planinfofileService.page(page, lambdaQueryWrapper);
+ return Result.ok(planinfofilePage);
+ }
+ @GetMapping("/planFilePageList")
+ public Result> planFilePageList(HuzhouPlaninfofile planinfofile,@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+ @RequestParam(name="pageSize", defaultValue="10") Integer pageSize){
+ Page planinfofilePage = planinfofileService.getplanFilePageList(planinfofile,pageNo,pageSize);
+ return Result.ok(planinfofilePage);
+ }
+ @PostMapping("/approvePlanFile")
+ public Result> approvePlanFile(@RequestParam(value = "file",required = false) MultipartFile[] files,
+ @RequestParam String taskId,
+ @RequestParam String flag,
+ @RequestParam String planinfoid,
+ @RequestParam String comment,
+ @RequestParam String stage) throws Exception {
+ WorkFlow workFlow = workflowService.approveProjectInfo(taskId, flag, comment, stage);
+ String userTaskName = workFlow.getUserTask();
+ LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+ if(files!=null&&"1".equals(flag)){
+ planinfoService.saveOrModifyPlanUploadFile(files,planinfoid,"2");
+ }
+ HuzhouPlaninfo huzhouPlaninfo = new HuzhouPlaninfo();
+ huzhouPlaninfo.setId(planinfoid);
+
+ if("3".equals(flag)){
+ huzhouPlaninfo.setIsfinish("0");
+ planinfoService.updateById(huzhouPlaninfo);
+ planinfofileService.modifyStatusByPlaninfoid("0",planinfoid);
+ processinfoService.modifyStatusByProjectId(planinfoid,"0","4");
+ return Result.ok("作废成功!");
+ }
+ if("管理人员".equals(userTaskName)&&"1".equals(flag)){
+ huzhouPlaninfo.setIsfinish("2");
+ planinfoService.updateById(huzhouPlaninfo);
+ processinfoService.modifyStatusByProjectId(planinfoid,"2","4");
+ HuzhouPlaninfo planinfo = planinfoService.getById(planinfoid);
+ String projectId = planinfo.getProjectId();
+ HuzhouPlaninfo nodePlan = planinfoService.getNodePlan(projectId, planinfo.getTaskLevel());
+ //如果文件为空,检查子项是否全部完成,若以完成则为完成
+ if(nodePlan.getTaskFile()==null){
+ List unfinishChildPlan = planinfoService.queryChildPlan(projectId, nodePlan.getTaskLevel(), "0,1");
+ if(unfinishChildPlan.size()==0){
+ HuzhouPlaninfo nodePlaninfo = new HuzhouPlaninfo();
+ nodePlaninfo.setIsfinish("2");
+ nodePlaninfo.setId(nodePlan.getId());
+ planinfoService.updateById(nodePlaninfo);
+ }
+ }
+
+ List list = planinfoService.getUnFinishListByProjectId(projectId);
+ if(list.size()==0){
+ projectinfoService.modifyStageById(projectId,"6");
+ }
+ }
+ return Result.ok("审批成功");
+ }
+}
diff --git a/huzhou/src/main/java/org/jeecg/modules/huzhou/controller/HuzhouProjectController.java b/huzhou/src/main/java/org/jeecg/modules/huzhou/controller/HuzhouProjectController.java
index 95960cb..a3db3d3 100644
--- a/huzhou/src/main/java/org/jeecg/modules/huzhou/controller/HuzhouProjectController.java
+++ b/huzhou/src/main/java/org/jeecg/modules/huzhou/controller/HuzhouProjectController.java
@@ -14,15 +14,20 @@ import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.constant.SymbolConstant;
import org.jeecg.common.system.vo.DictModel;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.common.util.CommonUtils;
+import org.jeecg.common.util.PasswordUtil;
+import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.huzhou.common.HuzhouCommonUtils;
+import org.jeecg.modules.huzhou.common.TemplateExcelUtils;
import org.jeecg.modules.huzhou.entity.*;
import org.jeecg.modules.huzhou.service.*;
import org.jeecg.modules.huzhou.vo.ProjectApproveOV;
+import org.jeecg.modules.system.entity.SysUser;
import org.jeecg.modules.system.service.ISysDictService;
import org.jeecg.modules.system.service.ISysUserService;
import org.springframework.beans.BeanUtils;
@@ -37,6 +42,7 @@ import org.springframework.web.multipart.MultipartFile;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
+import java.lang.reflect.Method;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
@@ -47,6 +53,8 @@ import java.util.stream.Collectors;
@RestController
@RequestMapping("/huzhouProject")
public class HuzhouProjectController {
+ @Autowired
+ private ISysUserService sysUserService;
@Autowired
private RuntimeService runtimeService;
@@ -62,6 +70,8 @@ public class HuzhouProjectController {
private ISysDictService sysDictService;
@Autowired
private IHuzhouProjectinfoHistoryService projectinfoHistoryService;
+ @Autowired
+ private ISysUserService userService;
/**
* 本地:local minio:minio 阿里:alioss
*/
@@ -72,6 +82,7 @@ public class HuzhouProjectController {
public Result submitProject(@RequestBody HuzhouProjectinfo info){
//保存项目信息
info.setStage("1");//最开始的状态
+ info.setIsmodify("0");//0是新建,1是修改,2是完成
int constructionPeriod = Integer.parseInt(info.getConstructionPeriod());
LocalDate now = LocalDate.now();
LocalDate localDate = LocalDate.of(2025, 6, 30);
@@ -183,7 +194,7 @@ public class HuzhouProjectController {
if("constructionPeriod".equals(name)){
int constructionPeriod = Integer.parseInt(value);
LocalDate now = LocalDate.now();
- LocalDate localDate = LocalDate.of(2025, 6, 31);
+ LocalDate localDate = LocalDate.of(2025, 6, 30);
Period period = Period.between(now, localDate);
int month = period.getYears()*12+period.getMonths();
if(constructionPeriod>month){
@@ -199,6 +210,15 @@ public class HuzhouProjectController {
}
}
+ if(name.contains("Contactor")){
+ SysUser user = userService.getUserByName(value);
+ if(user==null){
+ String s = chineseNameMap.get(String.valueOf(j));
+ return Result.error("第"+(i+1)+"行,"+s+",此人不在系统中,请增加");
+ }else {
+ value = user.getId();
+ }
+ }
HuzhouCommonUtils.setObjectAttributes(huzhouProjectinfo,name,value);
}
huzhouProjectinfo.setStage("1");
@@ -230,14 +250,7 @@ public class HuzhouProjectController {
public Result> approveProjectInfo(@RequestBody ProjectApproveOV projectApproveOV){
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String userId = currentUser.getId();
-// String taskId = (String) param.get("taskId");
-// String flag = (String) param.get("flag");
-// String comment = (String) param.get("comment");
-// String projectid = (String) param.get("projectid");
-// String stage = (String) param.get("stage");
-// String isEdit = (String) param.get("isEdit");
-// Map projectInfoMap = (Map) param.get("projectInfo");
-// List