1 changed files with 104 additions and 0 deletions
@ -0,0 +1,104 @@ |
|||
package com.easy.admin.modules.huzhou.controller; |
|||
|
|||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|||
import com.easy.admin.auth.model.SysUser; |
|||
import com.easy.admin.common.api.vo.Result; |
|||
import com.easy.admin.common.core.exception.EasyException; |
|||
import com.easy.admin.modules.huzhou.dao.HuzhouProjectinfoMoneyMapper; |
|||
import com.easy.admin.modules.huzhou.entity.HuzhouContractinfo; |
|||
import com.easy.admin.modules.huzhou.entity.HuzhouProjectinfoMoney; |
|||
import com.easy.admin.modules.huzhou.service.IHuzhouContractinfoService; |
|||
import com.easy.admin.util.ShiroUtil; |
|||
import com.fasterxml.jackson.core.JsonProcessingException; |
|||
import com.fasterxml.jackson.core.type.TypeReference; |
|||
import com.fasterxml.jackson.databind.ObjectMapper; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
import javax.annotation.Resource; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @Author gejunhao |
|||
* @Date 2025/2/12 9:52 |
|||
* @Description: 用于测试接口逻辑 |
|||
*/ |
|||
@Slf4j |
|||
@RequestMapping("/test") |
|||
@RestController |
|||
public class TestController { |
|||
@Resource |
|||
private IHuzhouContractinfoService contractinfoService; |
|||
@Autowired |
|||
private HuzhouProjectinfoMoneyMapper projectinfoMoneyMapper; |
|||
|
|||
@GetMapping("/getContractInfo") |
|||
public Result<?> getProjectContractInfo(String projectId,String taskName){ |
|||
// 查询存在的问题:根据提交的合同信息去查询 用户提交的 taskName可能更改,只能根据projectId查询,查询的数据是 有两中Flag区分
|
|||
// 合同签订阶段回显的是 合同信息(计划)
|
|||
LambdaQueryWrapper<HuzhouContractinfo> qw = new LambdaQueryWrapper<>(); |
|||
qw.eq(HuzhouContractinfo::getProjectId, projectId) |
|||
.eq(HuzhouContractinfo::getFlag, taskName.equals("合同签订") ? "计划" : "实际"); |
|||
// 2.查询数据库中符合条件的合同信息
|
|||
// List<HuzhouContractinfo> dbList = contractinfoService.list(qw);
|
|||
// boolean flag = contractinfoService.removeBatchByIds(dbList);
|
|||
// if (flag){
|
|||
// log.info("删除原有数据成功!---{}",dbList);
|
|||
// }
|
|||
SysUser currentUser = ShiroUtil.getCurrentUser(); |
|||
currentUser.getId(); |
|||
return Result.OK(currentUser.getId()); |
|||
} |
|||
|
|||
/** |
|||
* 金额校验 |
|||
* @param contractinfoList |
|||
* @return |
|||
* @throws JsonProcessingException |
|||
*/ |
|||
@PostMapping("/checkAmount") |
|||
public Result<?> checkAmount( @RequestParam(value = "contractinfoList", required = false) String contractinfoList, |
|||
@RequestParam(value = "contractMoneyFieldsValue", required = false) String contractMoneyFieldsValue) throws JsonProcessingException { |
|||
ObjectMapper mapper = new ObjectMapper(); |
|||
// 1.需要更新的合同信息集合
|
|||
List<HuzhouContractinfo> contractList = mapper.readValue(contractinfoList, new TypeReference<List<HuzhouContractinfo>>() { |
|||
}); |
|||
Boolean flag = false; |
|||
String msg = "总金额与其他金额之和不相等,请重新输入!"; |
|||
HuzhouProjectinfoMoney huzhouProjectinfoMoney = new HuzhouProjectinfoMoney(); |
|||
ObjectMapper mapper2 = new ObjectMapper(); |
|||
huzhouProjectinfoMoney = mapper2.readValue(contractMoneyFieldsValue, new TypeReference<HuzhouProjectinfoMoney>(){}); |
|||
HuzhouProjectinfoMoney projectMoney = projectinfoMoneyMapper.selectById(huzhouProjectinfoMoney.getId()); |
|||
Double contractTotalMoney = projectMoney.getContractTotalMoney(); |
|||
Double contractSelfMoney = projectMoney.getContractSelfMoney(); |
|||
Double contractCentralMoney = projectMoney.getContractCentralMoney(); |
|||
Double contractProvincialMoney = projectMoney.getContractProvincialMoney(); |
|||
Double contractCityMoney = projectMoney.getContractCityMoney(); |
|||
Double contractCountyMoney = projectMoney.getContractCountyMoney(); |
|||
Double approvalProvincialMoney = projectMoney.getApprovalProvincialMoney(); |
|||
|
|||
// 总金额等于其他金额相加之和
|
|||
for (HuzhouContractinfo contract : contractList) { |
|||
Double totalMoney = contract.getTotalMoney(); |
|||
Double centralMoney = contract.getCentralMoney() != null ? contract.getCentralMoney() : 0.0; |
|||
Double provincialMoney = contract.getProvincialMoney() != null ? contract.getProvincialMoney() : 0.0; |
|||
Double cityMoney = contract.getCityMoney() != null ? contract.getCityMoney() : 0.0; |
|||
Double countyMoney = contract.getCountyMoney() != null ? contract.getCountyMoney() : 0.0; |
|||
Double selfMoney = contract.getSelfMoney() != null ? contract.getSelfMoney() : 0.0; |
|||
|
|||
// 计算其他资金来源金额之和
|
|||
double sumOfOtherMoneys = centralMoney + provincialMoney + cityMoney + countyMoney + selfMoney; |
|||
|
|||
// 检查总金额是否等于其他资金来源金额之和
|
|||
if (Double.compare(totalMoney, sumOfOtherMoneys) != 0) { |
|||
// 可以在这里抛出异常或者记录错误信息
|
|||
throw new EasyException("总金额与其他金额之和不相等,请重新输入! " ); |
|||
}else { |
|||
flag = true; |
|||
//msg = "总金额与其他金额之和相等,校验通过!" ;
|
|||
} |
|||
} |
|||
return Result.OK(flag); |
|||
} |
|||
} |
Loading…
Reference in new issue