|
@@ -667,66 +667,89 @@ public class FinanceInvoiceService {
|
|
|
@Transactional(readOnly = false)
|
|
|
public void getFinanceInvoiceList() throws Exception {
|
|
|
Object financeInvoiceList = financeInvoiceRequest.getFinanceInvoiceList();
|
|
|
- if (Objects.nonNull(financeInvoiceList)){
|
|
|
+
|
|
|
+ if (Objects.nonNull(financeInvoiceList)) {
|
|
|
List<Map<String, Object>> financeInvoiceListMap = JSONObject.parseObject((String) financeInvoiceList, List.class);
|
|
|
+
|
|
|
if (financeInvoiceListMap != null && !financeInvoiceListMap.isEmpty()) {
|
|
|
for (Map<String, Object> reim : financeInvoiceListMap) {
|
|
|
- WorkInvoice workInvoice = new WorkInvoice();
|
|
|
- workInvoice = convertFinanceInsert(reim); // 格式转换
|
|
|
- //保存信息
|
|
|
- if (workInvoice != null && StringUtils.isNotBlank(workInvoice.getId())){
|
|
|
+ WorkInvoice workInvoice = convertFinanceInsert(reim); // 格式转换
|
|
|
+
|
|
|
+ // 保存信息
|
|
|
+ if (workInvoice != null && StringUtils.isNotBlank(workInvoice.getId())) {
|
|
|
WorkInvoice invoice = workInvoiceDao.getById(workInvoice.getId());
|
|
|
- if (invoice != null){
|
|
|
+ if (invoice != null) {
|
|
|
workInvoiceDao.update(workInvoice);
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
workInvoiceDao.insert(workInvoice);
|
|
|
}
|
|
|
|
|
|
- //附件处理
|
|
|
- Workattachment workattachment = new Workattachment();
|
|
|
- workattachment.setAttachmentId(workInvoice.getId());
|
|
|
- workattachment.setAttachmentFlag("115");
|
|
|
- if (workInvoice.getCreateBy() != null){
|
|
|
- workattachment.setAttachmentUser(workInvoice.getCreateBy().getId());
|
|
|
- }
|
|
|
- workattachmentService.delete(workattachment);
|
|
|
- if (workInvoice.getWorkAttachments() != null && workInvoice.getWorkAttachments().size()>0){
|
|
|
- for (Workattachment workAttachment : workInvoice.getWorkAttachments()) {
|
|
|
- if (workAttachment != null){
|
|
|
- workattachmentService.insertOnWorkAttachment(workAttachment);
|
|
|
- }
|
|
|
+ // 附件处理
|
|
|
+ handleAttachments(workInvoice);
|
|
|
|
|
|
- }
|
|
|
- }
|
|
|
+ // 开票明细处理
|
|
|
+ handleInvoiceDetails(workInvoice);
|
|
|
|
|
|
- //开票明细处理
|
|
|
- workInvoiceDetailDao.deleteByInvoiceId(workInvoice.getId());
|
|
|
- if (workInvoice.getWorkAccountList()!= null && workInvoice.getWorkAccountList().size()>0){
|
|
|
- for (WorkInvoiceDetail invoiceDetail : workInvoice.getWorkAccountList()) {
|
|
|
- if(invoiceDetail != null){
|
|
|
- workInvoiceDetailDao.insert(invoiceDetail);
|
|
|
+ // 开票与项目关系处理
|
|
|
+ handleInvoiceCloudRelations(workInvoice);
|
|
|
+ }
|
|
|
|
|
|
- }
|
|
|
+ // 清理对象,帮助垃圾回收
|
|
|
+ workInvoice = null; // 显式将对象置为 null,便于 GC 回收
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+// System.gc();
|
|
|
|
|
|
- }
|
|
|
- }
|
|
|
+ }
|
|
|
|
|
|
- //开票与项目关系处理
|
|
|
- workInvoiceCloudDao.deleteByInvoiceId(workInvoice.getId());
|
|
|
- if (workInvoice.getWorkInvoiceCloudList() != null && workInvoice.getWorkInvoiceCloudList().size()>0){
|
|
|
- for (WorkInvoiceCloud workInvoiceCloud : workInvoice.getWorkInvoiceCloudList()) {
|
|
|
- if (workInvoiceCloud != null){
|
|
|
- workInvoiceCloudDao.insert(workInvoiceCloud);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ // 处理附件
|
|
|
+ public void handleAttachments(WorkInvoice workInvoice) {
|
|
|
+ Workattachment workattachment = new Workattachment();
|
|
|
+ workattachment.setAttachmentId(workInvoice.getId());
|
|
|
+ workattachment.setAttachmentFlag("115");
|
|
|
+
|
|
|
+ if (workInvoice.getCreateBy() != null) {
|
|
|
+ workattachment.setAttachmentUser(workInvoice.getCreateBy().getId());
|
|
|
+ }
|
|
|
|
|
|
+ workattachmentService.delete(workattachment); // 删除现有附件
|
|
|
|
|
|
+ if (workInvoice.getWorkAttachments() != null && workInvoice.getWorkAttachments().size() >0) {
|
|
|
+ for (Workattachment workAttachment : workInvoice.getWorkAttachments()) {
|
|
|
+ if (workAttachment != null) {
|
|
|
+ workattachmentService.insertOnWorkAttachment(workAttachment);
|
|
|
}
|
|
|
}
|
|
|
+ }
|
|
|
+ workattachment = null;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 处理开票明细
|
|
|
+ public void handleInvoiceDetails(WorkInvoice workInvoice) {
|
|
|
+ workInvoiceDetailDao.deleteByInvoiceId(workInvoice.getId());
|
|
|
|
|
|
+ if (workInvoice.getWorkAccountList() != null && !workInvoice.getWorkAccountList().isEmpty()) {
|
|
|
+ for (WorkInvoiceDetail invoiceDetail : workInvoice.getWorkAccountList()) {
|
|
|
+ if (invoiceDetail != null) {
|
|
|
+ workInvoiceDetailDao.insert(invoiceDetail);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
+ workInvoice.getWorkAccountList().clear();
|
|
|
+ }
|
|
|
+
|
|
|
+ // 处理开票与项目关系
|
|
|
+ public void handleInvoiceCloudRelations(WorkInvoice workInvoice) {
|
|
|
+ workInvoiceCloudDao.deleteByInvoiceId(workInvoice.getId());
|
|
|
|
|
|
+ if (workInvoice.getWorkInvoiceCloudList() != null && !workInvoice.getWorkInvoiceCloudList().isEmpty()) {
|
|
|
+ for (WorkInvoiceCloud workInvoiceCloud : workInvoice.getWorkInvoiceCloudList()) {
|
|
|
+ if (workInvoiceCloud != null) {
|
|
|
+ workInvoiceCloudDao.insert(workInvoiceCloud);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ workInvoice.getWorkInvoiceCloudList().clear();
|
|
|
}
|
|
|
}
|