Merge branches '1007-认证人和组织权限需要匹配,只显示启用了该组织进项功能的人' and 'release' of http://192.168.12.182/invoice/pt into 1007-认证人和组织权限需要匹配,只显示启用了该组织进项功能的人

release
yefei 2 years ago
commit 79b3bbe118
  1. 4
      dxhy-core/pom.xml
  2. 33
      dxhy-core/src/main/java/com/dxhy/core/config/RedissionConfig.java
  3. 33
      dxhy-core/src/main/java/com/dxhy/core/job/service/impl/InvoiceInterfaceServiceImpl.java
  4. 16
      dxhy-core/src/main/java/com/dxhy/core/task/SdnyClientTask.java
  5. 3
      dxhy-erp/src/main/java/com/dxhy/erp/controller/SDNYMainProcessController.java

@ -164,6 +164,10 @@
<artifactId>itext-asian</artifactId> <artifactId>itext-asian</artifactId>
<version>5.2.0</version> <version>5.2.0</version>
</dependency> </dependency>
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson-spring-boot-starter</artifactId>
</dependency>
<dependency> <dependency>
<groupId>com.alibaba.cloud</groupId> <groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>

@ -0,0 +1,33 @@
package com.dxhy.core.config;
import org.redisson.Redisson;
import org.redisson.api.RedissonClient;
import org.redisson.config.Config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
//@Configuration
//public class RedissionConfig {
//
// @Value("${spring.redis.host}")
// private String host;
//
// @Value("${spring.redis.port}")
// private String port;
//
// @Value("${spring.redis.password}")
// private String redisPassword;
//
// @Bean
// public RedissonClient getRedisson(){
//
// Config config = new Config();
// //单机模式 依次设置redis地址和密码
// config.useSingleServer()
// .setAddress("redis://" + host + ":" + port)
// .setPassword(redisPassword);
// return Redisson.create(config);
// }
//}
//

