Browse Source

看板1.4

master
Jinyuanyuan 4 months ago
parent
commit
c801508a17
  1. 4
      huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/HuzhouProjectController.java
  2. 2
      huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/HuzhouPlaninfoMapper.java
  3. 6
      huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/HuzhouContractinfoMapper.xml
  4. 3
      huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/HuzhouPlaninfoMapper.xml
  5. 2
      huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouProjectinfoService.java
  6. 496
      huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouProjectinfoServiceImpl.java
  7. 16
      huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/CountByConditionOV.java
  8. 21
      huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/FundByConditionOV.java
  9. 42
      huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/FundByKindOV.java
  10. 21
      huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/NewFundOV.java
  11. 2
      huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/ProjectFoundOV.java
  12. 2
      huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/ProjectProgressOV.java

4
huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/HuzhouProjectController.java

@ -215,7 +215,9 @@ public class HuzhouProjectController {
}
@GetMapping("/countByTask")
public Result<?> countByTask(){
return null;
String a="reform_name";
CountByConditionOV result = projectinfoService.countByReformName(a);
return Result.ok(result);
}

2
huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/HuzhouPlaninfoMapper.java

@ -9,4 +9,6 @@ import java.util.List;
public interface HuzhouPlaninfoMapper extends BaseMapper<HuzhouPlaninfo> {
List<HuzhouPlaninfo> getChildTaskBySuperior(@Param("info") HuzhouPlaninfo info);
Integer getNumByPlan(@Param("info") HuzhouPlaninfo info);
}

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

@ -266,9 +266,9 @@
select sum(total_money) as totalAcount,
sum(central_money) as centralAcount,
sum(provincial_money) as provincialAcount,
sum(city_money) as cityMoney,
sum(county_money) as countyMoney,
sum(self_money) as selfMoney from huzhou_contractinfo
sum(city_money) as cityAcount,
sum(county_money) as countyAcount,
sum(self_money) as selfAcount from huzhou_contractinfo
where project_id in
<foreach item="projectId" index="index" collection="projectIds" open="(" separator="," close=")">
#{projectId}

3
huzhou/src/main/java/com/easy/admin/modules/huzhou/dao/mapping/HuzhouPlaninfoMapper.xml

@ -4,4 +4,7 @@
<select id="getChildTaskBySuperior" parameterType="com.easy.admin.modules.huzhou.entity.HuzhouPlaninfo" resultType="com.easy.admin.modules.huzhou.entity.HuzhouPlaninfo">
select * from huzhou_planinfo where superior = #{info.taskLevel} and project_id = #{info.projectId} order by INET_ATON(CONCAT(task_level, '.0'))
</select>
<select id="getNumByPlan" resultType="java.lang.Integer">
select count(*) from huzhou_planinfo where project_id#{projectId} and task_name=#{taskName}
</select>
</mapper>

2
huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouProjectinfoService.java

@ -173,7 +173,7 @@ public interface IHuzhouProjectinfoService extends IService<HuzhouProjectinfo> {
IPage<ProjectPageResponse> getProjectPage(HuzhouProjectinfo projectInfo, Integer pageNo, Integer pageSize,String orderBy,String orderDir);
List<CountByConditionOV> countByReformName(String reformName);
CountByConditionOV countByReformName(String reformName);
}

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

