From 34f25cd0d81ed0ff880a0c3e8b0bde636cf958bb Mon Sep 17 00:00:00 2001 From: yishiqihuasheng <1191093413@qq.com> Date: Tue, 11 Apr 2023 13:30:31 +0800 Subject: [PATCH] =?UTF-8?q?=E6=BC=B1=E7=8E=89=E8=BF=9C=E5=BE=97=E5=8F=96?= =?UTF-8?q?=E6=95=B0=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/yuande/YuandeInvoiceFormDTO.java | 65 ++++++ .../invoice/domain/yuande/CorpBody.java | 27 +++ .../domain/yuande/Invoiceformitem.java | 47 +++++ .../mapper/yuande/InvoiceFormItemMapper.java | 31 +++ .../mapper/yuande/InvoiceFormMapper.java | 49 +++++ .../impl/yuande/InvoiceFormServiceImpl.java | 195 ++++++++++++++++++ .../service/yuande/IInvoiceFormService.java | 36 ++++ .../yuande/YuanDeInformPushShuYuTask.java | 128 ++++++++++++ .../invoice/utils/yuande/EntityToMap.java | 25 +++ .../invoice/yuande/InvoiceFormItemMapper.xml | 35 ++++ .../invoice/yuande/InvoiceFormMapper.xml | 143 +++++++++++++ 11 files changed, 781 insertions(+) create mode 100644 jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/yuande/YuandeInvoiceFormDTO.java create mode 100644 jianshui-invoice/src/main/java/com/jianshui/invoice/domain/yuande/CorpBody.java create mode 100644 jianshui-invoice/src/main/java/com/jianshui/invoice/domain/yuande/Invoiceformitem.java create mode 100644 jianshui-invoice/src/main/java/com/jianshui/invoice/mapper/yuande/InvoiceFormItemMapper.java create mode 100644 jianshui-invoice/src/main/java/com/jianshui/invoice/mapper/yuande/InvoiceFormMapper.java create mode 100644 jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/yuande/InvoiceFormServiceImpl.java create mode 100644 jianshui-invoice/src/main/java/com/jianshui/invoice/service/yuande/IInvoiceFormService.java create mode 100644 jianshui-invoice/src/main/java/com/jianshui/invoice/task/yuande/YuanDeInformPushShuYuTask.java create mode 100644 jianshui-invoice/src/main/java/com/jianshui/invoice/utils/yuande/EntityToMap.java create mode 100644 jianshui-invoice/src/main/resources/mapper/invoice/yuande/InvoiceFormItemMapper.xml create mode 100644 jianshui-invoice/src/main/resources/mapper/invoice/yuande/InvoiceFormMapper.xml diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/yuande/YuandeInvoiceFormDTO.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/yuande/YuandeInvoiceFormDTO.java new file mode 100644 index 0000000..1001827 --- /dev/null +++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/yuande/YuandeInvoiceFormDTO.java @@ -0,0 +1,65 @@ +package com.jianshui.invoice.domain.dto.yuande; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.jianshui.invoice.domain.yuande.Invoiceformitem; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +@Data +public class YuandeInvoiceFormDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + //记录Id + private String id; + + //开票人(固定值) + private String[] owner = {"FSUID_5DCF10DE85AA29CF6ECF414C2F22F669"}; + + //对象名称(固定值) + private String dataObjectApiName = "Invoiceform__c"; + + //客户名称 + private String customer__c; + + //订单编号 + private String salesorderid__c; + + //发票抬头 + private String fptt__c; + + //开户银行 + private String fkdwkhyh__c; + + //银行账号 + private String fkdwyhzh__c; + + //地址 + private String fkdwdz__c; + + //电话 + private String fkdwdh__c; + + //税号 + private String tyshxydm__c; + + @JsonFormat(pattern = "yyyy-MM-dd") + //开票日期 + private Date kprq__c; + + //发票号码 + private String fphm__c; + + //备注 + private String field_91Rds__c; + + //税率:百分比暂时 + private BigDecimal taxrate__c; + + //关联明细表 + private List invoiceformitems; +} diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/yuande/CorpBody.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/yuande/CorpBody.java new file mode 100644 index 0000000..f970fe7 --- /dev/null +++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/yuande/CorpBody.java @@ -0,0 +1,27 @@ +package com.jianshui.invoice.domain.yuande; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class CorpBody implements Serializable { + + private static final long serialVersionUID = 1L; + /** 企业应用访问公司合法性凭证 */ + private String corpAccessToken; + + /** 开放平台派发的公司帐号 */ + private String corpId; + + /** 过期时间 */ + private String expiresIn; + + /** 返回码 */ + private String errorCode; + + /** 错误信息提示 */ + private String errorMessage; + + private String traceId; +} diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/yuande/Invoiceformitem.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/yuande/Invoiceformitem.java new file mode 100644 index 0000000..12259ca --- /dev/null +++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/yuande/Invoiceformitem.java @@ -0,0 +1,47 @@ +package com.jianshui.invoice.domain.yuande; + +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +@Data +public class Invoiceformitem implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 开票人(固定) + */ + private String owner = "FSUID_5DCF10DE85AA29CF6ECF414C2F22F669"; + + /** + * 数量 + */ + private int quantity__c; + + /** + * 开票单价 + */ + private BigDecimal price__c; + + /** + * 物料编码 + */ + private String field_E01xD__c; + + /* + * 开票单位 + */ + private String unit__c; + + // private String id; + + // private String name; + + // private String InvoiceformId; + + // private BigDecimal subTotal; + + // private String remark; +} diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/mapper/yuande/InvoiceFormItemMapper.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/mapper/yuande/InvoiceFormItemMapper.java new file mode 100644 index 0000000..a092b5f --- /dev/null +++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/mapper/yuande/InvoiceFormItemMapper.java @@ -0,0 +1,31 @@ +package com.jianshui.invoice.mapper.yuande; + +import com.jianshui.invoice.domain.yuande.Invoiceformitem; + +import java.util.List; + +/*/** + * @Author 一十七画生 + * @Description 查询远得库开票信息明细 + * @Date 2023/4/6 + **/ +public interface InvoiceFormItemMapper { + /*/** + * @Author 一十七画生 + * @Description + * @Date 2023/4/6 + * @Param + * @return 开票信息明细集合 + **/ + List findAllPushInfo(List ids); + + /*/** + * @Author 一十七画生 + * @Description 跟据id查询远得系统内开票信息明细 + * @Date 2023/4/7 + * @Param + * @return + **/ + List findAllPushInfoWithId(String id); + +} diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/mapper/yuande/InvoiceFormMapper.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/mapper/yuande/InvoiceFormMapper.java new file mode 100644 index 0000000..357e75b --- /dev/null +++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/mapper/yuande/InvoiceFormMapper.java @@ -0,0 +1,49 @@ +package com.jianshui.invoice.mapper.yuande; + +import com.jianshui.invoice.domain.dto.yuande.YuandeInvoiceFormDTO; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/*/** + * @Author 一十七画生 + * @Description 查询远得系统数据库开票信息表 + * @Date 2023/4/6 + **/ +public interface InvoiceFormMapper { + + /*/** + * @Author 一十七画生 + * @Description 查询总数 + * @Date 2023/4/10 + * @return + **/ + public long findTotal(@Param("date1") String date1,@Param("date2") String date2); + + /*/** + * @Author 一十七画生 + * @Description + * @Date 2023/4/6 + * @Param date1上一个日期,date2本次执行日期 + * @return 开票信息集合 + **/ + public List findInvoiceFormListWithInvoiceFromItem(@Param("date1") String date1, @Param("date2") String date2); + + /*/** + * @Author 一十七画生 + * @Description + * @Date 2023/4/6 + * @Param date1上一个日期,date2本次执行日期 + * @return 开票信息集合 + **/ + public List findInvoiceFormList(@Param("date1") String date1, @Param("date2") String date2); + + /*/** + * @Author 一十七画生 + * @Description + * @Date 2023/4/6 + * @Param date1上一个日期,date2本次执行日期 + * @return 分页查询开票信息集合 + **/ + public List findInvoiceFormByPage(@Param("date1") String date1, @Param("date2") String date2, @Param("pageSize")int pageSize, @Param("currentPage")int currentPage); +} diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/yuande/InvoiceFormServiceImpl.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/yuande/InvoiceFormServiceImpl.java new file mode 100644 index 0000000..46ffa50 --- /dev/null +++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/yuande/InvoiceFormServiceImpl.java @@ -0,0 +1,195 @@ +package com.jianshui.invoice.service.impl.yuande; + +import cn.hutool.core.map.MapUtil; +import com.alibaba.fastjson.JSONObject; +import com.jianshui.invoice.domain.dto.yuande.YuandeInvoiceFormDTO; +import com.jianshui.invoice.domain.yuande.CorpBody; +import com.jianshui.invoice.domain.yuande.Invoiceformitem; +import com.jianshui.invoice.mapper.yuande.InvoiceFormItemMapper; +import com.jianshui.invoice.mapper.yuande.InvoiceFormMapper; +import com.jianshui.invoice.service.yuande.IInvoiceFormService; +import com.jianshui.invoice.utils.yuande.EntityToMap; +import lombok.Data; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.ObjectUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.stream.Collectors; + +@Service +@Slf4j +@Data +public class InvoiceFormServiceImpl implements IInvoiceFormService { + @Autowired + private InvoiceFormMapper invoiceFormMapper; + @Autowired + private InvoiceFormItemMapper invoiceFromItemMapper; + + /** 前一天日期 */ + private static String date1; + + /** 后一天日期 */ + private static String date2; + + /** + * @Description 将所有信息封装一起 + **/ + @Override + public JSONObject getPushInfo(CorpBody corpBody) { + + //判断参数是否为空 + if (ObjectUtils.isEmpty(corpBody)){ + return null; + } + //获取日期转换器 + DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + Date date = new Date(); + //获取当天日期 + date2 = dateFormat.format(date); + //查询传输信息 + List invoiceFormList = invoiceFormMapper.findInvoiceFormList(date1,date2); + //date1转换为当天日期 + date1 = date2; + //获取所有开票信息的id集合 + List ids = invoiceFormList.stream().map(YuandeInvoiceFormDTO::getId).collect(Collectors.toList()); + //将开票信息放入objectData + Map objectData = MapUtil.newHashMap(); + objectData.put("object_data",invoiceFormList); + //查询开票信息明细 + List allPushInfo = invoiceFromItemMapper.findAllPushInfo(ids); + //将开票信息明细放入到details + Map details = MapUtil.newHashMap(); + details.put("Invoiceformitem__c",allPushInfo); + //将objectData和details放入到data中 + Map data = MapUtil.newHashMap(); + data.put("object_data",objectData); + data.put("details",details); + //将信息放入到jsonobject中 + JSONObject dataMap = new JSONObject(); + dataMap.put("corpAccessToken",corpBody.getCorpAccessToken()); + dataMap.put("corpId",corpBody.getCorpId()); + dataMap.put("currentOpenUserId","FSUID_5DCF10DE85AA29CF6ECF414C2F22F669"); + dataMap.put("data",data); + //返回结果集 + return dataMap; + } + + /** + * @Description 一条开票信息分装 + **/ + @Override + public List getPushInfos(CorpBody corpBody) { + + //判断参数是否为空 + if (ObjectUtils.isEmpty(corpBody)){ + log.info("传入应用授权参数为空"); + return null; + } + //获取日期转换器 + DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + Date date = new Date(); + //获取当天日期 + date2 = dateFormat.format(date); + //查询开票信息 + List invoiceFormList = invoiceFormMapper.findInvoiceFormListWithInvoiceFromItem(date1,date2); + //date1转换为当天日期 + date1 = date2; + if (Objects.isNull(invoiceFormList)){ + log.info("查询到的开票信息表为空"); + return null; + } + //创建一个list封装返回值 + List list = new ArrayList<>(); + for (YuandeInvoiceFormDTO invoiceFromDTO : invoiceFormList) { + + //details信息封装 + HashMap details = MapUtil.newHashMap(); + details.put("Invoiceformitem__c",invoiceFromDTO.getInvoiceformitems()); + + //objectData封装 + Map objectData = EntityToMap.toMap(invoiceFromDTO); + objectData.remove("invoiceformitems"); + //data数据封装 + HashMap data = MapUtil.newHashMap(); + data.put("object_data",objectData); + data.put("details",details); + //创建返回json + JSONObject dataMap = new JSONObject(); + //添加认证信息 + dataMap.put("corpAccessToken",corpBody.getCorpAccessToken()); + dataMap.put("corpId",corpBody.getCorpId()); + dataMap.put("currentOpenUserId","FSUID_5DCF10DE85AA29CF6ECF414C2F22F669"); + dataMap.put("data",data); + + //将数据添加到集合 + list.add(dataMap); + } + + return list; + } + + /** + * @Description 分页进行封装 + **/ + @Override + public List getPushInfo(CorpBody corpBody, int pageSize) { + + //判断参数是否为空 + if (ObjectUtils.isEmpty(corpBody)){ + log.info("传入应用授权参数为空"); + return null; + } + //获取日期转换器 + DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + Date date = new Date(); + //获取当天日期 + date2 = dateFormat.format(date); + //查询信息总数 + long total = invoiceFormMapper.findTotal(date1, date2); + //计算总页数 + int pageTotal = (int) (total % pageSize == 0 ? total / pageSize:total / pageSize+1); + //当前页数 + int currentPage = 1; + //创建集合 + List list = new ArrayList<>(); + for (int i = 0; i < pageTotal; i++) { + //查询传输信息 + List invoiceFormList = invoiceFormMapper.findInvoiceFormByPage(date1,date2,pageSize,(currentPage-1)*pageSize); + //判断查询信息是否为空 + if (ObjectUtils.isEmpty(invoiceFormList)) { + log.info("查询到开票信息为空"); + return null; + } + //获取开票信息id集合 + List ids = invoiceFormList.stream().map(YuandeInvoiceFormDTO::getId).collect(Collectors.toList()); + //将开票信息放入objectData + Map objectData = MapUtil.newHashMap(); + objectData.put("object_data",invoiceFormList); + //查询开票信息明细 + List invoiceformitems = invoiceFromItemMapper.findAllPushInfo(ids); + //将开票信息明细放入到details + Map details = MapUtil.newHashMap(); + details.put("Invoiceformitem__c",invoiceformitems); + //将objectData和details放入到data中 + Map data = MapUtil.newHashMap(); + data.put("object_data",objectData); + data.put("details",details); + //将信息放入到jsonobject中 + JSONObject dataMap = new JSONObject(); + dataMap.put("corpAccessToken",corpBody.getCorpAccessToken()); + dataMap.put("corpId",corpBody.getCorpId()); + dataMap.put("currentOpenUserId","FSUID_5DCF10DE85AA29CF6ECF414C2F22F669"); + dataMap.put("data",data); + list.add(dataMap); + //当前页进入下一页 + currentPage++; + } + //date1转换为当天日期 + date1 = date2; + return list; + } +} diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/service/yuande/IInvoiceFormService.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/service/yuande/IInvoiceFormService.java new file mode 100644 index 0000000..72cf3cf --- /dev/null +++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/service/yuande/IInvoiceFormService.java @@ -0,0 +1,36 @@ +package com.jianshui.invoice.service.yuande; + + +import com.alibaba.fastjson.JSONObject; +import com.jianshui.invoice.domain.yuande.CorpBody; + +import java.util.List; + +public interface IInvoiceFormService { + /*/** + * @Author 一十七画生 + * @Description + * @Date 2023/4/6 + * @Param cropBody + * @return 封装 + **/ + JSONObject getPushInfo(CorpBody corpBody); + + /*/** + * @Author 一十七画生 + * @Description 将所需报文封装到list + * @Date 2023/4/7 + * @Param CorpBody + * @return + **/ + List getPushInfos(CorpBody corpBody); + + /*/** + * @Author 一十七画生 + * @Description 分页查询开票信息表 + * @Date 2023/4/10 + * @Param 认证授权参数,分页大小 + * @return + **/ + List getPushInfo(CorpBody corpBody, int pageSize); +} diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/task/yuande/YuanDeInformPushShuYuTask.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/task/yuande/YuanDeInformPushShuYuTask.java new file mode 100644 index 0000000..1dcee46 --- /dev/null +++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/task/yuande/YuanDeInformPushShuYuTask.java @@ -0,0 +1,128 @@ +package com.jianshui.invoice.task.yuande; + +import cn.hutool.http.HttpUtil; +import cn.hutool.json.JSONUtil; +import com.alibaba.fastjson.JSONObject; +import com.jianshui.invoice.domain.yuande.CorpBody; +import com.jianshui.invoice.service.yuande.IInvoiceFormService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.List; +import java.util.Objects; + +@Component("yuanDeInformPushShuYuTask") +@Slf4j +public class YuanDeInformPushShuYuTask { + + @Autowired + private IInvoiceFormService invoiceFormService; + + /** + * @Author 路明慧 + * @Description 将开票信息表一次性发送 + * @Date 2023/4/10 + **/ + public void infoPushAllMap(){ + //请求接口路径 + String url= "https://open.fxiaoke.com/cgi/corpAccessToken/get/V2"; + //请求参数封装 + JSONObject paramMap = new JSONObject(); + paramMap.put("appId","FSAID_131be20"); + paramMap.put("appSecret","78db04ad63c645609d0b05127fe73715"); + paramMap.put("permanentCode","C1A6DFC2DFDEC79CECC207D00658DBF3"); + //发送请求 + String respRaw = HttpUtil.createPost(url).body(paramMap.toString()).execute().body(); + //返回报文封装实体 + CorpBody corpBody = JSONUtil.toBean(respRaw, CorpBody.class); + //获取要传输的报文信息 + JSONObject pushInfo = invoiceFormService.getPushInfo(corpBody); + //调用对方接口完成信息推送 + String url1 = "https://open.fxiaoke.com/cgi/crm/custom/v2/data/create"; + HttpUtil.createPost(url1).body(pushInfo.toString()).execute().body(); + } + + /** + * @Author 路明慧 + * @Description 将开票信息表每次一条记录 + * @Date 2023/4/10 + **/ + public void infoPush(){ + log.info("开始执行推送远得数据的定时任务"); + //请求接口路径 + String url1= "https://open.fxiaoke.com/cgi/corpAccessToken/get/V2"; + //请求参数封装 + JSONObject paramMap = new JSONObject(); + paramMap.put("appId","FSAID_131be20"); + paramMap.put("appSecret","78db04ad63c645609d0b05127fe73715"); + paramMap.put("permanentCode","C1A6DFC2DFDEC79CECC207D00658DBF3"); + //发送请求 + String respRaw = HttpUtil.createPost(url1).body(paramMap.toString()).execute().body(); + //返回报文封装实体 + CorpBody corpBody = JSONUtil.toBean(respRaw, CorpBody.class); + if ("success".equals(corpBody.getErrorMessage())){ + log.info("获取应用授权成功"); + }else { + log.info("获取应用授权失败:"+corpBody.getErrorMessage()); + } + //信息传输接口 + String url2 = "https://open.fxiaoke.com/cgi/crm/custom/v2/data/create"; + //获取要传输的报文信息 + List pushInfos = invoiceFormService.getPushInfos(corpBody); + //判断参数是否为空 + if (!Objects.isNull(pushInfos)){ + for (int i = 0; i < pushInfos.size(); i++) { + //调用对方接口完成信息推送 + HttpUtil.createPost(url2).body(pushInfos.get(i).toString()).execute().body(); + try { + Thread.sleep(50); + } catch (InterruptedException e) { + e.printStackTrace(); + log.info("线程休眠异常"); + } + } + log.info("任务完成"); + } + } + + public void infoPushLimit(int pageSize){ + log.info("开始执行推送远得数据的定时任务"); + //获取应用授权的url + String url1 = "https://open.fxiaoke.com/cgi/corpAccessToken/get/V2"; + //封装认证所需要的参数 + JSONObject paramMap = new JSONObject(); + paramMap.put("appId","FSAID_131be20"); + paramMap.put("appSecret","78db04ad63c645609d0b05127fe73715"); + paramMap.put("permanentCode","C1A6DFC2DFDEC79CECC207D00658DBF3"); + //获取应用授权 + String respRaw = HttpUtil.createPost(url1).body(paramMap.toString()).execute().body(); + //反序列化为实体 + CorpBody corpBody = JSONUtil.toBean(respRaw, CorpBody.class); + if ("success".equals(corpBody.getErrorMessage())){ + log.info("获取应用授权成功"); + }else { + log.info("获取应用授权失败:"+corpBody.getErrorMessage()); + } + //获取推送信息集合 + List jsonObjects = invoiceFormService.getPushInfo(corpBody, pageSize); + //判断是否为空 + if (!jsonObjects.isEmpty()) { + log.info("任务开始执行"); + //信息传输接口 + String url2 = "https://open.fxiaoke.com/cgi/crm/custom/v2/data/create"; + for (JSONObject jsonObject: jsonObjects) { + //调用对方接口完成信息推送 + HttpUtil.createPost(url2).body(jsonObject.toString()).execute().body(); + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + e.printStackTrace(); + log.info("线程休眠异常"); + } + } + } + log.info("任务完成"); + } + +} diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/utils/yuande/EntityToMap.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/utils/yuande/EntityToMap.java new file mode 100644 index 0000000..12cc5c3 --- /dev/null +++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/utils/yuande/EntityToMap.java @@ -0,0 +1,25 @@ +package com.jianshui.invoice.utils.yuande; + +import java.lang.reflect.Field; +import java.util.HashMap; +import java.util.Map; + +public class EntityToMap { + + //将实体转化成map + public static Map toMap(Object object){ + Map map = new HashMap<>(); + for (Field field : object.getClass().getDeclaredFields()) { + try { + boolean flag = field.isAccessible(); + field.setAccessible(true); + Object o = field.get(object); + map.put(field.getName(), o); + field.setAccessible(flag); + } catch (Exception e) { + e.printStackTrace(); + } + } + return map; + } +} diff --git a/jianshui-invoice/src/main/resources/mapper/invoice/yuande/InvoiceFormItemMapper.xml b/jianshui-invoice/src/main/resources/mapper/invoice/yuande/InvoiceFormItemMapper.xml new file mode 100644 index 0000000..4d96a84 --- /dev/null +++ b/jianshui-invoice/src/main/resources/mapper/invoice/yuande/InvoiceFormItemMapper.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + diff --git a/jianshui-invoice/src/main/resources/mapper/invoice/yuande/InvoiceFormMapper.xml b/jianshui-invoice/src/main/resources/mapper/invoice/yuande/InvoiceFormMapper.xml new file mode 100644 index 0000000..e0c23c5 --- /dev/null +++ b/jianshui-invoice/src/main/resources/mapper/invoice/yuande/InvoiceFormMapper.xml @@ -0,0 +1,143 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +