|
|
|
@ -668,126 +668,128 @@ public class InvoiceInterfaceServiceImpl implements InvoiceInterfaceService { |
|
|
|
|
invoiceSelectInfo.setAuthStatus("0"); |
|
|
|
|
} |
|
|
|
|
try { |
|
|
|
|
lock.lock(); |
|
|
|
|
stringRedisTemplate.opsForValue().set(lockKey, String.valueOf(0)); |
|
|
|
|
|
|
|
|
|
// 判断库里是否已经存在,存在则只更新发票状态,状态更新时间,认证状态以及相关字段更新
|
|
|
|
|
DynamicContextHolder.push(db + DbConstant.BUSINESS_READ); |
|
|
|
|
TDxRecordInvoiceJobEntity entity = tDxRecordInvoiceJobDao.findInvoiceByUUid(invoiceSelectInfo.getUuid()); |
|
|
|
|
if (entity != null) { |
|
|
|
|
boolean flag = false; |
|
|
|
|
if (StringUtils.isBlank(entity.getCheckCode()) |
|
|
|
|
&& StringUtils.isNotBlank(invoiceSelectInfo.getCheckCode())) { |
|
|
|
|
entity.setCheckCode(invoiceSelectInfo.getCheckCode()); |
|
|
|
|
entity.setCheckDate(new Date()); |
|
|
|
|
flag = true; |
|
|
|
|
} |
|
|
|
|
if (!entity.getInvoiceStatus().equals(invoiceSelectInfo.getInvoiceStatus())) { |
|
|
|
|
entity.setInvoiceStatus(invoiceSelectInfo.getInvoiceStatus()); |
|
|
|
|
entity.setStatusUpdateDate(new Date()); |
|
|
|
|
flag = true; |
|
|
|
|
} |
|
|
|
|
if ("0".equals(entity.getRzhYesorno()) |
|
|
|
|
&& !entity.getRzhYesorno().equals(invoiceSelectInfo.getLegalizeState())) { |
|
|
|
|
if ("1".equals(invoiceSelectInfo.getRzlx())) { |
|
|
|
|
entity.setRzhYesorno(invoiceSelectInfo.getLegalizeState()); |
|
|
|
|
entity.setRzhBelongDate(invoiceSelectInfo.getLegalizeBlongDate()); |
|
|
|
|
entity.setRzlx(invoiceSelectInfo.getRzlx()); |
|
|
|
|
entity.setRzhType(invoiceSelectInfo.getLegalizeType()); |
|
|
|
|
entity.setSfygx("1"); |
|
|
|
|
if (StringUtils.isNotBlank(invoiceSelectInfo.getLegalizeDate())) { |
|
|
|
|
SimpleDateFormat sim = new SimpleDateFormat("yyyyMMdd"); |
|
|
|
|
entity.setRzhDate(sim.parse(invoiceSelectInfo.getLegalizeDate())); |
|
|
|
|
} |
|
|
|
|
if ("1".equals(invoiceSelectInfo.getLegalizeState())) { |
|
|
|
|
entity.setAuthStatus("4"); |
|
|
|
|
} else { |
|
|
|
|
entity.setAuthStatus("0"); |
|
|
|
|
} |
|
|
|
|
entity.setBdkStatus("1"); |
|
|
|
|
} else if ("4".equals(invoiceSelectInfo.getRzlx())) { |
|
|
|
|
entity.setRzhYesorno("2"); |
|
|
|
|
entity.setRzhBelongDate(invoiceSelectInfo.getLegalizeBlongDate()); |
|
|
|
|
entity.setRzlx(invoiceSelectInfo.getRzlx()); |
|
|
|
|
entity.setRzhType(invoiceSelectInfo.getLegalizeType()); |
|
|
|
|
entity.setSfygx("1"); |
|
|
|
|
if (StringUtils.isNotBlank(invoiceSelectInfo.getLegalizeDate())) { |
|
|
|
|
SimpleDateFormat sim = new SimpleDateFormat("yyyyMMdd"); |
|
|
|
|
entity.setRzhDate(sim.parse(invoiceSelectInfo.getLegalizeDate())); |
|
|
|
|
boolean isLock = lock.tryLock(); |
|
|
|
|
|
|
|
|
|
if(!isLock){ |
|
|
|
|
log.info("当前已有线程获取到锁"); |
|
|
|
|
}else { |
|
|
|
|
// 判断库里是否已经存在,存在则只更新发票状态,状态更新时间,认证状态以及相关字段更新
|
|
|
|
|
DynamicContextHolder.push(db + DbConstant.BUSINESS_READ); |
|
|
|
|
TDxRecordInvoiceJobEntity entity = tDxRecordInvoiceJobDao.findInvoiceByUUid(invoiceSelectInfo.getUuid()); |
|
|
|
|
if (entity != null) { |
|
|
|
|
boolean flag = false; |
|
|
|
|
if (StringUtils.isBlank(entity.getCheckCode()) |
|
|
|
|
&& StringUtils.isNotBlank(invoiceSelectInfo.getCheckCode())) { |
|
|
|
|
entity.setCheckCode(invoiceSelectInfo.getCheckCode()); |
|
|
|
|
entity.setCheckDate(new Date()); |
|
|
|
|
flag = true; |
|
|
|
|
} |
|
|
|
|
if (!entity.getInvoiceStatus().equals(invoiceSelectInfo.getInvoiceStatus())) { |
|
|
|
|
entity.setInvoiceStatus(invoiceSelectInfo.getInvoiceStatus()); |
|
|
|
|
entity.setStatusUpdateDate(new Date()); |
|
|
|
|
flag = true; |
|
|
|
|
} |
|
|
|
|
if ("0".equals(entity.getRzhYesorno()) |
|
|
|
|
&& !entity.getRzhYesorno().equals(invoiceSelectInfo.getLegalizeState())) { |
|
|
|
|
if ("1".equals(invoiceSelectInfo.getRzlx())) { |
|
|
|
|
entity.setRzhYesorno(invoiceSelectInfo.getLegalizeState()); |
|
|
|
|
entity.setRzhBelongDate(invoiceSelectInfo.getLegalizeBlongDate()); |
|
|
|
|
entity.setRzlx(invoiceSelectInfo.getRzlx()); |
|
|
|
|
entity.setRzhType(invoiceSelectInfo.getLegalizeType()); |
|
|
|
|
entity.setSfygx("1"); |
|
|
|
|
if (StringUtils.isNotBlank(invoiceSelectInfo.getLegalizeDate())) { |
|
|
|
|
SimpleDateFormat sim = new SimpleDateFormat("yyyyMMdd"); |
|
|
|
|
entity.setRzhDate(sim.parse(invoiceSelectInfo.getLegalizeDate())); |
|
|
|
|
} |
|
|
|
|
if ("1".equals(invoiceSelectInfo.getLegalizeState())) { |
|
|
|
|
entity.setAuthStatus("4"); |
|
|
|
|
} else { |
|
|
|
|
entity.setAuthStatus("0"); |
|
|
|
|
} |
|
|
|
|
entity.setBdkStatus("1"); |
|
|
|
|
} else if ("4".equals(invoiceSelectInfo.getRzlx())) { |
|
|
|
|
entity.setRzhYesorno("2"); |
|
|
|
|
entity.setRzhBelongDate(invoiceSelectInfo.getLegalizeBlongDate()); |
|
|
|
|
entity.setRzlx(invoiceSelectInfo.getRzlx()); |
|
|
|
|
entity.setRzhType(invoiceSelectInfo.getLegalizeType()); |
|
|
|
|
entity.setSfygx("1"); |
|
|
|
|
if (StringUtils.isNotBlank(invoiceSelectInfo.getLegalizeDate())) { |
|
|
|
|
SimpleDateFormat sim = new SimpleDateFormat("yyyyMMdd"); |
|
|
|
|
entity.setRzhDate(sim.parse(invoiceSelectInfo.getLegalizeDate())); |
|
|
|
|
} |
|
|
|
|
if ("1".equals(invoiceSelectInfo.getLegalizeState())) { |
|
|
|
|
entity.setAuthStatus("4"); |
|
|
|
|
} else { |
|
|
|
|
entity.setAuthStatus("0"); |
|
|
|
|
} |
|
|
|
|
entity.setBdkStatus("2"); |
|
|
|
|
} |
|
|
|
|
if ("1".equals(invoiceSelectInfo.getLegalizeState())) { |
|
|
|
|
entity.setAuthStatus("4"); |
|
|
|
|
} else { |
|
|
|
|
entity.setAuthStatus("0"); |
|
|
|
|
flag = true; |
|
|
|
|
|
|
|
|
|
} else if (!"0".equals(entity.getRzhYesorno()) |
|
|
|
|
&& !"1".equals(invoiceSelectInfo.getLegalizeState())) { |
|
|
|
|
entity.setRzhYesorno("0"); |
|
|
|
|
entity.setRzhBelongDate(null); |
|
|
|
|
entity.setRzlx("0"); |
|
|
|
|
entity.setRzhType(null); |
|
|
|
|
entity.setRzhDate(null); |
|
|
|
|
entity.setAuthStatus("0"); |
|
|
|
|
entity.setBdkStatus("0"); |
|
|
|
|
entity.setSfygx("0"); |
|
|
|
|
flag = true; |
|
|
|
|
} |
|
|
|
|
//TODO 这块业务不理解??
|
|
|
|
|
if ("1".equals(entity.getSourceSystem()) && "0".equals(entity.getCollectStatus())) { |
|
|
|
|
entity.setCollectStatus("1"); |
|
|
|
|
entity.setCollectFrom("0"); |
|
|
|
|
entity.setCollectDate(new Date()); |
|
|
|
|
entity.setPoolStatus("1"); |
|
|
|
|
entity.setInPoolReason("数据重复"); |
|
|
|
|
flag = true; |
|
|
|
|
} |
|
|
|
|
if (flag) { |
|
|
|
|
DynamicContextHolder.push(db + DbConstant.BUSINESS_WRITE); |
|
|
|
|
if (StringUtils.isBlank(entity.getInvoiceCode())) { |
|
|
|
|
entity.setInvoiceCode(""); |
|
|
|
|
} |
|
|
|
|
entity.setBdkStatus("2"); |
|
|
|
|
tDxRecordInvoiceJobDao.updateInvoice(entity, taxno); |
|
|
|
|
} |
|
|
|
|
flag = true; |
|
|
|
|
|
|
|
|
|
} else if (!"0".equals(entity.getRzhYesorno()) |
|
|
|
|
&& !"1".equals(invoiceSelectInfo.getLegalizeState())) { |
|
|
|
|
entity.setRzhYesorno("0"); |
|
|
|
|
entity.setRzhBelongDate(null); |
|
|
|
|
entity.setRzlx("0"); |
|
|
|
|
entity.setRzhType(null); |
|
|
|
|
entity.setRzhDate(null); |
|
|
|
|
entity.setAuthStatus("0"); |
|
|
|
|
entity.setBdkStatus("0"); |
|
|
|
|
entity.setSfygx("0"); |
|
|
|
|
flag = true; |
|
|
|
|
} |
|
|
|
|
//TODO 这块业务不理解??
|
|
|
|
|
if ("1".equals(entity.getSourceSystem()) && "0".equals(entity.getCollectStatus())) { |
|
|
|
|
entity.setCollectStatus("1"); |
|
|
|
|
entity.setCollectFrom("0"); |
|
|
|
|
entity.setCollectDate(new Date()); |
|
|
|
|
entity.setPoolStatus("1"); |
|
|
|
|
entity.setInPoolReason("数据重复"); |
|
|
|
|
flag = true; |
|
|
|
|
} |
|
|
|
|
if (flag) { |
|
|
|
|
DynamicContextHolder.push(db + DbConstant.BUSINESS_WRITE); |
|
|
|
|
if (StringUtils.isBlank(entity.getInvoiceCode())) { |
|
|
|
|
entity.setInvoiceCode(""); |
|
|
|
|
// 艺龙推送数据
|
|
|
|
|
if (yLcompany.equals(company)) { |
|
|
|
|
DynamicContextHolder.push(db + DbConstant.BUSINESS_READ); |
|
|
|
|
InvoiceScanEntity selectSign = tDxRecordInvoiceJobDao |
|
|
|
|
.selectByScan(entity.getInvoiceCode() + entity.getInvoiceNo(), dxhyAdmin); |
|
|
|
|
if (selectSign != null && "1".equals(selectSign.getQsStatus())) { |
|
|
|
|
String record = JSON.toJSONString(entity); |
|
|
|
|
sender.sendToStatus(Base64.encode(record)); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
tDxRecordInvoiceJobDao.updateInvoice(entity, taxno); |
|
|
|
|
} |
|
|
|
|
// 艺龙推送数据
|
|
|
|
|
if (yLcompany.equals(company)) { |
|
|
|
|
DynamicContextHolder.push(db + DbConstant.BUSINESS_READ); |
|
|
|
|
InvoiceScanEntity selectSign = tDxRecordInvoiceJobDao |
|
|
|
|
.selectByScan(entity.getInvoiceCode() + entity.getInvoiceNo(), dxhyAdmin); |
|
|
|
|
if (selectSign != null && "1".equals(selectSign.getQsStatus())) { |
|
|
|
|
String record = JSON.toJSONString(entity); |
|
|
|
|
sender.sendToStatus(Base64.encode(record)); |
|
|
|
|
} else { |
|
|
|
|
if (StringUtils.isBlank(invoiceSelectInfo.getLegalizeDate())) { |
|
|
|
|
invoiceSelectInfo.setLegalizeDate(null); |
|
|
|
|
} |
|
|
|
|
TDxRecordInvoiceJobEntity record = exchangePo2Entity(invoiceSelectInfo); |
|
|
|
|
record.setCompany(company); |
|
|
|
|
record.setCollectStatus("1"); |
|
|
|
|
record.setCollectFrom("0"); |
|
|
|
|
record.setCollectDate(new Date()); |
|
|
|
|
record.setPoolStatus("0"); |
|
|
|
|
DynamicContextHolder.push(db + DbConstant.BUSINESS_WRITE); |
|
|
|
|
tDxRecordInvoiceJobDao.insert(record); |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
if (StringUtils.isBlank(invoiceSelectInfo.getLegalizeDate())) { |
|
|
|
|
invoiceSelectInfo.setLegalizeDate(null); |
|
|
|
|
} |
|
|
|
|
TDxRecordInvoiceJobEntity record = exchangePo2Entity(invoiceSelectInfo); |
|
|
|
|
record.setCompany(company); |
|
|
|
|
record.setCollectStatus("1"); |
|
|
|
|
record.setCollectFrom("0"); |
|
|
|
|
record.setCollectDate(new Date()); |
|
|
|
|
record.setPoolStatus("0"); |
|
|
|
|
DynamicContextHolder.push(db + DbConstant.BUSINESS_WRITE); |
|
|
|
|
tDxRecordInvoiceJobDao.insert(record); |
|
|
|
|
InvoiceLog invoiceLog = new InvoiceLog(); |
|
|
|
|
invoiceLog.setInvoiceCode(invoiceSelectInfo.getInvoiceCode()); |
|
|
|
|
invoiceLog.setInvoiceNo(invoiceSelectInfo.getInvoiceNo()); |
|
|
|
|
invoiceLog.setType("1"); |
|
|
|
|
invoiceLog.setInputStatus("0"); |
|
|
|
|
invoiceLog.setCreateDate(new Date()); |
|
|
|
|
invoiceLog.setInputName("系统自动"); |
|
|
|
|
logList.add(invoiceLog); |
|
|
|
|
} |
|
|
|
|
InvoiceLog invoiceLog = new InvoiceLog(); |
|
|
|
|
invoiceLog.setInvoiceCode(invoiceSelectInfo.getInvoiceCode()); |
|
|
|
|
invoiceLog.setInvoiceNo(invoiceSelectInfo.getInvoiceNo()); |
|
|
|
|
invoiceLog.setType("1"); |
|
|
|
|
invoiceLog.setInputStatus("0"); |
|
|
|
|
invoiceLog.setCreateDate(new Date()); |
|
|
|
|
invoiceLog.setInputName("系统自动"); |
|
|
|
|
logList.add(invoiceLog); |
|
|
|
|
}catch (Exception e) { |
|
|
|
|
e.printStackTrace(); |
|
|
|
|
} finally { |
|
|
|
|
//关锁
|
|
|
|
|
stringRedisTemplate.opsForValue().set(lockKey, String.valueOf(1)); |
|
|
|
|
lock.unlock(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|