Bladeren bron

[预账单][修改][同保楼新需求]

release_toaliyun_real
luozukai 7 jaren geleden
bovenliggende
commit
115688ce7d
3 gewijzigde bestanden met toevoegingen van 137 en 56 verwijderingen
  1. +0
    -1
      mallinkAdmin/src/main/java/com/iformall/controller/contract/WxPropertyContractController.java
  2. +69
    -28
      mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java
  3. +68
    -27
      mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java

+ 0
- 1
mallinkAdmin/src/main/java/com/iformall/controller/contract/WxPropertyContractController.java Bestand weergeven

@@ -78,7 +78,6 @@ public class WxPropertyContractController extends BaseController {
return wxPropertyContractService.saveOrUpdate(propertyContract, user.getId(), user.getName()); return wxPropertyContractService.saveOrUpdate(propertyContract, user.getId(), user.getName());
} }



@PostMapping("update") @PostMapping("update")
@SystemControllerLog(description = "物业合同-修改") @SystemControllerLog(description = "物业合同-修改")
public ResultData update(@RequestBody WxPropertyContract wxPropertyContract) { public ResultData update(@RequestBody WxPropertyContract wxPropertyContract) {


+ 69
- 28
mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java Bestand weergeven

@@ -209,13 +209,45 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService
return wxBillPropertyMapper.findList(wxBillRent); return wxBillPropertyMapper.findList(wxBillRent);
} }


/**
* 重新生成账单(预账单调整)
*/
public void savePreviewBill(WxPropertyContract record){
if(CollectionUtils.isEmpty(record.getPreviewBillRentList())){
return;
}
wxBillPropertyMapper.deletePreviewBill(record);
final IdWorker idWorker = IdWorker.get();
int count = 1;
for (WxBillProperty bill:record.getPreviewBillRentList()) {
bill.setId(idWorker.nextId());
bill.setPropertyContractId(record.getId());
bill.setCreatetime(new Date());
bill.setTenantId(record.getTenantId());
bill.setOwe(bill.getReceivePay());
bill.setNeedPay(bill.getReceivePay());
bill.setUpdatetime(new Date());
bill.setRentShopType(record.getRentShopType());
bill.setPeriod(count);
bill.setIsPreview(EnumIsPreview.YES.getCode());
bill.setShopInfo(getShopInfoStr(record));
bill.setRevenue(0l);
bill.setLatePayRatio(0);
bill.setPay(0l);
bill.setIsDel(0);
setExpiredDay(bill,Calendar.MONTH,record.getReceivePeriod());
count++;
}
wxBillPropertyMapper.insertBills(record.getPreviewBillRentList());
}

@Override @Override
@Transactional(rollbackFor = {Exception.class}) @Transactional(rollbackFor = {Exception.class})
public ResultData saveOrUpdate(WxPropertyContract record, Long userId, String userName) { public ResultData saveOrUpdate(WxPropertyContract record, Long userId, String userName) {
// 保存调整金额(预账单调整) // 保存调整金额(预账单调整)
boolean haspreview = false; boolean haspreview = false;
if(!CollectionUtils.isEmpty(record.getPreviewBillRentList())){ if(!CollectionUtils.isEmpty(record.getPreviewBillRentList())){
wxBillPropertyMapper.updateBills(record.getPreviewBillRentList());
savePreviewBill(record);
haspreview = true; haspreview = true;
} }


@@ -469,16 +501,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService
wxBillDeposit.setUpdatetime(date); wxBillDeposit.setUpdatetime(date);
wxBillDeposit.setIsDel(EnumDelStatus.NOT_DEL.getCode()); wxBillDeposit.setIsDel(EnumDelStatus.NOT_DEL.getCode());
wxBillDeposit.setRentShopType(wxPropertyContract.getRentShopType()); wxBillDeposit.setRentShopType(wxPropertyContract.getRentShopType());
String rentInfo = wxPropertyContract.getRentInfo();
Map<String, Object> shopInfo = new HashMap<>();
if (rentInfo != null) {
JSONArray rentInfoArray = JSONArray.parseArray(rentInfo);
for (int i = 0, size = rentInfoArray.size(); i < size; i++) {
JSONObject rentInfoObject = rentInfoArray.getJSONObject(i);
shopInfo.put(rentInfoObject.getString("shopNumber"), rentInfoObject.get("buildArea"));
}
}
wxBillDeposit.setShopInfo(JSONObject.toJSONString(shopInfo));
wxBillDeposit.setShopInfo(getShopInfoStr(wxPropertyContract));
try { try {
wxBillPropertyDepositMapper.insertSelective(wxBillDeposit); wxBillPropertyDepositMapper.insertSelective(wxBillDeposit);
} catch (Exception e) { } catch (Exception e) {
@@ -488,6 +511,19 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService
} }
} }


