diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxBillController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxBillController.java index 4f400cba9..11c923e7e 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxBillController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxBillController.java @@ -4,12 +4,20 @@ 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; @@ -19,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; @@ -38,6 +49,8 @@ public class WxBillController extends BaseController { WxMerchantService wxMerchantService; @Autowired WxBillSettleService wxBillSettleService; + @Autowired + private WxFlowService wxFlowService; // @ApiOperation("所有欠缴和待缴的数据") // @PostMapping("listBillOweAndWaitPay") @@ -63,7 +76,6 @@ public class WxBillController extends BaseController { @ApiOperation("账单") @PostMapping("listBill") public ResultData listBill(@RequestBody WxBillAll wxBillAll) { - logger.info(">>>>>>>listBill>>>>"+JSON.toJSONString(wxBillAll)); if(StringUtils.isEmpty(wxBillAll.getTenantId())){ return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"tenantId不能为空"); } @@ -98,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/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()) { //账单审批