Browse Source

优化流程信息

changchun
zhouhaibin 10 months ago
parent
commit
46fd62caf1
  1. 4
      easy-activiti/src/main/java/com/easy/admin/activiti/service/ActivitiProcessDefinitionService.java
  2. 22
      easy-activiti/src/main/java/com/easy/admin/activiti/service/impl/ActivitiProcessDefinitionServiceImpl.java
  3. 24
      huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/HuzhouChangefieldmanageController.java
  4. 64
      huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/HuzhouFieldchangehistoryController.java
  5. 14
      huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/HuzhouPlanController.java
  6. 108
      huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/HuzhouPlaninfofileController.java
  7. 43
      huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/HuzhouRegulationlabController.java
  8. 6
      huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/HuzhouSubProjectinfoController.java
  9. 51
      huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/WorkflowController.java
  10. 5
      huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/HuzhouContractinfoMapper.java
  11. 437
      huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/HuzhouContractinfoMapper.xml
  12. 4
      huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/WorkflowMapper.xml
  13. 2
      huzhou/src/main/java/com/easy/admin/modules/huzhou/entity/HuzhouContractinfo.java
  14. 1
      huzhou/src/main/java/com/easy/admin/modules/huzhou/entity/HuzhouFieldchangehistory.java
  15. 2
      huzhou/src/main/java/com/easy/admin/modules/huzhou/entity/WorkFlow.java
  16. 8
      huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouFieldchangehistoryService.java
  17. 27
      huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouPlaninfoService.java
  18. 7
      huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouPlaninfofileService.java
  19. 117
      huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouContractinfoServiceImpl.java
  20. 272
      huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouFieldchangehistoryServiceImpl.java
  21. 89
      huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouPlaninfoServiceImpl.java
  22. 244
      huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouPlaninfofileServiceImpl.java
  23. 61
      huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouProjectinfoServiceImpl.java
  24. 48
      huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouSubProjectinfoServiceImpl.java
  25. 6
      huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/WorkflowServiceImpl.java
  26. 6
      huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/HuzhouProjectinfoOV.java

4
easy-activiti/src/main/java/com/easy/admin/activiti/service/ActivitiProcessDefinitionService.java

