Browse Source

modify:

1. 终验列表查询修改;
tags/24090601
WendyYang 2 weeks ago
parent
commit
b53aab797d
4 changed files with 88 additions and 68 deletions
  1. +54
    -0
      hz-pm-api/src/main/java/com/hz/pm/api/common/util/BizDateUtil.java
  2. +0
    -28
      hz-pm-api/src/main/java/com/hz/pm/api/common/util/BizUtils.java
  3. +33
    -39
      hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/manage/FinalAcceptanceManage.java
  4. +1
    -1
      hz-pm-api/src/main/java/com/hz/pm/api/projectlib/model/req/ProjectListReq.java

+ 54
- 0
hz-pm-api/src/main/java/com/hz/pm/api/common/util/BizDateUtil.java View File

@@ -0,0 +1,54 @@
package com.hz.pm.api.common.util;

import cn.hutool.core.date.LocalDateTimeUtil;
import cn.hutool.core.util.StrUtil;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.Date;
import java.util.Objects;

/**
* <p>
* BizDateUtil
* </p>
*
* @author WendyYang
* @since 11:24 2024/9/3
*/
public class BizDateUtil {

private BizDateUtil() {

}

public static String toDateStr(LocalDate date) {
if (date == null) {
return StrUtil.EMPTY;
}
return LocalDateTimeUtil.format(date, "yyyy-MM-dd");
}

public static String toDateStr(LocalDateTime date) {
if (date == null) {
return StrUtil.EMPTY;
}
return LocalDateTimeUtil.format(date, "yyyy-MM-dd");
}

public static String toDateTimeStr(LocalDateTime dateTime) {
if (dateTime == null) {
return StrUtil.EMPTY;
}
return LocalDateTimeUtil.format(dateTime, "yyyy-MM-dd HH:mm:ss");
}

public static LocalDateTime convertDate(Date date) {
if (Objects.nonNull(date)) {
return date.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
}
return null;
}

}

+ 0
- 28
hz-pm-api/src/main/java/com/hz/pm/api/common/util/BizUtils.java View File

@@ -6,7 +6,6 @@ import com.alibaba.fastjson.JSONArray;
import com.hz.pm.api.projectlib.model.enumeration.ProjectTypeNewEnum; import com.hz.pm.api.projectlib.model.enumeration.ProjectTypeNewEnum;
import com.ningdatech.basic.util.StrPool; import com.ningdatech.basic.util.StrPool;
import com.ningdatech.file.entity.vo.result.FileResultVO; import com.ningdatech.file.entity.vo.result.FileResultVO;
import liquibase.pro.packaged.O;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.util.NumberUtils; import org.springframework.util.NumberUtils;


@@ -112,13 +111,6 @@ public class BizUtils {
return StringUtils.EMPTY; return StringUtils.EMPTY;
} }


public static LocalDateTime convertDate(Date date) {
if (Objects.nonNull(date)) {
return date.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
}
return null;
}

