diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxBillController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxBillController.java index 67b205b0e..11c923e7e 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxBillController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxBillController.java @@ -1,14 +1,23 @@ package com.iformall.controller; +import com.alibaba.fastjson.JSON; import com.iformall.common.ErrorCode; import com.iformall.common.Result; import com.iformall.common.ResultData; +import com.iformall.domain.po.WxFlowModel; import com.iformall.domain.po.WxMerchant; +import com.iformall.domain.po.WxMerchantBUser; +import com.iformall.domain.po.WxRentContract; import com.iformall.domain.vo.WxBillAll; +import com.iformall.enums.EnumBillUpdateType; +import com.iformall.enums.EnumContractOperationType; import com.iformall.enums.EnumFilterSettle; +import com.iformall.enums.EnumFlowKey; import com.iformall.enums.EnumMerchantStatus; +import com.iformall.enums.EnumRentShopType; import com.iformall.service.WxBillAllService; import com.iformall.service.WxBillSettleService; +import com.iformall.service.WxFlowService; import com.iformall.service.WxMerchantService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -18,6 +27,9 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; + +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -37,6 +49,8 @@ public class WxBillController extends BaseController { WxMerchantService wxMerchantService; @Autowired WxBillSettleService wxBillSettleService; + @Autowired + private WxFlowService wxFlowService; // @ApiOperation("所有欠缴和待缴的数据") // @PostMapping("listBillOweAndWaitPay") @@ -62,7 +76,6 @@ public class WxBillController extends BaseController { @ApiOperation("账单") @PostMapping("listBill") public ResultData listBill(@RequestBody WxBillAll wxBillAll) { - if(StringUtils.isEmpty(wxBillAll.getTenantId())){ return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"tenantId不能为空"); } @@ -97,5 +110,56 @@ public class WxBillController extends BaseController { public ResultData findById(Long id) { return new ResultData(Result.SUCCESS, "查询成功", wxBillSettleService.getById(id, EnumFilterSettle.NO.getCode())); } + + @ApiOperation("完结账单") + @PostMapping("finishBill") + public ResultData finishBill(@RequestBody WxBillAll wxBillAll) { + if(!billFinishHasWorkFlow(wxBillAll)) { + return new ResultData(ErrorCode.FLOW_FAIL.getCode(),"商户账单完结审批不存在工作流,不能提交审批。"); + } + WxMerchantBUser buser = this.getLoginBUser(); + + Map map = new HashMap(); + map.put("businessType", EnumFlowKey.BILL_FINISH.getCode()); + //map.put("payMoney", wxBillAll.getNewPrice()); + map.put("businessId", wxBillAll.getId()); + map.put("payImg", wxBillAll.getPayImg()); + List variablesList = new ArrayList(); + Map billTypeMap = new HashMap(); + billTypeMap.put("key","billType"); + billTypeMap.put("value",wxBillAll.getBillTypeValue()); + variablesList.add(billTypeMap); + + Map billUpdateTypeMap = new HashMap(); + billUpdateTypeMap.put("key","billUpdateType"); + billUpdateTypeMap.put("value",EnumBillUpdateType.OTHER.getCode()); + variablesList.add(billUpdateTypeMap); + + Map oldPriceMap = new HashMap(); + oldPriceMap.put("key","oldPrice"); + oldPriceMap.put("value",wxBillAll.getOldPrice()); + variablesList.add(oldPriceMap); + + Map newPriceMap = new HashMap(); + newPriceMap.put("key","newPrice"); + newPriceMap.put("value",wxBillAll.getNewPrice()); + variablesList.add(newPriceMap); + + map.put("variables", variablesList); + map.put("phone", buser.getPhone()); + wxFlowService.start(map, buser.getId(), buser.getName(), this.getTenantInfo()); + return new ResultData(); + } + + private boolean billFinishHasWorkFlow(WxBillAll wxBillAll) { + WxFlowModel wxFlowModel = new WxFlowModel(); + wxFlowModel.setFlowType(EnumFlowKey.BILL_FINISH.getCode()); + wxFlowModel.updateTenantInfo(this.getTenantInfo()); + List flows = wxFlowService.getModelBybusiness(wxFlowModel); + if (null != flows && flows.size() > 0) { + return true; + } + return false; + } } diff --git a/mallinkService/src/main/java/com/iformall/domain/vo/WxBillAll.java b/mallinkService/src/main/java/com/iformall/domain/vo/WxBillAll.java index b1e7989cc..3cee6a003 100644 --- a/mallinkService/src/main/java/com/iformall/domain/vo/WxBillAll.java +++ b/mallinkService/src/main/java/com/iformall/domain/vo/WxBillAll.java @@ -127,6 +127,9 @@ public class WxBillAll extends TenantEntity { private Long oldPrice; @io.swagger.annotations.ApiModelProperty(value = "金额新值", name = "newPrice") private Long newPrice; + @TableField(exist = false) + @io.swagger.annotations.ApiModelProperty(value = "B端上传的小票图片", name = "payImg") + private String payImg; //滞纳金 @TableField(exist = false) diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumFlowKey.java b/mallinkService/src/main/java/com/iformall/enums/EnumFlowKey.java index c759cd033..bc1d0a354 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumFlowKey.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumFlowKey.java @@ -37,6 +37,7 @@ public enum EnumFlowKey { NEW_RENT_POINT_CONTRACT_END(20, "多经点位商铺租金+物业合同终止"), SETTLE(21,"结算单审批"), + BILL_FINISH(30,"商户账单完结审批"), CASH_OUT(23,"商户提现审批") ; diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumRentContractType.java b/mallinkService/src/main/java/com/iformall/enums/EnumRentContractType.java index 1c04975cc..bb5ad5119 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumRentContractType.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumRentContractType.java @@ -10,7 +10,8 @@ public enum EnumRentContractType { RENT_BY_AREA(1, "面积"), RENT_BY_JOINT(2, "联营扣点"), RENT_BY_AREA_AND_JOINT(3, "面积与联营扣点取高"), - RENT_BY_COUNT(4,"按铺位或点位数") + RENT_BY_COUNT(4,"按铺位或点位数"), + RENT_BY_CUSTOMIZE(5,"自定义") ; public static EnumRentContractType getEnum(Integer code) { diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java index 63290729a..049b190dc 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java @@ -320,7 +320,8 @@ public class WxFlowServiceImpl implements WxFlowService { } wxPropertyContractMapper.updateApplyStatus(wxPropertyContract); } - } else if (EnumFlowKey.BILL.getCode().equals(flowType) || EnumFlowKey.NEW_BILL_CHANGE.getCode().equals(flowType)) { + } else if (EnumFlowKey.BILL.getCode().equals(flowType) || EnumFlowKey.NEW_BILL_CHANGE.getCode().equals(flowType) + || EnumFlowKey.BILL_FINISH.getCode().equals(flowType)) { Integer billType = getIngeter(getVariableByKey(variables, "billType")); if(EnumRentContractAppStatus.FINISH.getCode().intValue() == applyStatus.intValue()) { //账单审批 diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java index aeab8d4a0..7e9f82f14 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -1213,6 +1213,23 @@ public class WxRentContractServiceImpl implements WxRentContractService { priceArrs[i] = priceD.setScale(0, RoundingMode.HALF_EVEN).longValue(); } } + }else if (wxRentContract.getType().equals(EnumRentContractType.RENT_BY_CUSTOMIZE.getCode())) { + String adjustRatio = wxRentContract.getAdjustRatio(); + JSONArray array = JSONArray.parseArray(adjustRatio); + if(array != null && array.size() > 0){ + priceArrs = new long[array.size()]; + size = array.size(); + for (int i=0;i(); }