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 98c5c3ade..ebcb677fc 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPropertyContractServiceImpl.java @@ -270,26 +270,28 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "DB FAILD " + e.getMessage()); } + //查询预账单用于展示 + WxBillProperty wxBillRent = new WxBillProperty(); + wxBillRent.setPropertyContractId(record.getId()); + wxBillRent.setSortColumns(WxBillProperty.Field.Period_ASC); + wxBillRent.setIsPreview(EnumIsPreview.YES.getCode()); + List billList = wxBillPropertyMapper.findList(wxBillRent); + record.setPreviewBillRentList(billList); + //生成预览账单 - if(!wxPropertyContract.getReceivePeriod().equals(record.getReceivePeriod()) + if(CollectionUtils.isEmpty(billList) || + (!wxPropertyContract.getReceivePeriod().equals(record.getReceivePeriod()) ||!wxPropertyContract.getPrice().equals(record.getPrice()) ||!wxPropertyContract.getDeposit().equals(record.getDeposit()) - ||!wxPropertyContract.getAdjustPeriod().equals(record.getAdjustPeriod())){ + ||!wxPropertyContract.getAdjustPeriod().equals(record.getAdjustPeriod()) + )){ wxBillPropertyMapper.deletePreviewBill(record); //重新生成 wxPropertyContract.setPrice(record.getPrice()); wxPropertyContract.setDeposit(record.getDeposit()); wxPropertyContract.setReceivePeriod(record.getReceivePeriod()); wxPropertyContract.setPayAccount(record.getPayAccount()); - List billList = buildProperty(new WxMerchant(),userId,wxPropertyContract,EnumIsPreview.YES.getCode()); - record.setPreviewBillRentList(billList); - }else{ - //查询预账单用于展示 - WxBillProperty wxBillRent = new WxBillProperty(); - wxBillRent.setPropertyContractId(record.getId()); - wxBillRent.setSortColumns(WxBillProperty.Field.Period_ASC); - wxBillRent.setIsPreview(EnumIsPreview.YES.getCode()); - List billList = wxBillPropertyMapper.findList(wxBillRent); + billList = buildProperty(new WxMerchant(),userId,wxPropertyContract,EnumIsPreview.YES.getCode()); record.setPreviewBillRentList(billList); } message = "更新物业合同信息成功"; 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 74231fbec..b480c7505 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -249,8 +249,18 @@ public class WxRentContractServiceImpl implements WxRentContractService { public ResultData update(WxRentContract record, Long userId,String userName) { //对比上一次,是否有更改,有,重新生成预账单 WxRentContract dbRent = wxRentContractMapper.selectByPrimaryKey(record.getId()); + + //查询预账单用于展示 + WxBillRent wxBillRent = new WxBillRent(); + wxBillRent.setRentContractId(record.getId()); + wxBillRent.setSortColumns(WxBillRent.Field.Period_ASC); + wxBillRent.setIsPreview(EnumIsPreview.YES.getCode()); + List resultList = wxBillRentMapper.findList(wxBillRent); + boolean change = false; - if(record.getAdjustPeriod().intValue() != dbRent.getAdjustPeriod().intValue()){ + if(CollectionUtils.isEmpty(resultList)){ + change = true; + }else if(record.getAdjustPeriod().intValue() != dbRent.getAdjustPeriod().intValue()){ change = true; }else{ if(record.getReceivePeriod() != null && record.getLease()!=null && record.getPrice()!= null) { @@ -289,17 +299,9 @@ public class WxRentContractServiceImpl implements WxRentContractService { ResultData resultData = getResultDataForUpdate(record, userId); //有改变,删除预账单,重新生成 - List resultList; if(change) { wxBillRentMapper.deletePreviewBill(record); resultList = buildRent(new WxMerchant(), null, record, EnumIsPreview.YES.getCode()); - }else{ - //查询预账单用于展示 - WxBillRent wxBillRent = new WxBillRent(); - wxBillRent.setRentContractId(record.getId()); - wxBillRent.setSortColumns(WxBillRent.Field.Period_ASC); - wxBillRent.setIsPreview(EnumIsPreview.YES.getCode()); - resultList = wxBillRentMapper.findList(wxBillRent); } //启动审批流 @@ -320,8 +322,8 @@ public class WxRentContractServiceImpl implements WxRentContractService { // 保存调整金额(预账单调整) if(!CollectionUtils.isEmpty(record.getPreviewBillRentList())){ - for (WxBillRent wxBillRent:record.getPreviewBillRentList()) { - wxBillRentMapper.update(wxBillRent); + for (WxBillRent billRent:record.getPreviewBillRentList()) { + wxBillRentMapper.update(billRent); } } WxRentContract wxRentContract = (WxRentContract)resultData.data;