Compare commits

...

2 Commits

Author SHA1 Message Date
胡锐 2324c28097 提交代码 1 month ago
胡锐 212e6721fe 提交代码 2 months ago
  1. 1
      bweb/src/main/java/com/bweb/config/AuthConfig.java
  2. 27
      bweb/src/main/java/com/bweb/controller/BsGasOrderReceiptController.java
  3. 64
      bweb/src/main/java/com/bweb/excel/listener/ImportCompleteGasOrderReceiptListener.java
  4. 20
      bweb/src/main/java/com/bweb/excel/model/ImportCompleteGasOrderReceiptModel.java
  5. 43
      service/src/main/java/com/hfkj/dao/BsGasOrderReceiptMapperExt.java
  6. 15
      service/src/main/java/com/hfkj/service/gas/BsGasOrderReceiptService.java
  7. 20
      service/src/main/java/com/hfkj/service/gas/impl/BsGasOrderReceiptServiceImpl.java

@ -101,6 +101,7 @@ public class AuthConfig implements WebMvcConfigurer {
.excludePathPatterns("/merchantChainBrandAccount")
.excludePathPatterns("/userSpread/*")
.excludePathPatterns("/cms/*")
.excludePathPatterns("/fileUpload/*")
;
}

@ -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);
}
}
}

@ -0,0 +1,64 @@
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<ImportCompleteGasOrderReceiptModel> {
List<ImportCompleteGasOrderReceiptModel> errorData = new ArrayList<>();
List<BsGasOrderReceipt> successData = new ArrayList<>();
private BsGasOrderReceiptService gasOrderReceiptService;
/**
* @Author 胡锐
* @Description 解析到的每一条数据都会调用此方法
* @Date 2021/3/20 21:08
**/
@Override
public void invoke(ImportCompleteGasOrderReceiptModel model, AnalysisContext analysisContext) {
if (StringUtils.isNotBlank(model.getOrderNo())) {
// 订单开票
BsGasOrderReceipt receipt = gasOrderReceiptService.getDetailByOrderNo(model.getOrderNo().trim(),GasOrderReceiptStatusEnum.status1);
if (receipt == null) {
//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.batchUpdate(successData);
}
this.successData.clear();
}
public List<ImportCompleteGasOrderReceiptModel> getErrorData() {
return errorData;
}
public void initData(BsGasOrderReceiptService gasOrderReceiptService) {
this.gasOrderReceiptService = gasOrderReceiptService;
}
}

@ -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 orderNo;
/**
* 错误消息
*/
private String errorMessage;
}

@ -1,7 +1,48 @@
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 org.apache.ibatis.annotations.Update;
import java.util.List;
/**
* mapper扩展类
*/
public interface BsGasOrderReceiptMapperExt {
}
@Update({
"<script>" +
"<foreach collection='list' item='item' separator=';'>",
" update bs_gas_order_receipt",
" set apply_no = #{item.applyNo,jdbcType=VARCHAR},",
" user_receipt_id = #{item.userReceiptId,jdbcType=BIGINT},",
" company_name = #{item.companyName,jdbcType=VARCHAR},",
" tax_no = #{item.taxNo,jdbcType=VARCHAR},",
" contacts_phone = #{item.contactsPhone,jdbcType=VARCHAR},",
" email = #{item.email,jdbcType=VARCHAR},",
" agent_id = #{item.agentId,jdbcType=BIGINT},",
" agent_name = #{item.agentName,jdbcType=VARCHAR},",
" agent_staff_id = #{item.agentStaffId,jdbcType=BIGINT},",
" agent_staff_name = #{item.agentStaffName,jdbcType=VARCHAR},",
" mer_no = #{item.merNo,jdbcType=VARCHAR},",
" mer_name = #{item.merName,jdbcType=VARCHAR},",
" order_no = #{item.orderNo,jdbcType=VARCHAR},",
" order_child_no = #{item.orderChildNo,jdbcType=VARCHAR},",
" oil_no = #{item.oilNo,jdbcType=VARCHAR},",
" amount = #{item.amount,jdbcType=DECIMAL},",
" `status` = #{item.status,jdbcType=INTEGER},",
" fail_remark = #{item.failRemark,jdbcType=VARCHAR},",
" create_time = #{item.createTime,jdbcType=TIMESTAMP},",
" update_time = #{item.updateTime,jdbcType=TIMESTAMP},",
" ext_1 = #{item.ext1,jdbcType=VARCHAR},",
" ext_2 = #{item.ext2,jdbcType=VARCHAR},",
" ext_3 = #{item.ext3,jdbcType=VARCHAR}",
" where id = #{item.id,jdbcType=BIGINT}",
"</foreach>",
"</script>"
})
void batchUpdate(@Param("list") List<BsGasOrderReceipt> data);
}

@ -1,6 +1,7 @@
package com.hfkj.service.gas;
import com.hfkj.entity.BsGasOrderReceipt;
import com.hfkj.sysenum.gas.GasOrderReceiptStatusEnum;
import java.util.List;
import java.util.Map;
@ -18,6 +19,12 @@ public interface BsGasOrderReceiptService {
*/
void editData(BsGasOrderReceipt data);
/**
* 批量导入
* @param data
*/
void batchUpdate(List<BsGasOrderReceipt> data);
/**
* 申请
* @param userReceiptId
@ -44,6 +51,14 @@ public interface BsGasOrderReceiptService {
*/
BsGasOrderReceipt getDetail(String applyNo);
/**
* 查询详情
* @param orderNo
* @param status
* @return
*/
BsGasOrderReceipt getDetailByOrderNo(String orderNo, GasOrderReceiptStatusEnum status);
/**
* 查询详情
* @param orderReceiptId

@ -51,6 +51,11 @@ public class BsGasOrderReceiptServiceImpl implements BsGasOrderReceiptService {
}
}
@Override
public void batchUpdate(List<BsGasOrderReceipt> data) {
gasOrderReceiptMapper.batchUpdate(data);
}
@Override
@Transactional(propagation= Propagation.REQUIRES_NEW,rollbackFor= {RuntimeException.class})
public void applyReceipt(Long userReceiptId, List<String> orderNos) {
@ -151,6 +156,21 @@ public class BsGasOrderReceiptServiceImpl implements BsGasOrderReceiptService {
return null;
}
@Override
public BsGasOrderReceipt getDetailByOrderNo(String orderNo, GasOrderReceiptStatusEnum status) {
BsGasOrderReceiptExample example = new BsGasOrderReceiptExample();
BsGasOrderReceiptExample.Criteria criteria = example.createCriteria().andOrderNoEqualTo(orderNo);
if (status != null) {
criteria.andStatusEqualTo(status.getStatus());
}
example.setOrderByClause("create_time desc");
List<BsGasOrderReceipt> list = gasOrderReceiptMapper.selectByExample(example);
if (!list.isEmpty()) {
return list.get(0);
}
return null;
}
@Override
public BsGasOrderReceipt getDetail(Long orderReceiptId) {
return gasOrderReceiptMapper.selectByPrimaryKey(orderReceiptId);

Loading…
Cancel
Save