From 212e6721fea2456202081064451c2f6a93ac0061 Mon Sep 17 00:00:00 2001 From: hu177768073 <177768073@qq.com> Date: Fri, 18 Jul 2025 17:32:09 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/bweb/config/AuthConfig.java | 1 + .../BsGasOrderReceiptController.java | 27 ++++++- ...ImportCompleteGasOrderReceiptListener.java | 72 +++++++++++++++++++ .../ImportCompleteGasOrderReceiptModel.java | 20 ++++++ .../hfkj/dao/BsGasOrderReceiptMapperExt.java | 55 +++++++++++++- .../service/gas/BsGasOrderReceiptService.java | 6 ++ .../impl/BsGasOrderReceiptServiceImpl.java | 5 ++ 7 files changed, 183 insertions(+), 3 deletions(-) create mode 100644 bweb/src/main/java/com/bweb/excel/listener/ImportCompleteGasOrderReceiptListener.java create mode 100644 bweb/src/main/java/com/bweb/excel/model/ImportCompleteGasOrderReceiptModel.java diff --git a/bweb/src/main/java/com/bweb/config/AuthConfig.java b/bweb/src/main/java/com/bweb/config/AuthConfig.java index 3f477e9..cdeec08 100644 --- a/bweb/src/main/java/com/bweb/config/AuthConfig.java +++ b/bweb/src/main/java/com/bweb/config/AuthConfig.java @@ -101,6 +101,7 @@ public class AuthConfig implements WebMvcConfigurer { .excludePathPatterns("/merchantChainBrandAccount") .excludePathPatterns("/userSpread/*") .excludePathPatterns("/cms/*") + .excludePathPatterns("/fileUpload/*") ; } diff --git a/bweb/src/main/java/com/bweb/controller/BsGasOrderReceiptController.java b/bweb/src/main/java/com/bweb/controller/BsGasOrderReceiptController.java index 8a81c9f..af55e4d 100644 --- a/bweb/src/main/java/com/bweb/controller/BsGasOrderReceiptController.java +++ b/bweb/src/main/java/com/bweb/controller/BsGasOrderReceiptController.java @@ -2,6 +2,9 @@ package com.bweb.controller; import com.alibaba.excel.EasyExcel; import com.alibaba.fastjson.JSONObject; +import com.bweb.config.SysConst; +import com.bweb.excel.listener.ImportCompleteGasOrderReceiptListener; +import com.bweb.excel.model.ImportCompleteGasOrderReceiptModel; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.hfkj.common.exception.ErrorCode; @@ -33,6 +36,7 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.io.File; +import java.io.FileInputStream; import java.util.*; import java.util.stream.Collectors; import java.util.stream.IntStream; @@ -47,8 +51,6 @@ public class BsGasOrderReceiptController { @Resource private BsGasOrderReceiptService gasOrderReceiptService; @Resource - private BsAgentMerService agentMerService; - @Resource private UserCenter userCenter; @RequestMapping(value="/success",method = RequestMethod.POST) @@ -200,4 +202,25 @@ public class BsGasOrderReceiptController { } + @RequestMapping(value="/importComplete",method = RequestMethod.POST) + @ResponseBody + @ApiOperation(value = "导入完成开票的订单") + public ResponseData importComplete(@RequestBody JSONObject body) { + try { + if (body == null || StringUtils.isBlank(body.getString("fileUrl"))) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.REQ_PARAMS_ERROR, ""); + } + ImportCompleteGasOrderReceiptListener importDeviceListener = new ImportCompleteGasOrderReceiptListener(); + importDeviceListener.initData(gasOrderReceiptService); + EasyExcel.read(SysConst.getSysConfig().getFileUrl()+File.separator+body.getString("fileUrl"), ImportCompleteGasOrderReceiptModel.class, importDeviceListener).sheet().doRead(); + + return ResponseMsgUtil.success(importDeviceListener.getErrorData()); + + } catch (Exception e) { + log.error("error!",e); + return ResponseMsgUtil.exception(e); + } + } + + } diff --git a/bweb/src/main/java/com/bweb/excel/listener/ImportCompleteGasOrderReceiptListener.java b/bweb/src/main/java/com/bweb/excel/listener/ImportCompleteGasOrderReceiptListener.java new file mode 100644 index 0000000..bbad51b --- /dev/null +++ b/bweb/src/main/java/com/bweb/excel/listener/ImportCompleteGasOrderReceiptListener.java @@ -0,0 +1,72 @@ +package com.bweb.excel.listener; + +import com.alibaba.excel.context.AnalysisContext; +import com.alibaba.excel.event.AnalysisEventListener; +import com.bweb.excel.model.ImportCompleteGasOrderReceiptModel; +import com.hfkj.entity.BsGasOrderReceipt; +import com.hfkj.service.gas.BsGasOrderReceiptService; +import com.hfkj.sysenum.gas.GasOrderReceiptStatusEnum; +import org.apache.commons.lang3.StringUtils; + +import java.util.ArrayList; +import java.util.List; + +/** + * @Auther: 胡锐 + * @Description: 导入监听器 + * @Date: 2021/3/20 21:03 + */ +public class ImportCompleteGasOrderReceiptListener extends AnalysisEventListener { + List errorData = new ArrayList<>(); + List successData = new ArrayList<>(); + private BsGasOrderReceiptService gasOrderReceiptService; + + /** + * @Author 胡锐 + * @Description 解析到的每一条数据都会调用此方法 + * @Date 2021/3/20 21:08 + **/ + @Override + public void invoke(ImportCompleteGasOrderReceiptModel model, AnalysisContext analysisContext) { + if (StringUtils.isBlank(model.getApplyNo())) { + model.setErrorMessage("请填写申请单号"); + errorData.add(model); + return; + } + // 订单开票 + BsGasOrderReceipt receipt = gasOrderReceiptService.getDetail(model.getApplyNo()); + if (receipt == null) { + model.setErrorMessage("未找到申请单号数据"); + errorData.add(model); + return; + } + if (!receipt.getStatus().equals(GasOrderReceiptStatusEnum.status1.getStatus())) { + model.setErrorMessage("开票不处于待开票状态"); + errorData.add(model); + return; + } + receipt.setStatus(GasOrderReceiptStatusEnum.status2.getStatus()); + successData.add(receipt); + } + + /** + * @Author 胡锐 + * @Description 所有数据解析完成了 都会来调用此方法 + * @Date 2021/3/20 21:08 + **/ + @Override + public void doAfterAllAnalysed(AnalysisContext analysisContext) { + if (!successData.isEmpty()) { + gasOrderReceiptService.batchInsert(successData); + } + this.successData.clear(); + } + + public List getErrorData() { + return errorData; + } + + public void initData(BsGasOrderReceiptService gasOrderReceiptService) { + this.gasOrderReceiptService = gasOrderReceiptService; + } +} diff --git a/bweb/src/main/java/com/bweb/excel/model/ImportCompleteGasOrderReceiptModel.java b/bweb/src/main/java/com/bweb/excel/model/ImportCompleteGasOrderReceiptModel.java new file mode 100644 index 0000000..cdc9856 --- /dev/null +++ b/bweb/src/main/java/com/bweb/excel/model/ImportCompleteGasOrderReceiptModel.java @@ -0,0 +1,20 @@ +package com.bweb.excel.model; + +import com.alibaba.excel.annotation.ExcelProperty; +import lombok.Data; + +/** + * 导入完成开票订单模型 + * @author hurui + */ +@Data +public class ImportCompleteGasOrderReceiptModel { + + @ExcelProperty("申请单号") + private String applyNo; + /** + * 错误消息 + */ + private String errorMessage; + +} diff --git a/service/src/main/java/com/hfkj/dao/BsGasOrderReceiptMapperExt.java b/service/src/main/java/com/hfkj/dao/BsGasOrderReceiptMapperExt.java index f4cecd9..7f380db 100644 --- a/service/src/main/java/com/hfkj/dao/BsGasOrderReceiptMapperExt.java +++ b/service/src/main/java/com/hfkj/dao/BsGasOrderReceiptMapperExt.java @@ -1,7 +1,60 @@ package com.hfkj.dao; +import com.hfkj.entity.BsGasOrderReceipt; +import org.apache.ibatis.annotations.Insert; +import org.apache.ibatis.annotations.Options; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + /** * mapper扩展类 */ public interface BsGasOrderReceiptMapperExt { -} \ No newline at end of file + + @Insert({ + "" + }) + @Options(useGeneratedKeys=true, keyProperty="id") + void batchInsert(@Param("list") List data); +} diff --git a/service/src/main/java/com/hfkj/service/gas/BsGasOrderReceiptService.java b/service/src/main/java/com/hfkj/service/gas/BsGasOrderReceiptService.java index 464eb7b..fabf643 100644 --- a/service/src/main/java/com/hfkj/service/gas/BsGasOrderReceiptService.java +++ b/service/src/main/java/com/hfkj/service/gas/BsGasOrderReceiptService.java @@ -18,6 +18,12 @@ public interface BsGasOrderReceiptService { */ void editData(BsGasOrderReceipt data); + /** + * 批量导入 + * @param data + */ + void batchInsert(List data); + /** * 申请 * @param userReceiptId diff --git a/service/src/main/java/com/hfkj/service/gas/impl/BsGasOrderReceiptServiceImpl.java b/service/src/main/java/com/hfkj/service/gas/impl/BsGasOrderReceiptServiceImpl.java index 1630eff..55a2902 100644 --- a/service/src/main/java/com/hfkj/service/gas/impl/BsGasOrderReceiptServiceImpl.java +++ b/service/src/main/java/com/hfkj/service/gas/impl/BsGasOrderReceiptServiceImpl.java @@ -51,6 +51,11 @@ public class BsGasOrderReceiptServiceImpl implements BsGasOrderReceiptService { } } + @Override + public void batchInsert(List data) { + gasOrderReceiptMapper.batchInsert(data); + } + @Override @Transactional(propagation= Propagation.REQUIRES_NEW,rollbackFor= {RuntimeException.class}) public void applyReceipt(Long userReceiptId, List orderNos) {