This commit is contained in:
syngna_qiao 2024-12-31 20:31:19 +08:00
commit 291a6db1e1
19 changed files with 190 additions and 308 deletions

View File

@ -1,9 +1,11 @@
package com.foreverwin.iep.integration.domain;
import com.alibaba.fastjson.annotation.JSONField;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.time.LocalDateTime;
import java.util.List;
@EqualsAndHashCode(callSuper = true)
@ -45,4 +47,10 @@ public class InvokeRequest extends CustomizeRequest {
private boolean retry = false;
private String srcRequestBody;
private Integer retryCount;
private LocalDateTime dateCreate;
private String creator;
}

View File

@ -7,9 +7,7 @@ import com.foreverwin.mom.common.core.util.R;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
/**
@ -56,4 +54,11 @@ public class IntInDataController {
public R selectByToSystem(IntInDataDTO intInDataDTO) {
return R.ok(intInDataService.distinctToSystem(intInDataDTO));
}
@ApiOperation(value = "帐期关闭的后续重抛逻辑", notes = "帐期关闭的后续重抛逻辑")
@PostMapping("/tempSendSapAction")
public R tempSendSapAction(@RequestParam(value = "postType") String postType) {
return R.ok(intInDataService.tempSendSapAction(postType));
}
}

View File

@ -5,12 +5,8 @@ import com.alibaba.fastjson.JSONObject;
import com.foreverwin.iep.common.faas.common.util.StringUtils;
import com.foreverwin.iep.integration.domain.InvokeRequest;
import com.foreverwin.iep.integration.domain.InvokeResponse;
import com.foreverwin.iep.integration.entity.IntInData;
import com.foreverwin.iep.integration.entity.IntInDataLog;
import com.foreverwin.iep.integration.service.IntInDataLogService;
import com.foreverwin.iep.integration.service.IntInDataService;
import com.foreverwin.iep.integration.utils.Local;
import com.foreverwin.mom.common.security.util.SecurityUtils;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
@ -19,7 +15,6 @@ import org.springframework.web.multipart.MultipartFile;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.UUID;
/**
* 传送ESB的文件上传和下载查看服务
@ -29,7 +24,6 @@ import java.util.UUID;
public class EsbFileDealService {
private final IntInDataService intInDataService;
private final IntInDataLogService intInDataLogService;
@Transactional(propagation = Propagation.REQUIRES_NEW)
public InvokeResponse call(InvokeRequest invokeRequest, MultipartFile multipartFile) {
@ -60,13 +54,13 @@ public class EsbFileDealService {
}
invokeResponse.setTransTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
invokeResponse.setTransSid(reqId);
saveLogData(invokeRequest, invokeResponse);
intInDataService.saveLogData(invokeRequest, invokeResponse);
}
return invokeResponse;
}
@Transactional(propagation = Propagation.REQUIRES_NEW)
public InvokeResponse call(InvokeRequest invokeRequest,String objectFilePath ) {
public InvokeResponse call(InvokeRequest invokeRequest, String objectFilePath) {
String reqId = invokeRequest.getTransSid();
InvokeResponse invokeResponse = new InvokeResponse(invokeRequest);
String errorMsg = "成功";
@ -92,37 +86,9 @@ public class EsbFileDealService {
}
invokeResponse.setTransTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
invokeResponse.setTransSid(reqId);
saveLogData(invokeRequest, invokeResponse);
intInDataService.saveLogData(invokeRequest, invokeResponse);
}
return invokeResponse;
}
private void saveLogData(InvokeRequest invokeRequest, InvokeResponse invokeResponse) {
if (StringUtils.isNotEmpty(invokeRequest.getTransSid())) {
// 存储日志
IntInData intInData = new IntInData();
intInData.setSid(invokeRequest.getTransSid());
intInData.setRequest(invokeRequest.getMessageContent());
intInData.setFunctionName(invokeRequest.getMessageId());
intInData.setKeyValue(invokeRequest.getKeyValue());
intInData.setFromSystem(invokeRequest.getFromSystem());
intInData.setToSystem(invokeRequest.getToSystem());
intInData.setRetryCount(0);
intInData.setSite(invokeRequest.getSite());
intInData.setCreator(SecurityUtils.getUserName());
intInData.setDateCreate(LocalDateTime.now());
intInDataService.save(intInData);
IntInDataLog log = new IntInDataLog();
log.setSid(UUID.randomUUID().toString());
log.setIntInDataSid(intInData.getSid());
log.setCreator(SecurityUtils.getUserName());
log.setDateCreate(LocalDateTime.now());
log.setSeq(0);
log.setMessage(StringUtils.isEmpty(invokeResponse.getMessageContent()) ? "N/A" : invokeResponse.getMessageContent());
log.setResponse(invokeResponse.getObjectResponse().toJSONString());
log.setState(invokeResponse.getResult());
intInDataLogService.save(log);
}
}
}

View File

@ -4,14 +4,10 @@ import com.alibaba.fastjson.JSONObject;
import com.foreverwin.iep.common.faas.common.util.StringUtils;
import com.foreverwin.iep.integration.domain.InvokeRequest;
import com.foreverwin.iep.integration.domain.InvokeResponse;
import com.foreverwin.iep.integration.entity.IntInData;
import com.foreverwin.iep.integration.entity.IntInDataLog;
import com.foreverwin.iep.integration.service.HandlerService;
import com.foreverwin.iep.integration.service.IntInDataLogService;
import com.foreverwin.iep.integration.service.IntInDataService;
import com.foreverwin.iep.integration.utils.JS;
import com.foreverwin.iep.integration.utils.Local;
import com.foreverwin.mom.common.security.util.SecurityUtils;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
@ -19,7 +15,6 @@ import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.UUID;
/**
* MES交货单拣配状态回传
@ -29,7 +24,6 @@ import java.util.UUID;
public class Fssm007Service implements HandlerService {
private final IntInDataService intInDataService;
private final IntInDataLogService intInDataLogService;
@Override
@Transactional(propagation = Propagation.REQUIRES_NEW)
@ -64,7 +58,7 @@ public class Fssm007Service implements HandlerService {
}
invokeResponse.setTransTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
invokeResponse.setTransSid(reqId);
saveLogData(invokeRequest, invokeResponse);
intInDataService.saveLogData(invokeRequest, invokeResponse);
}
return invokeResponse;
}
@ -75,32 +69,4 @@ public class Fssm007Service implements HandlerService {
return null;
}
private void saveLogData(InvokeRequest invokeRequest, InvokeResponse invokeResponse) {
if (StringUtils.isNotEmpty(invokeRequest.getTransSid())) {
// 存储日志
IntInData intInData = new IntInData();
intInData.setSid(invokeRequest.getTransSid());
intInData.setRequest(invokeRequest.getMessageContent());
intInData.setFunctionName(invokeRequest.getMessageId());
intInData.setKeyValue(invokeRequest.getKeyValue());
intInData.setFromSystem(invokeRequest.getFromSystem());
intInData.setToSystem(invokeRequest.getToSystem());
intInData.setRetryCount(0);
intInData.setSite(invokeRequest.getSite());
intInData.setCreator(SecurityUtils.getUserName());
intInData.setDateCreate(LocalDateTime.now());
intInDataService.save(intInData);
IntInDataLog log = new IntInDataLog();
log.setSid(UUID.randomUUID().toString());
log.setIntInDataSid(intInData.getSid());
log.setCreator(SecurityUtils.getUserName());
log.setDateCreate(LocalDateTime.now());
log.setSeq(0);
log.setMessage(StringUtils.isEmpty(invokeResponse.getMessageContent()) ? "N/A" : invokeResponse.getMessageContent());
log.setResponse(invokeResponse.getObjectResponse().toJSONString());
log.setState(invokeResponse.getResult());
intInDataLogService.save(log);
}
}
}

View File

@ -4,14 +4,10 @@ import com.alibaba.fastjson.JSONObject;
import com.foreverwin.iep.common.faas.common.util.StringUtils;
import com.foreverwin.iep.integration.domain.InvokeRequest;
import com.foreverwin.iep.integration.domain.InvokeResponse;
import com.foreverwin.iep.integration.entity.IntInData;
import com.foreverwin.iep.integration.entity.IntInDataLog;
import com.foreverwin.iep.integration.service.HandlerService;
import com.foreverwin.iep.integration.service.IntInDataLogService;
import com.foreverwin.iep.integration.service.IntInDataService;
import com.foreverwin.iep.integration.utils.JS;
import com.foreverwin.iep.integration.utils.Local;
import com.foreverwin.mom.common.security.util.SecurityUtils;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
@ -19,7 +15,6 @@ import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.UUID;
/**
* 交货单过账
@ -29,7 +24,6 @@ import java.util.UUID;
public class Fssm0081Service implements HandlerService {
private final IntInDataService intInDataService;
private final IntInDataLogService intInDataLogService;
@Override
@Transactional(propagation = Propagation.REQUIRES_NEW)
@ -38,6 +32,7 @@ public class Fssm0081Service implements HandlerService {
InvokeResponse invokeResponse = new InvokeResponse(invokeRequest);
String errorMsg = "成功";
String status = "S";
String result = "";
try {
// 处理响应
invokeResponse = SapUtil.sendSap(invokeRequest.getMessageContent());
@ -49,8 +44,9 @@ public class Fssm0081Service implements HandlerService {
JSONObject jsonObject = invokeResponse.getObjectResponse();
JSONObject bodyJson = jsonObject.getJSONObject("RESPONSE_BODY");
JSONObject outJson = bodyJson.getJSONObject("ES_OUTPUT");
String result = outJson.getString("MSGTY");
status = !"S".equals(result) ? "E" : result;
result = outJson.getString("MSGTY");
// 临时方案,SAP返回W当作成功处理
status = "S".equals(result) || SapUtil.W_STATUS.equals(result) ? "S" : "E";
String message = outJson.getString("MSGTX");
invokeResponse.setMessageContent(StringUtils.isEmpty(message) ? "成功" : message);
}
@ -64,7 +60,7 @@ public class Fssm0081Service implements HandlerService {
}
invokeResponse.setTransTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
invokeResponse.setTransSid(reqId);
saveLogData(invokeRequest, invokeResponse);
intInDataService.saveLogData(invokeRequest, invokeResponse, result);
}
return invokeResponse;
}
@ -75,32 +71,4 @@ public class Fssm0081Service implements HandlerService {
return null;
}
private void saveLogData(InvokeRequest invokeRequest, InvokeResponse invokeResponse) {
if (StringUtils.isNotEmpty(invokeRequest.getTransSid())) {
// 存储日志
IntInData intInData = new IntInData();
intInData.setSid(invokeRequest.getTransSid());
intInData.setRequest(invokeRequest.getMessageContent());
intInData.setFunctionName(invokeRequest.getMessageId());
intInData.setKeyValue(invokeRequest.getKeyValue());
intInData.setFromSystem(invokeRequest.getFromSystem());
intInData.setToSystem(invokeRequest.getToSystem());
intInData.setRetryCount(0);
intInData.setSite(invokeRequest.getSite());
intInData.setCreator(SecurityUtils.getUserName());
intInData.setDateCreate(LocalDateTime.now());
intInDataService.save(intInData);
IntInDataLog log = new IntInDataLog();
log.setSid(UUID.randomUUID().toString());
log.setIntInDataSid(intInData.getSid());
log.setCreator(SecurityUtils.getUserName());
log.setDateCreate(LocalDateTime.now());
log.setSeq(0);
log.setMessage(StringUtils.isEmpty(invokeResponse.getMessageContent()) ? "N/A" : invokeResponse.getMessageContent());
log.setResponse(invokeResponse.getObjectResponse().toJSONString());
log.setState(invokeResponse.getResult());
intInDataLogService.save(log);
}
}
}

View File

@ -4,14 +4,10 @@ import com.alibaba.fastjson.JSONObject;
import com.foreverwin.iep.common.faas.common.util.StringUtils;
import com.foreverwin.iep.integration.domain.InvokeRequest;
import com.foreverwin.iep.integration.domain.InvokeResponse;
import com.foreverwin.iep.integration.entity.IntInData;
import com.foreverwin.iep.integration.entity.IntInDataLog;
import com.foreverwin.iep.integration.service.HandlerService;
import com.foreverwin.iep.integration.service.IntInDataLogService;
import com.foreverwin.iep.integration.service.IntInDataService;
import com.foreverwin.iep.integration.utils.JS;
import com.foreverwin.iep.integration.utils.Local;
import com.foreverwin.mom.common.security.util.SecurityUtils;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
@ -19,7 +15,6 @@ import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.UUID;
/**
* 生产订单物料消耗接口、采购到货登记、采购退货通用接口
@ -29,7 +24,6 @@ import java.util.UUID;
public class GoodMvtCreateService implements HandlerService {
private final IntInDataService intInDataService;
private final IntInDataLogService intInDataLogService;
// ---------------------------- 批次物料消耗逻辑开始 -----------------------------------------------------
@Override
@ -40,6 +34,7 @@ public class GoodMvtCreateService implements HandlerService {
String errorMsg = "成功";
String status = "S";
String mblnr = "";
String result = "";
try {
// 处理响应
invokeResponse = SapUtil.sendSap(invokeRequest.getMessageContent());
@ -51,8 +46,9 @@ public class GoodMvtCreateService implements HandlerService {
JSONObject jsonObject = invokeResponse.getObjectResponse();
JSONObject bodyJson = jsonObject.getJSONObject("RESPONSE_BODY");
JSONObject outJson = bodyJson.getJSONObject("ES_OUTPUT");
String result = outJson.getString("MSGTY");
status = !"S".equals(result) ? "E" : result;
result = outJson.getString("MSGTY");
// 临时方案,SAP返回W当作成功处理
status = "S".equals(result) || SapUtil.W_STATUS.equals(result) ? "S" : "E";
String message = outJson.getString("MSGTX");
invokeResponse.setMessageContent(StringUtils.isEmpty(message) ? "成功" : message);
mblnr = outJson.getString("MBLNR");
@ -67,9 +63,9 @@ public class GoodMvtCreateService implements HandlerService {
}
invokeResponse.setTransTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
invokeResponse.setTransSid(reqId);
saveLogData(invokeRequest, invokeResponse);
intInDataService.saveLogData(invokeRequest, invokeResponse,result);
// 返回物料凭证号
if("S".equals(invokeResponse.getResult())){
if ("S".equals(invokeResponse.getResult())) {
invokeResponse.setMessageContent(mblnr);
}
}
@ -82,32 +78,4 @@ public class GoodMvtCreateService implements HandlerService {
return null;
}
private void saveLogData(InvokeRequest invokeRequest, InvokeResponse invokeResponse) {
if (StringUtils.isNotEmpty(invokeRequest.getTransSid())) {
// 存储日志
IntInData intInData = new IntInData();
intInData.setSid(invokeRequest.getTransSid());
intInData.setRequest(invokeRequest.getMessageContent());
intInData.setFunctionName(invokeRequest.getMessageId());
intInData.setKeyValue(invokeRequest.getKeyValue());
intInData.setFromSystem(invokeRequest.getFromSystem());
intInData.setToSystem(invokeRequest.getToSystem());
intInData.setRetryCount(0);
intInData.setSite(invokeRequest.getSite());
intInData.setCreator(SecurityUtils.getUserName());
intInData.setDateCreate(LocalDateTime.now());
intInDataService.save(intInData);
IntInDataLog log = new IntInDataLog();
log.setSid(UUID.randomUUID().toString());
log.setIntInDataSid(intInData.getSid());
log.setCreator(SecurityUtils.getUserName());
log.setDateCreate(LocalDateTime.now());
log.setSeq(0);
log.setMessage(StringUtils.isEmpty(invokeResponse.getMessageContent()) ? "N/A" : invokeResponse.getMessageContent());
log.setResponse(invokeResponse.getObjectResponse().toJSONString());
log.setState(invokeResponse.getResult());
intInDataLogService.save(log);
}
}
}

View File

@ -4,14 +4,10 @@ import com.alibaba.fastjson.JSONObject;
import com.foreverwin.iep.common.faas.common.util.StringUtils;
import com.foreverwin.iep.integration.domain.InvokeRequest;
import com.foreverwin.iep.integration.domain.InvokeResponse;
import com.foreverwin.iep.integration.entity.IntInData;
import com.foreverwin.iep.integration.entity.IntInDataLog;
import com.foreverwin.iep.integration.service.HandlerService;
import com.foreverwin.iep.integration.service.IntInDataLogService;
import com.foreverwin.iep.integration.service.IntInDataService;
import com.foreverwin.iep.integration.utils.JS;
import com.foreverwin.iep.integration.utils.Local;
import com.foreverwin.mom.common.security.util.SecurityUtils;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
@ -19,7 +15,6 @@ import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.UUID;
/**
* 交货单过账冲销
@ -29,7 +24,6 @@ import java.util.UUID;
public class GoodMvtReverseService implements HandlerService {
private final IntInDataService intInDataService;
private final IntInDataLogService intInDataLogService;
@Override
@Transactional(propagation = Propagation.REQUIRES_NEW)
@ -64,7 +58,7 @@ public class GoodMvtReverseService implements HandlerService {
}
invokeResponse.setTransTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
invokeResponse.setTransSid(reqId);
saveLogData(invokeRequest, invokeResponse);
intInDataService.saveLogData(invokeRequest, invokeResponse);
}
return invokeResponse;
}
@ -75,32 +69,4 @@ public class GoodMvtReverseService implements HandlerService {
return null;
}
private void saveLogData(InvokeRequest invokeRequest, InvokeResponse invokeResponse) {
if (StringUtils.isNotEmpty(invokeRequest.getTransSid())) {
// 存储日志
IntInData intInData = new IntInData();
intInData.setSid(invokeRequest.getTransSid());
intInData.setRequest(invokeRequest.getMessageContent());
intInData.setFunctionName(invokeRequest.getMessageId());
intInData.setKeyValue(invokeRequest.getKeyValue());
intInData.setFromSystem(invokeRequest.getFromSystem());
intInData.setToSystem(invokeRequest.getToSystem());
intInData.setRetryCount(0);
intInData.setSite(invokeRequest.getSite());
intInData.setCreator(SecurityUtils.getUserName());
intInData.setDateCreate(LocalDateTime.now());
intInDataService.save(intInData);
IntInDataLog log = new IntInDataLog();
log.setSid(UUID.randomUUID().toString());
log.setIntInDataSid(intInData.getSid());
log.setCreator(SecurityUtils.getUserName());
log.setDateCreate(LocalDateTime.now());
log.setSeq(0);
log.setMessage(StringUtils.isEmpty(invokeResponse.getMessageContent()) ? "N/A" : invokeResponse.getMessageContent());
log.setResponse(invokeResponse.getObjectResponse().toJSONString());
log.setState(invokeResponse.getResult());
intInDataLogService.save(log);
}
}
}

View File

@ -4,14 +4,11 @@ import com.alibaba.fastjson.JSONObject;
import com.foreverwin.iep.common.faas.common.util.StringUtils;
import com.foreverwin.iep.integration.domain.InvokeRequest;
import com.foreverwin.iep.integration.domain.InvokeResponse;
import com.foreverwin.iep.integration.entity.IntInData;
import com.foreverwin.iep.integration.entity.IntInDataLog;
import com.foreverwin.iep.integration.service.HandlerService;
import com.foreverwin.iep.integration.service.IntInDataLogService;
import com.foreverwin.iep.integration.service.IntInDataService;
import com.foreverwin.iep.integration.utils.JS;
import com.foreverwin.iep.integration.utils.Local;
import com.foreverwin.mom.common.security.util.SecurityUtils;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
@ -19,7 +16,6 @@ import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.UUID;
/**
* 单据冲销
@ -64,7 +60,7 @@ public class MesDlvRefReverseService implements HandlerService {
}
invokeResponse.setTransTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
invokeResponse.setTransSid(reqId);
saveLogData(invokeRequest, invokeResponse);
intInDataService.saveLogData(invokeRequest, invokeResponse);
}
return invokeResponse;
}
@ -75,32 +71,4 @@ public class MesDlvRefReverseService implements HandlerService {
return null;
}
private void saveLogData(InvokeRequest invokeRequest, InvokeResponse invokeResponse) {
if (StringUtils.isNotEmpty(invokeRequest.getTransSid())) {
// 存储日志
IntInData intInData = new IntInData();
intInData.setSid(invokeRequest.getTransSid());
intInData.setRequest(invokeRequest.getMessageContent());
intInData.setFunctionName(invokeRequest.getMessageId());
intInData.setKeyValue(invokeRequest.getKeyValue());
intInData.setFromSystem(invokeRequest.getFromSystem());
intInData.setToSystem(invokeRequest.getToSystem());
intInData.setRetryCount(0);
intInData.setSite(invokeRequest.getSite());
intInData.setCreator(SecurityUtils.getUserName());
intInData.setDateCreate(LocalDateTime.now());
intInDataService.save(intInData);
IntInDataLog log = new IntInDataLog();
log.setSid(UUID.randomUUID().toString());
log.setIntInDataSid(intInData.getSid());
log.setCreator(SecurityUtils.getUserName());
log.setDateCreate(LocalDateTime.now());
log.setSeq(0);
log.setMessage(StringUtils.isEmpty(invokeResponse.getMessageContent()) ? "N/A" : invokeResponse.getMessageContent());
log.setResponse(invokeResponse.getObjectResponse().toJSONString());
log.setState(invokeResponse.getResult());
intInDataLogService.save(log);
}
}
}

View File

@ -4,14 +4,11 @@ import com.alibaba.fastjson.JSONObject;
import com.foreverwin.iep.common.faas.common.util.StringUtils;
import com.foreverwin.iep.integration.domain.InvokeRequest;
import com.foreverwin.iep.integration.domain.InvokeResponse;
import com.foreverwin.iep.integration.entity.IntInData;
import com.foreverwin.iep.integration.entity.IntInDataLog;
import com.foreverwin.iep.integration.service.HandlerService;
import com.foreverwin.iep.integration.service.IntInDataLogService;
import com.foreverwin.iep.integration.service.IntInDataService;
import com.foreverwin.iep.integration.utils.JS;
import com.foreverwin.iep.integration.utils.Local;
import com.foreverwin.mom.common.security.util.SecurityUtils;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
@ -19,7 +16,6 @@ import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.UUID;
/**
* 公司间交货过账入库
@ -64,7 +60,7 @@ public class MesPostDnService implements HandlerService {
}
invokeResponse.setTransTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
invokeResponse.setTransSid(reqId);
saveLogData(invokeRequest, invokeResponse);
intInDataService.saveLogData(invokeRequest, invokeResponse);
}
return invokeResponse;
}
@ -75,32 +71,4 @@ public class MesPostDnService implements HandlerService {
return null;
}
private void saveLogData(InvokeRequest invokeRequest, InvokeResponse invokeResponse) {
if (StringUtils.isNotEmpty(invokeRequest.getTransSid())) {
// 存储日志
IntInData intInData = new IntInData();
intInData.setSid(invokeRequest.getTransSid());
intInData.setRequest(invokeRequest.getMessageContent());
intInData.setFunctionName(invokeRequest.getMessageId());
intInData.setKeyValue(invokeRequest.getKeyValue());
intInData.setFromSystem(invokeRequest.getFromSystem());
intInData.setToSystem(invokeRequest.getToSystem());
intInData.setRetryCount(0);
intInData.setSite(invokeRequest.getSite());
intInData.setCreator(SecurityUtils.getUserName());
intInData.setDateCreate(LocalDateTime.now());
intInDataService.save(intInData);
IntInDataLog log = new IntInDataLog();
log.setSid(UUID.randomUUID().toString());
log.setIntInDataSid(intInData.getSid());
log.setCreator(SecurityUtils.getUserName());
log.setDateCreate(LocalDateTime.now());
log.setSeq(0);
log.setMessage(StringUtils.isEmpty(invokeResponse.getMessageContent()) ? "N/A" : invokeResponse.getMessageContent());
log.setResponse(invokeResponse.getObjectResponse().toJSONString());
log.setState(invokeResponse.getResult());
intInDataLogService.save(log);
}
}
}

View File

@ -3,7 +3,6 @@ package com.foreverwin.iep.integration.handler.def.sap;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.foreverwin.iep.integration.constant.Msg;
import com.foreverwin.iep.integration.domain.InvokeRequest;
import com.foreverwin.iep.integration.domain.InvokeResponse;
@ -61,24 +60,10 @@ public class SapOrderStatus implements HandlerService {
response.setTransTime(nowLocalDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
if (Msg.S.equals(object.getString("responseStatus"))) {
response.setResult(Msg.S);
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("工单【");
List<String> shopOrderList = JS.parseArray(object.getString("responseDescription")).toJavaList(String.class);
if (CollectionUtils.isNotEmpty(shopOrderList)) {
for (int i = 0; i < shopOrderList.size(); i++) {
if (i == shopOrderList.size() - 1) {
stringBuilder.append(shopOrderList.get(i));
} else {
stringBuilder.append(shopOrderList.get(i)).append(",");
}
}
}
stringBuilder.append("】可关闭");
response.setMessageContent(stringBuilder.toString());
} else {
response.setResult(Msg.E);
response.setMessageContent(object.getString("responseDescription"));
}
response.setMessageContent(object.getString("responseDescription"));
return response;
}

View File

@ -54,6 +54,9 @@ public class SapUtil {
private static final String EsbUploadFileServerUrl = "https://agw.esb.nit.pub/oss/upload";
private static final String EsbGetFileServerUrl = "https://agw.esb.nit.pub/oss/file";
// 临时SAP关闭帐期,接口返回 W
public static final String W_STATUS = "W";
public static String appendHead(String jsonStr) {
JSONObject allJson = new JSONObject();

View File

@ -4,20 +4,15 @@ import com.alibaba.fastjson.JSONObject;
import com.foreverwin.iep.common.faas.common.util.StringUtils;
import com.foreverwin.iep.integration.domain.InvokeRequest;
import com.foreverwin.iep.integration.domain.InvokeResponse;
import com.foreverwin.iep.integration.entity.IntInData;
import com.foreverwin.iep.integration.entity.IntInDataLog;
import com.foreverwin.iep.integration.service.HandlerService;
import com.foreverwin.iep.integration.service.IntInDataLogService;
import com.foreverwin.iep.integration.service.IntInDataService;
import com.foreverwin.iep.integration.utils.JS;
import com.foreverwin.iep.integration.utils.Local;
import com.foreverwin.mom.common.security.util.SecurityUtils;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.UUID;
/**
* 根据物料获取SAP批次号-批量
@ -27,7 +22,6 @@ import java.util.UUID;
public class ZmmMesChargCreate1Service implements HandlerService {
private final IntInDataService intInDataService;
private final IntInDataLogService intInDataLogService;
@Override
public InvokeResponse call(InvokeRequest invokeRequest) {
@ -55,12 +49,12 @@ public class ZmmMesChargCreate1Service implements HandlerService {
errorMsg = e.getMessage();
} finally {
invokeResponse.setResult(status);
if(StringUtils.isEmpty(invokeResponse.getMessageContent())){
if (StringUtils.isEmpty(invokeResponse.getMessageContent())) {
invokeResponse.setMessageContent(errorMsg);
}
invokeResponse.setTransTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
invokeResponse.setTransSid(reqId);
saveLogData(invokeRequest, invokeResponse);
intInDataService.saveLogData(invokeRequest, invokeResponse);
}
return invokeResponse;
}
@ -71,32 +65,4 @@ public class ZmmMesChargCreate1Service implements HandlerService {
return null;
}
private void saveLogData(InvokeRequest invokeRequest, InvokeResponse invokeResponse) {
if (StringUtils.isNotEmpty(invokeRequest.getTransSid())) {
// 存储日志
IntInData intInData = new IntInData();
intInData.setSid(invokeRequest.getTransSid());
intInData.setRequest(invokeRequest.getMessageContent());
intInData.setFunctionName(invokeRequest.getMessageId());
intInData.setKeyValue(invokeRequest.getKeyValue());
intInData.setFromSystem(invokeRequest.getFromSystem());
intInData.setToSystem(invokeRequest.getToSystem());
intInData.setRetryCount(0);
intInData.setSite(invokeRequest.getSite());
intInData.setCreator(SecurityUtils.getUserName());
intInData.setDateCreate(LocalDateTime.now());
intInDataService.save(intInData);
IntInDataLog log = new IntInDataLog();
log.setSid(UUID.randomUUID().toString());
log.setIntInDataSid(intInData.getSid());
log.setCreator(SecurityUtils.getUserName());
log.setDateCreate(LocalDateTime.now());
log.setSeq(0);
log.setMessage(StringUtils.isEmpty(invokeResponse.getMessageContent()) ? "N/A" : invokeResponse.getMessageContent());
log.setResponse(invokeResponse.getObjectResponse().toJSONString());
log.setState(invokeResponse.getResult());
intInDataLogService.save(log);
}
}
}

View File

@ -6,6 +6,8 @@ import com.foreverwin.iep.common.base.FrontPage;
import com.foreverwin.iep.integration.dto.IntInDataLogDTO;
import com.foreverwin.iep.integration.entity.IntInDataLog;
import java.util.List;
/**
* 整合交易接收资料历程
*
@ -15,4 +17,6 @@ import com.foreverwin.iep.integration.entity.IntInDataLog;
public interface IntInDataLogService extends IService<IntInDataLog> {
IPage<IntInDataLogDTO> search(FrontPage page, IntInDataLogDTO dto);
List<IntInDataLogDTO> searchWData(String site, String functionName);
}

View File

@ -3,6 +3,8 @@ package com.foreverwin.iep.integration.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.foreverwin.iep.common.base.FrontPage;
import com.foreverwin.iep.integration.domain.InvokeRequest;
import com.foreverwin.iep.integration.domain.InvokeResponse;
import com.foreverwin.iep.integration.dto.IntInDataDTO;
import com.foreverwin.iep.integration.entity.IntInData;
@ -25,4 +27,10 @@ public interface IntInDataService extends IService<IntInData> {
List<IntInDataDTO> distinctToSystem( IntInDataDTO dto);
void retry(String sid);
void saveLogData(InvokeRequest invokeRequest, InvokeResponse invokeResponse, String srcStatus);
void saveLogData(InvokeRequest invokeRequest, InvokeResponse invokeResponse);
String tempSendSapAction(String postType);
}

View File

@ -77,6 +77,9 @@ public interface InvokeService {
}
default InvokeResponse log(InvokeRequest invokeRequest, InvokeResponse invokeResponse) {
if(invokeRequest.isRetry()){
return invokeResponse;
}
if (StrUtil.isBlank(invokeRequest.getTransSid())) {
// 沒交易馬自行生成SID,並記錄LOG
invokeRequest.setTransSid(SidUtils.genSid());

View File

@ -10,6 +10,8 @@ import com.foreverwin.iep.integration.service.IntInDataLogService;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 整合交易接收资料历程
*
@ -25,4 +27,9 @@ public class IntInDataLogServiceImpl extends ServiceImpl<IntInDataLogMapper, Int
return super.baseMapper.search(page, dto);
}
@Override
public List<IntInDataLogDTO> searchWData(String site, String functionName) {
return super.baseMapper.searchWData(site, functionName);
}
}

View File

@ -1,22 +1,32 @@
package com.foreverwin.iep.integration.service.impl;
import cn.hutool.extra.spring.SpringUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.foreverwin.iep.common.base.FrontPage;
import com.foreverwin.iep.common.faas.common.util.StringUtils;
import com.foreverwin.iep.integration.domain.InvokeRequest;
import com.foreverwin.iep.integration.domain.InvokeResponse;
import com.foreverwin.iep.integration.dto.IntInDataDTO;
import com.foreverwin.iep.integration.dto.IntInDataLogDTO;
import com.foreverwin.iep.integration.entity.IntInData;
import com.foreverwin.iep.integration.entity.IntInDataLog;
import com.foreverwin.iep.integration.handler.def.sap.SapUtil;
import com.foreverwin.iep.integration.mapper.IntInDataMapper;
import com.foreverwin.iep.integration.service.IntInDataLogService;
import com.foreverwin.iep.integration.service.IntInDataService;
import com.foreverwin.iep.integration.service.InvokeService;
import com.foreverwin.iep.integration.utils.Local;
import com.foreverwin.mom.common.core.exception.BusinessException;
import com.foreverwin.mom.common.data.tenant.TenantContextHolder;
import com.foreverwin.mom.common.security.util.SecurityUtils;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.List;
import java.util.UUID;
/**
* 整合交易接收资料
@ -28,6 +38,8 @@ import java.util.List;
@Service
public class IntInDataServiceImpl extends ServiceImpl<IntInDataMapper, IntInData> implements IntInDataService {
private final IntInDataLogService intInDataLogService;
@Override
public IPage<IntInDataDTO> search(FrontPage page, IntInDataDTO dto) {
dto.setSite(TenantContextHolder.getTenantId());
@ -55,13 +67,109 @@ public class IntInDataServiceImpl extends ServiceImpl<IntInDataMapper, IntInData
@Override
public void retry(String sid) {
IntInData intInData = getById(sid);
// InvokeRequest invokeRequest = JsonUtils.readValue(intInData.getRequest(), InvokeRequest.class);
InvokeRequest invokeRequest = JSON.parseObject(intInData.getRequest(), InvokeRequest.class);
InvokeRequest invokeRequest = new InvokeRequest();
invokeRequest.setTransSid(intInData.getSid());
invokeRequest.setFromSystem(intInData.getFromSystem());
invokeRequest.setToSystem(intInData.getToSystem());
invokeRequest.setMessageId(intInData.getFunctionName());
invokeRequest.setSite(intInData.getSite());
invokeRequest.setMessageContent(intInData.getRequest());
invokeRequest.setKeyValue(intInData.getKeyValue());
invokeRequest.setTransTime(Local.now());
invokeRequest.setRetry(false);
invokeRequest.setRetry(true);
invokeRequest.setRetryCount(intInData.getRetryCount());
invokeRequest.setCreator(intInData.getCreator());
invokeRequest.setDateCreate(intInData.getDateCreate());
InvokeService invokeService = SpringUtil.getBean("default");
invokeService.invoke(invokeRequest);
}
@Override
public void saveLogData(InvokeRequest invokeRequest, InvokeResponse invokeResponse, String srcStatus) {
invokeResponse.setResult(srcStatus);
saveLogData(invokeRequest, invokeResponse);
}
@Override
public void saveLogData(InvokeRequest invokeRequest, InvokeResponse invokeResponse) {
if (StringUtils.isNotEmpty(invokeRequest.getTransSid())) {
// 存储日志
IntInData intInData = new IntInData();
intInData.setSid(invokeRequest.getTransSid());
intInData.setSite(invokeRequest.getSite());
intInData.setRequest(invokeRequest.getMessageContent());
intInData.setFunctionName(invokeRequest.getMessageId());
intInData.setKeyValue(invokeRequest.getKeyValue());
intInData.setFromSystem(invokeRequest.getFromSystem());
intInData.setToSystem(invokeRequest.getToSystem());
if (invokeRequest.isRetry()) {
intInData.setRetryCount(invokeRequest.getRetryCount() + 1);
intInData.setCreator(invokeRequest.getCreator());
intInData.setDateCreate(invokeRequest.getDateCreate());
super.updateById(intInData);
} else {
intInData.setRetryCount(0);
intInData.setCreator(SecurityUtils.getUserName());
intInData.setDateCreate(LocalDateTime.now());
super.save(intInData);
}
IntInDataLog log = new IntInDataLog();
log.setSid(UUID.randomUUID().toString());
log.setIntInDataSid(intInData.getSid());
log.setCreator(SecurityUtils.getUserName());
log.setDateCreate(LocalDateTime.now());
log.setSeq(intInData.getRetryCount());
log.setMessage(StringUtils.isEmpty(invokeResponse.getMessageContent()) ? "N/A" : invokeResponse.getMessageContent());
log.setResponse(invokeResponse.getObjectResponse().toJSONString());
log.setState(invokeResponse.getResult());
intInDataLogService.save(log);
}
}
@Override
public String tempSendSapAction(String postType) {
// 1:交货单过账、2:非交货单过账
String messageId = "1".equals(postType)?"ZMM_MES_DELIVERY_UPDATE":"ZMM_MES_GOODSMVT_CREATE";
String site = TenantContextHolder.getTenantId();
List<IntInDataLogDTO> dataLogDTOS = intInDataLogService.searchWData(site, messageId);
if(dataLogDTOS!=null && dataLogDTOS.size()<1){
throw BusinessException.build(messageId+" 接口未检索到帐期关闭的数据");
}else{
Integer countSize = dataLogDTOS.size();
InvokeResponse invokeResponse = new InvokeResponse();
for (int i = 0; i < countSize; i++) {
IntInDataLogDTO dataLogDTO = dataLogDTOS.get(i);
String logId = dataLogDTO.getSid();
String requestBody = dataLogDTO.getRequest();
// 处理响应
invokeResponse = SapUtil.sendSap(requestBody);
if (!"E".equals(invokeResponse.getResult())) {
// 请求处理成功
JSONObject jsonObject = invokeResponse.getObjectResponse();
JSONObject bodyJson = jsonObject.getJSONObject("RESPONSE_BODY");
JSONObject outJson = bodyJson.getJSONObject("ES_OUTPUT");
String result = outJson.getString("MSGTY");
String message = outJson.getString("MSGTX");
if("S".equals(result)){
// 更新状态
IntInDataLog log = intInDataLogService.getById(logId);
log.setState("S");
log.setResponse(jsonObject.toJSONString());
intInDataLogService.updateById(log);
}else{
IntInDataLog log = intInDataLogService.getById(logId);
log.setState(result);
log.setResponse(jsonObject.toJSONString());
intInDataLogService.updateById(log);
throw BusinessException.build("共【"+countSize+"】数据,第【"+(i+1)+"】笔处理失败,结果为【"+result+"】,请求编号【"+logId+"】报: "+message);
}
}else{
throw BusinessException.build(messageId+" SAP处理失败");
}
}
return "成功处理【"+countSize+"】笔数据";
}
}
}

View File

@ -9,6 +9,8 @@ import com.foreverwin.iep.integration.entity.IntInDataLog;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 整合交易接收资料历程
*
@ -19,4 +21,6 @@ import org.apache.ibatis.annotations.Param;
public interface IntInDataLogMapper extends BaseMapper<IntInDataLog> {
IPage<IntInDataLogDTO> search(FrontPage page, @Param("dto") IntInDataLogDTO dto);
List<IntInDataLogDTO> searchWData(@Param("site") String site, @Param("functionName") String functionName);
}

View File

@ -31,4 +31,15 @@
</where>
order by A.SEQ DESC
</select>
<select id="searchWData" resultMap="fullMap">
select iidl.SID,iidl.INT_IN_DATA_SID,iidl.RESPONSE,iidl.SEQ,iidl.STATE ,iid.REQUEST
from wip.int_in_data_log iidl
left join wip.int_in_data iid on iid.SID = iidl.INT_IN_DATA_SID
where iid.SITE = #{site}
and iid.FUNCTION_NAME = #{functionName}
and iidl.STATE = 'W'
order by iid.DATE_CREATE asc
</select>
</mapper>