@ -14,7 +14,10 @@ import javax.crypto.spec.SecretKeySpec;
import com.dxhy.core.job.thread.InvoiceParseHandle; import com.dxhy.core.job.thread.InvoiceParseHandle;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
@ -72,6 +75,16 @@ public class InvoiceInterfaceServiceImpl implements InvoiceInterfaceService {
@Resource @Resource
private Sender sender; private Sender sender;
@Resource
private StringRedisTemplate stringRedisTemplate;
// @Resource
// private RedissonClient redisson;
private static final String REDIS_KEY = "collect_invoice_";
private static final int MAX_SIZE = 1000;
@Value("${jxjk.collectUrl}") @Value("${jxjk.collectUrl}")
private String collectUrl; private String collectUrl;
@Value("${jxjk.invoiceGet}") @Value("${jxjk.invoiceGet}")
@ -644,6 +657,9 @@ public class InvoiceInterfaceServiceImpl implements InvoiceInterfaceService {
String company = tDxRecordInvoiceJobDao.findCompany(taxno); String company = tDxRecordInvoiceJobDao.findCompany(taxno);
List<InvoiceLog> logList = new ArrayList<>(); List<InvoiceLog> logList = new ArrayList<>();
for (InvoiceSelectInfo invoiceSelectInfo : invoicesList) { for (InvoiceSelectInfo invoiceSelectInfo : invoicesList) {
//加分布式锁
// String lockKey = REDIS_KEY + invoiceSelectInfo.getUuid();
// RLock lock = redisson.getLock(lockKey);
invoiceSelectInfo.setUuid(invoiceSelectInfo.getInvoiceCode() + invoiceSelectInfo.getInvoiceNo()); invoiceSelectInfo.setUuid(invoiceSelectInfo.getInvoiceCode() + invoiceSelectInfo.getInvoiceNo());
if ("1".equals(invoiceSelectInfo.getLegalizeState())) { if ("1".equals(invoiceSelectInfo.getLegalizeState())) {
//认证处理状态 0-未认证 1-已勾选未确认,2已确认 3 已发送认证 4 认证成功 5 认证失败 //认证处理状态 0-未认证 1-已勾选未确认,2已确认 3 已发送认证 4 认证成功 5 认证失败
@ -651,10 +667,15 @@ public class InvoiceInterfaceServiceImpl implements InvoiceInterfaceService {
} else { } else {
invoiceSelectInfo.setAuthStatus("0"); invoiceSelectInfo.setAuthStatus("0");
} }
try {
// boolean isLock = lock.tryLock();
// if(!isLock){
// log.info("当前已有线程获取到锁");
// }else {
// 判断库里是否已经存在,存在则只更新发票状态,状态更新时间,认证状态以及相关字段更新 // 判断库里是否已经存在,存在则只更新发票状态,状态更新时间,认证状态以及相关字段更新
DynamicContextHolder.push(db + DbConstant.BUSINESS_READ); DynamicContextHolder.push(db + DbConstant.BUSINESS_READ);
TDxRecordInvoiceJobEntity entity = tDxRecordInvoiceJobDao TDxRecordInvoiceJobEntity entity = tDxRecordInvoiceJobDao.findInvoiceByUUid(invoiceSelectInfo.getUuid());
.findInvoiceByUUid(invoiceSelectInfo.getUuid());
if (entity != null) { if (entity != null) {
boolean flag = false; boolean flag = false;
if (StringUtils.isBlank(entity.getCheckCode()) if (StringUtils.isBlank(entity.getCheckCode())
@ -764,6 +785,14 @@ public class InvoiceInterfaceServiceImpl implements InvoiceInterfaceService {
invoiceLog.setCreateDate(new Date()); invoiceLog.setCreateDate(new Date());
invoiceLog.setInputName("系统自动"); invoiceLog.setInputName("系统自动");
logList.add(invoiceLog); logList.add(invoiceLog);
// }
}catch (Exception e) {
e.printStackTrace();
}
// finally {
// //关锁
// lock.unlock();
// }
} }
httpLog.setStatus("1"); httpLog.setStatus("1");
httpLog.setTotal(total); httpLog.setTotal(total);

@ -37,6 +37,9 @@ public class SdnyClientTask extends AbstractController {
@Value("${sdny.snYxUrl}") @Value("${sdny.snYxUrl}")
private String snYxUrl; private String snYxUrl;
@Value("${sdny.client}")
private String client;
@Value("${po.userName}") @Value("${po.userName}")
private String userName; private String userName;
@ -77,16 +80,17 @@ public class SdnyClientTask extends AbstractController {
scheduleJobEntity.setJobStatus("1"); scheduleJobEntity.setJobStatus("1");
DynamicContextHolder.push(DbConstant.BASICS_WRITE); DynamicContextHolder.push(DbConstant.BASICS_WRITE);
scheduleJobService.updateById(scheduleJobEntity); scheduleJobService.updateById(scheduleJobEntity);
long startTime = System.currentTimeMillis();
List<GsClient> list = new ArrayList<>();
// 准备请求参数 // 准备请求参数
// 需判断 设置不认证状态 // 需判断 设置不认证状态
String[] split = client.split(",");
List<GsClient> list = new ArrayList<>(); for(int i = 0;i < split.length;i++) {
long startTime = System.currentTimeMillis();
SNSAPObject object = new SNSAPObject(); SNSAPObject object = new SNSAPObject();
object.setSYSID("FPXT"); object.setSYSID("FPXT");
object.setIFYWID("FI846"); object.setIFYWID("FI846");
object.setBSKEY(UUID.randomUUID().toString().replace("-", "")); object.setBSKEY(UUID.randomUUID().toString().replace("-", ""));
object.setZFILED5("200"); object.setZFILED5(split[i]);
object.setZDATA(""); object.setZDATA("");
//推送到SAP //推送到SAP
@ -102,7 +106,7 @@ public class SdnyClientTask extends AbstractController {
String ztype = es_output.getZTYPE(); String ztype = es_output.getZTYPE();
String zmessage = es_output.getZMESSAGE(); String zmessage = es_output.getZMESSAGE();
Object zdata = es_output.getZDATA(); Object zdata = es_output.getZDATA();
if ("s".equals(ztype)) { if ("S".equals(ztype)) {
List<Map<String, String>> gsClientList = JsonUtils.getInstance().parseObject(zdata.toString(), List.class); List<Map<String, String>> gsClientList = JsonUtils.getInstance().parseObject(zdata.toString(), List.class);
gsClientList.stream().forEach(f -> { gsClientList.stream().forEach(f -> {
GsClient gsClient = new GsClient(); GsClient gsClient = new GsClient();
@ -115,6 +119,7 @@ public class SdnyClientTask extends AbstractController {
} else { } else {
log.error("{}client:{},获取公司client出错:{}", LOGGER_MSG, "200", zmessage); log.error("{}client:{},获取公司client出错:{}", LOGGER_MSG, "200", zmessage);
} }
}
log.info("{}删除gs_client表数据", LOGGER_MSG); log.info("{}删除gs_client表数据", LOGGER_MSG);
gsClientMapper.deleteAll(); gsClientMapper.deleteAll();
log.info("{}插入gs_client表", LOGGER_MSG); log.info("{}插入gs_client表", LOGGER_MSG);
@ -122,6 +127,7 @@ public class SdnyClientTask extends AbstractController {
long endTime = System.currentTimeMillis(); long endTime = System.currentTimeMillis();
log.debug("{}任务结束,耗时:{}", LOGGER_MSG, endTime - startTime); log.debug("{}任务结束,耗时:{}", LOGGER_MSG, endTime - startTime);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} finally { } finally {

@ -1048,7 +1048,8 @@ public class SDNYMainProcessController extends AbstractController {
if (gsClients != null && gsClients.size() > 0) { if (gsClients != null && gsClients.size() > 0) {
object.setZFILED5(gsClients.get(0).getClient()); object.setZFILED5(gsClients.get(0).getClient());
} else { } else {
object.setZFILED5(environment); log.error("未能查到 "+orgCode+" 公司对应的推送client");
return ResponseEntity.ok(JSONObject.toJSONString(R.error("未能查到 "+orgCode+" 公司对应的推送client")));
} }
List<SAPInvoiceInfo> sapInvoiceInfos = new ArrayList<>(); List<SAPInvoiceInfo> sapInvoiceInfos = new ArrayList<>();

Loading…
Cancel
Save