| @@ -8,6 +8,7 @@ import com.iformall.controller.base.BaseController; | |||
| import com.iformall.domain.po.BaseEntity; | |||
| import com.iformall.domain.po.WxBillSettle; | |||
| import com.iformall.domain.po.WxBillSettleRecord; | |||
| import com.iformall.enums.EnumFilter; | |||
| import com.iformall.service.WxBillAllService; | |||
| import com.iformall.service.WxBillSettleRecordService; | |||
| import com.iformall.service.WxBillSettleService; | |||
| @@ -59,7 +60,7 @@ public class WxBillSettleController extends BaseController { | |||
| @SystemControllerLog(description = "账单管理-结算单-id查找") | |||
| public ResultData findById(Long id) { | |||
| logger.debug("[" + getIpAddr() + "] WxBillSettleController::findById"); | |||
| return new ResultData(Result.SUCCESS, "查询成功", wxBillSettleService.getById(id)); | |||
| return new ResultData(Result.SUCCESS, "查询成功", wxBillSettleService.getById(id, EnumFilter.NO.getCode())); | |||
| } | |||
| @PostMapping("addOrUpdate") | |||
| @@ -110,23 +110,23 @@ public class Test { | |||
| // wxBillAll.setBillTypeValue(10); | |||
| // log.debug("data:{}", JSON.toJSONString( wxBillAllService.listBill(wxBillAll))); | |||
| WxBillSettle wxBillSettle = wxBillSettleService.getById(330875180045271040l); | |||
| WxBillSettleRecord settleRecord = new WxBillSettleRecord(); | |||
| settleRecord.setSettleId(wxBillSettle.getId()); | |||
| settleRecord.setSettleMoney(wxBillSettle.getBalance()); | |||
| settleRecord.setSettleTime(new Date()); | |||
| settleRecord.setSettleWay(EnumSettleRecordWay.WEBCAT.getCode()); | |||
| settleRecord.setTenantId(wxBillSettle.getTenantId()); | |||
| BigDecimal money = new BigDecimal(settleRecord.getSettleMoney()).divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP); | |||
| settleRecord.setDetail(EnumSettleRecordWay.getEnum(settleRecord.getSettleWay()).getMessage()+"收款"+money.toString()+"元"); | |||
| wxBillSettleRecordService.saveOrUpdate(settleRecord,null,wxBillSettle.getId()); | |||
| wxBillSettle.setUpdatetime(new Date()); | |||
| wxBillSettle.setStatus(EnumSettleStatus.FINISH.getCode()); | |||
| wxBillSettleMapper.updateByPrimaryKeySelective(wxBillSettle); | |||
| // WxBillSettle wxBillSettle = wxBillSettleService.getById(330875180045271040l); | |||
| // | |||
| // | |||
| // WxBillSettleRecord settleRecord = new WxBillSettleRecord(); | |||
| // settleRecord.setSettleId(wxBillSettle.getId()); | |||
| // settleRecord.setSettleMoney(wxBillSettle.getBalance()); | |||
| // settleRecord.setSettleTime(new Date()); | |||
| // settleRecord.setSettleWay(EnumSettleRecordWay.WEBCAT.getCode()); | |||
| // settleRecord.setTenantId(wxBillSettle.getTenantId()); | |||
| // | |||
| // BigDecimal money = new BigDecimal(settleRecord.getSettleMoney()).divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP); | |||
| // settleRecord.setDetail(EnumSettleRecordWay.getEnum(settleRecord.getSettleWay()).getMessage()+"收款"+money.toString()+"元"); | |||
| // wxBillSettleRecordService.saveOrUpdate(settleRecord,null,wxBillSettle.getId()); | |||
| // | |||
| // wxBillSettle.setUpdatetime(new Date()); | |||
| // wxBillSettle.setStatus(EnumSettleStatus.FINISH.getCode()); | |||
| // wxBillSettleMapper.updateByPrimaryKeySelective(wxBillSettle); | |||
| } | |||
| @org.junit.Test | |||
| @@ -6,6 +6,7 @@ import com.iformall.common.Result; | |||
| import com.iformall.common.ResultData; | |||
| import com.iformall.domain.po.WxMerchant; | |||
| import com.iformall.domain.vo.WxBillAll; | |||
| import com.iformall.enums.EnumFilter; | |||
| import com.iformall.enums.EnumMerchantStatus; | |||
| import com.iformall.service.WxBillAllService; | |||
| import com.iformall.service.WxBillSettleService; | |||
| @@ -91,7 +92,7 @@ public class WxBillController extends BaseController { | |||
| @ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true) | |||
| @ApiOperation("账单管理-结算单-id查找") | |||
| public ResultData findById(Long id) { | |||
| return new ResultData(Result.SUCCESS, "查询成功", wxBillSettleService.getById(id)); | |||
| return new ResultData(Result.SUCCESS, "查询成功", wxBillSettleService.getById(id, EnumFilter.NO.getCode())); | |||
| } | |||
| } | |||
| @@ -97,4 +97,9 @@ public class WxBillSettle extends BaseEntity { | |||
| private Integer limitStart; | |||
| @Transient | |||
| private Integer limitEnd; | |||
| @Transient | |||
| @io.swagger.annotations.ApiModelProperty(value="是否过滤结算历史 1不过滤",name="filterSettleRecord") | |||
| private Integer filterSettleRecord =0; | |||
| } | |||
| @@ -22,13 +22,14 @@ public interface WxBillSettleService { | |||
| */ | |||
| PageInfo<WxBillSettle> listAsPage(WxBillSettle record, Integer pageIndex, Integer pageSize); | |||
| /** | |||
| * 根据Id获得实体 | |||
| * | |||
| * @param id | |||
| * @return | |||
| */ | |||
| WxBillSettle getById(Long id); | |||
| WxBillSettle getById(Long id,Integer filterSettleRecord); | |||
| /** | |||
| * 保存或更新实体 | |||
| @@ -127,6 +127,9 @@ public class WxBillAllServiceImpl implements WxBillAllService { | |||
| @Autowired | |||
| WxBillSettleService wxBillSettleService; | |||
| @Autowired | |||
| WxBillSettleRecordMapper wxBillSettleRecordMapper; | |||
| @Override | |||
| public Map<String, Object> listAsPage(WxBillAll record, Integer pageIndex, Integer pageSize) { | |||
| //更新各账单状态 | |||
| @@ -192,6 +195,16 @@ public class WxBillAllServiceImpl implements WxBillAllService { | |||
| return new ResultData(pageInfo); | |||
| } | |||
| List<Map<String, Object>> maps = wxBillAllMapper.listData(wxBillAll); | |||
| for (Map<String, Object> map:maps) { | |||
| Integer billType = (Integer)map.get("billTypeValue"); | |||
| if(EnumBillType.SETTLE.getCode().equals(billType)){ | |||
| Long rp = (Long)map.get("receive_pay"); | |||
| WxBillSettle query = new WxBillSettle(); | |||
| query.setId((Long)map.get("id")); | |||
| Long sum = wxBillSettleRecordMapper.getSumMoneyBySettleId(query); | |||
| map.put("owe",rp-sum); | |||
| } | |||
| } | |||
| return new ResultData(maps); | |||
| } | |||
| @@ -257,7 +270,7 @@ public class WxBillAllServiceImpl implements WxBillAllService { | |||
| try { | |||
| logger.info("更新结算单id:{}", JsonUtil.obj2Json(bill)); | |||
| WxBillSettle wxBillSettle = wxBillSettleService.getById((Long)bill.get("id")); | |||
| WxBillSettle wxBillSettle = wxBillSettleService.getById((Long)bill.get("id"),EnumFilter.NO.getCode()); | |||
| WxBillSettleRecord settleRecord = new WxBillSettleRecord(); | |||
| settleRecord.setSettleId((Long)bill.get("id")); | |||
| @@ -813,7 +826,7 @@ public class WxBillAllServiceImpl implements WxBillAllService { | |||
| @Override | |||
| public void exportSettleBill(WxBillSettle wxBillSettle, HttpServletRequest request, HttpServletResponse response) { | |||
| wxBillSettle = wxBillSettleService.getById(wxBillSettle.getId()); | |||
| wxBillSettle = wxBillSettleService.getById(wxBillSettle.getId(),EnumFilter.NO.getCode()); | |||
| if(wxBillSettle.getReceiveBillIds() == null) wxBillSettle.setReceiveBillIds(new ArrayList<>()); | |||
| if(wxBillSettle.getPayBillIds() == null) wxBillSettle.setPayBillIds(new ArrayList<>()); | |||
| @@ -97,7 +97,7 @@ public class WxBillSettleServiceImpl implements WxBillSettleService { | |||
| } | |||
| @Override | |||
| public WxBillSettle getById(Long id){ | |||
| public WxBillSettle getById(Long id,Integer filterSettleRecord){ | |||
| WxBillSettle billSettle = wxBillSettleMapper.selectByPrimaryKey(id); | |||
| if(billSettle != null){ | |||
| @@ -124,6 +124,7 @@ public class WxBillSettleServiceImpl implements WxBillSettleService { | |||
| //加载应收、承付、结余 | |||
| WxBillSettle query = new WxBillSettle(); | |||
| query.setId(id); | |||
| query.setFilterSettleRecord(filterSettleRecord); | |||
| query = wxBillSettleMapper.findList(query).get(0); | |||
| billSettle.setReceiveMoney(query.getReceiveMoney()); | |||
| billSettle.setPayMoney(query.getPayMoney()); | |||
| @@ -304,7 +304,7 @@ public class WxFlowServiceImpl implements WxFlowService { | |||
| wxBillSettle.setApplyStatus(applyStatus); | |||
| //审批完成,账单解冻 | |||
| WxBillSettle settle = wxBillSettleService.getById(businessId); | |||
| WxBillSettle settle = wxBillSettleService.getById(businessId,EnumFilter.NO.getCode()); | |||
| if(EnumRentContractAppStatus.FINISH.getCode().intValue() == applyStatus.intValue()) { | |||
| wxBillSettle.setStatus(EnumSettleStatus.NOT_FINISH.getCode()); | |||
| wxBillSettleService.updateFreezeOrStatus(settle.getReceiveBillIds(), EnumFreezeType.DEF.getCode(),EnumBillRentStatus.PAID.getCode()); | |||
| @@ -105,7 +105,7 @@ public class WxPayBillServiceImpl implements WxPayBillService { | |||
| Integer billTypeValue = ((Long) bill.get("billTypeValue")).intValue(); | |||
| if(EnumBillType.SETTLE.getCode().equals(billTypeValue)){ | |||
| WxBillSettle wxBillSettle = wxBillSettleService.getById(record.getBillId()); | |||
| WxBillSettle wxBillSettle = wxBillSettleService.getById(record.getBillId(),EnumFilter.NO.getCode()); | |||
| owe = wxBillSettle.getBalance(); | |||
| bill.put("owe",owe); | |||
| logger.info("wxBillSettle.balance:{}",owe); | |||
| @@ -279,8 +279,7 @@ public class WxRentContractServiceImpl implements WxRentContractService { | |||
| return ratioVo; | |||
| } | |||
| List<String> ratioList = JSONArray.parseArray(busDiscountRatio, String.class); | |||
| ratioVo.setUseRatio("["); | |||
| ratioVo.setUseRatio(busDiscountRatio); | |||
| for (int i = 0; i < ratioList.size(); i++) { | |||
| BigDecimal revenue = new BigDecimal(revenueLong).divide(new BigDecimal(1000000)).setScale(8, RoundingMode.HALF_EVEN); | |||
| @@ -316,7 +315,6 @@ public class WxRentContractServiceImpl implements WxRentContractService { | |||
| if (revenue.compareTo(start) >= 0 && revenue.compareTo(end)<= 0){ | |||
| ratioVo.setRatio(ratio); | |||
| ratioVo.setPrice(countPrice(ratioVo.getRatio(),revenueLong,timeType,period,from)); | |||
| ratioVo.setUseRatio(ratioVo.getUseRatio()+"\""+e+"\","); | |||
| break; | |||
| } | |||
| }else if(e.indexOf(">") >= 0){ | |||
| @@ -343,7 +341,6 @@ public class WxRentContractServiceImpl implements WxRentContractService { | |||
| if (revenue.compareTo(end) >= 0){ | |||
| ratioVo.setRatio(ratio); | |||
| ratioVo.setUseRatio(ratioVo.getUseRatio()+"\""+e+"\","); | |||
| //计算超出部分 | |||
| BigDecimal payRatio = new BigDecimal(ratio).divide(new BigDecimal(10000)); | |||
| @@ -375,9 +372,6 @@ public class WxRentContractServiceImpl implements WxRentContractService { | |||
| } | |||
| } | |||
| } | |||
| if(!"[".equals(ratioVo.getUseRatio())) { | |||
| ratioVo.setUseRatio(ratioVo.getUseRatio().substring(0, ratioVo.getUseRatio().lastIndexOf(",")) + "]"); | |||
| } | |||
| return ratioVo; | |||
| } | |||
| @@ -51,9 +51,16 @@ | |||
| </sql> | |||
| <select id="findList" parameterType="com.iformall.domain.po.WxBillSettle" resultMap="BaseResultMap"> | |||
| select tt.*,(tt.receiveMoney-tt.payMoney- | |||
| (select IFNULL(sum(settle_money),0) from wx_bill_settle_record where settle_id = tt.id) | |||
| ) balance from ( | |||
| select tt.* | |||
| <if test="0 == filterSettleRecord"> | |||
| ,(tt.receiveMoney-tt.payMoney- | |||
| (select IFNULL(sum(settle_money),0) from wx_bill_settle_record where settle_id = tt.id) | |||
| ) balance | |||
| </if> | |||
| <if test="1 == filterSettleRecord"> | |||
| ,(tt.receiveMoney-tt.payMoney) balance | |||
| </if> | |||
| from ( | |||
| select s.*,m.name merchantName, | |||
| (select IFNULL(sum(bill.owe),0) from wx_bill_settle_bill bb left join | |||
| (select id,merchant_id,shop_id,tenant_id,1 bill_type_value,'租金' | |||
| @@ -141,5 +148,6 @@ | |||
| </select> | |||
| </mapper> | |||