Skip to content
Snippets Groups Projects

Jiangxiaoming

Merged jiangxiaoming requested to merge jiangxiaoming into dev
Compare and
5 files
+ 80
0
Compare changes
  • Side-by-side
  • Inline
Files
5
@@ -11,6 +11,7 @@ import com.seasky.core.common.ResponseCode;
import com.seasky.core.exception.DataBusinessException;
import com.seasky.core.util.ExceptionUtil;
import com.seasky.ledgerincome.application.command.api.EntryCommandService;
import com.seasky.ledgerincome.application.command.api.FileCommandService;
import com.seasky.ledgerincome.application.command.assembler.InvoiceAssembler;
import com.seasky.ledgerincome.application.command.assembler.VchDetailAssembler;
import com.seasky.ledgerincome.application.command.dto.CompleteIncomeCmd;
@@ -88,6 +89,8 @@ public class EntryCommandServiceImpl implements EntryCommandService {
IncomeQueryService incomeQueryService;
@Autowired
FileQueryService fileQueryService;
@Autowired
FileCommandService fileCommandService;
@Resource
PropertyUtil propertyUtil;
//未分配、待认领、需要补充但未提交补充信息的这三部分回单可以暂存入账
@@ -732,6 +735,15 @@ public class EntryCommandServiceImpl implements EntryCommandService {
List<String> fileIds = fileOutList.stream().map(t -> {
return t.getFileId();
}).collect(Collectors.toList());
//查询银行回单
//根据回单id查询回单号
List<String> billNos = incomeQueryService.queryBillNos(incomeIds);
List<String> list = queryFileIdsByBillNos(billNos, userInfoUtil.getLoginInfoOut().getUserName());
if(list.size()>0){
//添加银行回单fileId
fileIds.addAll(list);
}
String fileUrl = propertyUtil.getFileUrl();
String fileKey = propertyUtil.getFileKey();
String fileSecre = propertyUtil.getFileSecre();
@@ -775,6 +787,7 @@ public class EntryCommandServiceImpl implements EntryCommandService {
fileList.add(bytesArr);
});
}
byte[][] filesArray = fileList.toArray(new byte[fileList.size()][]);
byte[] bytes = FileUtil.mergePdfFilesWithBytes(filesArray, batchId);
response.reset();
@@ -794,6 +807,55 @@ public class EntryCommandServiceImpl implements EntryCommandService {
}
}
private List<String> queryFileIdsByBillNos(List<String> billNos,String code) {
List<String> fileIds = new ArrayList<>();
String fileUrl = propertyUtil.getFileUrl();
String fileKey = propertyUtil.getFileKey();
String fileSecre = propertyUtil.getFileSecre();
if (Objects.isNull(fileUrl)) throw ExceptionUtil.getException(null, "请配置影像库接口地址fileUrl!");
if (Objects.isNull(fileKey)) throw ExceptionUtil.getException(null, "请配置影像库接口fileKey!");
if (Objects.isNull(fileSecre)) throw ExceptionUtil.getException(null, "请配置影像库接口fileSecre!");
String url = fileUrl + "/FileInfo/QueryFileInfo";
Map<String, Object> map = new HashMap<>();
LocalDateTime currentDate = LocalDateTime.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd-HH");
String formattedDate = currentDate.plusHours(1).format(formatter);
String token = fileKey + "|" + formattedDate + "|" + fileSecre;
map.put("Token", StringToMd5Hash.toMD5(token));
map.put("Key", fileKey);
map.put("UserName", code);
List<Map<String, Object>> filemap = new ArrayList<>();
for (String billNo : billNos) {
Map<String, Object> m = new HashMap<>();
m.put("SystemID", "77777777-7777-7777-7777-777777777777");
m.put("BusinessType", "银行回单");
m.put("BusinessCode", billNo);
filemap.add(m);
}
map.put("Data", filemap);
String ff = HttpClientUtil.doPostJson(url, JSONObject.toJSONString(map));
JSONObject obj1 = JSONObject.parseObject(ff);
if (obj1.getString("isSuccess") == null || !"true".equals(obj1.getString("isSuccess"))) {
throw new DataBusinessException(
Error.builder()
.message(obj1.getString("errorMessage") == null ? "查询银行回单失败!" : obj1.getString("errorMessage"))
.responseCode(ResponseCode.DATA_ACCESS_EXCEPTION)
.build()
);
}
JSONArray obj2 = obj1.getJSONArray("data");
if (obj2.size() == 0){
return fileIds;
}
for (int i = 0; i < obj2.size(); i++){
JSONObject obj3 = obj2.getJSONObject(i).getJSONObject("fileContent");
String fileId = obj3.getString("fileID");
fileIds.add(fileId);
}
return fileIds;
}
private void push(List<IncomeAggregate> incomeAggregates,List<VchDetailEntity> detailList,String smallTitle,boolean voucher,Map<Long,IncomeAggregate> map) {
UserInfoOut infoOut = userInfoUtil.getLoginInfoOut();
String userName = infoOut.getUserName();