承包合同,安全质量大屏
This commit is contained in:
@ -5,7 +5,6 @@ import cn.hutool.core.io.FileUtil;
|
||||
import cn.hutool.core.util.IdcardUtil;
|
||||
import cn.hutool.http.HttpRequest;
|
||||
import cn.hutool.http.HttpResponse;
|
||||
import cn.hutool.json.JSONObject;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
@ -129,7 +128,7 @@ public class DemoTest {
|
||||
log.info("执行定时任务:同步 {}至{} 计划详情到施工产值", lastMonday, lastSunday);
|
||||
Boolean synced = progressPlanDetailService.syncPlanDetail2ConstructionValue(lastMonday, lastSunday, null);*/
|
||||
LocalDate start = LocalDate.of(2024, 1, 1); // 起始时间(2024-01-01)
|
||||
LocalDate end = LocalDate.of(2025, 10, 13); // 截止时间(2025-09-15)
|
||||
LocalDate end = LocalDate.of(2025, 10, 20); // 截止时间(2025-09-15)
|
||||
|
||||
// 如果起始不是周一,调整到当周的周一
|
||||
if (start.getDayOfWeek() != DayOfWeek.MONDAY) {
|
||||
@ -149,7 +148,7 @@ public class DemoTest {
|
||||
.ge(PgsProgressPlanDetail::getDate, monday)
|
||||
.le(PgsProgressPlanDetail::getDate, sunday)
|
||||
.ne(PgsProgressPlanDetail::getFinishedNumber, BigDecimal.ZERO)
|
||||
.eq(PgsProgressPlanDetail::getStatus, "1")
|
||||
// .eq(PgsProgressPlanDetail::getStatus, "1")
|
||||
.list();
|
||||
if (CollUtil.isEmpty(planDetailList)) {
|
||||
// 下一周
|
||||
@ -244,8 +243,8 @@ public class DemoTest {
|
||||
value.setOutValue(constructionValue);
|
||||
value.setOwnerValue(ownerValue);
|
||||
// 统计总产值
|
||||
allConstructionValue = allConstructionValue.add(constructionValue).setScale(4, RoundingMode.HALF_UP);
|
||||
allOwnerValue = allOwnerValue.add(ownerValue).setScale(4, RoundingMode.HALF_UP);
|
||||
allConstructionValue = allConstructionValue.add(constructionValue);
|
||||
allOwnerValue = allOwnerValue.add(ownerValue);
|
||||
// 添加需要修改状态的计划详情
|
||||
PgsProgressPlanDetail update = new PgsProgressPlanDetail();
|
||||
update.setId(planDetail.getId());
|
||||
@ -253,8 +252,8 @@ public class DemoTest {
|
||||
updateList.add(update);
|
||||
saveList.add(value);
|
||||
}
|
||||
range.setOutValue(allConstructionValue);
|
||||
range.setOwnerValue(allOwnerValue);
|
||||
range.setOutValue(allConstructionValue.setScale(4, RoundingMode.HALF_UP));
|
||||
range.setOwnerValue(allOwnerValue.setScale(4, RoundingMode.HALF_UP));
|
||||
// 如果产值都为0,则不保存
|
||||
if (allConstructionValue.compareTo(BigDecimal.ZERO) == 0 && allOwnerValue.compareTo(BigDecimal.ZERO) == 0) {
|
||||
return null;
|
||||
|
||||
@ -6,7 +6,6 @@ import jakarta.validation.constraints.NotEmpty;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import org.dromara.common.excel.utils.ExcelUtil;
|
||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
@ -17,6 +16,7 @@ import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.ctr.domain.bo.CtrContractProgressSettlementBo;
|
||||
import org.dromara.ctr.domain.dto.CtrContractProgressSettlementCreateReq;
|
||||
import org.dromara.ctr.domain.dto.CtrContractProgressSettlementUpdateReq;
|
||||
import org.dromara.ctr.domain.vo.CtrContractProgressSettlementTotalVo;
|
||||
import org.dromara.ctr.domain.vo.CtrContractProgressSettlementVo;
|
||||
import org.dromara.ctr.service.ICtrContractProgressSettlementService;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
@ -92,6 +92,15 @@ public class CtrContractProgressSettlementController extends BaseController {
|
||||
return toAjax(ctrContractProgressSettlementService.updateByBo(req));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询金额合计
|
||||
*/
|
||||
@SaCheckPermission("ctr:contractProgressSettlement:query")
|
||||
@GetMapping("/queryMoneyTotal")
|
||||
public R<CtrContractProgressSettlementTotalVo> queryMoneyTotal(CtrContractProgressSettlementBo bo) {
|
||||
return R.ok(ctrContractProgressSettlementService.queryMoneyTotal(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除承包合同进度结算
|
||||
*
|
||||
|
||||
@ -0,0 +1,23 @@
|
||||
package org.dromara.ctr.domain.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* @author lilemy
|
||||
* @date 2025-10-21 11:01
|
||||
*/
|
||||
@Data
|
||||
public class CtrContractProgressSettlementTotalVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1537548228169684228L;
|
||||
|
||||
/**
|
||||
* 总金额
|
||||
*/
|
||||
private BigDecimal moneyTotal;
|
||||
}
|
||||
@ -7,6 +7,7 @@ import org.dromara.ctr.domain.CtrContractProgressSettlement;
|
||||
import org.dromara.ctr.domain.bo.CtrContractProgressSettlementBo;
|
||||
import org.dromara.ctr.domain.dto.CtrContractProgressSettlementCreateReq;
|
||||
import org.dromara.ctr.domain.dto.CtrContractProgressSettlementUpdateReq;
|
||||
import org.dromara.ctr.domain.vo.CtrContractProgressSettlementTotalVo;
|
||||
import org.dromara.ctr.domain.vo.CtrContractProgressSettlementVo;
|
||||
|
||||
import java.util.Collection;
|
||||
@ -45,6 +46,14 @@ public interface ICtrContractProgressSettlementService extends IService<CtrContr
|
||||
*/
|
||||
List<CtrContractProgressSettlementVo> queryList(CtrContractProgressSettlementBo bo);
|
||||
|
||||
/**
|
||||
* 查询金额统计
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 金额统计
|
||||
*/
|
||||
CtrContractProgressSettlementTotalVo queryMoneyTotal(CtrContractProgressSettlementBo bo);
|
||||
|
||||
/**
|
||||
* 新增承包合同进度结算
|
||||
*
|
||||
|
||||
@ -22,6 +22,7 @@ import org.dromara.ctr.domain.dto.CtrContractProgressSettlementItemCreateReq;
|
||||
import org.dromara.ctr.domain.dto.CtrContractProgressSettlementItemUpdateReq;
|
||||
import org.dromara.ctr.domain.dto.CtrContractProgressSettlementUpdateReq;
|
||||
import org.dromara.ctr.domain.vo.CtrContractProgressSettlementItemVo;
|
||||
import org.dromara.ctr.domain.vo.CtrContractProgressSettlementTotalVo;
|
||||
import org.dromara.ctr.domain.vo.CtrContractProgressSettlementVo;
|
||||
import org.dromara.ctr.mapper.CtrContractProgressSettlementMapper;
|
||||
import org.dromara.ctr.service.ICtrContractProgressSettlementItemService;
|
||||
@ -32,6 +33,7 @@ import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
@ -104,6 +106,47 @@ public class CtrContractProgressSettlementServiceImpl extends ServiceImpl<CtrCon
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询金额统计
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @return 金额统计
|
||||
*/
|
||||
@Override
|
||||
public CtrContractProgressSettlementTotalVo queryMoneyTotal(CtrContractProgressSettlementBo bo) {
|
||||
LambdaQueryWrapper<CtrContractProgressSettlement> lqw = Wrappers.lambdaQuery();
|
||||
Long deptId = bo.getDeptId();
|
||||
String type = bo.getType();
|
||||
if (ObjectUtils.isNotEmpty(deptId) && StringUtils.isNotBlank(type) && !LoginHelper.isSuperAdmin()) {
|
||||
SysDeptVo sysDeptVo = deptService.selectDeptById(deptId);
|
||||
List<Long> list = StringUtils.splitTo(sysDeptVo.getAncestors(), Convert::toLong);
|
||||
if (list.size() == 2 && Objects.equals(type, "1")) {
|
||||
lqw.eq(CtrContractProgressSettlement::getDeptId, deptId);
|
||||
} else if (list.size() == 2 && Objects.equals(type, "2")) {
|
||||
lqw.eq(CtrContractProgressSettlement::getSettlementUnit, deptId);
|
||||
} else if (list.size() > 2 && Objects.equals(type, "1")) {
|
||||
lqw.eq(CtrContractProgressSettlement::getDeptId, list.get(2));
|
||||
} else if (list.size() > 2 && Objects.equals(type, "2")) {
|
||||
lqw.eq(CtrContractProgressSettlement::getSettlementUnit, list.get(2));
|
||||
}
|
||||
}
|
||||
List<CtrContractProgressSettlement> settlementList = this.list(lqw);
|
||||
CtrContractProgressSettlementTotalVo vo = new CtrContractProgressSettlementTotalVo();
|
||||
if (CollUtil.isEmpty(settlementList)) {
|
||||
return vo;
|
||||
}
|
||||
if (Objects.equals(type, "1")) {
|
||||
vo.setMoneyTotal(settlementList.stream().map(CtrContractProgressSettlement::getSettlementMoney)
|
||||
.filter(Objects::nonNull)
|
||||
.reduce(BigDecimal.ZERO, BigDecimal::add));
|
||||
} else if (Objects.equals(type, "2")) {
|
||||
vo.setMoneyTotal(settlementList.stream().map(CtrContractProgressSettlement::getDeductionMoney)
|
||||
.filter(Objects::nonNull)
|
||||
.reduce(BigDecimal.ZERO, BigDecimal::add));
|
||||
}
|
||||
return vo;
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<CtrContractProgressSettlement> buildQueryWrapper(CtrContractProgressSettlementBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<CtrContractProgressSettlement> lqw = Wrappers.lambdaQuery();
|
||||
|
||||
@ -254,7 +254,7 @@ public class PgsConstructionSchedulePlanServiceImpl extends ServiceImpl<PgsConst
|
||||
}
|
||||
// 主 Sheet 设置表头
|
||||
Row sheetRow = mainSheet.createRow(0);
|
||||
String[] headers = {"编号(格式:1,1-1,1-1-1。用于进行父子结构关联)", "节点名称", "对应项目结构", "对应项目结构编码",
|
||||
String[] headers = {"编号(格式:1,1.1,1.1.1。用于进行父子结构关联)", "节点名称", "对应项目结构", "对应项目结构编码",
|
||||
"预计开始时间(输入格式:2025-09-06)", "预计结束时间", "实际开始时间", "实际结束时间", "状态", "状态编码", "备注"};
|
||||
for (int i = 0; i < headers.length; i++) {
|
||||
Cell cell = sheetRow.createCell(i);
|
||||
|
||||
@ -145,7 +145,7 @@ public class QltQualityInspectionServiceImpl extends ServiceImpl<QltQualityInspe
|
||||
}
|
||||
// 获取巡检情况
|
||||
List<QltQualityInspectionGis> list = qualityInspectionList.stream()
|
||||
.filter(q -> "2".equals(q.getIsReply()))
|
||||
// .filter(q -> "2".equals(q.getIsReply()))
|
||||
.toList().stream().map(q -> {
|
||||
QltQualityInspectionGis gis = new QltQualityInspectionGis();
|
||||
BeanUtils.copyProperties(q, gis);
|
||||
@ -153,7 +153,7 @@ public class QltQualityInspectionServiceImpl extends ServiceImpl<QltQualityInspe
|
||||
}).toList();
|
||||
gisVo.setList(list.stream()
|
||||
.sorted(Comparator.comparing(QltQualityInspectionGis::getCreateTime).reversed())
|
||||
.limit(Optional.ofNullable(req.getPageSize()).orElse(20))
|
||||
// .limit(Optional.ofNullable(req.getPageSize()).orElse(20))
|
||||
.toList());
|
||||
gisVo.setCount((long) list.size());
|
||||
// 获取整改情况
|
||||
@ -168,7 +168,7 @@ public class QltQualityInspectionServiceImpl extends ServiceImpl<QltQualityInspe
|
||||
gisVo.setCorrectSituation((long) correctList.size());
|
||||
gisVo.setCorrectList(correctList.stream()
|
||||
.sorted(Comparator.comparing(QltQualityInspectionGis::getCreateTime).reversed())
|
||||
.limit(Optional.ofNullable(req.getPageSize()).orElse(20))
|
||||
// .limit(Optional.ofNullable(req.getPageSize()).orElse(20))
|
||||
.toList());
|
||||
// gisVo.setCorrectSituation(String.format("%.2f", passCount * 100.0 / qualityInspectionList.size()));
|
||||
return gisVo;
|
||||
|
||||
@ -232,7 +232,7 @@ public class HseSafetyInspectionServiceImpl extends ServiceImpl<HseSafetyInspect
|
||||
return gis;
|
||||
}).toList();
|
||||
List<HseSafetyInspectionGis> inspections = safetyInspectionList.stream()
|
||||
.filter(q -> "2".equals(q.getIsReply()))
|
||||
// .filter(q -> "2".equals(q.getIsReply()))
|
||||
.toList()
|
||||
.stream().map(p -> {
|
||||
HseSafetyInspectionGis gis = new HseSafetyInspectionGis();
|
||||
|
||||
Reference in New Issue
Block a user