public String getShopInfoStr(WxPropertyContract wxPropertyContract){
String rentInfo = wxPropertyContract.getRentInfo();
Map<String, Object> shopInfo = new HashMap<>();
if (rentInfo != null) {
JSONArray rentInfoArray = JSONArray.parseArray(rentInfo);
for (int i = 0, size = rentInfoArray.size(); i < size; i++) {
JSONObject rentInfoObject = rentInfoArray.getJSONObject(i);
shopInfo.put(rentInfoObject.getString("shopNumber"), rentInfoObject.get("buildArea"));
}
}
return JSONObject.toJSONString(shopInfo);
}

public List<WxBillProperty> buildRentMonth(WxMerchant wxMerchant, Long userId, WxPropertyContract wxPropertyContract, int receivePeriod, Integer lease, Date rentalStartDate, Long price, Integer isPreview) { public List<WxBillProperty> buildRentMonth(WxMerchant wxMerchant, Long userId, WxPropertyContract wxPropertyContract, int receivePeriod, Integer lease, Date rentalStartDate, Long price, Integer isPreview) {
String adjustRatio = wxPropertyContract.getAdjustRatio(); String adjustRatio = wxPropertyContract.getAdjustRatio();
String rentInfo = wxPropertyContract.getRentInfo(); String rentInfo = wxPropertyContract.getRentInfo();
@@ -650,23 +686,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService


//截止收租日在当前时间之前 //截止收租日在当前时间之前
Date date = new Date(); Date date = new Date();
if (wxBillProperty.getReceiveDate().before(date)) {
long day = (wxBillProperty.getReceiveDate().getTime() - date.getTime()) / (24 * 60 * 60 * 1000);
wxBillProperty.setStatus(EnumBillRentStatus.NOT_PAID.getCode());
wxBillProperty.setExpiredDay(day);
} else {//截止收租日在当前时间之后
Calendar now = Calendar.getInstance();
now.add(dayType, receivePeriod);
Date currenttime = now.getTime();
//当前日期加上周期后小于截止收租日就是没有到期,否则当前待缴
if (currenttime.before(wxBillProperty.getReceiveDate())) {
wxBillProperty.setStatus(EnumBillRentStatus.NOT_EXPIRED.getCode());
wxBillProperty.setExpiredDay(0L);
} else {
wxBillProperty.setStatus(EnumBillRentStatus.WAIT_PAY.getCode());
wxBillProperty.setExpiredDay(0L);
}
}
setExpiredDay(wxBillProperty,dayType,receivePeriod);
wxBillProperty.setTenantId(wxPropertyContract.getTenantId()); wxBillProperty.setTenantId(wxPropertyContract.getTenantId());
wxBillProperty.setIsDel(0); wxBillProperty.setIsDel(0);
wxBillProperty.setMerchantId(wxPropertyContract.getMerchantId()); wxBillProperty.setMerchantId(wxPropertyContract.getMerchantId());
@@ -691,6 +711,27 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService
return resultMap; return resultMap;
} }


public void setExpiredDay(WxBillProperty wxBillProperty,int dayType, int receivePeriod){
Date date = new Date();
if (wxBillProperty.getReceiveDate().before(date)) {
long day = (wxBillProperty.getReceiveDate().getTime() - date.getTime()) / (24 * 60 * 60 * 1000);
wxBillProperty.setStatus(EnumBillRentStatus.NOT_PAID.getCode());
wxBillProperty.setExpiredDay(day);
} else {//截止收租日在当前时间之后
Calendar now = Calendar.getInstance();
now.add(dayType, receivePeriod);
Date currenttime = now.getTime();
//当前日期加上周期后小于截止收租日就是没有到期,否则当前待缴
if (currenttime.before(wxBillProperty.getReceiveDate())) {
wxBillProperty.setStatus(EnumBillRentStatus.NOT_EXPIRED.getCode());
wxBillProperty.setExpiredDay(0L);
} else {
wxBillProperty.setStatus(EnumBillRentStatus.WAIT_PAY.getCode());
wxBillProperty.setExpiredDay(0L);
}
}
}

