From 191cf53b0d7d03b9b5dd8f5985ae1665ec764385 Mon Sep 17 00:00:00 2001 From: xiaohanzi Date: Wed, 26 Aug 2020 23:40:55 +0800 Subject: [PATCH] fix contract --- .../contract/WxRentContractController.java | 14 ++++++++---- .../iformall/schedule/ContractSchedule.java | 2 +- .../enums/EnumRentContractStatus.java | 1 + .../service/WxRentContractService.java | 4 ++-- .../service/impl/WxMerchantServiceImpl.java | 22 ++++++++++++++++++- .../impl/WxRentContractServiceImpl.java | 18 +++++++++------ 6 files changed, 46 insertions(+), 15 deletions(-) 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 715c72272..61e2cbe57 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxRentContractController.java @@ -157,7 +157,7 @@ public class WxRentContractController extends WxContractBaseController { if(wxRentContract.getRentStartType()!=null &&wxRentContract.getRentStartType().equals(EnumRentStartType.STARTTIME.getCode())){ wxRentContract.setRentalStartDate(wxRentContract.getStartDate()); } - return wxRentContractService.update(wxRentContract, user.getId(),user.getName(),EnumFromType.OTHER.getCode(),oldDate); + return wxRentContractService.update(wxRentContract, user.getId(),user.getName(),EnumFromType.OTHER.getCode(),oldDate,false); } /** @@ -180,7 +180,7 @@ public class WxRentContractController extends WxContractBaseController { if(wxRentContract.getRentStartType()!=null && wxRentContract.getRentStartType().equals(EnumRentStartType.STARTTIME.getCode())){ wxRentContract.setRentalStartDate(wxRentContract.getStartDate()); } - return wxRentContractService.updateFile(wxRentContract, user.getId(),user.getName(),oldDate); + return wxRentContractService.updateFile(wxRentContract, user.getId(),user.getName(),oldDate,true); } @GetMapping("/findById") @@ -228,7 +228,7 @@ public class WxRentContractController extends WxContractBaseController { } ResultData update = null; try { - update = wxRentContractService.update(rentContract, user.getId(), user.getName(), EnumFromType.OTHER.getCode(), oldDate); + update = wxRentContractService.update(rentContract, user.getId(), user.getName(), EnumFromType.OTHER.getCode(), oldDate,false); } catch (MallinkException e) { return new ResultData(update.code,update.message); } @@ -523,8 +523,14 @@ public class WxRentContractController extends WxContractBaseController { logger.debug("[" + getIpAddr() + "] WxRentContractController::getRentContractList"); if (null == wxRentContract) wxRentContract = new WxRentContract(); wxRentContract.updateTenantInfo(getTenantInfo()); + //正常状态 if (1 == validStatus) { wxRentContract.setStatuss(EnumRentContractStatus.getValidStatus()); + //续签的合同,包括正常到期 + }else if (2== validStatus) { + List statuss = EnumRentContractStatus.getValidStatus(); + statuss.add(EnumRentContractStatus.OUT_DATE.getCode()); + wxRentContract.setStatuss(statuss); } wxRentContract.setSortColumns(SortField.Createtime_DESC); return new ResultData(wxRentContractService.getRentContractList(wxRentContract, pageNum, pageSize)); @@ -642,7 +648,7 @@ public class WxRentContractController extends WxContractBaseController { rentContract.updateTenantInfo(user); rentContract.setAdjustPeriodHandle(); rentContract.setRentStartType(wxRentContract.getRentStartType()); - return wxRentContractService.update(rentContract, user.getId(),user.getName(), EnumFromType.SWITCH.getCode(),oldDate); + return wxRentContractService.update(rentContract, user.getId(),user.getName(), EnumFromType.SWITCH.getCode(),oldDate,false); } // @GetMapping("exportContract") diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/ContractSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/ContractSchedule.java index 4f3d78de2..23632e652 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/ContractSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/ContractSchedule.java @@ -37,7 +37,7 @@ public class ContractSchedule { /** * 凌晨5分 */ - @Scheduled(cron = "0 0/5 * * * ?") + @Scheduled(cron = "0 5 0 * * ?") public void updateContractStatus() { //更新合同状态,正常到期 diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumRentContractStatus.java b/mallinkService/src/main/java/com/iformall/enums/EnumRentContractStatus.java index fa015ba1c..0015c5925 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumRentContractStatus.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumRentContractStatus.java @@ -16,6 +16,7 @@ public enum EnumRentContractStatus { TERMINATE(6,"提前终止"), INVALID(7,"作废"), PERFORMANCE(10,"履约中(审批中)"), + UNWRITE(11,"未完成草稿内容") diff --git a/mallinkService/src/main/java/com/iformall/service/WxRentContractService.java b/mallinkService/src/main/java/com/iformall/service/WxRentContractService.java index 1e22db687..98b8830a9 100644 --- a/mallinkService/src/main/java/com/iformall/service/WxRentContractService.java +++ b/mallinkService/src/main/java/com/iformall/service/WxRentContractService.java @@ -46,7 +46,7 @@ public interface WxRentContractService { */ ResultData save(WxRentContract record,Long userId,String userName,Date oldRentStartDate); - ResultData update(WxRentContract record, Long userId,String userName,int from,Date oldRentStartDate); + ResultData update(WxRentContract record, Long userId,String userName,int from,Date oldRentStartDate,boolean writeComplate); /** * 根据Id删除实体 @@ -66,7 +66,7 @@ public interface WxRentContractService { //void exportContract(HttpServletRequest request, HttpServletResponse response, Long id); - ResultData updateFile(WxRentContract wxRentContract, Long userId,String userName,Date oldRentStartDate); + ResultData updateFile(WxRentContract wxRentContract, Long userId,String userName,Date oldRentStartDate,boolean writeComplate); ResultData updateRentContractStatus(Long id); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java index f71151343..bdb35a8fd 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java @@ -460,7 +460,27 @@ public class WxMerchantServiceImpl implements WxMerchantService { Date date = new Date(); wxMerchant.setUpdateDate(date); wxMerchantMapper.updateById(wxMerchant); - wxMerchantShopMapper.realDelByMerchantId(wxMerchant.getId()); + //如果原来店铺在商户里面有有效的合同,则不能操作 + List oldShopIds = wxMerchantShopMapper.findShopIds(wxMerchant.getId()); + if (null != oldShopIds) { + for (Long osid : oldShopIds) { + WxRentContract wrc = new WxRentContract(); + wrc.setMerchantId(wxMerchant.getId()); + wrc.setQueryShopId(osid); + wrc.setStatuss(EnumRentContractStatus.getValidStatus()); + wrc.updateTenantInfo(wxMerchant); + List clist = wxRentContractService.findList(wrc); + if (null != clist && clist.size() > 0 ) { + return new ResultData(ErrorCode.MERCHANT_HASRENTCONTRACT.getCode(),"店铺["+osid+"]存在有效的合同,不能解除绑定."); + } + } + } + + //都验证过了之后,先把之前的商铺释放,删除关系 + if (null != oldShopIds) { + wxShopMapper.updateUnRentByIds(oldShopIds); + wxMerchantShopMapper.realDelByMerchantId(wxMerchant.getId()); + } List shopIds = wxMerchant.getShopids(); for (Long sid: shopIds) { WxMerchantShop mcs = new WxMerchantShop(); 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 eb97cb9cb..e091925f6 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -488,7 +488,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { try { record.setApplyStatus(EnumRentContractAppStatus.DEFAULT.getCode()); - record.setStatus(EnumRentContractStatus.DRAFT.getCode()); + record.setStatus(EnumRentContractStatus.UNWRITE.getCode()); Date tempDate = record.getRentalStartDate(); record.setRentalStartDate(oldRentStartDate); record.setShopName(shopName); @@ -542,7 +542,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { @Transactional(rollbackFor = {Exception.class}) @Override - public ResultData update(WxRentContract record, Long userId,String userName,int from,Date oldRentStartDate) { + public ResultData update(WxRentContract record, Long userId,String userName,int from,Date oldRentStartDate,boolean writeComplate) { //查询预账单用于展示 WxBillRent wxBillRent = new WxBillRent(); wxBillRent.setRentContractId(record.getId()); @@ -551,7 +551,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { List resultList = wxBillRentMapper.findList(wxBillRent); //更新 - ResultData resultData = getResultDataForUpdate(record, userId,from,oldRentStartDate); + ResultData resultData = getResultDataForUpdate(record, userId,from,oldRentStartDate,writeComplate); if (resultData.code != Result.SUCCESS) { return resultData; } @@ -619,7 +619,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { 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,boolean writeFinal) { //更新租赁合同信息 WxRentContract wxRentContract = wxRentContractMapper.selectById(record.getId()); if (wxRentContract == null) { @@ -729,7 +729,11 @@ public class WxRentContractServiceImpl implements WxRentContractService { Date tempDate = record.getRentalStartDate(); record.setRentalStartDate(oldRentStartDate); record.setShopName(shopName); - record.setStatus(wxRentContract.getStatus()); + if (writeFinal) { + record.setStatus(EnumRentContractStatus.DRAFT.getCode()); + }else { + record.setStatus(wxRentContract.getStatus()); + } record.setApplyStatus(wxRentContract.getApplyStatus()); wxRentContractMapper.updateById(record); record.setRentalStartDate(tempDate); @@ -1618,12 +1622,12 @@ public class WxRentContractServiceImpl implements WxRentContractService { @Override @Transactional(rollbackFor = {Exception.class}) - public ResultData updateFile(WxRentContract record, Long userId,String userName,Date oldRentStartDate) { + public ResultData updateFile(WxRentContract record, Long userId,String userName,Date oldRentStartDate,boolean writeComplate) { // 保存调整金额(预账单调整) if(!CollectionUtils.isEmpty(record.getPreviewBillRentList())){ savePreviewBill(record); } - ResultData resultData = getResultDataForUpdate(record, userId,0,oldRentStartDate); + ResultData resultData = getResultDataForUpdate(record, userId,0,oldRentStartDate,writeComplate); // if (resultData.code != Result.SUCCESS) { // return resultData; // }