diff --git a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/commodity/controller/CommodityController.java b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/commodity/controller/CommodityController.java
index df946a85..ee1f6c71 100644
--- a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/commodity/controller/CommodityController.java
+++ b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/commodity/controller/CommodityController.java
@@ -84,7 +84,7 @@ public class CommodityController {
log.info("参数 {}", map);
String xhfNsrsbh = (String) map.get("xhfNsrsbh");
- String entId = (String) map.get("entId"); // 数据权限id,对应的大B下的企业id
+ String entId = (String) map.get("entList"); // 数据权限id,对应的大B下的企业id
if (StringUtils.isBlank(xhfNsrsbh)) {
log.error("{},请求税号为空!", LOGGER_MSG);
return R.error(OrderInfoContentEnum.TAXCODE_ISNULL);
@@ -145,7 +145,9 @@ public class CommodityController {
if (StringUtils.isBlank(commodityCodeEntity.getCommodityId())) {
commodityCodeEntity.setCommodityId(commodityCodeEntity.getId());
}
-
+ if(StringUtils.isBlank(commodityCodeEntity.getInvoiceName())){
+ commodityCodeEntity.setInvoiceName("");
+ }
//成品油为空就设置默认值
if (StringUtils.isEmpty(commodityCodeEntity.getCpy())) {
@@ -170,7 +172,12 @@ public class CommodityController {
if (ObjectUtil.isNotEmpty(maps)) {
return R.error().put(OrderManagementConstant.DATA, maps);
}
- boolean flag = commodityService.addOrEditCommodity(commodityCodeEntity);
+ boolean flag = false;
+ try {
+ flag = commodityService.addOrEditCommodity(commodityCodeEntity);
+ } catch (Exception e) {
+ flag = false;
+ }
log.info("返回值:{}", flag);
return flag ? R.ok().put("msg", "保存成功") : R.ok().put(OrderManagementConstant.CODE, ConfigureConstant.STRING_9999).put("msg", "保存失败");
}
diff --git a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/commodity/model/CommodityCodeEntity.java b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/commodity/model/CommodityCodeEntity.java
index f43d1af1..9267a9cb 100644
--- a/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/commodity/model/CommodityCodeEntity.java
+++ b/order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/commodity/model/CommodityCodeEntity.java
@@ -212,5 +212,7 @@ public class CommodityCodeEntity implements Serializable {
private String UUID;
private Boolean success;
+ private String invoiceName;
+
}
diff --git a/order-management-base-service/src/main/resources/mybatis/mapper/CommodityMapper.xml b/order-management-base-service/src/main/resources/mybatis/mapper/CommodityMapper.xml
index f76a656e..e616ca56 100644
--- a/order-management-base-service/src/main/resources/mybatis/mapper/CommodityMapper.xml
+++ b/order-management-base-service/src/main/resources/mybatis/mapper/CommodityMapper.xml
@@ -42,6 +42,7 @@
+
@@ -95,7 +96,8 @@
cc.wlflbm,
cc.wlflmc,
cc.ent_id,
- cc.tswl
+ cc.tswl,
+ cc.invoice_name
FROM
commodity_code cc LEFT JOIN group_commodity gc
ON gc.id = cc.group_id
@@ -495,6 +497,9 @@
tswl,
+
+ invoice_name,
+
@@ -613,6 +618,9 @@
#{tswl,jdbcType=VARCHAR},
+
+ invoiceName,
+
diff --git a/order-management-common/src/main/java/com/dxhy/order/constant/OrderInfoEnum.java b/order-management-common/src/main/java/com/dxhy/order/constant/OrderInfoEnum.java
index 556ee1ba..3883ec57 100644
--- a/order-management-common/src/main/java/com/dxhy/order/constant/OrderInfoEnum.java
+++ b/order-management-common/src/main/java/com/dxhy/order/constant/OrderInfoEnum.java
@@ -914,7 +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", "交接单导出"),
+ EXPORT_EXCEL_TYPE_5("5", "交接单导出"),
/**
* 二手车开票方类型
diff --git a/order-management-common/src/main/java/com/dxhy/order/constant/RedisConstant.java b/order-management-common/src/main/java/com/dxhy/order/constant/RedisConstant.java
index b5acb09c..106c38ef 100644
--- a/order-management-common/src/main/java/com/dxhy/order/constant/RedisConstant.java
+++ b/order-management-common/src/main/java/com/dxhy/order/constant/RedisConstant.java
@@ -75,7 +75,10 @@ public class RedisConstant {
* 接收推送结果锁
*/
public static final String REDIS_ORDER_LOCK_RECEIVE_KEY = "xxfp:cache:lock:receive:%s";
-
+ /**
+ * 推送opentext同步锁
+ */
+ public static final String REDIS_ORDER_LOCK_OPENTEXT_KEY = "xxfp:cache:lock:pentext:%s";
/**
* 二维码开票接收微信推送redis同步锁前缀
*/
diff --git a/order-management-common/src/main/java/com/dxhy/order/model/OrderInvoiceDetail.java b/order-management-common/src/main/java/com/dxhy/order/model/OrderInvoiceDetail.java
index 6bba07c4..6ccd689a 100644
--- a/order-management-common/src/main/java/com/dxhy/order/model/OrderInvoiceDetail.java
+++ b/order-management-common/src/main/java/com/dxhy/order/model/OrderInvoiceDetail.java
@@ -124,4 +124,14 @@ public class OrderInvoiceDetail implements Serializable {
* 矿别
*/
private String kb;
+
+ private String xh;
+
+ private String invoiceDate;
+
+ private String signName;
+
+ private String signDate;
+
+ private String sellerName;
}
diff --git a/order-management-common/src/main/java/com/dxhy/order/model/OrderInvoiceInfo.java b/order-management-common/src/main/java/com/dxhy/order/model/OrderInvoiceInfo.java
index 5075b50b..4780339c 100644
--- a/order-management-common/src/main/java/com/dxhy/order/model/OrderInvoiceInfo.java
+++ b/order-management-common/src/main/java/com/dxhy/order/model/OrderInvoiceInfo.java
@@ -327,4 +327,6 @@ public class OrderInvoiceInfo implements Serializable {
* 税控错误描述
*/
private String skcwms;
+
+ private String docuId;
}
diff --git a/order-management-common/src/main/java/com/dxhy/order/utils/HttpUtils.java b/order-management-common/src/main/java/com/dxhy/order/utils/HttpUtils.java
index b734948e..15712a5a 100644
--- a/order-management-common/src/main/java/com/dxhy/order/utils/HttpUtils.java
+++ b/order-management-common/src/main/java/com/dxhy/order/utils/HttpUtils.java
@@ -1,9 +1,13 @@
package com.dxhy.order.utils;
import cn.hutool.http.HttpRequest;
+import com.dxhy.order.model.R;
import lombok.extern.slf4j.Slf4j;
+import java.io.File;
+import java.io.FileInputStream;
import java.io.IOException;
+import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;
@@ -83,5 +87,57 @@ public class HttpUtils {
log.debug("{}以字符串调用post请求url:{},耗时:{}", LOGGER_MSG, url, endTime - startTime);
return body;
}
+ /**
+ * 上传文件
+ *
+ * @param
+ * @param
+ * @return
+ */
+
+ public static String uploadFile(File file,String url, String arcId,String userName,String password) {
+ String uploadPath = url + "/uploadFile/UploadServlet?ArcId=" + arcId;
+ Map headers = new HashMap<>();
+ headers.put("USERNAME", userName);
+ headers.put("PASSWORD", password);
+
+ try {
+ String sResponse = HttpRequest.post(uploadPath).addHeaders(headers).form("file",file).timeout(300000).execute().body();
+ return sResponse;
+ } catch (Exception e) {
+ return null;
+ }
+ }
+
+ public static void main(String[] args) {
+ String uploadPath = "http://114.116.202.129:8015/order-api/receiveOrder/excel";
+ HttpRequest httpRequest = new HttpRequest(uploadPath);
+ Map head = new HashMap<>();
+// head.put("Content-Type", "multipart/form-data");
+ head.put("Cookie", "td_cookie=1198311647; dxhy_sso_sessionid=10_7af9802681df4941a1afc7562bb30538");
+ head.put("cookieId", "10_7af9802681df4941a1afc7562bb30538");
+
+ try {
+ File file = new File("D:\\test\\订单导入模板 .xlsx");
+ Map dd = new HashMap<>();
+ dd.put("id","WU_FILE_0");
+ dd.put("name","订单导入模板.xlsx");
+ dd.put("type","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
+ dd.put("lastModifiedDate","Thu Apr 06 2023 14:48:04 GMT+0800 (中国标准时间)");
+ dd.put("size","13129");
+ dd.put("xhfNsrsbh","110101MYJ2GPQQ4");
+ dd.put("xhfZh","123123");
+ dd.put("xhfYh","123");
+ dd.put("xhfDh","123");
+ dd.put("xhfDz","123");
+ dd.put("xhfMc","PQQ4测试");
+ dd.put("userId","10");
+
+ String sResponse = HttpRequest.post(uploadPath).addHeaders(head).form(dd).form("file",file).timeout(300000).execute().body();
+ System.out.println(sResponse);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
}
diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/commodity/domain/dto/QuoteGroupCommodityDTO.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/commodity/domain/dto/QuoteGroupCommodityDTO.java
index 69e312b8..265d42e4 100644
--- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/commodity/domain/dto/QuoteGroupCommodityDTO.java
+++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/commodity/domain/dto/QuoteGroupCommodityDTO.java
@@ -21,6 +21,8 @@ public class QuoteGroupCommodityDTO {
//@NotBlank(message = "接收引用物料的销方纳税人识别号不能为空!")
private String xhfNsrsbh;
+ private String xhfMc;
+
@NotBlank(message = "接收引用物料的销方企业id不能为空!")
private String deptId;
}
diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/commodity/service/impl/GroupCommodityCodeServiceImpl.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/commodity/service/impl/GroupCommodityCodeServiceImpl.java
index a6a45f60..08ce110e 100644
--- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/commodity/service/impl/GroupCommodityCodeServiceImpl.java
+++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/commodity/service/impl/GroupCommodityCodeServiceImpl.java
@@ -129,6 +129,8 @@ public class GroupCommodityCodeServiceImpl implements IGroupCommodityCodeService
newCommodityCodeEntity.setId(baseService.getGenerateShotKey());
newCommodityCodeEntity.setXhfNsrsbh(quoteGroupCommodityDTO.getXhfNsrsbh());
newCommodityCodeEntity.setEntId(quoteGroupCommodityDTO.getDeptId());
+ newCommodityCodeEntity.setDataState("0");
+ newCommodityCodeEntity.setXhfMc(quoteGroupCommodityDTO.getXhfMc());
if (groupCommodityMapper.insertCommodityCode(newCommodityCodeEntity) <= 0) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return R.error("第" + (i + 1) + "条数据,引用失败");
diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/manager/model/OpenTextResult.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/manager/model/OpenTextResult.java
new file mode 100644
index 00000000..85399f0c
--- /dev/null
+++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/manager/model/OpenTextResult.java
@@ -0,0 +1,14 @@
+package com.dxhy.order.consumer.modules.manager.model;
+
+import lombok.Data;
+
+@Data
+public class OpenTextResult {
+
+ private String archId;
+ private String comptype;
+ private String docuId;
+ private String fileLength;
+ private String fileName;
+ private String msgType;
+}
diff --git a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/manager/service/impl/PushInvoiceServiceImpl.java b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/manager/service/impl/PushInvoiceServiceImpl.java
index 01da05fd..38d49e52 100644
--- a/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/manager/service/impl/PushInvoiceServiceImpl.java
+++ b/order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/manager/service/impl/PushInvoiceServiceImpl.java
@@ -4,6 +4,7 @@ import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
+import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.dxhy.order.baseservice.config.BaseServiceConfig;
import com.dxhy.order.baseservice.module.thirdservice.rabbitmq.service.RabbitMqSendMessageService;
@@ -15,6 +16,7 @@ import com.dxhy.order.consumer.model.protocol.CommonResponse;
import com.dxhy.order.consumer.model.protocol.ResponseData;
import com.dxhy.order.consumer.model.protocol.ResponseStatus;
import com.dxhy.order.consumer.modules.jdjos.service.PushInvoiceToJdJosService;
+import com.dxhy.order.consumer.modules.manager.model.OpenTextResult;
import com.dxhy.order.consumer.modules.manager.service.PushInvoiceService;
import com.dxhy.order.consumer.modules.manager.service.QuickCodeInfoService;
import com.dxhy.order.consumer.modules.order.service.OrderCommonService;
@@ -48,6 +50,7 @@ import com.dxhy.order.consumer.openapi.service.CommonDisposeService;
import com.dxhy.order.consumer.openapi.service.InterfaceServiceV5;
import com.dxhy.order.consumer.utils.BeanTransitionUtils;
import com.dxhy.order.consumer.utils.InterfaceBeanTransUtils;
+import com.dxhy.order.consumer.utils.OpentextUtils;
import com.dxhy.order.exception.InterfaceException;
import com.dxhy.order.exception.OrderReceiveException;
import com.dxhy.order.invoice.config.InvoiceConfig;
@@ -69,6 +72,9 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.*;
@@ -356,6 +362,8 @@ public class PushInvoiceServiceImpl implements PushInvoiceService {
}
String fptsParam = "";
+ //opentext 推送图片
+ this.openTextUploadFile(fpTsMqData,shList);
//多个地址循环推送
for (PushInfo pushInfo : pushInfoList) {
@@ -538,6 +546,76 @@ public class PushInvoiceServiceImpl implements PushInvoiceService {
return r;
}
+ private void openTextUploadFile (CommonTsMqData fpTsMqData,List shList){
+
+ String uuid = null;
+ File file = null;
+ FileOutputStream fos = null;
+ try {
+ uuid = UUID.randomUUID().toString();
+ String invoiceRedisLock = String.format(RedisConstant.REDIS_ORDER_LOCK_OPENTEXT_KEY, fpTsMqData.getFpTsMqData().getFpqqlsh());
+ if (!redisService.setNx(invoiceRedisLock, uuid,RedisConstant.REDIS_EXPIRE_TIME_1MIN)) {
+ //判断数据过期时间是否为-1,如果为-1,设置为30分钟
+ Long expire = redisService.getExpire(invoiceRedisLock);
+ if(ConfigureConstant.LONG_1_ == expire){
+ redisService.setExpire(invoiceRedisLock,RedisConstant.REDIS_EXPIRE_TIME_1MIN);
+ }
+ }
+ OrderInvoiceInfo orderInvoiceInfo1 = new OrderInvoiceInfo();
+ orderInvoiceInfo1.setFpqqlsh(fpTsMqData.getFpTsMqData().getFpqqlsh());
+ OrderInvoiceInfo orderInvoiceInfo = orderInvoiceInfoService.selectOrderInvoiceInfo(orderInvoiceInfo1, shList);
+ if(orderInvoiceInfo == null || StringUtils.isNotBlank(orderInvoiceInfo.getDocuId())){
+ log.info("发送opentext,发票号码{}不存在或此发票已推送不允许重复推送",fpTsMqData.getFpTsMqData().getFphm());
+ throw new Exception("发送opentext,发票号码"+ fpTsMqData.getFpTsMqData().getFphm() +"不存在或此发票已推送不允许重复推送");
+ }
+ boolean fpdmhmDp = (OrderInfoEnum.ORDER_INVOICE_TYPE_51.getKey().equals(orderInvoiceInfo.getFpzlDm())
+ || OrderInfoEnum.ORDER_INVOICE_TYPE_01.getKey().equals(orderInvoiceInfo.getFpzlDm())
+ || OrderInfoEnum.ORDER_INVOICE_TYPE_02.getKey().equals(orderInvoiceInfo.getFpzlDm())
+ || OrderInfoEnum.ORDER_INVOICE_TYPE_52.getKey().equals(orderInvoiceInfo.getFpzlDm()))
+ && StringUtils.isNotEmpty(orderInvoiceInfo.getFphm());
+ if(!fpdmhmDp){
+ throw new Exception("非电票不推送");
+ }
+
+ List fileDownLoadList = orderInvoiceInfoService.getInvoiceFile(
+ "6", orderInvoiceInfo.getFpzlDm(), orderInvoiceInfo.getPdfUrl(), orderInvoiceInfo.getKplsh(), orderInvoiceInfo.getFpdm(),
+ orderInvoiceInfo.getFphm(), orderInvoiceInfo.getXhfNsrsbh(), orderInvoiceInfo.getSksbdm(),"");
+ //将base64 转为文件对象
+ if(fileDownLoadList != null && fileDownLoadList.size()> 0){
+ byte[] decode = Base64Encoding.decode(fileDownLoadList.get(0).getFileContent().getBytes());
+ file = new File(invoiceConfig.getOpenTextTempPath() + fileDownLoadList.get(0).getFileName());
+ fos = new FileOutputStream(file);
+ fos.write(decode);
+ fos.flush();
+
+ String openTextResult = HttpUtils.uploadFile(file, invoiceConfig.getOpentextUrl(), invoiceConfig.getArcId(), invoiceConfig.getOpentextUserName(), invoiceConfig.getOpentextPasswd());
+ log.info("调用opentext接口返回结果:{}",openTextResult);
+ if(StringUtils.isNotBlank(openTextResult)){
+ List openTextResults = JSONArray.parseArray(openTextResult, OpenTextResult.class);
+ StringBuffer sb = new StringBuffer();
+ openTextResults.forEach(t->sb.append(t.getDocuId()).append(","));
+ orderInvoiceInfo1.setDocuId(sb.toString());
+ orderInvoiceInfoService.updateOrderInvoiceInfoByFpqqlsh(orderInvoiceInfo, shList);
+ }
+ }
+ } catch (Exception e) {
+ log.error("发送opentext异常:{}",e.getMessage());
+ } finally {
+ try {
+ if(file != null){file.delete();}
+ if(fos != null) {fos.close();}
+ } catch (IOException e) {
+ log.error("发送opentext关闭文件流异常:{}",e.getMessage());
+ }
+
+ String cacheFpqqlsh = String.format(RedisConstant.REDIS_ORDER_LOCK_OPENTEXT_KEY, fpTsMqData.getFpTsMqData().getFpqqlsh());
+ if (uuid.equals(redisService.get(cacheFpqqlsh))) {
+ redisService.del(cacheFpqqlsh);
+ }
+ }
+
+ }
+
private R processPushFail(CommonTsMqData commonTsMqData, String pushUrl, String msg, List shList) {
if (StrUtil.isNotBlank(pushUrl)) {
diff --git a/order-management-consumer/src/main/resources/mybatis/mapper/GroupCommodityCodeMapper.xml b/order-management-consumer/src/main/resources/mybatis/mapper/GroupCommodityCodeMapper.xml
index d68ec7f8..9028ebae 100644
--- a/order-management-consumer/src/main/resources/mybatis/mapper/GroupCommodityCodeMapper.xml
+++ b/order-management-consumer/src/main/resources/mybatis/mapper/GroupCommodityCodeMapper.xml
@@ -387,52 +387,57 @@
where xhf_nsrsbh = #{xhfNsrsbh,jdbcType=VARCHAR} and ent_id = #{entId,jdbcType=VARCHAR}
-
- insert into commodity_code (commodity_id, sort_id, xhf_nsrsbh, merchandise_name, encoding, tax_items,
- brief_code,
- tax_rate, specification_model, metering_unit, unit_price, tax_logo, hide_the_logo,
- enjoy_preferential_policies, tax_class_code, tax_classification_name,
- preferential_policies_type, zzstsgl,
- user_id, create_time, modify_time, modify_user_id, group_id, enterprise_name,
- data_source,
- matching_state, data_state, tax_class_abbreviation, description, collect_ident, cpy,
- bmb_bbh, jdc, wlflbm, wlflmc,ent_id)
- select commodity_id,
- sort_id,
- #{to.xhfNsrsbh,jdbcType=VARCHAR},
- merchandise_name,
- encoding,
- tax_items,
- brief_code,
- tax_rate,
- specification_model,
- metering_unit,
- unit_price,
- tax_logo,
- hide_the_logo,
- enjoy_preferential_policies,
- tax_class_code,
- tax_classification_name,
- preferential_policies_type,
- zzstsgl,
- user_id,
- create_time,
- modify_time,
- modify_user_id,
- group_id,
- enterprise_name,
- data_source,
- matching_state,
- data_state,
- tax_class_abbreviation,
- description,
- collect_ident,
- cpy,
- bmb_bbh,
- jdc,
- wlflbm,
- wlflmc,
- #{to.entId,jdbcType=VARCHAR}
+
+ insert into commodity_code (
+ id,commodity_id, sort_id, xhf_nsrsbh, merchandise_name, encoding, tax_items,
+ brief_code,
+ tax_rate, specification_model, metering_unit, unit_price, tax_logo, hide_the_logo,
+ enjoy_preferential_policies, tax_class_code, tax_classification_name,
+ preferential_policies_type, zzstsgl,
+ user_id, create_time, modify_time, modify_user_id, group_id, enterprise_name,
+ data_source,
+ matching_state, data_state, tax_class_abbreviation, description, collect_ident, cpy,
+ bmb_bbh, jdc, wlflbm, wlflmc,invoice_name,ent_id
+ )
+ select
+ CONCAT(#{to.entId,jdbcType=VARCHAR},'-',id)
+ commodity_id,
+ sort_id,
+ #{to.xhfNsrsbh,jdbcType=VARCHAR},
+ merchandise_name,
+ encoding,
+ tax_items,
+ brief_code,
+ tax_rate,
+ specification_model,
+ metering_unit,
+ unit_price,
+ tax_logo,
+ hide_the_logo,
+ enjoy_preferential_policies,
+ tax_class_code,
+ tax_classification_name,
+ preferential_policies_type,
+ zzstsgl,
+ user_id,
+ create_time,
+ modify_time,
+ modify_user_id,
+ group_id,
+ enterprise_name,
+ data_source,
+ matching_state,
+ data_state,
+ tax_class_abbreviation,
+ description,
+ collect_ident,
+ cpy,
+ bmb_bbh,
+ jdc,
+ wlflbm,
+ wlflmc,
+ invoice_name,
+ #{to.entId,jdbcType=VARCHAR}
from commodity_code where xhf_nsrsbh = #{from.xhfNsrsbh,jdbcType=VARCHAR} and ent_id = #{from.entId,jdbcType=VARCHAR}
diff --git a/order-management-invoice/src/main/java/com/dxhy/order/invoice/config/InvoiceConfig.java b/order-management-invoice/src/main/java/com/dxhy/order/invoice/config/InvoiceConfig.java
index 78e34d71..301fe336 100644
--- a/order-management-invoice/src/main/java/com/dxhy/order/invoice/config/InvoiceConfig.java
+++ b/order-management-invoice/src/main/java/com/dxhy/order/invoice/config/InvoiceConfig.java
@@ -86,8 +86,6 @@ public class InvoiceConfig {
@Value("${order.print.tempPath}")
public String printTempPath;
-
-
/**
* 京东万家渠道,用于判断是否进行推送部署消息
*/
@@ -191,7 +189,21 @@ public class InvoiceConfig {
*/
@Value("${order.checkFail.limitInvalidCount}")
private String checkFailLimitInvalidCount;
-
+
+ @Value("${order.opentext.url}")
+ public String opentextUrl;
+
+ @Value("${order.opentext.userName}")
+ public String opentextUserName;
+
+ @Value("${order.opentext.password}")
+ public String opentextPasswd;
+
+ @Value("${order.opentext.arcid}")
+ public String arcId;
+
+ @Value("${order.opentext.tempPath}")
+ public String openTextTempPath;
/**
* mqtt相关配置
diff --git a/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/controller/ExportExcelController.java b/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/controller/ExportExcelController.java
index a8b90862..b930794e 100644
--- a/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/controller/ExportExcelController.java
+++ b/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/controller/ExportExcelController.java
@@ -78,6 +78,10 @@ public class ExportExcelController {
String filePrefix = DateUtil.format(new Date(), ConfigureConstant.DATE_FORMAT_DATE_YMDHMS);
try {
+ if(OrderInfoEnum.EXPORT_EXCEL_TYPE_5.getKey().equals(orderBatchQuery.getExportType())&&StringUtils.isBlank(orderBatchQuery.getIds())){
+ throw new Exception("请求参数有误,");
+ }
+
String fileName = OrderInfoEnum.EXPORT_EXCEL_TYPE_0.getValue();
if (OrderInfoEnum.EXPORT_EXCEL_TYPE_1.getKey().equals(orderBatchQuery.getExportType())) {
fileName = OrderInfoEnum.EXPORT_EXCEL_TYPE_1.getValue();
diff --git a/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/controller/InvoiceController.java b/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/controller/InvoiceController.java
index a5798010..c0009874 100644
--- a/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/controller/InvoiceController.java
+++ b/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/controller/InvoiceController.java
@@ -15,6 +15,7 @@ import com.dxhy.order.model.PageUtils;
import com.dxhy.order.model.R;
import com.dxhy.order.model.page.OrderListQuery;
import com.dxhy.order.model.sk.sld.SearchSld;
+import com.dxhy.order.utils.Base64Encoding;
import com.dxhy.order.utils.JsonUtils;
import com.dxhy.order.utils.NsrsbhUtils;
import com.dxhy.order.utils.PageBeanConvertUtil;
@@ -33,6 +34,9 @@ import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
import java.util.*;
/**
@@ -99,26 +103,35 @@ public class InvoiceController {
@PostMapping(value = "/printSignInvoice")
@ApiOperation(value = "交付单打印", notes = "发票查询-交付单打印")
@SysLog(operation = "交付单打印", operationDesc = "发票打印", key = "发票打印")
- public void printSignInvoice(@RequestBody OrderListQuery orderBatchQuery,HttpServletRequest request, HttpServletResponse response) {
+ public R printSignInvoice(@RequestBody OrderListQuery orderBatchQuery,HttpServletRequest request, HttpServletResponse response) {
log.info("{}交付单打印请求参数:{}", LOGGER_MSG, JsonUtils.getInstance().toJsonString(orderBatchQuery));
- String printTempPath = config.getPrintTempPath();
-
- if(Objects.isNull(orderBatchQuery) || StringUtils.isNotBlank(orderBatchQuery.getIds())){
+ String[] toDay = DateUtil.today().split("-");
+ String printTempRoot = config.getPrintTempPath() + "excelFile/" + toDay[0] + "/"+ toDay[1] + "/" + toDay[2] + "/";
+ String printTempPath = printTempRoot + fileNamePrefix + fileSplit + UUID.randomUUID() + fileNameSurfix;
+ String base64File = "";
+ if(Objects.isNull(orderBatchQuery) || StringUtils.isBlank(orderBatchQuery.getIds())){
log.error("{}请求参数为空", LOGGER_MSG);
} else {
response.setHeader("Content-disposition", "inline;filename="+ "printInvoice.pdf");
response.setContentType(ConfigureConstant.STRING_APPLICATION_PDF);
try {
- String[] toDay = DateUtil.today().split("-");
- String file = orderInvoiceInfoService.signInvoicePrint(printTempPath + "excelFile/" + toDay[0] + "/"
- + toDay[1] + "/" + toDay[2] + "/" + fileNamePrefix + fileSplit + UUID.randomUUID() + fileNameSurfix , Arrays.asList(orderBatchQuery.getIds().split(",")));
- log.debug("交付单打印base64文件流{}",file);
- response.getOutputStream().write(file.getBytes());
+ File file = new File(printTempRoot);
+ if(!file.exists()){
+ file.mkdirs();
+ }
+ file = new File(printTempPath);
+ if(!file.exists()){
+ file.createNewFile();
+ }
+ base64File = orderInvoiceInfoService.signInvoicePrint(printTempPath , Arrays.asList(orderBatchQuery.getIds().split(",")));
+ log.debug("交付单打印base64文件流{}",base64File);
+// response.getOutputStream().write(base64File.getBytes());
} catch (Exception e) {
- e.printStackTrace();
+ return R.error("系统异常,请联系管理员");
}
}
+ return R.ok().put("data", base64File);
}
@ApiOperation(value = "发票信息明细查询", notes = "订单发票管理-查询发票明细列表")
diff --git a/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/model/excel/ExportInvoiceInfo.java b/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/model/excel/ExportInvoiceInfo.java
index 19a1dc8d..8985f0e7 100644
--- a/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/model/excel/ExportInvoiceInfo.java
+++ b/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/model/excel/ExportInvoiceInfo.java
@@ -17,7 +17,8 @@ import java.util.List;
@Setter
@ToString
public class ExportInvoiceInfo implements Serializable {
-
+
+ private String xh;
private String ddh;
private String fpdm;
private String fphm;
@@ -164,6 +165,8 @@ public class ExportInvoiceInfo implements Serializable {
private String signName;
private String signDate;
+ private String invoiceDate;
+ private String sellerName;
private List exportInvoiceItemInfoList;
}
diff --git a/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/model/excel/ExportInvoiceSignInfoEnum.java b/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/model/excel/ExportInvoiceSignInfoEnum.java
index 46af04aa..7cb29078 100644
--- a/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/model/excel/ExportInvoiceSignInfoEnum.java
+++ b/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/model/excel/ExportInvoiceSignInfoEnum.java
@@ -16,15 +16,15 @@ public enum ExportInvoiceSignInfoEnum {
* 必须按照顺序存放,否则会异常
*/
EXCEL_EXPORT_INVOICE_XH("0", "xh", "序号",1f),
- EXCEL_EXPORT_INVOICE_KPRQ("1", "kprq", "开票日期",2f),
- EXCEL_EXPORT_INVOICE_XHFMC("2", "xhfMc", "销方单位名称",3f),
- EXCEL_EXPORT_INVOICE_GHFMC("3", "ghfMc", "购方单位名称",3f),
+ EXCEL_EXPORT_INVOICE_KPRQ("1", "invoiceDate", "开票日期",3f),
+ EXCEL_EXPORT_INVOICE_XHFMC("2", "sellerName", "销方单位名称",3.5f),
+ EXCEL_EXPORT_INVOICE_GHFMC("3", "ghfMc", "购方单位名称",3.5f),
EXCEL_EXPORT_INVOICE_FPDM("4", "fpdm", "发票代码",2f),
- EXCEL_EXPORT_INVOICE_FPHM("5", "fphm", "发票号码",2f),
- EXCEL_EXPORT_INVOICE_HJJE("6", "hjbhsje", "不含税金额",2f),
- EXCEL_EXPORT_INVOICE_HJSE("7", "kpse", "税额",2f),
- EXCEL_EXPORT_INVOICE_JSHJ("8", "kphjje", "价税合计金额",2f),
- EXCEL_EXPORT_INVOICE_FPLX("9", "bz", "备注",4f),
+ EXCEL_EXPORT_INVOICE_FPHM("5", "fphm", "发票号码",1.5f),
+ EXCEL_EXPORT_INVOICE_HJJE("6", "hjbhsje", "不含税金额",1.5f),
+ EXCEL_EXPORT_INVOICE_HJSE("7", "kpse", "税额",1f),
+ EXCEL_EXPORT_INVOICE_JSHJ("8", "kphjje", "价税合计金额",1.5f),
+ EXCEL_EXPORT_INVOICE_FPLX("9", "bz", "备注",3.5f),
EXCEL_EXPORT_INVOICE_XHFNSRSBH("10", "signName", "交接人",2f),
EXCEL_EXPORT_INVOICE_GHFNSRSBH("11", "signDate", "交接日期",2f);
diff --git a/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/service/impl/OrderInvoiceInfoServiceImpl.java b/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/service/impl/OrderInvoiceInfoServiceImpl.java
index 3aacc4e6..d2a40ed1 100644
--- a/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/service/impl/OrderInvoiceInfoServiceImpl.java
+++ b/order-management-invoice/src/main/java/com/dxhy/order/invoice/module/invoice/service/impl/OrderInvoiceInfoServiceImpl.java
@@ -57,11 +57,9 @@ import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.OutputStream;
+import java.io.*;
import java.nio.charset.StandardCharsets;
+import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
import java.util.zip.ZipEntry;
@@ -458,7 +456,7 @@ public class OrderInvoiceInfoServiceImpl implements OrderInvoiceInfoService {
public List exportAllInvoiceDetailByPage(Map paramMap, List shList, List entList, String type) {
List exportInvoiceInfoList = new ArrayList<>();
//非主信息的需要查询明细数据
- boolean isNeedItem = !OrderInfoEnum.EXPORT_EXCEL_TYPE_0.getKey().equals(type)||!OrderInfoEnum.EXPORT_EXCEL_TYPE_4.getKey().equals(type);
+ boolean isNeedItem = !OrderInfoEnum.EXPORT_EXCEL_TYPE_0.getKey().equals(type)&&!OrderInfoEnum.EXPORT_EXCEL_TYPE_5.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)));
@@ -473,7 +471,7 @@ public class OrderInvoiceInfoServiceImpl implements OrderInvoiceInfoService {
log.info("发票明细excel导出查询数据库入参:{}", JsonUtils.getInstance().toJsonString(paramMap));
List orderInvoiceDetails = null;
- if(OrderInfoEnum.EXPORT_EXCEL_TYPE_4.getKey().equals(type)){
+ if(OrderInfoEnum.EXPORT_EXCEL_TYPE_5.getKey().equals(type)){
orderInvoiceDetails = orderInvoiceInfoMapper.selectInvoiceByIds((List)paramMap.get("ids"));
}else{
orderInvoiceDetails = orderInvoiceInfoMapper.selectRedAndInvoiceBymap(paramMap, shList, entList);
@@ -509,6 +507,7 @@ public class OrderInvoiceInfoServiceImpl implements OrderInvoiceInfoService {
log.info("发票明细数据组装耗时:{}", endTime1 - startTime1);
//数据信息转换
+ int xh = 1;
for (OrderInvoiceDetail orderInvoiceDetail : orderInvoiceDetails) {
ExportInvoiceInfo exportInvoiceInfo = new ExportInvoiceInfo();
//过滤数据,根据type判断当前导出的是什么类型的数据,如果type为0,不需要处理,如果type为1,只保留普电专数据,如果type为2,只保留机动车数据,如果type为3,只保留二手车数据
@@ -573,10 +572,12 @@ public class OrderInvoiceInfoServiceImpl implements OrderInvoiceInfoService {
//发票主信息补全
+ exportInvoiceInfo.setXh(String.valueOf(xh));
exportInvoiceInfo.setDdh(StringUtils.isNotBlank(orderInvoiceDetail.getDdh()) ? orderInvoiceDetail.getDdh() : "");
exportInvoiceInfo.setFpdm(StringUtils.isNotBlank(orderInvoiceDetail.getFpdm()) ? orderInvoiceDetail.getFpdm() : "");
exportInvoiceInfo.setFphm(StringUtils.isNotBlank(orderInvoiceDetail.getFphm()) ? orderInvoiceDetail.getFphm() : "");
exportInvoiceInfo.setXhfMc(StringUtils.isNotBlank(orderInvoiceDetail.getXhfmc()) ? orderInvoiceDetail.getXhfmc() : "");
+ exportInvoiceInfo.setSellerName(StringUtils.isNotBlank(orderInvoiceDetail.getXhfmc()) ? orderInvoiceDetail.getXhfmc() : "");
exportInvoiceInfo.setXhfNsrsbh(StringUtils.isNotBlank(orderInvoiceDetail.getXhfNsrsbh()) ? orderInvoiceDetail.getXhfNsrsbh() : "");
exportInvoiceInfo.setXhfDz(StringUtils.isNotBlank(orderInvoiceDetail.getXhfDz()) ? orderInvoiceDetail.getXhfDz() : "");
exportInvoiceInfo.setXhfDh(StringUtils.isNotBlank(orderInvoiceDetail.getXhfDh()) ? orderInvoiceDetail.getXhfDh() : "");
@@ -594,6 +595,7 @@ public class OrderInvoiceInfoServiceImpl implements OrderInvoiceInfoService {
exportInvoiceInfo.setKplx(StringUtils.isNotBlank(orderInvoiceDetail.getKplx()) ? CommonUtils.getKplxMc(orderInvoiceDetail.getKplx()) : "");
exportInvoiceInfo.setZfbz(StringUtils.isNotBlank(orderInvoiceDetail.getZfbz()) ? CommonUtils.getZfbzMc(orderInvoiceDetail.getZfbz()) : "");
exportInvoiceInfo.setKprq(ObjectUtil.isNotNull(orderInvoiceDetail.getKprq()) ? DateUtil.formatDateTime(orderInvoiceDetail.getKprq()) : "");
+ exportInvoiceInfo.setInvoiceDate(ObjectUtil.isNotNull(orderInvoiceDetail.getKprq()) ? DateUtil.formatDateTime(orderInvoiceDetail.getKprq()) : "");
exportInvoiceInfo.setKphjje(StringUtils.isNotBlank(orderInvoiceDetail.getKphjje()) ? orderInvoiceDetail.getKphjje() : "");
exportInvoiceInfo.setHjbhsje(StringUtils.isNotBlank(orderInvoiceDetail.getHjbhsje()) ? orderInvoiceDetail.getHjbhsje() : "");
exportInvoiceInfo.setKpse(StringUtils.isNotBlank(orderInvoiceDetail.getKpse()) ? orderInvoiceDetail.getKpse() : "");
@@ -643,7 +645,7 @@ public class OrderInvoiceInfoServiceImpl implements OrderInvoiceInfoService {
exportInvoiceInfoList.add(exportInvoiceInfo);
-
+ xh++;
}
@@ -700,7 +702,7 @@ 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)) {
+ } else if (OrderInfoEnum.EXPORT_EXCEL_TYPE_5.getKey().equals(type)) {
for (ExportInvoiceSignInfoEnum exportEscInvoiceInfoEnum : ExportInvoiceSignInfoEnum.values()) {
headToProperty.put(exportEscInvoiceInfoEnum.getValue(), exportEscInvoiceInfoEnum.getCellName());
headerToColumnMap.put(exportEscInvoiceInfoEnum.getValue(), exportEscInvoiceInfoEnum.getKey());
@@ -739,7 +741,6 @@ public class OrderInvoiceInfoServiceImpl implements OrderInvoiceInfoService {
}
}
-
sxssfWorkbook.write(out);
final DateTime endTime6 = DateTime.now();
final long time13 = new Duration(startTime, endTime6).getMillis();
@@ -1146,7 +1147,7 @@ public class OrderInvoiceInfoServiceImpl implements OrderInvoiceInfoService {
byte[] bytes = new byte[fis.available()];
fis.read(bytes); // 读取到 byte 里面
fis.close();
- file.delete();
+// file.delete();
return Base64Encoding.encodeToString(bytes);
}
@@ -1159,6 +1160,14 @@ public class OrderInvoiceInfoServiceImpl implements OrderInvoiceInfoService {
PageHelper.startPage(curr, 500);
List orderInvoiceDetails = orderInvoiceInfoMapper.selectInvoiceByIds(ids);
PageInfo pageInfo = new PageInfo<>(orderInvoiceDetails);
+ int xh = 1;
+ for (OrderInvoiceDetail orderInvoiceDetail : orderInvoiceDetails) {
+ orderInvoiceDetail.setXh(String.valueOf(xh));
+ orderInvoiceDetail.setInvoiceDate(orderInvoiceDetail.getKprq() != null ? DateUtil.formatDateTime(orderInvoiceDetail.getKprq()):"");
+ orderInvoiceDetail.setSellerName(orderInvoiceDetail.getXhfmc());
+ xh++;
+ }
+
// 用于页面展示
List resultList = pageInfo.getList();