winter 11 месяцев назад
Родитель
Сommit
59a102d195
6 измененных файлов: 64 добавлений и 60 удалений
  1. +4
    -2
      mallinkAdmin/src/main/java/com/iformall/controller/contract/WxAgileContractController.java
  2. +13
    -9
      mallinkAdmin/src/main/java/com/iformall/controller/contract/WxContractBaseController.java
  3. +16
    -16
      mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java
  4. +21
    -21
      mallinkSchedule/src/main/java/com/iformall/schedule/ContractSchedule.java
  5. +1
    -1
      mallinkService/src/main/java/com/iformall/service/impl/WxAgileContractServiceImpl.java
  6. +9
    -11
      mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java

+ 4
- 2
mallinkAdmin/src/main/java/com/iformall/controller/contract/WxAgileContractController.java Просмотреть файл

@@ -131,12 +131,14 @@ public class WxAgileContractController extends WxContractBaseController {
return new ResultData(Result.ERROR,"请选择店铺"); return new ResultData(Result.ERROR,"请选择店铺");
} }
Map<Long,ShopValidAreaVo> map = null; Map<Long,ShopValidAreaVo> map = null;
List<Long> ignoreIds = new ArrayList<Long>();
ignoreIds.add(wxRentContract.getId());
if (null != wxRentContract.getCalcuteIsProperty() if (null != wxRentContract.getCalcuteIsProperty()
&& EnumYesOrNo.YES.getCode().intValue() == wxRentContract.getCalcuteIsProperty().intValue()) { && EnumYesOrNo.YES.getCode().intValue() == wxRentContract.getCalcuteIsProperty().intValue()) {
map = this.calcuteShopValidArea(wxRentContract, wxRentContract.getId(), wxRentContract.getRentalStartDate(), wxRentContract.getRentalEndDate(),
map = this.calcuteShopValidArea(wxRentContract, ignoreIds, wxRentContract.getRentalStartDate(), wxRentContract.getRentalEndDate(),
wxRentContract.getCalcuteShopIds(), null, false); wxRentContract.getCalcuteShopIds(), null, false);
}else { }else {
map = this.calcuteShopValidArea(wxRentContract, wxRentContract.getId(), wxRentContract.getRentalStartDate(), wxRentContract.getRentalEndDate(),
map = this.calcuteShopValidArea(wxRentContract, ignoreIds, wxRentContract.getRentalStartDate(), wxRentContract.getRentalEndDate(),
wxRentContract.getCalcuteShopIds(), null, true); wxRentContract.getCalcuteShopIds(), null, true);
} }
return new ResultData(map); return new ResultData(map);


+ 13
- 9
mallinkAdmin/src/main/java/com/iformall/controller/contract/WxContractBaseController.java Просмотреть файл

