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