Merge branches '1007-认证人为空时设置成admin' and 'release' of http://192.168.12.182/invoice/pt into 1007-认证人为空时设置成admin

release
yefei 2 years ago
commit 0422bcf621
  1. 6
      dxhy-admin/src/main/java/com/dxhy/admin/sys/service/impl/SysUserServiceImpl.java
  2. 25
      dxhy-base/src/main/java/com/dxhy/base/controller/BaseInvoiceController.java
  3. 4
      dxhy-base/src/main/java/com/dxhy/base/model/BaseSggxCxRespVO.java
  4. 14
      dxhy-base/src/main/resources/mapper/BaseFpZhMapper.xml
  5. 24
      dxhy-base/src/main/resources/mapper/BaseSggxcxMapper.xml
  6. 4
      dxhy-core/pom.xml
  7. 33
      dxhy-core/src/main/java/com/dxhy/core/config/RedissionConfig.java
  8. 33
      dxhy-core/src/main/java/com/dxhy/core/job/service/impl/InvoiceInterfaceServiceImpl.java
  9. 16
      dxhy-core/src/main/java/com/dxhy/core/task/SdnyClientTask.java
  10. 5
      dxhy-customs/src/main/java/com/dxhy/customs/service/impl/CustomsCustomsJkszhcxServiceImpl.java
  11. 39
      dxhy-erp/src/main/java/com/dxhy/erp/controller/SDNYMainProcessController.java
  12. 5
      dxhy-export-domestic/src/main/java/com/dxhy/domestic/service/count/impl/DomesticCustomsExportCountServiceImpl.java
  13. 5
      dxhy-export-domestic/src/main/java/com/dxhy/domestic/service/count/impl/DomesticInvoiceExportCountServiceImpl.java
  14. 7
      dxhy-extend/src/main/java/com/dxhy/extend/service/bb/impl/ExtFpzhcxServiceImpl.java