@@ -98,7 +98,7 @@ public class WxContractBaseController extends BaseController{
} }
} }
protected Map<Long,ShopValidAreaVo> calcuteShopValidArea(TenantEntity tenantEntity,Long contractId,Date contractStartDate,Date contractEndDate,
protected Map<Long,ShopValidAreaVo> calcuteShopValidArea(TenantEntity tenantEntity,List<Long> ignoreContractIds,Date contractStartDate,Date contractEndDate,
List<Long> shopIdList,Map<Long, BigDecimal> rentAreaMap,boolean isRent) { List<Long> shopIdList,Map<Long, BigDecimal> rentAreaMap,boolean isRent) {
//判断店铺是否还有有效的面积 //判断店铺是否还有有效的面积
Map<Long,ShopValidAreaVo> shopValidAreaMap = new HashMap<Long,ShopValidAreaVo>(); Map<Long,ShopValidAreaVo> shopValidAreaMap = new HashMap<Long,ShopValidAreaVo>();
@@ -129,10 +129,10 @@ public class WxContractBaseController extends BaseController{
List<Long> contractIds = wxAgileContractService.findShopContractIds(tenantEntity, sidlist); List<Long> contractIds = wxAgileContractService.findShopContractIds(tenantEntity, sidlist);
//查询是否有跟当前合同时间有冲突的合同 //查询是否有跟当前合同时间有冲突的合同
if (null != contractIds) { if (null != contractIds) {
if (null != contractId) {
contractIds.remove(contractId);
if (null != ignoreContractIds && ignoreContractIds.size() > 0 ) {
contractIds.removeAll(ignoreContractIds);
} }
if (contractIds.size() > 0) {
if (null != contractIds && contractIds.size() > 0) {
List<Long> usedContractIds = null; List<Long> usedContractIds = null;
List<Integer> statusList = new ArrayList<Integer>(); List<Integer> statusList = new ArrayList<Integer>();
statusList.add(EnumRentContractStatus.DRAFT.getCode()); statusList.add(EnumRentContractStatus.DRAFT.getCode());
@@ -165,10 +165,10 @@ public class WxContractBaseController extends BaseController{
return shopValidAreaMap; return shopValidAreaMap;
} }
private void contractValidShop(TenantEntity tenantEntity,Long contractId,Date contractStartDate,Date contractEndDate,
private void contractValidShop(TenantEntity tenantEntity,List<Long> ignoreContractIds,Date contractStartDate,Date contractEndDate,
List<Long> rentShopIdList,Map<Long, BigDecimal> rentAreaMap,boolean isRent) throws Exception { List<Long> rentShopIdList,Map<Long, BigDecimal> rentAreaMap,boolean isRent) throws Exception {
//判断店铺是否还有有效的面积 //判断店铺是否还有有效的面积
Map<Long,ShopValidAreaVo> shopVliadAreaMap = calcuteShopValidArea(tenantEntity, contractId, contractStartDate, contractEndDate, rentShopIdList, rentAreaMap, isRent);
Map<Long,ShopValidAreaVo> shopVliadAreaMap = calcuteShopValidArea(tenantEntity, ignoreContractIds, contractStartDate, contractEndDate, rentShopIdList, rentAreaMap, isRent);
if (null != shopVliadAreaMap) { if (null != shopVliadAreaMap) {
for (Iterator<Long> it = shopVliadAreaMap.keySet().iterator(); it.hasNext();) { for (Iterator<Long> it = shopVliadAreaMap.keySet().iterator(); it.hasNext();) {
Long shopId = it.next(); Long shopId = it.next();
@@ -195,12 +195,16 @@ public class WxContractBaseController extends BaseController{
//如果是影子数据修改,则要排除源合同 //如果是影子数据修改,则要排除源合同
if (rentContract.isYingZiContract()) { if (rentContract.isYingZiContract()) {
contractValidShop(rentContract,rentContract.getOrginId(),rentContract.getRentalStartDate(),rentContract.getRentalEndDate(),rentContract.shopIdsByRentInfo(),
List<Long> ignoreIds = new ArrayList<Long>();
ignoreIds.add(rentContract.getOrginId());
ignoreIds.add(rentContract.getId());
contractValidShop(rentContract,ignoreIds,rentContract.getRentalStartDate(),rentContract.getRentalEndDate(),rentContract.shopIdsByRentInfo(),
rentContract.getRentShopArea(),true); rentContract.getRentShopArea(),true);
}else { }else {
contractValidShop(rentContract,rentContract.getId(),rentContract.getRentalStartDate(),rentContract.getRentalEndDate(),rentContract.shopIdsByRentInfo(),
List<Long> ignoreIds = new ArrayList<Long>();
ignoreIds.add(rentContract.getId());
contractValidShop(rentContract,ignoreIds,rentContract.getRentalStartDate(),rentContract.getRentalEndDate(),rentContract.shopIdsByRentInfo(),
rentContract.getRentShopArea(),true); rentContract.getRentShopArea(),true);
} }
} }
} }

+ 16
- 16
mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java Просмотреть файл

@@ -124,22 +124,22 @@ public class WxRentContractController extends WxContractBaseController {
return new ResultData(); return new ResultData();
} }
/**
* 设置定时终止时间
* @return
*/
@PostMapping("setEndContractTime")
@SystemControllerLog(description = "租赁合同-设置定时终止合同时间")
public ResultData setEndContractTime(@RequestBody WxRentContract wxRentContract) {
logger.debug("[" + getIpAddr() + "] WxRentContractController::endContract");
WxRentContract contract = wxRentContractMapper.selectById(wxRentContract.getId());
if (contract == null) {
return new ResultData(ErrorCode.RENT_CONTRACT_IS_NOT_FOUND);
}
contract.setEndContractTime(wxRentContract.getEndContractTime());
wxRentContractService.setEndContractTime(contract);
return new ResultData();
}
// /**
// * 设置定时终止时间
// * @return
// */
// @PostMapping("setEndContractTime")
// @SystemControllerLog(description = "租赁合同-设置定时终止合同时间")
// public ResultData setEndContractTime(@RequestBody WxRentContract wxRentContract) {
// logger.debug("[" + getIpAddr() + "] WxRentContractController::endContract");
// WxRentContract contract = wxRentContractMapper.selectById(wxRentContract.getId());
// if (contract == null) {
// return new ResultData(ErrorCode.RENT_CONTRACT_IS_NOT_FOUND);
// }
// contract.setEndContractTime(wxRentContract.getEndContractTime());
// wxRentContractService.setEndContractTime(contract);
// return new ResultData();
// }
@RequestMapping("/download") @RequestMapping("/download")


+ 21
- 21
mallinkSchedule/src/main/java/com/iformall/schedule/ContractSchedule.java Просмотреть файл

@@ -82,27 +82,27 @@ public class ContractSchedule {
// log.info("合同状态更新结束"); // log.info("合同状态更新结束");
// } // }


/**
* 凌晨5分,定时终止租金合同
*/
@Async
@Scheduled(cron = "0 5 0 * * ?")
public void endContract() {
List<WxMall> wxMalls = wxMallMapper.findList(null);
for (WxMall wxMall : wxMalls) {
//租金合同
WxRentContract record = new WxRentContract();
record.updateTenantInfo(wxMall);
List<WxRentContract> contractList = wxRentContractService.findToEndContractList(record);
for (WxRentContract rent:contractList) {
try {
wxRentContractService.endContract(rent,null);
}catch(Exception e) {
log.error("rentcontract outDate error.",e);
}
}
}
}
// /**
// * 凌晨5分,定时终止租金合同
// */
// @Async
// @Scheduled(cron = "0 5 0 * * ?")
// public void endContract() {
// List<WxMall> wxMalls = wxMallMapper.findList(null);
// for (WxMall wxMall : wxMalls) {
// //租金合同
// WxRentContract record = new WxRentContract();
// record.updateTenantInfo(wxMall);
// List<WxRentContract> contractList = wxRentContractService.findToEndContractList(record);
// for (WxRentContract rent:contractList) {
// try {
// wxRentContractService.endContract(rent,null);
// }catch(Exception e) {
// log.error("rentcontract outDate error.",e);
// }
// }
// }
// }
// /** // /**
// * 凌晨5分,定时过期提醒租金合同到期 // * 凌晨5分,定时过期提醒租金合同到期


+ 1
- 1
mallinkService/src/main/java/com/iformall/service/impl/WxAgileContractServiceImpl.java Просмотреть файл

@@ -1254,7 +1254,7 @@ public class WxAgileContractServiceImpl implements WxAgileContractService {
} }
@Override @Override
@Transactional(rollbackFor = {Exception.class})
@Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class})
public void renewalAgile(WxRentContract rentContract,MallUserInfo user) { public void renewalAgile(WxRentContract rentContract,MallUserInfo user) {
final IdWorker idWorker = IdWorker.get(); final IdWorker idWorker = IdWorker.get();
Long newContractId = idWorker.nextId(); Long newContractId = idWorker.nextId();


+ 9
- 11
mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java Просмотреть файл

@@ -371,7 +371,7 @@ public class WxRentContractServiceImpl implements WxRentContractService {
} }
} }


@Transactional(rollbackFor = {Exception.class})
@Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class})
@Override @Override
public ResultData endContract(WxRentContract wxRentContract,MallUserInfo userInfo) { public ResultData endContract(WxRentContract wxRentContract,MallUserInfo userInfo) {
@@ -384,19 +384,17 @@ public class WxRentContractServiceImpl implements WxRentContractService {
contract.setUpdateBy(userInfo.getId()); contract.setUpdateBy(userInfo.getId());
contract.setEndContractTime(wxRentContract.getEndContractTime()); contract.setEndContractTime(wxRentContract.getEndContractTime());
wxRentContractMapper.updateById(contract); wxRentContractMapper.updateById(contract);

//删除影子合同
WxRentContract yingziContract = wxAgileContractService.findYingZiContract(contract.getId(),contract);
if (null != yingziContract) {
wxAgileContractService.deleteContract(yingziContract.getId(), yingziContract);
}
//租赁账单失效 //租赁账单失效
wxBillAllHelper.rentContractStop(wxRentContract,userInfo); wxBillAllHelper.rentContractStop(wxRentContract,userInfo);
// WxBillRent wxBillRent = new WxBillRent();
// wxBillRent.setRentContractId(wxRentContract.getId());
// wxBillRent.updateTenantInfo(wxRentContract);
// wxBillRentMapper.updateInvalidStatus(wxBillRent);
return new ResultData(Result.SUCCESS,"终止成功"); return new ResultData(Result.SUCCESS,"终止成功");
//解绑商户和商铺关系
// WxRentContract rentContract = wxRentContractMapper.selectById(wxRentContract.getId());
// if(rentContract != null && rentContract.getMerchantId() != null){
// wxMerchantService.disable(rentContract.getMerchantId());
// }
} }


@Transactional(rollbackFor = {Exception.class}) @Transactional(rollbackFor = {Exception.class})


Загрузка…
Отмена
Сохранить