Browse Source

用于测试

ai_dev
gjh 1 month ago
parent
commit
0f5357586e
  1. 104
      huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/TestController.java

104
huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/TestController.java

@ -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…
Cancel
Save