From f0e40a7b64d1285cc9c1f2dff532a22964664de1 Mon Sep 17 00:00:00 2001 From: huliguo <2023611923@qq.com> Date: 星期日, 20 七月 2025 14:50:18 +0800 Subject: [PATCH] 修改订单tax接口的bug --- ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OrderServiceImpl.java | 177 +++++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 119 insertions(+), 58 deletions(-) diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OrderServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OrderServiceImpl.java index 74a060b..f99a18d 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OrderServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OrderServiceImpl.java @@ -20,6 +20,7 @@ import com.ruoyi.system.pojo.dto.OrderPageDTO; import com.ruoyi.system.pojo.model.DailyStatistics; import com.ruoyi.system.pojo.vo.*; +import com.ruoyi.system.service.CompanyTypeService; import com.ruoyi.system.service.OrderService; import com.ruoyi.system.wx.RefundCallbackResult; import com.ruoyi.system.wx.WechatPayService; @@ -63,6 +64,13 @@ private RedisCache redisCache; @Resource private QichachaMapper qichachaMapper; + + @Resource + private CompanyTypeService companyTypeService; + + + @Resource + private AccountDetailMapper accountDetailMapper; @Override @@ -160,12 +168,29 @@ throw new ServiceException("公司不存在"); } BusinessVO vo = new BusinessVO(); + // 先查企业工商信息 更新数据 + JSONObject jsonObject = getQiChaChaBasicDetailsCompany(company.getCompanyName()); + company.setOperName(jsonObject.getString("OperName")); + company.setBelongOrg(jsonObject.getString("BelongOrg")); + company.setRegistrationStatus(jsonObject.getString("Status")); + company.setRegisteredCapital(jsonObject.getString("RegisteredCapital")); + company.setPaidInFunds(jsonObject.getString("PaidUpCapital")); + companyMapper.updateById(company); BeanUtils.copyProperties(company, vo); + vo.setNewRegisteredCapital(company.getRealRegisteredCapital()); vo.setPlace(company.getCity()+company.getProvince()+company.getArea()); - //todo 再查企业工商信息 覆盖掉之前的 + JSONObject area = jsonObject.getJSONObject("Area"); + if (null != area) { + vo.setPlace(area.getString("Province")+"-"+area.getString("City")+"-"+area.getString("County")); + }else { + vo.setPlace(company.getCity() + "-" + company.getProvince() + "-" + company.getArea()); + } + vo.setCompanyCategoryName(jsonObject.getString("EconKind")); + String name = companyTypeService.getById(company.getCompanyCategory()).getName(); + vo.setCompanyCategoryName(name); return vo; } @@ -197,22 +222,7 @@ /** - * 经营异常核查 - * @param companyName - * @return - * VerifyResult int 数据是否存在(1-存在,0-不存在) - * Data List<Object> 数据信息 - * Data:[{ - * AddReason 列入经营异常名录原因 - * AddDate 列入日期 - * RomoveReason 移出经营异常名录原因(保留字段) - * RemoveDate 移出日期(保留字段) - * DecisionOffice 作出决定机关 - * RemoveDecisionOffice 移出决定机关(保留字段) - * }] - * Status - * Message - * OrderNumber + * 查询工商信息 */ public JSONObject getQiChaChaBasicDetailsCompany(String companyName){ Object cacheObject = redisCache.getCacheObject("qichacha_" +"basic_"+ companyName); @@ -315,12 +325,12 @@ public R change(String id) { // System.err.println(getReport("ZZD20250508017232394218445")); ChangeVO changeVO = new ChangeVO(); - /* Company companyInfo = companyMapper.selectById(id); + Company companyInfo = companyMapper.selectById(id); if (null == companyInfo || companyInfo.getIsDelete() != 0) { throw new ServiceException("公司不存在"); - }*/ -// JSONObject jsonObject=getReport(companyInfo.getLink().split("=")[1]); - JSONObject jsonObject=getReport("ZZD20250508017232394218445"); + } + JSONObject jsonObject=getReport(companyInfo.getLink().split("=")[1]); +// JSONObject jsonObject=getReport("ZZD20250508017232394218445"); if (!"1001".equals(jsonObject.getString("code"))){ return R.fail(jsonObject.get("msg")); } @@ -343,12 +353,12 @@ @Override public R tax(String id) { TaxVO taxVO = new TaxVO(); - /* Company companyInfo = companyMapper.selectById(id); + Company companyInfo = companyMapper.selectById(id); if (null == companyInfo || companyInfo.getIsDelete() != 0) { throw new ServiceException("公司不存在"); - }*/ -// JSONObject jsonObject=getReport(companyInfo.getLink().split("=")[1]); - JSONObject jsonObject=getReport("ZZD20250508017232394218445"); + } + JSONObject jsonObject=getReport(companyInfo.getLink().split("=")[1]); +// JSONObject jsonObject=getReport("ZZD20250508017232394218445"); if (!"1001".equals(jsonObject.getString("code"))){ return R.fail(jsonObject.get("msg")); } @@ -356,7 +366,7 @@ JSONObject data2 = (JSONObject) data1.get("data"); JSONObject taxInfo = (JSONObject) data2.get("taxInfo"); //税务处罚 - JSONObject enterprise = (JSONObject) data2.get("enterprise"); + JSONArray enterprise = data2.getJSONArray("enterprise"); taxVO.setEnterprise(enterprise); //滞纳金情况 JSONArray overdueFineDetailsList = (JSONArray) taxInfo.get("overdueFineDetailsList"); @@ -375,42 +385,68 @@ taxVO.setTaxpayerType(taxpayerType); //近12月增税销售额 - JSONObject taxPrevMnMthsAllTaxDclrPrjInfoDict = (JSONObject) taxInfo.get("taxPrevMnMthsAllTaxDclrPrjInfoDict"); + JSONObject taxPrevMnMthsAllTaxDclrPrjInfoDict = taxInfo.getJSONObject("taxPrevMnMthsAllTaxDclrPrjInfoDict"); + if (null != taxPrevMnMthsAllTaxDclrPrjInfoDict){ + JSONObject taxPrev12mthsAllTaxDclrPrjInfoDict = taxPrevMnMthsAllTaxDclrPrjInfoDict.getJSONObject("taxPrev12mthsAllTaxDclrPrjInfoDict"); + if (null != taxPrev12mthsAllTaxDclrPrjInfoDict){ + // 使用 getBigDecimal 方法,自动处理类型转换 + BigDecimal vatTaxValue = taxPrev12mthsAllTaxDclrPrjInfoDict.getBigDecimal("vatTaxShouldsaleAmt"); + taxVO.setVatTaxShouldsaleAmt12(vatTaxValue); // 自动处理 null + } + //近24月增税销售额 + JSONObject taxPrev24mthsAllTaxDclrPrjInfoDict = taxPrevMnMthsAllTaxDclrPrjInfoDict.getJSONObject("taxPrev24mthsAllTaxDclrPrjInfoDict"); + if(null != taxPrev24mthsAllTaxDclrPrjInfoDict){ + taxVO.setVatTaxShouldsaleAmt24( (BigDecimal) taxPrev24mthsAllTaxDclrPrjInfoDict.get("vatTaxShouldsaleAmt")); + } + //近12月增税应纳额(元) + taxVO.setVatTaxShouldpay(taxPrev12mthsAllTaxDclrPrjInfoDict.getBigDecimal("vatTaxShouldpay")); + } - JSONObject taxPrev12mthsAllTaxDclrPrjInfoDict = (JSONObject) taxPrevMnMthsAllTaxDclrPrjInfoDict.get("taxPrev12mthsAllTaxDclrPrjInfoDict"); - taxVO.setVatTaxShouldsaleAmt12((BigDecimal) taxPrev12mthsAllTaxDclrPrjInfoDict.get("vatTaxShouldsaleAmt")); - //近24月增税销售额 - JSONObject taxPrev24mthsAllTaxDclrPrjInfoDict = (JSONObject) taxPrevMnMthsAllTaxDclrPrjInfoDict.get("taxPrev24mthsAllTaxDclrPrjInfoDict"); - taxVO.setVatTaxShouldsaleAmt24( (BigDecimal) taxPrev24mthsAllTaxDclrPrjInfoDict.get("vatTaxShouldsaleAmt")); - JSONObject taxPrevMnMthsTaxInfoDict = (JSONObject) taxInfo.get("taxPrevMnMthsTaxInfoDict"); - //近12月纳税总额(元) - JSONObject taxPrev12mthsTaxInfo = (JSONObject) taxPrevMnMthsTaxInfoDict.get("taxPrev12mthsTaxInfo"); - taxVO.setTaxAmt12( (BigDecimal) taxPrev12mthsTaxInfo.get("taxAmt")); + JSONObject taxPrevMnMthsTaxInfoDict = taxInfo.getJSONObject("taxPrevMnMthsTaxInfoDict"); + if (null!=taxPrevMnMthsTaxInfoDict){ + //近12月纳税总额(元) + JSONObject taxPrev12mthsTaxInfo = taxPrevMnMthsTaxInfoDict.getJSONObject("taxPrev12mthsTaxInfo"); + taxVO.setTaxAmt12( (BigDecimal) taxPrev12mthsTaxInfo.get("taxAmt")); - //近24月纳税总额(元) - JSONObject taxPrev24mthsTaxInfo = (JSONObject) taxPrevMnMthsTaxInfoDict.get("taxPrev24mthsTaxInfo"); - taxVO.setTaxAmt24( (BigDecimal) taxPrev24mthsTaxInfo.get("taxAmt")); + //近24月纳税总额(元) + JSONObject taxPrev24mthsTaxInfo = taxPrevMnMthsTaxInfoDict.getJSONObject("taxPrev24mthsTaxInfo"); + if (null != taxPrev24mthsTaxInfo){ + taxVO.setTaxAmt24( (BigDecimal) taxPrev24mthsTaxInfo.get("taxAmt")); - //近12月增税应纳额(元) - taxVO.setVatTaxShouldpay( (BigDecimal) taxPrev12mthsAllTaxDclrPrjInfoDict.get("vatTaxShouldpay")); + } + + } + + //近12个月滞纳金金额(元) 次数 - JSONObject taxPrevMnMthsOverdueFineInfoDict = (JSONObject) taxInfo.get("taxPrevMnMthsOverdueFineInfoDict"); - JSONObject taxPrev12mthsOverdueFineInfo = (JSONObject) taxPrevMnMthsOverdueFineInfoDict.get("taxPrev12mthsOverdueFineInfo"); - taxVO.setOverdueFineInfoAmt12( (BigDecimal) taxPrev12mthsOverdueFineInfo.get("overdueFineInfoAmt")); - taxVO.setOverdueFineInfoCnt12( (Integer) taxPrev12mthsOverdueFineInfo.get("overdueFineInfoCnt")); + JSONObject taxPrevMnMthsOverdueFineInfoDict = taxInfo.getJSONObject("taxPrevMnMthsOverdueFineInfoDict"); + if (null != taxPrevMnMthsOverdueFineInfoDict){ + JSONObject taxPrev12mthsOverdueFineInfo = taxPrevMnMthsOverdueFineInfoDict.getJSONObject("taxPrev12mthsOverdueFineInfo"); + if (null!= taxPrev12mthsOverdueFineInfo){ + taxVO.setOverdueFineInfoAmt12( (BigDecimal) taxPrev12mthsOverdueFineInfo.get("overdueFineInfoAmt")); + taxVO.setOverdueFineInfoCnt12( (Integer) taxPrev12mthsOverdueFineInfo.get("overdueFineInfoCnt")); + } + // 近3个月滞纳金金额(元) + JSONObject taxPrev3mthsOverdueFineInfo = taxPrevMnMthsOverdueFineInfoDict.getJSONObject("taxPrev3mthsOverdueFineInfo"); + if (null != taxPrev3mthsOverdueFineInfo){ + taxVO.setOverdueFineInfoCnt3( (Integer) taxPrev3mthsOverdueFineInfo.get("overdueFineInfoCnt")); + } + + } - // 近3个月滞纳金金额(元) - JSONObject taxPrev3mthsOverdueFineInfo = (JSONObject) taxPrevMnMthsOverdueFineInfoDict.get("taxPrev3mthsOverdueFineInfo"); - taxVO.setOverdueFineInfoCnt3( (Integer) taxPrev3mthsOverdueFineInfo.get("overdueFineInfoCnt")); + //近12月0申报月数(月数) - JSONObject taxPrevMnMthsAllTaxDclrInfoDict = (JSONObject) taxInfo.get("taxPrevMnMthsAllTaxDclrInfoDict"); - JSONObject taxPrev12mthsAllTaxDclrInfoDict = (JSONObject) taxPrevMnMthsAllTaxDclrInfoDict.get("taxPrev12mthsAllTaxDclrInfoDict"); - taxVO.setVatTax0dclrMonCnt( (Integer) taxPrev12mthsAllTaxDclrInfoDict.get("vatTax0dclrMonCnt")); + JSONObject taxPrevMnMthsAllTaxDclrInfoDict = taxInfo.getJSONObject("taxPrevMnMthsAllTaxDclrInfoDict"); + if (null != taxPrevMnMthsAllTaxDclrInfoDict){ + JSONObject taxPrev12mthsAllTaxDclrInfoDict = (JSONObject) taxPrevMnMthsAllTaxDclrInfoDict.get("taxPrev12mthsAllTaxDclrInfoDict"); + taxVO.setVatTax0dclrMonCnt( (Integer) taxPrev12mthsAllTaxDclrInfoDict.get("vatTax0dclrMonCnt")); + } + return R.ok(taxVO); } @@ -418,12 +454,12 @@ @Override public R invoice(String id) { InvoiceVO vo = new InvoiceVO(); - /* Company companyInfo = companyMapper.selectById(id); + Company companyInfo = companyMapper.selectById(id); if (null == companyInfo || companyInfo.getIsDelete() != 0) { throw new ServiceException("公司不存在"); - }*/ -// JSONObject jsonObject=getReport(companyInfo.getLink().split("=")[1]); - JSONObject jsonObject=getReport("ZZD20250508017232394218445"); + } + JSONObject jsonObject=getReport(companyInfo.getLink().split("=")[1]); +// JSONObject jsonObject=getReport("ZZD20250508017232394218445"); if (!"1001".equals(jsonObject.getString("code"))){ return R.fail(jsonObject.get("msg")); } @@ -607,6 +643,15 @@ order.setRefundTime(LocalDateTime.now()); companyMapper.updateById(company); }else{ + // 判断是否能退 + if(order.getShareUserId()!=null){ + User user = appUserMapper.selectById(order.getShareUserId()); + if(user.getBalance().doubleValue()<order.getCommissionPrice().doubleValue()){ + throw new ServiceException("退款失败,卖家上级余额不足"); + } + } + + R r = refundPayMoney(order);//退款 if (200 == r.getCode()) { //退款申请成功 @@ -676,12 +721,27 @@ order.setIsRefund(1); order.setRefundTime(LocalDateTime.now()); this.baseMapper.updateById(order); + //将分佣次数加回 - User user = appUserMapper.selectById(order.getUserId()); - User inviter = appUserMapper.selectById(user.getInviteId()); + User inviter = appUserMapper.selectById(company.getUserId()); if (inviter!=null && inviter.getIsDelete()==0){ inviter.setInviteNum(inviter.getInviteNum()+1); appUserMapper.updateById(inviter); + } + + // 分佣退回 + if(order.getShareUserId()!=null && order.getCommissionPrice().doubleValue()>0){ + User user = appUserMapper.selectById(order.getShareUserId()); + user.setBalance(user.getBalance().subtract(order.getCommissionPrice())); + appUserMapper.updateById(user); + AccountDetail accountDetail = new AccountDetail(); + accountDetail.setUserId(order.getShareUserId()); + accountDetail.setType(2); + accountDetail.setCategory(4); + accountDetail.setSourceId(order.getId()); + accountDetail.setMoney(order.getCommissionPrice()); + accountDetail.setRemark("订单取消分佣退回"); + accountDetailMapper.insert(accountDetail); } //商品状态修改 @@ -737,7 +797,8 @@ @Override public FinanceFlowsTopVO financeTop(FinanceFlowsDTO dto) { - return this.baseMapper.financeTop(dto); + FinanceFlowsTopVO financeFlowsTopVO = this.baseMapper.financeTop(dto); + return financeFlowsTopVO; } @Override -- Gitblit v1.7.1