合同项目关系修改

This commit is contained in:
pengjie 2024-12-17 16:21:44 +08:00
parent c2816c47cf
commit ff266a3cef
19 changed files with 159 additions and 63 deletions

View File

@ -22,6 +22,7 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
@ -56,6 +57,10 @@ public class CostContractController {
@PostMapping(value = "/page")
public Result<IPage<CostContract>> queryPageList(@ApiIgnore @RequestBody Map<String, Object> map) {
QueryWrapper<CostContract> queryWrapper = QueryGenerator.initPageQueryWrapper(CostContract.class, map);
String projectSn = MapUtils.getString(map, "projectSn");
if (StringUtils.isNotBlank(projectSn)) {
queryWrapper.eq("d.project_sn", projectSn);
}
Page<CostContract> page = PageUtil.getPage(map);
IPage<CostContract> pageList = costContractService.pageList(page, queryWrapper);
return Result.success(pageList);
@ -72,7 +77,10 @@ public class CostContractController {
@PostMapping(value = "/list")
public Result<List<CostContract>> queryList(@RequestBody CostContract costContract) {
QueryWrapper<CostContract> queryWrapper = QueryGenerator.initQueryWrapper(costContract);
List<CostContract> list = costContractService.list(queryWrapper);
if (StringUtils.isNotBlank(costContract.getProjectSn())) {
queryWrapper.eq("d.project_sn", costContract.getProjectSn());
}
List<CostContract> list = costContractService.pageList(new Page(-1, -1), queryWrapper).getRecords();
return Result.success(list);
}

View File

@ -4,6 +4,7 @@ import java.io.Serializable;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@ -430,15 +431,15 @@ public class CostContract implements Serializable {
/**
* 项目SN
*/
@Excel(name = "项目SN", width = 15)
@ApiModelProperty(value = "项目SN")
private String projectSn;
// @Excel(name = "项目SN", width = 15)
// @ApiModelProperty(value = "项目SN")
// private String projectSn;
/**
* 科目
*/
@Excel(name = "科目", width = 15)
@ApiModelProperty(value = "科目")
private String kmlkd;
// @Excel(name = "科目", width = 15)
// @ApiModelProperty(value = "科目")
// private String kmlkd;
/**
* 合约规划
*/
@ -451,4 +452,16 @@ public class CostContract implements Serializable {
@Excel(name = "是否关联主合同", width = 15)
@ApiModelProperty(value = "是否关联主合同")
private String sfglzht;
@TableField(exist = false)
@ApiModelProperty(value = "科目id")
private String subjectId;
@TableField(exist = false)
@ApiModelProperty(value = "金额")
private String amount;
@TableField(exist = false)
@ApiModelProperty(value = "项目SN")
private String projectSn;
}

View File

@ -37,7 +37,7 @@ public class CostContractDetail implements Serializable {
*/
@Excel(name = "合同ID", width = 15)
@ApiModelProperty(value = "合同ID")
private Long contractId;
private Integer contractId;
/**
* 合约ID
*/
@ -49,7 +49,12 @@ public class CostContractDetail implements Serializable {
*/
@Excel(name = "项目ID", width = 15)
@ApiModelProperty(value = "项目ID")
private Long projectId;
private Integer projectId; /**
* 项目SN
*/
@Excel(name = "项目SN", width = 15)
@ApiModelProperty(value = "项目SN")
private String projectSn;
/**
* 科目ID
*/

View File

@ -272,8 +272,14 @@ public class CostContractPay implements Serializable {
@Excel(name = "开票金额", width = 15)
@ApiModelProperty(value = "开票金额")
private String jshj;
/**
* 项目SN
*/
@Excel(name = "项目SN", width = 15)
@ApiModelProperty(value = "项目SN")
private String projectSn;
@TableField(exist = false)
@ApiModelProperty(value = "经办人")
private String jbrName;
@ApiModelProperty(value = "合同名称")
private String htmcName;
}

View File

@ -4,6 +4,7 @@ import java.io.Serializable;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@ -163,4 +164,20 @@ public class CostPayPlan implements Serializable {
@Excel(name = "财务修订金额", width = 15)
@ApiModelProperty(value = "财务修订金额")
private String cwxdje;
/**
* 所属项目
*/
@Excel(name = "所属项目", width = 15)
@ApiModelProperty(value = "所属项目")
private String sxm;
/**
* 项目SN
*/
@Excel(name = "项目SN", width = 15)
@ApiModelProperty(value = "项目SN")
private String projectSn;
@TableField(exist = false)
@ApiModelProperty(value = "合同名称")
private String htmcName;
}

View File

@ -1,8 +1,14 @@
package com.zhgd.xmgl.modules.cost.mapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zhgd.xmgl.modules.cost.entity.CostContract;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @Description: 合同信息
@ -13,4 +19,7 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface CostContractMapper extends BaseMapper<CostContract> {
Page<CostContract> pageList(Page page, @Param(Constants.WRAPPER)Wrapper<CostContract> wrapper);
List<CostContract> getList(@Param(Constants.WRAPPER)Wrapper<CostContract> wrapper);
}

View File

@ -1,8 +1,13 @@
package com.zhgd.xmgl.modules.cost.mapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zhgd.xmgl.modules.cost.entity.CostContractPay;
import com.zhgd.xmgl.modules.cost.entity.CostPayPlan;
import org.apache.ibatis.annotations.Mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
/**
* @Description: 合同支付
@ -13,4 +18,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@Mapper
public interface CostContractPayMapper extends BaseMapper<CostContractPay> {
Page<CostContractPay> pageList(Page page, @Param(Constants.WRAPPER) Wrapper<CostContractPay> wrapper);
}

View File

@ -1,8 +1,13 @@
package com.zhgd.xmgl.modules.cost.mapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zhgd.xmgl.modules.cost.entity.CostPayPlan;
import org.apache.ibatis.annotations.Mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.checkerframework.checker.signedness.qual.Constant;
/**
* @Description: 资金计划
@ -13,4 +18,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@Mapper
public interface CostPayPlanMapper extends BaseMapper<CostPayPlan> {
Page<CostPayPlan> pageList(Page page, @Param(Constants.WRAPPER) Wrapper<CostPayPlan> wrapper);
}

View File

@ -2,4 +2,13 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zhgd.xmgl.modules.cost.mapper.CostContractMapper">
<select id="pageList" resultType="com.zhgd.xmgl.modules.cost.entity.CostContract">
SELECT c.*, d.subject_id, d.amount, d.project_sn from cost_contract c LEFT JOIN cost_contract_detail d on c.id = d.contract_id
${ew.customSqlSegment}
</select>
<select id="getList" resultType="com.zhgd.xmgl.modules.cost.entity.CostContract">
SELECT c.*, d.subject_id, d.amount, d.project_sn from cost_contract c LEFT JOIN cost_contract_detail d on c.id = d.contract_id
${ew.customSqlSegment}
</select>
</mapper>

View File

@ -2,4 +2,8 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zhgd.xmgl.modules.cost.mapper.CostContractPayMapper">
<select id="pageList" resultType="com.zhgd.xmgl.modules.cost.entity.CostContractPay">
SELECT cp.*, cc.htmc as htmcName from cost_contract_pay cp LEFT JOIN cost_contract cc ON cp.htmc = cc.id
${ew.customSqlSegment}
</select>
</mapper>

View File

@ -2,4 +2,8 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zhgd.xmgl.modules.cost.mapper.CostPayPlanMapper">
<select id="pageList" resultType="com.zhgd.xmgl.modules.cost.entity.CostPayPlan">
SELECT cp.*, cc.htmc as htmcName from cost_pay_plan cp LEFT JOIN cost_contract cc ON cp.htmc = cc.id
${ew.customSqlSegment}
</select>
</mapper>

View File

@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zhgd.xmgl.modules.cost.entity.CostContract;
import java.util.List;
/**
* @Description: 合同信息
* @author pengj
@ -14,4 +16,6 @@ import com.zhgd.xmgl.modules.cost.entity.CostContract;
public interface ICostContractService extends IService<CostContract> {
Page<CostContract> pageList(Page page, Wrapper<CostContract> wrapper);
List<CostContract> getList(Wrapper<CostContract> wrapper);
}

View File

@ -57,7 +57,7 @@ public class CostBudgetServiceImpl extends ServiceImpl<CostBudgetMapper, CostBud
List<CostBudget> budgetList = this.list(Wrappers.<CostBudget>lambdaQuery()
.eq(CostBudget::getProjectSn, projectSn)
.eq(CostBudget::getVersion, version));
List<CostContract> contractList = costContractService.list(Wrappers.<CostContract>lambdaQuery()
List<CostContract> contractList = costContractService.getList(Wrappers.<CostContract>lambdaQuery()
.eq(CostContract::getProjectSn, projectSn));
// List<CostContractDetail> contractList = costContractDetailService.list(Wrappers.<CostContractDetail>lambdaQuery()
// .eq(CostContractDetail::getProjectId, projectSn));
@ -69,7 +69,7 @@ public class CostBudgetServiceImpl extends ServiceImpl<CostBudgetMapper, CostBud
for (CostBudget costBudget : budgetList) {
List<CostSubject> children = allList.stream().filter(a -> a.getParentId().toString().equals(costBudget.getSubjectId().toString())).collect(Collectors.toList());
if (children.size() > 0) {
List<String> contractIds = contractList.stream().filter(c -> children.stream().map(d -> d.getId().toString()).collect(Collectors.toList()).contains(c.getKmlkd().toString())).map(c -> c.getId().toString()).collect(Collectors.toList());
List<String> contractIds = contractList.stream().filter(c -> children.stream().map(d -> d.getId().toString()).collect(Collectors.toList()).contains(c.getSubjectId().toString())).map(c -> c.getId().toString()).collect(Collectors.toList());
BigDecimal reduce = costContractPayList.stream().filter(c -> contractIds.contains(c.getHtmc())).map(c -> new BigDecimal(c.getSfje()))
.reduce(BigDecimal.ZERO, BigDecimal::add);
costBudget.setActualCost(reduce.toString());
@ -80,7 +80,7 @@ public class CostBudgetServiceImpl extends ServiceImpl<CostBudgetMapper, CostBud
costBudget.setCostDifference(ratio.multiply(new BigDecimal(100)).toString());
}
} else {
List<String> contractIds = contractList.stream().filter(c -> c.getKmlkd().toString().equals(costBudget.getSubjectId().toString())).map(c -> c.getId().toString()).collect(Collectors.toList());
List<String> contractIds = contractList.stream().filter(c -> c.getSubjectId().toString().equals(costBudget.getSubjectId().toString())).map(c -> c.getId().toString()).collect(Collectors.toList());
BigDecimal reduce = costContractPayList.stream().filter(c -> contractIds.contains(c.getHtmc())).map(c -> new BigDecimal(c.getSfje()))
.reduce(BigDecimal.ZERO, BigDecimal::add);
costBudget.setActualCost(reduce.toString());

View File

@ -39,10 +39,10 @@ public class CostContractDetailServiceImpl extends ServiceImpl<CostContractDetai
@Override
public boolean saveInfo(List<CostContractDetail> contractDetails) {
this.remove(Wrappers.<CostContractDetail>lambdaQuery().eq(CostContractDetail::getContractPlanId, contractDetails.get(0).getContractPlanId()));
this.saveBatch(contractDetails);
CostContract contractPlan = costContractService.getById(contractDetails.get(0).getContractPlanId());
String collect = contractDetails.stream().map(c -> c.getSubjectId().toString()).collect(Collectors.joining(","));
contractPlan.setKmlkd(collect);
return costContractService.updateById(contractPlan);
return this.saveBatch(contractDetails);
// CostContract contractPlan = costContractService.getById(contractDetails.get(0).getContractPlanId());
// String collect = contractDetails.stream().map(c -> c.getSubjectId().toString()).collect(Collectors.joining(","));
// contractPlan.setKmlkd(collect);
// return costContractService.updateById(contractPlan);
}
}

View File

@ -30,12 +30,6 @@ public class CostContractPayServiceImpl extends ServiceImpl<CostContractPayMappe
@Override
public IPage<CostContractPay> pageList(Page page, Wrapper<CostContractPay> wrapper) {
Page<CostContractPay> pageList = this.page(page, wrapper);
List<SystemUser> systemUserList = systemUserService.list();
for (CostContractPay record : pageList.getRecords()) {
List<SystemUser> users = systemUserList.stream().filter(s -> s.getUserId().toString().equals(record.getJbr())).collect(Collectors.toList());
record.setJbrName(users.size() > 0 ? users.get(0).getRealName() : "");
}
return pageList;
return baseMapper.pageList(page, wrapper);
}
}

View File

@ -100,8 +100,8 @@ public class CostContractPlanServiceImpl extends ServiceImpl<CostContractPlanMap
.eq(CostBudget::getProjectSn, projectInfoBySn.getProjectSn())
.eq(CostBudget::getVersion, b != null ? b.getVersion() : -1)
);
List<CostContract> contractList = costContractService.list(Wrappers.<CostContract>lambdaQuery()
.eq(CostContract::getProjectSn, projectInfoBySn.getProjectSn()));
List<CostContract> contractList = costContractService.getList(Wrappers.<CostContract>query()
.eq("d.project_sn", projectInfoBySn.getProjectSn()));
// List<CostContractDetail> contractList = costContractDetailService.list(Wrappers.<CostContractDetail>lambdaQuery()
// .eq(CostContractDetail::getProjectId, projectInfoBySn.getProjectId()));
List<CostContractPlan> contractPlanList = this.list(Wrappers.<CostContractPlan>lambdaQuery()
@ -119,8 +119,8 @@ public class CostContractPlanServiceImpl extends ServiceImpl<CostContractPlanMap
if (allSubList.size() > 0) {
List<CostBudget> costBudgetList = costBudgetService.list(Wrappers.<CostBudget>lambdaQuery()
.eq(CostBudget::getProjectSn, projectInfoBySn.getProjectSn()));
List<CostContract> contractList = costContractService.list(Wrappers.<CostContract>lambdaQuery()
.eq(CostContract::getProjectSn, projectInfoBySn.getProjectSn()));
List<CostContract> contractList = costContractService.getList(Wrappers.<CostContract>query()
.eq("d.project_sn", projectInfoBySn.getProjectSn()));
// List<CostContractDetail> contractDetailList = costContractDetailService.list(Wrappers.<CostContractDetail>lambdaQuery()
// .eq(CostContractDetail::getProjectId, projectInfoBySn.getProjectId()));
List<CostPayPlan> costPayPlanList = costPayPlanService.list();
@ -218,10 +218,10 @@ public class CostContractPlanServiceImpl extends ServiceImpl<CostContractPlanMap
costContractPlanDto.setSubjectId(costSubject.getParentId());
costContractPlanDto.setContractName(costSubject.getName());
// 查询合约
List<CostContract> contracts = contractList.stream().filter(c -> c.getKmlkd().toString().equals(costSubject.getId().toString())).collect(Collectors.toList());
List<CostContract> contracts = contractList.stream().filter(c -> c.getSubjectId().toString().equals(costSubject.getId().toString())).collect(Collectors.toList());
costContractPlanDto.setGoal(costBudgetList.stream().filter(c -> c.getSubjectId().toString().equals(costSubject.getId().toString()))
.map(c -> new BigDecimal(c.getBudgetCost())).reduce(BigDecimal.ZERO, BigDecimal::add));
costContractPlanDto.setUnderApproval(contracts.stream().map(c -> new BigDecimal(c.getHtjea())).reduce(BigDecimal.ZERO, BigDecimal::add));
costContractPlanDto.setUnderApproval(contracts.stream().map(c -> new BigDecimal(c.getAmount())).reduce(BigDecimal.ZERO, BigDecimal::add));
BigDecimal subtract = costContractPlanDto.getGoal().subtract(costContractPlanDto.getUnderApproval());
costContractPlanDto.setAllowance(subtract);
costContractPlanDto.setType(0);
@ -252,22 +252,22 @@ public class CostContractPlanServiceImpl extends ServiceImpl<CostContractPlanMap
List<CostSubject> children = allList.stream().filter(a -> a.getParentId().toString().equals(costSubject.getId().toString())).collect(Collectors.toList());
if (children.size() > 0) {
List<String> stringList = children.stream().map(d -> d.getId().toString()).collect(Collectors.toList());
List<CostContract> contracts = contractList.stream().filter(c -> stringList.contains(c.getKmlkd().toString())
List<CostContract> contracts = contractList.stream().filter(c -> stringList.contains(c.getSubjectId().toString())
&& c.getHtqszt().equals("履约完毕")).collect(Collectors.toList());
List<String> htbhList = contracts.stream().map(c -> c.getHtbh()).collect(Collectors.toList());
List<String> htidList = contracts.stream().map(c -> c.getId().toString()).collect(Collectors.toList());
List<CostContract> subContracts = contracts.stream().filter(c -> htidList.contains(c.getGlzht())).collect(Collectors.toList());
dynamicCostDto.setGoal(costBudgetList.stream().filter(c -> stringList.contains(c.getSubjectId().toString()))
.map(c -> new BigDecimal(c.getBudgetCost())).reduce(BigDecimal.ZERO, BigDecimal::add));
dynamicCostDto.setUnderApproval(contracts.stream().filter(c -> c.getHtqszt().equals("审核中")).map(c -> new BigDecimal(c.getHtjea())).reduce(BigDecimal.ZERO, BigDecimal::add));
dynamicCostDto.setUnderApproval(contracts.stream().filter(c -> c.getHtqszt().equals("审核中")).map(c -> new BigDecimal(c.getAmount())).reduce(BigDecimal.ZERO, BigDecimal::add));
dynamicCostDto.setDynamicCost(dynamicCostDto.getContractAmount().add(dynamicCostDto.getUnderApproval()).add(dynamicCostDto.getToOccur()).add(dynamicCostDto.getContractAmount()));
BigDecimal subtract = dynamicCostDto.getGoal().subtract(dynamicCostDto.getDynamicCost());
dynamicCostDto.setCostDifference(dynamicCostDto.getGoal().compareTo(new BigDecimal(0)) > 0 ? subtract.divide(dynamicCostDto.getGoal(), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).toString() : "0");
dynamicCostDto.setAllowance(subtract);
//合同金额
dynamicCostDto.setContractAmount(contracts.stream().map(c -> new BigDecimal(c.getHtjea())).reduce(BigDecimal.ZERO, BigDecimal::add));
dynamicCostDto.setContractAmount(contracts.stream().map(c -> new BigDecimal(c.getAmount())).reduce(BigDecimal.ZERO, BigDecimal::add));
//变更金额
dynamicCostDto.setContractAmountChange(subContracts.stream().map(c -> new BigDecimal(c.getHtjea())).reduce(BigDecimal.ZERO, BigDecimal::add));
dynamicCostDto.setContractAmountChange(subContracts.stream().map(c -> new BigDecimal(c.getAmount())).reduce(BigDecimal.ZERO, BigDecimal::add));
//合同总额
dynamicCostDto.setContractAmountTotal(dynamicCostDto.getContractAmount().add(dynamicCostDto.getContractAmountChange()));
//合同产值
@ -288,23 +288,23 @@ public class CostContractPlanServiceImpl extends ServiceImpl<CostContractPlanMap
//应付账款=合同产值-实付登记
dynamicCostDto.setAccountsPayAmount(dynamicCostDto.getCostQuantity().subtract(dynamicCostDto.getPayAmount()));
} else {
List<CostContract> contracts = contractList.stream().filter(c -> c.getKmlkd().toString().equals(costSubject.getId().toString())).collect(Collectors.toList());
List<CostContract> contracts = contractList.stream().filter(c -> c.getSubjectId().toString().equals(costSubject.getId().toString())).collect(Collectors.toList());
List<String> htbhList = contracts.stream().map(c -> c.getHtbh()).collect(Collectors.toList());
List<String> htidList = contracts.stream().map(c -> c.getId().toString()).collect(Collectors.toList());
List<CostContract> subContracts = contracts.stream().filter(c -> htidList.contains(c.getGlzht())).collect(Collectors.toList());
dynamicCostDto.setGoal(costBudgetList.stream().filter(c -> c.getSubjectId().toString().equals(costSubject.getId().toString()))
.map(c -> new BigDecimal(c.getBudgetCost())).reduce(BigDecimal.ZERO, BigDecimal::add));
// dynamicCostDto.setContractAmount(contracts.stream().filter(c -> c.getHtqszt().equals("履约完毕")).map(c -> new BigDecimal(c.getHtjea())).reduce(BigDecimal.ZERO, BigDecimal::add));
dynamicCostDto.setUnderApproval(contracts.stream().filter(c -> c.getHtqszt().equals("审核中")).map(c -> new BigDecimal(c.getHtjea())).reduce(BigDecimal.ZERO, BigDecimal::add));
dynamicCostDto.setUnderApproval(contracts.stream().filter(c -> c.getHtqszt().equals("审核中")).map(c -> new BigDecimal(c.getAmount())).reduce(BigDecimal.ZERO, BigDecimal::add));
dynamicCostDto.setDynamicCost(dynamicCostDto.getContractAmount().add(dynamicCostDto.getUnderApproval()).add(dynamicCostDto.getToOccur()).add(dynamicCostDto.getContractAmount()));
BigDecimal subtract = dynamicCostDto.getGoal().subtract(dynamicCostDto.getDynamicCost());
dynamicCostDto.setCostDifference(dynamicCostDto.getGoal().compareTo(new BigDecimal(0)) > 0 ? subtract.divide(dynamicCostDto.getGoal(), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).toString() : "0");
dynamicCostDto.setAllowance(subtract);
dynamicCostDto.setChildren(getDynamicChildren(contracts.stream().filter(c -> c.getHtqszt().equals("履约完毕")).collect(Collectors.toList()), costSubject.getId().toString()));
//合同金额
dynamicCostDto.setContractAmount(contracts.stream().map(c -> new BigDecimal(c.getHtjea())).reduce(BigDecimal.ZERO, BigDecimal::add));
dynamicCostDto.setContractAmount(contracts.stream().map(c -> new BigDecimal(c.getAmount())).reduce(BigDecimal.ZERO, BigDecimal::add));
//变更金额
dynamicCostDto.setContractAmountChange(subContracts.stream().map(c -> new BigDecimal(c.getHtjea())).reduce(BigDecimal.ZERO, BigDecimal::add));
dynamicCostDto.setContractAmountChange(subContracts.stream().map(c -> new BigDecimal(c.getAmount())).reduce(BigDecimal.ZERO, BigDecimal::add));
//合同总额
dynamicCostDto.setContractAmountTotal(dynamicCostDto.getContractAmount().add(dynamicCostDto.getContractAmountChange()));
//合同产值
@ -337,7 +337,7 @@ public class CostContractPlanServiceImpl extends ServiceImpl<CostContractPlanMap
for (CostContract contract : contracts) {
DynamicCostDto dynamicCostDto = new DynamicCostDto();
dynamicCostDto.setSubjectName(contract.getHtmc());
dynamicCostDto.setContractAmount(new BigDecimal(contract.getHtjea()));
dynamicCostDto.setContractAmount(new BigDecimal(contract.getAmount()));
dynamicCostDtoList.add(dynamicCostDto);
}
return dynamicCostDtoList;

View File

@ -28,7 +28,7 @@ public class CostContractServiceImpl extends ServiceImpl<CostContractMapper, Cos
@Override
public Page<CostContract> pageList(Page page, Wrapper<CostContract> wrapper) {
Page<CostContract> result = this.page(page, wrapper);
Page<CostContract> result = baseMapper.pageList(page, wrapper);
List<Integer> list = result.getRecords().stream().map(r -> r.getId()).collect(Collectors.toList());
// if (list.size() > 0) {
// List<CostContractSettlement> settlements = costContractSettlementService.list(Wrappers.<CostContractSettlement>lambdaQuery()
@ -40,4 +40,9 @@ public class CostContractServiceImpl extends ServiceImpl<CostContractMapper, Cos
// }
return result;
}
@Override
public List<CostContract> getList(Wrapper<CostContract> wrapper) {
return baseMapper.getList(wrapper);
}
}

View File

@ -48,13 +48,7 @@ public class CostPayPlanServiceImpl extends ServiceImpl<CostPayPlanMapper, CostP
@Override
public Page<CostPayPlan> pageList(Page page, Wrapper<CostPayPlan> wrapper) {
Page<CostPayPlan> pageList = this.page(page, wrapper);
// List<SystemUser> systemUserList = systemUserService.list();
// for (CostPayPlan record : pageList.getRecords()) {
// List<SystemUser> users = systemUserList.stream().filter(s -> s.getUserId().toString().equals(record.getApplyBy())).collect(Collectors.toList());
// record.setApplyByName(users.size() > 0 ? users.get(0).getRealName() : "");
// }
return pageList;
return baseMapper.pageList(page, wrapper);
}
@Override
@ -76,7 +70,7 @@ public class CostPayPlanServiceImpl extends ServiceImpl<CostPayPlanMapper, CostP
contractPayOverviewDto.setProjectId(project.getProjectId());
contractPayOverviewDto.setProjectName(project.getProjectName());
contractPayOverviewDto.setPlanPayAmount(list.stream().map(l -> new BigDecimal(l.getJhfkje())).reduce(BigDecimal.ZERO, BigDecimal::add));
contractPayOverviewDto.setPayAmount(costContractPayList.stream().filter(c -> c.getSxm().equals(project.getProjectId().toString()))
contractPayOverviewDto.setPayAmount(costContractPayList.stream().filter(c -> c.getSxm() != null && c.getSxm().equals(project.getProjectId().toString()))
.map(c -> new BigDecimal(c.getSfje())).reduce(BigDecimal.ZERO, BigDecimal::add));
contractPayOverviewDto.setCostDifference(contractPayOverviewDto.getPlanPayAmount().subtract(contractPayOverviewDto.getPayAmount()));
if (contractPayOverviewDto.getPlanPayAmount().compareTo(new BigDecimal(0)) != 0) {

View File

@ -171,22 +171,26 @@ public class JiuzhuDateUtil {
// }
// System.out.println(detailArray);
// costContract.setGysbm(gys.toString());
// JSONArray shareArray = jsonArray.getJSONObject(i).getJSONArray("detail6");
// for (int j = 0; j < shareArray.size(); j++) {
// CostContractDetail costContractDetail = new CostContractDetail();
// costContractDetail.setContractId(costContract.getId());
// costContractDetail.setContractPlanId(Long.valueOf(shareArray.getJSONObject(i).getString("hyghkm")));
// costContractDetail.setAmount(shareArray.getJSONObject(i).getString("ghjehs"));
// costContractDetail.setSubjectId(Long.valueOf(shareArray.getJSONObject(i).getString("km")));
// costContractDetail.setProjectId(Integer.valueOf(shareArray.getJSONObject(i).getString("xmmc")));
// contractDetails.add(costContractDetail);
// }
List<Project> projectList = projects.stream().filter(p -> p.getProjectId().toString().equals(costContract.getXmbh())).collect(Collectors.toList());
costContract.setProjectSn(projectList.size() > 0 ? projectList.get(0).getProjectSn() : "");
JSONArray shareArray = jsonArray.getJSONObject(i).getJSONArray("detail5");
for (int j = 0; j < shareArray.size(); j++) {
CostContractDetail costContractDetail = new CostContractDetail();
costContractDetail.setContractId(costContract.getId());
String hygh = shareArray.getJSONObject(j).getString("hygh");
costContractDetail.setContractPlanId(StringUtils.isNotBlank(hygh) ? Long.valueOf(hygh) : null);
costContractDetail.setAmount(shareArray.getJSONObject(j).getString("htgjjehs"));
String kmlkd = shareArray.getJSONObject(j).getString("kmlkd");
costContractDetail.setSubjectId(StringUtils.isNotBlank(kmlkd) ? Long.valueOf(kmlkd) : null);
costContractDetail.setProjectId(Integer.valueOf(shareArray.getJSONObject(j).getString("xmid")));
List<Project> projectList = projects.stream().filter(p ->
p.getProjectId().toString().equals(costContractDetail.getProjectId().toString())).collect(Collectors.toList());
costContractDetail.setProjectSn(projectList.size() > 0 ? projectList.get(0).getProjectSn() : "");
contractDetails.add(costContractDetail);
}
contractList.add(costContract);
}
costContractService.saveOrUpdateBatch(contractList);
// costContractDetailService.saveBatch(contractDetails);
costContractDetailService.remove(null);
costContractDetailService.saveBatch(contractDetails);
}
}
@ -200,6 +204,7 @@ public class JiuzhuDateUtil {
JSONObject obj = JSONObject.parseObject(result);
JSONArray jsonArray = obj.getJSONArray("result");
List<CostContractPay> contractPayList = new ArrayList<>();
List<Project> projects = projectService.list();
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject projectObj = jsonArray.getJSONObject(i).getJSONObject("mainTable");
CostContractPay costContractPay = JSONObject.parseObject(JSON.toJSONString(projectObj), CostContractPay.class);
@ -213,6 +218,9 @@ public class JiuzhuDateUtil {
}
}
costContractPay.setJshj(jshjTotal.toString());
List<Project> projectList = projects.stream().filter(p ->
p.getProjectId().toString().equals(costContractPay.getSxm())).collect(Collectors.toList());
costContractPay.setProjectSn(projectList.size() > 0 ? projectList.get(0).getProjectSn() : "");
contractPayList.add(costContractPay);
}
costContractPayService.saveOrUpdateBatch(contractPayList);
@ -229,9 +237,13 @@ public class JiuzhuDateUtil {
JSONObject obj = JSONObject.parseObject(result);
JSONArray jsonArray = obj.getJSONArray("result");
List<CostPayPlan> payPlanList = new ArrayList<>();
List<Project> projects = projectService.list();
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject projectObj = jsonArray.getJSONObject(i).getJSONObject("mainTable");
CostPayPlan costPayPlan = JSONObject.parseObject(JSON.toJSONString(projectObj), CostPayPlan.class);
List<Project> projectList = projects.stream().filter(p ->
p.getProjectId().toString().equals(costPayPlan.getSxm())).collect(Collectors.toList());
costPayPlan.setProjectSn(projectList.size() > 0 ? projectList.get(0).getProjectSn() : "");
payPlanList.add(costPayPlan);
}
costPayPlanService.saveOrUpdateBatch(payPlanList);