Forráskód Böngészése

OMS发票信息部分代码上传

徐滕 4 hete
szülő
commit
930ffe5372

+ 14 - 0
src/main/java/com/jeeplus/modules/workinvoice/service/OMS/InvoiceDownloadService.java

@@ -169,6 +169,20 @@ public class InvoiceDownloadService {
                             }
                         }
                     }
+                }else if(null != resultDownInfo.getResult() && ("1002".equals(resultDownInfo.getResult().getCode())
+                    || "1001".equals(resultDownInfo.getResult().getCode())
+                    || "1005".equals(resultDownInfo.getResult().getCode())
+                    || "1006".equals(resultDownInfo.getResult().getCode())
+                    || "0001".equals(resultDownInfo.getResult().getCode())
+                    || "0002".equals(resultDownInfo.getResult().getCode())
+                    || "0003".equals(resultDownInfo.getResult().getCode())
+                    || "0004".equals(resultDownInfo.getResult().getCode())
+                    || "0005".equals(resultDownInfo.getResult().getCode())
+                    || "0006".equals(resultDownInfo.getResult().getCode())
+                    || "0007".equals(resultDownInfo.getResult().getCode())
+                    || "0008".equals(resultDownInfo.getResult().getCode())
+                )){
+                    omsDisposeService.handleInvoiceRetryAllFail(accessToken, workInvoiceId, "发票信息获取失败,失败原因:" + resultDownInfo.getResult().getMessage(), informType);
                 }
             }
 

+ 5 - 6
src/main/java/com/jeeplus/modules/workinvoice/service/OMS/OMSDisposeService.java

