feature:1、交接单导出;2、Excel 导入客户信息

release
gaorl 2 years ago
parent 19f44f6fd7
commit 2f90e6d436
  1. 1
      order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/buyer/controller/BuyerController.java
  2. 1
      order-management-common/src/main/java/com/dxhy/order/constant/OrderInfoEnum.java
  3. 2
      order-management-common/src/main/java/com/dxhy/order/model/page/OrderListQuery.java
  4. 3
      order-management-common/src/main/java/com/dxhy/order/utils/PageBeanConvertUtil.java
  5. 5
      order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/commodity/domain/dto/QuoteGroupCommodityDTO.java
  6. 18
      order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/commodity/service/impl/GroupCommodityCodeServiceImpl.java
  7. 4
      order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/impl/CommonInterfaceServiceImpl.java
  8. 19
      order-management-consumer/src/main/resources/mybatis/mapper/GroupCommodityCodeMapper.xml
  9. 1
      order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/controller/ExportExcelController.java
  10. 1
      order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/dao/OrderInvoiceInfoMapper.java
  11. 5
      order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/model/excel/ExportInvoiceInfo.java
  12. 83
      order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/model/excel/ExportInvoiceSignInfoEnum.java
  13. 1
      order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/service/OrderInvoiceInfoService.java
  14. 18
      order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/service/impl/OrderInvoiceInfoServiceImpl.java
  15. 19
      order-management-invoice/src/main/resources/mybatis/mapper/OrderInvoiceInfoMapper.xml

@ -222,6 +222,7 @@ public class BuyerController {
if (StringUtils.isEmpty(buyerEntity.getTaxpayerCode())) {
buyerEntity.setGhfQylx(OrderInfoEnum.GHF_QYLX_03.getKey());
}
buyerEntity.setStatus("1");
//购方名称 带中文括号的转换成英文括号
buyerEntity.setPurchaseName(StringUtil.replaceStr(buyerEntity.getPurchaseName(), true));
buyerEntityList.add(buyerEntity);

@ -914,6 +914,7 @@ public enum OrderInfoEnum {
EXPORT_EXCEL_TYPE_1("1", "发票明细"),
EXPORT_EXCEL_TYPE_2("2", "机动车发票明细"),
EXPORT_EXCEL_TYPE_3("3", "二手车发票明细"),
EXPORT_EXCEL_TYPE_4("4", "交接单导出"),
/**
* 二手车开票方类型

@ -296,4 +296,6 @@ public class OrderListQuery {
*/
private String dyzt;
private String orderInfoIds;
}

@ -229,6 +229,9 @@ public class PageBeanConvertUtil {
resultMap.put("kplx",OrderInfoEnum.ORDER_BILLING_INVOICE_TYPE_0.getKey());
}
}
if(StringUtils.isNotBlank(orderListQuery.getOrderInfoIds())){
resultMap.put("ids",Arrays.asList(orderListQuery.getOrderInfoIds().split(",")));
}
return resultMap;
}

@ -18,6 +18,9 @@ public class QuoteGroupCommodityDTO {
@NotBlank(message = "物料编码不能为空!")
private String zxbm;
@NotBlank(message = "接收引用物料的销方纳税人识别号不能为空!")
//@NotBlank(message = "接收引用物料的销方纳税人识别号不能为空!")
private String xhfNsrsbh;
@NotBlank(message = "接收引用物料的销方企业id不能为空!")
private String deptId;
}

