| @@ -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<String,List<WxRentContractAgileUnDepositItem>> shopNumberUnDepositItems = new HashMap<String,List<WxRentContractAgileUnDepositItem>>(); | |||
| for (int i = 0 ; i < unDeposit.getItems().size(); i++) { | |||
| WxRentContractAgileUnDepositItem item = unDeposit.getItems().get(i); | |||
| List<WxRentContractAgileUnDepositItem> list = shopNumberUnDepositItems.get(item.getShopNumber()); | |||
| if (null == list) { | |||
| list = new ArrayList<WxRentContractAgileUnDepositItem>(); | |||
| } | |||
| list.add(item); | |||
| } | |||
| for (Iterator<String> 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<WxRentContractAgileUnDepositItem> 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 | |||