@ -160,8 +160,10 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserDao, SysUserEntity> i
// 保存客户信息,更新企业税号
user.getUserOrgEntities().stream().forEach(userOrg -> {
if(StringUtils.isEmpty(userOrg.getTaxno())){
if(StringUtils.isNotEmpty(taxnos.get(userOrg.getDeptId()))) {
userOrg.setTaxno(taxnos.get(userOrg.getDeptId()));
String taxno = taxnos.get(String.valueOf(userOrg.getDeptId()));
log.info("销项同步税号为:taxno={}",taxno);
if(StringUtils.isNotEmpty(taxno)){
userOrg.setTaxno(taxno);
}
}
});

@ -51,7 +51,6 @@ import java.util.stream.Collectors;
public class BaseInvoiceController extends AbstractController {
/**
* 认证发票查询service
*
*/
@Resource
private BaseRzFpxxService baseRzFpxxService;
@ -289,6 +288,7 @@ public class BaseInvoiceController extends AbstractController {
// 已认证传 认证起止日期和税款所属期做判断
if (!"99".equals(rzzt)) {
pramsMap.put("rzzt", rzzt);
}
if (!"0".equals(rzzt)) {
if (!StringHelper.isBlank(rzksrq)) {
rzksrq = DateUtils.getMorning(DateUtils.strToDate(rzksrq));
@ -306,7 +306,6 @@ public class BaseInvoiceController extends AbstractController {
pramsMap.put("skssq", skssq);
}
}
}
} else {
return ResponseEntity.ok(R.error("认证状态不能为空!"));
}
@ -384,8 +383,7 @@ public class BaseInvoiceController extends AbstractController {
/**
* 撤销认证
*
* @param map
* 请求参数 id逗号分隔
* @param map 请求参数 id逗号分隔
* @return 返回结果
*/
@PostMapping("/rzzhcx/cxrz")
@ -412,7 +410,6 @@ public class BaseInvoiceController extends AbstractController {
}
/**
*
* 扫码勾选录入查询
*/
@PostMapping("/smgx/smgxcx")
@ -499,6 +496,7 @@ public class BaseInvoiceController extends AbstractController {
String kpksrq = (String) map.get("kpksrq");
String kpjsrq = (String) map.get("kpjsrq");
String qszt = (String) map.get("qszt");
String rzzt = (String) map.get("rzzt");
String qsfs = (String) map.get("qsfs");
String businessCode = (String) map.get("businessCode");
String invoiceNo = (String) map.get("invoiceNo");
@ -527,8 +525,6 @@ public class BaseInvoiceController extends AbstractController {
}
Map<String, Object> pramsMap = new HashMap<>(32);
pramsMap.put("companyCode", companyCode);
@ -594,6 +590,9 @@ public class BaseInvoiceController extends AbstractController {
pramsMap.put("taxRate", taxRate);
}
if (StringUtils.isNotBlank(rzzt) && !"99".equals(rzzt)) {
pramsMap.put("rzzt", rzzt);
}
if (!StringUtils.isBlank(invoiceType)) {
if (!"99".equals(invoiceType)) {
@ -986,7 +985,6 @@ public class BaseInvoiceController extends AbstractController {
}
try {
return ResponseEntity
.ok(R.ok().put("data", baseInvoiceManualCheckService.inTellingCheck(pramsMap)));
@ -1173,7 +1171,7 @@ public class BaseInvoiceController extends AbstractController {
/**
* 扫码手工导入勾选操做入口
*
* <p>
* 0-手工勾选 1-扫码勾选 2-导入勾选 3- 智能勾选 4-手工认证 5-扫码认证 6-导入认证
*
* @return 返回结果
@ -1217,8 +1215,7 @@ public class BaseInvoiceController extends AbstractController {
/**
* 已勾选发票待确认列表
*
* @param map
* 请求参数
* @param map 请求参数
* @return 返回结果
*/
@PostMapping("/ygxfp/jgxfpcx")
@ -1310,8 +1307,7 @@ public class BaseInvoiceController extends AbstractController {
/**
* 撤销已经勾选的发票
*
* @param map
* 请求参数
* @param map 请求参数
* @return 返回结果
*/
@PostMapping("/gxfp/cxgx")
@ -1340,8 +1336,7 @@ public class BaseInvoiceController extends AbstractController {
/**
* 一键提交
*
* @param map
* 请求参数
* @param map 请求参数
* @return 返回结果
*/
@PostMapping("/gxfp/tjrz")

@ -74,6 +74,10 @@ public class BaseSggxCxRespVO {
* 签收方式
*/
private String qsfs;
/**
* 认证状态
*/
private String rzzt;
/**
* 签收人
*/

@ -77,7 +77,7 @@
and t.invoice_type in('01','03','08','14','31','283','161','183','185')
and t.bdk_status in ('1','2')
and t.export_mark = '0'
and t.auth_status in ('2','3','4')
and t.auth_status in ('0','2','3','4','5','6')
and t.company = #{company}
and t.gf_tax_no = #{gfsh}
and t.comp_code = #{companyCode}
@ -124,9 +124,12 @@
<if test="imageId != null and imageId != '' and imageId != 'null' ">
and t.image_id = #{imageId}
</if>
<if test="rzclzt !=null and rzclzt != ''">
<if test="rzclzt == '0'.toString() or rzclzt == '4'.toString() or rzclzt == '5'.toString() or rzclzt == '6'.toString()">
and t.auth_status = #{rzclzt}
</if>
<if test="rzclzt == '1'.toString() ">
and (t.auth_status = '2' or t.auth_status = '3')
</if>
<if test="rzlx!=null and rzlx!=''">
and t.bdk_status = #{rzlx}
</if>
@ -354,7 +357,7 @@
and t.gf_tax_no = #{gfsh}
and t.comp_code = #{companyCode}
and t.invoice_type in('01','03','08','14','31','283','161','183','185')
and t.auth_status in ('2','3','4')
and t.auth_status in ('0','2','3','4','5','6')
and t.bdk_status in ('1','2')
and t.export_mark = '0'
and t.company =#{company}
@ -402,9 +405,12 @@
<if test="rzzt != null and rzzt != '' and rzzt != 'null' ">
and t.rzh_yesorno = #{rzzt}
</if>
<if test="rzclzt != null and rzclzt != '' and rzclzt != 'null' ">
<if test="rzclzt == '0'.toString() or rzclzt == '4'.toString() or rzclzt == '5'.toString() or rzclzt == '6'.toString()">
and t.auth_status = #{rzclzt}
</if>
<if test="rzclzt == '1'.toString() ">
and (t.auth_status = '2' or t.auth_status = '3')
</if>
<if test="rzlx!=null and rzlx!=''">
and t.bdk_status = #{rzlx}
</if>

@ -86,7 +86,7 @@
WHERE t.invoice_date between #{kpksrq} and #{kpjsrq}
and t.invoice_type in('01','03','08','14','31','283','161','183','185')
and t.rzh_yesorno = '0'
and t.auth_status in('0','5','6')
and t.auth_status in('0','2','3','5','6')
and t.export_mark = '0'
and t.inaccount_status = '1'
and t.company = #{company}
@ -129,6 +129,15 @@
<if test="qszt != null and qszt != '' and qszt != 'null' ">
and t.qs_status = #{qszt}
</if>
<if test="rzzt == '0'.toString()">
and t.auth_status = #{rzzt}
</if>
<if test="rzzt == '1'.toString()">
and (t.auth_status = '2' or t.auth_status = '3')
</if>
<if test="rzzt == '2'.toString()">
and t.auth_status = '5'
</if>
<if test="inAccountStatus != null and inAccountStatus != '' and inAccountStatus != 'null' and inAccountStatus != '99' and inAccountStatus == '1'.toString()">
and t.inaccount_status = #{inAccountStatus}
@ -417,7 +426,7 @@
WHERE t.invoice_date between #{kpksrq} and #{kpjsrq}
and t.invoice_type in('01','03','08','14','31','283','161','183','185')
and t.rzh_yesorno = '0'
and t.auth_status in('0','5','6')
and t.auth_status in('0','2','3','5','6')
and t.inaccount_status = '1'
and t.export_mark = '0'
and t.company = #{company}
@ -442,6 +451,16 @@
<if test="qszt != null and qszt != '' and qszt != 'null' ">
and t.qs_status = #{qszt}
</if>
<if test="rzzt == '0'.toString()">
and t.auth_status = #{rzzt}
</if>
<if test="rzzt == '1'.toString()">
and (t.auth_status = '2' or t.auth_status = '3')
</if>
<if test="rzzt == '2'.toString()">
and t.auth_status = '5'
</if>
<if test="suspendStatus != null and suspendStatus != '' and suspendStatus != 'null' and suspendStatus != '99' and suspendStatus == '1'.toString()">
and t.suspend_status = '1'
</if>
@ -1255,6 +1274,7 @@
and t.rzh_yesorno = '0'
and t.invoice_status in ('0','7')
and t.auth_status in('0','5','6')
and t.inaccount_status = '1'
and t.export_mark = '0'
and t.invoice_amount>0
and t.tax_amount>=0

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

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

@ -148,6 +148,11 @@ public class CustomsCustomsJkszhcxServiceImpl extends MpBaseServiceImpl<CustomsJ
pageList.get(i).setQsType(dictdetaServcice.queryDictName(DictConstant.QS_TYPE, qsType));
String rzhYesorno = pageList.get(i).getRzhYesorno();
pageList.get(i).setRzhYesorno(dictdetaServcice.queryDictName(DictConstant.DEDU_STATUS, rzhYesorno));
String confirmUser = pageList.get(i).getConfirmUser();
if(StringUtils.isEmpty(confirmUser) && "4".equals(auditStatus)){
pageList.get(i).setConfirmUser("admin");
}
}
}
// 设置记录总数

@ -263,6 +263,42 @@ public class SDNYMainProcessController extends AbstractController {
if (checkInvoiceByUuid != null) {
log.info("进项票池已存在发票.直接返回票池信息");
R data = new R(1000, "default success");
//如果购方名称为空,则查验之后补充购销方相关信息
String gfName = checkInvoiceByUuid.getGfName();
String gfAddressAndPhone = checkInvoiceByUuid.getGfAddressAndPhone();
if(StringUtils.isEmpty(gfName) || StringUtils.isEmpty(gfAddressAndPhone)){
log.info("购方名称为空,查验补充信息");
checkInvoiceResult = snPushCheckRecordService.singleCheckInvoice(pramsMap, null);
if (!checkInvoiceResult.containsKey("code")) {
if (!checkInvoiceResult.containsKey("cyjg")) {
//先删除原有主数据,再查验更新主数据和明细数据
int delete = baseTDxRecordInvoiceDao.delete(recordWrapper);
if (delete > 0) {
checkInvoiceResult.put("invoiceNo", checkInvoiceResult.getString("invoiceNumber"));
signSaveInvoiceInfoService.saveQueryInvoiceResult(checkInvoiceResult, userid, "1", dbName);
}
} else if (checkInvoiceResult.containsKey("cyjg") && !"0001".equals(checkInvoiceResult.getString("cyjg"))) {
data = errorInfo(checkInvoiceResult, data);
try {
DynamicContextHolder.push("business" + DbConstant.BUSINESS_WRITE);
requestRecordService.saveFailedRequestRecord(singleInvoiceCheckRecord, 0, JSONObject.toJSONString(data),
(String) checkInvoiceResult.get("cyjgxx"));
} catch (Exception e) {
log.error("发票查验接口记录保存失败,errormsg:{}", e);
}
return ResponseEntity.ok(JSONObject.toJSONString(data));
}
}
DynamicContextHolder.push("business" + DbConstant.BUSINESS_READ);
checkInvoiceByUuid = baseTDxRecordInvoiceDao.selectOne(recordWrapper);
}
String invoiceNo = checkInvoiceByUuid.getInvoiceNo();
QueryWrapper<BaseTDxRecordInvoiceDetail> detailWrapper = new QueryWrapper<>();
detailWrapper.eq("uuid", uuid);
@ -1012,7 +1048,8 @@ public class SDNYMainProcessController extends AbstractController {
if (gsClients != null && gsClients.size() > 0) {
object.setZFILED5(gsClients.get(0).getClient());
} else {
object.setZFILED5(environment);
log.error("未能查到 "+orgCode+" 公司对应的推送client");
return ResponseEntity.ok(JSONObject.toJSONString(R.error("未能查到 "+orgCode+" 公司对应的推送client")));
}
List<SAPInvoiceInfo> sapInvoiceInfos = new ArrayList<>();

@ -92,6 +92,11 @@ public class DomesticCustomsExportCountServiceImpl extends MpBaseServiceImpl<Dom
AmountFormatUtil.fmtMicrometer(MathUtil.round((String)map.get("yxExportTaxAmount"))));
map.put("select", true);
String confirmUser = (String)map.get("confirmUser");
if(StringUtils.isEmpty(confirmUser) && "4".equals(authStatus)){
map.put("confirmUser","admin");
}
if ("1".equals(map.get("inAccountStatus"))){
map.put("inAccountStatus","已入账");
}else {

@ -89,7 +89,10 @@ public class DomesticInvoiceExportCountServiceImpl extends MpBaseServiceImpl<Dom
map.put("bdkStatus", dictdetaServcice.queryDictName(DictConstant.BDK_STATUS, bdkStatus));
String cxbdkStatus = (String)map.get("cxbdkStatus");
map.put("cxbdkStatus", dictdetaServcice.queryDictName(DictConstant.CXRZ_STATUS, cxbdkStatus));
String confirmUser = (String)map.get("confirmUser");
if(StringUtils.isEmpty(confirmUser) && "4".equals(authStatus)){
map.put("confirmUser","admin");
}
// if (cxrzModels!=null){
// for (DictdetaModel model:cxrzModels){
// if (model.getDictcode().equals(map.get("cxbdkStatus"))){

@ -101,6 +101,11 @@ public class ExtFpzhcxServiceImpl extends MpBaseServiceImpl<ExtBbfpzhDao, ExtBbf
AmountFormatUtil.fmtMicrometer(MathUtil.round(resultList.get(i).getTaxAmount())));
}
}
String rzhr = resultList.get(i).getRzhr();
String rzclzt = resultList.get(i).getRzclzt();
if(StringUtils.isEmpty(rzhr) && "4".equals(rzclzt)){
resultList.get(i).setRzhr("admin");
}
resultList.get(i)
.setTaxAmount(AmountFormatUtil.fmtMicrometer(MathUtil.round(resultList.get(i).getTaxAmount())));
@ -117,7 +122,7 @@ public class ExtFpzhcxServiceImpl extends MpBaseServiceImpl<ExtBbfpzhDao, ExtBbf
.setInvoiceStatus(dictdetaServcice.queryDictName(DictConstant.INVOICE_STATUS, invoiceStatus));
String rzzt = resultList.get(i).getRzzt();
resultList.get(i).setRzzt(dictdetaServcice.queryDictName(DictConstant.DEDU_STATUS, rzzt));
String rzclzt = resultList.get(i).getRzclzt();
resultList.get(i).setRzclzt(dictdetaServcice.queryDictName(DictConstant.AUTH_STATUS_ALL, rzclzt));
String qszt = resultList.get(i).getQszt();
resultList.get(i).setQszt(dictdetaServcice.queryDictName(DictConstant.QS_STATUS, qszt));

Loading…
Cancel
Save