From 861e646c1b91faa7a2dcb9fd2aac380e29772713 Mon Sep 17 00:00:00 2001
From: sinake <sinake1@qq.com>
Date: 星期五, 30 十月 2026 13:30:22 +0800
Subject: [PATCH] 发票管理功能
---
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceInvoice.java | 7 +++++++
ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceInvoiceServiceImpl.java | 3 +++
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonorchargeorgan.java | 4 ++--
ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonorchargeorganVO.java | 4 ++--
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceInvoiceController.java | 40 +++++++++++++++++++++++++++-------------
ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatecomporganController.java | 1 +
6 files changed, 42 insertions(+), 17 deletions(-)
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatecomporganController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatecomporganController.java
index c4cfbe3..817b176 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatecomporganController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatecomporganController.java
@@ -158,6 +158,7 @@
sd.setDel_flag(0);
ServiceDonorchargeorgan serviceDonorchargeorgan = DtoConversionUtils.sourceToTarget(serviceDonatecompletion, ServiceDonorchargeorgan.class);
serviceDonorchargeorgan.setReceiveTime(serviceDonatecompletion.getTransplanttime());
+ serviceDonorchargeorgan.setOrganState(serviceDonatecompletion.getTransplantstate()+"");
List<ServiceDonatecomporgan> serviceDonatecomporgans = serviceDonatecomporganService.queryList(sd);
if (serviceDonatecompletion.getId() == null && CollectionUtils.isEmpty(serviceDonatecomporgans)) {
i = serviceDonatecomporganService.save(serviceDonatecompletion);
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceInvoiceController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceInvoiceController.java
index f90d12f..f656021 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceInvoiceController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceInvoiceController.java
@@ -20,6 +20,8 @@
import com.ruoyi.web.controller.tool.HttpUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.ObjectUtils;
+import org.apache.commons.lang3.StringUtils;
import org.apache.http.HttpResponse;
import org.apache.http.util.EntityUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -126,7 +128,7 @@
String base64= Base64.getEncoder().encodeToString( Files.readAllBytes(filePath));
AjaxResult ajax = AjaxResult.success();
- ajax.put("OCRList", aliOCR(base64,0,0));
+ ajax.put("OCRList", aliOCR(base64,"0","0"));
return ajax;
}
@@ -134,7 +136,7 @@
* 閫氱敤涓婁紶璇锋眰
*/
@PostMapping("/uploadOCR")
- public AjaxResult uploadOCR(@RequestParam("file") MultipartFile file, @RequestParam("userId") long userId, @RequestParam("caseId") long caseId) throws Exception {
+ public AjaxResult uploadOCR(@RequestParam("file") MultipartFile file, @RequestParam("userId") String userId, @RequestParam("caseId") String caseId) throws Exception {
try {
// 涓婁紶鏂囦欢璺緞
@@ -166,32 +168,44 @@
String url = url1 + fileName;
String base64= Base64.getEncoder().encodeToString(file.getBytes());
List<Map<String,Object>> lists=aliOCR(base64,userId,caseId);
+ List<ServiceInvoice> invoiceList=new ArrayList<>();
for(Map<String,Object> row : lists){
ServiceInvoice invoice=new ServiceInvoice();
- invoice.setUserId(userId);
- invoice.setCaseId(caseId);
- invoice.setInvoiceType(row.get("type")+"");
+ if(ObjectUtils.isNotEmpty(userId)) {
+ invoice.setUserId(Long.parseLong(userId));
+ }
+ if(ObjectUtils.isNotEmpty(caseId)) {
+ invoice.setCaseId(Long.parseLong(caseId));
+ }
+ invoice.setInvoiceType(row.get("鍙戠エ鍒嗙被")+"");
invoice.setInvoiceNo(row.get("鍙戠エ鍙风爜")+"");
invoice.setOccurDate(row.get("寮�绁ㄦ棩鏈�")+"");
- invoice.setInvoiceAmount(row.get("鍙戠エ閲戦")+"");
+ invoice.setInvoiceAmount(row.get("閲戦")+"");
invoice.setSellerName(row.get("鍙楃エ鏂瑰悕绉�")+"");
invoice.setInvoiceUrl(url);
- invoice.setInvoiceName(newFilename);
+ String invoiceName=newFilename.isEmpty() ? filename : newFilename;
+ invoice.setInvoiceName(invoiceName.split(".")[0]);
invoice.setExtContent(JSON.toJSONString(row));
+ invoice.setCreateBy(userId);
+ invoice.setCreateTime(DateUtils.getNowDate());
+ invoice.setUpdateBy(userId);
+ invoice.setUpdateTime(DateUtils.getNowDate());
serviceInvoiceService.save(invoice);
+ invoiceList.add(invoice);
}
AjaxResult ajax = AjaxResult.success();
ajax.put("fileName", fileName);
ajax.put("url", url);
ajax.put("OCRList", lists);
+ ajax.put("invoiceList", invoiceList);
return ajax;
} catch (Exception e) {
return AjaxResult.error(e.getMessage());
}
}
- public List<Map<String,Object>> aliOCR(String base64,long userId,long caseId) {
+ public List<Map<String,Object>> aliOCR(String base64,String userId,String caseId) {
String host = "https://mixedmulti.market.alicloudapi.com";
String path = "/ocrservice/mixedMultiInvoice";
String method = "POST";
@@ -214,18 +228,18 @@
Map<String,Object> tempList=new HashMap<>();
JSONObject rowObject=(JSONObject)row;
- tempList.put("鍙戠エ鍒嗙被",rowObject.getString("type"));
+
JSONObject result=((JSONObject)rowObject.get("result")).getJSONObject("data");
for(Map.Entry<String, Object> entry : result.entrySet()){
tempList.put(entry.getKey(),entry.getValue());
}
- if(rowObject.getString("type").equals("閾惰鎵垮厬姹囩エ")){
+ if(rowObject.getString("鍙戠エ鍒嗙被").equals("閾惰鎵垮厬姹囩エ")){
BigDecimal totalAmount= ChineseUtils.chineseToNumber(result.getString("绁ㄦ嵁閲戦澶у啓"));
- tempList.put("鍙戠エ閲戦",totalAmount);
+ tempList.put("閲戦",totalAmount);
}
- if(rowObject.getString("type").equals("鐏溅绁�")){
- tempList.put("鍙戠エ閲戦",result.getString("绁ㄤ环"));
+ if(rowObject.getString("鍙戠エ鍒嗙被").equals("鐏溅绁�")){
+ tempList.put("閲戦",result.getString("绁ㄤ环"));
}
lists.add(tempList);
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonorchargeorgan.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonorchargeorgan.java
index 2392cc7..b237339 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonorchargeorgan.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonorchargeorgan.java
@@ -218,8 +218,8 @@
/**
* 鍣ㄥ畼鐘舵��
*/
- @ApiModelProperty("鍣ㄧ鐘舵�侊細1绉绘銆�2澶卞姛銆�3搴撳瓨銆�4宸茬Щ妞嶃��5寮冪敤銆�6鐩寸郴鍏嶉櫎銆�7涓嶈壇浜嬩欢")
- @Excel(name = "鍣ㄧ鐘舵�侊細1绉绘銆�2澶卞姛銆�3搴撳瓨銆�4宸茬Щ妞嶃��5寮冪敤銆�6鐩寸郴鍏嶉櫎銆�7涓嶈壇浜嬩欢")
+ @ApiModelProperty("鍣ㄧ鐘舵�侊細1绉绘銆�2寮冪敤銆�3搴撳瓨銆�4澶卞姛銆�5鐩寸郴鍏嶉櫎銆�6涓嶈壇浜嬩欢")
+ @Excel(name = "鍣ㄧ鐘舵�侊細1绉绘銆�2寮冪敤銆�3搴撳瓨銆�4澶卞姛銆�5鐩寸郴鍏嶉櫎銆�6涓嶈壇浜嬩欢")
private String organState;
/**
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonorchargeorganVO.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonorchargeorganVO.java
index 6dfda1a..9ec773e 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonorchargeorganVO.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceDonorchargeorganVO.java
@@ -191,8 +191,8 @@
/**
* 鍣ㄥ畼鐘舵��
*/
- @ApiModelProperty("鍣ㄧ鐘舵�侊細1绉绘銆�2澶卞姛銆�3搴撳瓨銆�4宸茬Щ妞嶃��5寮冪敤銆�6鐩寸郴鍏嶉櫎銆�7涓嶈壇浜嬩欢")
- @Excel(name = "鍣ㄧ鐘舵�侊細1绉绘銆�2澶卞姛銆�3搴撳瓨銆�4宸茬Щ妞嶃��5寮冪敤銆�6鐩寸郴鍏嶉櫎銆�7涓嶈壇浜嬩欢")
+ @ApiModelProperty("鍣ㄧ鐘舵�侊細1绉绘銆�2寮冪敤銆�3搴撳瓨銆�4澶卞姛銆�5鐩寸郴鍏嶉櫎銆�6涓嶈壇浜嬩欢")
+ @Excel(name = "鍣ㄧ鐘舵�侊細1绉绘銆�2寮冪敤銆�3搴撳瓨銆�4澶卞姛銆�5鐩寸郴鍏嶉櫎銆�6涓嶈壇浜嬩欢")
private String organState;
/**
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceInvoice.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceInvoice.java
index 7233fd4..aafc12c 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceInvoice.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/ServiceInvoice.java
@@ -112,6 +112,13 @@
private String invoiceUrl;
/**
+ * 鍙戠エ鎶ラ攢鐘舵�侊細0鏈姤閿� 1宸叉姤閿�
+ */
+ @ApiModelProperty("鍙戠エ鎶ラ攢鐘舵�侊細0鏈姤閿� 1宸叉姤閿�")
+ @Excel(name = "鍙戠エ鎶ラ攢鐘舵��", readConverterExp = "0=鏈姤閿�,1=宸叉姤閿�")
+ private String reimburseState;
+
+ /**
* 鎵╁睍鍐呭锛坖son瀛橈級
*/
@ApiModelProperty("鎵╁睍鍐呭锛坖son瀛橈級")
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceInvoiceServiceImpl.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceInvoiceServiceImpl.java
index a5539db..334b47c 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceInvoiceServiceImpl.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/ServiceInvoiceServiceImpl.java
@@ -65,6 +65,9 @@
if (StringUtils.isNotBlank(serviceInvoice.getRemark())) {
wrappers.like(ServiceInvoice::getRemark, serviceInvoice.getRemark());
}
+ if (StringUtils.isNotBlank(serviceInvoice.getReimburseState())) {
+ wrappers.eq(ServiceInvoice::getReimburseState, serviceInvoice.getReimburseState());
+ }
wrappers.orderByDesc(ServiceInvoice::getCreateTime).orderByDesc(ServiceInvoice::getId);
return this.list(wrappers);
}
--
Gitblit v1.9.3