public boolean isFirstDay(Date date){ public boolean isFirstDay(Date date){
int dateInt = Integer.parseInt(new SimpleDateFormat("d").format(date)); int dateInt = Integer.parseInt(new SimpleDateFormat("d").format(date));
if(dateInt == 1){ if(dateInt == 1){


+ 68
- 27
mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java Bestand weergeven

@@ -435,15 +435,46 @@ public class WxRentContractServiceImpl implements WxRentContractService {
} }
} }


// 保存调整金额(预账单调整)
if(!CollectionUtils.isEmpty(record.getPreviewBillRentList())){
wxBillRentMapper.updateBills(record.getPreviewBillRentList());
}
//保存调整金额(预账单调整)
savePreviewBill(record);

WxRentContract wxRentContract = (WxRentContract)resultData.data; WxRentContract wxRentContract = (WxRentContract)resultData.data;
wxRentContract.setPreviewBillRentList(resultList); wxRentContract.setPreviewBillRentList(resultList);
return new ResultData(wxRentContract); return new ResultData(wxRentContract);
} }


/**
* 重新生成账单(预账单调整)
*/
public void savePreviewBill(WxRentContract record){
if(CollectionUtils.isEmpty(record.getPreviewBillRentList())){
return;
}
wxBillRentMapper.deletePreviewBill(record);
final IdWorker idWorker = IdWorker.get();
int count = 1;
for (WxBillRent bill:record.getPreviewBillRentList()) {
bill.setId(idWorker.nextId());
bill.setRentContractId(record.getId());
bill.setCreatetime(new Date());
bill.setTenantId(record.getTenantId());
bill.setOwe(bill.getReceivePay());
bill.setNeedPay(bill.getReceivePay());
bill.setUpdatetime(new Date());
bill.setRentShopType(record.getRentShopType());
bill.setPeriod(count);
bill.setIsPreview(EnumIsPreview.YES.getCode());
bill.setShopInfo(getShopInfoStr(record));
bill.setRevenue(0l);
bill.setLatePayRatio(0);
bill.setPay(0l);
bill.setIsDel(0);
setExpiredDay(bill,Calendar.MONTH,record.getReceivePeriod());
count++;
}
wxBillRentMapper.insertBills(record.getPreviewBillRentList());
}

public ResultData getResultDataForUpdate(WxRentContract record, Long userId,int from,Date oldRentStartDate) { public ResultData getResultDataForUpdate(WxRentContract record, Long userId,int from,Date oldRentStartDate) {
//更新租赁合同信息 //更新租赁合同信息
WxRentContract wxRentContract = wxRentContractMapper.selectByPrimaryKey(record.getId()); WxRentContract wxRentContract = wxRentContractMapper.selectByPrimaryKey(record.getId());
@@ -919,6 +950,14 @@ public class WxRentContractServiceImpl implements WxRentContractService {
} }




String shopInfoStr = getShopInfoStr(wxRentContract);
Map<String, Object> resultMap = buildRent(receivePeriod, priceArrs, yearList, Calendar.MONTH, wxRentContract, userId, billcount, isPreview, shopInfoStr);
List<WxBillRent> billRentList = (List<WxBillRent>)resultMap.get("billList");
resultList.addAll(billRentList);
return resultList;
}

public String getShopInfoStr(WxRentContract wxRentContract){
String shopInfoStr = null; String shopInfoStr = null;
if (wxRentContract.getRentShopType().equals(EnumRentShopType.SHOP.getCode())) { if (wxRentContract.getRentShopType().equals(EnumRentShopType.SHOP.getCode())) {
String rentInfo = wxRentContract.getRentInfo(); String rentInfo = wxRentContract.getRentInfo();
@@ -931,11 +970,7 @@ public class WxRentContractServiceImpl implements WxRentContractService {
} }
shopInfoStr = JSONObject.toJSONString(shopInfoMap); shopInfoStr = JSONObject.toJSONString(shopInfoMap);
} }

Map<String, Object> resultMap = buildRent(receivePeriod, priceArrs, yearList, Calendar.MONTH, wxRentContract, userId, billcount, isPreview, shopInfoStr);
List<WxBillRent> billRentList = (List<WxBillRent>)resultMap.get("billList");
resultList.addAll(billRentList);
return resultList;
return shopInfoStr;
} }


