|
@ -24,6 +24,7 @@ import com.easy.admin.modules.huzhou.service.*; |
|
|
|
|
|
|
|
|
import com.easy.admin.sys.model.SysDict; |
|
|
import com.easy.admin.sys.model.SysDict; |
|
|
import com.easy.admin.sys.service.SysDictService; |
|
|
import com.easy.admin.sys.service.SysDictService; |
|
|
|
|
|
import com.fasterxml.jackson.core.JsonProcessingException; |
|
|
import com.fasterxml.jackson.core.type.TypeReference; |
|
|
import com.fasterxml.jackson.core.type.TypeReference; |
|
|
import com.fasterxml.jackson.databind.ObjectMapper; |
|
|
import com.fasterxml.jackson.databind.ObjectMapper; |
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
import lombok.extern.slf4j.Slf4j; |
|
@ -43,6 +44,8 @@ import org.springframework.web.bind.annotation.RequestParam; |
|
|
import org.springframework.web.multipart.MultipartFile; |
|
|
import org.springframework.web.multipart.MultipartFile; |
|
|
|
|
|
|
|
|
import java.io.IOException; |
|
|
import java.io.IOException; |
|
|
|
|
|
import java.time.LocalDate; |
|
|
|
|
|
import java.time.ZoneId; |
|
|
import java.util.*; |
|
|
import java.util.*; |
|
|
import java.util.function.Function; |
|
|
import java.util.function.Function; |
|
|
import java.util.stream.Collectors; |
|
|
import java.util.stream.Collectors; |
|
@ -150,17 +153,29 @@ public class HuzhouPlaninfofileServiceImpl extends ServiceImpl<HuzhouPlaninfofil |
|
|
//根据项目计划id获取项目信息
|
|
|
//根据项目计划id获取项目信息
|
|
|
String taskName = planinfo.getTaskName(); |
|
|
String taskName = planinfo.getTaskName(); |
|
|
taskName=StrUtil.trim(taskName); |
|
|
taskName=StrUtil.trim(taskName); |
|
|
|
|
|
// 校验参数
|
|
|
if (CollectionUtil.isEmpty(contractList) && taskName.equals("合同签订")){ |
|
|
checkVariable(contractMoneyFieldsValue, contractList, planinfo, taskName); |
|
|
throw new EasyException("合同信息不能为空!"); |
|
|
// 提交试运行阶段的时候自动创建 计划
|
|
|
} |
|
|
if("试运行阶段".equals(taskName)){ |
|
|
// 校验合同金额
|
|
|
LambdaQueryWrapper<HuzhouPlaninfo> queryWrapper = new LambdaQueryWrapper<>(); |
|
|
if (CollectionUtil.isNotEmpty(contractList)) { |
|
|
queryWrapper.eq(HuzhouPlaninfo::getProjectId,planinfo.getProjectId()); |
|
|
if (contractinfoService.checkContractAmount(contractList, contractMoneyFieldsValue, taskName)) { |
|
|
queryWrapper.eq(HuzhouPlaninfo::getTaskName,"试运行阶段"); |
|
|
log.info("金额校验成功!"); |
|
|
HuzhouPlaninfo source = planinfoMapper.selectOne(queryWrapper); |
|
|
|
|
|
if (source != null && source.getIsfinish().equals("0")) { |
|
|
|
|
|
HuzhouPlaninfo target = new HuzhouPlaninfo(); |
|
|
|
|
|
BeanUtils.copyProperties(source,target,"id","actualStartTime","actualEndTime"); |
|
|
|
|
|
target.setTaskName("提交终验申请"); |
|
|
|
|
|
target.setTaskFile("《提交终验申请》"); |
|
|
|
|
|
target.setIsfinish("0"); |
|
|
|
|
|
// 设置日期为 2025-12-31
|
|
|
|
|
|
LocalDate targetLocalDate = LocalDate.of(2025, 12, 31); |
|
|
|
|
|
ZoneId zone = ZoneId.of("GMT+8"); |
|
|
|
|
|
Date setDate = Date.from(targetLocalDate.atStartOfDay(zone).toInstant()); |
|
|
|
|
|
target.setScheduledStartTime(setDate); |
|
|
|
|
|
target.setScheduledEndTime(setDate); |
|
|
|
|
|
planinfoMapper.insert(target); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
String projectId = planinfoService.getById(planinfoid).getProjectId(); |
|
|
String projectId = planinfoService.getById(planinfoid).getProjectId(); |
|
|
HuzhouProjectinfo huzhouProjectinfo = projectinfoService.getById(projectId); |
|
|
HuzhouProjectinfo huzhouProjectinfo = projectinfoService.getById(projectId); |
|
|
|
|
|
|
|
@ -350,7 +365,25 @@ public class HuzhouPlaninfofileServiceImpl extends ServiceImpl<HuzhouPlaninfofil |
|
|
huzhouPlaninfo.setIsfinish("1"); |
|
|
huzhouPlaninfo.setIsfinish("1"); |
|
|
huzhouPlaninfo.setActualStartTime(new Date()); |
|
|
huzhouPlaninfo.setActualStartTime(new Date()); |
|
|
planinfoService.updateById(huzhouPlaninfo); |
|
|
planinfoService.updateById(huzhouPlaninfo); |
|
|
}else{ |
|
|
}else if("提交终验申请".equals(taskName)){ |
|
|
|
|
|
WorkFlow workFlow = workflowService.createFlow("submitFinalApplication",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); |
|
|
|
|
|
HuzhouPlaninfo huzhouPlaninfo = new HuzhouPlaninfo(); |
|
|
|
|
|
huzhouPlaninfo.setId(planinfoid); |
|
|
|
|
|
huzhouPlaninfo.setIsfinish("1"); |
|
|
|
|
|
huzhouPlaninfo.setActualStartTime(new Date()); |
|
|
|
|
|
planinfoService.updateById(huzhouPlaninfo); |
|
|
|
|
|
}else{ |
|
|
HuzhouPlaninfo huzhouPlaninfo = new HuzhouPlaninfo(); |
|
|
HuzhouPlaninfo huzhouPlaninfo = new HuzhouPlaninfo(); |
|
|
huzhouPlaninfo.setId(planinfoid); |
|
|
huzhouPlaninfo.setId(planinfoid); |
|
|
huzhouPlaninfo.setIsfinish("2"); |
|
|
huzhouPlaninfo.setIsfinish("2"); |
|
@ -388,6 +421,30 @@ public class HuzhouPlaninfofileServiceImpl extends ServiceImpl<HuzhouPlaninfofil |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private void checkVariable(String contractMoneyFieldsValue, List<HuzhouContractinfo> contractList, HuzhouPlaninfo planinfo, String taskName) throws JsonProcessingException { |
|
|
|
|
|
// 增加终验申请校验
|
|
|
|
|
|
if ("终验阶段".equals(taskName)){ |
|
|
|
|
|
String projectId = planinfo.getProjectId(); |
|
|
|
|
|
LambdaQueryWrapper<HuzhouPlaninfo> queryWrapper = new LambdaQueryWrapper<>(); |
|
|
|
|
|
queryWrapper.eq(HuzhouPlaninfo::getProjectId,projectId); |
|
|
|
|
|
queryWrapper.eq(HuzhouPlaninfo::getTaskName,"提交终验申请"); |
|
|
|
|
|
queryWrapper.eq(HuzhouPlaninfo::getIsfinish,"2"); |
|
|
|
|
|
HuzhouPlaninfo target = planinfoMapper.selectOne(queryWrapper); |
|
|
|
|
|
if (target==null){ |
|
|
|
|
|
throw new EasyException("请先完成终验申请!"); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
if (CollectionUtil.isEmpty(contractList) && taskName.equals("合同签订")){ |
|
|
|
|
|
throw new EasyException("合同信息不能为空!"); |
|
|
|
|
|
} |
|
|
|
|
|
// 校验合同金额
|
|
|
|
|
|
if (CollectionUtil.isNotEmpty(contractList)) { |
|
|
|
|
|
if (contractinfoService.checkContractAmount(contractList, contractMoneyFieldsValue, taskName)) { |
|
|
|
|
|
log.info("金额校验成功!"); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 判断是否为二次上传合同信息 |
|
|
* 判断是否为二次上传合同信息 |
|
|
* @param contractList 合同信息集合 |
|
|
* @param contractList 合同信息集合 |
|
|