|
|
@ -24,6 +24,7 @@ import com.easy.admin.sys.model.SysDict; |
|
|
|
import com.easy.admin.sys.service.SysDictService; |
|
|
|
import com.fasterxml.jackson.core.type.TypeReference; |
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
import org.activiti.bpmn.model.BpmnModel; |
|
|
|
import org.activiti.bpmn.model.FlowElement; |
|
|
|
import org.activiti.bpmn.model.UserTask; |
|
|
@ -35,6 +36,7 @@ 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.bind.annotation.RequestParam; |
|
|
|
import org.springframework.web.multipart.MultipartFile; |
|
|
|
|
|
|
|
import java.io.IOException; |
|
|
@ -43,6 +45,7 @@ import java.util.stream.Collectors; |
|
|
|
|
|
|
|
@Service |
|
|
|
@Transactional |
|
|
|
@Slf4j |
|
|
|
public class HuzhouPlaninfofileServiceImpl extends ServiceImpl<HuzhouPlaninfofileMapper, HuzhouPlaninfofile> implements IHuzhouPlaninfofileService { |
|
|
|
@Autowired |
|
|
|
private IHuzhouPlaninfoService planinfoService; |
|
|
@ -100,7 +103,11 @@ public class HuzhouPlaninfofileServiceImpl extends ServiceImpl<HuzhouPlaninfofil |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void submitPlanUploadFile(MultipartFile[] files, String planinfoid,String approvalMoneyFieldsValue,String contractMoneyFieldsValue,List<HuzhouContractinfo> contractList) throws IOException { |
|
|
|
public void submitPlanUploadFile(MultipartFile[] files, String planinfoid,String approvalMoneyFieldsValue, |
|
|
|
String contractMoneyFieldsValue, |
|
|
|
List<HuzhouContractinfo> contractList) throws IOException { |
|
|
|
// 判断是否为二次上传,是则清楚原有记录
|
|
|
|
hasOldContractInfo(contractList); |
|
|
|
//立项审批和合同签订 金额输入
|
|
|
|
HuzhouProjectinfoMoney huzhouProjectinfoMoney = new HuzhouProjectinfoMoney(); |
|
|
|
if(approvalMoneyFieldsValue!=null){ |
|
|
@ -354,6 +361,31 @@ public class HuzhouPlaninfofileServiceImpl extends ServiceImpl<HuzhouPlaninfofil |
|
|
|
// }
|
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 判断是否为二次上传合同信息 |
|
|
|
* @param contractList 合同信息集合 |
|
|
|
*/ |
|
|
|
private void hasOldContractInfo(List<HuzhouContractinfo> contractList) { |
|
|
|
// 获取合同信息集合中的第一个元素即可判断是否为二次提交
|
|
|
|
HuzhouContractinfo contractinfo = contractList.get(0); |
|
|
|
LambdaQueryWrapper<HuzhouContractinfo> qw = new LambdaQueryWrapper<>(); |
|
|
|
qw.eq(HuzhouContractinfo::getProjectId,contractinfo.getProjectId()) |
|
|
|
.eq(HuzhouContractinfo::getTaskName,contractinfo.getTaskName()) |
|
|
|
.eq(HuzhouContractinfo::getFlag,"实际"); |
|
|
|
List<HuzhouContractinfo> tmp = contractinfoService.list(qw); |
|
|
|
if (tmp.size()>0){ |
|
|
|
// 清楚原有合同信息(实际)
|
|
|
|
LambdaQueryWrapper<HuzhouContractinfo> deleteWrapper = new LambdaQueryWrapper<>(); |
|
|
|
deleteWrapper.eq(HuzhouContractinfo::getProjectId, contractinfo.getProjectId()) |
|
|
|
.eq(HuzhouContractinfo::getTaskName, contractinfo.getTaskName()) |
|
|
|
.eq(HuzhouContractinfo::getFlag,"实际"); |
|
|
|
boolean success = contractinfoService.remove(deleteWrapper); |
|
|
|
if(success){ |
|
|
|
log.info("删除原有合同信息(实际)成功!"); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 校验项目阶段是否存在 合同信息(计划) 如果存在则需要填写 合同信息(实际) |
|
|
|
* @param taskName |
|
|
@ -378,10 +410,28 @@ public class HuzhouPlaninfofileServiceImpl extends ServiceImpl<HuzhouPlaninfofil |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* |
|
|
|
* @param files |
|
|
|
* @param taskId |
|
|
|
* @param flag 0:拒绝 1:同意 2:撤回 3:作废 |
|
|
|
* @param planinfoid |
|
|
|
* @param comment |
|
|
|
* @param modifyNum |
|
|
|
* @param adviceFiles |
|
|
|
* @param approvalMoneyFieldsValue |
|
|
|
* @param contractMoneyFieldsValue |
|
|
|
* @param contractinfoList 合同信息列表 |
|
|
|
* @throws IOException |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public void approvePlanFile(MultipartFile[] files, String taskId, String flag, |
|
|
|
String planinfoid, String comment, String modifyNum,MultipartFile[] adviceFiles, |
|
|
|
String approvalMoneyFieldsValue,String contractMoneyFieldsValue) throws IOException { |
|
|
|
String approvalMoneyFieldsValue,String contractMoneyFieldsValue, |
|
|
|
String contractinfoList) throws IOException { |
|
|
|
//获取阶段名称
|
|
|
|
HuzhouPlaninfo byId = planinfoService.getById(planinfoid); |
|
|
|
String taskName = StrUtil.trim(byId.getTaskName()); |
|
|
|
//立项审批和合同签订 金额输入
|
|
|
|
HuzhouProjectinfoMoney huzhouProjectinfoMoney = new HuzhouProjectinfoMoney(); |
|
|
|
if(approvalMoneyFieldsValue!=null){ |
|
|
@ -393,6 +443,7 @@ public class HuzhouPlaninfofileServiceImpl extends ServiceImpl<HuzhouPlaninfofil |
|
|
|
huzhouProjectinfoMoney = mapper.readValue(contractMoneyFieldsValue, new TypeReference<HuzhouProjectinfoMoney>(){}); |
|
|
|
projectinfoMoneyMapper.updateById(huzhouProjectinfoMoney); |
|
|
|
} |
|
|
|
|
|
|
|
WorkFlow workFlow = workflowService.approveProjectInfo(taskId, flag, comment); |
|
|
|
LambdaQueryWrapper<HuzhouProcessinfo> queryWrapper = new LambdaQueryWrapper<>(); |
|
|
|
queryWrapper.eq(HuzhouProcessinfo::getProjectid,planinfoid); |
|
|
@ -408,7 +459,28 @@ public class HuzhouPlaninfofileServiceImpl extends ServiceImpl<HuzhouPlaninfofil |
|
|
|
} |
|
|
|
HuzhouPlaninfo huzhouPlaninfo = new HuzhouPlaninfo(); |
|
|
|
huzhouPlaninfo.setId(planinfoid); |
|
|
|
|
|
|
|
// 如果审批同意,则修改合同信息
|
|
|
|
if (StrUtil.isNotBlank(contractinfoList) && "1".equals(flag)) { |
|
|
|
ObjectMapper mapper = new ObjectMapper(); |
|
|
|
List<HuzhouContractinfo> contractList = mapper.readValue(contractinfoList, new TypeReference<List<HuzhouContractinfo>>() { |
|
|
|
}); |
|
|
|
// 1.遍历contractList并针对每个元素更新数据库中的记录
|
|
|
|
for (HuzhouContractinfo contract : contractList) { |
|
|
|
LambdaUpdateWrapper<HuzhouContractinfo> updateWrapper = new LambdaUpdateWrapper<>(); |
|
|
|
// 2.根据阶段不同执行对应的更新操作
|
|
|
|
if (taskName.equals("合同签订")) { |
|
|
|
updateWrapper.eq(HuzhouContractinfo::getProjectId, contract.getProjectId()) |
|
|
|
.eq(HuzhouContractinfo::getTaskName, contract.getTaskName()) |
|
|
|
.eq(HuzhouContractinfo::getFlag, "计划"); |
|
|
|
} else { |
|
|
|
updateWrapper.eq(HuzhouContractinfo::getProjectId, contract.getProjectId()) |
|
|
|
.eq(HuzhouContractinfo::getTaskName, contract.getTaskName()) |
|
|
|
.eq(HuzhouContractinfo::getFlag, "实际"); |
|
|
|
} |
|
|
|
contract.setEditDate(new Date()); |
|
|
|
contractinfoService.update(contract, updateWrapper); |
|
|
|
} |
|
|
|
} |
|
|
|
if("3".equals(flag)){ |
|
|
|
huzhouPlaninfo.setIsfinish("0"); |
|
|
|
planinfoService.updateById(huzhouPlaninfo); |
|
|
@ -450,8 +522,6 @@ public class HuzhouPlaninfofileServiceImpl extends ServiceImpl<HuzhouPlaninfofil |
|
|
|
} |
|
|
|
} |
|
|
|
if(processInstance==null&&"1".equals(flag)){ |
|
|
|
HuzhouPlaninfo byId = planinfoService.getById(planinfoid); |
|
|
|
String taskName = StrUtil.trim(byId.getTaskName()); |
|
|
|
if("可研报告送审稿编制".equals(taskName)){ |
|
|
|
//查询是否已有完成的流程。有两个以上
|
|
|
|
queryWrapper.clear(); |
|
|
@ -472,7 +542,6 @@ public class HuzhouPlaninfofileServiceImpl extends ServiceImpl<HuzhouPlaninfofil |
|
|
|
throw new EasyException("未找到造价评估报告确认阶段"); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
HuzhouPlaninfo planinfo1 = list.get(0); |
|
|
|
String planinfo1Id = planinfo1.getId(); |
|
|
|
//获取项目上级指导室
|
|
|
|