public Map<String, Object> buildRent(int receivePeriod, long[] priceArrs, List<Date> yearList, int dayType, WxRentContract wxRentContract, Long userId, int billcount, Integer isPreview, String shopInfoStr) { public Map<String, Object> buildRent(int receivePeriod, long[] priceArrs, List<Date> yearList, int dayType, WxRentContract wxRentContract, Long userId, int billcount, Integer isPreview, String shopInfoStr) {
@@ -1032,23 +1067,7 @@ public class WxRentContractServiceImpl implements WxRentContractService {


//截止收租日在当前时间之前 //截止收租日在当前时间之前
Date date = new Date(); Date date = new Date();
if (wxBillRent.getReceiveDate().before(date)) {
long day = (wxBillRent.getReceiveDate().getTime() - date.getTime()) / (24 * 60 * 60 * 1000);
wxBillRent.setStatus(EnumBillRentStatus.NOT_PAID.getCode());
wxBillRent.setExpiredDay(day);
} else {//截止收租日在当前时间之后
Calendar now = Calendar.getInstance();
now.add(dayType, receivePeriod);
Date currenttime = now.getTime();
//当前日期加上周期后小于截止收租日就是没有到期,否则当前待缴
if (currenttime.before(wxBillRent.getReceiveDate())) {
wxBillRent.setStatus(EnumBillRentStatus.NOT_EXPIRED.getCode());
wxBillRent.setExpiredDay(0L);
} else {
wxBillRent.setStatus(EnumBillRentStatus.WAIT_PAY.getCode());
wxBillRent.setExpiredDay(0L);
}
}
setExpiredDay(wxBillRent,dayType,receivePeriod);
wxBillRent.setRevenue(0L); wxBillRent.setRevenue(0L);
wxBillRent.setTenantId(wxRentContract.getTenantId()); wxBillRent.setTenantId(wxRentContract.getTenantId());
wxBillRent.setIsDel(0); wxBillRent.setIsDel(0);
@@ -1073,6 +1092,28 @@ public class WxRentContractServiceImpl implements WxRentContractService {
return resultMap; return resultMap;
} }


public void setExpiredDay(WxBillRent wxBillRent,int dayType, int receivePeriod){
//截止收租日在当前时间之前
Date date = new Date();
if (wxBillRent.getReceiveDate().before(date)) {
long day = (wxBillRent.getReceiveDate().getTime() - date.getTime()) / (24 * 60 * 60 * 1000);
wxBillRent.setStatus(EnumBillRentStatus.NOT_PAID.getCode());
wxBillRent.setExpiredDay(day);
} else {//截止收租日在当前时间之后
Calendar now = Calendar.getInstance();
now.add(dayType, receivePeriod);
Date currenttime = now.getTime();
//当前日期加上周期后小于截止收租日就是没有到期,否则当前待缴
if (currenttime.before(wxBillRent.getReceiveDate())) {
wxBillRent.setStatus(EnumBillRentStatus.NOT_EXPIRED.getCode());
wxBillRent.setExpiredDay(0L);
} else {
wxBillRent.setStatus(EnumBillRentStatus.WAIT_PAY.getCode());
wxBillRent.setExpiredDay(0L);
}
}
}

public boolean isFirstDay(Date date){ public boolean isFirstDay(Date date){
int dateInt = Integer.parseInt(new SimpleDateFormat("d").format(date)); int dateInt = Integer.parseInt(new SimpleDateFormat("d").format(date));
if(dateInt == 1){ if(dateInt == 1){
@@ -1298,7 +1339,7 @@ public class WxRentContractServiceImpl implements WxRentContractService {
public ResultData updateFile(WxRentContract record, Long userId,String userName,Date oldRentStartDate) { public ResultData updateFile(WxRentContract record, Long userId,String userName,Date oldRentStartDate) {
// 保存调整金额(预账单调整) // 保存调整金额(预账单调整)
if(!CollectionUtils.isEmpty(record.getPreviewBillRentList())){ if(!CollectionUtils.isEmpty(record.getPreviewBillRentList())){
wxBillRentMapper.updateBills(record.getPreviewBillRentList());
savePreviewBill(record);
} }
ResultData resultData = getResultDataForUpdate(record, userId,0,oldRentStartDate); ResultData resultData = getResultDataForUpdate(record, userId,0,oldRentStartDate);
if (resultData.code != Result.SUCCESS) { if (resultData.code != Result.SUCCESS) {


Laden…
Annuleren
Opslaan