@ -87,13 +87,13 @@ public class GroupCommodityCodeServiceImpl implements IGroupCommodityCodeService
@Transactional
public R quoteGroupCommodityCode(QuoteGroupCommodityDTO quoteGroupCommodityDTO) {
// 判断销方税号是否合法,因为某些情况下可能会传递list过来
if (StringUtils.isBlank(quoteGroupCommodityDTO.getXhfNsrsbh())) {
return R.error(ConfigureConstant.STRING_0000, "销方税号不能为空");
}
if (quoteGroupCommodityDTO.getXhfNsrsbh().contains(ConfigureConstant.STRING_CHARSET_1)) {
return R.error(ConfigureConstant.STRING_0000, "销方税号非法");
}
// if (StringUtils.isBlank(quoteGroupCommodityDTO.getXhfNsrsbh())) {
// return R.error(ConfigureConstant.STRING_0000, "销方税号不能为空");
// }
//
// if (quoteGroupCommodityDTO.getXhfNsrsbh().contains(ConfigureConstant.STRING_CHARSET_1)) {
// return R.error(ConfigureConstant.STRING_0000, "销方税号非法");
// }
List<String> zxbmList = Arrays.asList(StringUtils.split(quoteGroupCommodityDTO.getZxbm(), ","));
for (int i = 0; i < zxbmList.size(); i++) {
@ -103,7 +103,8 @@ public class GroupCommodityCodeServiceImpl implements IGroupCommodityCodeService
return R.error("第" + (i + 1) + "条数据,物料编码不能为空");
}
CommodityCodeEntity commodityCodeEntity = groupCommodityMapper.queryCommodityCodeByZxbmAndXhfNsrsbh(zxbm, quoteGroupCommodityDTO.getXhfNsrsbh());
//CommodityCodeEntity commodityCodeEntity = groupCommodityMapper.queryCommodityCodeByZxbmAndXhfNsrsbh(zxbm, quoteGroupCommodityDTO.getXhfNsrsbh());
CommodityCodeEntity commodityCodeEntity = groupCommodityMapper.queryCommodityCodeByZxbmAndXhfNsrsbhAndEntId(zxbm, quoteGroupCommodityDTO.getXhfNsrsbh(), quoteGroupCommodityDTO.getDeptId());
// 根据文档4.2.1.2 (6) 若物料编码重复时,引用后不对子公司物料进行更新
if (commodityCodeEntity != null) {
continue;
@ -127,6 +128,7 @@ public class GroupCommodityCodeServiceImpl implements IGroupCommodityCodeService
newCommodityCodeEntity.setId(baseService.getGenerateShotKey());
newCommodityCodeEntity.setXhfNsrsbh(quoteGroupCommodityDTO.getXhfNsrsbh());
newCommodityCodeEntity.setEntId(quoteGroupCommodityDTO.getDeptId());
if (groupCommodityMapper.insertCommodityCode(newCommodityCodeEntity) <= 0) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return R.error("第" + (i + 1) + "条数据,引用失败");

@ -559,13 +559,13 @@ public class CommonInterfaceServiceImpl implements CommonInterfaceService {
if (StringUtils.isNotEmpty(entId)) {
commodityCodeEntity = commodityCodeMapper.queryCommodityCodeByZxbmAndXhfNsrsbhAndEntId(item.getZxbm(), xhfNsrsbh, entId);
} else {
commodityCodeEntity = commodityCodeMapper.queryCommodityCodeByZxbmAndXhfNsrsbh(item.getZxbm(), xhfNsrsbh);
commodityCodeEntity = commodityCodeMapper.queryCommodityCodeByZxbmAndXhfNsrsbhAndEntId(item.getZxbm(), xhfNsrsbh,entId);
}
// 如果公司物料库匹配失败,从集团物料库匹配
if (commodityCodeEntity == null) {
// 如果匹配不到,则去集团物料库匹配
commodityCodeEntity = commodityCodeMapper.queryCommodityCodeByZxbmAndXhfNsrsbh(item.getZxbm(), "-1");
commodityCodeEntity = commodityCodeMapper.queryCommodityCodeByZxbmAndXhfNsrsbhAndEntId(item.getZxbm(), "-1",entId);
if (commodityCodeEntity == null) {
// ③ 若通过集团物料库仍未匹配到税编信息则,使用“物料名称”进行智能赋码开票(用SAAS接口赋码)
// 智能赋码接口

@ -124,7 +124,10 @@
<select id="queryCommodityCodeByZxbmAndXhfNsrsbh" resultMap="commodityCodeResultMap">
<bind name="dataType" value="${dataType}"/>
<include refid="baseSelect"/>
where cc.encoding = #{zxbm} AND cc.xhf_nsrsbh = #{xhfNsrsbh}
where cc.encoding = #{zxbm}
<if test="xhfNsrsbh != null and xhfNsrsbh != ''">
AND cc.xhf_nsrsbh = #{xhfNsrsbh}
</if>
ORDER BY cc.create_time DESC limit 1
</select>
@ -137,7 +140,13 @@
<select id="queryCommodityCodeByZxbmAndXhfNsrsbhAndEntId" resultMap="commodityCodeResultMap">
<bind name="dataType" value="${dataType}"/>
<include refid="baseSelect"/>
where cc.encoding = #{zxbm} AND cc.xhf_nsrsbh = #{xhfNsrsbh} AND cc.ent_id = #{entId}
where cc.encoding = #{zxbm}
<if test="xhfNsrsbh != null and xhfNsrsbh != ''">
AND cc.xhf_nsrsbh = #{xhfNsrsbh}
</if>
<if test="entId != null and entId != ''">
AND cc.ent_id = #{entId}
</if>
ORDER BY cc.create_time DESC limit 1
</select>
@ -251,6 +260,9 @@
<if test="wlflmc != null">
wlflmc,
</if>
<if test="entId != null">
ent_id,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="id != null">
@ -363,6 +375,9 @@
<if test="wlflmc != null">
#{wlflmc,jdbcType=VARCHAR},
</if>
<if test="entId != null">
#{entId,jdbcType=VARCHAR},
</if>
</trim>
</insert>

@ -42,6 +42,7 @@ import java.util.zip.ZipOutputStream;
public class ExportExcelController {
private static final String LOGGER_MSG = "excel导出控制层";
private static final String LOGGER_MSG_DELIVERY = "交接单excel导出控制层";
@Resource
private OrderInvoiceInfoService orderInvoiceInfoService;

@ -86,6 +86,7 @@ public interface OrderInvoiceInfoMapper {
*/
List<OrderInvoiceDetail> selectRedAndInvoiceBymap(@Param("map") Map map, @Param("shList") List<String> shList, @Param("entList") List<String> entList);
List<OrderInvoiceDetail> selectInvoiceByIds(@Param("ids") List<String> ids);
/**
* 根据条件统计总金额数量
*

@ -159,6 +159,11 @@ public class ExportInvoiceInfo implements Serializable {
*/
private String clsbdh;
private String mark;
private String signName;
private String signDate;
private List<ExportInvoiceItemInfo> exportInvoiceItemInfoList;
}

@ -0,0 +1,83 @@
package com.dxhy.order.invoice.module.invoice.model.excel;
import java.util.ArrayList;
import java.util.List;
/**
* 导出excel-发票主信息
*
* @author ZSC-DXHY
* @date 创建时间: 2021-05-10 18:35
*/
public enum ExportInvoiceSignInfoEnum {
/**
* Excel导出发票主信息
* 必须按照顺序存放,否则会异常
*/
EXCEL_EXPORT_INVOICE_KPRQ("0", "kprq", "开票日期"),
EXCEL_EXPORT_INVOICE_XHFMC("1", "xhfMc", "销方单位名称"),
EXCEL_EXPORT_INVOICE_GHFMC("2", "ghfMc", "购方单位名称"),
EXCEL_EXPORT_INVOICE_FPDM("3", "fpdm", "发票代码"),
EXCEL_EXPORT_INVOICE_FPHM("4", "fphm", "发票号码"),
EXCEL_EXPORT_INVOICE_HJJE("5", "hjbhsje", "不含税金额"),
EXCEL_EXPORT_INVOICE_HJSE("6", "kpse", "税额"),
EXCEL_EXPORT_INVOICE_JSHJ("7", "kphjje", "价税合计金额"),
EXCEL_EXPORT_INVOICE_FPLX("8", "mark", "备注"),
EXCEL_EXPORT_INVOICE_XHFNSRSBH("9", "signName", "交接人"),
EXCEL_EXPORT_INVOICE_GHFNSRSBH("10", "signDate", "交接日期");
/**
* key
*/
private final String key;
/**
*
*/
private final String value;
/**
* 表格头名称
*/
private final String cellName;
public String getKey() {
return key;
}
public String getValue() {
return value;
}
public String getCellName() {
return cellName;
}
ExportInvoiceSignInfoEnum(String key, String value, String cellName) {
this.key = key;
this.value = value;
this.cellName = cellName;
}
public static ExportInvoiceSignInfoEnum getCodeValue(String key) {
for (ExportInvoiceSignInfoEnum item : values()) {
if (item.getKey().equals(key)) {
return item;
}
}
return null;
}
public static List<String> getValues() {
List<String> resultList = new ArrayList<>();
for (ExportInvoiceSignInfoEnum item : values()) {
resultList.add(item.getValue());
}
return resultList;
}
}

@ -194,7 +194,6 @@ public interface OrderInvoiceInfoService {
* @param entList
*/
void exportInvoiceDetailExcel(OutputStream out, Map<String, Object> map, String type, List<String> shList, List<String> entList);
/**
* 通用获取pdf或ofd文件
*

@ -453,7 +453,7 @@ public class OrderInvoiceInfoServiceImpl implements OrderInvoiceInfoService {
public List<ExportInvoiceInfo> exportAllInvoiceDetailByPage(Map<String, Object> paramMap, List<String> shList, List<String> entList, String type) {
List<ExportInvoiceInfo> exportInvoiceInfoList = new ArrayList<>();
//非主信息的需要查询明细数据
boolean isNeedItem = !OrderInfoEnum.EXPORT_EXCEL_TYPE_0.getKey().equals(type);
boolean isNeedItem = !OrderInfoEnum.EXPORT_EXCEL_TYPE_0.getKey().equals(type)||!OrderInfoEnum.EXPORT_EXCEL_TYPE_4.getKey().equals(type);
int pageSize = Integer.parseInt(String.valueOf(paramMap.get(ConfigureConstant.STRING_PAGE_SIZE)));
int currPage = Integer.parseInt(String.valueOf(paramMap.get(ConfigureConstant.STRING_CURR_PAGE)));
@ -467,7 +467,12 @@ public class OrderInvoiceInfoServiceImpl implements OrderInvoiceInfoService {
PageHelper.startPage(currPage, pageSize);
log.info("发票明细excel导出查询数据库入参:{}", JsonUtils.getInstance().toJsonString(paramMap));
List<OrderInvoiceDetail> orderInvoiceDetails = orderInvoiceInfoMapper.selectRedAndInvoiceBymap(paramMap, shList, entList);
List<OrderInvoiceDetail> orderInvoiceDetails = null;
if(OrderInfoEnum.EXPORT_EXCEL_TYPE_4.getKey().equals(type)){
orderInvoiceDetails = orderInvoiceInfoMapper.selectInvoiceByIds((List<String>)paramMap.get("ids"));
}else{
orderInvoiceDetails = orderInvoiceInfoMapper.selectRedAndInvoiceBymap(paramMap, shList, entList);
}
//获取明细
Map<String, List<OrderItemInfo>> itemParamMap = new HashMap<>(5);
@ -592,7 +597,9 @@ public class OrderInvoiceInfoServiceImpl implements OrderInvoiceInfoService {
exportInvoiceInfo.setBz(StringUtils.isNotBlank(orderInvoiceDetail.getBz()) ? orderInvoiceDetail.getBz() : "");
exportInvoiceInfo.setKpxm(StringUtils.isNotBlank(orderInvoiceDetail.getKpxm()) ? orderInvoiceDetail.getKpxm() : "");
exportInvoiceInfo.setBmbbbh(StringUtils.isNotBlank(orderInvoiceDetail.getBmbbbh()) ? orderInvoiceDetail.getBmbbbh() : "");
exportInvoiceInfo.setMark("");
exportInvoiceInfo.setSignName("");
exportInvoiceInfo.setSignDate("");
//作废标志展示信息转换
if (OrderInfoEnum.INVALID_INVOICE_0.getKey().equals(orderInvoiceDetail.getZfbz())) {
@ -689,6 +696,11 @@ public class OrderInvoiceInfoServiceImpl implements OrderInvoiceInfoService {
headToProperty.put(exportEscInvoiceInfoEnum.getValue(), exportEscInvoiceInfoEnum.getCellName());
headerToColumnMap.put(exportEscInvoiceInfoEnum.getValue(), exportEscInvoiceInfoEnum.getKey());
}
} else if (OrderInfoEnum.EXPORT_EXCEL_TYPE_4.getKey().equals(type)) {
for (ExportInvoiceSignInfoEnum exportEscInvoiceInfoEnum : ExportInvoiceSignInfoEnum.values()) {
headToProperty.put(exportEscInvoiceInfoEnum.getValue(), exportEscInvoiceInfoEnum.getCellName());
headerToColumnMap.put(exportEscInvoiceInfoEnum.getValue(), exportEscInvoiceInfoEnum.getKey());
}
}

@ -1593,6 +1593,25 @@
</choose>
</select>
<select id="selectInvoiceByIds" resultType="com.dxhy.order.model.OrderInvoiceDetail">
SELECT
oii.kprq kprq,
oii.xhf_mc xhfmc,
oii.ghf_mc ghfMc,
oii.fpdm,
oii.fphm,
oii.hjbhsje,
oii.kpse,
oii.kphjje
FROM
order_invoice_info oii
where
oii.id in
<foreach collection="ids" item="id" open="(" separator="," close=")">
#{id,jdbcType=VARCHAR}
</foreach>
</select>
<select id="queryCountByMap" resultMap="queryCountByMapResultMap"
parameterType="java.util.Map">
<bind name="dataType" value="${dataType}"/>

Loading…
Cancel
Save