public static String computeRise(Integer numa, Integer numb) { public static String computeRise(Integer numa, Integer numb) {
if ((Objects.isNull(numb) || numb.equals(0)) && if ((Objects.isNull(numb) || numb.equals(0)) &&
(Objects.isNull(numa) || numa.equals(0))) { (Objects.isNull(numa) || numa.equals(0))) {
@@ -140,24 +132,4 @@ public class BizUtils {
return JSON.toJSONString(jsonArray); return JSON.toJSONString(jsonArray);
} }


public static LocalDateTime convertLocalDateTime(String time) {
if (StringUtils.isBlank(time)) {
return null;
}
String[] timeSplit = time.split(StrPool.DASH);
String year = timeSplit[0];
String month = "01";
String dayOfMonth = "01";
if (timeSplit.length > 1) {
month = timeSplit[1];
}
if (timeSplit.length > 2) {
dayOfMonth = timeSplit[2];
}
return LocalDateTime.of(Integer.parseInt(year),
Integer.parseInt(month),
Integer.parseInt(dayOfMonth)
, 0, 0, 0);
}

} }

+ 33
- 39
hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/manage/FinalAcceptanceManage.java View File

@@ -14,6 +14,8 @@ import com.hz.pm.api.common.enumeration.ProjectProcessType;
import com.hz.pm.api.common.helper.UserInfoHelper; import com.hz.pm.api.common.helper.UserInfoHelper;
import com.hz.pm.api.common.statemachine.util.ProjectStateMachineUtil; import com.hz.pm.api.common.statemachine.util.ProjectStateMachineUtil;
import com.hz.pm.api.common.statemachine.util.TenderStateMachineUtil; import com.hz.pm.api.common.statemachine.util.TenderStateMachineUtil;
import com.hz.pm.api.common.util.BizDateUtil;
import com.hz.pm.api.common.util.BizUtils;
import com.hz.pm.api.common.util.ExcelDownUtil; import com.hz.pm.api.common.util.ExcelDownUtil;
import com.hz.pm.api.common.util.ExcelExportStyle; import com.hz.pm.api.common.util.ExcelExportStyle;
import com.hz.pm.api.projectdeclared.model.dto.DeclaredProjectExportDTO; import com.hz.pm.api.projectdeclared.model.dto.DeclaredProjectExportDTO;
@@ -52,7 +54,6 @@ import com.wflow.workflow.bean.vo.ProcessStartParamsVo;
import com.wflow.workflow.service.ProcessInstanceService; import com.wflow.workflow.service.ProcessInstanceService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@@ -61,10 +62,9 @@ import javax.servlet.http.HttpServletResponse;
import java.util.*; import java.util.*;
import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicInteger;
import java.util.function.BiFunction; import java.util.function.BiFunction;
import java.util.function.Function;
import java.util.stream.Collectors; import java.util.stream.Collectors;


import static com.hz.pm.api.user.helper.MhUnitQueryHelper.*;
import static com.hz.pm.api.user.helper.MhUnitQueryHelper.UnitQueryState;


/** /**
* @Classname FinalAcceptanceManage * @Classname FinalAcceptanceManage
@@ -92,14 +92,14 @@ public class FinalAcceptanceManage {


//================================================================================================================== //==================================================================================================================


private static final List<TenderMainStatus> FINAL_INSPECTED_TENDER_STATUS;
private static final List<Integer> FINAL_INSPECTED_TENDER_STATUS;


static { static {
FINAL_INSPECTED_TENDER_STATUS = new ArrayList<>(); FINAL_INSPECTED_TENDER_STATUS = new ArrayList<>();
FINAL_INSPECTED_TENDER_STATUS.add(TenderMainStatus.TO_BE_SUBMIT_FINALLY_INSPECTED_APPLY);
FINAL_INSPECTED_TENDER_STATUS.add(TenderMainStatus.ON_FINALLY_INSPECTED_APPLY);
FINAL_INSPECTED_TENDER_STATUS.add(TenderMainStatus.FINALLY_INSPECTED_PASSED);
FINAL_INSPECTED_TENDER_STATUS.add(TenderMainStatus.FINALLY_INSPECTED_FAILED);
FINAL_INSPECTED_TENDER_STATUS.add(TenderMainStatus.TO_BE_SUBMIT_FINALLY_INSPECTED_APPLY.getCode());
FINAL_INSPECTED_TENDER_STATUS.add(TenderMainStatus.ON_FINALLY_INSPECTED_APPLY.getCode());
FINAL_INSPECTED_TENDER_STATUS.add(TenderMainStatus.FINALLY_INSPECTED_PASSED.getCode());
FINAL_INSPECTED_TENDER_STATUS.add(TenderMainStatus.FINALLY_INSPECTED_FAILED.getCode());
} }


/** /**
@@ -111,7 +111,7 @@ public class FinalAcceptanceManage {
public FinalAcceptProgressStatisticsVO finalAcceptProgressStatistics(ProjectListReq req) { public FinalAcceptProgressStatisticsVO finalAcceptProgressStatistics(ProjectListReq req) {
LambdaQueryWrapper<Purchase> purchaseQuery = Wrappers.lambdaQuery(Purchase.class) LambdaQueryWrapper<Purchase> purchaseQuery = Wrappers.lambdaQuery(Purchase.class)
.select(Purchase::getProjectId, Purchase::getStatus) .select(Purchase::getProjectId, Purchase::getStatus)
.in(Purchase::getStatus, CollUtils.fieldList(FINAL_INSPECTED_TENDER_STATUS, TenderMainStatus::getCode));
.in(Purchase::getStatus, FINAL_INSPECTED_TENDER_STATUS);
List<Purchase> purchases = purchaseService.list(purchaseQuery); List<Purchase> purchases = purchaseService.list(purchaseQuery);
if (purchases.isEmpty()) { if (purchases.isEmpty()) {
return null; return null;
@@ -157,22 +157,30 @@ public class FinalAcceptanceManage {
* @return \ * @return \
*/ */
public PageVo<ProjectLibListItemVO> projectLibList(ProjectListReq req) { public PageVo<ProjectLibListItemVO> projectLibList(ProjectListReq req) {
Set<Long> projectIds = purchaseService.listProjectIdByStatus(FINAL_INSPECTED_TENDER_STATUS);
if (projectIds.isEmpty()) {
return PageVo.empty();
}
UserInfoDetails user = LoginUserUtil.loginUserDetail(); UserInfoDetails user = LoginUserUtil.loginUserDetail();
String buildOrgCode = req.getBuildOrgCode(); String buildOrgCode = req.getBuildOrgCode();
req.setBuildOrgCode(null); req.setBuildOrgCode(null);
LambdaQueryWrapper<Project> query = ProjectManageUtil.projectQuery(req)
.in(Project::getId, projectIds)
.eq(Project::getNewest, Boolean.TRUE)
.orderByAsc(Project::getApprovalDate);
Long buildOrgCodeNum = NumberUtil.parseLong(buildOrgCode, null); Long buildOrgCodeNum = NumberUtil.parseLong(buildOrgCode, null);
UnitQueryState queryState = mhUnitQueryHelper.listCanViewUnitIds(buildOrgCodeNum, user); UnitQueryState queryState = mhUnitQueryHelper.listCanViewUnitIds(buildOrgCodeNum, user);
if (!queryState.isState()) { if (!queryState.isState()) {
return null; return null;
} }
LambdaQueryWrapper<Purchase> purchaseQuery = Wrappers.lambdaQuery(Purchase.class)
.select(Purchase::getStatus, Purchase::getProjectId, Purchase::getId, Purchase::getBidName);
if (req.getTabStatus() == null) {
purchaseQuery.in(Purchase::getStatus, FINAL_INSPECTED_TENDER_STATUS);
} else {
purchaseQuery.eq(Purchase::getStatus, req.getTabStatus());
}
List<Purchase> purchases = purchaseService.list(purchaseQuery);
if (purchases.isEmpty()) {
return PageVo.empty();
}
List<Long> projectIds = CollUtils.fieldList(purchases, Purchase::getProjectId);
LambdaQueryWrapper<Project> query = ProjectManageUtil.projectQuery(req)
.in(Project::getId, projectIds)
.eq(Project::getNewest, Boolean.TRUE)
.orderByAsc(Project::getApprovalDate);
if (CollUtil.isNotEmpty(queryState.getUnitIds())) { if (CollUtil.isNotEmpty(queryState.getUnitIds())) {
query.in(Project::getBuildOrgCode, CollUtils.convert(queryState.getUnitIds(), String::valueOf)); query.in(Project::getBuildOrgCode, CollUtils.convert(queryState.getUnitIds(), String::valueOf));
} }
@@ -180,20 +188,8 @@ public class FinalAcceptanceManage {
if (page.getTotal() == 0) { if (page.getTotal() == 0) {
return PageVo.empty(); return PageVo.empty();
} }
Set<Long> allProjectIds = CollUtils.fieldSet(page.getRecords(), Project::getId);
Wrapper<Purchase> purchaseQuery = Wrappers.lambdaQuery(Purchase.class)
.in(Purchase::getProjectId, allProjectIds)
.eq(Purchase::getStatus, req.getTabStatus());
List<Purchase> purchases = purchaseService.list(purchaseQuery);
Map<Long, List<Purchase>> purchaseMap;
Map<Long, Contract> contractMap;
if (!purchases.isEmpty()) {
purchaseMap = CollUtils.group(purchases, Purchase::getProjectId);
contractMap = contractService.listByProjectIds(projectIds);
} else {
purchaseMap = Collections.emptyMap();
contractMap = Collections.emptyMap();
}
Map<Long, List<Purchase>> purchaseMap = CollUtils.group(purchases, Purchase::getProjectId);
Map<Long, Contract> contractMap = contractService.listByProjectIds(projectIds);
List<ProjectLibListItemVO> records = CollUtils.convert(page.getRecords(), w -> { List<ProjectLibListItemVO> records = CollUtils.convert(page.getRecords(), w -> {
ProjectLibListItemVO item = new ProjectLibListItemVO(); ProjectLibListItemVO item = new ProjectLibListItemVO();
item.setId(w.getId()); item.setId(w.getId());
@@ -212,11 +208,10 @@ public class FinalAcceptanceManage {
item.setReviewAmount(w.getReviewAmount()); item.setReviewAmount(w.getReviewAmount());
item.setApprovedAmount(w.getApprovalAmount()); item.setApprovedAmount(w.getApprovalAmount());
item.setApprovalDate(w.getApprovalDate()); item.setApprovalDate(w.getApprovalDate());
item.setBuildCycle(StrUtil.isNotBlank(w.getBuildCycle()) ? Integer.valueOf(w.getBuildCycle()) : null);
item.setBuildCycle(NumberUtil.parseInt(w.getBuildCycle(), null));
item.setPlanAcceptanceTime(w.getPlanAcceptanceTime()); item.setPlanAcceptanceTime(w.getPlanAcceptanceTime());
List<Purchase> currPurchases = purchaseMap.get(w.getId());
if (currPurchases != null) {
List<TenderListInfoVO> tmpPurchases = CollUtils.convert(currPurchases, x -> {
BizUtils.notNull(purchaseMap.get(w.getId()), tmp -> {
List<TenderListInfoVO> tenders = CollUtils.convert(tmp, x -> {
TenderListInfoVO tender = new TenderListInfoVO(); TenderListInfoVO tender = new TenderListInfoVO();
tender.setBidName(x.getBidName()); tender.setBidName(x.getBidName());
tender.setBidId(x.getId()); tender.setBidId(x.getId());
@@ -228,8 +223,8 @@ public class FinalAcceptanceManage {
} }
return tender; return tender;
}); });
item.setTenders(tmpPurchases);
}
item.setTenders(tenders);
});
return item; return item;
}); });
return PageVo.of(records, page.getTotal()); return PageVo.of(records, page.getTotal());
@@ -260,8 +255,7 @@ public class FinalAcceptanceManage {
String createOnStr = NdDateUtils.format(r.getCreateOn(), "yyyy-MM-dd HH:mm"); String createOnStr = NdDateUtils.format(r.getCreateOn(), "yyyy-MM-dd HH:mm");
item.setCreateOn(createOnStr); item.setCreateOn(createOnStr);
item.setSerialNumber(serialNumber.incrementAndGet()); item.setSerialNumber(serialNumber.incrementAndGet());
item.setPlanAcceptanceTime(Objects.nonNull(r.getPlanAcceptanceTime()) ?
NdDateUtils.format(r.getPlanAcceptanceTime(), "yyyy-MM-dd") : StringUtils.EMPTY);
item.setPlanAcceptanceTime(BizDateUtil.toDateStr(r.getPlanAcceptanceTime()));
collect.add(item); collect.add(item);
}); });
} }


+ 1
- 1
hz-pm-api/src/main/java/com/hz/pm/api/projectlib/model/req/ProjectListReq.java View File

@@ -1,7 +1,7 @@
package com.hz.pm.api.projectlib.model.req; package com.hz.pm.api.projectlib.model.req;


import com.ningdatech.basic.model.PagePo;
import com.hz.pm.api.common.enumeration.ExportOptionEnum; import com.hz.pm.api.common.enumeration.ExportOptionEnum;
import com.ningdatech.basic.model.PagePo;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.*; import lombok.*;


Loading…
Cancel
Save