diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractExtensionController.java b/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractExtensionController.java index f72cb2e91..941099e39 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractExtensionController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractExtensionController.java @@ -123,4 +123,22 @@ public class WxRentContractExtensionController extends BaseController { } return wxRentContractService.extensionUpdate(wxRentContract, user.getId(),user.getName(), EnumFromType.OTHER.getCode(),oldDate); } + + @PostMapping("updateFile") + @SystemControllerLog(description = "租赁合同续签-更新文件") + public ResultData updateFile(@RequestBody WxRentContract wxRentContract) { + log.debug("[" + getIpAddr() + "] WxRentContractExtensionController::updateFile"); + if(StringUtils.isBlank(wxRentContract.getBusDiscountRatio())){ + wxRentContract.setBusDiscountTime(new Integer(0)); + } + MallUserInfo user = getUser(); + wxRentContract.updateTenantInfo(user); + wxRentContract.setAdjustPeriodHandle(); + wxRentContract.setRentPriceHandle(); + Date oldDate = wxRentContract.getRentalStartDate(); + if(wxRentContract.getRentStartType()!=null && wxRentContract.getRentStartType().equals(EnumRentStartType.STARTTIME.getCode())){ + wxRentContract.setRentalStartDate(wxRentContract.getStartDate()); + } + return wxRentContractService.updateFile(wxRentContract, user.getId(),user.getName(),oldDate); + } } diff --git a/mallinkService/src/main/java/com/iformall/service/WxRentContractService.java b/mallinkService/src/main/java/com/iformall/service/WxRentContractService.java index bdaa58d50..bcab3218a 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxRentContractService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxRentContractService.java @@ -110,4 +110,6 @@ public interface WxRentContractService { ResultData extension(WxRentContract record,Long userId,String userName,Date oldRentStartDate); ResultData extensionUpdate(WxRentContract record, Long userId,String userName,int from,Date oldRentStartDate); + + ResultData extensionUpdateFile(WxRentContract wxRentContract, Long userId,String userName,Date oldRentStartDate); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java index 5ec9f20b9..848f8dad8 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -2846,4 +2846,46 @@ public class WxRentContractServiceImpl implements WxRentContractService { } return new ResultData(Result.SUCCESS, "保存租赁合同信息成功", wxRentContract); } + + @Transactional(rollbackFor = {Exception.class}) + @Override + public ResultData extensionUpdateFile(WxRentContract record, Long userId,String userName,Date oldRentStartDate) { + // 保存调整金额(预账单调整) + if(!CollectionUtils.isEmpty(record.getPreviewBillRentList())){ + savePreviewBill(record); + } + ResultData resultData = getResultDataForExtensionUpdate(record, userId,0,oldRentStartDate); + if (resultData.code != Result.SUCCESS) { + return resultData; + } + + //有模板,启动审批流,没有,直接生产账单 + if (!CollectionUtils.isEmpty(record.getFlowParams())) { + if (wxFlowService.getModelByType((Integer) record.getFlowParams().get("businessType"), record) == null + && record.getMerchantId() != null) { + updateRentContractStatus(record.getId()); + }else{ + record.getFlowParams().put("businessId", record.getId().toString()); + if (record.getMerchantId() != null) { + record.getFlowParams().put("supplement", true); //设置补录 + } + wxFlowService.start(record.getFlowParams(), userId, userName, record); + + // 合同状态改成待签约 + WxRentContract updateRentContract = new WxRentContract(); + updateRentContract.setId(record.getId()); + updateRentContract.setStatus(EnumRentContractStatus.WAIT_SIGN.getCode()); + wxRentContractMapper.updateStatus(updateRentContract); + logger.info("id:{},启动审批流成功,是否补录:{}", record.getId().toString(), record.getMerchantId() != null); + } + }else{ + //审批状态重置 + WxRentContract updateRentContract = new WxRentContract(); + updateRentContract.setId(record.getId()); + updateRentContract.setApplyStatus(EnumRentContractAppStatus.DEFAULT.getCode()); + updateApplyStatus(updateRentContract); + } + + return resultData; + } }