|  |  |  | 
|---|
|  |  |  | if (list.size() == 0) { | 
|---|
|  |  |  | return new HashMap(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //元谋一期陆常丽需求把赠送金额与充值金额分开显示 | 
|---|
|  |  |  | for (int i = list.size()-1; i >= 0 ; i--) { | 
|---|
|  |  |  | Optional.ofNullable(list.get(i).getGift()).orElse(0d); | 
|---|
|  |  |  | if (!list.get(i).getGift().equals(0d)){ | 
|---|
|  |  |  | Double gift1 = list.get(i).getGift();//赠送金额 | 
|---|
|  |  |  | String districtTitle = list.get(i).getDistrictTitle();//地址 | 
|---|
|  |  |  | String clientNum = list.get(i).getClientNum();//农户编号 | 
|---|
|  |  |  | String clientName = list.get(i).getClientName();//农户姓名 | 
|---|
|  |  |  | String phone = list.get(i).getPhone();//手机号 | 
|---|
|  |  |  | Date tradeTime = list.get(i).getTradeTime();//交易时间 | 
|---|
|  |  |  | String orderNumber = list.get(i).getOrderNumber();//订单编号 | 
|---|
|  |  |  | String cardNum = list.get(i).getCardNum();//卡编号 | 
|---|
|  |  |  | String idCard = list.get(i).getIdCard();//身份证 | 
|---|
|  |  |  | String cashierName = list.get(i).getCashierName();//操作人 | 
|---|
|  |  |  | Double money = list.get(i).getMoney();//余额 | 
|---|
|  |  |  | Double cardCost1 = list.get(i).getCardCost();//购卡金额 | 
|---|
|  |  |  | Double tradeAmount = list.get(i).getTradeAmount();//交易金额 | 
|---|
|  |  |  | Double waterCost1 = list.get(i).getWaterCost();//购水金额 | 
|---|
|  |  |  | Double refundAmount1 = list.get(i).getRefundAmount();//返回金额 | 
|---|
|  |  |  | String paymentName = list.get(i).getPaymentName();//支付方式 | 
|---|
|  |  |  | String operateType = list.get(i).getOperateType();//业务类型 | 
|---|
|  |  |  | String cardState = list.get(i).getCardState();//卡状态 | 
|---|
|  |  |  | Long villageId = list.get(i).getVillageId();//村id | 
|---|
|  |  |  | Long cashierId = list.get(i).getCashierId();//收银员id | 
|---|
|  |  |  |  | 
|---|
|  |  |  | list.get(i).setGift(0d); | 
|---|
|  |  |  | list.get(i).setMoney(money-gift1); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | VoTradeDetails voTradeDetail = new VoTradeDetails(); | 
|---|
|  |  |  | voTradeDetail.setDistrictTitle(districtTitle);//2 | 
|---|
|  |  |  | voTradeDetail.setClientNum(clientNum);//2 | 
|---|
|  |  |  | voTradeDetail.setClientName(clientName);//2 | 
|---|
|  |  |  | voTradeDetail.setPhone(phone);//2 | 
|---|
|  |  |  | voTradeDetail.setOperateType("赠送");//2 | 
|---|
|  |  |  | voTradeDetail.setTradeTime(tradeTime);//2 | 
|---|
|  |  |  | voTradeDetail.setWaterCost(0d);//2 | 
|---|
|  |  |  | voTradeDetail.setCardCost(0d);//2 | 
|---|
|  |  |  | voTradeDetail.setGift(gift1);//2 | 
|---|
|  |  |  | voTradeDetail.setTradeAmount(0d);//2 | 
|---|
|  |  |  | voTradeDetail.setRefundAmount(refundAmount1);//2 | 
|---|
|  |  |  | voTradeDetail.setMoney(money);//待2 | 
|---|
|  |  |  | voTradeDetail.setPaymentName("赠送");//2 | 
|---|
|  |  |  | voTradeDetail.setOrderNumber(orderNumber);//2 | 
|---|
|  |  |  | voTradeDetail.setCardNum(cardNum);//2 | 
|---|
|  |  |  | voTradeDetail.setIdCard(idCard);//2 | 
|---|
|  |  |  | voTradeDetail.setCashierName(cashierName);//2 | 
|---|
|  |  |  | voTradeDetail.setCashierId(cashierId);//2 | 
|---|
|  |  |  | voTradeDetail.setCardState(cardState);//2 | 
|---|
|  |  |  | voTradeDetail.setVillageId(villageId);//2 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | list.add(voTradeDetail); | 
|---|
|  |  |  | itemTotal = itemTotal + 1; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | list.sort(Comparator.comparing(VoTradeDetails::getTradeTime)); | 
|---|
|  |  |  | rsVo.obj = list; | 
|---|
|  |  |  | rsVo.calculateAndSet(itemTotal, params); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 遍历交易明细记录,汇总购水金额、购卡金额 | 
|---|
|  |  |  | Double totalWaterCost = 0.0; | 
|---|
|  |  |  | 
|---|
|  |  |  | clientCard.setLastoper(LastOperateENUM.REFUND.getCode()); | 
|---|
|  |  |  | return seClientCardMapper.updateByPrimaryKeySelective(clientCard); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 修改反写水卡表的操作信息及余额 | 
|---|
|  |  |  | * @param operateType | 
|---|
|  |  |  | * @param cardId | 
|---|
|  |  |  | * @return | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public Integer updateWriteBack(Integer operateType, Long cardId) { | 
|---|
|  |  |  | SeCardOperate cardOperate = seCardOperateMapper.getCardOperate(operateType, cardId); | 
|---|
|  |  |  | Date writeBackTime = Optional.ofNullable(cardOperate.getOperateDt()).orElse(new Date()); | 
|---|
|  |  |  | Float money = cardOperate.getMoney(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | SeClientCard clientCard = new SeClientCard(); | 
|---|
|  |  |  | clientCard.setId(cardId); | 
|---|
|  |  |  | clientCard.setRefunddt(writeBackTime); | 
|---|
|  |  |  | clientCard.setMoney(money); | 
|---|
|  |  |  | clientCard.setLastoper(LastOperateENUM.WRITE_BACK.getCode()); | 
|---|
|  |  |  | return seClientCardMapper.updateByPrimaryKeySelective(clientCard); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|