From 0ab9dfd8f122195e4e9f09bd50c59e0a47450bec Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期三, 19 三月 2025 15:50:03 +0800
Subject: [PATCH] fix: resolve merge conflicts in .gitignore
---
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TContractController.java | 132 +++++++++++++++++++++++++++++++------------
1 files changed, 95 insertions(+), 37 deletions(-)
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TContractController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TContractController.java
index d77bafd..8a363c6 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TContractController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TContractController.java
@@ -78,6 +78,8 @@
private TCheckAcceptRecordService checkAcceptRecordService;
@Autowired
private StateProcessTemplateService stateProcessTemplateService;
+ @Autowired
+ private FlwTaskMapper flwTaskMapper;
@ApiOperation(value = "获取合同分页列表")
@PostMapping(value = "/contractList")
@@ -90,11 +92,13 @@
@PostMapping(value = "/addContract")
@PreAuthorize("@ss.hasPermi('contract:list:add')")
public R<Boolean> addContract(@Validated @RequestBody TContractDTO dto) {
+ LocalDateTime changeTime = dto.getChangeTime();
long count = contractService.count(new LambdaQueryWrapper<TContract>().eq(TContract::getContractNumber, dto.getContractNumber()));
if (count!=0){
return R.fail("合同编号不可重复");
}
dto.setChangeRent(dto.getMonthRent());
+ dto.setChangeTime(null);
contractService.save(dto);
if (dto.getStatus().equals("2")){
//发起合同新增审批
@@ -122,7 +126,7 @@
new ImmutableMap.Builder<String, Long>().
put("id", flwTask.getId())
.build();
- QuartzManager.addJob(StateProcessJob.class, (StateProcessJob.name+flwTask.getId()).toUpperCase(), TimeJobType.AUTO_AUDIT,new Date(new Date().getTime()+10*1000L), maps);
+ QuartzManager.addJob(StateProcessJob.class, (StateProcessJob.name+flwTask.getId()).toUpperCase(), TimeJobType.AUTO_AUDIT,new Date(new Date().getTime()+48*60*60*1000L), maps);
}
}
}
@@ -132,7 +136,7 @@
tContractRentType.setIncreasingDecreasing(dto.getIncreasingDecreasing());
tContractRentType.setIncreasingDecreasingType(dto.getIncreasingDecreasingType());
tContractRentType.setNumericalValue(dto.getNumericalValue());
- tContractRentType.setChangeTime(dto.getChangeTime());
+ tContractRentType.setChangeTime(changeTime);
tContractRentType.setCycleTime(dto.getCycleTime());
contractRentTypeService.save(tContractRentType);
}
@@ -143,6 +147,7 @@
@PostMapping(value = "/updateContract")
@PreAuthorize("@ss.hasPermi('contract:list:edit')")
public R<Boolean> updateContract(@Validated @RequestBody TContractDTO dto) {
+ dto.setChangeTime(null);
contractService.updateById(dto);
contractRentTypeService.remove(new LambdaQueryWrapper<TContractRentType>()
.eq(TContractRentType::getContractId,dto.getId()));
@@ -155,6 +160,36 @@
tContractRentType.setChangeTime(dto.getChangeTime());
tContractRentType.setCycleTime(dto.getCycleTime());
contractRentTypeService.save(tContractRentType);
+ }
+ if (dto.getStatus().equals("2")){
+ //发起合同新增审批
+ ProcessStartBO processStartBO = new ProcessStartBO();
+ processStartBO.setCategory(ProcessCategoryEnum.CATEGORY1.getValue().toString());
+ processStartBO.setModuleName("合同新增审批");
+ processStartBO.setName(dto.getContractName());
+ //需要显示发起申请人所在单位
+// String cedName = SecurityUtils.getLoginUser().getUser().getDept().getDeptName();
+// String remark = String.format("【镇/街】:%s,【征收实施单位】:%s,【申请金额】:%s万元", stateProject.getStreet(), cedName, stateApplyRecord.getAmount());
+ processStartBO.setRemark("");
+ Map<String, Object> variable = new HashMap<>();
+ variable.put("projectId", dto.getId());
+ processStartBO.setVariable(variable);
+ //开启工作流程
+ Boolean start = stateProcessTemplateService.start(processStartBO);
+ if(start){
+ FlwTask flwTask = flwTaskMapper.selectOne(Wrappers.lambdaQuery(FlwTask.class)
+ .like(FlwTask::getVariable, dto.getId())
+ .orderByDesc(FlwTask::getCreateTime)
+ .last("LIMIT 1"));
+ if(Objects.nonNull(flwTask)){
+ // 添加定时任务
+ Map<String, ? extends Object> maps =
+ new ImmutableMap.Builder<String, Long>().
+ put("id", flwTask.getId())
+ .build();
+ QuartzManager.addJob(StateProcessJob.class, (StateProcessJob.name+flwTask.getId()).toUpperCase(), TimeJobType.AUTO_AUDIT,new Date(new Date().getTime()+48*60*60*1000L), maps);
+ }
+ }
}
return R.ok();
}
@@ -176,32 +211,28 @@
TContractVO res = new TContractVO();
TContract contract = contractService.getById(id);
BeanUtils.copyProperties(contract,res);
- res.setPayType(DictUtils.getDictLabel(DictConstants.DICT_TYPE_CONTRACT_PAY_TYPE,res.getPayType()));
- res.setStatus(DictUtils.getDictLabel(DictConstants.DICT_TYPE_CONTRACT_STATUS,res.getStatus()));
TContractRentType contractRentType = contractRentTypeService.lambdaQuery().eq(TContractRentType::getContractId, id).one();
if (contractRentType!=null){
BeanUtils.copyProperties(contractRentType,res);
}
- TContract oldContract = contractService.getOne(new LambdaQueryWrapper<TContract>()
- .eq(TContract::getHouseId,contract.getHouseId())
- .eq(TContract::getStatus, 4)
- .le(TContract::getStartTime, LocalDateTime.now())
- .ge(TContract::getEndTime, LocalDateTime.now()));
+// TContract oldContract = contractService.getOne(new LambdaQueryWrapper<TContract>()
+// .eq(TContract::getHouseId,contract.getHouseId())
+// .eq(TContract::getStatus, 4)
+// .le(TContract::getStartTime, LocalDateTime.now())
+// .ge(TContract::getEndTime, LocalDateTime.now()));
THouse house = houseService.getById(contract.getHouseId());
- if (oldContract!=null){
- house.setTenantType(oldContract.getPayType());
- }
+ house.setTenantType(contract.getPayType());
res.setHouse(house);
List<TBill> list = billService.lambdaQuery()
.eq(TBill::getContractId, id)
- .in(TBill::getPayFeesStatus, Arrays.asList("1,4"))
+ .ne(TBill::getPayFeesStatus, 3)
.list();
BigDecimal payMoney = new BigDecimal("0");
for (TBill tBill : list) {
- payMoney = payMoney.add(tBill.getPayFeesMoney()).add(tBill.getPayableFeesPenalty());
+ payMoney = payMoney.add(tBill.getOutstandingMoney()).add(tBill.getPayableFeesPenalty());
}
TCheckAcceptRecord tCheckAcceptRecord = checkAcceptRecordService.lambdaQuery().eq(TCheckAcceptRecord::getContractId, id).one();
- res.setCheckResult(Objects.nonNull(tCheckAcceptRecord)?tCheckAcceptRecord.getCheckResult():false);
+ res.setCheckResult(Objects.nonNull(tCheckAcceptRecord)&&Objects.nonNull(tCheckAcceptRecord.getCheckResult())?tCheckAcceptRecord.getCheckResult():null);
res.setPayMoney(payMoney);
return R.ok(res);
@@ -228,7 +259,14 @@
TContract contract = contractService.getById(id);
contract.setStatus("8");
contractService.updateById(contract);
- return R.ok();
+ // 将所有未缴费账单设置未已失效
+ List<TBill> tBills = billService.list(new LambdaQueryWrapper<TBill>()
+ .ne(TBill::getPayFeesStatus, 3)
+ .eq(TBill::getContractId, contract.getId()));
+ for (TBill tBill : tBills) {
+ tBill.setPayFeesStatus("5");
+ }
+ billService.updateBatchById(tBills); return R.ok();
}
@ApiOperation(value = "终止合同剩余未缴费账单列表")
@PostMapping(value = "/contractBillList")
@@ -257,31 +295,51 @@
List<TContract> list = contractService.lambdaQuery().in(TContract::getId, dto.getIds()).list();
List<String> res = new ArrayList<>();
for (TContract contract : list) {
+ TBill firstBill = billService.lambdaQuery().eq(TBill::getContractId, contract.getId())
+ .orderByDesc(TBill::getStartTime).last("limit 1").one();
+
THouse tHouse = houseService.getById(contract.getHouseId());
Map<String, Object> templateParam = new HashMap<>(5);
- templateParam.put("partyOneName", contract.getPartyOneName());
- templateParam.put("partyTwoName", contract.getPartyTwoName());
- templateParam.put("houseAddress", tHouse.getHouseAddress());
- templateParam.put("houseArea", tHouse.getHouseArea()+"m²");
- templateParam.put("startTime", DateUtils.localDateTimeToStringYear(contract.getStartTime()));
- templateParam.put("endTime", DateUtils.localDateTimeToStringYear(contract.getEndTime()));
- templateParam.put("monthRent", "¥¥"+contract.getMonthRent()+"元");
- templateParam.put("monthRentString", "人民币"+NumberToChineseUtils.numberToChinese(contract.getMonthRent().setScale(2, BigDecimal.ROUND_DOWN).doubleValue()));
+ templateParam.put("${partyOneName}", contract.getPartyOneName());
+ templateParam.put("${partyTwoName}", contract.getPartyTwoName());
+ templateParam.put("${houseAddress}", tHouse.getHouseAddress());
+ templateParam.put("${houseArea}", tHouse.getHouseArea()+"m²");
+ long between = ChronoUnit.DAYS.between(contract.getStartTime(), contract.getStartPayTime())+1;
+ templateParam.put("${day}", between);
+ templateParam.put("${endTimeFree}", DateUtils.localDateTimeToStringYear(contract.getStartPayTime().plusDays(1)));
+ templateParam.put("${startPayTime}", DateUtils.localDateTimeToStringYear(contract.getStartPayTime()));
+ templateParam.put("${startTime}", DateUtils.localDateTimeToStringYear(contract.getStartTime()));
+ templateParam.put("${endTime}", DateUtils.localDateTimeToStringYear(contract.getEndTime()));
+ templateParam.put("${monthRent}", "¥"+contract.getMonthRent()+"元");
+ templateParam.put("${monthRentString}", "人民币"+NumberToChineseUtils.numberToChinese(contract.getMonthRent().setScale(2, BigDecimal.ROUND_DOWN).doubleValue()));
String totalYear = Objects.nonNull(contract.getTotalYear())?contract.getTotalYear().toString():"";
- templateParam.put("totalYear", "¥¥"+totalYear+"元");
+ templateParam.put("${totalYear}", "¥"+totalYear+"元");
String totalYearString = StringUtils.isNotEmpty(totalYear)?NumberToChineseUtils.numberToChinese(contract.getTotalYear().setScale(2, BigDecimal.ROUND_DOWN).doubleValue()):"";
- templateParam.put("totalYearString", "人民币"+totalYearString);
- templateParam.put("payType", contract.getPayType().equals("1")?"月":contract.getPayType().equals("2")?"季":"年");
- templateParam.put("firstRent", "¥"+(contract.getPayType().equals("1")?contract.getMonthRent():contract.getPayType().equals("2")?contract.getMonthRent().multiply(new BigDecimal("3")):contract.getMonthRent().multiply(new BigDecimal("12"))).setScale(2,BigDecimal.ROUND_DOWN)+"元");
- templateParam.put("firstRentString", "人民币"+NumberToChineseUtils.numberToChinese((contract.getPayType().equals("1")?contract.getMonthRent():contract.getPayType().equals("2")?contract.getMonthRent().multiply(new BigDecimal("3")):contract.getMonthRent().multiply(new BigDecimal("12")).setScale(2,BigDecimal.ROUND_DOWN)).doubleValue()));
- templateParam.put("nextPayTime", contract.getPayType().equals("1")?"月":contract.getPayType().equals("2")?"季":"年");
- templateParam.put("deposit", "¥"+contract.getDeposit()+"元");
- templateParam.put("depositString", NumberToChineseUtils.numberToChinese(contract.getDeposit().setScale(2, BigDecimal.ROUND_DOWN).doubleValue()));
- templateParam.put("partyOnePerson", contract.getPartyOnePerson());
- templateParam.put("partyOnePhone", contract.getPartyOnePhone());
- templateParam.put("partyTwoPerson", contract.getPartyTwoPerson());
- templateParam.put("partyTwoPhone", contract.getPartyTwoPhone());
- String url = wordUtil.generatePdf("/template", "1_yzj_租赁合同.xml", templateParam, "租赁合同", "E:\\");
+ templateParam.put("${totalYearString}", "人民币"+totalYearString);
+ templateParam.put("${payType}", contract.getPayType().equals("1")?"月":contract.getPayType().equals("2")?"季":"年");
+ if(firstBill!=null){
+ templateParam.put("${firstRent}", "¥"+(firstBill.getPayableFeesMoney())+"元");
+ }else{
+ templateParam.put("${firstRent}", "");
+
+ }
+ templateParam.put("${firstRentString}", "人民币"+NumberToChineseUtils.numberToChinese((contract.getPayType().equals("1")?contract.getMonthRent():contract.getPayType().equals("2")?contract.getMonthRent().multiply(new BigDecimal("3")):contract.getMonthRent().multiply(new BigDecimal("12")).setScale(2,BigDecimal.ROUND_DOWN)).doubleValue()));
+ templateParam.put("${nextPayTime}", contract.getPayType().equals("1")?"月":contract.getPayType().equals("2")?"季":"年");
+ templateParam.put("${deposit}", "¥"+contract.getDeposit()+"元");
+ templateParam.put("${depositString}", NumberToChineseUtils.numberToChinese(contract.getDeposit().setScale(2, BigDecimal.ROUND_DOWN).doubleValue()));
+ templateParam.put("${partyOnePerson}", contract.getPartyOnePerson());
+ templateParam.put("${partyOnePhone}", contract.getPartyOnePhone());
+ templateParam.put("${partyTwoPerson}", contract.getPartyTwoPerson());
+ templateParam.put("${partyTwoPhone}", contract.getPartyTwoPhone());
+ // 验收时间
+ TCheckAcceptRecord tCheckAcceptRecord = checkAcceptRecordService.lambdaQuery().eq(TCheckAcceptRecord::getContractId, contract.getId()).last("limit 1").one();
+ if (tCheckAcceptRecord!=null &&tCheckAcceptRecord.getCheckTime()!=null ){
+ templateParam.put("${checkTime}", DateUtils.localDateTimeToStringYear(tCheckAcceptRecord.getCheckTime()));
+ }else{
+ templateParam.put("${checkTime}", "");
+
+ }
+ String url = wordUtil.generatePdf("/usr/local/project/file/", "1_yzj_租赁合同.docx", templateParam, "租赁合同", "/usr/local/project/file/");
res.add(url);
}
--
Gitblit v1.7.1