@ -93,17 +93,17 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
@Override
public void submitProject(MultipartFile[] multipartFile,HuzhouProjectinfo info) throws IOException {
public void submitProject(MultipartFile[] multipartFile, HuzhouProjectinfo info) throws IOException {
//保存项目信息
info.setStage("1");//最开始的状态。项目入库中
if(info.getId()!=null){
if (info.getId() != null) {
//批量入库后,有项目负责人重新发起入库申请
userprojectService.removeByProjectId(info.getId(),"0");
userprojectService.removeByProjectId(info.getId(), "0");
this.updateById(info);
}else{
} else {
this.save(info);//保存项目信息
}
WorkFlow workFlow = workflowService.createFlow("creatProjectinfo",info.getId());//创建流程
WorkFlow workFlow = workflowService.createFlow("creatProjectinfo", info.getId());//创建流程
Task task = workFlow.getTask();
String processInstanceId = workFlow.getProcessInstanceId();
String taskId = task.getId();
@ -116,37 +116,38 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
//上级指导室中文名称查询角色有哪些人
List<HashMap<String, String>> userDictByRoles = sysUserService.getUserDictByRoles(dictName);
ArrayList<String> strings = new ArrayList<>();
if(userDictByRoles==null||userDictByRoles.size()==0){
String error = "任务牵头处室"+dictName+"负责人未找到";
if (userDictByRoles == null || userDictByRoles.size() == 0) {
String error = "任务牵头处室" + dictName + "负责人未找到";
throw new EasyException(error);
}
// 金额校验
Double totalMoney = info.getTotalMoney();
Double accountMoney = info.getCentralMoney() + info.getProvincialMoney() + info.getCityMoney() + info.getCountyMoney() + info.getSelfMoney();
Double accountYearMoney = info.getPayamount2023Money() + info.getPayamount2024Money() + info.getPayamount2025Money();
if(!totalMoney.equals(accountMoney)){
String error="各类资金之和与总投资不匹配!";
if (!totalMoney.equals(accountMoney)) {
String error = "各类资金之和与总投资不匹配!";
throw new EasyException(error);
}
if(!totalMoney.equals(accountYearMoney)){
String error="总支付金额与总投资不匹配!";
if (!totalMoney.equals(accountYearMoney)) {
String error = "总支付金额与总投资不匹配!";
throw new EasyException(error);
}
for (HashMap<String, String> map:userDictByRoles
for (HashMap<String, String> map : userDictByRoles
) {
String userid = map.get("value");
strings.add(userid);
}
variables.put("taskLeadingDepartment",strings);
variables.put("taskLeadingDepartment", strings);
//发起人节点处理
taskService.setVariableLocal(taskId,"approvalStatue","1");//添加审批状态 通过
taskService.setVariableLocal(taskId, "approvalStatue", "1");//添加审批状态 通过
String comment = "同意";
taskService.addComment(taskId,processInstanceId,comment);//添加审批意见
taskService.addComment(taskId, processInstanceId, comment);//添加审批意见
taskService.complete(taskId, variables);
userprojectService.saveFromProject(info,"0");//保存项目联系人信息,0表示当前醒目是主项目
userprojectService.saveFromProject(info, "0");//保存项目联系人信息,0表示当前醒目是主项目
uploadfileinfoService.saveFileAndFileInfo(multipartFile, info.getId(), "5");
}
@Override
public void batchImportProjects(MultipartFile multipartFile) throws Exception {
//是否有文件
@ -177,11 +178,11 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
int cellNum = 28;//一共28列
//第一行获取字段名称
for (int i = 0; i < cellNum; i++) {
NameMap.put(String.valueOf(i),titlerow.getCell(i).getStringCellValue());
NameMap.put(String.valueOf(i), titlerow.getCell(i).getStringCellValue());
}
//第二行获取中外名称
for (int i = 1; i < cellNum; i++) {
chineseNameMap.put(String.valueOf(i),chineseTitlerow.getCell(i).getStringCellValue());
chineseNameMap.put(String.valueOf(i), chineseTitlerow.getCell(i).getStringCellValue());
}
for (int i = 2; i < physicalNumberOfRows; i++) {
Row row = sheet.getRow(i);//获取行的数据
@ -189,7 +190,7 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
for (int j = 1; j < cellNum; j++) {
String value = "";
//根据行,获取当前行,列的数据
if(row.getCell(j)!=null){
if (row.getCell(j) != null) {
row.getCell(j).setCellType(CellType.STRING);//设置列的数据格式为字符串
value = row.getCell(j).getStringCellValue();//获取列的数据
}
@ -200,38 +201,38 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
// }
String name = NameMap.get(String.valueOf(j));
//所属任务
if("reformName".equals(name)){
if ("reformName".equals(name)) {
List<Select> reformTasks = sysDictService.selectByDictType("reformTasks");//获取字典列表
String dictValue = null;
//根据值获取名称
for (Select dict:reformTasks) {
if(dict.getLabel().equals(value)){
dictValue=dict.getValue();
for (Select dict : reformTasks) {
if (dict.getLabel().equals(value)) {
dictValue = dict.getValue();
}
}
if(dictValue==null){
if (dictValue == null) {
String s = chineseNameMap.get(String.valueOf(j));
throw new EasyException("第"+(i+1)+"行,"+s+",不在字典中,请联系管理员");
throw new EasyException("第" + (i + 1) + "行," + s + ",不在字典中,请联系管理员");
}
value= dictValue;
value = dictValue;
}
//上级指导室
if("superLeader".equals(name)){
if ("superLeader".equals(name)) {
List<Select> reformTasks = sysDictService.selectByDictType("superLeader");
String dictValue = null;
for (Select dict:reformTasks) {
if(dict.getLabel().equals(value)){
dictValue=dict.getValue();
for (Select dict : reformTasks) {
if (dict.getLabel().equals(value)) {
dictValue = dict.getValue();
}
}
if(dictValue==null){
if (dictValue == null) {
String s = chineseNameMap.get(String.valueOf(j));
throw new EasyException("第"+(i+1)+"行,"+s+",不在字典中,请联系管理员");
throw new EasyException("第" + (i + 1) + "行," + s + ",不在字典中,请联系管理员");
}
value= dictValue;
value = dictValue;
}
//周期判断暂时不加
if("constructionPeriod".equals(name)){
if ("constructionPeriod".equals(name)) {
// int constructionPeriod = Integer.parseInt(value);
// LocalDate now = LocalDate.now();
// LocalDate localDate = LocalDate.of(2025, 6, 30);
@ -242,68 +243,69 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
// }
}
//校验金额格式
if(name.contains("Money")){
if (name.contains("Money")) {
try {
BigDecimal bigDecimal = new BigDecimal(value);
}catch (Exception e){
} catch (Exception e) {
String s = chineseNameMap.get(String.valueOf(j));
throw new EasyException("第"+(i+1)+"行,"+s+",金额格式错误");
throw new EasyException("第" + (i + 1) + "行," + s + ",金额格式错误");
}
}
//校验各个单位联系人格式
if((name.contains("Contactor")||name.contains("projectContacts"))&&(value!=null&&value.length()!=0)){
if ((name.contains("Contactor") || name.contains("projectContacts")) && (value != null && value.length() != 0)) {
SysUser user = userprojectService.getUserByrealNameOrName(value);
if(user==null){
if (user == null) {
String s = chineseNameMap.get(String.valueOf(j));
throw new EasyException("第"+(i+1)+"行,"+s+",此人不在系统中,请增加");
}else {
throw new EasyException("第" + (i + 1) + "行," + s + ",此人不在系统中,请增加");
} else {
value = user.getId();
}
}
//保存字段的数据到huzhouProjectinfo
HuzhouCommonUtils.setObjectAttributes(huzhouProjectinfo,name,value);
HuzhouCommonUtils.setObjectAttributes(huzhouProjectinfo, name, value);
}
huzhouProjectinfo.setStage("0");//设置阶段为待入库
huzhouProjectinfos.add(huzhouProjectinfo);
this.save(huzhouProjectinfo);//添加到数据库
userprojectService.saveFromProject(huzhouProjectinfo,"0");//保存联系人
userprojectService.saveFromProject(huzhouProjectinfo, "0");//保存联系人
}
}
@Override
public void approveProjectInfo(ProjectApproveOV projectApproveOV,MultipartFile[] multipartFile) throws IOException {
public void approveProjectInfo(ProjectApproveOV projectApproveOV, MultipartFile[] multipartFile) throws IOException {
String taskId = projectApproveOV.getTaskId();
HuzhouProjectinfo projectinfo = new HuzhouProjectinfo();
BeanUtils.copyProperties(projectApproveOV,projectinfo);
BeanUtils.copyProperties(projectApproveOV, projectinfo);
String comment = projectApproveOV.getComment();
String projectid = projectApproveOV.getProjectid();
String flag = projectApproveOV.getFlag();
String isEdit = projectApproveOV.getIsEdit();
//单个入库项目可以编辑,发起人编辑
if("1".equals(isEdit)&&"1".equals(flag)){
if(null!=projectinfo){
if ("1".equals(isEdit) && "1".equals(flag)) {
if (null != projectinfo) {
// 金额校验
Double totalMoney = projectinfo.getTotalMoney();
Double accountMoney = projectinfo.getCentralMoney() + projectinfo.getProvincialMoney() + projectinfo.getCityMoney() + projectinfo.getCountyMoney() + projectinfo.getSelfMoney();
Double accountYearMoney = projectinfo.getPayamount2023Money() + projectinfo.getPayamount2024Money() + projectinfo.getPayamount2025Money();
if(!totalMoney.equals(accountMoney)){
String error="各类资金之和与总投资不匹配!";
if (!totalMoney.equals(accountMoney)) {
String error = "各类资金之和与总投资不匹配!";
throw new EasyException(error);
}
if(!totalMoney.equals(accountYearMoney)){
String error="总支付金额与总投资不匹配!";
if (!totalMoney.equals(accountYearMoney)) {
String error = "总支付金额与总投资不匹配!";
throw new EasyException(error);
}
//查询修改前信息进行保存
this.updateById(projectinfo);
//保存修改记录
//删除此项目原来的人员和项目对应信息
userprojectService.removeByProjectId(projectid,"0");
userprojectService.removeByProjectId(projectid, "0");
//保存新的人员和项目对应信息
userprojectService.saveFromProject(projectinfo,"0");
userprojectService.saveFromProject(projectinfo, "0");
}
if(multipartFile!=null){
uploadfileinfoService.modifyUploadFile(multipartFile,projectid,"5");
if (multipartFile != null) {
uploadfileinfoService.modifyUploadFile(multipartFile, projectid, "5");
}
}
WorkFlow workFlow = workflowService.approveProjectInfo(taskId, flag, comment);
@ -323,10 +325,10 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
// }
String processInstanceId = workFlow.getProcessInstanceId();
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
if(processInstance==null&&"1".equals(flag)){
if (processInstance == null && "1".equals(flag)) {
//流程结束了,变更状态
processinfoService.modifyStatusByProjectId(projectid,"2","creatProjectinfo");
this.modifyStageById(projectid,"2");
processinfoService.modifyStatusByProjectId(projectid, "2", "creatProjectinfo");
this.modifyStageById(projectid, "2");
}
}
@ -335,31 +337,29 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
//查询之前的项目信息进行保存留痕
HuzhouProjectinfo historyData = getById(huzhouProjectinfo.getId());
HuzhouProjectinfoHistory huzhouProjectinfoHistory = new HuzhouProjectinfoHistory();
BeanUtils.copyProperties(historyData,huzhouProjectinfoHistory);
BeanUtils.copyProperties(historyData, huzhouProjectinfoHistory);
historyMapper.insert(huzhouProjectinfoHistory);
//更新项目的联系人
this.updateById(huzhouProjectinfo);
userprojectService.removeByProjectId(huzhouProjectinfo.getId(),"0");
userprojectService.saveFromProject(huzhouProjectinfo,"0");
userprojectService.removeByProjectId(huzhouProjectinfo.getId(), "0");
userprojectService.saveFromProject(huzhouProjectinfo, "0");
}
@Override
public void modifyStageById(String id, String stage) {
HuzhouProjectinfo byId = getById(id);
//byId不为null 是主项目,为null是子项目
if(null!=byId){
if (null != byId) {
LambdaUpdateWrapper<HuzhouProjectinfo> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(HuzhouProjectinfo::getId,id);
updateWrapper.set(HuzhouProjectinfo::getStage,stage);
updateWrapper.eq(HuzhouProjectinfo::getId, id);
updateWrapper.set(HuzhouProjectinfo::getStage, stage);
this.update(updateWrapper);
}else {
} else {
LambdaUpdateWrapper<HuzhouSubProjectinfo> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(HuzhouSubProjectinfo::getId,id);
updateWrapper.set(HuzhouSubProjectinfo::getStage,stage);
subProjectinfoMapper.update(null,updateWrapper);
updateWrapper.eq(HuzhouSubProjectinfo::getId, id);
updateWrapper.set(HuzhouSubProjectinfo::getStage, stage);
subProjectinfoMapper.update(null, updateWrapper);
}
}
@ -379,25 +379,25 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
Page<HuzhouProjectinfoOV> projectAndChildInfoPageList;
if(newStage!=null){
if (newStage != null) {
List<String> stageList = Arrays.stream(newStage.split(",")).collect(Collectors.toList());
projectAndChildInfoPageList = projectinfoMapper.getProjectAndChildInfoPageListNew(page,projectInfoAuthSelect,stageList);
}else {
projectAndChildInfoPageList = projectinfoMapper.getProjectAndChildInfoPageList(page,projectInfoAuthSelect);
projectAndChildInfoPageList = projectinfoMapper.getProjectAndChildInfoPageListNew(page, projectInfoAuthSelect, stageList);
} else {
projectAndChildInfoPageList = projectinfoMapper.getProjectAndChildInfoPageList(page, projectInfoAuthSelect);
}
List<HuzhouProjectinfoOV> records = projectAndChildInfoPageList.getRecords();
records.forEach(item->{
records.forEach(item -> {
item.setMissingSubprojects(false);//设置默认是false
double subTotalMoney =0;//子项目的总金额
double subTotalMoney = 0;//子项目的总金额
List<HuzhouSubProjectinfo> subProjectinfoList = item.getChildren();
if (subProjectinfoList.size()>0){
subTotalMoney= subProjectinfoList.stream().mapToDouble(HuzhouProjectinfo::getTotalMoney).sum();//计算子项目总金额总和
if (subProjectinfoList.size() > 0) {
subTotalMoney = subProjectinfoList.stream().mapToDouble(HuzhouProjectinfo::getTotalMoney).sum();//计算子项目总金额总和
Double totalMoney = item.getTotalMoney();
if(subTotalMoney!=0&&totalMoney!=subTotalMoney){
if (subTotalMoney != 0 && totalMoney != subTotalMoney) {
item.setMissingSubprojects(true);//子项目金额总和和主项目不一致
}
}else{
} else {
//没有子项目
item.setChildren(null);
}
@ -409,19 +409,19 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
public IPage<HuzhouProjectinfoOV> getProjectInfoAndChildPageList(HuzhouProjectinfo projectinfo, Integer pageNo, Integer pageSize) {
Page page = new Page(pageNo, pageSize);
ProjectInfoAuthSelect projectInfoAuthSelect = CommonUtils.setGetProjectInfoAuth(projectinfo);
Page<HuzhouProjectinfoOV> projectAndChildInfoPageList = projectinfoMapper.getProjectAndChildInfoPageList(page,projectInfoAuthSelect);
Page<HuzhouProjectinfoOV> projectAndChildInfoPageList = projectinfoMapper.getProjectAndChildInfoPageList(page, projectInfoAuthSelect);
List<HuzhouProjectinfoOV> records = projectAndChildInfoPageList.getRecords();
records.forEach(item->{
records.forEach(item -> {
item.setMissingSubprojects(false);//设置默认是false
double subTotalMoney =0;//子项目的总金额
double subTotalMoney = 0;//子项目的总金额
List<HuzhouSubProjectinfo> subProjectinfoList = item.getChildren();
if (subProjectinfoList.size()>0){
subTotalMoney= subProjectinfoList.stream().mapToDouble(HuzhouProjectinfo::getTotalMoney).sum();//计算子项目总金额总和
if (subProjectinfoList.size() > 0) {
subTotalMoney = subProjectinfoList.stream().mapToDouble(HuzhouProjectinfo::getTotalMoney).sum();//计算子项目总金额总和
Double totalMoney = item.getTotalMoney();
if(subTotalMoney!=0&&totalMoney!=subTotalMoney){
if (subTotalMoney != 0 && totalMoney != subTotalMoney) {
item.setMissingSubprojects(true);//子项目金额总和和主项目不一致
}
}else{
} else {
//没有子项目
item.setChildren(null);
}
@ -429,44 +429,45 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
return projectAndChildInfoPageList;
}
@Override
public void batchdownloadProject(HttpServletResponse response, HuzhouProjectinfo projectinfo) {
//查询主项目的信息
ProjectInfoAuthSelect projectInfoAuthSelect = CommonUtils.setGetProjectInfoAuth(projectinfo);
List<HuzhouProjectinfo> projectinfoList = projectinfoMapper.getProjectInfoPageList(projectInfoAuthSelect);
for(int i =0;i<projectinfoList.size();i++){
for (int i = 0; i < projectinfoList.size(); i++) {
HuzhouProjectinfo huzhouProjectinfo = projectinfoList.get(i);
//查询是否有子项目
LambdaQueryWrapper<HuzhouSubProjectinfo> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(HuzhouSubProjectinfo::getProjectId,huzhouProjectinfo.getId());
queryWrapper.eq(HuzhouSubProjectinfo::getProjectId, huzhouProjectinfo.getId());
List<HuzhouSubProjectinfo> huzhouSubProjectinfos = subProjectinfoMapper.selectList(queryWrapper);
if(huzhouSubProjectinfos.size()>0){
if (huzhouSubProjectinfos.size() > 0) {
//有子项目就添加到当前列表中
List<HuzhouProjectinfo> collect = huzhouSubProjectinfos.stream().map(sub -> {
HuzhouProjectinfo projectInfo = new HuzhouProjectinfo();
BeanUtils.copyProperties(sub, projectInfo);
return projectInfo;
}).collect(Collectors.toList());
projectinfoList.addAll(i+1,collect);
projectinfoList.addAll(i + 1, collect);
//索引增加
i+=collect.size();
i += collect.size();
}
}
try {
//因为查询结果中有些字段是字典值,要转化成字典的中文
projectinfoList.forEach(item->{
projectinfoList.forEach(item -> {
List<Select> reformTasks = sysDictService.selectByDictType("reformTasks");
String dictValue = null;
for (Select dict:reformTasks) {
if(dict.getValue().equals(item.getReformName())){
dictValue=dict.getLabel();
for (Select dict : reformTasks) {
if (dict.getValue().equals(item.getReformName())) {
dictValue = dict.getLabel();
item.setReformName(dictValue);
}
}
List<Select> superLeaders = sysDictService.selectByDictType("superLeader");
for (Select dict:superLeaders) {
if(dict.getValue().equals(item.getSuperLeader())){
dictValue=dict.getLabel();
for (Select dict : superLeaders) {
if (dict.getValue().equals(item.getSuperLeader())) {
dictValue = dict.getLabel();
item.setSuperLeader(dictValue);
}
}
@ -476,15 +477,15 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
for (Method method : methods) {
try {
String name = method.getName();
if (name.startsWith("get")&&(name.contains("Contactor")||name.contains("ProjectContacts"))) { // 假设所有的getter方法都不带参数,并且返回一个基本数据类型或其包装类
if (name.startsWith("get") && (name.contains("Contactor") || name.contains("ProjectContacts"))) { // 假设所有的getter方法都不带参数,并且返回一个基本数据类型或其包装类
Object value = method.invoke(item);
if (value != null) { // 过滤掉null值
SysUser user = sysUserService.getById(value.toString());
if(user!=null){
if (user != null) {
String realname = user.getNickname();
String setName = "set"+name.substring(3);
String setName = "set" + name.substring(3);
Method method1 = clazz.getMethod(setName, String.class);
method1.invoke(item,realname);
method1.invoke(item, realname);
}
}
}
@ -504,7 +505,7 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
public Object queryProjectInfoById(String id) {
HuzhouProjectinfo projectinfo = getById(id);
//projectinfo为空说明是子项目
if(null==projectinfo){
if (null == projectinfo) {
HuzhouSubProjectinfo huzhouSubProjectinfo = subProjectinfoMapper.selectById(id);
return huzhouSubProjectinfo;
}
@ -512,9 +513,10 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
}
/** 暂时无用
/**
* 暂时无用
* 查询当前项目是否已经发起流程计划
*
* @param
* @return 2 计划的审批流程已完成 1 是流程中 0 是未发起流程
*/
@ -539,44 +541,44 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
//查询当前用户名下主项目和子项目的id
@Override
public Map<String,List<String>> findAllProjectIds() {
HuzhouProjectinfo projectInfo =new HuzhouProjectinfo();
public Map<String, List<String>> findAllProjectIds() {
HuzhouProjectinfo projectInfo = new HuzhouProjectinfo();
projectInfo.setStage("0");
ProjectInfoAuthSelect projectInfoAuthSelect = CommonUtils.setGetProjectInfoAuth(projectInfo);
List<HuzhouProjectinfoOV> projectAndChildInfoPageList = projectinfoMapper.getProjectAndChildInfoPageList(projectInfoAuthSelect);
List<String> zIds = projectAndChildInfoPageList.stream().map(x -> x.getId()).collect(Collectors.toList());
List<String> cIds = new ArrayList<>();
for(HuzhouProjectinfoOV info:projectAndChildInfoPageList){
if(info.getChildren()!=null){
for(HuzhouSubProjectinfo child:info.getChildren()){
for (HuzhouProjectinfoOV info : projectAndChildInfoPageList) {
if (info.getChildren() != null) {
for (HuzhouSubProjectinfo child : info.getChildren()) {
cIds.add(child.getProjectId());
}
}
}
Map<String, List<String>> result = new HashMap<>();
result.put("zxm",zIds);
result.put("cxm",cIds);
result.put("zxm", zIds);
result.put("cxm", cIds);
return result;
}
//统计主项目和子项目中的总投资
@Override
public BigDecimal totalMoneyByProjectIds(Map<String,List<String>> projectIds) {
public BigDecimal totalMoneyByProjectIds(Map<String, List<String>> projectIds) {
BigDecimal zxmTotal = new BigDecimal("0.00");
BigDecimal cxmTotal = new BigDecimal("0.00");
if(projectIds.get("zxm").size()!=0) {
if (projectIds.get("zxm").size() != 0) {
LambdaQueryWrapper<HuzhouProjectinfo> query = new LambdaQueryWrapper<>(new HuzhouProjectinfo())
.in(HuzhouProjectinfo::getId, projectIds.get("zxm"))
.select(HuzhouProjectinfo::getId, HuzhouProjectinfo::getTotalMoney);
List<HuzhouProjectinfo> projectInfoList = projectinfoMapper.selectList(query);
zxmTotal = new BigDecimal(Double.toString(projectInfoList.stream().mapToDouble(x -> x.getTotalMoney()).sum()));
}
if(projectIds.get("cxm").size()!=0){
if (projectIds.get("cxm").size() != 0) {
LambdaQueryWrapper<HuzhouSubProjectinfo> cquery = new LambdaQueryWrapper<>(new HuzhouSubProjectinfo())
.in(HuzhouSubProjectinfo::getId,projectIds.get("cxm"))
.select(HuzhouSubProjectinfo::getId,HuzhouSubProjectinfo::getTotalMoney);
List<HuzhouSubProjectinfo> subProjectInfoList=subProjectinfoMapper.selectList(cquery);
.in(HuzhouSubProjectinfo::getId, projectIds.get("cxm"))
.select(HuzhouSubProjectinfo::getId, HuzhouSubProjectinfo::getTotalMoney);
List<HuzhouSubProjectinfo> subProjectInfoList = subProjectinfoMapper.selectList(cquery);
cxmTotal = new BigDecimal(Double.toString(subProjectInfoList.stream().mapToDouble(x -> x.getTotalMoney()).sum()));
}
BigDecimal result = zxmTotal.add(cxmTotal);
@ -589,17 +591,17 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
@Override
public ProjectProgressOV countProjectProgress() {
int fininshNum=0;
int unfininshNum=0;
int fininshNum = 0;
int unfininshNum = 0;
//1、查询所有项目
//2、查询所有项目对应的计划阶段
Map<String, List<String>> projectIdsMap = this.findAllProjectIds();
List<String> projectIdsList = projectIdsMap.get("zxm");
projectIdsList.addAll(projectIdsMap.get("cxm"));
if(projectIdsList.size()!=0){
if (projectIdsList.size() != 0) {
List<HuzhouPlaninfo> planInfoList = planinfoService.listByProjectIds(projectIdsList);
fininshNum = (int) planInfoList.stream().filter(x -> (x.getIsfinish().equals("2"))).count();
unfininshNum = planInfoList.size()-fininshNum;
unfininshNum = planInfoList.size() - fininshNum;
}
ProjectProgressOV result = ProjectProgressOV.builder().fininshNum(fininshNum).unfininshNum(unfininshNum).build();
@ -615,19 +617,19 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
BigDecimal totalAmount = new BigDecimal("0.00");
BigDecimal unPayAmount = new BigDecimal("0.00");
BigDecimal payAmount = new BigDecimal("0.00");
if(projectIdsList.size()!=0){
if (projectIdsList.size() != 0) {
List<HuzhouContractinfo> contractInfoList = contractinfoService.ListByProjectIds(projectIdsList);
List<HuzhouPlaninfo> planInfoList = planinfoService.listByProjectIds(projectIdsList);
Map<String, Double> contractMoneyMap;
List<String> finishPlanTaskList;
for(String projectId:projectIdsList){
for (String projectId : projectIdsList) {
contractMoneyMap = contractInfoList.stream().filter(x -> x.getProjectId().equals(projectId))
.collect(Collectors.toMap(HuzhouContractinfo::getTaskName, HuzhouContractinfo::getTotalMoney));
finishPlanTaskList = planInfoList.stream().filter(x->x.getProjectId().equals(projectId))
.filter(x->x.getIsfinish().equals("2")).map(x->x.getTaskName()).collect(Collectors.toList());
for(String key:contractMoneyMap.keySet()){
if(finishPlanTaskList.contains(key)){
payAmount=payAmount.add(new BigDecimal(Double.toString(contractMoneyMap.get(key))));
finishPlanTaskList = planInfoList.stream().filter(x -> x.getProjectId().equals(projectId))
.filter(x -> x.getIsfinish().equals("2")).map(x -> x.getTaskName()).collect(Collectors.toList());
for (String key : contractMoneyMap.keySet()) {
if (finishPlanTaskList.contains(key)) {
payAmount = payAmount.add(new BigDecimal(Double.toString(contractMoneyMap.get(key))));
}
}
}
@ -647,11 +649,11 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
List<String> cxmIds = projectIdsMap.get("cxm");
zxmIds.addAll(cxmIds);
CountOV result;
List<ProjectStatusOV> projectStatusList= new ArrayList<>();
List<CommonCountOV> projectByReformList= new ArrayList<>();
List<CommonCountOV> projectByRegionList= new ArrayList<>();
List<CommonCountOV> projectByWorkplaceList= new ArrayList<>();
if(zxmIds.size()!=0){
List<ProjectStatusOV> projectStatusList = new ArrayList<>();
List<CommonCountOV> projectByReformList = new ArrayList<>();
List<CommonCountOV> projectByRegionList = new ArrayList<>();
List<CommonCountOV> projectByWorkplaceList = new ArrayList<>();
if (zxmIds.size() != 0) {
List<HuzhouProjectinfo> projectInfoList = projectinfoMapper.selectBatchIds(zxmIds);
List<HuzhouSubProjectinfo> cProjectinfoList = subProjectinfoService.listByProjectIds(cxmIds);
projectInfoList.addAll(cProjectinfoList);
@ -660,13 +662,13 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
//根据项目状态统计
Map<String, List<HuzhouProjectinfo>> statusCountMap = projectInfoList.stream().collect(Collectors.groupingBy(x -> x.getStage()));
for(String key:statusCountMap.keySet()){
for (String key : statusCountMap.keySet()) {
projectStatusList.add(ProjectStatusOV.builder().name(projectStage.get(key)).value(statusCountMap.get(key).size()).build());
}
//根据所属改革任务统计(阶段完成情况)
Map<String, List<HuzhouProjectinfo>> reformCountMap = projectInfoList.stream().collect(Collectors.groupingBy(x -> x.getReformName().trim()));
for (String key:reformCountMap.keySet()){
for (String key : reformCountMap.keySet()) {
List<String> keyProjectIdsList = reformCountMap.get(key).stream().map(x -> x.getId()).collect(Collectors.toList());
Map<String, Integer> countMap = planinfoService.conutCompletionStatus(keyProjectIdsList);
projectByReformList.add(CommonCountOV.builder().name(reformTasks.get(key)).fininshNum(countMap.get("fininshNum")).unfininshNum(countMap.get("unfininshNum")).build());
@ -674,7 +676,7 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
//根据行政区统计
Map<String, List<HuzhouProjectinfo>> regionCountMap = projectInfoList.stream().collect(Collectors.groupingBy(x -> x.getAdminDivision().trim()));
for (String key:regionCountMap.keySet()){
for (String key : regionCountMap.keySet()) {
List<String> keyProjectIdsList = regionCountMap.get(key).stream().map(x -> x.getId()).collect(Collectors.toList());
Map<String, Integer> countMap = planinfoService.conutCompletionStatus(keyProjectIdsList);
projectByRegionList.add(CommonCountOV.builder().name(key).fininshNum(countMap.get("fininshNum")).unfininshNum(countMap.get("unfininshNum")).build());
@ -682,7 +684,7 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
//根据单位统计
Map<String, List<HuzhouProjectinfo>> workplaceCountMap = projectInfoList.stream().collect(Collectors.groupingBy(x -> x.getWorkplaceProperties().trim()));
for (String key:workplaceCountMap.keySet()){
for (String key : workplaceCountMap.keySet()) {
List<String> keyProjectIdsList = workplaceCountMap.get(key).stream().map(x -> x.getId()).collect(Collectors.toList());
Map<String, Integer> countMap = planinfoService.conutCompletionStatus(keyProjectIdsList);
projectByWorkplaceList.add(CommonCountOV.builder().name(key).fininshNum(countMap.get("fininshNum")).unfininshNum(countMap.get("unfininshNum")).build());
@ -691,8 +693,8 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
FundOV fund = countFund();
result = CountOV.builder().xiangmZJD(projectProgress).xiangmuZJ(fund)
.xiangmuZT(projectStatusList).XXQY(projectByRegionList).SSGGRW(projectByReformList).DWSX(projectByWorkplaceList).build();
}else {
result=CountOV.builder().xiangmZJD(ProjectProgressOV.builder().fininshNum(0).unfininshNum(0).build())
} else {
result = CountOV.builder().xiangmZJD(ProjectProgressOV.builder().fininshNum(0).unfininshNum(0).build())
.xiangmuZJ(FundOV.builder().fininshNum("0").unfininshNum("0").build())
.xiangmuZT(projectStatusList)
.XXQY(projectByRegionList)
@ -704,68 +706,68 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
@Override
public Boolean updateType() {
Boolean result=projectinfoMapper.updateType()>0;
Boolean result = projectinfoMapper.updateType() > 0;
return result;
}
@Override
public TypeResponseOV getIds() {
HuzhouProjectinfo projectInfo =new HuzhouProjectinfo();
HuzhouProjectinfo projectInfo = new HuzhouProjectinfo();
projectInfo.setStage("0");
ProjectInfoAuthSelect projectInfoAuthSelect = CommonUtils.setGetProjectInfoAuth(projectInfo);
List<HuzhouProjectinfoOV> projectAndChildInfoPageList = projectinfoMapper.getProjectAndChildInfoPageList(projectInfoAuthSelect);
Map<String, List<HuzhouProjectinfoOV>> zxmMap = projectAndChildInfoPageList.stream().collect(Collectors.groupingBy(HuzhouProjectinfo::getType));
int total = projectAndChildInfoPageList.size();
List<String> rkIds = zxmMap.get("1").stream().map(x -> x.getId()).collect(Collectors.toList());
List<String> ptIds= zxmMap.get("2").stream().map(x -> x.getId()).collect(Collectors.toList());
List<String> ptIds = zxmMap.get("2").stream().map(x -> x.getId()).collect(Collectors.toList());
TypeResponseOV.TypeResponseOVBuilder result = TypeResponseOV.builder().total(total).rkIdsList(rkIds).ptIdsList(ptIds).pageList(projectAndChildInfoPageList);
return null;
}
@Override
public TypeResponseOV getIdsByType() {
HuzhouProjectinfo projectInfo =new HuzhouProjectinfo();
HuzhouProjectinfo projectInfo = new HuzhouProjectinfo();
projectInfo.setStage("0");
ProjectInfoAuthSelect projectInfoAuthSelect = CommonUtils.setGetProjectInfoAuth(projectInfo);
List<HuzhouProjectinfoOV> projectAndChildInfoPageList = projectinfoMapper.getProjectAndChildInfoPageList(projectInfoAuthSelect);
Map<String, List<HuzhouProjectinfoOV>> zxmMap = projectAndChildInfoPageList.stream().collect(Collectors.groupingBy(HuzhouProjectinfo::getType));
List<HuzhouSubProjectinfo> cxm = new ArrayList<>();
for(HuzhouProjectinfoOV info:projectAndChildInfoPageList){
if(info.getChildren()!=null){
for (HuzhouProjectinfoOV info : projectAndChildInfoPageList) {
if (info.getChildren() != null) {
cxm.addAll(info.getChildren());
}
}
Map<String, List<HuzhouSubProjectinfo>> cxmMap = cxm.stream().collect(Collectors.groupingBy(x->x.getType()));
int zxmNum=0;
int cxmNum=0;
for (String key:zxmMap.keySet()) {
zxmNum= zxmMap.get(key).size()+zxmNum;
Map<String, List<HuzhouSubProjectinfo>> cxmMap = cxm.stream().collect(Collectors.groupingBy(x -> x.getType()));
int zxmNum = 0;
int cxmNum = 0;
for (String key : zxmMap.keySet()) {
zxmNum = zxmMap.get(key).size() + zxmNum;
}
for (String key:cxmMap.keySet()) {
cxmNum= zxmMap.get(key).size()+cxmNum;
for (String key : cxmMap.keySet()) {
cxmNum = zxmMap.get(key).size() + cxmNum;
}
int total = zxmNum + cxmNum;
List<String> rkIds = zxmMap.get("1").stream().map(x -> x.getId()).collect(Collectors.toList());
List<String> crkIds = cxmMap.get("1").stream().map(x->x.getId()).collect(Collectors.toList());
List<String> ptIds= zxmMap.get("2").stream().map(x -> x.getId()).collect(Collectors.toList());
ptIds.addAll(cxmMap.get("2").stream().map(x->x.getId()).collect(Collectors.toList()));
List<String> crkIds = cxmMap.get("1").stream().map(x -> x.getId()).collect(Collectors.toList());
List<String> ptIds = zxmMap.get("2").stream().map(x -> x.getId()).collect(Collectors.toList());
ptIds.addAll(cxmMap.get("2").stream().map(x -> x.getId()).collect(Collectors.toList()));
TypeResponseOV result = TypeResponseOV.builder().total(total).rkIdsList(rkIds).crkIdsList(crkIds).ptIdsList(ptIds).build();
return result;
}
@Override
public ProjectProgressOV getProgress(List<String> Ids) {
int fininshNum=0;
int unfininshNum=0;
double progress=0.00;
int fininshNum = 0;
int unfininshNum = 0;
double progress = 0.00;
String formatted = "0.00";
if(Ids.size()!=0){
if (Ids.size() != 0) {
List<HuzhouPlaninfo> planInfoList = planinfoService.listByProjectIds(Ids);
fininshNum = (int) planInfoList.stream().filter(x -> (x.getIsfinish().equals("2"))).count();
unfininshNum = planInfoList.size()-fininshNum;
if(fininshNum!=0&&planInfoList.size()!=0){
progress= (double)fininshNum/planInfoList.size();
unfininshNum = planInfoList.size() - fininshNum;
if (fininshNum != 0 && planInfoList.size() != 0) {
progress = (double) fininshNum / planInfoList.size();
formatted = String.format("%.2f", progress);
}
@ -779,17 +781,17 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
@Override
public ProjectProgressOV getProgressByType() {
int fininshNum=0;
int unfininshNum=0;
int fininshNum = 0;
int unfininshNum = 0;
//1、查询所有入库项目
//2、查询所有项目对应的计划阶段
List<String> projectIds = this.getIdsByType().getRkIdsList();
List<String> cprojectIds = this.getIdsByType().getCrkIdsList();
projectIds.addAll(cprojectIds);
if(projectIds.size()!=0){
if (projectIds.size() != 0) {
List<HuzhouPlaninfo> planInfoList = planinfoService.listByProjectIds(projectIds);
fininshNum = (int) planInfoList.stream().filter(x -> (x.getIsfinish().equals("2"))).count();
unfininshNum = planInfoList.size()-fininshNum;
unfininshNum = planInfoList.size() - fininshNum;
}
ProjectProgressOV result = ProjectProgressOV.builder().fininshNum(fininshNum).unfininshNum(unfininshNum).build();
@ -801,35 +803,74 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
public NewFundOV getFund(List<String> Ids) {
NewFundOV result = null;
BigDecimal defVal = new BigDecimal("0.00");
if(Ids.size()!=0){
if (Ids.size() != 0) {
Map<String, BigDecimal> totalMap = contractinfoMapper.getTotalByProjectIds(Ids);
Map<String, BigDecimal> paymentMap = contractinfoMapper.getPaymentsByProjectIds(Ids);
BigDecimal totalAmount = totalMap != null?totalMap.get("totalAcount"):defVal;
BigDecimal totalCentral = totalMap != null?totalMap.get("centralAcount"):defVal;
BigDecimal totalProvincial = totalMap != null?totalMap.get("provincialAcount"):defVal;
BigDecimal payAmount = paymentMap != null?paymentMap.get("totalPayment"):defVal;
BigDecimal payCentral = paymentMap != null?paymentMap.get("centralPayment"):defVal;
BigDecimal payProvincial = paymentMap != null?paymentMap.get("provincialPayment"):defVal;
BigDecimal totalAmount = totalMap != null ? totalMap.get("totalAcount") : defVal;
BigDecimal totalCentral = totalMap != null ? totalMap.get("centralAcount") : defVal;
BigDecimal totalProvincial = totalMap != null ? totalMap.get("provincialAcount") : defVal;
BigDecimal payAmount = paymentMap != null ? paymentMap.get("totalPayment") : defVal;
BigDecimal payCentral = paymentMap != null ? paymentMap.get("centralPayment") : defVal;
BigDecimal payProvincial = paymentMap != null ? paymentMap.get("provincialPayment") : defVal;
//补充区级资金、市级资金、自筹资金
//资金执行率
BigDecimal paymentExecutionRate=new BigDecimal("0.00");
if(payAmount.compareTo(BigDecimal.ZERO) > 0){
BigDecimal totalCity = totalMap != null ? totalMap.get("cityAcount") : defVal;
BigDecimal totalCounty = totalMap != null ? totalMap.get("countyAcount") : defVal;
BigDecimal totalSelf = totalMap != null ? totalMap.get("selfAcount") : defVal;
BigDecimal payCity = paymentMap != null ? paymentMap.get("cityPayment") : defVal;
BigDecimal payCounty = paymentMap != null ? paymentMap.get("countyPayment") : defVal;
BigDecimal paySelf = paymentMap != null ? paymentMap.get("selfPayment") : defVal;
//合同总资金执行率
BigDecimal paymentExecutionRate = new BigDecimal("0.00");
if (payAmount.compareTo(BigDecimal.ZERO) > 0) {
paymentExecutionRate = payAmount.divide(totalAmount, 2, RoundingMode.HALF_UP);
}
BigDecimal superiorFundPayment = payCentral.add(payProvincial);
BigDecimal superiorFundTotal = totalCentral.add(totalProvincial);
//上级资金执行率
BigDecimal superiorFundExecutionRate=new BigDecimal("0.00");
if(superiorFundPayment.compareTo(BigDecimal.ZERO) > 0){
BigDecimal superiorFundExecutionRate = new BigDecimal("0.00");
if (superiorFundPayment.compareTo(BigDecimal.ZERO) > 0) {
superiorFundExecutionRate = superiorFundPayment.divide(superiorFundTotal, 2, RoundingMode.HALF_UP);
}
//中央资金执行率
BigDecimal payCentralExecutionRate = new BigDecimal("0.00");
if (payCentral.compareTo(BigDecimal.ZERO) > 0) {
payCentralExecutionRate = payCentral.divide(totalCentral, 2, RoundingMode.HALF_UP);
}
//省级资金执行率
BigDecimal payProvincialExecutionRate = new BigDecimal("0.00");
if (payProvincial.compareTo(BigDecimal.ZERO) > 0) {
payProvincialExecutionRate = payProvincial.divide(totalProvincial, 2, RoundingMode.HALF_UP);
}
//市级资金执行率
BigDecimal payCityExecutionRate = new BigDecimal("0.00");
if (payCity.compareTo(BigDecimal.ZERO) > 0) {
payCityExecutionRate = payCity.divide(totalCity, 2, RoundingMode.HALF_UP);
}
//区级资金执行率
BigDecimal payCountyExecutionRate = new BigDecimal("0.00");
if (payCounty.compareTo(BigDecimal.ZERO) > 0) {
payCountyExecutionRate = payCounty.divide(totalCounty, 2, RoundingMode.HALF_UP);
}
//自筹资金执行率
BigDecimal paySelfExecutionRate = new BigDecimal("0.00");
if (paySelf.compareTo(BigDecimal.ZERO) > 0) {
paySelfExecutionRate = paySelf.divide(totalSelf, 2, RoundingMode.HALF_UP);
}
result=NewFundOV.builder().totalMoney(String.valueOf(totalAmount)).payAmount(String.valueOf(payAmount))
result = NewFundOV.builder().totalMoney(String.valueOf(totalAmount)).payAmount(String.valueOf(payAmount))
.totalCentral(String.valueOf(totalCentral)).payCentral(String.valueOf(payCentral))
.totalProvincial(String.valueOf(totalProvincial)).payProvincial(String.valueOf(payProvincial))
.totalCity(String.valueOf(totalCity)).payCity(String.valueOf(payCity))
.totalCounty(String.valueOf(totalCounty)).payCounty(String.valueOf(payCounty))
.totalSelf(String.valueOf(totalSelf)).paySelf(String.valueOf(paySelf))
.paymentExecutionRate(String.valueOf(paymentExecutionRate))
.superiorFundExecutionRate(String.valueOf(superiorFundExecutionRate)).build();
.superiorFundExecutionRate(String.valueOf(superiorFundExecutionRate))
.payCentralExecutionRate(String.valueOf(payCentralExecutionRate))
.payProvincialExecutionRate(String.valueOf(payProvincialExecutionRate))
.payCityExecutionRate(String.valueOf(payCityExecutionRate))
.payCountyExecutionRate(String.valueOf(payCountyExecutionRate))
.paySelfExecutionRate(String.valueOf(paySelfExecutionRate))
.build();
}
return result;
}
@ -841,16 +882,16 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
projectIds.addAll(cprojectIds);
NewFundOV result = null;
BigDecimal defVal = new BigDecimal("0.00");
if(projectIds.size()!=0){
if (projectIds.size() != 0) {
Map<String, BigDecimal> totalMap = contractinfoMapper.getTotalByProjectIds(projectIds);
Map<String, BigDecimal> paymentMap = contractinfoMapper.getPaymentsByProjectIds(projectIds);
BigDecimal totalAmount = totalMap.size()>0?totalMap.get("totalAcount"):defVal;
BigDecimal totalCentral = totalMap.size()>0?totalMap.get("centralAcount"):defVal;
BigDecimal totalProvincial = totalMap.size()>0?totalMap.get("provincialAcount"):defVal;
BigDecimal payAmount = totalMap.size()>0?paymentMap.get("totalPayment"):defVal;
BigDecimal payCentral = totalMap.size()>0?paymentMap.get("centralPayment"):defVal;
BigDecimal payProvincial = totalMap.size()>0?paymentMap.get("provincialPayment"):defVal;
result=NewFundOV.builder().totalMoney(String.valueOf(totalAmount)).payAmount(String.valueOf(payAmount))
BigDecimal totalAmount = totalMap.size() > 0 ? totalMap.get("totalAcount") : defVal;
BigDecimal totalCentral = totalMap.size() > 0 ? totalMap.get("centralAcount") : defVal;
BigDecimal totalProvincial = totalMap.size() > 0 ? totalMap.get("provincialAcount") : defVal;
BigDecimal payAmount = totalMap.size() > 0 ? paymentMap.get("totalPayment") : defVal;
BigDecimal payCentral = totalMap.size() > 0 ? paymentMap.get("centralPayment") : defVal;
BigDecimal payProvincial = totalMap.size() > 0 ? paymentMap.get("provincialPayment") : defVal;
result = NewFundOV.builder().totalMoney(String.valueOf(totalAmount)).payAmount(String.valueOf(payAmount))
.totalCentral(String.valueOf(totalCentral)).payCentral(String.valueOf(payCentral))
.totalProvincial(String.valueOf(totalProvincial)).payProvincial(String.valueOf(payProvincial)).build();
}
@ -858,7 +899,7 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
}
@Override
public IPage<DimensionPageResponse> getDimensionPage(HuzhouProjectinfo projectInfo, Integer pageNo, Integer pageSize,String orderBy,String orderDir) {
public IPage<DimensionPageResponse> getDimensionPage(HuzhouProjectinfo projectInfo, Integer pageNo, Integer pageSize, String orderBy, String orderDir) {
Page page = new Page(pageNo, pageSize);
// //只要入库项目
// projectInfo.setType("2");
@ -867,18 +908,18 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
List<DimensionPageOV> records = pageSorted.getRecords();
List<DimensionPageResponse> newRecords = new ArrayList<>();
IPage<DimensionPageResponse> result=new Page<>();
IPage<DimensionPageResponse> result = new Page<>();
LambdaQueryWrapper<HuzhouProjectinfo> queryWrapper = new LambdaQueryWrapper<>();
List<String> projectIds=new ArrayList<>();
for(DimensionPageOV r:records) {
List<String> projectIds = new ArrayList<>();
for (DimensionPageOV r : records) {
queryWrapper.eq(HuzhouProjectinfo::getDutyWorkplace, r.getDutyWorkplace()).eq(HuzhouProjectinfo::getAdminDivision, r.getAdminDivision())
.eq(HuzhouProjectinfo::getWorkplaceProperties, r.getWorkplaceProperties()).eq(HuzhouProjectinfo::getSuperLeader, r.getSuperLeader());
projectIds.addAll(projectinfoMapper.selectList(queryWrapper).stream().map(x -> x.getId()).collect(Collectors.toList()));
NewFundOV fund = this.getFund(projectIds);
ProjectProgressOV progress = this.getProgress(projectIds);
DimensionPageResponse build =new DimensionPageResponse();
BeanUtils.copyProperties(r,build);
DimensionPageResponse build = new DimensionPageResponse();
BeanUtils.copyProperties(r, build);
BigDecimal totalDecimal = BigDecimal.valueOf(r.getTotalMoney());
BigDecimal roundedTotalDecimal = totalDecimal.setScale(2, RoundingMode.HALF_UP);
BigDecimal centralDecimal = BigDecimal.valueOf(r.getCentralMoney());
@ -897,8 +938,9 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
result.setSize(pageSorted.getSize()).setCurrent(pageSorted.getCurrent()).setRecords(newRecords).setTotal(pageSorted.getTotal());
return result;
}
@Override
public IPage<ProjectPageResponse> getProjectPage(HuzhouProjectinfo projectInfo, Integer pageNo, Integer pageSize,String orderBy,String orderDir) {
public IPage<ProjectPageResponse> getProjectPage(HuzhouProjectinfo projectInfo, Integer pageNo, Integer pageSize, String orderBy, String orderDir) {
Page page = new Page(pageNo, pageSize);
// //只要入库项目
// projectInfo.setType("2");
@ -907,14 +949,14 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
List<ProjectPageOV> records = pageSorted.getRecords();
List<ProjectPageResponse> newRecords = new ArrayList<>();
IPage<ProjectPageResponse> result=new Page<>();
for(ProjectPageOV r:records) {
List<String> projectIds=new ArrayList<>();
IPage<ProjectPageResponse> result = new Page<>();
for (ProjectPageOV r : records) {
List<String> projectIds = new ArrayList<>();
projectIds.add(r.getId());
NewFundOV fund = this.getFund(projectIds);
ProjectProgressOV progress = this.getProgress(projectIds);
ProjectPageResponse build =new ProjectPageResponse();
BeanUtils.copyProperties(r,build);
ProjectPageResponse build = new ProjectPageResponse();
BeanUtils.copyProperties(r, build);
BigDecimal totalDecimal = BigDecimal.valueOf(r.getTotalMoney());
BigDecimal roundedTotalDecimal = totalDecimal.setScale(2, RoundingMode.HALF_UP);
BigDecimal centralDecimal = BigDecimal.valueOf(r.getCentralMoney());
@ -935,21 +977,59 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
}
@Override
public List<CountByConditionOV> countByReformName(String reformName) {
public CountByConditionOV countByReformName(String reformName) {
HuzhouProjectinfo projectInfo = new HuzhouProjectinfo();
ProjectInfoAuthSelect projectInfoAuthSelect = CommonUtils.setGetProjectInfoAuth(projectInfo);
List<HuzhouProjectinfoOV> projectinfoOVList= projectinfoMapper.getListByCondition(projectInfoAuthSelect,reformName);
List<HuzhouProjectinfoOV> projectinfoOVList = projectinfoMapper.getProjectAndChildInfoPageList(projectInfoAuthSelect);
List<String> allProjectIds = projectinfoOVList.stream().map(x -> x.getId()).collect(Collectors.toList());
Map<String, List<HuzhouProjectinfoOV>> reformMap = projectinfoOVList.stream().collect(Collectors.groupingBy(HuzhouProjectinfo::getReformName));
for (String key:reformMap.keySet()){
//总进度(待补充)
List<ProjectProgressOV> progressResponse = new ArrayList<>();
List<FundByConditionOV> fundByConditionResponse = new ArrayList<>();
for (String key : reformMap.keySet()) {
List<String> keyProjectIdsList = reformMap.get(key).stream().map(x -> x.getId()).collect(Collectors.toList());
//进度
ProjectProgressOV progress = this.getProgress(keyProjectIdsList);
progressResponse.add(ProjectProgressOV.builder().name(key).projectProgress(String.valueOf(progress.getProjectProgress())).build());
//所属改革总金额、执行率、上级资金执行率
NewFundOV fund = this.getFund(keyProjectIdsList);
//各种类资金总额和执行率,from fund
fundByConditionResponse.add(FundByConditionOV.builder().name(key).totalMoney(fund.getTotalMoney())
.paymentExecutionRate(fund.getPaymentExecutionRate())
.superiorFundExecutionRate(fund.getSuperiorFundExecutionRate()).build());
}
return null;
//各种类资金总额和执行率,from fund
NewFundOV totalFund = this.getFund(allProjectIds);
FundByKindOV fundByTypeResponse = FundByKindOV.builder().totalMoney(totalFund.getTotalMoney()).payAmount(totalFund.getPayAmount())
.paymentExecutionRate(totalFund.getPaymentExecutionRate())
.totalCentral(totalFund.getTotalCentral()).payCentral(totalFund.getPayCentral())
.payCentralExecutionRate(totalFund.getPayCentralExecutionRate())
.totalProvincial(totalFund.getTotalProvincial()).payProvincial(totalFund.getPayProvincial())
.payProvincialExecutionRate(totalFund.getPayProvincialExecutionRate())
.totalCity(totalFund.getTotalCity()).payCity(totalFund.getPayCity())
.payCityExecutionRate(totalFund.getPayCityExecutionRate())
.totalCounty(totalFund.getTotalCounty()).payCounty(totalFund.getPayCounty())
.payCountyExecutionRate(totalFund.getPayCountyExecutionRate())
.totalSelf(totalFund.getTotalSelf()).paySelf(totalFund.getPaySelf())
.paySelfExecutionRate(totalFund.getPaySelfExecutionRate())
.build();
CountByConditionOV result = CountByConditionOV.builder().progress(progressResponse)
.countFundByCondition(fundByConditionResponse).countFundByFundType(fundByTypeResponse).build();
return result;
}
public Map<String,String> countNumByPlan(){
List<String> planName=new ArrayList<>();
planName.add("合同签订");
planName.add("终验阶段");
HuzhouProjectinfo projectInfo = new HuzhouProjectinfo();
ProjectInfoAuthSelect projectInfoAuthSelect = CommonUtils.setGetProjectInfoAuth(projectInfo);
List<HuzhouProjectinfoOV> projectinfoOVList = projectinfoMapper.getProjectAndChildInfoPageList(projectInfoAuthSelect);
List<String> projectIds = projectinfoOVList.stream().map(x -> x.getId()).collect(Collectors.toList());
return null;
}
}

16
huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/CountByConditionOV.java

@ -1,17 +1,27 @@
package com.easy.admin.modules.huzhou.vo;
import lombok.Builder;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.List;
@Data
@Accessors(chain = true)
@Builder(toBuilder = true)
public class CountByConditionOV {
private String totalProgress;
List<ProjectStatusOV> progress;
List<ProjectProgressOV> progress;
List<ProjecFoundOV> countFundByFundType;
List<FundByConditionOV> countFundByCondition;
List<ProjecFoundOV> countFundByCondition;
FundByKindOV countFundByFundType;
}

21
huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/FundByConditionOV.java

@ -0,0 +1,21 @@
package com.easy.admin.modules.huzhou.vo;
import lombok.Builder;
import lombok.Data;
import lombok.experimental.Accessors;
@Data
@Accessors(chain = true)
@Builder(toBuilder = true)
public class FundByConditionOV {
private String name;
private String totalMoney;
private String paymentExecutionRate;
private String superiorFundExecutionRate;
}

42
huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/FundByKindOV.java

@ -0,0 +1,42 @@
package com.easy.admin.modules.huzhou.vo;
import lombok.Builder;
import lombok.Data;
import lombok.experimental.Accessors;
@Data
@Accessors(chain = true)
@Builder(toBuilder = true)
public class FundByKindOV {
private String totalMoney;
private String totalCentral;
private String totalProvincial;
private String totalCity;
private String totalCounty;
private String totalSelf;
private String payAmount;
private String payCentral;
private String payProvincial;
private String payCity;
private String payCounty;
private String paySelf;
private String paymentExecutionRate;
private String payCentralExecutionRate;
private String payProvincialExecutionRate;
private String payCityExecutionRate;
private String payCountyExecutionRate;
private String paySelfExecutionRate;
}

21
huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/NewFundOV.java

@ -12,14 +12,35 @@ import java.math.BigDecimal;
public class NewFundOV {
private String name;
private String totalMoney;
private String totalCentral;
private String totalProvincial;
private String totalCity;
private String totalCounty;
private String totalSelf;
private String payAmount;
private String payCentral;
private String payProvincial;
private String payCity;
private String payCounty;
private String paySelf;
private String paymentExecutionRate;
private String superiorFundExecutionRate;
private String payCentralExecutionRate;
private String payProvincialExecutionRate;
private String payCityExecutionRate;
private String payCountyExecutionRate;
private String paySelfExecutionRate;
}

2
huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/ProjecFoundOV.java → huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/ProjectFoundOV.java

@ -8,7 +8,7 @@ import lombok.experimental.Accessors;
@Data
@Accessors(chain = true)
@Builder(toBuilder = true)
public class ProjecFoundOV {
public class ProjectFoundOV {
private String name;
private String total;
private String paymentExecutionRate;

2
huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/ProjectProgressOV.java

@ -8,6 +8,8 @@ import lombok.experimental.Accessors;
@Accessors(chain = true)
@Builder(toBuilder = true)
public class ProjectProgressOV {
private String name;
private Integer fininshNum;
private Integer unfininshNum;

Loading…
Cancel
Save