From f990f7e352782c74a5af3b54651cf1a21fc0d099 Mon Sep 17 00:00:00 2001
From: kongdeqiang <123456>
Date: 星期日, 23 四月 2023 11:51:54 +0800
Subject: [PATCH] 修改开票
---
src/main/java/com/boying/controller/phone/EticketController.java | 94 +++++++++++
src/main/java/com/boying/entity/OrderRecord.java | 23 +-
src/main/java/com/boying/job/YCGetEticketScheduled.java | 156 +++++++++++++++++++
src/main/java/com/boying/entity/DirectTicket.java | 38 ++++
src/main/java/com/boying/job/YCEticketScheduled.java | 127 +++++++++++++++
5 files changed, 425 insertions(+), 13 deletions(-)
diff --git a/src/main/java/com/boying/controller/phone/EticketController.java b/src/main/java/com/boying/controller/phone/EticketController.java
index ccb7b2f..07451d6 100644
--- a/src/main/java/com/boying/controller/phone/EticketController.java
+++ b/src/main/java/com/boying/controller/phone/EticketController.java
@@ -7,10 +7,7 @@
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.boying.common.ReturnData;
import com.boying.common.SystemConfigProperties;
-import com.boying.entity.ApplyTicket;
-import com.boying.entity.EticketFile;
-import com.boying.entity.FileInfo;
-import com.boying.entity.Mkoteinvoice;
+import com.boying.entity.*;
import com.boying.util.FileUtil;
import com.boying.util.HTTPEntityUtil;
import com.boying.util.ObjectToMapUtil;
@@ -30,6 +27,93 @@
/**
* 鐢靛瓙绁ㄦ嵁鍒朵綔娴佺▼涓� 锛� 寮�鍏风數瀛愮即娆句功->鍙戝紑鍏风數瀛愮エ鎹敵璇�->鑾峰彇鐢靛瓙绁ㄦ嵁鏂囦欢
*/
+
+
+ public static void main(String[] args) {
+ //鐩存帴寮�绁�
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+ SimpleDateFormat sdf2 = new SimpleDateFormat("hh:mm:ss");
+ String format = sdf.format(new Date());
+ String format2 = sdf2.format(new Date());
+ String idStr = 111111+"";
+ String dateStr = DateUtil.currentSeconds()+"";
+ String l = idStr + dateStr;
+
+ List< DirectTicket.info> infos = new ArrayList<>();
+ //寮�绁ㄧ敵璇�
+ DirectTicket.info info = new DirectTicket.info();
+ info.setOrdernum(1);
+ info.setAmt(3.0);
+ info.setAmount(1);
+ info.setIncitemcode("072101");
+ info.setIncitemname("鍋滆溅娉婁綅鍙婂叕鍏卞仠杞﹀満绛夋湁鍋夸娇鐢ㄦ敹鍏�");
+ infos.add(info);
+ //list杞琷son
+ Gson gson = new Gson();
+ String json = gson.toJson(infos);
+
+ DirectTicket directTicket = new DirectTicket();
+ directTicket.setBizcode(l);
+ directTicket.setIssuedate(format);
+ directTicket.setIssuetime(format2);
+ directTicket.setPayerpartytype("1");
+ directTicket.setPayer("鍐�A0C5MA");
+ directTicket.setAmt(3.0);
+ directTicket.setUsername("寮犲▏");
+ directTicket.setChecker("涔斿畞");
+ directTicket.setPayinfo(json);
+ directTicket.setState(1);
+
+ String jsonStr = JSON.toJSONString(directTicket, SerializerFeature.WriteDateUseDateFormat);
+ Map<String, Object> map = JSON.parseObject(jsonStr, new TypeReference<Map<String, Object>>() {});
+ RestTemplate restTemplate = new RestTemplate();
+ ResponseEntity<ReturnData> entity = restTemplate.postForEntity("http://10.255.200.204:7991/directmkoteinvoice", HTTPEntityUtil.setEntity(map), ReturnData.class);
+ SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd_HH_mm_ss");
+ String txt = sdf3.format(new Date())+"鐢宠寮�绁ㄥ疄浣撲负锛�"+directTicket+",\n";
+ txt += map+",\n";
+ if(entity.getBody().getCode() ==1 ){
+ //鐢宠鎴愬姛锛屽幓鑾峰彇寮�绁ㄦ枃浠�
+ //System.out.println(entity.getBody());
+ Object o = entity.getBody().getData().get(0);
+ String s = JSON.toJSONString(o);
+ Map<String,Object> mapTypes = (Map)JSON.parse(s);
+ System.out.println("bizcode:"+l);
+ System.out.println("einvoicecode:"+(String) mapTypes.get("einvoicecode"));
+ System.out.println("einvoicenumber:"+(String) mapTypes.get("einvoicenumber"));
+ System.out.println("randomnumber:"+(String) mapTypes.get("randomnumber"));
+ System.out.println("einvoiceid:"+(String) mapTypes.get("einvoiceid"));
+ System.out.println("einvoicefilename:"+(String) mapTypes.get("einvoicefilename"));
+ }else {
+
+ }
+ }
+
+ public static void main9(String[] args) {
+ Map<String,Object> map1 = new HashMap<>();
+ map1.put("einvoicecode", "");
+ map1.put("einvoicenumber","");
+ map1.put("bizcode", "");
+ map1.put("randomnumber","");
+ map1.put("billfiletype",1);
+ SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd_HH_mm_ss");
+ String txt = sdf3.format(new Date())+"鐢宠绁ㄦ嵁鏂囦欢锛�"+map1+",\n";
+ RestTemplate restTemplate = new RestTemplate();
+ ResponseEntity<ReturnData> entity = restTemplate.postForEntity("http://10.255.200.204:7991/geteinvoicebybizcode", HTTPEntityUtil.setEntity(map1), ReturnData.class);
+ if(entity.getBody().getCode() == 1){
+ System.out.println(entity.getBody());
+ txt += entity.getBody()+",\n";
+ Object o1 = entity.getBody().getData().get(0);
+ String s1 = JSON.toJSONString(o1);
+ EticketFile eticketFile = JSONObject.parseObject(s1, EticketFile.class);
+ System.out.println(eticketFile);
+ FileInfo fileInfo = FileUtil.generateBase64StringToFile(eticketFile.getEinvoicefile(), 1,1);
+ if(fileInfo != null){
+ System.out.println(fileInfo);
+ }
+ }else {
+ }
+ }
+
public static void main4(String[] args) {
long l = DateUtil.currentSeconds();
@@ -73,7 +157,7 @@
//ReturnData(code=1, msg=鐢宠鎴愬姛, total=0, data=[{filldate=2022-12-20, eticketnum=13040622000000000049, amt=0.1, payurl=, payinfo=[{"incitemname":"鍋滆溅娉婁綅鍙婂叕鍏卞仠杞﹀満绛夋湁鍋夸娇鐢ㄦ敹鍏�","amount":1,"incitemcode":"072101","amt":0.1,"ordernum":1}], payer=宄板嘲鏅烘収鍋滆溅, payee=娌冲寳鐪佽储鏀垮巺, businum=1671548968, payerbank=, payeraccount=, writedate=2022-12-20 23:10:24, paybankname=鍐滀笟閾惰銆佷腑鍥介摱琛屻�佸缓璁鹃摱琛屻�佹渤鍖楃渷鍐滄潙淇$敤绀捐仈鍚堢ぞ銆侀偖鏀垮偍钃勯摱琛�, id=6de66ef8-8078-11ed-b059-52540035b66d, sn=e0a682dc-a95e-46ab-810f-850fc7fc9c41}], singleData=null)
}
- public static void main(String[] args) throws IllegalAccessException {
+ public static void main8(String[] args) throws IllegalAccessException {
long l = DateUtil.currentSeconds();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat sdf2 = new SimpleDateFormat("hh:mm:ss");
diff --git a/src/main/java/com/boying/entity/DirectTicket.java b/src/main/java/com/boying/entity/DirectTicket.java
new file mode 100644
index 0000000..0dd4a9e
--- /dev/null
+++ b/src/main/java/com/boying/entity/DirectTicket.java
@@ -0,0 +1,38 @@
+package com.boying.entity;
+
+import lombok.Data;
+
+/**
+ * @author kdq
+ * @version 1.0.0
+ * @ClassName DirectTicket.java
+ * @Description TODO
+ * @createTime 2023骞�04鏈�23鏃� 08:46:00
+ */
+@Data
+public class DirectTicket {
+ private String bizcode;
+ private String issuedate;
+ private String issuetime;
+ private String payerpartytype;
+ private String payerpartycode;
+ private String payer;
+ private String payeraccount;
+ private String payerbank;
+ private double amt;
+ private String payinfo;
+ private String username;
+ private String checker;
+ private String remark;
+ private int state =1;
+ private String billtypeid;
+
+ @Data
+ public static class info{
+ private int ordernum;
+ private String incitemcode;
+ private String incitemname;
+ private int amount;
+ private double amt;
+ }
+}
diff --git a/src/main/java/com/boying/entity/OrderRecord.java b/src/main/java/com/boying/entity/OrderRecord.java
index 5fffa38..4a5be03 100644
--- a/src/main/java/com/boying/entity/OrderRecord.java
+++ b/src/main/java/com/boying/entity/OrderRecord.java
@@ -71,8 +71,15 @@
@Column(columnDefinition = "varchar(100) comment 'code2'")
private String code2;
- @ApiModelProperty(value = "randomnumber")
- @Column(columnDefinition = "varchar(100) comment 'randomnumber'")
+ /**
+ * 娴佹按鍙�
+ */
+ @ApiModelProperty(value = "涓氬姟娴佹按鍙�")
+ @Column(columnDefinition = "varchar(100) comment '涓氬姟娴佹按鍙�'")
+ private String bizCode;
+
+ @ApiModelProperty(value = "鏍¢獙鐮�")
+ @Column(columnDefinition = "varchar(100) comment '鏍¢獙鐮�'")
private String randomnumber;
@ApiModelProperty(value = "einvoicefilename")
@@ -83,16 +90,16 @@
@Column(columnDefinition = "varchar(100) comment 'einvoiceid'")
private String einvoiceid;
- @ApiModelProperty(value = "einvoicenumber")
- @Column(columnDefinition = "varchar(100) comment 'einvoicenumber'")
+ @ApiModelProperty(value = "鐢靛瓙绁ㄦ嵁鍙风爜")
+ @Column(columnDefinition = "varchar(100) comment '鐢靛瓙绁ㄦ嵁鍙风爜'")
private String einvoicenumber;
- @ApiModelProperty(value = "einvoicecode")
- @Column(columnDefinition = "varchar(100) comment 'einvoicecode'")
+ @ApiModelProperty(value = "鐢靛瓙绁ㄦ嵁浠g爜")
+ @Column(columnDefinition = "varchar(100) comment '鐢靛瓙绁ㄦ嵁浠g爜'")
private String einvoicecode;
- @ApiModelProperty(value = "billfiletype")
- @Column(columnDefinition = "int comment 'billfiletype'")
+ @ApiModelProperty(value = "png")
+ @Column(columnDefinition = "int comment 'png'")
private Integer billfiletype;
diff --git a/src/main/java/com/boying/job/YCEticketScheduled.java b/src/main/java/com/boying/job/YCEticketScheduled.java
new file mode 100644
index 0000000..0c390fd
--- /dev/null
+++ b/src/main/java/com/boying/job/YCEticketScheduled.java
@@ -0,0 +1,127 @@
+package com.boying.job;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.boying.common.ReturnData;
+import com.boying.common.SystemConfigProperties;
+import com.boying.entity.EticketFile;
+import com.boying.entity.FileInfo;
+import com.boying.entity.OrderRecord;
+import com.boying.service.FileInfoService;
+import com.boying.service.OrderRecordService;
+import com.boying.util.FileUtil;
+import com.boying.util.HTTPEntityUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Component;
+import org.springframework.web.client.RestTemplate;
+
+import java.io.BufferedWriter;
+import java.io.FileWriter;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author kdq
+ * @version 1.0.0
+ * @ClassName YCEticketScheduled.java
+ * @Description TODO
+ * @createTime 2023骞�04鏈�23鏃� 10:46:00
+ */
+@Slf4j
+@Component
+public class YCEticketScheduled {
+ @Autowired
+ private OrderRecordService orderRecordService;
+ @Autowired
+ private FileInfoService fileInfoService;
+ @Autowired
+ private SystemConfigProperties systemConfigProperties;
+ private Boolean taskFlag = false;
+
+ //@Scheduled(cron = "0 0/1 * * * ?")
+ public void execute() throws Exception {
+ if (taskFlag == true) {
+ System.out.println("姝e湪杩愯锛屽己鍒堕��鍑�-------銆�");
+ return;
+ }
+ QueryWrapper<OrderRecord> wrapper = new QueryWrapper<>();
+ wrapper.lambda()
+ .eq(OrderRecord::getTicketStatus, 2)
+ .isNotNull(OrderRecord::getEinvoicecode)
+ .orderByDesc(OrderRecord::getCreateTime);
+ List<OrderRecord> list = orderRecordService.list(wrapper);
+ if (list.size() > 0) {
+ if (list.size() > 50) {
+ list = list.subList(0, 49);
+ }
+ //寮�鍙栧彂绁�
+ for (OrderRecord orderRecord : list) {
+ System.out.println("姝e湪鐢宠寮�绁ㄦ枃浠讹細" + orderRecord);
+ doTicket(orderRecord);
+ }
+ }
+ taskFlag = false;
+ }
+
+ public void doTicket(OrderRecord orderRecord){
+ String urlIp = systemConfigProperties.getIp4();
+ String urlRoad = systemConfigProperties.getGETEINVOICEBYBIZCODE();
+ Map<String,Object> map1 = new HashMap<>();
+ map1.put("einvoicecode", orderRecord.getEinvoicecode());
+ map1.put("einvoicenumber",orderRecord.getEinvoicenumber());
+ map1.put("bizcode", orderRecord.getBizCode());
+ map1.put("randomnumber", orderRecord.getRandomnumber());
+ map1.put("billfiletype",1);
+ SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd_HH_mm_ss");
+ String txt = sdf3.format(new Date())+"鐢宠绁ㄦ嵁鏂囦欢锛�"+map1+",\n";
+ RestTemplate restTemplate = new RestTemplate();
+ ResponseEntity<ReturnData> entity = restTemplate.postForEntity(urlIp+urlRoad, HTTPEntityUtil.setEntity(map1), ReturnData.class);
+ if(entity.getBody().getCode() == 1){
+ System.out.println(entity.getBody());
+ txt += entity.getBody()+",\n";
+ Object o1 = entity.getBody().getData().get(0);
+ String s1 = JSON.toJSONString(o1);
+ EticketFile eticketFile = JSONObject.parseObject(s1, EticketFile.class);
+ System.out.println(eticketFile);
+ txt += eticketFile+"\n";
+ FileInfo fileInfo = FileUtil.generateBase64StringToFile(eticketFile.getEinvoicefile(), 1,1);
+ if(fileInfo != null){
+ System.out.println(fileInfo);
+ fileInfoService.saveOrUpdate(fileInfo);
+ orderRecord.setFileId(fileInfo.getId());
+ orderRecord.setTicketStatus(1);
+ orderRecordService.saveOrUpdate(orderRecord);
+ txt += fileInfo+"\n";
+ writeTxt(txt);
+ }
+ }else {
+ System.out.println(entity.getBody());
+ txt += "鏌ヨ鏈夎锛�"+entity.getBody()+",\n";
+ writeTxt(txt);
+
+ }
+ }
+
+ private void writeTxt( String txt)
+ {
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
+ try
+ {
+ FileWriter f = new FileWriter(systemConfigProperties.getLogPath()+"鑾峰彇寮�绁ㄦ枃浠舵棩蹇�"+sdf.format(new Date())+".txt",true);
+ BufferedWriter bw=new BufferedWriter(f);
+ bw.write(txt);
+ bw.newLine();
+ bw.close();
+ }
+ catch(Exception e)
+ {
+ System.out.println("鎵撳嵃閿欒");
+ }
+ }
+}
diff --git a/src/main/java/com/boying/job/YCGetEticketScheduled.java b/src/main/java/com/boying/job/YCGetEticketScheduled.java
new file mode 100644
index 0000000..8c35dcd
--- /dev/null
+++ b/src/main/java/com/boying/job/YCGetEticketScheduled.java
@@ -0,0 +1,156 @@
+package com.boying.job;
+
+import cn.hutool.core.date.DateUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.TypeReference;
+import com.alibaba.fastjson.serializer.SerializerFeature;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.boying.common.ReturnData;
+import com.boying.common.SystemConfigProperties;
+import com.boying.entity.*;
+import com.boying.service.FileInfoService;
+import com.boying.service.OrderRecordService;
+import com.boying.util.FileUtil;
+import com.boying.util.HTTPEntityUtil;
+import com.google.gson.Gson;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Component;
+import org.springframework.web.client.RestTemplate;
+
+import java.io.BufferedWriter;
+import java.io.FileWriter;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+@Slf4j
+@Component
+public class YCGetEticketScheduled {
+
+ @Autowired
+ private OrderRecordService orderRecordService;
+ @Autowired
+ private FileInfoService fileInfoService;
+ @Autowired
+ private SystemConfigProperties systemConfigProperties;
+ private Boolean taskFlag = false;
+
+ //@Scheduled(cron = "0 0/1 * * * ?")
+ public void execute() throws Exception {
+ if (taskFlag == true) {
+ System.out.println("姝e湪杩愯锛屽己鍒堕��鍑�-------銆�");
+ return;
+ }
+ QueryWrapper<OrderRecord> wrapper = new QueryWrapper<>();
+ wrapper.lambda()
+ .eq(OrderRecord::getTicketStatus, 2)
+ .orderByDesc(OrderRecord::getCreateTime);
+ List<OrderRecord> list = orderRecordService.list(wrapper);
+ if (list.size() > 0) {
+ if (list.size() > 50) {
+ list = list.subList(0, 49);
+ }
+ //寮�鍙栧彂绁�
+ for (OrderRecord orderRecord : list) {
+ System.out.println("姝e湪鐢宠寮�绁細" + orderRecord);
+ doTicket(orderRecord);
+ }
+ }
+ taskFlag = false;
+
+ }
+
+ public void doTicket(OrderRecord orderRecord){
+ String urlIp = systemConfigProperties.getIp4();
+ String urlRoad = systemConfigProperties.getDIRECTMKOTEINVOICE();
+ try {
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+ SimpleDateFormat sdf2 = new SimpleDateFormat("hh:mm:ss");
+ String format = sdf.format(new Date());
+ String format2 = sdf2.format(new Date());
+ String idStr = orderRecord.getId()+"";
+ String dateStr = DateUtil.currentSeconds()+"";
+ String l = idStr + dateStr;
+
+ List< DirectTicket.info> infos = new ArrayList<>();
+ //寮�绁ㄧ敵璇�
+ DirectTicket.info info = new DirectTicket.info();
+ info.setOrdernum(1);
+ info.setAmt(orderRecord.getMoney());
+ info.setAmount(1);
+ info.setIncitemcode("072101");
+ info.setIncitemname("鍋滆溅娉婁綅鍙婂叕鍏卞仠杞﹀満绛夋湁鍋夸娇鐢ㄦ敹鍏�");
+ infos.add(info);
+ //list杞琷son
+ Gson gson = new Gson();
+ String json = gson.toJson(infos);
+
+ DirectTicket directTicket = new DirectTicket();
+ directTicket.setBizcode(l);
+ directTicket.setIssuedate(format);
+ directTicket.setIssuetime(format2);
+ directTicket.setPayerpartytype("1");
+ directTicket.setPayer(orderRecord.getCarNo());
+ directTicket.setAmt(orderRecord.getMoney());
+ directTicket.setUsername("寮犲▏");
+ directTicket.setChecker("涔斿畞");
+ directTicket.setPayinfo(json);
+ directTicket.setState(1);
+
+ String jsonStr = JSON.toJSONString(directTicket, SerializerFeature.WriteDateUseDateFormat);
+ Map<String, Object> map = JSON.parseObject(jsonStr, new TypeReference<Map<String, Object>>() {});
+ RestTemplate restTemplate = new RestTemplate();
+ ResponseEntity<ReturnData> entity = restTemplate.postForEntity(urlIp+urlRoad, HTTPEntityUtil.setEntity(map), ReturnData.class);
+ SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd_HH_mm_ss");
+ String txt = sdf3.format(new Date())+"鐢宠寮�绁ㄥ疄浣撲负锛�"+directTicket+",\n";
+ txt += map+",\n";
+ if(entity.getBody().getCode() ==1 ){
+ //鐢宠鎴愬姛锛屽幓鑾峰彇寮�绁ㄦ枃浠�
+ //System.out.println(entity.getBody());
+ txt += entity.getBody()+",\n";
+ Object o = entity.getBody().getData().get(0);
+ String s = JSON.toJSONString(o);
+ Map<String,Object> mapTypes = (Map)JSON.parse(s);
+ orderRecord.setEinvoicecode((String) mapTypes.get("einvoicecode"));
+ orderRecord.setEinvoicenumber((String) mapTypes.get("einvoicenumber"));
+ orderRecord.setRandomnumber((String) mapTypes.get("randomnumber"));
+ orderRecord.setEinvoiceid((String) mapTypes.get("einvoiceid"));
+ orderRecord.setEinvoicefilename((String) mapTypes.get("einvoicefilename"));
+ orderRecord.setBillfiletype(1);
+
+ txt += orderRecord+",\n";
+ writeTxt(txt);
+ orderRecordService.saveOrUpdate(orderRecord);
+ }else {
+ // System.out.println(entity.getBody());
+ txt += entity.getBody()+",\n";
+ writeTxt(txt);
+ }
+ }catch (Exception e){
+ System.out.println(orderRecord.getPayCode()+"鐢宠寮�绁ㄥ紓甯�");
+ e.printStackTrace();
+ }
+ }
+
+ private void writeTxt( String txt)
+ {
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
+ try
+ {
+ FileWriter f = new FileWriter(systemConfigProperties.getLogPath()+"鐢宠寮�绁ㄦ枃浠舵棩蹇�"+sdf.format(new Date())+".txt",true);
+ BufferedWriter bw=new BufferedWriter(f);
+ bw.write(txt);
+ bw.newLine();
+ bw.close();
+ }
+ catch(Exception e)
+ {
+ System.out.println("鎵撳嵃閿欒");
+ }
+ }
+
+}
+
+
--
Gitblit v1.9.1