Prechádzať zdrojové kódy

苏州分公司发票数据同步调整

sangwenwei 7 mesiacov pred
rodič
commit
724d9fae22

+ 2 - 2
src/main/java/com/jeeplus/modules/centerservice/config/RestTemplateConfig.java

@@ -24,8 +24,8 @@ public class RestTemplateConfig {
     @Bean
     public ClientHttpRequestFactory simpleClientHttpRequestFactory() {
         SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
-        factory.setConnectTimeout(15000); // 连接超时时间 (两端连接时间) 15秒
-        factory.setReadTimeout(50000); // 访问超时时间 (建立连接后从另一端读取资源所用时间) 5秒
+        factory.setConnectTimeout(150000); // 连接超时时间 (两端连接时间) 15秒
+        factory.setReadTimeout(5000000); // 访问超时时间 (建立连接后从另一端读取资源所用时间) 5秒
         // 设置代理
         //factory.setProxy(null);
         return factory;

+ 59 - 30
src/main/java/com/jeeplus/modules/szCenterservice/service/szCloud/FinanceInvoiceService.java

@@ -396,8 +396,11 @@ public class FinanceInvoiceService {
                         projectRelation.setId(baseMap.get("id").toString());
                         projectRelation.setInvoiceId(result.getId());
                         projectRelation.setDelFlag("0");
-                        projectRelation.setCreateBy(result.getCreateBy());
-                        projectRelation.setUpdateBy(result.getUpdateBy());
+                        if (result.getCreateBy() != null){
+                            projectRelation.setCreateBy(result.getCreateBy());
+                            projectRelation.setUpdateBy(result.getUpdateBy());
+                        }
+
                         projectRelation.setCreateDate(result.getCreateDate());
                         projectRelation.setUpdateDate(result.getUpdateDate());
                         if (null != result.getOffice()){
@@ -542,8 +545,11 @@ public class FinanceInvoiceService {
                         workInvoiceDetail.setId(baseMap.get("id").toString());
                         workInvoiceDetail.setInvoiceId(result.getId());
                         workInvoiceDetail.setDelFlag("0");
-                        workInvoiceDetail.setCreateBy(result.getCreateBy());
-                        workInvoiceDetail.setUpdateBy(result.getUpdateBy());
+                        if (result.getCreateBy() != null){
+                            workInvoiceDetail.setCreateBy(result.getCreateBy());
+                            workInvoiceDetail.setUpdateBy(result.getUpdateBy());
+                        }
+
                         workInvoiceDetail.setCreateDate(result.getCreateDate());
                         workInvoiceDetail.setUpdateDate(result.getUpdateDate());
                         if (null != result.getOffice()){
@@ -624,6 +630,7 @@ public class FinanceInvoiceService {
     /**
      * 将szCloud中的发票数据保存到数据库中
      */
+    @Transactional(readOnly = false)
     public void getFinanceInvoiceList() throws Exception {
         Object financeInvoiceList = financeInvoiceRequest.getFinanceInvoiceList();
         if (Objects.nonNull(financeInvoiceList)){
@@ -633,37 +640,59 @@ public class FinanceInvoiceService {
                     WorkInvoice workInvoice = new WorkInvoice();
                     workInvoice = convertFinanceInsert(reim); // 格式转换
                     //保存信息
-                    WorkInvoice invoice = workInvoiceDao.getById(workInvoice.getId());
-                    if (invoice != null){
-                        workInvoiceDao.update(workInvoice);
-                    }else {
-                        workInvoiceDao.insert(workInvoice);
-                    }
-                    //附件处理
-                    Workattachment workattachment = new Workattachment();
-                    workattachment.setAttachmentId(workInvoice.getId());
-                    workattachment.setAttachmentFlag("115");
-                    workattachment.setAttachmentUser(workInvoice.getCreateBy().getId());
-                    workattachmentService.delete(workattachment);
-                    for (Workattachment workAttachment : workInvoice.getWorkAttachments()) {
-                        workattachmentService.insertOnWorkAttachment(workAttachment);
-                    }
-                    //开票明细处理
-                    WorkInvoiceDetail workInvoiceDetail = new WorkInvoiceDetail();
-                    workInvoiceDetail.setInvoiceId(workInvoice.getId());
-                    workInvoiceDetailDao.delete(workInvoiceDetail);
-                    for (WorkInvoiceDetail invoiceDetail : workInvoice.getWorkAccountList()) {
-                        workInvoiceDetailDao.insert(invoiceDetail);
+                    if (workInvoice != null && StringUtils.isNotBlank(workInvoice.getId())){
+                        WorkInvoice invoice = workInvoiceDao.getById(workInvoice.getId());
+                        if (invoice != null){
+                            workInvoiceDao.update(workInvoice);
+                        }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);
+                                }
+
+                            }
+                        }
+
+                        //开票明细处理
+                        workInvoiceDetailDao.deleteByInvoiceId(workInvoice.getId());
+                        if (workInvoice.getWorkAccountList()!= null && workInvoice.getWorkAccountList().size()>0){
+                            for (WorkInvoiceDetail invoiceDetail : workInvoice.getWorkAccountList()) {
+                                if(invoiceDetail != null){
+                                    workInvoiceDetailDao.insert(invoiceDetail);
+
+                                }
+
+                            }
+                        }
+
+                        //开票与项目关系处理
+                        workInvoiceCloudDao.deleteByInvoiceId(workInvoice.getId());
+                        if (workInvoice.getWorkInvoiceCloudList() != null && workInvoice.getWorkInvoiceCloudList().size()>0){
+                            for (WorkInvoiceCloud workInvoiceCloud : workInvoice.getWorkInvoiceCloudList()) {
+                                if (workInvoiceCloud != null){
+                                    workInvoiceCloudDao.insert(workInvoiceCloud);
+                                }
+                            }
+                        }
                     }
-                    //开票与项目关系处理
-                    workInvoiceCloudDao.deleteByInvoiceId(workInvoice.getId());
-                    for (WorkInvoiceCloud workInvoiceCloud : workInvoice.getWorkInvoiceCloudList()) {
-                        workInvoiceCloudDao.insert(workInvoiceCloud);
-                    }
+
+
                 }
             }
 
         }
+
     }
 }

+ 2 - 0
src/main/java/com/jeeplus/modules/workinvoicedetail/dao/WorkInvoiceDetailDao.java

@@ -48,4 +48,6 @@ public interface WorkInvoiceDetailDao extends CrudDao<WorkInvoiceDetail> {
     int countByNumber(String number);
 
     int countByNumAndComp(@Param("invoiceNum") String invoiceNum, @Param("comId") String comId);
+
+    void deleteByInvoiceId(@Param("invoiceId")String invoiceId);
 }

+ 5 - 0
src/main/resources/mappings/modules/workinvoicedetail/WorkInvoiceDetailDao.xml

@@ -614,4 +614,9 @@
 		WHERE  a.number = #{invoiceNum} AND a.company_id = #{comId}
 		and b.invoice_state != 7
 	</select>
+
+	<update id="deleteByInvoiceId">
+		DELETE FROM work_invoice_detail
+		WHERE invoice_id = #{invoiceId}
+	</update>
 </mapper>