diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxPropertyContractController.java b/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxPropertyContractController.java index 89f0bd950..79e1e2368 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxPropertyContractController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxPropertyContractController.java @@ -7,7 +7,6 @@ import com.iformall.controller.base.BaseController; import com.iformall.domain.po.MallUserInfo; import com.iformall.domain.po.WxBillProperty; import com.iformall.domain.po.WxPropertyContract; -import com.iformall.domain.po.WxRentContract; import com.iformall.enums.EnumRentStartType; import com.iformall.mapper.WxPropertyContractMapper; import com.iformall.service.WxBillPropertyService; @@ -21,6 +20,7 @@ import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.util.Date; import java.util.Map; /** @@ -60,7 +60,11 @@ public class WxPropertyContractController extends BaseController { MallUserInfo user = getUser(); wxPropertyContract.setTenantId(user.getTenantId()); wxPropertyContract.setAdjustPeriodHandle(); - return wxPropertyContractService.saveOrUpdate(wxPropertyContract, user.getId(), user.getName()); + + if(wxPropertyContract.getRentStartType()!=null && wxPropertyContract.getRentStartType().equals(EnumRentStartType.STARTTIME.getCode())){ + wxPropertyContract.setRentalStartDate(wxPropertyContract.getStartDate()); + } + return wxPropertyContractService.saveOrUpdate(wxPropertyContract, user.getId(), user.getName(),0); } @PostMapping("updateRentStartTime") @@ -77,7 +81,7 @@ public class WxPropertyContractController extends BaseController { MallUserInfo user = getUser(); propertyContract.setTenantId(user.getTenantId()); propertyContract.setAdjustPeriodHandle(); - return wxPropertyContractService.saveOrUpdate(propertyContract, user.getId(), user.getName()); + return wxPropertyContractService.saveOrUpdate(propertyContract, user.getId(), user.getName(),1); } @@ -88,7 +92,7 @@ public class WxPropertyContractController extends BaseController { MallUserInfo user = getUser(); wxPropertyContract.setTenantId(user.getTenantId()); wxPropertyContract.setAdjustPeriodHandle(); - return wxPropertyContractService.saveOrUpdate(wxPropertyContract, user.getId(), user.getName()); + return wxPropertyContractService.saveOrUpdate(wxPropertyContract, user.getId(), user.getName(),0); } @GetMapping("/del") diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java b/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java index 3dd06a2d6..ea66724f1 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java @@ -89,10 +89,11 @@ public class WxRentContractController extends BaseController { MallUserInfo user = getUser(); wxRentContract.setTenantId(user.getTenantId()); wxRentContract.setAdjustPeriodHandle(); + Date oldDate = wxRentContract.getRentalStartDate(); if(wxRentContract.getRentStartType()!=null &&wxRentContract.getRentStartType().equals(EnumRentStartType.STARTTIME.getCode())){ wxRentContract.setRentalStartDate(wxRentContract.getStartDate()); } - return wxRentContractService.save(wxRentContract, user.getId(),user.getName()); + return wxRentContractService.save(wxRentContract, user.getId(),user.getName(),oldDate); } @PostMapping("updateRentStartTime") @@ -101,7 +102,7 @@ public class WxRentContractController extends BaseController { logger.debug("[" + getIpAddr() + "] WxRentContractController::updateRentStartTime"); WxRentContract rentContract = wxRentContractMapper.selectByPrimaryKey(wxRentContract.getId()); rentContract.setRentalStartDate(wxRentContract.getRentalStartDate()); - + Date oldDate = wxRentContract.getRentalStartDate(); if(wxRentContract.getRentStartType()!=null && wxRentContract.getRentStartType().equals(EnumRentStartType.STARTTIME.getCode())){ rentContract.setRentalStartDate(rentContract.getStartDate()); } @@ -109,7 +110,7 @@ public class WxRentContractController extends BaseController { rentContract.setTenantId(user.getTenantId()); rentContract.setAdjustPeriodHandle(); rentContract.setRentPriceHandle(); - return wxRentContractService.update(rentContract, user.getId(),user.getName()); + return wxRentContractService.update(rentContract, user.getId(),user.getName(),1,oldDate); } @PostMapping("update") @@ -120,10 +121,11 @@ public class WxRentContractController extends BaseController { wxRentContract.setTenantId(user.getTenantId()); wxRentContract.setAdjustPeriodHandle(); wxRentContract.setRentPriceHandle(); + Date oldDate = wxRentContract.getRentalStartDate(); if(wxRentContract.getRentStartType()!=null && wxRentContract.getRentStartType().equals(EnumRentStartType.STARTTIME.getCode())){ wxRentContract.setRentalStartDate(wxRentContract.getStartDate()); } - return wxRentContractService.update(wxRentContract, user.getId(),user.getName()); + return wxRentContractService.update(wxRentContract, user.getId(),user.getName(),0,oldDate); } /** @@ -139,11 +141,11 @@ public class WxRentContractController extends BaseController { wxRentContract.setTenantId(user.getTenantId()); wxRentContract.setAdjustPeriodHandle(); wxRentContract.setRentPriceHandle(); - + Date oldDate = wxRentContract.getRentalStartDate(); if(wxRentContract.getRentStartType()!=null &&wxRentContract.getRentStartType().equals(EnumRentStartType.STARTTIME.getCode())){ wxRentContract.setRentalStartDate(wxRentContract.getStartDate()); } - return wxRentContractService.update(wxRentContract, user.getId(),user.getName()); + return wxRentContractService.update(wxRentContract, user.getId(),user.getName(),0,oldDate); } @PostMapping("updateFile") @@ -154,10 +156,11 @@ public class WxRentContractController extends BaseController { wxRentContract.setTenantId(user.getTenantId()); 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()); + return wxRentContractService.updateFile(wxRentContract, user.getId(),user.getName(),oldDate); } @GetMapping("/del") diff --git a/mallinkService/src/main/java/com/iformall/service/WxPropertyContractService.java b/mallinkService/src/main/java/com/iformall/service/WxPropertyContractService.java index 31fbaef83..797c654e5 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxPropertyContractService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxPropertyContractService.java @@ -40,7 +40,7 @@ public interface WxPropertyContractService { * @param userId * @return */ - ResultData saveOrUpdate(WxPropertyContract record, Long userId,String userName); + ResultData saveOrUpdate(WxPropertyContract record, Long userId,String userName,int from); /** * 根据Id删除实体 diff --git a/mallinkService/src/main/java/com/iformall/service/WxRentContractService.java b/mallinkService/src/main/java/com/iformall/service/WxRentContractService.java index 4f8145a37..aa1f67a5d 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxRentContractService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxRentContractService.java @@ -8,6 +8,7 @@ import io.swagger.models.auth.In; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.util.Date; import java.util.List; import java.util.Map; @@ -41,9 +42,9 @@ public interface WxRentContractService { * @param userName * @return */ - ResultData save(WxRentContract record,Long userId,String userName); + ResultData save(WxRentContract record,Long userId,String userName,Date oldRentStartDate); - ResultData update(WxRentContract record, Long userId,String userName); + ResultData update(WxRentContract record, Long userId,String userName,int from,Date oldRentStartDate); /** * 根据Id删除实体 @@ -65,7 +66,7 @@ public interface WxRentContractService { void exportContract(HttpServletRequest request, HttpServletResponse response, String tenantId, Long id); - ResultData updateFile(WxRentContract wxRentContract, Long userId,String userName); + ResultData updateFile(WxRentContract wxRentContract, Long userId,String userName,Date oldRentStartDate); ResultData updateRentContractStatus(Long id); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java index 292a23033..6eb306383 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java @@ -200,7 +200,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService @Override @Transactional(rollbackFor = {Exception.class}) - public ResultData saveOrUpdate(WxPropertyContract record, Long userId,String userName) { + public ResultData saveOrUpdate(WxPropertyContract record, Long userId,String userName,int from) { // 保存调整金额(预账单调整) boolean haspreview = false; if(!CollectionUtils.isEmpty(record.getPreviewBillRentList())){ @@ -289,7 +289,9 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService if (wxPropertyContract == null) { return new ResultData(ErrorCode.PROPERTY_CONTRACT_IS_NOT_FOUND); } - record.setRentalStartDate(wxRentContract.getRentalStartDate()); + if(from != 1){ + record.setRentalStartDate(wxRentContract.getRentalStartDate()); + } record.setRentalEndDate(wxRentContract.getRentalEndDate()); record.setStartDate(wxRentContract.getStartDate()); record.setEndDate(wxRentContract.getEndDate()); 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 b81e3c455..edf284495 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -246,7 +246,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { @Transactional(rollbackFor = {Exception.class}) @Override - public ResultData save(WxRentContract record,Long userId,String userName) { + public ResultData save(WxRentContract record,Long userId,String userName,Date oldRentStartDate) { //保存租赁合同信息 final IdWorker idWorker = IdWorker.get(); record.setId(idWorker.nextId()); @@ -343,7 +343,11 @@ public class WxRentContractServiceImpl implements WxRentContractService { try { record.setApplyStatus(EnumRentContractAppStatus.DEFAULT.getCode()); + + Date tempDate = record.getRentalStartDate(); + record.setRentalStartDate(oldRentStartDate); wxRentContractMapper.insertSelective(record); + record.setRentalStartDate(tempDate); } catch (Exception e) { logger.error("保存租赁合同信息失败,e:" + e.getMessage()); throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "DB FAILD " + e.getMessage()); @@ -378,7 +382,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { @Transactional(rollbackFor = {Exception.class}) @Override - public ResultData update(WxRentContract record, Long userId,String userName) { + public ResultData update(WxRentContract record, Long userId,String userName,int from,Date oldRentStartDate) { //查询预账单用于展示 WxBillRent wxBillRent = new WxBillRent(); wxBillRent.setRentContractId(record.getId()); @@ -387,7 +391,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { List resultList = wxBillRentMapper.findList(wxBillRent); //更新 - ResultData resultData = getResultDataForUpdate(record, userId); + ResultData resultData = getResultDataForUpdate(record, userId,from,oldRentStartDate); if (resultData.code != Result.SUCCESS) { return resultData; } @@ -428,7 +432,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { return new ResultData(wxRentContract); } - public ResultData getResultDataForUpdate(WxRentContract record, Long userId) { + public ResultData getResultDataForUpdate(WxRentContract record, Long userId,int from,Date oldRentStartDate) { //更新租赁合同信息 WxRentContract wxRentContract = wxRentContractMapper.selectByPrimaryKey(record.getId()); if (wxRentContract == null) { @@ -441,20 +445,23 @@ public class WxRentContractServiceImpl implements WxRentContractService { instance.add(dayType, record.getLease()); instance.add(Calendar.DAY_OF_MONTH, -1); - if (record.getType().equals(EnumRentContractType.RENT_BY_JOINT.getCode())) { - BigDecimal hundred = new BigDecimal(100); - BigDecimal revenue = new BigDecimal(record.getRevenue() == null ? 0 : record.getRevenue()).divide(hundred); - BigDecimal payRatio = new BigDecimal(record.getPayRatio() == null ? 0 : record.getPayRatio()).divide(new BigDecimal(10000)); - BigDecimal price = revenue.multiply(payRatio).setScale(2, RoundingMode.HALF_EVEN); - record.setPrice(price.multiply(hundred).longValue()); - } else { - if (StringUtils.isNotEmpty(record.getPriceStr())) { - record.setPrice(new BigDecimal(record.getPriceStr()).multiply(new BigDecimal(100)).longValue()); + if(from != 1){ + if (record.getType().equals(EnumRentContractType.RENT_BY_JOINT.getCode())) { + BigDecimal hundred = new BigDecimal(100); + BigDecimal revenue = new BigDecimal(record.getRevenue() == null ? 0 : record.getRevenue()).divide(hundred); + BigDecimal payRatio = new BigDecimal(record.getPayRatio() == null ? 0 : record.getPayRatio()).divide(new BigDecimal(10000)); + BigDecimal price = revenue.multiply(payRatio).setScale(2, RoundingMode.HALF_EVEN); + record.setPrice(price.multiply(hundred).longValue()); } else { - record.setPrice(0L); + if (StringUtils.isNotEmpty(record.getPriceStr())) { + record.setPrice(new BigDecimal(record.getPriceStr()).multiply(new BigDecimal(100)).longValue()); + } else { + record.setPrice(0L); + } } } + if (StringUtils.isNotEmpty(record.getDepositStr())) { record.setDeposit(new BigDecimal(record.getDepositStr()).multiply(new BigDecimal(100)).longValue()); } else { @@ -519,7 +526,10 @@ public class WxRentContractServiceImpl implements WxRentContractService { } try { + Date tempDate = record.getRentalStartDate(); + record.setRentalStartDate(oldRentStartDate); wxRentContractMapper.updateByPrimaryKeySelective(record); + record.setRentalStartDate(tempDate); } catch (Exception e) { logger.error("更新租赁合同信息失败,e:" + e.getMessage()); throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "DB FAILD " + e.getMessage()); @@ -1247,14 +1257,14 @@ public class WxRentContractServiceImpl implements WxRentContractService { @Override @Transactional(rollbackFor = {Exception.class}) - public ResultData updateFile(WxRentContract record, Long userId,String userName) { + public ResultData updateFile(WxRentContract record, Long userId,String userName,Date oldRentStartDate) { // 保存调整金额(预账单调整) if(!CollectionUtils.isEmpty(record.getPreviewBillRentList())){ for (WxBillRent wxBillRent:record.getPreviewBillRentList()) { wxBillRentMapper.update(wxBillRent); } } - ResultData resultData = getResultDataForUpdate(record, userId); + ResultData resultData = getResultDataForUpdate(record, userId,0,oldRentStartDate); if (resultData.code != Result.SUCCESS) { return resultData; }