diff --git a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisCommissionDtlController.java b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisCommissionDtlController.java index 1d05fd1f3..63c442ea6 100644 --- a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisCommissionDtlController.java +++ b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisCommissionDtlController.java @@ -11,12 +11,17 @@ package com.xdadan.erp.web.emis; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.Map; import javax.servlet.http.HttpServletResponse; +import cn.hutool.json.JSONObject; import com.xdadan.erp.common.annotation.filter.jackson.JacksonFilter; +import com.xdadan.erp.emis.domain.EmisWaybill; import com.xdadan.erp.emis.utils.WaybillHelper; +import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; @@ -58,22 +63,24 @@ public class EmisCommissionDtlController extends BaseController * */ @PreAuthorize("@ss.hasPermi('emis:emisCommissionDtl:list')") - @JacksonFilter(include= { - "id","feeType","money","billMonth", "billType","billCode","quoteId","quoteName" - ,"exprId","calcExpr","feeRemark","empCode","empName","createTime" - ,"waybillDetail.sendSiteName","waybillDetail.dispatchUnderlingSiteName" - ,"waybillDetail.sendCountryName","waybillDetail.receiveCountryName" - ,"waybillDetail.paymentType","waybillDetail.sendDate" - ,"waybillDetail.sendCompany","waybillDetail.transLineTypeName" - ,"waybillDetail.productTypeName","waybillDetail.timeType" - ,"waybillDetail.sendName","waybillDetail.parcelQty" - ,"waybillDetail.billWeight","waybillDetail.totalVolume" - ,"waybillDetail.volumeWeight","waybillDetail.settlementWeight" - ,"waybillDetail.billFee","waybillDetail.realFee" - ,"waybillDetail.freight","waybillDetail.paymentStatus" - ,"waybillDetail.feeRemark","waybillDetail.remark" - ,"waybillDetail.payee","waybillDetail.salesmen" - },value= EmisCommissionDtl.class,type= JacksonFilter.JscksonFilterType.RESPONSE) +// @JacksonFilter(include= { +// "id","feeType","money","billMonth", "billType","billCode","quoteId","quoteName" +// ,"exprId","calcExpr","feeRemark","empCode","empName","createTime" +// },value= EmisCommissionDtl.class,type= JacksonFilter.JscksonFilterType.RESPONSE) +// @JacksonFilter(include= { +// "waybillDetail.sendSiteName","waybillDetail.dispatchUnderlingSiteName" +// ,"waybillDetail.sendCountryName","waybillDetail.receiveCountryName" +// ,"waybillDetail.paymentType","waybillDetail.sendDate" +// ,"waybillDetail.sendCompany","waybillDetail.transLineTypeName" +// ,"waybillDetail.productTypeName","waybillDetail.timeType" +// ,"waybillDetail.sendName","waybillDetail.parcelQty" +// ,"waybillDetail.billWeight","waybillDetail.totalVolume" +// ,"waybillDetail.volumeWeight","waybillDetail.settlementWeight" +// ,"waybillDetail.billFee","waybillDetail.realFee" +// ,"waybillDetail.freight","waybillDetail.paymentStatus" +// ,"waybillDetail.feeRemark","waybillDetail.remark" +// ,"waybillDetail.payee","waybillDetail.salesmen" +// },value= EmisCommissionDtl.class,type= JacksonFilter.JscksonFilterType.RESPONSE) @GetMapping("/list") public TableDataInfo list(EmisCommissionDtl emisCommissionDtl) { @@ -90,6 +97,31 @@ public class EmisCommissionDtlController extends BaseController return getDataTable(list); } + /** + * 导出JSON数据 + * @param emisCommissionDtl + * @return + */ + @GetMapping("/mapDtlList") + public TableDataInfo mapDtlList(EmisCommissionDtl emisCommissionDtl) + { + startPage(); + if(!StringUtils.isEmpty(emisCommissionDtl.getBillCode())){ + emisCommissionDtl.setBillCode(WaybillHelper.formatQueryValue(emisCommissionDtl.getBillCode())); + String[] billCodeSortList = emisCommissionDtl.getBillCode().split(","); + if(billCodeSortList.length>1){ + emisCommissionDtl.getParams().put("billCodeSortList", Arrays.asList(billCodeSortList)); + } + } + + List list = emisCommissionDtlService.selectCommissionDtlMapList(emisCommissionDtl); + + + + return getDataTable(list); + } + + /** * 按批次查询明细 * @param emisCommissionDtl diff --git a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisCommonController.java b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisCommonController.java index 7edd949d3..c82a535bd 100644 --- a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisCommonController.java +++ b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisCommonController.java @@ -118,6 +118,74 @@ public class EmisCommonController extends EmisBaseController @Autowired RedissonService redissonService; + @Autowired + private IEmisSettleBillPayLogService emisSettleBillPayLogService; + + /** + * 在线支付回调 + * @param method + * @param data + * @param sign_type + * @param sign + * @return + */ + @PostMapping("/payNotifyCallback") + public String payNotifyCallback(String method,String data,String sign_type,String sign){ + + log.info("payNotifyCallback start"); + if(StringUtils.isAnyEmpty(method,data,sign)){ + return "param error"; + } + + /* + order_no String 订单号 + mer_id String 进件返回的商户ID + amount Integer 支付金额(分) + fee Integer 手续费(分为单位)。 + 到账金额为:amount-fee + time_created String 订单创建时间,yyyy-MM-dd HH:mm:ss + time_expire String 订单超时时间,yyyy-MM-dd HH:mm:ss + transaction_no String 支付渠道流水号 + channel String 支付渠道 + channel_type String 通道类型,请联系业务配置 例如 klt01 + trans_no String 平台交易流水号 + status Integer 交易状态 + 0 订单创建 + 10 未支付(待支付) + 11 用户支付中 + 20 支付成功 + 30 已关闭 + 31 已撤销(刷卡支付) + 40 支付失败 + 50 转入退款 + + err_msg String 错误消息 + */ + + + + + JSONObject jobjRst = JSONObject.parseObject(data); + String payId = jobjRst.getString("order_no"); + if(StringUtils.isEmpty(payId)){ + return "payId error"; + } + + String lockKey="payNotifyCallback_"+payId; + redissonService.lock(lockKey,300); + try { + log.info("payNotifyCallback start"); + emisSettleBillPayLogService.checkPayStatus(payId); + } catch (EmisBizError emisBizError) { + redissonService.unlock(lockKey); + emisBizError.printStackTrace(); + return emisBizError.getMessage(); + } + redissonService.unlock(lockKey); + log.info("payNotifyCallback end"); + return "success"; + } + /** * 获取中心可用简单数 * @param prefix @@ -878,6 +946,7 @@ public class EmisCommonController extends EmisBaseController } + @PostMapping("/notifyTraceByKD100") public String notifyTraceByKD100(){ String lockKey="notifyTraceByKD100"; diff --git a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisSettleBillController.java b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisSettleBillController.java index 29c1eefd2..709e9806b 100644 --- a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisSettleBillController.java +++ b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisSettleBillController.java @@ -106,21 +106,7 @@ public class EmisSettleBillController extends BaseController return getDataTable(list); } - /** - * 收款统计 - * @param emisSettleBill - * @return - */ - @GetMapping("/queryPayBackStatList") - public TableDataInfo queryPayBackStatList(EmisSettleBill emisSettleBill) - { - startPage(); - setPrivParams(emisSettleBill); - - List list = emisSettleBillService.queryPayBackStatList(emisSettleBill); - return getDataTable(list); - } @@ -254,6 +240,23 @@ public class EmisSettleBillController extends BaseController } } + /** + * 微信小程序支付 + * @param emisSettleBill + * @return + */ + @GetMapping(value = "/genWxPayFromWxApp") + public AjaxResult genWxPayFromWxApp(EmisSettleBill emisSettleBill) + { + try { + String qrPicUrl=emisSettleBillPayLogService.genWxPayFromWxApp(emisSettleBill.getSettleBillNo(),emisSettleBill.getOpenId()); + return AjaxResult.success("成功",qrPicUrl); + } catch (EmisBizError emisBizError) { + emisBizError.printStackTrace(); + return AjaxResult.error(emisBizError.getMessage()); + } + } + @PostMapping(value = "/sumbitWxPay") public AjaxResult sumbitWxPay(@RequestBody EmisSettleBill emisSettleBill) @@ -300,6 +303,43 @@ public class EmisSettleBillController extends BaseController return AjaxResult.success(result); } + + /** + * 收款统计 + * @param emisSettleBill + * @return + */ + @GetMapping("/queryPayBackStatList") + public TableDataInfo queryPayBackStatList(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 list = emisSettleBillService.queryPayBackStatList(emisSettleBill); + return getDataTable(list); + } + + /** * 新增运单总账单 */ diff --git a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisSettlePayRecordController.java b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisSettlePayRecordController.java index c2d81b059..3a2b63107 100644 --- a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisSettlePayRecordController.java +++ b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisSettlePayRecordController.java @@ -92,6 +92,37 @@ public class EmisSettlePayRecordController extends BaseController return getDataTable(list); } + /** + * 收款统计Map + */ + @GetMapping("/getSettlePayStatInfoMap") + public AjaxResult getSettlePayStatInfoMap(EmisSettlePayRecord emisSettlePayRecord) + { + setPrivParams(emisSettlePayRecord); + + + String billCodeStr = MapUtil.getStr(emisSettlePayRecord.getParams(),"billCode"); + if(!StringUtils.isEmpty(billCodeStr)){ + emisSettlePayRecord.getParams().put("billCode", WaybillHelper.formatQueryValue(billCodeStr)); + String[] billCodeSortList = billCodeStr.split(","); + if(billCodeSortList.length>1){ + emisSettlePayRecord.getParams().put("billCodeSortList", Arrays.asList(billCodeSortList)); + } + } + + + if(!StringUtils.isEmpty(emisSettlePayRecord.getSettleBillNo())){ + emisSettlePayRecord.setSettleBillNo(WaybillHelper.formatQueryValue(emisSettlePayRecord.getSettleBillNo())); + String[] settleBillNoSortList = emisSettlePayRecord.getSettleBillNo().split(","); + if(settleBillNoSortList.length>1){ + emisSettlePayRecord.getParams().put("settleBillNoSortList",Arrays.asList(settleBillNoSortList)); + } + } + + Map rstMap = emisSettlePayRecordService.getSettlePayStatInfoMap(emisSettlePayRecord); + return AjaxResult.success("查询成功",rstMap); + } + @GetMapping("/queryPayBackRecordList") public TableDataInfo queryPayBackRecordList(EmisSettlePayRecord emisSettlePayRecord) { @@ -114,7 +145,6 @@ public class EmisSettlePayRecordController extends BaseController return getDataTable(list); } - /** * 检查是否重复 * @@ -162,7 +192,7 @@ public class EmisSettlePayRecordController extends BaseController public AjaxResult add(@RequestBody EmisSettlePayRecord emisSettlePayRecord) { try { - return toAjax(emisSettlePayRecordService.insertEmisSettlePayRecord(emisSettlePayRecord)); + return toAjax(emisSettlePayRecordService.insertEmisSettlePayRecord(emisSettlePayRecord,null)); } catch (DuplicateKeyException e) { e.printStackTrace(); diff --git a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisTmsCostProfitController.java b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisTmsCostProfitController.java index f8aebce8f..d78f7bfb4 100644 --- a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisTmsCostProfitController.java +++ b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisTmsCostProfitController.java @@ -59,10 +59,13 @@ public class EmisTmsCostProfitController extends BaseController public TableDataInfo list(EmisTmsCostProfit emisTmsCostProfit) { startPage(); - emisTmsCostProfit.setBillCode(WaybillHelper.formatQueryValue(emisTmsCostProfit.getBillCode())); - String[] billCodeSortList = emisTmsCostProfit.getBillCode().split(","); - if(billCodeSortList.length>1){ - emisTmsCostProfit.getParams().put("billCodeSortList", Arrays.asList(billCodeSortList)); + + if(!StringUtils.isEmpty(emisTmsCostProfit.getBillCode())) { + emisTmsCostProfit.setBillCode(WaybillHelper.formatQueryValue(emisTmsCostProfit.getBillCode())); + String[] billCodeSortList = emisTmsCostProfit.getBillCode().split(","); + if (billCodeSortList.length > 1) { + emisTmsCostProfit.getParams().put("billCodeSortList", Arrays.asList(billCodeSortList)); + } } List list = emisTmsCostProfitService.selectEmisTmsCostProfitList(emisTmsCostProfit); diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisSettleBill.java b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisSettleBill.java index 9e5950f80..6ff417dc7 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisSettleBill.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisSettleBill.java @@ -193,7 +193,8 @@ public class EmisSettleBill extends BaseEntity // 支付二维码图片 private String qrCodePayPicUrl; - + // 支付人openId + private String openId; List subBillList; diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisCommissionDtlMapper.java b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisCommissionDtlMapper.java index e3a07c631..241e5b534 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisCommissionDtlMapper.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisCommissionDtlMapper.java @@ -11,6 +11,8 @@ package com.xdadan.erp.emis.mapper; import java.util.List; +import java.util.Map; + import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.xdadan.erp.emis.domain.EmisCommissionDtl; /** @@ -36,6 +38,7 @@ public interface EmisCommissionDtlMapper extends BaseMapper */ public List selectEmisCommissionDtlList(EmisCommissionDtl emisCommissionDtl); + public List selectCommissionDtlMapList(EmisCommissionDtl emisCommissionDtl); /** * 批次提成明细 diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisSettlePayRecordMapper.java b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisSettlePayRecordMapper.java index 91f0a57cc..34bf56cbb 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisSettlePayRecordMapper.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisSettlePayRecordMapper.java @@ -41,6 +41,8 @@ public interface EmisSettlePayRecordMapper extends BaseMapper selectEmisSettlePayRecordList(EmisSettlePayRecord emisSettlePayRecord); + public Map getSettlePayStatInfoMap(EmisSettlePayRecord emisSettlePayRecord); + public List selectSettlePayRecordListBySettleBillNo(String settleBillNo); diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java index 647f947e1..9fddaf1bd 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java @@ -43,6 +43,8 @@ package com.xdadan.erp.emis.service; import org.springframework.util.CollectionUtils; import java.math.BigDecimal; + import java.text.ParseException; + import java.text.SimpleDateFormat; import java.time.Instant; import java.time.temporal.ChronoUnit; import java.util.*; @@ -2344,9 +2346,9 @@ public class EmisBaseService { startDate=currentTime; } - // 开单当天不算时效 - Date newEstDate = getEstimateDate( - startDate,oldEmisWaybill.getProductType(), + // 计算延长时间 + Date newEstDate = getEstimateDateByProm( + startDate, oldEmisWaybill.getSendCountry(), oldEmisWaybill.getReceiveCountry(),emisProblemType.getDelayDay()); @@ -3780,14 +3782,14 @@ public class EmisBaseService { } - /** - * 计算预估到达时间 - * @param sendDate 开单时间 - * @param prodCode - * @param receiveCountry - * @param sendCountry - * @return - */ + /** + * 计算预估到达时间,根据产品时效来计算 + * @param sendDate 开单时间 + * @param prodCode + * @param receiveCountry + * @param sendCountry + * @return + */ public Date getEstimateDate(Date sendDate,String prodCode,String receiveCountry,String sendCountry,Integer otherAddDay) { Date estDate = null; @@ -3823,7 +3825,7 @@ public class EmisBaseService { startDate, endDate); - // 1+1+ + // 1+1+ 5+0-1+2+0 int totalDays=(emisTransProduct.getMaxAging()+otherAddDay-1)+weekDays+notCaclDays; log.info("计算预估到达时间:[maxAging="+emisTransProduct.getMaxAging()+",weekDays="+weekDays+",notCaclDays="+notCaclDays); // 预估达到时间 @@ -3831,6 +3833,53 @@ public class EmisBaseService { } + /** + * 根据问题件时间延长时效 + * @param sendDate 开单时间 + * @param receiveCountry + * @param sendCountry + * @return + */ + public Date getEstimateDateByProm(Date sendDate,String receiveCountry,String sendCountry,Integer otherAddDay) { + Date estDate = null; + + if(otherAddDay==null){ + otherAddDay=0; + } + // 发件时间+1天,从下一天的0点开始算 + sendDate = DateUtils.addDays(sendDate,1); + + // 初始化0点时间 + Calendar calendar = Calendar.getInstance(); + calendar.setTime(sendDate); + calendar.set(Calendar.SECOND, 0); + calendar.set(Calendar.MINUTE, 0); + calendar.set(Calendar.HOUR_OF_DAY, 0); + calendar.set(Calendar.MILLISECOND, 0); + + Date startDate=calendar.getTime(); + + // 预估到达时间 startData+最大时效 + Date endDate = DateUtils.addDays(startDate, otherAddDay-1); + + // 计算周末 + int weekDays = computeWeekDays(startDate,endDate,true); + + // 计算不计较时效的时间 + int notCaclDays=emisNotCalcAgingMapper.getNotCalcAgingDays( + receiveCountry, + sendCountry, + startDate, + endDate); + + // 1+1+ 5+0-1+2+0 + int totalDays=(otherAddDay-1)+weekDays+notCaclDays; + log.info("计算预估到达时间:[weekDays="+weekDays+",notCaclDays="+notCaclDays); + // 预估达到时间 + return DateUtils.addDays(startDate, totalDays); + + } + @@ -4001,11 +4050,13 @@ public class EmisBaseService { return copy; } - public static void main(String[] args) { -// Date startDate = new Date(); -// Date endDate = DateUtils.addDays(startDate, 10); -// int weekDays = computeWeekDays(startDate,endDate,true); -//// System.out.println("周末:"+new SimpleDateFormat("yyyy-MM-dd").format(cal1.getTime())); + public static void main(String[] args) throws ParseException { +// Date startDate = new Date("202"); + Date startDate= new SimpleDateFormat("yyyy-MM-dd").parse("2025-05-11"); + Date endDate = DateUtils.addDays(startDate, 5); + int weekDays = computeWeekDays(startDate,endDate,true); + System.out.println(weekDays); +// System.out.println("周末:"+new SimpleDateFormat("yyyy-MM-dd").format(cal1.getTime())); // // System.out.println(startDate); // System.out.println(endDate); diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisCommissionDtlService.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisCommissionDtlService.java index bd56ef11a..a4794ae0c 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisCommissionDtlService.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisCommissionDtlService.java @@ -10,6 +10,8 @@ package com.xdadan.erp.emis.service; import java.util.List; +import java.util.Map; + import com.xdadan.erp.emis.domain.EmisCommissionDtl; /** @@ -35,6 +37,8 @@ public interface IEmisCommissionDtlService */ public List selectEmisCommissionDtlList(EmisCommissionDtl emisCommissionDtl); + public List selectCommissionDtlMapList(EmisCommissionDtl emisCommissionDtl); + /** * 批次提成明细 * @param emisCommissionDtl diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisSettleBillPayLogService.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisSettleBillPayLogService.java index 76f360004..ddd1127c6 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisSettleBillPayLogService.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisSettleBillPayLogService.java @@ -87,6 +87,16 @@ public interface IEmisSettleBillPayLogService public String genWxPayQR(String settleBillNo) throws EmisBizError; + /** + * 公众号/小程序支付 + * @param settleBillNo + * @param openId + * @return + * @throws EmisBizError + */ + public String genWxPayFromWxApp(String settleBillNo,String openId) throws EmisBizError; + + /** * 检查支付状态 * @param orderNo diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisSettlePayRecordService.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisSettlePayRecordService.java index f1b646d56..247c74241 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisSettlePayRecordService.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisSettlePayRecordService.java @@ -40,6 +40,8 @@ public interface IEmisSettlePayRecordService */ public List selectEmisSettlePayRecordList(EmisSettlePayRecord emisSettlePayRecord); + public Map getSettlePayStatInfoMap(EmisSettlePayRecord emisSettlePayRecord); + public List queryPayBackRecordList(EmisSettlePayRecord emisSettlePayRecord); public List queryNoPayBackRecordList(EmisSettlePayRecord emisSettlePayRecord); @@ -58,7 +60,7 @@ public interface IEmisSettlePayRecordService * @param emisSettlePayRecord 账单收退款记录 * @return 结果 */ - public int insertEmisSettlePayRecord(EmisSettlePayRecord emisSettlePayRecord) throws EmisBizError; + public int insertEmisSettlePayRecord(EmisSettlePayRecord emisSettlePayRecord,String payId) throws EmisBizError; /** * 修改账单收退款记录 diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisCommissionDtlServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisCommissionDtlServiceImpl.java index c1362627d..ccb53a57b 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisCommissionDtlServiceImpl.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisCommissionDtlServiceImpl.java @@ -11,6 +11,8 @@ package com.xdadan.erp.emis.service.impl; import java.util.List; +import java.util.Map; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.xdadan.erp.emis.domain.EmisCommissionDtl; @@ -54,6 +56,13 @@ public class EmisCommissionDtlServiceImpl implements IEmisCommissionDtlService return emisCommissionDtlMapper.selectEmisCommissionDtlList(emisCommissionDtl); } + @Override + public List selectCommissionDtlMapList(EmisCommissionDtl emisCommissionDtl) + { + return emisCommissionDtlMapper.selectCommissionDtlMapList(emisCommissionDtl); + } + + /** * 查询批次提成明细表列表 diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettleBillPayLogServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettleBillPayLogServiceImpl.java index 818ed8c0b..8bd03596e 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettleBillPayLogServiceImpl.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettleBillPayLogServiceImpl.java @@ -12,6 +12,7 @@ package com.xdadan.erp.emis.service.impl; import java.io.IOException; import java.math.BigDecimal; +import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; @@ -23,17 +24,20 @@ import com.xdadan.erp.common.core.pay.vitepay.sdk.ApiRes; import com.xdadan.erp.common.core.pay.vitepay.sdk.Config; import com.xdadan.erp.common.core.pay.vitepay.sdk.VitePayOnlineSdk; import com.xdadan.erp.common.utils.idgen.SnowflakeIdUtils; -import com.xdadan.erp.emis.domain.EmisSettleBill; +import com.xdadan.erp.emis.domain.*; import com.xdadan.erp.emis.domain.enumtype.EmisBizErrorType; import com.xdadan.erp.emis.domain.exception.EmisBizError; import com.xdadan.erp.emis.mapper.EmisSettleBillMapper; +import com.xdadan.erp.emis.mapper.EmisSettlePayRelMapper; +import com.xdadan.erp.emis.mapper.EmisSettleSubBillMapper; +import com.xdadan.erp.emis.service.IEmisSettlePayRecordService; import com.xdadan.erp.emis.utils.WaybillHelper; import com.xdadan.erp.system.domain.SysAccount; import com.xdadan.erp.system.domain.SysPayOrder; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.xdadan.erp.emis.domain.EmisSettleBillPayLog; import com.xdadan.erp.emis.mapper.EmisSettleBillPayLogMapper; import com.xdadan.erp.emis.service.IEmisSettleBillPayLogService; @@ -53,6 +57,16 @@ public class EmisSettleBillPayLogServiceImpl implements IEmisSettleBillPayLogSer @Autowired private EmisSettleBillMapper emisSettleBillMapper; + + @Autowired + private IEmisSettlePayRecordService emisSettlePayRecordService; + + @Autowired + private EmisSettlePayRelMapper emisSettlePayRelMapper; + + @Autowired + private EmisSettleSubBillMapper emisSettleSubBillMapper; + /** * 查询支付订单表 * @@ -185,7 +199,7 @@ public class EmisSettleBillPayLogServiceImpl implements IEmisSettleBillPayLogSer EmisSettleBillPayLog emisSettleBillPayLogUpd = new EmisSettleBillPayLog(); emisSettleBillPayLogUpd.setId(emisSettleBillPayLog.getId()); try { - res = VitePayOnlineSdk.onlinePay(channel,payId,merId,amount,fee,notifyUrl,appId,authCode,openId); + res = VitePayOnlineSdk.onlinePay(channel,payId,merId,amount,fee,notifyUrl,appId,authCode,openId,"运费",emisSettleBill.getSettleBillName()+"-运费"); log.info("账单支付生成支付二维码==>{}",JSONObject.toJSONString(res)); emisSettleBillPayLogUpd.setResponseExtra(JSON.toJSONString(res)); if(res.isSuccess()){ @@ -214,6 +228,84 @@ public class EmisSettleBillPayLogServiceImpl implements IEmisSettleBillPayLogSer } } + + /** + * 微信小程序支付 + * @param settleBillNo + * @return + * @throws EmisBizError + */ + @Override + public String genWxPayFromWxApp(String settleBillNo,String openId) throws EmisBizError { + + EmisSettleBill emisSettleBill=emisSettleBillMapper.selectSettleBillBySettleBillNo(settleBillNo); + + BigDecimal thisPayMoney=emisSettleBill.getRecMoney().subtract(emisSettleBill.getRecedMoney()); + + int amount= (int) (thisPayMoney.floatValue()*100.0f); + + String merId="1"; + float feeRate=0.0065f; + + int fee= (int) (thisPayMoney.floatValue()*feeRate); + String authCode=""; + + String payId= WaybillHelper.genPayId(); + // 产生支付订单 + EmisSettleBillPayLog emisSettleBillPayLog = new EmisSettleBillPayLog(); + emisSettleBillPayLog.setPayId(payId); + emisSettleBillPayLog.setSettleBillNo(settleBillNo); + emisSettleBillPayLog.setAmount(amount); + emisSettleBillPayLog.setPayType("wx"); + emisSettleBillPayLog.setStatus(0); + emisSettleBillPayLog.setStatusDesc("初始"); + emisSettleBillPayLog.setFee(fee); + emisSettleBillPayLog.setCurrency("CNY"); + emisSettleBillPayLog.setSubject("账单支付"); + emisSettleBillPayLog.setBody("账单支付"); + emisSettleBillPayLog.setRemark("账单支付"); + + emisSettleBillPayLogMapper.insertEmisSettleBillPayLog(emisSettleBillPayLog); + + // 公众号及小程序支付 + String channel="wxpay_pub"; + String appId=""; + String notifyUrl= Config.ERP_API_PAY_NOTIFY_URL; + ApiRes res= null; + + EmisSettleBillPayLog emisSettleBillPayLogUpd = new EmisSettleBillPayLog(); + emisSettleBillPayLogUpd.setId(emisSettleBillPayLog.getId()); + try { + res = VitePayOnlineSdk.onlinePay(channel,payId,merId,amount,fee,notifyUrl,appId,authCode,openId,"运费",emisSettleBill.getSettleBillName()+"-运费"); + log.info("支付代码生成==>{}",JSONObject.toJSONString(res)); + emisSettleBillPayLogUpd.setResponseExtra(JSON.toJSONString(res)); + if(res.isSuccess()){ + String payCode=((Map)res.getData().get("credential")).get("qr_image_url").toString(); + emisSettleBillPayLogUpd.setCredential(JSON.toJSONString(res.getData().get("credential"))); + + emisSettleBillPayLogUpd.setStatus(10); + emisSettleBillPayLogUpd.setStatusDesc("支付中"); + emisSettleBillPayLogMapper.updateEmisSettleBillPayLog(emisSettleBillPayLogUpd); + + return payCode; + } + else{ + emisSettleBillPayLogUpd.setStatus(40); + emisSettleBillPayLogUpd.setStatusDesc(res.getMessage()); + emisSettleBillPayLogMapper.updateEmisSettleBillPayLog(emisSettleBillPayLogUpd); + throw new EmisBizError(EmisBizErrorType.FAIL,res.getMessage()); + } + + } catch (Exception e) { + e.printStackTrace(); + emisSettleBillPayLogUpd.setStatus(40); + emisSettleBillPayLogUpd.setStatusDesc("exception:"+e.getMessage()); + emisSettleBillPayLogMapper.updateEmisSettleBillPayLog(emisSettleBillPayLogUpd); + throw new EmisBizError(EmisBizErrorType.FAIL,"支付异常"); + } + } + + /** * 检查支付订单 * @param payId @@ -224,6 +316,7 @@ public class EmisSettleBillPayLogServiceImpl implements IEmisSettleBillPayLogSer EmisSettleBillPayLog emisSettleBillPayLog=emisSettleBillPayLogMapper.selectEmisSettleBillPayLogByPayId(payId); + if(emisSettleBillPayLog == null){ throw new EmisBizError(EmisBizErrorType.FAIL,"支付单不存在"); } @@ -241,6 +334,19 @@ public class EmisSettleBillPayLogServiceImpl implements IEmisSettleBillPayLogSer String status=rstObj.getString("status"); String errMsg=rstObj.getString("err_msg"); if("20".equals(status)){ + EmisSettleBill oldSettleBill=emisSettleBillMapper.selectSettleBillBySettleBillNo(emisSettleBillPayLog.getSettleBillNo()); + if(oldSettleBill==null){ + throw new EmisBizError(EmisBizErrorType.FAIL,"账单不存在"); + } + + String payMan=""; + // 现金账单支付人为寄件公司,月结账单支付人为客户 + if("1".equals(oldSettleBill.getSettleType())){ + payMan=oldSettleBill.getCustomerName(); + }else{ + payMan=oldSettleBill.getCustName(); + } + // 更新状态 emisSettleBillPayLog.setPaid(1); emisSettleBillPayLog.setStatus(20); @@ -248,9 +354,50 @@ public class EmisSettleBillPayLogServiceImpl implements IEmisSettleBillPayLogSer emisSettleBillPayLog.setPaySuccTime(new Date()); emisSettleBillPayLogMapper.updateEmisSettleBillPayLog(emisSettleBillPayLog); - // 更新账单状态,插入支付微信支付收款记录,更新账单状态 - // 调整账户余额 -// sysAccountService.adjustAmount(emisSettleBillPayLog.getOrderNo(),emisSettleBillPayLog.getAccId(),emisSettleBillPayLog.getOwnerId(),emisSettleBillPayLog.getAmount(),"充值"); + // 获取支付账单,转为为真实支付单 + EmisSettlePayRecord emisSettlePayRecord=new EmisSettlePayRecord(); + emisSettlePayRecord.setSettleBillNo(emisSettleBillPayLog.getSettleBillNo()); + emisSettlePayRecord.setPayId(emisSettleBillPayLog.getPayId()); + emisSettlePayRecord.setPayType("7"); // 在线支付(微信) + emisSettlePayRecord.setPayMan(payMan); + emisSettlePayRecord.setPayMoney(new BigDecimal(emisSettleBillPayLog.getAmount()).divide(new BigDecimal(100))); + emisSettlePayRecord.setTradeDate(emisSettleBillPayLog.getPaySuccTime()); + emisSettlePayRecord.setRecType("1"); + emisSettlePayRecord.setPayStatus("2"); + emisSettlePayRecord.setSettleType(oldSettleBill.getSettleType()); + emisSettlePayRecord.setRecManCode("1"); + emisSettlePayRecord.setCustomerCode(oldSettleBill.getCustomerCode()); + emisSettlePayRecord.setCustomerName(oldSettleBill.getCustomerName()); + emisSettlePayRecord.setCreateBy("1"); + emisSettlePayRecord.setCreateTime(new Date()); + + // 设置为支付的单子 + List payRelList=new ArrayList(); + + EmisSettleSubBill qParam = new EmisSettleSubBill(); + qParam.setSettleBillNo(emisSettleBillPayLog.getSettleBillNo()); + List listSubBill=emisSettleSubBillMapper.selectEmisSettleSubBillList(qParam); + if(!CollectionUtils.isEmpty(listSubBill)){ + for (EmisSettleSubBill itemSubBill:listSubBill) { + BigDecimal hasPayMoney = itemSubBill.getRecedMoney(); + if(hasPayMoney==null){ + hasPayMoney=BigDecimal.ZERO; + } + + BigDecimal noPayMoney=itemSubBill.getBillFee().subtract(hasPayMoney); + if(noPayMoney.compareTo(BigDecimal.ZERO)>0){ + EmisSettlePayRel payRel = new EmisSettlePayRel(); + payRel.setPayId(emisSettleBillPayLog.getPayId()); + payRel.setBillNo(itemSubBill.getBillNo()); + payRel.setPayMoney(noPayMoney); + payRelList.add(payRel); + } + } + } + emisSettlePayRecord.setPayRelList(payRelList); + + emisSettlePayRecordService.insertEmisSettlePayRecord(emisSettlePayRecord,emisSettleBillPayLog.getPayId()); + }else if("10".equals(status)){ emisSettleBillPayLog.setPaid(0); emisSettleBillPayLog.setStatus(10); diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettleBillServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettleBillServiceImpl.java index 92e4fff77..54434a00f 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettleBillServiceImpl.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettleBillServiceImpl.java @@ -761,11 +761,8 @@ public class EmisSettleBillServiceImpl extends EmisBaseService implements IEmisS // 获取收款记录 List payRecordList=emisSettlePayRecordMapper.selectSettlePayRecordListBySettleBillNo(settleBillNo); - // 全部收款金额 - BigDecimal totalAllPayMoney = BigDecimal.ZERO; - // 计算已收款金额 - BigDecimal totalPayMoney = BigDecimal.ZERO; + BigDecimal totalHasPayMoney = BigDecimal.ZERO; // 抵扣金额 BigDecimal satisfyMoney = BigDecimal.ZERO; @@ -782,9 +779,8 @@ public class EmisSettleBillServiceImpl extends EmisBaseService implements IEmisS log.debug("reCalcSettleBillPayStatus===>应收:{}",oldBill.getRecMoney()); for(EmisSettlePayRecord item:payRecordList){ - if("1".equals(item.getRecType())) { - totalPayMoney = totalPayMoney.add(item.getPayMoney()); + totalHasPayMoney = totalHasPayMoney.add(item.getPayMoney()); satisfyMoney = satisfyMoney.add(item.getSatisfyMoney() == null ? BigDecimal.ZERO : item.getSatisfyMoney()); allowanceMoney = allowanceMoney.add(item.getAllowanceMoney() == null ? BigDecimal.ZERO : item.getAllowanceMoney()); deductionMoney = deductionMoney.add(item.getDeductionMoney() == null ? BigDecimal.ZERO : item.getDeductionMoney()); @@ -795,54 +791,13 @@ public class EmisSettleBillServiceImpl extends EmisBaseService implements IEmisS } } - // 总应收金额 - log.debug("reCalcSettleBillPayStatus===>totalPayMoney:{},satisfyMoney:{},allowanceMoney:{},deductionMoney:{},otherMoney:{}" - ,totalPayMoney,satisfyMoney,allowanceMoney,allowanceMoney,deductionMoney,otherMoney); - - // 收款金额-退款金额 - totalAllPayMoney=totalAllPayMoney - .add(totalPayMoney) - .add(satisfyMoney) - .add(allowanceMoney) - .add(deductionMoney) - .add(otherMoney) - .subtract(refundMoney) - ; - - EmisSettleBill newBill = new EmisSettleBill(); - newBill.setId(oldBill.getId()); - newBill.setRecedMoney(totalPayMoney.subtract(refundMoney)); - newBill.setSatisfyMoney(satisfyMoney); - newBill.setAllowanceMoney(allowanceMoney); - newBill.setOtherMoney(otherMoney); - // 退款金额 - newBill.setRefundMoney(refundMoney); - - // 更新账单收款状态 收款金额 - int rstDif=totalAllPayMoney.compareTo(oldBill.getRecMoney()); - log.debug("reCalcSettleBillPayStatus===>收款金额:{},应收:{}",totalAllPayMoney,oldBill.getRecMoney()); - if( totalAllPayMoney.compareTo(BigDecimal.ZERO) == 0 ){ - newBill.setPaymentStatus("0"); - }else{ - if( rstDif >= 0 ){ - // 已收款 - newBill.setPaymentStatus("1"); - emisSettleBillMapper.updateEmisSettleBill(newBill); - } - else{ - // 部分收款 - newBill.setPaymentStatus("2"); - emisSettleBillMapper.updateEmisSettleBill(newBill); - } - } - emisSettleBillMapper.updateEmisSettleBill(newBill); - // 更新运单的收款状态 - if(totalAllPayMoney.compareTo(BigDecimal.ZERO) > 0){ + if(totalHasPayMoney.compareTo(BigDecimal.ZERO) > 0){ BigDecimal totalMoney = BigDecimal.ZERO; // 更新运单收款记录 List listRel=emisSettlePayRelMapper.selectHasPayMapList(settleBillNo); if(!CollectionUtils.isEmpty(listRel)) { + for(Map item:listRel){ String billNo= MapUtils.getString(item,"billNo",null); @@ -896,9 +851,88 @@ public class EmisSettleBillServiceImpl extends EmisBaseService implements IEmisS // emisBizError.printStackTrace(); // } } + + // 全部收款金额 + BigDecimal totalAllPayMoney = BigDecimal.ZERO; + + // 收款金额-退款金额 + totalAllPayMoney=totalMoney + .add(satisfyMoney) + .add(allowanceMoney) + .add(deductionMoney) + .add(otherMoney) + .subtract(refundMoney); + + EmisSettleBill newBill = new EmisSettleBill(); + newBill.setId(oldBill.getId()); + newBill.setRecedMoney(totalMoney); + newBill.setSatisfyMoney(satisfyMoney); + newBill.setAllowanceMoney(allowanceMoney); + newBill.setOtherMoney(otherMoney); + // 退款金额 + newBill.setRefundMoney(refundMoney); + + // 更新账单收款状态 收款金额 + int rstDif=totalMoney.compareTo(oldBill.getRecMoney()); + log.debug("reCalcSettleBillPayStatus===>收款金额:{},应收:{}",totalMoney,oldBill.getRecMoney()); + if( totalAllPayMoney.compareTo(BigDecimal.ZERO) == 0 ){ + newBill.setPaymentStatus("0"); + }else{ + if( rstDif >= 0 ){ + // 已收款 + newBill.setPaymentStatus("1"); + emisSettleBillMapper.updateEmisSettleBill(newBill); + } + else{ + // 部分收款 + newBill.setPaymentStatus("2"); + emisSettleBillMapper.updateEmisSettleBill(newBill); + } + } + emisSettleBillMapper.updateEmisSettleBill(newBill); } } else{ + + // 全部收款金额 + BigDecimal totalAllPayMoney = BigDecimal.ZERO; + BigDecimal totalMoney = BigDecimal.ZERO; + // 收款金额-退款金额 + totalAllPayMoney=totalMoney + .add(satisfyMoney) + .add(allowanceMoney) + .add(deductionMoney) + .add(otherMoney) + .subtract(refundMoney); + + EmisSettleBill newBill = new EmisSettleBill(); + newBill.setId(oldBill.getId()); + newBill.setRecedMoney(totalMoney); + newBill.setSatisfyMoney(satisfyMoney); + newBill.setAllowanceMoney(allowanceMoney); + newBill.setOtherMoney(otherMoney); + // 退款金额 + newBill.setRefundMoney(refundMoney); + + // 更新账单收款状态 收款金额 + int rstDif=totalMoney.compareTo(oldBill.getRecMoney()); + log.debug("reCalcSettleBillPayStatus===>收款金额:{},应收:{}",totalMoney,oldBill.getRecMoney()); + if( totalAllPayMoney.compareTo(BigDecimal.ZERO) == 0 ){ + newBill.setPaymentStatus("0"); + }else{ + if( rstDif >= 0 ){ + // 已收款 + newBill.setPaymentStatus("1"); + emisSettleBillMapper.updateEmisSettleBill(newBill); + } + else{ + // 部分收款 + newBill.setPaymentStatus("2"); + emisSettleBillMapper.updateEmisSettleBill(newBill); + } + } + emisSettleBillMapper.updateEmisSettleBill(newBill); + // 未收款则更新运单状态未收款状态 List list = emisBaseService.selectSubBillListBySettleBillNo(settleBillNo); if (!CollectionUtils.isEmpty(list)) { diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettlePayRecordServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettlePayRecordServiceImpl.java index 8579c17fb..9e7692aa7 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettlePayRecordServiceImpl.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisSettlePayRecordServiceImpl.java @@ -92,6 +92,12 @@ public class EmisSettlePayRecordServiceImpl extends EmisBaseService implements I return emisSettlePayRecordMapper.selectEmisSettlePayRecordList(emisSettlePayRecord); } + @Override + public Map getSettlePayStatInfoMap(EmisSettlePayRecord emisSettlePayRecord) + { + return emisSettlePayRecordMapper.getSettlePayStatInfoMap(emisSettlePayRecord); + } + @Override public List queryPayBackRecordList(EmisSettlePayRecord emisSettlePayRecord) { @@ -124,7 +130,7 @@ public class EmisSettlePayRecordServiceImpl extends EmisBaseService implements I * @return 结果 */ @Override - public int insertEmisSettlePayRecord(EmisSettlePayRecord emisSettlePayRecord) throws EmisBizError { + public int insertEmisSettlePayRecord(EmisSettlePayRecord emisSettlePayRecord,String payId) throws EmisBizError { if(StringUtils.isEmpty(emisSettlePayRecord.getSettleBillNo())){ throw new EmisBizError(EmisBizErrorType.FAIL,"账单编号不能为空"); @@ -159,7 +165,11 @@ public class EmisSettlePayRecordServiceImpl extends EmisBaseService implements I } // 不重复的 id流水号 - String payId= WaybillHelper.genPayId(); + // 如果支付单是空的则生成新的支付单 + if(StringUtils.isEmpty(payId)) { + payId = WaybillHelper.genPayId(); + } + emisSettlePayRecord.setPayId(payId); // 退款时支付金额记录负值 diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsScanRecordServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsScanRecordServiceImpl.java index 6f1461fe2..59b480743 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsScanRecordServiceImpl.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTmsScanRecordServiceImpl.java @@ -2001,6 +2001,7 @@ public class EmisTmsScanRecordServiceImpl extends EmisBaseService implements IEm }else{ waybillProblemInfo.setBlSubBill("0"); } + // 登记问题件并计算延期时间 registerWaybillProblemInfo(waybillProblemInfo); if(waybillProblemInfo.getId()!=null) { emisTmsScanRecord.setRelId(waybillProblemInfo.getId().toString()); diff --git a/emis-biz/src/main/resources/mapper/EmisCommissionDtlMapper.xml b/emis-biz/src/main/resources/mapper/EmisCommissionDtlMapper.xml index 95bef05ce..76a270da9 100644 --- a/emis-biz/src/main/resources/mapper/EmisCommissionDtlMapper.xml +++ b/emis-biz/src/main/resources/mapper/EmisCommissionDtlMapper.xml @@ -86,6 +86,98 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" order by create_time desc + + diff --git a/emis-biz/src/main/resources/mapper/EmisSettleBillMapper.xml b/emis-biz/src/main/resources/mapper/EmisSettleBillMapper.xml index f9fdc6542..898dac8c4 100644 --- a/emis-biz/src/main/resources/mapper/EmisSettleBillMapper.xml +++ b/emis-biz/src/main/resources/mapper/EmisSettleBillMapper.xml @@ -111,6 +111,18 @@ + + + select sum(pay_money) as totalPayMoney + from emis_settle_pay_record + + del_flag='0' + and id = #{id} + and pay_id = #{payId} + and pay_type = #{payType} + and rec_type = #{recType} + and pay_man like concat('%', #{payMan}, '%') + and pay_man_code like concat('%', #{payManCode}, '%') + + and bl_audit = #{blAudit} + and audit_date = #{auditDate} + and audit_man_code = #{auditManCode} + and audit_site_code = #{auditSiteCode} + and customer_code = #{customerCode} + and customer_name like concat('%', #{customerName}, '%') + and pay_money = #{payMoney} + and pay_status = #{payStatus} + and pay_status_desc like concat('%', #{payStatusDesc}, '%') + and break_type = #{breakType} + and break_reason like concat('%', #{breakReason}, '%') + and break_emp_code = #{breakEmpCode} + and rec_man_code = #{recManCode} + and settle_type = #{settleType} + and refund_date = #{refundDate} + and refund_man_code = #{refundManCode} + and refund_seq = #{refundSeq} + and refund_mode = #{refundMode} + and refund_money = #{refundMoney} + and refund_reason like concat('%', #{refundReason}, '%') + and refund_remark like concat('%', #{refundRemark}, '%') + and refund_op_man_code = #{refundOpManCode} + and refund_register_site_code = #{refundRegisterSiteCode} + and refund_register_man_code = #{refundRegisterManCode} + and satisfy_money = #{satisfyMoney} + and satisfy_reason like concat('%', #{satisfyReason}, '%') + and allowance_money = #{allowanceMoney} + and allowance_reason = #{allowanceReason} + and deduction_money = #{deductionMoney} + and deduction_reason = #{deductionReason} + and other_money = #{otherMoney} + and other_reason like concat('%', #{otherReason}, '%') + and trade_date = #{tradeDate} + and remark like concat('%', #{remark}, '%') + and del_flag like concat('%', #{delFlag}, '%') + and create_by like concat('%', #{createBy}, '%') + and create_time = #{createTime} + and update_by like concat('%', #{updateBy}, '%') + and update_time = #{updateTime} + and create_site like concat('%', #{createSite}, '%') + and update_site like concat('%', #{updateSite}, '%') + + + and create_time = ]]> #{params.beginCreateTime} + + + and create_time #{params.endCreateTime} + + + + and trade_date = ]]> #{params.beginTradeDate} + + + and trade_date #{params.endTradeDate} + + + + and pay_id in( + select pay_id from emis_settle_pay_rel espr + where espr.del_flag='0' + and FIND_IN_SET(espr.`bill_no`,#{params.billCode}) + ) + + + + and pay_id in( + select pay_id from emis_settle_pay_bill_rel espbr + where espbr.del_flag='0' + and FIND_IN_SET(espbr.settle_bill_no,#{settleBillNo}) + ) + + + + + and settle_bill_no in( + select bill_no from emis_settle_sub_bill b where del_flag='0' + and ( + b.salesmen=#{params.privEmpName} + or b.payee=#{params.privEmpName} + or b.salesmen in( + select salesmen from emis_salesmen_rel esr where esr.del_flag='0' and esr.bl_open='1' and now() = ]]> esr.start_date and now() esr.end_date and esr.sales_ass=#{params.privEmpName} + ) + ) + ) + + + + +