@@ -36,7 +36,6 @@ public class OMSDisposeService {
     /**
      * 给accessToken查询的有效时间设置为1天
      */
-    private final int seconds = 86400;
     private static final String appId = Global.getConfig("omsAppId");
     private static final String appKey = Global.getConfig("omsAppKey");
     private static final String deptCode = Global.getConfig("omsDeptCode");
@@ -75,7 +74,7 @@ public class OMSDisposeService {
                 // 获取AccessToken 9998重试5次
                 accessToken = getOmsAccessTokenWithRetry(10, "accessToken", workInvoiceId, informType);
                 if(StringUtils.isNotBlank(accessToken)){
-                    jedis.setex("OMSAccessToken", seconds, accessToken);
+                    jedis.setex("OMSAccessToken", 86400, accessToken);
                     map.put("token状态", "重新获取token成功,存入Redis");
                 } else {
                     accessToken = "";
@@ -458,7 +457,7 @@ public class OMSDisposeService {
             jedis.hset(redisKey, "workInvoiceId", workInvoiceId);
             jedis.hset(redisKey, "informType", informType);
             jedis.hset(redisKey, "firstExecTime", String.valueOf(System.currentTimeMillis()));
-            jedis.expire(redisKey, seconds); // 1天过期
+            jedis.expire(redisKey, 7200); // 2小时过期
 
             // ========== 追加:封装Redis数据→转JSON→更新发票表(和红冲方法逻辑一致) ==========
             long redisStoreTime = System.currentTimeMillis() / 1000; // 秒级存储时间,用于后期回滚
@@ -469,7 +468,7 @@ public class OMSDisposeService {
             downloadTaskMap.put("informType", informType);
             downloadTaskMap.put("firstExecTime", String.valueOf(System.currentTimeMillis())); // 和Redis保持一致的毫秒数字符串
             downloadTaskMap.put("redisKey", redisKey);
-            downloadTaskMap.put("redisExpireSeconds", seconds);
+            downloadTaskMap.put("redisExpireSeconds", 7200);
             downloadTaskMap.put("redisStoreTime", redisStoreTime); // 新增秒级存储时间
 
             // Map转JSON字符串(单独捕获序列化异常,不影响核心逻辑)
@@ -539,7 +538,7 @@ public class OMSDisposeService {
                 // 获取AccessToken 9998重试5次
                 accessToken = getOmsAccessTokenWithRetry(10, "accessToken", workInvoiceId, informType);
                 if(StringUtils.isNotBlank(accessToken)){
-                    jedis.setex("OMSAccessToken", seconds, accessToken);
+                    jedis.setex("OMSAccessToken", 86400, accessToken);
                     map.put("token状态", "重新获取token成功,存入Redis");
                 } else {
                     accessToken = "";
@@ -602,7 +601,7 @@ public class OMSDisposeService {
                 // 获取AccessToken 9998重试5次
                 accessToken = getOmsAccessTokenWithRetry(10, "accessToken", workInvoiceId, informType);
                 if(StringUtils.isNotBlank(accessToken)){
-                    jedis.setex("OMSAccessToken", seconds, accessToken);
+                    jedis.setex("OMSAccessToken", 86400, accessToken);
                     map.put("token状态", "重新获取token成功,存入Redis");
                 } else {
                     accessToken = "";

+ 14 - 0
src/main/java/com/jeeplus/modules/workinvoice/service/OMS/RedInvoiceDownloadService.java

@@ -175,6 +175,20 @@ public class RedInvoiceDownloadService {
                             }
                         }
                     }
+                }else if(null != resultDownInfo.getResult() && ("1002".equals(resultDownInfo.getResult().getCode())
+                        || "1001".equals(resultDownInfo.getResult().getCode())
+                        || "1005".equals(resultDownInfo.getResult().getCode())
+                        || "1006".equals(resultDownInfo.getResult().getCode())
+                        || "0001".equals(resultDownInfo.getResult().getCode())
+                        || "0002".equals(resultDownInfo.getResult().getCode())
+                        || "0003".equals(resultDownInfo.getResult().getCode())
+                        || "0004".equals(resultDownInfo.getResult().getCode())
+                        || "0005".equals(resultDownInfo.getResult().getCode())
+                        || "0006".equals(resultDownInfo.getResult().getCode())
+                        || "0007".equals(resultDownInfo.getResult().getCode())
+                        || "0008".equals(resultDownInfo.getResult().getCode())
+                )){
+                    omsDisposeService.handleInvoiceRetryAllFail(accessToken, workInvoiceId, "发票信息获取失败,失败原因:" + resultDownInfo.getResult().getMessage(), informType);
                 }
             }
 

+ 1 - 1
src/main/java/com/jeeplus/modules/workinvoice/service/OMS/RedInvoiceScheduledService.java

@@ -48,7 +48,7 @@ public class RedInvoiceScheduledService {
         // 时间窗口校验
         Calendar now = Calendar.getInstance();
         int hour = now.get(Calendar.HOUR_OF_DAY);
-        if (hour < 8 || hour >= 18) {
+        if (hour < 8 || hour >= 20) {
             System.out.println("[定时任务] 非业务时段,跳过");
             return;
         }

+ 64 - 2
src/main/java/com/jeeplus/modules/workinvoice/service/WorkInvoiceService.java

@@ -4314,7 +4314,7 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
 		AjaxJson j = new AjaxJson();
 		//查询开票人员的手机号
 		User user = userDao.get(workInvoice.getCreateBy().getId());
-		user.setMobile("18164266544");
+		//user.setMobile("18164266544");
 		if (StringUtils.isNotBlank(user.getMobile()) && mobilePattern.matcher(user.getMobile().trim()).matches() ) {
 			//验证手机号是否已经注册
 			if(userDao.validateMobile("mobile") == null){
@@ -4489,9 +4489,71 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
 
 		//发起短信通知,用于通知开票人
 		AjaxJson j = new AjaxJson();
+
+
+		if(errorMessage.contains("未登录或登录状态已失效")){
+			List<User> cwUsers = UserUtils.getByRoleActivityEnnameOnNotCompany("cwygevod",3,cwbOffice.getId(),"5",workInvoice.getCreateBy(),workInvoice.getCompanyId());
+			for (User cwuser : cwUsers) {
+				//查询开票人员的手机号
+				cwuser = userDao.get(workInvoice.getCreateBy().getId());
+				//user.setMobile("18164266544");
+				if (StringUtils.isNotBlank(cwuser.getMobile()) && mobilePattern.matcher(cwuser.getMobile().trim()).matches() ) {
+					//验证手机号是否已经注册
+					if(userDao.validateMobile("mobile") == null){
+						HashMap<String,Object> result = null;
+						try{
+							//调用工具类返回结果
+							result = ALiYunSmsUtil.omsWorkInvoiceErrorSms(cwuser.getMobile(), workInvoice.getNumber());
+							Integer statusCode = (Integer) result.get("statusCode");
+							if (200 == statusCode) {
+								System.out.println("进入获取密码修改短信通知接口2。获取阿里云短信通知成功");
+								j.setSuccess(true);
+								j.setErrorCode("-1");
+								j.setMsg("短信发送成功!");
+
+							}else if(10001 == statusCode){
+
+								j.setSuccess(false);
+								j.setErrorCode("2");
+								String message = (String) result.get("message");
+								//j.setMsg("短信发送失败,错误代码:"+result+",请联系管理员。");
+								j.setMsg(message);
+								j.put("ErrorXml",result);
+							}else if(10002 == statusCode){
+								j.setSuccess(false);
+								j.setErrorCode("2");
+								j.put("message","账户短信量余额不足,请联系管理员进行充值!");
+								j.put("ErrorXml",result);
+							}else if(10003 == statusCode){
+								j.setSuccess(false);
+								j.setErrorCode("2");
+								j.put("message","手机号获取验证码次数已达每日上限!");
+								j.put("ErrorXml",result);
+							}else{
+								j.setSuccess(false);
+								j.setErrorCode("2");
+								j.put("message","短信发送失败,错误代码:101,请联系管理员!");
+								j.put("ErrorXml",result);
+							}
+						}catch (Exception e){
+							System.out.println("阿里云发送短信失败。失败原因为:" + e.getMessage());
+							logger.error("调用短信接口发生错误", e);  // 记录详细日志
+							e.printStackTrace();
+							logger.info("5");
+							j.setSuccess(false);
+							j.setErrorCode("101");
+							j.setMsg("短信发送失败!");
+						}
+						finally {
+
+						}
+					}
+				}
+			}
+		}
+
 		//查询开票人员的手机号
 		User user = userDao.get(workInvoice.getCreateBy().getId());
-		user.setMobile("18164266544");
 		if (StringUtils.isNotBlank(user.getMobile()) && mobilePattern.matcher(user.getMobile().trim()).matches() ) {
 			//验证手机号是否已经注册
 			if(userDao.validateMobile("mobile") == null){