@ -4,6 +4,8 @@ import cn.hutool.json.JSONObject;
import com.easy.admin.activiti.model.ActivitiProcessDefinitionVO;
import org.activiti.engine.repository.ProcessDefinition;
import java.util.HashMap;
/**
* 启动流程
*
@ -27,7 +29,7 @@ public interface ActivitiProcessDefinitionService {
* @return 实例ID或动态表单url
*/
JSONObject startProcessInstance(ActivitiProcessDefinitionVO activitiProcessDefinitionVO);
JSONObject startProcessInstanceHuzhou(ActivitiProcessDefinitionVO activitiProcessDefinitionVO);
HashMap<String,Object> startProcessInstanceHuzhou(ActivitiProcessDefinitionVO activitiProcessDefinitionVO);
/**
* 检查任务是否满足自动签收条件

22
easy-activiti/src/main/java/com/easy/admin/activiti/service/impl/ActivitiProcessDefinitionServiceImpl.java

@ -16,6 +16,10 @@ import com.easy.admin.auth.model.SysRole;
import com.easy.admin.auth.model.SysUser;
import com.easy.admin.auth.service.SysRoleService;
import com.easy.admin.util.ShiroUtil;
import org.activiti.bpmn.model.BpmnModel;
import org.activiti.bpmn.model.FlowElement;
import org.activiti.bpmn.model.SequenceFlow;
import org.activiti.bpmn.model.UserTask;
import org.activiti.engine.FormService;
import org.activiti.engine.IdentityService;
import org.activiti.engine.RepositoryService;
@ -122,12 +126,12 @@ public class ActivitiProcessDefinitionServiceImpl extends ServiceImpl<ActivitiPr
}
@Override
public JSONObject startProcessInstanceHuzhou(ActivitiProcessDefinitionVO activitiProcessDefinitionVO) {
public HashMap<String,Object> startProcessInstanceHuzhou(ActivitiProcessDefinitionVO activitiProcessDefinitionVO) {
if (checkBusinessKey(activitiProcessDefinitionVO.getBusinessKey())) {
throw new EasyException("[" + activitiProcessDefinitionVO.getBusinessKey() + "]已提交过申请,请勿重复提交");
}
SysUser currentUser = ShiroUtil.getCurrentUser();
JSONObject result = new JSONObject();
HashMap<String,Object> result = new HashMap<>();
ProcessDefinition processDefinition = getProcessDefinition(activitiProcessDefinitionVO.getProcessDefinitionId());
if (activitiProcessDefinitionVO.getHasFormData() == null || !activitiProcessDefinitionVO.getHasFormData()) {
StartFormData startFormData = formService.getStartFormData(activitiProcessDefinitionVO.getProcessDefinitionId());
@ -137,8 +141,8 @@ public class ActivitiProcessDefinitionServiceImpl extends ServiceImpl<ActivitiPr
activitiFormPropertyVOList.add(new ActivitiFormPropertyVO(formProperty));
}
// 有动态表单
result.set("hasStartForm", true);
result.set("startFormData", activitiFormPropertyVOList);
result.put("hasStartForm", true);
result.put("startFormData", activitiFormPropertyVOList);
return result;
}
}
@ -161,15 +165,9 @@ public class ActivitiProcessDefinitionServiceImpl extends ServiceImpl<ActivitiPr
.desc()
.list()
.get(0);
String taskId = task.getId();
variables.clear();
autoClaimTask(processInstance.getId());
Authentication.setAuthenticatedUserId(currentUser.getId());//添加审批人
taskService.setVariableLocal(taskId,"approvalStatue","1");//添加审批状态 通过
String comment = "同意";
taskService.addComment(taskId,processInstanceId,comment);//添加审批意见
taskService.complete(taskId, variables);
result.set("processInstanceId", processInstance.getId());
result.put("processInstanceId", processInstance.getId());
result.put("task", task);
return result;
}

24
huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/HuzhouChangefieldmanageController.java

@ -20,6 +20,14 @@ import java.util.Map;
public class HuzhouChangefieldmanageController {
@Autowired
private IHuzhouChangefieldmanageService changefieldmanageService;
/**
* 获取可变更字段列表
* @param changefieldmanage
* @param pageNo
* @param pageSize
* @return
*/
@GetMapping("/changeFieldManagePageList")
public Page<HuzhouChangefieldmanage> changeFieldManagePageList(HuzhouChangefieldmanage changefieldmanage,
@RequestParam(name="current", defaultValue="1") Integer pageNo,
@ -28,15 +36,31 @@ public class HuzhouChangefieldmanageController {
Page<HuzhouChangefieldmanage> huzhouChangefieldmanagePage = changefieldmanageService.changeFieldManagePageList(changefieldmanage, pageNo, pageSize);
return huzhouChangefieldmanagePage;
}
/**
* 根据id获取可变更字段内容
* @param changefieldmanage
* @return
*/
@GetMapping("/getchangeFieldManageById")
public HuzhouChangefieldmanage getchangeFieldManageById(HuzhouChangefieldmanage changefieldmanage){
String id = changefieldmanage.getId();
return changefieldmanageService.getById(id);
}
/**
* 修改可变更字段
* @param changefieldmanage
*/
@PostMapping("/modifychangeFieldManageById")
public void modifychangeFieldManageById(@RequestBody HuzhouChangefieldmanage changefieldmanage){
changefieldmanageService.updateById(changefieldmanage);
}
/**
* 获取可变更字段字典
* @return
*/
@GetMapping("/getChangeFieldManageDict")
public List<Map<String, String>> getChangeFieldManageDict(){
return changefieldmanageService.getChangeFieldManageDict();

64
huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/HuzhouFieldchangehistoryController.java

@ -28,18 +28,39 @@ public class HuzhouFieldchangehistoryController {
private IWorkflowService workflowService;
@Autowired
private IHuzhouUploadfileinfoService uploadfileinfoService;
/**
* 提交字段变更申请(单个字段)
* @param multipartFiles
* @param fieldValue
* @throws Exception
*/
@PostMapping("/submitFieldchange")
public void submitFieldchange(@RequestParam(value = "file",required = false) MultipartFile[] multipartFiles,
String projectid,String fieldValue,String newValue) throws IOException {
fieldchangehistoryService.submitChangeFieldManage(multipartFiles,projectid,fieldValue,newValue);
String fieldValue,HuzhouProjectinfo projectinfo) throws Exception {
String projectid = projectinfo.getId();
fieldchangehistoryService.submitChangeFieldManage(multipartFiles,projectid,fieldValue,projectinfo);
}
@GetMapping("/getFieldchangeByid")
public HuzhouFieldchangehistory getFieldchangeByid(String fieldChangeid) throws IOException {
HuzhouFieldchangehistory fieldchangehistory = fieldchangehistoryService.getById(fieldChangeid);
/**
* 根据Groupid 获取修改的字段组合
* @param fieldChangeGroupid
* @return
* @throws IOException
*/
@GetMapping("/getFieldchangeByGroupid")
public List<HuzhouFieldchangehistory> getFieldchangeByGroupid(String fieldChangeGroupid) throws IOException {
List<HuzhouFieldchangehistory> fieldchangehistory = fieldchangehistoryService.getFieldchangeByGroupid(fieldChangeGroupid);
return fieldchangehistory;
}
/**
* 根据项目id获取变更字段列表
* @param projectid
* @return
* @throws IOException
*/
@GetMapping("/getFieldchangeListByprojectid")
public List<HuzhouFieldchangehistory> getFieldchangeListByprojectid(String projectid) throws IOException {
@ -47,25 +68,36 @@ public class HuzhouFieldchangehistoryController {
}
@GetMapping("/getFieldchangeFileinfoList")
public List<HuzhouUploadfileinfo> getFieldchangeFileinfoList(String fieldChangeid){
List<HuzhouUploadfileinfo> fieldchangeFileinfoList = fieldchangehistoryService.getFieldchangeFileinfoList(fieldChangeid);
public List<HuzhouUploadfileinfo> getFieldchangeFileinfoList(String fieldChangeGroupid){
List<HuzhouUploadfileinfo> fieldchangeFileinfoList = fieldchangehistoryService.getFieldchangeFileinfoList(fieldChangeGroupid);
return fieldchangeFileinfoList;
}
/**
* 审批项目字段变更
* @param file
* @param taskId
* @param flag
* @param fieldChangeGroupid
* @param comment
* @param isEdit
* @param newProjectinfo 所有变革项目字段的信息
* @throws Exception
*/
@PostMapping("/approvalFieldchange")
public void approvalFieldchange(@RequestParam(value = "file",required = false) MultipartFile[] file,
@RequestParam String taskId,
@RequestParam String flag,
@RequestParam String fieldChangeid,
@RequestParam String comment,
@RequestParam String isEdit,
@RequestParam String newvalue) throws IOException {
fieldchangehistoryService.approvalFieldchange(file,taskId,flag,fieldChangeid,comment,isEdit,newvalue);
String taskId,
String flag,
String fieldChangeGroupid,
String comment,
String isEdit,
HuzhouProjectinfo newProjectinfo) throws Exception {
fieldchangehistoryService.approvalFieldchange(file,taskId,flag,fieldChangeGroupid,comment,isEdit,newProjectinfo);
}
@GetMapping("/getFieldchangehistoryPageList")
public Page<Map> getFieldchangehistoryPageList(HuzhouProjectinfo projectinfo, @RequestParam(name="current", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize){
Page<Map> page =new Page<>(pageNo,pageSize);
Page<Map> fieldchangehistoryPageList = fieldchangehistoryService.getFieldchangehistoryPageList(page, projectinfo);
return fieldchangehistoryPageList;
}

14
huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/HuzhouPlanController.java

@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.easy.admin.auth.model.SysUser;
import com.easy.admin.common.core.common.select.Select;
import com.easy.admin.common.core.exception.EasyException;
import com.easy.admin.modules.huzhou.vo.HuzhouProjectinfoOV;
import com.easy.admin.util.ShiroUtil;
@ -43,7 +44,7 @@ public class HuzhouPlanController {
private IHuzhouPlaninfoService planinfoService;
/**
* 项目计划列表信息
* 项目计划列表信息分页
* @param projectinfo 查询条件
* @param pageNo 页码
* @param pageSize 每页条数
@ -164,4 +165,15 @@ public class HuzhouPlanController {
planinfoService.downloadPlanInfo(response,projectid);
}
/**
* 根据项目id获取项目阶段名称字典
* @param projectid
* @return
*/
@GetMapping("/getTaskNameTypeDict")
public Result<?> getTaskNameTypeDict(String projectid){
List<Select> taskNameTypeDict = planinfoService.getTaskNameTypeDict(projectid);
return Result.ok(taskNameTypeDict);
}
}

108
huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/HuzhouPlaninfofileController.java

@ -4,10 +4,16 @@ import com.alibaba.excel.util.StringUtils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.easy.admin.auth.model.SysUser;
import com.easy.admin.auth.service.SysUserService;
import com.easy.admin.common.core.exception.EasyException;
import com.easy.admin.modules.huzhou.dao.HuzhouContractinfoMapper;
import com.easy.admin.sys.model.SysDict;
import com.easy.admin.sys.service.SysDictService;
import com.easy.admin.util.ShiroUtil;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;
import org.apache.shiro.SecurityUtils;
import com.easy.admin.common.api.vo.Result;
@ -23,53 +29,31 @@ import java.util.*;
@RestController
@RequestMapping("/huzhouPlaninfofile")
@Transactional()
public class HuzhouPlaninfofileController {
@Autowired
private IHuzhouPlaninfofileService planinfofileService;
@Autowired
private IHuzhouPlaninfoService planinfoService;
@Autowired
private IWorkflowService workflowService;
@Autowired
private IHuzhouProcessinfoService processinfoService;
@Autowired
private IHuzhouProjectinfoService projectinfoService;
@Autowired
private RuntimeService runtimeService;
private String[] names ={"可研报告初稿编制","初步技术审查","造价评估","可行性研究报告审批","初步设计初稿编制","初步设计技术审查","初步设计审批"};
@PostMapping("/planUploadFile")
public Result<?> planUploadFile(@RequestParam(value = "file",required = false)
MultipartFile[] files, @RequestParam(value = "planinfoid") String planinfoid) throws IOException {
//检查是否可提交
HuzhouPlaninfo planinfo = planinfoService.getById(planinfoid);
String taskLevel = planinfo.getTaskLevel();
List<HuzhouPlaninfo> childPlanList = planinfoService.queryChildPlan(planinfo.getProjectId(), planinfo.getTaskLevel(),"0,1");
if(childPlanList.size()>0){
throw new EasyException("存在未完成(审批中)的子项。当前阶段不允许提交文件");
}
planinfoService.saveOrModifyPlanUploadFile(files,planinfoid,"1","1");
String taskName = planinfo.getTaskName();
if (Arrays.asList(names).contains(taskName)) {
WorkFlow workFlow = workflowService.createFlow("createPlaninfoFile2",planinfoid);
}else{
WorkFlow workFlow = workflowService.createFlow("createPlaninfoFile",planinfoid);
}
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);
WorkFlow workFlow = workflowService.createFlow("createPlaninfoFile",planinfoid);
planinfoService.saveOrModifyPlanUploadFile(files,planinfoid,"2","1");
//修改项目状态
projectinfoService.modifyStageById(planinfo.getProjectId(),"5");
return Result.ok("修改成功");
planinfofileService.submitPlanUploadFile(files,planinfoid);
return Result.ok();
}
//弃用
// @PostMapping("/planUploadModifyFile")
// public Result<?> planUploadModifyFile(@RequestParam(value = "file")
// MultipartFile[] files,@RequestParam(value = "planinfoid") String planinfoid) throws IOException {
// HuzhouPlaninfo planinfo = planinfoService.getById(planinfoid);
//
// WorkFlow workFlow = workflowService.createFlow("createPlaninfoFile",planinfoid);
// planinfoService.saveOrModifyPlanUploadFile(files,planinfoid,"2","1");
// //修改项目状态
// projectinfoService.modifyStageById(planinfo.getProjectId(),"5");
// return Result.ok("修改成功");
// }
@GetMapping("/queryPlaninfoFilePageByid")
public Result<?> queryPlaninfoFilePageByid(HuzhouPlaninfofile planinfofile,@RequestParam(name="current", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize){
@ -89,55 +73,11 @@ public class HuzhouPlaninfofileController {
@RequestParam String planinfoid,
@RequestParam String comment,
@RequestParam(value = "adviceFile",required = false) MultipartFile[] adviceFiles) throws Exception {
WorkFlow workFlow = workflowService.approveProjectInfo(taskId, flag, comment);
LambdaQueryWrapper<HuzhouProcessinfo> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(HuzhouProcessinfo::getProjectid,planinfoid);
queryWrapper.eq(HuzhouProcessinfo::getProcessstatus,"1");
List<HuzhouProcessinfo> processinfos = processinfoService.list(queryWrapper);
String processName = processinfos.get(0).getProcessName();
if(files!=null&&"1".equals(flag)){
planinfoService.saveOrModifyPlanUploadFile(files,planinfoid,"2","1");
}
//意见文件
if(adviceFiles!=null){
planinfoService.saveOrModifyPlanUploadFile(adviceFiles,planinfoid,"2","2");
}
HuzhouPlaninfo huzhouPlaninfo = new HuzhouPlaninfo();
huzhouPlaninfo.setId(planinfoid);
planinfofileService.approvePlanFile(files,taskId,flag,planinfoid,comment,adviceFiles);
return Result.ok();
if("3".equals(flag)){
huzhouPlaninfo.setIsfinish("0");
planinfoService.updateById(huzhouPlaninfo);
planinfofileService.modifyStatusByPlaninfoid("0",planinfoid);
processinfoService.modifyStatusByProjectId(planinfoid,"0",processName);
return Result.ok("作废成功!");
}
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(workFlow.getProcessInstanceId()).singleResult();
if(processInstance==null&&"1".equals(flag)){
huzhouPlaninfo.setIsfinish("2");
planinfoService.updateById(huzhouPlaninfo);
processinfoService.modifyStatusByProjectId(planinfoid,"2",processName);
HuzhouPlaninfo planinfo = planinfoService.getById(planinfoid);
String projectId = planinfo.getProjectId();
HuzhouPlaninfo nodePlan = planinfoService.getNodePlan(projectId, planinfo.getSuperior());
//如果文件为空,检查子项是否全部完成,若以完成则为完成
if(null!=nodePlan&&StringUtils.isBlank(nodePlan.getTaskFile())){
List<HuzhouPlaninfo> unfinishChildPlan = planinfoService.queryChildPlan(projectId, nodePlan.getTaskLevel(), "0,1");
if(unfinishChildPlan.size()==0){
HuzhouPlaninfo nodePlaninfo = new HuzhouPlaninfo();
nodePlaninfo.setIsfinish("2");
nodePlaninfo.setActualEndTime(new Date());
nodePlaninfo.setId(nodePlan.getId());
planinfoService.updateById(nodePlaninfo);
}
}
List<HuzhouPlaninfo> list = planinfoService.getUnFinishListByProjectId(projectId);
if(list.size()==0){
projectinfoService.modifyStageById(projectId,"6");
}
}
return Result.ok("审批成功");
}
@GetMapping("/getPlanFileApprovalInfoByPlaninfoId")
public Result<?> getPlanFileApprovalInfoByPlaninfoId(String planinfoid){

43
huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/HuzhouRegulationlabController.java

@ -17,6 +17,14 @@ import java.io.IOException;
public class HuzhouRegulationlabController {
@Autowired
private IHuzhouRegulationlabService regulationlabService;
/**
* 查询政策法规分页
* @param regulationlab 条件
* @param pageNo 分页
* @param pageSize 页码
* @return
*/
@GetMapping("/regulationlabPageList")
public Result<?> regulationlabPageList(HuzhouRegulationlab regulationlab,
@RequestParam(name="current", defaultValue="1") Integer pageNo,
@ -25,16 +33,38 @@ public class HuzhouRegulationlabController {
Page<HuzhouRegulationlab> pageList = regulationlabService.getRegulationlabPageList(regulationlab, pageNo, pageSize);
return Result.ok(pageList);
}
/**
* 根据id获取详情政策法规
* @param id
* @return
*/
@GetMapping("/getregulationlabById")
public Result<?> getregulationlabById(String id){
HuzhouRegulationlab byId = regulationlabService.getById(id);
return Result.ok(byId);
}
/**
* 添加政策法规
* @param file
* @param regulationlab
* @return
* @throws IOException
*/
@PostMapping("/addRegulationlab")
public Result<?> addRegulationlab(@RequestParam(value = "file") MultipartFile file, HuzhouRegulationlab regulationlab) throws IOException {
regulationlabService.addRegulationlab(file,regulationlab);
return Result.ok("上传成功");
}
/**
* 修改政策法规
* @param file
* @param regulationlab
* @return
* @throws IOException
*/
@PostMapping("/modifyRegulationlab")
public Result<?> modifyRegulationlab(@RequestParam(value = "file",required = false) MultipartFile file, HuzhouRegulationlab regulationlab) throws IOException {
Boolean aBoolean = regulationlabService.modifyRegulationlab(file, regulationlab);
@ -43,6 +73,13 @@ public class HuzhouRegulationlabController {
}
throw new EasyException("修改失败");
}
/**
* 删除政策法规
* @param regulationlab
* @return
* @throws IOException
*/
@PostMapping("/deleteRegulationlab")
public Result<?> deleteRegulationlab(@RequestBody HuzhouRegulationlab regulationlab) throws IOException {
Boolean aBoolean = regulationlabService.deleteRegulationlab(regulationlab);
@ -51,6 +88,12 @@ public class HuzhouRegulationlabController {
}
throw new EasyException("删除失败");
}
/**
* 批量下载
* @param regulationlab
* @param response
*/
@GetMapping("/batchdownloadRegulationlabFiles")
public void batchdownloadRegulationlabFiles(HuzhouRegulationlab regulationlab, HttpServletResponse response){
regulationlabService.batchdownloadRegulationlabFiles(regulationlab,response);

6
huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/HuzhouSubProjectinfoController.java

@ -23,6 +23,12 @@ public class HuzhouSubProjectinfoController {
public void modifySubProjectinfo(@RequestBody HuzhouSubProjectinfo projectinfo){
subProjectinfoService.modifySubProjectinfo(projectinfo);
}
/**
* 获取子项目各金额的剩余额度
* @param projectinfo
* @return
*/
@GetMapping("/getRemainingMoneyinfo")
public HuzhouSubProjectinfo getRemainingMoneyinfo( HuzhouSubProjectinfo projectinfo){
HuzhouSubProjectinfo subProjectMoneyinfo = subProjectinfoService.getRemainingMoneyinfo(projectinfo);

51
huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/WorkflowController.java

@ -54,6 +54,8 @@ import org.springframework.web.bind.annotation.*;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@RestController
@RequestMapping("/workflow")
@ -87,7 +89,7 @@ public class WorkflowController {
List<Task> taskList = taskService.createTaskQuery()
.orderByTaskCreateTime()
.desc()
.taskCandidateOrAssigned(userId)
.taskAssignee(userId)
.listPage((pageNo-1)*pageSize,pageSize);
if (!CollectionUtils.isEmpty(taskList)) {
for (Task task:taskList) {
@ -120,6 +122,7 @@ public class WorkflowController {
if(processinfo!=null){
String projectid = processinfo.getProjectid();
stringObjectHashMap.put("projectId",projectid);
stringObjectHashMap.put("stage",processinfo.getProcessName());
//获取项目名称
LambdaQueryWrapper<HuzhouProjectinfo> projetcQueryWrapper = new LambdaQueryWrapper<>();
projetcQueryWrapper.eq(HuzhouProjectinfo::getId,projectid);
@ -127,7 +130,6 @@ public class WorkflowController {
if(info!=null){
stringObjectHashMap.put("projectName",info.getProjectName());
stringObjectHashMap.put("createTime",info.getCreateDate());
stringObjectHashMap.put("stage",processinfo.getProcessName());
}
@ -222,6 +224,7 @@ public class WorkflowController {
}
if(processinfo!=null){
String projectid = processinfo.getProjectid();
reshashMap.put("stage",processinfo.getProcessName());
//获取项目名称
LambdaQueryWrapper<HuzhouProjectinfo> projetcQueryWrapper = new LambdaQueryWrapper<>();
projetcQueryWrapper.eq(HuzhouProjectinfo::getId,projectid);
@ -233,7 +236,6 @@ public class WorkflowController {
reshashMap.put("createTime",createtime);
}
reshashMap.put("stage",processinfo.getProcessName());
}
HistoricProcessInstance historicProcessInstance =historyService.createHistoricProcessInstanceQuery()
.processInstanceId(processInstanceId)
@ -277,9 +279,8 @@ public class WorkflowController {
return Result.ok(taskPage);
}
@GetMapping("/getprocessInfo")
public Result<IPage<HashMap<String,Object>>> getprocessInfo(String processInstanceId,String projectid, String stage,
@RequestParam(name="current", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize){
public Result<List<HashMap<String,Object>>> getprocessInfo(String processInstanceId,String projectid, String stage
){
// 通过项目id查询流程id
if(projectid!=null){
LambdaQueryWrapper<HuzhouProcessinfo> queryWrapper = new LambdaQueryWrapper<>();
@ -291,7 +292,7 @@ public class WorkflowController {
}
List<HistoricTaskInstance> list = historyService.createHistoricTaskInstanceQuery()
.processInstanceId(processInstanceId)
.orderByTaskCreateTime().asc().listPage((pageNo-1)*pageSize,pageSize);
.orderByTaskCreateTime().asc().list();
List<HashMap<String,Object>> approvalEntityList = new ArrayList<>();
String approvalSuggestion = "";
HistoricVariableInstance historicVariableInstance = null;
@ -362,7 +363,31 @@ public class WorkflowController {
String assignee = userTask.getAssignee();
hashMap.put("taskName", userTask.getName());
if(candidateGroups.size()==0){
hashMap.put("operator", sysUserService.getById(assignee).getNickname());
if(assignee==null){
//设置审批人名字
//说明任务没有被认领
//获取变量名称
List<String> candidateUsers = userTask.getCandidateUsers();
String candidateUsersString = candidateUsers.get(0);//${taskLeadingDepartment}
//正则表达式提取变量名
Pattern pattern = Pattern.compile("\\$\\{(.*?)\\}");
Matcher matcher = pattern.matcher(candidateUsersString);
if (matcher.find()) {
String groupName = matcher.group(1);// 提取大括号中的内容
// 获取所有变量
Map<String, Object> variables = runtimeService.getVariables(processInstanceId);
List<String> variableValue = (List<String>)runtimeService.getVariable(processInstanceId, groupName);
String name = "";
for (String id:variableValue
) {
String nickname = sysUserService.getById(id).getNickname();
name=name+nickname+",";
}
hashMap.put("operator", name.substring(0,name.length()-1));
}
}else{
hashMap.put("operator", sysUserService.getById(assignee).getNickname());
}
}else{
LambdaQueryWrapper<SysUserRole> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(SysUserRole::getRoleId,candidateGroups.get(0));
@ -385,15 +410,7 @@ public class WorkflowController {
}
}
int countSize = historyService.createHistoricTaskInstanceQuery()
.processInstanceId(processInstanceId)
.orderByTaskCreateTime().asc().list().size();
IPage<HashMap<String,Object>> listIPage = new Page<>();
listIPage.setRecords(approvalEntityList);
listIPage.setTotal(countSize);
listIPage.setSize(pageSize);
listIPage.setCurrent(pageNo);
return Result.OK(listIPage);
return Result.OK(approvalEntityList);
}
@GetMapping("/getProcessInstanceIdByProid")
public Result<?> getProcessInstanceIdByProid(String projectid,String stage){

5
huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/HuzhouContractinfoMapper.java

@ -3,12 +3,13 @@ package com.easy.admin.modules.huzhou.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.easy.admin.modules.huzhou.entity.HuzhouProjectinfo;
import com.easy.admin.modules.huzhou.vo.HuzhouProjectinfoOV;
import org.apache.ibatis.annotations.Mapper;
import com.easy.admin.modules.huzhou.entity.HuzhouContractinfo;
import com.easy.admin.modules.huzhou.vo.HuzhouContractinfoOV;
public interface HuzhouContractinfoMapper extends BaseMapper<HuzhouContractinfo> {
Page<HuzhouProjectinfo> getContractinfoPageList(Page page, HuzhouProjectinfo info);
Page<HuzhouProjectinfo> getContractProjectPageList(Page page, HuzhouProjectinfo info);
Page<HuzhouProjectinfoOV> getContractinfoPageList(Page page, HuzhouProjectinfo info);
Page<HuzhouProjectinfoOV> getContractProjectPageList(Page page, HuzhouProjectinfo info);
}

437
huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/HuzhouContractinfoMapper.xml

@ -1,71 +1,166 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.easy.admin.modules.huzhou.dao.HuzhouContractinfoMapper">
<select id="getContractProjectPageList" resultType="com.easy.admin.modules.huzhou.entity.HuzhouProjectinfo" parameterType="com.easy.admin.modules.huzhou.entity.HuzhouProjectinfo">
SELECT * from huzhou_projectinfo u
<where>
and u.id not in (select distinct project_id from huzhou_contractinfo where status ='1')
and NOT EXISTS (
SELECT 1
FROM huzhou_sub_projectinfo sub
left JOIN ( select cc.project_id,ss.project_id zhuprojectid,cc.task_name,cc.status,ss.stage from huzhou_contractinfo cc INNER JOIN huzhou_sub_projectinfo ss on cc.project_id=ss.id) c ON sub.id = c.project_id
WHERE sub.project_id = u.id and (c.status = '1' or c.status is null) and sub.stage>=5
HAVING COUNT(DISTINCT c.project_id) = COUNT(DISTINCT sub.id) AND COUNT(DISTINCT sub.id)>0)
<if test="info.projectContacts!=null and info.projectContacts!=''">
and u.id in(
select project_id from huzhou_userproject where user_id=#{info.projectContacts}
)
</if>
<if test="info.supervisorContactor!=null and info.supervisorContactor!=''">
and u.id in(
SELECT DISTINCT id from huzhou_projectinfo e where e.admin_division in(
SELECT DISTINCT a.admin_division from huzhou_projectinfo a where a.id in (select c.project_id from
huzhou_userproject c where c.user_id=#{info.supervisorContactor})
)
<resultMap id="HuzhouProjectinfoMap1" type="com.easy.admin.modules.huzhou.vo.HuzhouProjectinfoOV">
<result property="id" column="id" jdbcType="VARCHAR"/>
<result property="projectName" column="project_name" jdbcType="VARCHAR"/>
<result property="adminDivision" column="admin_division" jdbcType="VARCHAR"/>
<result property="description" column="description" jdbcType="VARCHAR"/>
<result property="projectType" column="project_type" jdbcType="VARCHAR"/>
<result property="dutyWorkplace" column="duty_workplace" jdbcType="VARCHAR"/>
<result property="constructionPeriod" column="construction_period" jdbcType="VARCHAR"/>
<result property="centralMoney" column="central_money" jdbcType="NUMERIC"/>
<result property="provincialMoney" column="provincial_money" jdbcType="NUMERIC"/>
<result property="cityMoney" column="city_money" jdbcType="NUMERIC"/>
<result property="countyMoney" column="county_money" jdbcType="NUMERIC"/>
<result property="reformName" column="reform_name" jdbcType="VARCHAR"/>
<result property="superLeader" column="super_leader" jdbcType="VARCHAR"/>
<result property="projectContacts" column="project_contacts" jdbcType="VARCHAR"/>
<result property="phone" column="phone" jdbcType="VARCHAR"/>
<result property="manageOrg" column="manage_org" jdbcType="VARCHAR"/>
<result property="manageContactor" column="manage_contactor" jdbcType="VARCHAR"/>
<result property="controler" column="controler" jdbcType="VARCHAR"/>
<result property="controlerContactor" column="controler_contactor" jdbcType="VARCHAR"/>
<result property="supervisor" column="supervisor" jdbcType="VARCHAR"/>
<result property="supervisorContactor" column="supervisor_contactor" jdbcType="VARCHAR"/>
<result property="owner" column="owner" jdbcType="VARCHAR"/>
<result property="ownerContactor" column="owner_contactor" jdbcType="VARCHAR"/>
<result property="consult" column="consult" jdbcType="VARCHAR"/>
<result property="consultContactor" column="consult_contactor" jdbcType="VARCHAR"/>
<result property="contructor" column="contructor" jdbcType="VARCHAR"/>
<result property="contructorContactor" column="contructor_contactor" jdbcType="VARCHAR"/>
<result property="stage" column="stage" jdbcType="VARCHAR"/>
<result property="createDate" column="create_date" jdbcType="TIMESTAMP"/>
<result property="createUser" column="create_user" jdbcType="VARCHAR"/>
<result property="editDate" column="edit_date" jdbcType="TIMESTAMP"/>
<result property="editUser" column="edit_user" jdbcType="VARCHAR"/>
<result property="workplaceProperties" column="workplace_properties" jdbcType="VARCHAR"/>
<result property="totalMoney" column="total_money" jdbcType="NUMERIC"/>
<result property="selfMoney" column="self_money" jdbcType="NUMERIC"/>
<result property="payamount2023Money" column="payamount2023_money" jdbcType="NUMERIC"/>
<result property="payamount2024Money" column="payamount2024_money" jdbcType="NUMERIC"/>
<result property="payamount2025Money" column="payamount2025_money" jdbcType="VARCHAR"/>
<collection property="children" ofType="com.easy.admin.modules.huzhou.entity.HuzhouSubProjectinfo" select="selectchildrenMapList1" column="id"/>
</resultMap>
<resultMap id="HuzhouProjectinfoMap2" type="com.easy.admin.modules.huzhou.vo.HuzhouProjectinfoOV">
<result property="id" column="id" jdbcType="VARCHAR"/>
<result property="projectName" column="project_name" jdbcType="VARCHAR"/>
<result property="adminDivision" column="admin_division" jdbcType="VARCHAR"/>
<result property="description" column="description" jdbcType="VARCHAR"/>
<result property="projectType" column="project_type" jdbcType="VARCHAR"/>
<result property="dutyWorkplace" column="duty_workplace" jdbcType="VARCHAR"/>
<result property="constructionPeriod" column="construction_period" jdbcType="VARCHAR"/>
<result property="centralMoney" column="central_money" jdbcType="NUMERIC"/>
<result property="provincialMoney" column="provincial_money" jdbcType="NUMERIC"/>
<result property="cityMoney" column="city_money" jdbcType="NUMERIC"/>
<result property="countyMoney" column="county_money" jdbcType="NUMERIC"/>
<result property="reformName" column="reform_name" jdbcType="VARCHAR"/>
<result property="superLeader" column="super_leader" jdbcType="VARCHAR"/>
<result property="projectContacts" column="project_contacts" jdbcType="VARCHAR"/>
<result property="phone" column="phone" jdbcType="VARCHAR"/>
<result property="manageOrg" column="manage_org" jdbcType="VARCHAR"/>
<result property="manageContactor" column="manage_contactor" jdbcType="VARCHAR"/>
<result property="controler" column="controler" jdbcType="VARCHAR"/>
<result property="controlerContactor" column="controler_contactor" jdbcType="VARCHAR"/>
<result property="supervisor" column="supervisor" jdbcType="VARCHAR"/>
<result property="supervisorContactor" column="supervisor_contactor" jdbcType="VARCHAR"/>
<result property="owner" column="owner" jdbcType="VARCHAR"/>
<result property="ownerContactor" column="owner_contactor" jdbcType="VARCHAR"/>
<result property="consult" column="consult" jdbcType="VARCHAR"/>
<result property="consultContactor" column="consult_contactor" jdbcType="VARCHAR"/>
<result property="contructor" column="contructor" jdbcType="VARCHAR"/>
<result property="contructorContactor" column="contructor_contactor" jdbcType="VARCHAR"/>
<result property="stage" column="stage" jdbcType="VARCHAR"/>
<result property="createDate" column="create_date" jdbcType="TIMESTAMP"/>
<result property="createUser" column="create_user" jdbcType="VARCHAR"/>
<result property="editDate" column="edit_date" jdbcType="TIMESTAMP"/>
<result property="editUser" column="edit_user" jdbcType="VARCHAR"/>
<result property="workplaceProperties" column="workplace_properties" jdbcType="VARCHAR"/>
<result property="totalMoney" column="total_money" jdbcType="NUMERIC"/>
<result property="selfMoney" column="self_money" jdbcType="NUMERIC"/>
<result property="payamount2023Money" column="payamount2023_money" jdbcType="NUMERIC"/>
<result property="payamount2024Money" column="payamount2024_money" jdbcType="NUMERIC"/>
<result property="payamount2025Money" column="payamount2025_money" jdbcType="VARCHAR"/>
<collection property="children" ofType="com.easy.admin.modules.huzhou.entity.HuzhouSubProjectinfo" select="selectchildrenMapList2" column="id"/>
</resultMap>
<resultMap id="childrenMap" type="com.easy.admin.modules.huzhou.entity.HuzhouSubProjectinfo">
<id property="id" column="sub_id" />
<result property="projectName" column="sub_project_name" jdbcType="VARCHAR"/>
<result property="adminDivision" column="sub_admin_division" jdbcType="VARCHAR"/>
<result property="description" column="sub_description" jdbcType="VARCHAR"/>
<result property="dutyWorkplace" column="sub_duty_workplace" jdbcType="VARCHAR"/>
<result property="constructionPeriod" column="sub_construction_period" jdbcType="VARCHAR"/>
<result property="reformName" column="sub_reform_name" jdbcType="VARCHAR"/>
<result property="superLeader" column="sub_super_leader" jdbcType="VARCHAR"/>
<result property="stage" column="sub_stage" jdbcType="VARCHAR"/>
<result property="workplaceProperties" column="sub_workplace_properties" jdbcType="VARCHAR"/>
</resultMap>
<select id="getContractProjectPageList" resultMap="HuzhouProjectinfoMap1" parameterType="com.easy.admin.modules.huzhou.entity.HuzhouProjectinfo">
SELECT * from huzhou_projectinfo u
<where>
NOT exists (
SELECT 1
FROM huzhou_sub_projectinfo sub
left JOIN ( select cc.project_id,ss.project_id zhuprojectid,cc.task_name,cc.status,ss.stage from huzhou_contractinfo cc INNER JOIN huzhou_sub_projectinfo ss on cc.project_id=ss.id) c ON sub.id = c.project_id
WHERE sub.project_id = u.id and (c.status = '1' or c.status is null) and sub.stage>=5
HAVING COUNT(DISTINCT c.project_id) = COUNT(DISTINCT sub.id) AND COUNT(DISTINCT sub.id)>0)
<if test="info.projectContacts!=null and info.projectContacts!=''">
and u.id in(
select project_id from huzhou_userproject where user_id=#{info.projectContacts}
)
</if>
<if test="info.supervisorContactor!=null and info.supervisorContactor!=''">
and u.id in(
SELECT DISTINCT id from huzhou_projectinfo e where e.admin_division in(
SELECT DISTINCT a.admin_division from huzhou_projectinfo a where a.id in (select c.project_id from
huzhou_userproject c where c.user_id=#{info.supervisorContactor})
)
OR
e.super_leader in (
SELECT DISTINCT b.super_leader from huzhou_projectinfo b where b.id in (select d.project_id from
huzhou_userproject d where d.user_id=#{info.supervisorContactor})
)
)
</if>
<if test="info.projectName!=null and info.projectName!=''">
<bind name="tempStr" value="'%' + info.projectName + '%'" />
and u.project_name like #{tempStr}
</if>
<if test="info.adminDivision!=null and info.adminDivision!=''">
<bind name="tempStr" value="'%' + info.adminDivision + '%'" />
and u.admin_division like #{tempStr}
</if>
<if test="info.dutyWorkplace!=null and info.dutyWorkplace!=''">
<bind name="tempStr" value="'%' + info.dutyWorkplace + '%'" />
and u.duty_workplace like #{tempStr}
</if>
<if test="info.workplaceProperties!=null and info.workplaceProperties!=''">
<bind name="tempStr" value="'%' + info.workplaceProperties + '%'" />
and u.workplace_properties like #{tempStr}
</if>
<if test="info.dutyWorkplace!=null and info.dutyWorkplace!=''">
<bind name="tempStr" value="'%' + info.dutyWorkplace + '%'" />
and u.duty_workplace like #{tempStr}
</if>
<if test="info.reformName!=null and info.reformName!=''">
and u.reform_name = #{info.reformName}
</if>
<if test="info.superLeader!=null and info.superLeader!=''">
and u.super_leader = #{info.superLeader}
</if>
<if test="info.stage!=null and info.stage!=''">
and u.stage &gt;= #{info.stage}
</if>
</where>
order by create_date desc
OR
e.super_leader in (
SELECT DISTINCT b.super_leader from huzhou_projectinfo b where b.id in (select d.project_id from
huzhou_userproject d where d.user_id=#{info.supervisorContactor})
)
)
</if>
<if test="info.projectName!=null and info.projectName!=''">
<bind name="tempStr" value="'%' + info.projectName + '%'" />
and u.project_name like #{tempStr}
</if>
<if test="info.adminDivision!=null and info.adminDivision!=''">
<bind name="tempStr" value="'%' + info.adminDivision + '%'" />
and u.admin_division like #{tempStr}
</if>
<if test="info.dutyWorkplace!=null and info.dutyWorkplace!=''">
<bind name="tempStr" value="'%' + info.dutyWorkplace + '%'" />
and u.duty_workplace like #{tempStr}
</if>
<if test="info.workplaceProperties!=null and info.workplaceProperties!=''">
<bind name="tempStr" value="'%' + info.workplaceProperties + '%'" />
and u.workplace_properties like #{tempStr}
</if>
<if test="info.dutyWorkplace!=null and info.dutyWorkplace!=''">
<bind name="tempStr" value="'%' + info.dutyWorkplace + '%'" />
and u.duty_workplace like #{tempStr}
</if>
<if test="info.reformName!=null and info.reformName!=''">
and u.reform_name = #{info.reformName}
</if>
<if test="info.superLeader!=null and info.superLeader!=''">
and u.super_leader = #{info.superLeader}
</if>
<if test="info.stage!=null and info.stage!=''">
and u.stage &gt;= #{info.stage}
</if>
</where>
</select>
<select id="getContractinfoPageList" resultType="com.easy.admin.modules.huzhou.entity.HuzhouProjectinfo" parameterType="com.easy.admin.modules.huzhou.entity.HuzhouProjectinfo">
<select id="getContractinfoPageList" resultMap="HuzhouProjectinfoMap2" parameterType="com.easy.admin.modules.huzhou.entity.HuzhouProjectinfo">
SELECT * from huzhou_projectinfo u
<where>
<if test="info.projectContacts!=null and info.projectContacts!=''">
@ -76,7 +171,7 @@
</if>
<if test="info.supervisorContactor!=null and info.supervisorContactor!=''">
and u.id in (select distinct project_id from huzhou_contractinfo ct where status ='1' and ct.project_id
and u.id
in(
SELECT DISTINCT id from huzhou_projectinfo e where e.admin_division in(
SELECT DISTINCT a.admin_division from huzhou_projectinfo a where a.id in (select c.project_id from
@ -94,12 +189,37 @@
<if test="(info.supervisorContactor==null or info.supervisorContactor=='' )and( info.projectContacts==null or info.projectContacts=='')">
and u.id in (select distinct project_id from huzhou_contractinfo ct where status ='1')
</if>
or EXISTS (
or (
EXISTS (
SELECT 1
FROM huzhou_sub_projectinfo sub
JOIN huzhou_contractinfo c ON sub.id = c.project_id
WHERE sub.project_id = u.id and c.status ='1'
HAVING COUNT(DISTINCT c.project_id) >0)
)
<if test="info.projectContacts!=null and info.projectContacts!=''">
and u.id in (
select project_id from huzhou_userproject where user_id=#{info.projectContacts}
)
</if>
<if test="info.supervisorContactor!=null and info.supervisorContactor!=''">
and u.id
in(
SELECT DISTINCT id from huzhou_projectinfo e where e.admin_division in(
SELECT DISTINCT a.admin_division from huzhou_projectinfo a where a.id in (select c.project_id from
huzhou_userproject c where c.user_id=#{info.supervisorContactor})
)
OR
e.super_leader in (
SELECT DISTINCT b.super_leader from huzhou_projectinfo b where b.id in (select d.project_id from
huzhou_userproject d where d.user_id=#{info.supervisorContactor})
)
)
</if>
<if test="info.projectName!=null and info.projectName!=''">
<bind name="tempStr" value="'%' + info.projectName + '%'" />
and u.project_name like #{tempStr}
@ -130,7 +250,190 @@
<if test="info.stage!=null and info.stage!=''">
and u.stage &gt;= #{info.stage}
</if>
</where>
order by create_date desc
</select>
</where>
</select>
<select id="selectchildrenMapList1" resultType="com.easy.admin.modules.huzhou.entity.HuzhouSubProjectinfo">
select * from huzhou_sub_projectinfo u
<where>
u.project_id = #{id} and
not exists(
SELECT 1 from huzhou_contractinfo c
WHERE c.project_id = u.id and c.status ='1'
HAVING COUNT(DISTINCT c.project_id) >0)
</where>
-- not exists
</select>
<select id="selectchildrenMapList2" resultType="com.easy.admin.modules.huzhou.entity.HuzhouSubProjectinfo">
select * from huzhou_sub_projectinfo u
<where>
u.project_id = #{id} and
exists(
SELECT 1 from huzhou_contractinfo c
WHERE c.project_id = u.id and c.status ='1'
HAVING COUNT(DISTINCT c.project_id) >0)
</where>
</select>
<!-- <select id="getContractProjectPageList1111" resultType="com.easy.admin.modules.huzhou.entity.HuzhouProjectinfo" parameterType="com.easy.admin.modules.huzhou.entity.HuzhouProjectinfo">-->
<!-- SELECT * from huzhou_projectinfo u-->
<!-- <where>-->
<!-- and u.id not in (select distinct project_id from huzhou_contractinfo where status ='1')-->
<!-- and-->
<!-- <if test="info.projectContacts!=null and info.projectContacts!=''">-->
<!-- and u.id in(-->
<!-- select project_id from huzhou_userproject where user_id=#{info.projectContacts}-->
<!-- )-->
<!-- </if>-->
<!-- <if test="info.supervisorContactor!=null and info.supervisorContactor!=''">-->
<!-- and u.id in(-->
<!-- SELECT DISTINCT id from huzhou_projectinfo e where e.admin_division in(-->
<!-- SELECT DISTINCT a.admin_division from huzhou_projectinfo a where a.id in (select c.project_id from-->
<!-- huzhou_userproject c where c.user_id=#{info.supervisorContactor})-->
<!-- )-->
<!-- OR-->
<!-- e.super_leader in (-->
<!-- SELECT DISTINCT b.super_leader from huzhou_projectinfo b where b.id in (select d.project_id from-->
<!-- huzhou_userproject d where d.user_id=#{info.supervisorContactor})-->
<!-- )-->
<!-- )-->
<!-- </if>-->
<!-- <if test="info.projectName!=null and info.projectName!=''">-->
<!-- <bind name="tempStr" value="'%' + info.projectName + '%'" />-->
<!-- and u.project_name like #{tempStr}-->
<!-- </if>-->
<!-- <if test="info.adminDivision!=null and info.adminDivision!=''">-->
<!-- <bind name="tempStr" value="'%' + info.adminDivision + '%'" />-->
<!-- and u.admin_division like #{tempStr}-->
<!-- </if>-->
<!-- <if test="info.dutyWorkplace!=null and info.dutyWorkplace!=''">-->
<!-- <bind name="tempStr" value="'%' + info.dutyWorkplace + '%'" />-->
<!-- and u.duty_workplace like #{tempStr}-->
<!-- </if>-->
<!-- <if test="info.workplaceProperties!=null and info.workplaceProperties!=''">-->
<!-- <bind name="tempStr" value="'%' + info.workplaceProperties + '%'" />-->
<!-- and u.workplace_properties like #{tempStr}-->
<!-- </if>-->
<!-- <if test="info.dutyWorkplace!=null and info.dutyWorkplace!=''">-->
<!-- <bind name="tempStr" value="'%' + info.dutyWorkplace + '%'" />-->
<!-- and u.duty_workplace like #{tempStr}-->
<!-- </if>-->
<!-- <if test="info.reformName!=null and info.reformName!=''">-->
<!-- and u.reform_name = #{info.reformName}-->
<!-- </if>-->
<!-- <if test="info.superLeader!=null and info.superLeader!=''">-->
<!-- and u.super_leader = #{info.superLeader}-->
<!-- </if>-->
<!-- <if test="info.stage!=null and info.stage!=''">-->
<!-- and u.stage &gt;= #{info.stage}-->
<!-- </if>-->
<!-- </where>-->
<!-- order by create_date desc-->
<!-- </select>-->
<!-- <select id="getContractinfoPageList111" resultType="com.easy.admin.modules.huzhou.entity.HuzhouProjectinfo" parameterType="com.easy.admin.modules.huzhou.entity.HuzhouProjectinfo">-->
<!-- SELECT * from huzhou_projectinfo u-->
<!-- <where>-->
<!-- <if test="info.projectContacts!=null and info.projectContacts!=''">-->
<!-- and u.id in (select distinct project_id from huzhou_contractinfo ct where status ='1' and ct.project_id in (-->
<!-- select project_id from huzhou_userproject where user_id=#{info.projectContacts}-->
<!-- )-->
<!-- )-->
<!-- </if>-->
<!-- <if test="info.supervisorContactor!=null and info.supervisorContactor!=''">-->
<!-- and u.id in (select distinct project_id from huzhou_contractinfo ct where status ='1' and ct.project_id-->
<!-- in(-->
<!-- SELECT DISTINCT id from huzhou_projectinfo e where e.admin_division in(-->
<!-- SELECT DISTINCT a.admin_division from huzhou_projectinfo a where a.id in (select c.project_id from-->
<!-- huzhou_userproject c where c.user_id=#{info.supervisorContactor})-->
<!-- )-->
<!-- OR-->
<!-- e.super_leader in (-->
<!-- SELECT DISTINCT b.super_leader from huzhou_projectinfo b where b.id in (select d.project_id from-->
<!-- huzhou_userproject d where d.user_id=#{info.supervisorContactor})-->
<!-- )-->
<!-- )-->
<!-- )-->
<!-- </if>-->
<!-- <if test="(info.supervisorContactor==null or info.supervisorContactor=='' )and( info.projectContacts==null or info.projectContacts=='')">-->
<!-- and u.id in (select distinct project_id from huzhou_contractinfo ct where status ='1')-->
<!-- </if>-->
<!-- or (-->
<!-- EXISTS (-->
<!-- SELECT 1-->
<!-- FROM huzhou_sub_projectinfo sub-->
<!-- JOIN huzhou_contractinfo c ON sub.id = c.project_id-->
<!-- WHERE sub.project_id = u.id and c.status ='1'-->
<!-- HAVING COUNT(DISTINCT c.project_id) >0)-->
<!-- <if test="info.projectContacts!=null and info.projectContacts!=''">-->
<!-- and u.id in (select distinct project_id from huzhou_contractinfo ct where status ='1' and ct.project_id in (-->
<!-- select project_id from huzhou_userproject where user_id=#{info.projectContacts}-->
<!-- )-->
<!-- )-->
<!-- </if>-->
<!-- <if test="info.supervisorContactor!=null and info.supervisorContactor!=''">-->
<!-- and u.id in (select distinct project_id from huzhou_contractinfo ct where status ='1' and ct.project_id-->
<!-- in(-->
<!-- SELECT DISTINCT id from huzhou_projectinfo e where e.admin_division in(-->
<!-- SELECT DISTINCT a.admin_division from huzhou_projectinfo a where a.id in (select c.project_id from-->
<!-- huzhou_userproject c where c.user_id=#{info.supervisorContactor})-->
<!-- )-->
<!-- OR-->
<!-- e.super_leader in (-->
<!-- SELECT DISTINCT b.super_leader from huzhou_projectinfo b where b.id in (select d.project_id from-->
<!-- huzhou_userproject d where d.user_id=#{info.supervisorContactor})-->
<!-- )-->
<!-- )-->
<!-- )-->
<!-- </if>-->
<!-- <if test="(info.supervisorContactor==null or info.supervisorContactor=='' )and( info.projectContacts==null or info.projectContacts=='')">-->
<!-- and u.id in (select distinct project_id from huzhou_contractinfo ct where status ='1')-->
<!-- </if>-->
<!-- )-->
<!-- <if test="info.projectName!=null and info.projectName!=''">-->
<!-- <bind name="tempStr" value="'%' + info.projectName + '%'" />-->
<!-- and u.project_name like #{tempStr}-->
<!-- </if>-->
<!-- <if test="info.adminDivision!=null and info.adminDivision!=''">-->
<!-- <bind name="tempStr" value="'%' + info.adminDivision + '%'" />-->
<!-- and u.admin_division like #{tempStr}-->
<!-- </if>-->
<!-- <if test="info.dutyWorkplace!=null and info.dutyWorkplace!=''">-->
<!-- <bind name="tempStr" value="'%' + info.dutyWorkplace + '%'" />-->
<!-- and u.duty_workplace like #{tempStr}-->
<!-- </if>-->
<!-- <if test="info.workplaceProperties!=null and info.workplaceProperties!=''">-->
<!-- <bind name="tempStr" value="'%' + info.workplaceProperties + '%'" />-->
<!-- and u.workplace_properties like #{tempStr}-->
<!-- </if>-->
<!-- <if test="info.dutyWorkplace!=null and info.dutyWorkplace!=''">-->
<!-- <bind name="tempStr" value="'%' + info.dutyWorkplace + '%'" />-->
<!-- and u.duty_workplace like #{tempStr}-->
<!-- </if>-->
<!-- <if test="info.reformName!=null and info.reformName!=''">-->
<!-- and u.reform_name = #{info.reformName}-->
<!-- </if>-->
<!-- <if test="info.superLeader!=null and info.superLeader!=''">-->
<!-- and u.super_leader = #{info.superLeader}-->
<!-- </if>-->
<!-- <if test="info.stage!=null and info.stage!=''">-->
<!-- and u.stage &gt;= #{info.stage}-->
<!-- </if>-->
<!-- </where>-->
<!-- order by create_date desc-->
<!--</select>-->
</mapper>

4
huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/WorkflowMapper.xml

@ -24,5 +24,9 @@
,create_date,null from huzhou_fieldchangehistory f WHERE id = #{projectId}
union all
SELECT project_Name,create_date,stage FROM `huzhou_sub_projectinfo` WHERE id = #{projectId}
union all
SELECT project_Name,create_date,stage FROM `huzhou_sub_projectinfo` WHERE id = (select DISTINCT projectid from huzhou_fieldchangehistory where group_id = #{projectId})
union all
SELECT project_Name,create_date,stage FROM `huzhou_projectinfo` WHERE id = (select DISTINCT projectid from huzhou_fieldchangehistory where group_id = #{projectId})
</select>
</mapper>

2
huzhou/src/main/java/com/easy/admin/modules/huzhou/entity/HuzhouContractinfo.java

@ -60,7 +60,7 @@ public class HuzhouContractinfo extends BaseEntity implements Serializable {
*/
private Double centralMoney;
private String status;
private String groupId;
}

1
huzhou/src/main/java/com/easy/admin/modules/huzhou/entity/HuzhouFieldchangehistory.java

@ -42,6 +42,7 @@ public class HuzhouFieldchangehistory extends BaseEntity implements Serializable
*/
private String fileId;
private String status;
private String groupId;
}

2
huzhou/src/main/java/com/easy/admin/modules/huzhou/entity/WorkFlow.java

@ -1,6 +1,7 @@
package com.easy.admin.modules.huzhou.entity;
import lombok.Data;
import org.activiti.engine.task.Task;
@Data
public class WorkFlow {
@ -12,5 +13,6 @@ public class WorkFlow {
* 业务表流程key值
*/
private String businessKey;
private Task task;
}

8
huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouFieldchangehistoryService.java

@ -13,15 +13,15 @@ import java.util.List;
import java.util.Map;
public interface IHuzhouFieldchangehistoryService extends IService<HuzhouFieldchangehistory> {
void submitChangeFieldManage(MultipartFile[] multipartFiles, String projectid, String fieldValue, String newValue) throws IOException;
List<HuzhouUploadfileinfo> getFieldchangeFileinfoList(String fieldChangeid);
void submitChangeFieldManage(MultipartFile[] multipartFiles, String projectid, String fieldValue, HuzhouProjectinfo projectinfo) throws Exception;
List<HuzhouUploadfileinfo> getFieldchangeFileinfoList(String fieldChangeGroupid);
void approvalFieldchange(MultipartFile[] file,
String taskId,
String flag,
String fieldChangeid,
String comment,
String isEdit,
String newvalue) throws IOException;
HuzhouProjectinfo newProjectinfo) throws Exception;
/**
* 已经审批通过生效的
@ -31,4 +31,6 @@ public interface IHuzhouFieldchangehistoryService extends IService<HuzhouFieldch
List<HuzhouFieldchangehistory> getFieldchangeListByprojectid(String projectid);
Page<Map> getFieldchangehistoryPageList(Page<Map> page, HuzhouProjectinfo projectinfo);
Page<Map> getFieldchangehistoryDetailPageList(Page<Map> page, String proid);
List<HuzhouFieldchangehistory> getFieldchangeByGroupid(String fieldChangeGroupid);
}

27
huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouPlaninfoService.java

@ -3,6 +3,7 @@ package com.easy.admin.modules.huzhou.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.easy.admin.common.core.common.select.Select;
import com.easy.admin.modules.huzhou.entity.HuzhouProjectinfo;
import com.easy.admin.modules.huzhou.vo.HuzhouProjectinfoOV;
import org.apache.poi.ss.usermodel.Sheet;
@ -64,14 +65,34 @@ public interface IHuzhouPlaninfoService extends IService<HuzhouPlaninfo> {
* @return
*/
Boolean isExitTaskNameInPlanInfo(String projectid,String taskName);
/**
* 项目计划列表信息分页
* @param projectinfo 查询条件
* @param pageNo 页码
* @param pageSize 每页条数
* @return 返回值
*/
IPage<HuzhouProjectinfoOV> projectPlanPageList(HuzhouProjectinfo projectinfo, Integer pageNo, Integer pageSize);
/**
* 上传计划信息创建审批流程
* @param multipartFile 模板文件
* @param projectid 项目id
* @return 返回值
* @throws Exception
*/
void submitPlaninfoUploadFile(MultipartFile multipartFile, String projectid) throws Exception;
void approvePlaninfo(MultipartFile file, String taskId, String flag, String projectid, String comment) throws Exception;
/**
* 修改项目计划
* @param multipartFile 需要解析的文件
* @param projectid 项目id
* @return 返回值
* @throws Exception
*/
void modifyPlaninfo(MultipartFile multipartFile, String projectid) throws Exception;
void downloadPlanInfo(HttpServletResponse response, String projectid);
List<Select> getTaskNameTypeDict(String projectid);
}

7
huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouPlaninfofileService.java

@ -3,8 +3,15 @@ package com.easy.admin.modules.huzhou.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.easy.admin.modules.huzhou.entity.HuzhouPlaninfofile;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
public interface IHuzhouPlaninfofileService extends IService<HuzhouPlaninfofile> {
Page<HuzhouPlaninfofile> getplanFilePageList(HuzhouPlaninfofile planinfofile, Integer pageNo, Integer pageSize);
void modifyStatusByPlaninfoid(String status,String planinfo);
void submitPlanUploadFile(MultipartFile[] files, String planinfoid) throws IOException;
void approvePlanFile(MultipartFile[] files, String taskId, String flag, String planinfoid, String comment, MultipartFile[] adviceFiles) throws IOException;
}

117
huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouContractinfoServiceImpl.java

@ -45,112 +45,31 @@ public class HuzhouContractinfoServiceImpl extends ServiceImpl<HuzhouContractinf
@Override
public Page<HuzhouProjectinfoOV> getContractProjectPageList(HuzhouProjectinfo projectinfo, Integer pageNo, Integer pageSize) {
Page page = new Page(pageNo, pageSize);
SysUser currentUser = ShiroUtil.getCurrentUser();
List<SysRole> roleList = currentUser.getRoleList();
String roles = "";
for (SysRole role:roleList
) {
roles = role.getCode()+","+roles;
}
if(roles.contains("manageOrg")||roles.contains("sys:admin")){
}else if(roles.contains("supervisor")){
projectinfo.setSupervisorContactor(currentUser.getId());
}else {
projectinfo.setProjectContacts(currentUser.getId());
}
Page<HuzhouProjectinfo> projectInfoPageList = contractinfoMapper.getContractProjectPageList(page, projectinfo);
List<HuzhouProjectinfoOV> convertedList = new ArrayList<>();
for (HuzhouProjectinfo info : projectInfoPageList.getRecords()) {
HuzhouProjectinfoOV projectinfoOV=new HuzhouProjectinfoOV();
BeanUtils.copyProperties(info,projectinfoOV);
String projectinfoId = projectinfoOV.getId();
LambdaQueryWrapper<HuzhouSubProjectinfo> subProjectinfoqueryWrapper = new LambdaQueryWrapper<>();
subProjectinfoqueryWrapper.eq(HuzhouSubProjectinfo::getProjectId,projectinfoId);
subProjectinfoqueryWrapper.ge(HuzhouProjectinfo::getStage,"5");
//子项目是否新增合同
List<HuzhouSubProjectinfo> huzhouSubProjectinfos = subProjectinfoMapper.selectList(subProjectinfoqueryWrapper);
//是否有子项目
if(huzhouSubProjectinfos.size()>0){
//排除已建合同的子项目
List<HuzhouSubProjectinfo> subProjectinfoList = huzhouSubProjectinfos.stream().filter(item -> {
String id = item.getId();
LambdaQueryWrapper<HuzhouContractinfo> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(HuzhouContractinfo::getStatus, "1");
queryWrapper.eq(HuzhouContractinfo::getProjectId, id);
List<HuzhouContractinfo> list = list(queryWrapper);
if (list.size() > 0) {
return false;
}
return true;
}).collect(Collectors.toList());
if(subProjectinfoList.size()>0){
projectinfoOV.setChildren(subProjectinfoList);
}
projectinfo=CommonUtils.setGetProjectInfoAuth(projectinfo);
Page<HuzhouProjectinfoOV> projectInfoPageList = contractinfoMapper.getContractProjectPageList(page, projectinfo);
List<HuzhouProjectinfoOV> records = projectInfoPageList.getRecords();
records.forEach(item->{
List<HuzhouSubProjectinfo> children = item.getChildren();
if(children.size()==0){
item.setChildren(null);
}
convertedList.add(projectinfoOV);
}
Page<HuzhouProjectinfoOV> newPage = new Page<>();
newPage.setRecords(convertedList);
newPage.setTotal(projectInfoPageList.getTotal());
newPage.setCurrent(projectInfoPageList.getCurrent());
newPage.setSize(projectInfoPageList.getSize());
return newPage;
});
return projectInfoPageList;
}
@Override
public Page<HuzhouProjectinfoOV> getContractinfoPageList(HuzhouProjectinfo projectinfo, Integer pageNo, Integer pageSize) {
Page page = new Page(pageNo, pageSize);
SysUser currentUser = ShiroUtil.getCurrentUser();
List<SysRole> roleList = currentUser.getRoleList();
String roles = "";
for (SysRole role:roleList
) {
roles = role.getCode()+","+roles;
}
if(roles.contains("manageOrg")||roles.contains("sys:admin")){
}else if(roles.contains("supervisor")){
projectinfo.setSupervisorContactor(currentUser.getId());
}else {
projectinfo.setProjectContacts(currentUser.getId());
}
Page<HuzhouProjectinfo> projectInfoPageList = contractinfoMapper.getContractinfoPageList(page, projectinfo);
List<HuzhouProjectinfoOV> convertedList = new ArrayList<>();
for (HuzhouProjectinfo info : projectInfoPageList.getRecords()) {
HuzhouProjectinfoOV projectinfoOV=new HuzhouProjectinfoOV();
BeanUtils.copyProperties(info,projectinfoOV);
String projectinfoId = projectinfoOV.getId();
LambdaQueryWrapper<HuzhouSubProjectinfo> subProjectinfoqueryWrapper = new LambdaQueryWrapper<>();
subProjectinfoqueryWrapper.eq(HuzhouSubProjectinfo::getProjectId,projectinfoId);
subProjectinfoqueryWrapper.ge(HuzhouProjectinfo::getStage,"5");
List<HuzhouSubProjectinfo> huzhouSubProjectinfos = subProjectinfoMapper.selectList(subProjectinfoqueryWrapper);
//是否有子项目
if(huzhouSubProjectinfos.size()>0){
//排除未建合同的子项目
List<HuzhouSubProjectinfo> subProjectinfoList = huzhouSubProjectinfos.stream().filter(item -> {
String id = item.getId();
LambdaQueryWrapper<HuzhouContractinfo> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(HuzhouContractinfo::getStatus, "1");
queryWrapper.eq(HuzhouContractinfo::getProjectId, id);
List<HuzhouContractinfo> list = list(queryWrapper);
if (list.size() > 0) {
return true;
}
return false;
}).collect(Collectors.toList());
if(subProjectinfoList.size()>0){
projectinfoOV.setChildren(subProjectinfoList);
}
projectinfo=CommonUtils.setGetProjectInfoAuth(projectinfo);
Page<HuzhouProjectinfoOV> projectInfoPageList = contractinfoMapper.getContractinfoPageList(page, projectinfo);
List<HuzhouProjectinfoOV> records = projectInfoPageList.getRecords();
records.forEach(item->{
List<HuzhouSubProjectinfo> children = item.getChildren();
if(children.size()==0){
item.setChildren(null);
}
convertedList.add(projectinfoOV);
}
Page<HuzhouProjectinfoOV> newPage = new Page<>();
newPage.setRecords(convertedList);
newPage.setTotal(projectInfoPageList.getTotal());
newPage.setCurrent(projectInfoPageList.getCurrent());
newPage.setSize(projectInfoPageList.getSize());
return newPage;
});
return projectInfoPageList;
}
@Override

272
huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouFieldchangehistoryServiceImpl.java

@ -5,6 +5,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.easy.admin.auth.model.SysRole;
import com.easy.admin.auth.model.SysUser;
import com.easy.admin.auth.service.SysUserService;
import com.easy.admin.common.core.exception.EasyException;
import com.easy.admin.common.util.CommonUtils;
import com.easy.admin.modules.huzhou.common.HuzhouCommonUtils;
import com.easy.admin.modules.huzhou.dao.*;
import com.easy.admin.modules.huzhou.entity.*;
@ -12,9 +15,14 @@ import com.easy.admin.modules.huzhou.service.IHuzhouFieldchangehistoryService;
import com.easy.admin.modules.huzhou.service.IHuzhouProcessinfoService;
import com.easy.admin.modules.huzhou.service.IHuzhouUploadfileinfoService;
import com.easy.admin.modules.huzhou.service.IWorkflowService;
import com.easy.admin.sys.model.SysDict;
import com.easy.admin.sys.service.SysDictService;
import com.easy.admin.util.ShiroUtil;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;
import org.codehaus.groovy.tools.shell.commands.LoadCommand;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -23,8 +31,10 @@ import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.util.*;
import java.util.stream.Collectors;
@Service
@Transactional
public class HuzhouFieldchangehistoryServiceImpl extends ServiceImpl<HuzhouFieldchangehistoryMapper, HuzhouFieldchangehistory> implements IHuzhouFieldchangehistoryService {
@Autowired
private IHuzhouUploadfileinfoService uploadfileinfoService;
@ -44,66 +54,188 @@ public class HuzhouFieldchangehistoryServiceImpl extends ServiceImpl<HuzhouField
private IHuzhouProcessinfoService processinfoService;
@Autowired
private RuntimeService runtimeService;
@Autowired
private SysUserService userService;
@Autowired
private SysDictService sysDictService;
@Autowired
private TaskService taskService;
@Override
@Transactional
public void submitChangeFieldManage(MultipartFile[] multipartFiles, String projectid, String fieldValue, String newValue) throws IOException {
public void submitChangeFieldManage(MultipartFile[] multipartFiles, String projectid, String fieldValue, HuzhouProjectinfo newProjectinfo) throws Exception {
String id = UUID.randomUUID().toString().replace("-","");
String groupid = UUID.randomUUID().toString().replace("-","");
String newValue = "";
//查询当前字段是否在流程中
LambdaQueryWrapper<HuzhouFieldchangehistory> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(HuzhouFieldchangehistory::getFieldValue,fieldValue);
queryWrapper.eq(HuzhouFieldchangehistory::getStatus,"1");
List<HuzhouFieldchangehistory> fieldchangehistoryList = fieldchangehistoryMapper.selectList(queryWrapper);
if(fieldchangehistoryList!=null&&fieldchangehistoryList.size()>0){
throw new EasyException("当前字段在流程中无法修改");
}
if(multipartFiles!=null){
uploadfileinfoService.saveFileAndFileInfo(multipartFiles, id, "3");
uploadfileinfoService.saveFileAndFileInfo(multipartFiles, groupid, "3");
}
//获取旧值
LambdaQueryWrapper<HuzhouFieldchangehistory> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(HuzhouFieldchangehistory::getFieldValue,fieldValue);
queryWrapper.eq(HuzhouFieldchangehistory::getProjectid,projectid);
queryWrapper.orderByAsc(BaseEntity::getCreateDate);
List<HuzhouFieldchangehistory> list = list(queryWrapper);
String oldvalue ="";
if(list.size()>0){
oldvalue = list.get(0).getNewvalue();
}else {
HuzhouProjectinfo huzhouProjectinfo = new HuzhouProjectinfo();
HuzhouProjectinfo huzhouProjectinfo = new HuzhouProjectinfo();
HuzhouProjectinfo projectinfo = projectinfoMapper.selectById(projectid);
if(projectinfo==null){
HuzhouProjectinfo projectinfo = projectinfoMapper.selectById(projectid);
//projectinfo是null说明是子项目
if(projectinfo==null){
HuzhouSubProjectinfo huzhouSubProjectinfo = subProjectinfoMapper.selectById(projectid);
BeanUtils.copyProperties(huzhouSubProjectinfo,huzhouProjectinfo);
projectinfo = huzhouProjectinfo;
HuzhouSubProjectinfo huzhouSubProjectinfo = subProjectinfoMapper.selectById(projectid);
BeanUtils.copyProperties(huzhouSubProjectinfo,huzhouProjectinfo);
projectinfo = huzhouProjectinfo;
}
//如果是修改金额
if("Money".equals(fieldValue)){
//获取字段配置信息
ArrayList<HuzhouFieldchangehistory> arrayList = new ArrayList<>();
LambdaQueryWrapper<HuzhouChangefieldmanage> queryWrapper1 = new LambdaQueryWrapper<>();
queryWrapper1.eq(HuzhouChangefieldmanage::getFieldValue,fieldValue);
HuzhouChangefieldmanage huzhouChangefieldmanage = changefieldmanageMapper.selectOne(queryWrapper1);
String isapproval = huzhouChangefieldmanage.getIsapproval();//是否审批标志
List<String> oldstrings = HuzhouCommonUtils.extractObjectAttributes(projectinfo);
for (String s:oldstrings) {
if(s.contains(fieldValue)){
//获取旧值
oldvalue = s.split("=")[1];
String valueName = s.split("=")[0];
List<String> newstrings = HuzhouCommonUtils.extractObjectAttributes(newProjectinfo);
for (String s1:newstrings) {
if(s1.contains(valueName)){
//在获取新值
newValue = s1.split("=")[1];
Double aDouble = Double.valueOf(oldvalue);
Double aDouble1 = Double.valueOf(newValue);
// //如果两个金额一样不做记录
// if(aDouble1.compareTo(aDouble)==0){
// break;
// }
//保存修改记录
HuzhouFieldchangehistory huzhouFieldchangehistory = new HuzhouFieldchangehistory();
huzhouFieldchangehistory.setId(null);//系统自动生成
huzhouFieldchangehistory.setNewvalue(newValue);
huzhouFieldchangehistory.setOldvalue(oldvalue);
valueName=valueName.substring(0,1).toLowerCase()+valueName.substring(1);
huzhouFieldchangehistory.setFieldValue(valueName);
huzhouFieldchangehistory.setProjectid(projectid);
huzhouFieldchangehistory.setGroupId(groupid);
if("1".equals(isapproval)){
huzhouFieldchangehistory.setStatus("1");
}else {
huzhouFieldchangehistory.setStatus("2");
}
arrayList.add(huzhouFieldchangehistory);
}
}
}
}
//是审批就发起审批流程
if("1".equals(isapproval)){
saveBatch(arrayList);
String superLeader = projectinfo.getSuperLeader();
WorkFlow workFlow = workflowService.createFlow("fieldChange",groupid);
Task task = workFlow.getTask();
String taskId = task.getId();
String processInstanceId = workFlow.getProcessInstanceId();
//获取上级指导室中文名称
SysDict dict = sysDictService.getDictByCode("superLeader", superLeader);
String dictName = dict.getName();
//上级指导室中文名称查询角色有哪些人
List<HashMap<String, String>> userDictByRoles = userService.getUserDictByRoles(dictName);
ArrayList<String> strings = new ArrayList<>();
if(userDictByRoles==null||userDictByRoles.size()==0){
String error = "任务牵头处室"+dictName+"负责人未找到";
throw new EasyException(error);
}
for (HashMap<String, String> map:userDictByRoles
) {
String userid = map.get("value");
strings.add(userid);
}
Map<String, Object> variables = new HashMap<>();
variables.put("taskLeadingDepartment",strings);
runtimeService.setVariable(processInstanceId, "taskLeadingDepartment", strings);//设置第三个人变量信息
taskService.complete(taskId, variables);
}else {
saveBatch(arrayList);
projectinfoMapper.updateById(newProjectinfo);
}
List<String> strings = HuzhouCommonUtils.extractObjectAttributes(projectinfo);
for (String s:strings) {
}else{
List<String> oldstrings = HuzhouCommonUtils.extractObjectAttributes(projectinfo);
for (String s:oldstrings) {
if(s.contains(fieldValue.substring(0,1).toUpperCase()+fieldValue.substring(1))){
oldvalue = s.split("=")[1];
}
}
}
HuzhouFieldchangehistory huzhouFieldchangehistory = new HuzhouFieldchangehistory();
huzhouFieldchangehistory.setId(id);
huzhouFieldchangehistory.setNewvalue(newValue);
huzhouFieldchangehistory.setOldvalue(oldvalue);
huzhouFieldchangehistory.setFieldValue(fieldValue);
huzhouFieldchangehistory.setProjectid(projectid);
//流程
//查询是否发起流程
LambdaQueryWrapper<HuzhouChangefieldmanage> queryWrapper1 = new LambdaQueryWrapper<>();
queryWrapper1.eq(HuzhouChangefieldmanage::getFieldValue,fieldValue);
HuzhouChangefieldmanage huzhouChangefieldmanage = changefieldmanageMapper.selectOne(queryWrapper1);
String isapproval = huzhouChangefieldmanage.getIsapproval();
if("1".equals(isapproval)){
huzhouFieldchangehistory.setStatus("1");
save(huzhouFieldchangehistory);
WorkFlow workFlow = workflowService.createFlow("fieldChange",huzhouFieldchangehistory.getId());
}else {
huzhouFieldchangehistory.setStatus("2");
save(huzhouFieldchangehistory);
List<String> newstrings = HuzhouCommonUtils.extractObjectAttributes(newProjectinfo);
for (String s:newstrings) {
if(s.contains(fieldValue.substring(0,1).toUpperCase()+fieldValue.substring(1))){
newValue = s.split("=")[1];
}
}
//保存修改记录
HuzhouFieldchangehistory huzhouFieldchangehistory = new HuzhouFieldchangehistory();
huzhouFieldchangehistory.setId(id);
huzhouFieldchangehistory.setNewvalue(newValue);
huzhouFieldchangehistory.setOldvalue(oldvalue);
huzhouFieldchangehistory.setFieldValue(fieldValue);
huzhouFieldchangehistory.setProjectid(projectid);
huzhouFieldchangehistory.setGroupId(groupid);
//获取字段配置信息
LambdaQueryWrapper<HuzhouChangefieldmanage> queryWrapper1 = new LambdaQueryWrapper<>();
queryWrapper1.eq(HuzhouChangefieldmanage::getFieldValue,fieldValue);
HuzhouChangefieldmanage huzhouChangefieldmanage = changefieldmanageMapper.selectOne(queryWrapper1);
String isapproval = huzhouChangefieldmanage.getIsapproval();
//是审批就发起审批流程
if("1".equals(isapproval)){
huzhouFieldchangehistory.setStatus("1");
save(huzhouFieldchangehistory);
String superLeader = projectinfo.getSuperLeader();
WorkFlow workFlow = workflowService.createFlow("fieldChange",groupid);
Task task = workFlow.getTask();
String taskId = task.getId();
String processInstanceId = workFlow.getProcessInstanceId();
//获取上级指导室中文名称
SysDict dict = sysDictService.getDictByCode("superLeader", superLeader);
String dictName = dict.getName();
//上级指导室中文名称查询角色有哪些人
List<HashMap<String, String>> userDictByRoles = userService.getUserDictByRoles(dictName);
ArrayList<String> strings = new ArrayList<>();
if(userDictByRoles==null||userDictByRoles.size()==0){
String error = "任务牵头处室"+dictName+"负责人未找到";
throw new EasyException(error);
}
for (HashMap<String, String> map:userDictByRoles
) {
String userid = map.get("value");
strings.add(userid);
}
Map<String, Object> variables = new HashMap<>();
variables.put("taskLeadingDepartment",strings);
runtimeService.setVariable(processInstanceId, "taskLeadingDepartment", strings);//设置第三个人变量信息
taskService.complete(taskId, variables);
}else {
huzhouFieldchangehistory.setStatus("2");
save(huzhouFieldchangehistory);
//修改项目信息变成新值
if("projectContacts".equals(fieldValue)){
//newValue 是sysUser的id
SysUser sysUserByUserName = userService.getById(newValue);
newProjectinfo.setPhone(sysUserByUserName.getPhoneNumber());
}
projectinfoMapper.updateById(newProjectinfo);
}
}
}
@Override
public List<HuzhouUploadfileinfo> getFieldchangeFileinfoList(String fieldChangeid) {
public List<HuzhouUploadfileinfo> getFieldchangeFileinfoList(String fieldChangeGroupid) {
LambdaQueryWrapper<HuzhouUploadfileinfo> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(HuzhouUploadfileinfo::getProjectid,fieldChangeid);
queryWrapper.eq(HuzhouUploadfileinfo::getProjectid,fieldChangeGroupid);
List<HuzhouUploadfileinfo> batchIds = uploadfileinfoMapper.selectList(queryWrapper);
if(batchIds.size()>0){
return batchIds;
@ -112,21 +244,43 @@ public class HuzhouFieldchangehistoryServiceImpl extends ServiceImpl<HuzhouField
}
@Override
public void approvalFieldchange(MultipartFile[] file, String taskId, String flag, String fieldChangeid, String comment, String isEdit, String newvalue) throws IOException {
public void approvalFieldchange(MultipartFile[] file, String taskId, String flag, String fieldChangeGroupid, String comment, String isEdit, HuzhouProjectinfo newProjectinfo) throws Exception {
WorkFlow workFlow = workflowService.approveProjectInfo(taskId, flag, comment);
HuzhouFieldchangehistory byId = getById(fieldChangeid);
List<HuzhouFieldchangehistory> list = getFieldchangeByGroupid(fieldChangeGroupid);
if("1".equals(isEdit)&&"1".equals(flag)){
if(file!=null&&"1".equals(flag)){
uploadfileinfoService.modifyUploadFile(file,fieldChangeid,"3");
uploadfileinfoService.modifyUploadFile(file,fieldChangeGroupid,"3");
}
for (HuzhouFieldchangehistory oldchange:list
) {
String fieldValue = oldchange.getFieldValue();
List<String> strings = HuzhouCommonUtils.extractObjectAttributes(newProjectinfo);
for (String s:strings) {
if(s.contains(fieldValue.substring(0,1).toUpperCase()+fieldValue.substring(1))){
String newValue = s.split("=")[1];
oldchange.setNewvalue(newValue);
updateById(oldchange);
}
}
}
byId.setNewvalue(newvalue);
updateById(byId);
}
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(workFlow.getProcessInstanceId()).singleResult();
if(processInstance==null&&"1".equals(flag)){
processinfoService.modifyStatusByProjectId(fieldChangeid,"2","supervisionFile");
byId.setStatus("2");
updateById(byId);
processinfoService.modifyStatusByProjectId(fieldChangeGroupid,"2","fieldChange");
for (HuzhouFieldchangehistory change:list
) {
change.setStatus("2");
updateById(change);
String fieldValue = change.getFieldValue();
String projectid = change.getProjectid();
if("projectContacts".equals(fieldValue)){
SysUser sysUserByUserName = userService.getSysUserByUserName(fieldValue);
newProjectinfo.setPhone(sysUserByUserName.getPhoneNumber());
}
newProjectinfo.setId(projectid);
projectinfoMapper.updateById(newProjectinfo);
}
}
}
@ -137,8 +291,13 @@ public class HuzhouFieldchangehistoryServiceImpl extends ServiceImpl<HuzhouField
queryWrapper.eq(HuzhouFieldchangehistory::getStatus,"2");
queryWrapper.orderByDesc(BaseEntity::getCreateDate);
List<HuzhouFieldchangehistory> list = list(queryWrapper);
return list;
// 去除 GroupId 字段相同的对象
List<HuzhouFieldchangehistory> collect = list.stream()
.collect(Collectors.toMap(HuzhouFieldchangehistory::getGroupId, p -> p, (p1, p2) -> p1))
.values()
.stream()
.collect(Collectors.toList());
return collect;
}
@Override
@ -153,6 +312,15 @@ public class HuzhouFieldchangehistoryServiceImpl extends ServiceImpl<HuzhouField
return fieldchangehistoryDetailPageList;
}
@Override
public List<HuzhouFieldchangehistory> getFieldchangeByGroupid(String fieldChangeGroupid) {
LambdaQueryWrapper<HuzhouFieldchangehistory> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(HuzhouFieldchangehistory::getGroupId,fieldChangeGroupid);
queryWrapper.orderByDesc(BaseEntity::getCreateDate);
List<HuzhouFieldchangehistory> list = list(queryWrapper);
return list;
}
@Override
public Page<Map> getFieldchangehistoryPageList(Page page, HuzhouProjectinfo projectinfo) {
SysUser currentUser = ShiroUtil.getCurrentUser();

89
huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouPlaninfoServiceImpl.java

@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.easy.admin.auth.service.SysUserService;
import com.easy.admin.common.core.common.select.Select;
import com.easy.admin.common.core.exception.EasyException;
import com.easy.admin.modules.huzhou.dao.HuzhouPlaninfoHistoryMapper;
import com.easy.admin.modules.huzhou.dao.HuzhouPlaninfoMapper;
@ -14,7 +16,10 @@ import com.easy.admin.modules.huzhou.dao.HuzhouProcessinfoMapper;
import com.easy.admin.modules.huzhou.entity.*;
import com.easy.admin.modules.huzhou.service.*;
import com.easy.admin.modules.huzhou.vo.HuzhouProjectinfoOV;
import com.easy.admin.sys.model.SysDict;
import com.easy.admin.sys.service.SysDictService;
import com.google.common.collect.Lists;
import groovyjarjarantlr4.v4.parse.v4ParserException;
import org.activiti.engine.HistoryService;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService;
@ -80,6 +85,12 @@ public class HuzhouPlaninfoServiceImpl extends ServiceImpl<HuzhouPlaninfoMapper,
private IHuzhouPlaninfoHistoryService planinfoHistoryService;
@Autowired
private IHuzhouProcessinfoService processinfoService;
@Autowired
private IHuzhouSubProjectinfoService subProjectinfoService;
@Autowired
private SysUserService sysUserService;
@Autowired
private SysDictService sysDictService;
@Override
public HashMap<String,Object> getPlanInfoListFromFile(MultipartFile multipartFile,String projectid) throws Exception {
HashMap<String, Object> resHashMap = new HashMap<>();
@ -251,20 +262,19 @@ public class HuzhouPlaninfoServiceImpl extends ServiceImpl<HuzhouPlaninfoMapper,
@Override
public ArrayList<HuzhouPlaninfoOV> getPlanInfoMainTimelineList(String projectid) {
//查询父计划
LambdaQueryWrapper<HuzhouPlaninfo> planinfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
planinfoLambdaQueryWrapper.eq(HuzhouPlaninfo::getProjectId,projectid);
planinfoLambdaQueryWrapper.eq(HuzhouPlaninfo::getSuperior,"0");
planinfoLambdaQueryWrapper.orderByAsc(HuzhouPlaninfo::getTaskLevel);
List<HuzhouPlaninfo> huzhouPlaninfoList = this.list(planinfoLambdaQueryWrapper);
ArrayList<HuzhouPlaninfoOV> mapArrayList = new ArrayList<>();
long totalCount =0;
long totalFinishCount =0;
long totalCount =0; //计划总数量
long totalFinishCount =0;//已完成的数量
for (HuzhouPlaninfo info:huzhouPlaninfoList) {
// String json = JSON.toJSONString(info);
// HashMap<String, Object> map = JSON.parseObject(json, HashMap.class);
HuzhouPlaninfoOV huzhouPlaninfoOV = new HuzhouPlaninfoOV();
BeanUtils.copyProperties(info,huzhouPlaninfoOV);
//在流程这的是否可编辑
//当前计划如果在流程中,判断是否可编辑
HuzhouPlaninfoOV setchilddata = setchild(huzhouPlaninfoOV);
if("1".equals(setchilddata.getIsfinish())){
String isEdit = getPlanFileApprovalInfoByPlaninfoId(setchilddata.getId()).get("isEdit");
@ -273,13 +283,17 @@ public class HuzhouPlaninfoServiceImpl extends ServiceImpl<HuzhouPlaninfoMapper,
String taskLevel = info.getTaskLevel();
//查询任务整体进度情况
LambdaQueryWrapper<HuzhouPlaninfo> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.likeRight(HuzhouPlaninfo::getTaskLevel,taskLevel);
queryWrapper.likeRight(HuzhouPlaninfo::getTaskLevel,taskLevel+".");
queryWrapper.eq(HuzhouPlaninfo::getProjectId,projectid);
//所有:所有下级还要加他自己
long count = this.count(queryWrapper);
long count = this.count(queryWrapper)+1;
//查询完成的数量
queryWrapper.eq(HuzhouPlaninfo::getIsfinish,"2");
long finishCount = this.count(queryWrapper);
if("2".equals(info.getIsfinish())){
//如果自己也完成了 则加1
finishCount++;
}
totalCount+=count;
totalFinishCount+=finishCount;
BigDecimal a = new BigDecimal(count);
@ -518,6 +532,11 @@ public class HuzhouPlaninfoServiceImpl extends ServiceImpl<HuzhouPlaninfoMapper,
return mapPage.setRecords(mapList);
}
/**
* 查询计划是否在流程中并且处于发起人位置 满足条件即当前计划可编辑
* @param planinfoid 计划阶段id
* @return
*/
@Override
public Map<String, String> getPlanFileApprovalInfoByPlaninfoId(String planinfoid) {
Map<String, String> hashMap =new HashMap<>();
@ -583,6 +602,41 @@ public class HuzhouPlaninfoServiceImpl extends ServiceImpl<HuzhouPlaninfoMapper,
//批量保存
saveBatch(huzhouPlaninfoArrayList);
WorkFlow workFlow = workflowService.createFlow("createPlaninfo",projectid);
Task task = workFlow.getTask();
String processInstanceId = workFlow.getProcessInstanceId();
String taskId = task.getId();
//发起人节点处理
taskService.setVariableLocal(taskId,"approvalStatue","1");//添加审批状态 通过
String comment = "同意";
taskService.addComment(taskId,processInstanceId,comment);//添加审批意见
Map<String, Object> variables = new HashMap<>();
HuzhouProjectinfo huzhouProjectinfo = projectinfoService.getById(projectid);
String superLeader = "";
//如果项目信息为空说明是子项目
if(huzhouProjectinfo==null){
HuzhouSubProjectinfo byId = subProjectinfoService.getById(projectid);
superLeader = byId.getSuperLeader();
}else {
superLeader=huzhouProjectinfo.getSuperLeader();
}
//获取上级指导室中文名称
SysDict dict = sysDictService.getDictByCode("superLeader", superLeader);
String dictName = dict.getName();
//上级指导室中文名称查询角色有哪些人
List<HashMap<String, String>> userDictByRoles = sysUserService.getUserDictByRoles(dictName);
ArrayList<String> strings = new ArrayList<>();
if(userDictByRoles==null||userDictByRoles.size()==0){
String error = "任务牵头处室"+dictName+"负责人未找到";
throw new EasyException(error);
}
for (HashMap<String, String> map:userDictByRoles
) {
String userid = map.get("value");
strings.add(userid);
}
variables.put("taskLeadingDepartment",strings);
runtimeService.setVariable(processInstanceId, "taskLeadingDepartment", strings);//设置第三个人变量信息
taskService.complete(taskId, variables);
//修改项目的阶段状态
projectinfoService.modifyStageById(projectid,"4");
}
@ -624,7 +678,9 @@ public class HuzhouPlaninfoServiceImpl extends ServiceImpl<HuzhouPlaninfoMapper,
@Override
public void modifyPlaninfo(MultipartFile multipartFile, String projectid) throws Exception {
////解析项目计划文件
HashMap<String, Object> hashMap = getPlanInfoListFromFile(multipartFile, projectid);
//res是true 表示项目计划文件没有问题,如果是false说明文件有问题,需要抛出异常
boolean res = (boolean) hashMap.get("res");
if(!res){
throw new EasyException((String)hashMap.get("msg"));
@ -705,6 +761,25 @@ public class HuzhouPlaninfoServiceImpl extends ServiceImpl<HuzhouPlaninfoMapper,
// planinfoService.downloadPlanInfo(response,projectinfoid);
}
@Override
public List<Select> getTaskNameTypeDict(String projectid) {
List<HuzhouPlaninfo> listByProjectId = getListByProjectId(projectid);
List<Select> selectList = new ArrayList<>();
for (HuzhouPlaninfo planinfo:listByProjectId
) {
Select select = new Select();
select.setLabel(planinfo.getTaskName());
select.setValue(planinfo.getTaskName());
selectList.add(select);
}
return selectList;
}
/**
* 递归处理子阶段数据
* @param planinfoOV
* @return
*/
private HuzhouPlaninfoOV setchild(HuzhouPlaninfoOV planinfoOV){
//在流程这的是否可编辑
if("1".equals(planinfoOV.getIsfinish())){

244
huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouPlaninfofileServiceImpl.java

@ -1,17 +1,55 @@
package com.easy.admin.modules.huzhou.service.impl;
import com.alibaba.excel.util.StringUtils;
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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.easy.admin.auth.service.SysUserService;
import com.easy.admin.common.api.vo.Result;
import com.easy.admin.common.core.exception.EasyException;
import com.easy.admin.modules.huzhou.dao.HuzhouContractinfoMapper;
import com.easy.admin.modules.huzhou.dao.HuzhouPlaninfofileMapper;
import com.easy.admin.modules.huzhou.entity.BaseEntity;
import com.easy.admin.modules.huzhou.entity.HuzhouPlaninfofile;
import com.easy.admin.modules.huzhou.service.IHuzhouPlaninfofileService;
import com.easy.admin.modules.huzhou.entity.*;
import com.easy.admin.modules.huzhou.service.*;
import com.easy.admin.sys.model.SysDict;
import com.easy.admin.sys.service.SysDictService;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.util.*;
@Service
@Transactional
public class HuzhouPlaninfofileServiceImpl extends ServiceImpl<HuzhouPlaninfofileMapper, HuzhouPlaninfofile> implements IHuzhouPlaninfofileService {
@Autowired
private IHuzhouPlaninfoService planinfoService;
@Autowired
private IWorkflowService workflowService;
@Autowired
private IHuzhouProcessinfoService processinfoService;
@Autowired
private IHuzhouProjectinfoService projectinfoService;
@Autowired
private RuntimeService runtimeService;
@Autowired
private IHuzhouSubProjectinfoService subProjectinfoService;
@Autowired
private SysUserService userService;
@Autowired
private SysDictService sysDictService;
@Autowired
private TaskService taskService;
@Autowired
private HuzhouContractinfoMapper contractinfoMapper;
private String[] names ={"可行性研究报告审批","初验阶段","终验阶段"};
@Override
public Page<HuzhouPlaninfofile> getplanFilePageList(HuzhouPlaninfofile planinfofile,Integer pageNo, Integer pageSize) {
@ -31,4 +69,204 @@ public class HuzhouPlaninfofileServiceImpl extends ServiceImpl<HuzhouPlaninfofil
updateWrapper.set(HuzhouPlaninfofile::getStatus,status);
this.update(updateWrapper);
}
@Override
public void submitPlanUploadFile(MultipartFile[] files, String planinfoid) throws IOException {
//检查是否可提交
HuzhouPlaninfo planinfo = planinfoService.getById(planinfoid);
String taskLevel = planinfo.getTaskLevel();
List<HuzhouPlaninfo> childPlanList = planinfoService.queryChildPlan(planinfo.getProjectId(), planinfo.getTaskLevel(),"0,1");
if(childPlanList.size()>0){
throw new EasyException("存在未完成(审批中)的子项。当前阶段不允许提交文件");
}
planinfoService.saveOrModifyPlanUploadFile(files,planinfoid,"1","1");
String taskName = planinfo.getTaskName();
String projectId = planinfoService.getById(planinfoid).getProjectId();
HuzhouProjectinfo huzhouProjectinfo = projectinfoService.getById(projectId);
String superLeader = "";
String adminDivision="";
//如果项目信息为空说明是子项目
if(huzhouProjectinfo==null){
HuzhouSubProjectinfo byId = subProjectinfoService.getById(projectId);
superLeader = byId.getSuperLeader();
adminDivision = byId.getAdminDivision();
}else {
superLeader=huzhouProjectinfo.getSuperLeader();
adminDivision = huzhouProjectinfo.getAdminDivision();
}
//获取上级指导室中文名称
SysDict dict = sysDictService.getDictByCode("superLeader", superLeader);
String dictName = dict.getName();
//上级指导室中文名称查询角色有哪些人
List<HashMap<String, String>> userDictByRoles = userService.getUserDictByRoles(dictName);
ArrayList<String> strings = new ArrayList<>();
if(userDictByRoles==null||userDictByRoles.size()==0){
String error = "任务牵头处室"+dictName+"负责人未找到";
throw new EasyException(error);
}
for (HashMap<String, String> map:userDictByRoles
) {
String userid = map.get("value");
strings.add(userid);
}
if ("可研报告编制".equals(taskName)) {
WorkFlow workFlow = workflowService.createFlow("feasibilityReportPreparation",planinfoid);
Task task = workFlow.getTask();
String taskId = task.getId();
String processInstanceId = workFlow.getProcessInstanceId();
Map<String, Object> variables = new HashMap<>();
variables.put("taskLeadingDepartment",strings);
runtimeService.setVariable(processInstanceId, "taskLeadingDepartment", strings);//设置第四个人变量信息
variables.clear();
//上级指导室中文名称查询角色有哪些人
userDictByRoles = userService.getUserDictByRoles(adminDivision);
ArrayList<String> strings2 = new ArrayList<>();
if(userDictByRoles==null||userDictByRoles.size()==0){
String error = "信息化保障团队"+adminDivision+"负责人未找到";
throw new EasyException(error);
}
for (HashMap<String, String> map:userDictByRoles
) {
String userid = map.get("value");
strings2.add(userid);
}
variables.put("informationSecurityTeam",strings2);//设置第二个人
//发起人节点处理
taskService.setVariableLocal(taskId,"approvalStatue","1");//添加审批状态 通过
String comment = "同意";
taskService.addComment(taskId,processInstanceId,comment);//添加审批意见
taskService.complete(taskId, variables);
return ;
}
//查询当前阶段是否与合同支付相关
boolean existsContractinfo = false;
LambdaQueryWrapper<HuzhouContractinfo> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(HuzhouContractinfo::getTaskName,taskName);
queryWrapper.eq(HuzhouContractinfo::getProjectId,projectId);
queryWrapper.eq(HuzhouContractinfo::getStatus,"1");
List<HuzhouContractinfo> contractinfoList = contractinfoMapper.selectList(queryWrapper);
if(contractinfoList!=null&&contractinfoList.size()>0){
existsContractinfo=true;
}
if(Arrays.asList(names).contains(taskName)||existsContractinfo){
WorkFlow workFlow = workflowService.createFlow("createPlaninfoFile",planinfoid);
Task task = workFlow.getTask();
String taskId = task.getId();
String processInstanceId = workFlow.getProcessInstanceId();
Map<String, Object> variables = new HashMap<>();
variables.put("taskLeadingDepartment",strings);
runtimeService.setVariable(processInstanceId, "taskLeadingDepartment", strings);//设置第四个人变量信息
//发起人节点处理
taskService.setVariableLocal(taskId,"approvalStatue","1");//添加审批状态 通过
String comment = "同意";
taskService.addComment(taskId,processInstanceId,comment);//添加审批意见
taskService.complete(taskId, variables);
return ;
}
if("联合技术审查".equals(taskName)){
WorkFlow workFlow = workflowService.createFlow("jointTechnicalReview",planinfoid);
Task task = workFlow.getTask();
String taskId = task.getId();
String processInstanceId = workFlow.getProcessInstanceId();
//发起人节点处理
taskService.setVariableLocal(taskId,"approvalStatue","1");//添加审批状态 通过
String comment = "同意";
taskService.addComment(taskId,processInstanceId,comment);//添加审批意见
taskService.complete(taskId);
return ;
}
if("集中核验".equals(taskName)){
WorkFlow workFlow = workflowService.createFlow("centralizedCheck",planinfoid);
Task task = workFlow.getTask();
String taskId = task.getId();
String processInstanceId = workFlow.getProcessInstanceId();
//发起人节点处理
taskService.setVariableLocal(taskId,"approvalStatue","1");//添加审批状态 通过
String comment = "同意";
taskService.addComment(taskId,processInstanceId,comment);//添加审批意见
taskService.complete(taskId);
return ;
}
HuzhouPlaninfo huzhouPlaninfo = new HuzhouPlaninfo();
huzhouPlaninfo.setId(planinfoid);
huzhouPlaninfo.setIsfinish("2");
planinfoService.updateById(huzhouPlaninfo);
/**
* 检查所有阶段的状态判断是否完成
*/
HuzhouPlaninfo planinfoNow = planinfoService.getById(planinfoid);
String pid = planinfo.getProjectId();
HuzhouPlaninfo nodePlan = planinfoService.getNodePlan(pid, planinfoNow.getSuperior());
//如果文件为空,检查子项是否全部完成,若以完成则为完成
if(null!=nodePlan&& StringUtils.isBlank(nodePlan.getTaskFile())){
List<HuzhouPlaninfo> unfinishChildPlan = planinfoService.queryChildPlan(pid, nodePlan.getTaskLevel(), "0,1");
if(unfinishChildPlan.size()==0){
HuzhouPlaninfo nodePlaninfo = new HuzhouPlaninfo();
nodePlaninfo.setIsfinish("2");
nodePlaninfo.setActualEndTime(new Date());
nodePlaninfo.setId(nodePlan.getId());
planinfoService.updateById(nodePlaninfo);
}
}
List<HuzhouPlaninfo> list = planinfoService.getUnFinishListByProjectId(pid);
if(list.size()==0){
projectinfoService.modifyStageById(pid,"6");
}
}
@Override
public void approvePlanFile(MultipartFile[] files, String taskId, String flag, String planinfoid, String comment, MultipartFile[] adviceFiles) throws IOException {
WorkFlow workFlow = workflowService.approveProjectInfo(taskId, flag, comment);
LambdaQueryWrapper<HuzhouProcessinfo> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(HuzhouProcessinfo::getProjectid,planinfoid);
queryWrapper.eq(HuzhouProcessinfo::getProcessstatus,"1");
List<HuzhouProcessinfo> processinfos = processinfoService.list(queryWrapper);
String processName = processinfos.get(0).getProcessName();
if(files!=null&&"1".equals(flag)){
planinfoService.saveOrModifyPlanUploadFile(files,planinfoid,"2","1");
}
//意见文件
if(adviceFiles!=null){
planinfoService.saveOrModifyPlanUploadFile(adviceFiles,planinfoid,"2","2");
}
HuzhouPlaninfo huzhouPlaninfo = new HuzhouPlaninfo();
huzhouPlaninfo.setId(planinfoid);
if("3".equals(flag)){
huzhouPlaninfo.setIsfinish("0");
planinfoService.updateById(huzhouPlaninfo);
modifyStatusByPlaninfoid("0",planinfoid);
processinfoService.modifyStatusByProjectId(planinfoid,"0",processName);
return ;
}
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(workFlow.getProcessInstanceId()).singleResult();
if(processInstance==null&&"1".equals(flag)){
huzhouPlaninfo.setIsfinish("2");
planinfoService.updateById(huzhouPlaninfo);
processinfoService.modifyStatusByProjectId(planinfoid,"2",processName);
HuzhouPlaninfo planinfo = planinfoService.getById(planinfoid);
String projectId = planinfo.getProjectId();
HuzhouPlaninfo nodePlan = planinfoService.getNodePlan(projectId, planinfo.getSuperior());
//如果文件为空,检查子项是否全部完成,若以完成则为完成
if(null!=nodePlan&&StringUtils.isBlank(nodePlan.getTaskFile())){
List<HuzhouPlaninfo> unfinishChildPlan = planinfoService.queryChildPlan(projectId, nodePlan.getTaskLevel(), "0,1");
if(unfinishChildPlan.size()==0){
HuzhouPlaninfo nodePlaninfo = new HuzhouPlaninfo();
nodePlaninfo.setIsfinish("2");
nodePlaninfo.setActualEndTime(new Date());
nodePlaninfo.setId(nodePlan.getId());
planinfoService.updateById(nodePlaninfo);
}
}
List<HuzhouPlaninfo> list = planinfoService.getUnFinishListByProjectId(projectId);
if(list.size()==0){
projectinfoService.modifyStageById(projectId,"6");
}
}
}
}

61
huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouProjectinfoServiceImpl.java

@ -6,8 +6,13 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.easy.admin.activiti.constant.ActivitiVariableConst;
import com.easy.admin.auth.model.SysRole;
import com.easy.admin.auth.model.SysUser;
import com.easy.admin.auth.model.SysUserRole;
import com.easy.admin.auth.service.SysDeptService;
import com.easy.admin.auth.service.SysRoleService;
import com.easy.admin.auth.service.SysUserRoleService;
import com.easy.admin.auth.service.SysUserService;
import com.easy.admin.common.core.common.select.Select;
import com.easy.admin.common.core.exception.EasyException;
@ -22,10 +27,15 @@ import com.easy.admin.modules.huzhou.entity.*;
import com.easy.admin.modules.huzhou.service.*;
import com.easy.admin.modules.huzhou.vo.HuzhouProjectinfoOV;
import com.easy.admin.modules.huzhou.vo.ProjectApproveOV;
import com.easy.admin.sys.model.SysDict;
import com.easy.admin.sys.service.SysDictService;
import com.easy.admin.util.ShiroUtil;
import org.activiti.engine.IdentityService;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService;
import org.activiti.engine.impl.identity.Authentication;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;
import org.apache.commons.lang3.StringUtils;
import com.easy.admin.common.api.vo.Result;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
@ -50,7 +60,7 @@ import java.util.*;
import java.util.stream.Collectors;
@Service
@Transactional
public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoMapper, HuzhouProjectinfo>
implements IHuzhouProjectinfoService {
@Autowired
@ -59,6 +69,11 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
private SysUserService sysUserService;
@Autowired
private SysDictService sysDictService;
@Autowired
private SysUserRoleService userRoleService;
@Autowired
private SysRoleService roleService;
@Autowired
private HuzhouSubProjectinfoMapper subProjectinfoMapper;
@Autowired
@ -68,20 +83,55 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
@Autowired
private RuntimeService runtimeService;
@Autowired
private TaskService taskService;
@Autowired
private IHuzhouProcessinfoService processinfoService;
@Autowired
private HuzhouProjectinfoHistoryMapper historyMapper;
@Override
@Transactional
public void submitProject(HuzhouProjectinfo info) {
WorkFlow workFlow = workflowService.createFlow("creatProjectinfo",info.getId());//创建流程
Task task = workFlow.getTask();
String processInstanceId = workFlow.getProcessInstanceId();
String taskId = task.getId();
Map<String, Object> variables = new HashMap<>();
//获取第二节点审批人信息
String superLeader = info.getSuperLeader();//上级指导室
//获取上级指导室中文名称
SysDict dict = sysDictService.getDictByCode("superLeader", superLeader);
String dictName = dict.getName();
//上级指导室中文名称查询角色有哪些人
List<HashMap<String, String>> userDictByRoles = sysUserService.getUserDictByRoles(dictName);
ArrayList<String> strings = new ArrayList<>();
if(userDictByRoles==null||userDictByRoles.size()==0){
String error = "任务牵头处室"+dictName+"负责人未找到";
throw new EasyException(error);
}
for (HashMap<String, String> map:userDictByRoles
) {
String userid = map.get("value");
strings.add(userid);
}
variables.put("taskLeadingDepartment",strings);
//发起人节点处理
taskService.setVariableLocal(taskId,"approvalStatue","1");//添加审批状态 通过
String comment = "同意";
taskService.addComment(taskId,processInstanceId,comment);//添加审批意见
taskService.complete(taskId, variables);
//保存项目信息
info.setStage("1");//最开始的状态。项目入库中
this.save(info);//保存项目信息
if(info.getId()!=null){
//批量入库后,有项目负责人重新发起入库申请
userprojectService.removeByProjectId(info.getId(),"0");
this.updateById(info);
}else{
this.save(info);//保存项目信息
}
userprojectService.saveFromProject(info,"0");//保存项目联系人信息,0表示当前醒目是主项目
WorkFlow workFlow = workflowService.createFlow("creatProjectinfo",info.getId());//创建流程
}
@Override
@Transactional
public void batchImportProjects(MultipartFile multipartFile) throws Exception {
//是否有文件
if (multipartFile == null && multipartFile.getSize() == 0) {
@ -205,7 +255,6 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
}
}
@Override
@Transactional
public void approveProjectInfo(ProjectApproveOV projectApproveOV) {
String taskId = projectApproveOV.getTaskId();
HuzhouProjectinfo projectinfo = projectApproveOV.getProjectInfo();

48
huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouSubProjectinfoServiceImpl.java

@ -47,39 +47,41 @@ public class HuzhouSubProjectinfoServiceImpl extends ServiceImpl<HuzhouSubProjec
@Override
public HuzhouSubProjectinfo getRemainingMoneyinfo(HuzhouSubProjectinfo subprojectinfo) {
String projectId = subprojectinfo.getProjectId();
HuzhouProjectinfo byId = projectinfoService.getById(projectId);
HuzhouProjectinfo fatherProject = projectinfoService.getById(projectId);//获取主项目数据
LambdaQueryWrapper<HuzhouSubProjectinfo> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(HuzhouSubProjectinfo::getProjectId,projectId);
queryWrapper.eq(HuzhouSubProjectinfo::getProjectId,projectId);//获取所有已有子项目数据
List<HuzhouSubProjectinfo> list = list(queryWrapper);
if(list!=null&&list.size()>0){
//说明是子项目修改
//有子项目
//说明是子项目修改 总金额-子项目+本子行项目
if(subprojectinfo.getId()!=null){
//计算子项剩余金额额度
HuzhouSubProjectinfo subProjectinfo = getById(subprojectinfo.getId());
subprojectinfo.setCentralMoney(byId.getCentralMoney()+subProjectinfo.getCentralMoney()-list.stream().mapToDouble(HuzhouProjectinfo::getCentralMoney).sum());
subprojectinfo.setCityMoney(byId.getCityMoney()+subProjectinfo.getCityMoney()-list.stream().mapToDouble(HuzhouProjectinfo::getCityMoney).sum());
subprojectinfo.setSelfMoney(byId.getSelfMoney()+subProjectinfo.getSelfMoney()-list.stream().mapToDouble(HuzhouProjectinfo::getSelfMoney).sum());
subprojectinfo.setProvincialMoney(byId.getProvincialMoney()+subProjectinfo.getProvincialMoney()-list.stream().mapToDouble(HuzhouProjectinfo::getProvincialMoney).sum());
subprojectinfo.setCountyMoney(byId.getCountyMoney()+subProjectinfo.getCountyMoney()-list.stream().mapToDouble(HuzhouProjectinfo::getCountyMoney).sum());
subprojectinfo.setTotalMoney(byId.getTotalMoney()+subProjectinfo.getTotalMoney()-list.stream().mapToDouble(HuzhouProjectinfo::getTotalMoney).sum());
subprojectinfo.setPayamount2023Money(byId.getPayamount2023Money()+subProjectinfo.getPayamount2023Money()-list.stream().mapToDouble(HuzhouProjectinfo::getPayamount2023Money).sum());
subprojectinfo.setPayamount2024Money(byId.getPayamount2024Money()+subProjectinfo.getPayamount2024Money()-list.stream().mapToDouble(HuzhouProjectinfo::getPayamount2024Money).sum());
subprojectinfo.setPayamount2025Money(byId.getPayamount2025Money()+subProjectinfo.getPayamount2025Money()-list.stream().mapToDouble(HuzhouProjectinfo::getPayamount2025Money).sum());
subprojectinfo.setCentralMoney(fatherProject.getCentralMoney()-list.stream().mapToDouble(HuzhouProjectinfo::getCentralMoney).sum());
subprojectinfo.setCityMoney(fatherProject.getCityMoney()+subProjectinfo.getCityMoney()-list.stream().mapToDouble(HuzhouProjectinfo::getCityMoney).sum());
subprojectinfo.setSelfMoney(fatherProject.getSelfMoney()+subProjectinfo.getSelfMoney()-list.stream().mapToDouble(HuzhouProjectinfo::getSelfMoney).sum());
subprojectinfo.setProvincialMoney(fatherProject.getProvincialMoney()+subProjectinfo.getProvincialMoney()-list.stream().mapToDouble(HuzhouProjectinfo::getProvincialMoney).sum());
subprojectinfo.setCountyMoney(fatherProject.getCountyMoney()+subProjectinfo.getCountyMoney()-list.stream().mapToDouble(HuzhouProjectinfo::getCountyMoney).sum());
subprojectinfo.setTotalMoney(fatherProject.getTotalMoney()+subProjectinfo.getTotalMoney()-list.stream().mapToDouble(HuzhouProjectinfo::getTotalMoney).sum());
subprojectinfo.setPayamount2023Money(fatherProject.getPayamount2023Money()+subProjectinfo.getPayamount2023Money()-list.stream().mapToDouble(HuzhouProjectinfo::getPayamount2023Money).sum());
subprojectinfo.setPayamount2024Money(fatherProject.getPayamount2024Money()+subProjectinfo.getPayamount2024Money()-list.stream().mapToDouble(HuzhouProjectinfo::getPayamount2024Money).sum());
subprojectinfo.setPayamount2025Money(fatherProject.getPayamount2025Money()+subProjectinfo.getPayamount2025Money()-list.stream().mapToDouble(HuzhouProjectinfo::getPayamount2025Money).sum());
}else{
subprojectinfo.setCentralMoney(byId.getCentralMoney()-list.stream().mapToDouble(HuzhouProjectinfo::getCentralMoney).sum());
subprojectinfo.setCityMoney(byId.getCityMoney()-list.stream().mapToDouble(HuzhouProjectinfo::getCityMoney).sum());
subprojectinfo.setSelfMoney(byId.getSelfMoney()-list.stream().mapToDouble(HuzhouProjectinfo::getSelfMoney).sum());
subprojectinfo.setProvincialMoney(byId.getProvincialMoney()-list.stream().mapToDouble(HuzhouProjectinfo::getProvincialMoney).sum());
subprojectinfo.setCountyMoney(byId.getCountyMoney()-list.stream().mapToDouble(HuzhouProjectinfo::getCountyMoney).sum());
subprojectinfo.setTotalMoney(byId.getTotalMoney()-list.stream().mapToDouble(HuzhouProjectinfo::getTotalMoney).sum());
subprojectinfo.setPayamount2023Money(byId.getPayamount2023Money()-list.stream().mapToDouble(HuzhouProjectinfo::getPayamount2023Money).sum());
subprojectinfo.setPayamount2024Money(byId.getPayamount2024Money()-list.stream().mapToDouble(HuzhouProjectinfo::getPayamount2024Money).sum());
subprojectinfo.setPayamount2025Money(byId.getPayamount2025Money()-list.stream().mapToDouble(HuzhouProjectinfo::getPayamount2025Money).sum());
//子项目有新增
subprojectinfo.setCentralMoney(fatherProject.getCentralMoney()-list.stream().mapToDouble(HuzhouProjectinfo::getCentralMoney).sum());
subprojectinfo.setCityMoney(fatherProject.getCityMoney()-list.stream().mapToDouble(HuzhouProjectinfo::getCityMoney).sum());
subprojectinfo.setSelfMoney(fatherProject.getSelfMoney()-list.stream().mapToDouble(HuzhouProjectinfo::getSelfMoney).sum());
subprojectinfo.setProvincialMoney(fatherProject.getProvincialMoney()-list.stream().mapToDouble(HuzhouProjectinfo::getProvincialMoney).sum());
subprojectinfo.setCountyMoney(fatherProject.getCountyMoney()-list.stream().mapToDouble(HuzhouProjectinfo::getCountyMoney).sum());
subprojectinfo.setTotalMoney(fatherProject.getTotalMoney()-list.stream().mapToDouble(HuzhouProjectinfo::getTotalMoney).sum());
subprojectinfo.setPayamount2023Money(fatherProject.getPayamount2023Money()-list.stream().mapToDouble(HuzhouProjectinfo::getPayamount2023Money).sum());
subprojectinfo.setPayamount2024Money(fatherProject.getPayamount2024Money()-list.stream().mapToDouble(HuzhouProjectinfo::getPayamount2024Money).sum());
subprojectinfo.setPayamount2025Money(fatherProject.getPayamount2025Money()-list.stream().mapToDouble(HuzhouProjectinfo::getPayamount2025Money).sum());
}
}else {
HuzhouSubProjectinfo huzhouSubProjectinfo = new HuzhouSubProjectinfo();
BeanUtils.copyProperties(byId,huzhouSubProjectinfo);
BeanUtils.copyProperties(fatherProject,huzhouSubProjectinfo);
return huzhouSubProjectinfo;
}

6
huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/WorkflowServiceImpl.java

@ -88,13 +88,13 @@ public class WorkflowServiceImpl implements IWorkflowService {
activitiProcessDefinitionVO.setBusinessKey(uuid);
activitiProcessDefinitionVO.setBusinessDetailsPath("/"+processDefinitionKey);
activitiProcessDefinitionVO.setBusinessTitle(processDefinitionKey);
JSONObject entries = activitiProcessDefinitionService.startProcessInstanceHuzhou(activitiProcessDefinitionVO);
String string = JSON.toJSONString(entries);
Map map = JSON.parseObject(string, Map.class);
HashMap<String,Object> map = activitiProcessDefinitionService.startProcessInstanceHuzhou(activitiProcessDefinitionVO);
String processInstanceId = (String) map.get("processInstanceId");
Task task = (Task) map.get("task");
WorkFlow workFlow = new WorkFlow();
workFlow.setBusinessKey(uuid);
workFlow.setProcessInstanceId(processInstanceId);
workFlow.setTask(task);
if(id!=null){
HuzhouProcessinfo huzhouProcessinfo = new HuzhouProcessinfo();
huzhouProcessinfo.setBusinesskey(uuid);

6
huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/HuzhouProjectinfoOV.java

@ -1,13 +1,7 @@
package com.easy.admin.modules.huzhou.vo;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
import com.easy.admin.modules.huzhou.entity.HuzhouProjectinfo;
import com.easy.admin.modules.huzhou.entity.HuzhouSubProjectinfo;
import com.easy.admin.modules.huzhou.handler.HuzhouSubProjectHandler;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Data;

Loading…
Cancel
Save