|
|
@ -16,6 +16,7 @@ import com.easy.admin.modules.huzhou.vo.HuzhouProjectinfoOV; |
|
|
|
import com.easy.admin.modules.huzhou.vo.ProjectInfoAuthSelect; |
|
|
|
import com.easy.admin.sys.model.SysDict; |
|
|
|
import com.easy.admin.sys.service.SysDictService; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
import org.activiti.engine.RuntimeService; |
|
|
|
import org.activiti.engine.TaskService; |
|
|
|
import org.activiti.engine.runtime.ProcessInstance; |
|
|
@ -33,7 +34,7 @@ import java.util.stream.Collectors; |
|
|
|
|
|
|
|
@Service |
|
|
|
@Transactional |
|
|
|
|
|
|
|
@Slf4j |
|
|
|
public class HuzhouContractinfoServiceImpl extends ServiceImpl<HuzhouContractinfoMapper, HuzhouContractinfo> implements IHuzhouContractinfoService { |
|
|
|
@Value(value = "${jeecg.path.upload}") |
|
|
|
private String uploadpath; |
|
|
@ -137,6 +138,54 @@ public class HuzhouContractinfoServiceImpl extends ServiceImpl<HuzhouContractinf |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
public void addRealContractinfo(MultipartFile[] file, List<HuzhouContractinfo> contractinfoList) throws IOException { |
|
|
|
String projectid = contractinfoList.get(0).getProjectId(); |
|
|
|
//uploadfileinfoService.saveFileAndFileInfo(file, projectid, "4");
|
|
|
|
WorkFlow workFlow = workflowService.createFlow("createContract",projectid); |
|
|
|
String projectId = contractinfoList.get(0).getProjectId(); |
|
|
|
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 = userService.getUserDictByRoles(dictName); |
|
|
|
ArrayList<String> userIdlist = 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"); |
|
|
|
userIdlist.add(userid); |
|
|
|
} |
|
|
|
Task task = workFlow.getTask(); |
|
|
|
String taskId = task.getId(); |
|
|
|
String processInstanceId = workFlow.getProcessInstanceId(); |
|
|
|
Map<String, Object> variables = new HashMap<>(); |
|
|
|
variables.put("taskLeadingDepartment",userIdlist); |
|
|
|
taskService.setVariableLocal(taskId,"approvalStatue","1");//添加审批状态 通过
|
|
|
|
String comment = "同意"; |
|
|
|
taskService.addComment(taskId,processInstanceId,comment);//添加审批意见
|
|
|
|
taskService.complete(taskId, variables); |
|
|
|
|
|
|
|
List<HuzhouContractinfo> collect = contractinfoList.stream().map(contract -> { |
|
|
|
contract.setStatus("1"); |
|
|
|
contract.setFlag("实际"); |
|
|
|
return contract; |
|
|
|
}).collect(Collectors.toList()); |
|
|
|
saveBatch(collect); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
public Boolean modifyContractinfo(MultipartFile[] file, List<HuzhouContractinfo> contractinfoList) throws IOException { |
|
|
@ -218,6 +267,15 @@ public class HuzhouContractinfoServiceImpl extends ServiceImpl<HuzhouContractinf |
|
|
|
return list; |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public List<HuzhouContractinfo> getRealContractinfoByprojectId(String projectid) { |
|
|
|
LambdaQueryWrapper<HuzhouContractinfo> queryWrapper = new LambdaQueryWrapper<>(); |
|
|
|
queryWrapper.eq(HuzhouContractinfo::getProjectId, projectid); |
|
|
|
queryWrapper.eq(HuzhouContractinfo::getFlag,"实际"); |
|
|
|
List<HuzhouContractinfo> list = list(queryWrapper); |
|
|
|
return list; |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public void approvalContractinfo(MultipartFile[] file, List<HuzhouContractinfo> contractList, String taskId, String flag,String projectId, String comment,boolean isEdit) throws IOException { |
|
|
|
if(isEdit&&"1".equals(flag)){ |
|
|
@ -267,5 +325,23 @@ public class HuzhouContractinfoServiceImpl extends ServiceImpl<HuzhouContractinf |
|
|
|
return result; |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public Boolean hasContractinfoByTaskName(String projectid, String taskName) { |
|
|
|
LambdaQueryWrapper<HuzhouContractinfo> queryWrapper = new LambdaQueryWrapper<>(); |
|
|
|
queryWrapper.eq(HuzhouContractinfo::getProjectId, projectid); |
|
|
|
queryWrapper.eq(HuzhouContractinfo::getTaskName, taskName); |
|
|
|
//queryWrapper.ne(HuzhouContractinfo::getFlag, "实际");
|
|
|
|
List<HuzhouContractinfo> tmp = list(queryWrapper); |
|
|
|
List<HuzhouContractinfo> rs = tmp.stream() |
|
|
|
.filter(item -> item.getFlag() != null && item.getFlag().contains("实际")) |
|
|
|
.collect(Collectors.toList()); |
|
|
|
if (rs.size() > 0) { |
|
|
|
log.info("该项目阶段填已经填写实际支付金额"); |
|
|
|
return false; |
|
|
|
} |
|
|
|
log.info("请根据合同信息(计划)信息填写实际支付金额!"); |
|
|
|
return true; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|