| @@ -24,6 +24,7 @@ import com.iformall.enums.EnumBillExtraCreateFrom; | |||||
| import com.iformall.enums.EnumFeesShopTimeType; | import com.iformall.enums.EnumFeesShopTimeType; | ||||
| import com.iformall.enums.EnumRentContractAdjustPeriod; | import com.iformall.enums.EnumRentContractAdjustPeriod; | ||||
| import com.iformall.enums.EnumRentContractAgilPriceUnit; | import com.iformall.enums.EnumRentContractAgilPriceUnit; | ||||
| import com.iformall.enums.EnumRentContractAgilSettingMethod; | |||||
| import com.iformall.enums.EnumRentContractAgilTimeUnit; | import com.iformall.enums.EnumRentContractAgilTimeUnit; | ||||
| import com.iformall.enums.EnumRentContractAgileFeesType; | import com.iformall.enums.EnumRentContractAgileFeesType; | ||||
| import com.iformall.enums.EnumRentContractAppStatus; | import com.iformall.enums.EnumRentContractAppStatus; | ||||
| @@ -63,6 +64,7 @@ import java.util.ArrayList; | |||||
| import java.util.Calendar; | import java.util.Calendar; | ||||
| import java.util.Date; | import java.util.Date; | ||||
| import java.util.HashMap; | import java.util.HashMap; | ||||
| import java.util.Iterator; | |||||
| import java.util.List; | import java.util.List; | ||||
| import java.util.Map; | import java.util.Map; | ||||
| @@ -261,9 +263,46 @@ public class WxAgileContractServiceImpl implements WxAgileContractService { | |||||
| itemdel.setUnDepositId(unDeposit.getId()); | itemdel.setUnDepositId(unDeposit.getId()); | ||||
| wxRentContractAgileUnDepositItemMapper.deleteByUnDeposit(itemdel); | 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++) { | for (int i = 0 ; i < unDeposit.getItems().size(); i++) { | ||||
| WxRentContractAgileUnDepositItem item = unDeposit.getItems().get(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) { | if (i == 0) { | ||||
| lastEndDate = item.getEndTime(); | 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())) { | if (!item.getEndTime().equals(contract.getRentalEndDate())) { | ||||
| throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"结尾时间需要和合同结束时间一致"); | 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(); | lastEndDate = item.getEndTime(); | ||||
| } | |||||
| } | |||||
| } | } | ||||
| @Override | @Override | ||||