diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxAgileContractController.java b/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxAgileContractController.java index 0a9aa1e2c..8cadbfc84 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxAgileContractController.java +++ b/mallinkAdmin/src/main/java/com/iformall/controller/contract/WxAgileContractController.java @@ -330,7 +330,7 @@ public class WxAgileContractController extends WxContractBaseController { @GetMapping("getUnDepositList") public ResultData getUnDepositList(@ModelAttribute WxRentContractAgileUnDeposit unDeposit) { unDeposit.updateTenantInfo(getTenantInfo()); - return new ResultData(wxAgileContractService.findUnDepositDetail(unDeposit)); + return new ResultData(wxAgileContractService.findUnDepositList(unDeposit)); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxAgileContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxAgileContractServiceImpl.java index 0b0beaa70..883ac0f12 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxAgileContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxAgileContractServiceImpl.java @@ -24,6 +24,7 @@ import com.iformall.enums.EnumBillExtraCreateFrom; import com.iformall.enums.EnumFeesShopTimeType; import com.iformall.enums.EnumRentContractAdjustPeriod; import com.iformall.enums.EnumRentContractAgilPriceUnit; +import com.iformall.enums.EnumRentContractAgilSettingMethod; import com.iformall.enums.EnumRentContractAgilTimeUnit; import com.iformall.enums.EnumRentContractAgileFeesType; import com.iformall.enums.EnumRentContractAppStatus; @@ -63,6 +64,7 @@ import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.HashMap; +import java.util.Iterator; import java.util.List; import java.util.Map; @@ -261,9 +263,46 @@ public class WxAgileContractServiceImpl implements WxAgileContractService { itemdel.setUnDepositId(unDeposit.getId()); wxRentContractAgileUnDepositItemMapper.deleteByUnDeposit(itemdel); } - Date lastEndDate = null; + + + //如果是按店铺,则每个店铺都要校验 + if (unDeposit.getSettingMethod() == EnumRentContractAgilSettingMethod.BY_CONTRACT.getCode()) { + validItem(unDeposit.getItems(), contract); + }else { + Map> shopNumberUnDepositItems = new HashMap>(); + for (int i = 0 ; i < unDeposit.getItems().size(); i++) { + WxRentContractAgileUnDepositItem item = unDeposit.getItems().get(i); + List list = shopNumberUnDepositItems.get(item.getShopNumber()); + if (null == list) { + list = new ArrayList(); + } + list.add(item); + } + for (Iterator it = shopNumberUnDepositItems.keySet().iterator(); it.hasNext();) { + String shopNumber = it.next(); + validItem(shopNumberUnDepositItems.get(shopNumber), contract); + } + } + + for (int i = 0 ; i < unDeposit.getItems().size(); i++) { WxRentContractAgileUnDepositItem item = unDeposit.getItems().get(i); + item.setRentContractId(unDeposit.getRentContractId()); + item.setUnDepositId(unDeposit.getId()); + item.setMerchantId(unDeposit.getMerchantId()); + item.setFeesId(unDeposit.getFeesId()); + item.setId(idWorker.nextId()); + item.updateTenantInfo(contract); + item.setCreatetime(new Date()); + item.setUpdatetime(new Date()); + wxRentContractAgileUnDepositItemMapper.insert(item); + } + } + + private void validItem(List itemList,WxRentContract contract) { + Date lastEndDate = null; + for (int i = 0 ; i < itemList.size(); i++) { + WxRentContractAgileUnDepositItem item = itemList.get(i); //判断时间是不是连这的 if (i == 0) { lastEndDate = item.getEndTime(); @@ -277,23 +316,13 @@ public class WxAgileContractServiceImpl implements WxAgileContractService { } } - if (i == unDeposit.getItems().size()-1) { + if (i == itemList.size()-1) { if (!item.getEndTime().equals(contract.getRentalEndDate())) { throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"结尾时间需要和合同结束时间一致"); } } - item.setRentContractId(unDeposit.getRentContractId()); - item.setUnDepositId(unDeposit.getId()); - item.setMerchantId(unDeposit.getMerchantId()); - item.setFeesId(unDeposit.getFeesId()); - item.setId(idWorker.nextId()); - item.updateTenantInfo(contract); - item.setCreatetime(new Date()); - item.setUpdatetime(new Date()); - wxRentContractAgileUnDepositItemMapper.insert(item); lastEndDate = item.getEndTime(); - } - + } } @Override @@ -308,7 +337,7 @@ public class WxAgileContractServiceImpl implements WxAgileContractService { } WxRentContractAgileUnDepositItem itemq = new WxRentContractAgileUnDepositItem(); itemq.updateTenantInfo(ud); - itemq.setUnDepositId(unDeposit.getId()); + itemq.setUnDepositId(ud.getId()); ud.setItems(wxRentContractAgileUnDepositItemMapper.findList(itemq)); return ud; }