2024-08-31 08:06:41 +00:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @Project: emis
|
|
|
|
|
* @Title: EmisSettleBillController.java
|
|
|
|
|
* @author linfso
|
|
|
|
|
* @date 2024-07-03 18:54:51
|
|
|
|
|
* @Copyright: ShangHai Duta 2022 All rights reserved.
|
|
|
|
|
* @version v1.0
|
|
|
|
|
* @Description: <p> 结算总账单 控制器 </p>
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
package com.xdadan.erp.apiweb;
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.io.resource.ResourceUtil;
|
|
|
|
|
import cn.hutool.core.map.MapUtil;
|
|
|
|
|
import com.alibaba.excel.EasyExcel;
|
|
|
|
|
import com.alibaba.excel.ExcelWriter;
|
|
|
|
|
import com.alibaba.excel.support.ExcelTypeEnum;
|
|
|
|
|
import com.alibaba.excel.util.MapUtils;
|
|
|
|
|
import com.alibaba.excel.write.metadata.WriteSheet;
|
|
|
|
|
import com.alibaba.excel.write.metadata.fill.FillConfig;
|
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
|
|
import com.xdadan.erp.common.annotation.Log;
|
|
|
|
|
import com.xdadan.erp.common.core.controller.BaseController;
|
|
|
|
|
import com.xdadan.erp.common.core.domain.AjaxResult;
|
|
|
|
|
import com.xdadan.erp.common.core.page.TableDataInfo;
|
|
|
|
|
import com.xdadan.erp.common.enums.BusinessType;
|
|
|
|
|
import com.xdadan.erp.common.utils.DateUtils;
|
|
|
|
|
import com.xdadan.erp.common.utils.DictUtils;
|
|
|
|
|
import com.xdadan.erp.common.utils.poi.ExcelUtil;
|
|
|
|
|
import com.xdadan.erp.emis.domain.EmisSettleBill;
|
|
|
|
|
import com.xdadan.erp.emis.domain.EmisSettleSubBill;
|
|
|
|
|
import com.xdadan.erp.emis.domain.EmisSettleSubBillFeeitem;
|
|
|
|
|
import com.xdadan.erp.emis.domain.exception.EmisBizError;
|
|
|
|
|
import com.xdadan.erp.emis.service.EmisBaseService;
|
2024-08-31 14:18:57 +00:00
|
|
|
import com.xdadan.erp.emis.service.IEmisSettleBillPayLogService;
|
2024-08-31 08:06:41 +00:00
|
|
|
import com.xdadan.erp.emis.service.IEmisSettleBillService;
|
|
|
|
|
import com.xdadan.erp.emis.utils.WaybillHelper;
|
|
|
|
|
import org.apache.commons.io.IOUtils;
|
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
import org.springframework.security.access.prepost.PreAuthorize;
|
|
|
|
|
import org.springframework.util.CollectionUtils;
|
|
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
|
|
|
|
import javax.servlet.ServletOutputStream;
|
|
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
|
|
import java.io.IOException;
|
|
|
|
|
import java.io.InputStream;
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
|
|
import java.net.URLEncoder;
|
|
|
|
|
import java.nio.charset.StandardCharsets;
|
|
|
|
|
import java.util.*;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 结算总账单Controller
|
|
|
|
|
*
|
|
|
|
|
* @author linfso
|
|
|
|
|
* @date 2024-07-03 18:54:51
|
|
|
|
|
*/
|
|
|
|
|
@RestController
|
|
|
|
|
@RequestMapping("/apiweb/emisSettleBill")
|
|
|
|
|
public class SettleBillController extends BaseController
|
|
|
|
|
{
|
|
|
|
|
@Autowired
|
|
|
|
|
private IEmisSettleBillService emisSettleBillService;
|
|
|
|
|
|
2024-08-31 14:18:57 +00:00
|
|
|
@Autowired
|
|
|
|
|
private IEmisSettleBillPayLogService emisSettleBillPayLogService;
|
|
|
|
|
|
2024-08-31 08:06:41 +00:00
|
|
|
@Autowired
|
|
|
|
|
private EmisBaseService emisBaseService;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 查询结算总账单列表
|
|
|
|
|
*/
|
|
|
|
|
@GetMapping("/listSimple")
|
|
|
|
|
public TableDataInfo listSimple(EmisSettleBill emisSettleBill)
|
|
|
|
|
{
|
|
|
|
|
startPage();
|
|
|
|
|
|
|
|
|
|
setPrivParams(emisSettleBill);
|
|
|
|
|
|
|
|
|
|
String billCodeStr = MapUtil.getStr(emisSettleBill.getParams(),"billCode");
|
|
|
|
|
if(!StringUtils.isEmpty(billCodeStr)){
|
|
|
|
|
emisSettleBill.getParams().put("billCode", WaybillHelper.formatQueryValue(billCodeStr));
|
|
|
|
|
String[] billCodeSortList = billCodeStr.split(",");
|
|
|
|
|
if(billCodeSortList.length>1){
|
|
|
|
|
emisSettleBill.getParams().put("billCodeSortList", Arrays.asList(billCodeSortList));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if(!StringUtils.isEmpty(emisSettleBill.getSettleBillNo())){
|
|
|
|
|
emisSettleBill.setSettleBillNo(WaybillHelper.formatQueryValue(emisSettleBill.getSettleBillNo()));
|
|
|
|
|
String[] settleBillNoSortList = emisSettleBill.getSettleBillNo().split(",");
|
|
|
|
|
if(settleBillNoSortList.length>1){
|
|
|
|
|
emisSettleBill.getParams().put("settleBillNoSortList",Arrays.asList(settleBillNoSortList));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
List<EmisSettleBill> list = emisSettleBillService.selectEmisSettleBillList(emisSettleBill);
|
|
|
|
|
return getDataTable(list);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获取结算总账单详细信息
|
|
|
|
|
*/
|
|
|
|
|
// @PreAuthorize("@ss.hasPermi('emis:emisSettleBill:query')")
|
|
|
|
|
@GetMapping(value = "/{id}")
|
|
|
|
|
public AjaxResult getInfo(@PathVariable("id") Long id)
|
|
|
|
|
{
|
|
|
|
|
return AjaxResult.success(emisSettleBillService.selectEmisSettleBillById(id));
|
|
|
|
|
}
|
|
|
|
|
|
2025-06-19 10:56:05 +00:00
|
|
|
|
2024-08-31 08:06:41 +00:00
|
|
|
/**
|
|
|
|
|
* 获取结算总账单详细信息
|
|
|
|
|
*/
|
|
|
|
|
@GetMapping(value = "/getInfoBySettleBillNo")
|
|
|
|
|
public AjaxResult getInfoBySettleBillNo(String settleBillNo)
|
|
|
|
|
{
|
2024-08-31 10:09:06 +00:00
|
|
|
EmisSettleBill emisSettleBill=emisBaseService.getSettleBillBySettleBillNo(settleBillNo);
|
2024-08-31 14:22:51 +00:00
|
|
|
|
|
|
|
|
BigDecimal thisPayMoney=emisSettleBill.getRecMoney().subtract(emisSettleBill.getRecedMoney());
|
|
|
|
|
emisSettleBill.setThisPayMoney(thisPayMoney);
|
|
|
|
|
|
2024-08-31 14:57:44 +00:00
|
|
|
// subBillList , 返回子账单列表
|
|
|
|
|
List<EmisSettleSubBill> subBillList=emisBaseService.selectSubBillListBySettleBillNo(settleBillNo);
|
|
|
|
|
emisSettleBill.setSubBillList(subBillList);
|
|
|
|
|
|
2025-06-24 19:35:22 +00:00
|
|
|
try {
|
|
|
|
|
int isCanPay=emisSettleBillService.checkCanOnlinePay(emisSettleBill);
|
|
|
|
|
if(isCanPay==1) {
|
|
|
|
|
emisSettleBill.setBlLockOnlinePay("F");
|
|
|
|
|
}else{
|
|
|
|
|
emisSettleBill.setBlLockOnlinePay("T");
|
|
|
|
|
emisSettleBill.setLockOnlinePayReason("该单不支持在线支付");
|
|
|
|
|
}
|
|
|
|
|
} catch (EmisBizError emisBizError) {
|
|
|
|
|
emisBizError.printStackTrace();
|
|
|
|
|
emisSettleBill.setBlLockOnlinePay("T");
|
|
|
|
|
emisSettleBill.setLockOnlinePayReason("该单不支持在线支付:"+emisBizError.getMessage());
|
|
|
|
|
}
|
|
|
|
|
|
2024-08-31 10:09:06 +00:00
|
|
|
return AjaxResult.success("成功",emisSettleBill);
|
2024-08-31 08:06:41 +00:00
|
|
|
}
|
|
|
|
|
|
2025-06-24 19:35:22 +00:00
|
|
|
@GetMapping(value = "/checkCanOnlinePay")
|
2025-06-24 19:48:04 +00:00
|
|
|
public AjaxResult checkCanOnlinePay(String settleBillNo)
|
2025-06-24 19:35:22 +00:00
|
|
|
{
|
2025-06-24 19:48:04 +00:00
|
|
|
EmisSettleBill emisSettleBill=new EmisSettleBill();
|
|
|
|
|
emisSettleBill.setSettleBillNo(settleBillNo);
|
2025-06-24 19:35:22 +00:00
|
|
|
try {
|
|
|
|
|
int isCanPay=emisSettleBillService.checkCanOnlinePay(emisSettleBill);
|
|
|
|
|
if(isCanPay==1) {
|
|
|
|
|
return AjaxResult.success("支持在线支付", isCanPay);
|
|
|
|
|
}else{
|
|
|
|
|
return AjaxResult.error("不支持在线支付", isCanPay);
|
|
|
|
|
}
|
|
|
|
|
} catch (EmisBizError emisBizError) {
|
|
|
|
|
emisBizError.printStackTrace();
|
|
|
|
|
return AjaxResult.error(emisBizError.getMessage());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2024-08-31 10:52:36 +00:00
|
|
|
@GetMapping(value = "/getWxPayQrCode")
|
|
|
|
|
public AjaxResult getWxPayQrCode(EmisSettleBill emisSettleBill)
|
|
|
|
|
{
|
2024-08-31 14:18:57 +00:00
|
|
|
try {
|
2025-06-24 19:35:22 +00:00
|
|
|
int isCanPay=emisSettleBillService.checkCanOnlinePay(emisSettleBill);
|
|
|
|
|
if(isCanPay==1) {
|
2025-06-24 19:44:50 +00:00
|
|
|
String qrPicUrl=emisSettleBillPayLogService.genWxPayQR(emisSettleBill.getSettleBillNo());
|
|
|
|
|
return AjaxResult.success("成功",qrPicUrl);
|
2025-06-24 19:35:22 +00:00
|
|
|
}else{
|
|
|
|
|
return AjaxResult.error("不支持在线支付", isCanPay);
|
|
|
|
|
}
|
2024-08-31 14:18:57 +00:00
|
|
|
} catch (EmisBizError emisBizError) {
|
|
|
|
|
emisBizError.printStackTrace();
|
|
|
|
|
return AjaxResult.error(emisBizError.getMessage());
|
|
|
|
|
}
|
2024-08-31 10:52:36 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@PostMapping(value = "/sumbitWxPay")
|
|
|
|
|
public AjaxResult sumbitWxPay(@RequestBody EmisSettleBill emisSettleBill)
|
|
|
|
|
{
|
2025-06-19 10:56:05 +00:00
|
|
|
// String customerCode=emisSettleBill.getCustomerCode();
|
|
|
|
|
// emisSettleBill.setCustomerCode(customerCode);
|
|
|
|
|
try {
|
2025-06-24 19:35:22 +00:00
|
|
|
|
|
|
|
|
int isCanPay=emisSettleBillService.checkCanOnlinePay(emisSettleBill);
|
|
|
|
|
if(isCanPay==1) {
|
2025-06-24 19:44:50 +00:00
|
|
|
Map<String,String> payObj=emisSettleBillPayLogService.genWxPayFromWxApp(emisSettleBill.getSettleBillNo(),emisSettleBill.getAppId(),emisSettleBill.getOpenId());
|
|
|
|
|
return AjaxResult.success("成功",payObj);
|
2025-06-24 19:35:22 +00:00
|
|
|
}else{
|
|
|
|
|
return AjaxResult.error("不支持在线支付", isCanPay);
|
|
|
|
|
}
|
|
|
|
|
|
2025-06-19 10:56:05 +00:00
|
|
|
} catch (EmisBizError emisBizError) {
|
|
|
|
|
emisBizError.printStackTrace();
|
|
|
|
|
return AjaxResult.error(emisBizError.getMessage());
|
|
|
|
|
}
|
|
|
|
|
|
2024-08-31 10:52:36 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2024-08-31 08:06:41 +00:00
|
|
|
}
|