2026.3.19 晚

缓存出库确认后台
This commit is contained in:
1009473166@qq.com
2026-04-27 15:58:34 +08:00
parent 3729d0df5f
commit 52ce9135da
20 changed files with 320 additions and 162 deletions

View File

@@ -659,7 +659,7 @@ public class ToErpServiceImpl implements IToErpService {
callBackErp.setCcompany(inStockin.getCompanyShortName()); // 公司简称
callBackErp.setCcode(inStockin.getStockinId()); // wms 单据号
callBackErp.setDdate(inStockin.getFinishDate()); // 操作日期
callBackErp.setCintype("1"); // 业务类型
callBackErp.setCintype(inStockin.getInType()); // 业务类型
callBackErp.setCvencode(inStockin.getSupplierNo()); // 供应商编码
callBackErp.setCvenname(inStockin.getSupplierNo()); // 供应商名称
callBackErp.setCoptname(inStockin.getCreateManId()); // 操作人
@@ -720,7 +720,7 @@ public class ToErpServiceImpl implements IToErpService {
String sendMsg = JSONUtil.toJsonStr(callBackErp);
try {
//todo 发送给erp 成功失败改状态
RequestLog requestLog = requestLogService.getRequestLog("http://192.168.188.235/app1/api?type=1&key=1", JSONUtil.toJsonStr(callBackErp), "入库回传", "wms", "erp");
RequestLog requestLog = requestLogService.getRequestLog("http://192.168.188.235/app1/api?type=1&key=1", JSONUtil.toJsonStr(callBackErp), "入库回传", "wms", "erp", inStockin.getInType(), inStockin.getAccountSetNo());
if ("1".equals(requestLog.getIsSuccessful())) {
inStockin.setSendStatus("1");
inStockin.setSendTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
@@ -728,6 +728,8 @@ public class ToErpServiceImpl implements IToErpService {
inStockinDetailParam.setSendStatus("1");
inStockinDetailParam.setSendTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
inStockinDetailParam.setMsg("成功");
inStockinDetailBackService.insertInStockInDetailBackFinish(inStockinDetails);
inStockinDetailBackService.deleteInStockInDetailList(inStockinDetails);
} else {
inStockin.setSendStatus("2");
inStockin.setSendTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
@@ -739,6 +741,7 @@ public class ToErpServiceImpl implements IToErpService {
inStockinBackService.updateInStockinBack(inStockin);
inStockinDetailBackService.updateInStockinDetailBack(inStockinDetailParam);
} catch (Exception e) {
inStockin.setSendStatus("2");
inStockin.setSendTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
@@ -752,6 +755,11 @@ public class ToErpServiceImpl implements IToErpService {
}
public static void main(String[] args) {
System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
}
@Override
public void callbackDeliveryOutNoticeNew() {
OutStockoutBack outStockoutBack = outStockoutBackService.selelctTopOutStockout();

View File

@@ -44,7 +44,7 @@ public class ToWcsServiceImpl implements IToWcsService {
@Override
eduled(fixedDelay=1500)
@Scheduled(fixedDelay=1500)
public void pushOutMydoJob() {
//查询所有未推送的料箱出库作业
MydoJob mydoJobParam = new MydoJob();

View File

@@ -4,18 +4,18 @@ import java.util.List;
import com.ruoyi.in.stockin.domain.InStockin;
import com.ruoyi.in.stockindeatilback.domain.InStockinDetailBack;
import org.apache.ibatis.annotations.Param;
/**
* 入库单据子信息Mapper接口
*
*
* @author ruoyi
* @date 2026-01-27
*/
public interface InStockinDetailBackMapper
{
public interface InStockinDetailBackMapper {
/**
* 查询入库单据子信息
*
*
* @param stockinDetailId 入库单据子信息主键
* @return 入库单据子信息
*/
@@ -23,7 +23,7 @@ public interface InStockinDetailBackMapper
/**
* 查询入库单据子信息列表
*
*
* @param inStockinDetailBack 入库单据子信息
* @return 入库单据子信息集合
*/
@@ -31,16 +31,17 @@ public interface InStockinDetailBackMapper
/**
* 新增入库单据子信息
*
*
* @param inStockinDetailBack 入库单据子信息
* @return 结果
*/
public int insertInStockinDetailBack(InStockinDetailBack inStockinDetailBack);
public int insertInStockinDetailBackById(InStockin inStockin);
/**
* 修改入库单据子信息
*
*
* @param inStockinDetailBack 入库单据子信息
* @return 结果
*/
@@ -48,7 +49,7 @@ public interface InStockinDetailBackMapper
/**
* 删除入库单据子信息
*
*
* @param stockinDetailId 入库单据子信息主键
* @return 结果
*/
@@ -56,9 +57,13 @@ public interface InStockinDetailBackMapper
/**
* 批量删除入库单据子信息
*
*
* @param stockinDetailIds 需要删除的数据主键集合
* @return 结果
*/
public int deleteInStockinDetailBackByStockinDetailIds(String[] stockinDetailIds);
void insertInStockInDetailBackFinish(@Param("list") List<InStockinDetailBack> inStockinDetailParam);
void deleteInStockInDetailList(@Param("idList") List<InStockinDetailBack> inStockinDetails);
}

View File

@@ -58,4 +58,8 @@ public interface IInStockinDetailBackService
* @return 结果
*/
public int deleteInStockinDetailBackByStockinDetailId(String stockinDetailId);
void insertInStockInDetailBackFinish(List<InStockinDetailBack> inStockinDetailParam);
void deleteInStockInDetailList(List<InStockinDetailBack> inStockinDetails);
}

View File

@@ -90,4 +90,14 @@ public class InStockinDetailBackServiceImpl implements IInStockinDetailBackServi
{
return inStockinDetailBackMapper.deleteInStockinDetailBackByStockinDetailId(stockinDetailId);
}
@Override
public void insertInStockInDetailBackFinish(List<InStockinDetailBack> inStockinDetailParam) {
inStockinDetailBackMapper.insertInStockInDetailBackFinish(inStockinDetailParam);
}
@Override
public void deleteInStockInDetailList(List<InStockinDetailBack> inStockinDetails) {
inStockinDetailBackMapper.deleteInStockInDetailList(inStockinDetails);
}
}

View File

@@ -1,6 +1,7 @@
package com.ruoyi.in.stockindetail.mapper;
import com.ruoyi.in.stockin.domain.InStockin;
import com.ruoyi.in.stockindeatilback.domain.InStockinDetailBack;
import com.ruoyi.in.stockindetail.domain.InStockinDetail;
import org.apache.ibatis.annotations.Param;
@@ -69,4 +70,5 @@ public interface InStockinDetailMapper
void deleteInStockinDetailByStockinGuid(String stockinGuid);
InStockinDetail selectStockinByDetailById(InStockinDetail inStockinDetail);
}

View File

@@ -2,6 +2,7 @@ package com.ruoyi.in.stockindetail.service;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.in.stockin.domain.InStockin;
import com.ruoyi.in.stockindeatilback.domain.InStockinDetailBack;
import com.ruoyi.in.stockindetail.domain.InStockinDetail;
import java.util.List;
@@ -81,4 +82,6 @@ public interface IInStockinDetailService
public InStockinDetail selectStockinByDetailById(InStockinDetail inStockinDetail);
}

View File

@@ -3,6 +3,7 @@ package com.ruoyi.in.stockindetail.service.impl;
import com.ruoyi.common.annotation.DataScope;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.in.stockin.domain.InStockin;
import com.ruoyi.in.stockindeatilback.domain.InStockinDetailBack;
import com.ruoyi.in.stockindetail.domain.InStockinDetail;
import com.ruoyi.in.stockindetail.mapper.InStockinDetailMapper;
import com.ruoyi.in.stockindetail.service.IInStockinDetailService;
@@ -127,4 +128,6 @@ public class InStockinDetailServiceImpl implements IInStockinDetailService
return inStockinDetailMapper.selectStockinByDetailById(inStockinDetail);
}
}

View File

@@ -69,6 +69,9 @@ public interface IRequestLogService
* @return
*/
public RequestLog getRequestLog(String url, String param, String remark,String source,String target);
public RequestLog getRequestLog(String url, String param, String remark,String source,String target,String billType,String ciccid);
/**
* 接收接口记录
*

View File

@@ -3,6 +3,7 @@ package com.ruoyi.log.service.impl;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONUtil;
import com.ruoyi.common.core.domain.AjaxResult;
@@ -24,8 +25,7 @@ import java.util.List;
*/
@Service
@Slf4j
public class RequestLogServiceImpl implements IRequestLogService
{
public class RequestLogServiceImpl implements IRequestLogService {
@Autowired
private RequestLogMapper requestLogMapper;
@@ -36,8 +36,7 @@ public class RequestLogServiceImpl implements IRequestLogService
* @return 接口记录
*/
@Override
public RequestLog selectRequestLogByRequestId(Long requestId)
{
public RequestLog selectRequestLogByRequestId(Long requestId) {
return requestLogMapper.selectRequestLogByRequestId(requestId);
}
@@ -48,8 +47,7 @@ public class RequestLogServiceImpl implements IRequestLogService
* @return 接口记录
*/
@Override
public List<RequestLog> selectRequestLogList(RequestLog requestLog)
{
public List<RequestLog> selectRequestLogList(RequestLog requestLog) {
return requestLogMapper.selectRequestLogList(requestLog);
}
@@ -60,10 +58,9 @@ public class RequestLogServiceImpl implements IRequestLogService
* @return 结果
*/
@Override
public int insertRequestLog(RequestLog requestLog)
{
public int insertRequestLog(RequestLog requestLog) {
return requestLogMapper.insertRequestLog(requestLog);
return requestLogMapper.insertRequestLog(requestLog);
}
@@ -74,8 +71,7 @@ public class RequestLogServiceImpl implements IRequestLogService
* @return 结果
*/
@Override
public int updateRequestLog(RequestLog requestLog)
{
public int updateRequestLog(RequestLog requestLog) {
return requestLogMapper.updateRequestLog(requestLog);
}
@@ -86,8 +82,7 @@ public class RequestLogServiceImpl implements IRequestLogService
* @return 结果
*/
@Override
public int deleteRequestLogByRequestIds(Long[] requestIds)
{
public int deleteRequestLogByRequestIds(Long[] requestIds) {
return requestLogMapper.deleteRequestLogByRequestIds(requestIds);
}
@@ -98,8 +93,7 @@ public class RequestLogServiceImpl implements IRequestLogService
* @return 结果
*/
@Override
public int deleteRequestLogByRequestId(Long requestId)
{
public int deleteRequestLogByRequestId(Long requestId) {
return requestLogMapper.deleteRequestLogByRequestId(requestId);
}
@@ -111,7 +105,7 @@ public class RequestLogServiceImpl implements IRequestLogService
* @return requestLog
*/
@Override
public RequestLog getRequestLog(String url, String param, String remark,String source,String target) {
public RequestLog getRequestLog(String url, String param, String remark, String source, String target) {
RequestLog requestLog = new RequestLog();
requestLog.setRequestTime(DateUtil.formatDateTime(new Date()));
requestLog.setSourceSystem(source);
@@ -122,7 +116,9 @@ public class RequestLogServiceImpl implements IRequestLogService
requestLog.setRequestBody(param);
requestLog.setRequestUrl(url);
try {
String resStr = HttpUtil.post(url, param);
String resStr = HttpRequest.post(url).form("datajson", param).form("ibilltype", "").form("cacc_id", "").contentType("application/x-www-from-urlencoded").
timeout(2000).execute().body();
// String resStr = HttpUtil.post(url, param);
requestLog.setResponseBody(resStr);
// 判断resStr的状态码,如果不是200抛出异常让catch捕获
if (!JSONUtil.isJsonObj(resStr)) {
@@ -147,13 +143,54 @@ public class RequestLogServiceImpl implements IRequestLogService
return requestLog;
}
@Override
public RequestLog getRequestLog(String url, String param, String remark, String source, String target, String billType, String ciccid) {
RequestLog requestLog = new RequestLog();
requestLog.setRequestTime(DateUtil.formatDateTime(new Date()));
requestLog.setSourceSystem(source);
requestLog.setTargetSystem(target);
requestLog.setEndpoint(remark);
requestLog.setRequestMethod("post");
requestLog.setRequestHeaders(null);
requestLog.setRequestBody("datajson:" + param + ",ibilltype:" + billType + ",cacc_id:" + ciccid);
requestLog.setRequestUrl(url);
try {
String resStr = HttpRequest.post(url).form("datajson", param).form("ibilltype", billType).form("cacc_id", ciccid).contentType("application/x-www-from-urlencoded").
timeout(2000).execute().body();
// String resStr = HttpUtil.post(url, param);
requestLog.setResponseBody(resStr);
// 判断resStr的状态码,如果不是200抛出异常让catch捕获
if (!JSONUtil.isJsonObj(resStr)) {
throw new RuntimeException("返回结果不是有效的JSON对象");
}
cn.hutool.json.JSONObject jsonObject = JSONUtil.parseObj(resStr);
Object codeObj = jsonObject.get("code");
if (codeObj == null || !codeObj.toString().equals("200")) {
throw new RuntimeException("请求失败,状态码: " + (codeObj != null ? codeObj.toString() : "null"));
}
requestLog.setResponseTime(DateUtil.formatDateTime(new Date()));
requestLog.setResponseStatus("1");
requestLog.setDuration(Convert.toStr(DateUtil.between(Convert.toDate(requestLog.getRequestTime()), Convert.toDate(requestLog.getResponseTime()), DateUnit.MS)));
requestLog.setIsSuccessful("1");
} catch (Exception e) {
requestLog.setErrorDetails(e.getMessage());
requestLog.setIsSuccessful("0");
requestLog.setResponseStatus("0");
} finally {
insertRequestLog(requestLog);
}
return requestLog;
}
/**
* 插入请求日志
*
* @return requestLog
*/
@Override
public RequestLog getRequestLog(String param, String remark,AjaxResult ajaxResult) {
public RequestLog getRequestLog(String param, String remark, AjaxResult ajaxResult) {
RequestLog requestLog = new RequestLog();
requestLog.setRequestTime(DateUtil.formatDateTime(new Date()));
requestLog.setRequestBody(param);
@@ -164,9 +201,9 @@ public class RequestLogServiceImpl implements IRequestLogService
requestLog.setResponseTime(DateUtil.formatDateTime(new Date()));
requestLog.setDuration(Convert.toStr(DateUtil.between(Convert.toDate(requestLog.getRequestTime()), Convert.toDate(requestLog.getResponseTime()), DateUnit.MS)));
requestLog.setResponseStatus("1");
if (ajaxResult.isSuccess()){
if (ajaxResult.isSuccess()) {
requestLog.setIsSuccessful("1");
}else {
} else {
requestLog.setIsSuccessful("0");
}
requestLog.setResponseBody(Convert.toStr(ajaxResult.get("msg")));

View File

@@ -6,9 +6,9 @@ spring:
druid:
# 主库数据源
master:
url: jdbc:sqlserver://192.168.188.236:1433;databaseName=FT546-wms;encrypt=true;trustServerCertificate=true;
url: jdbc:sqlserver://127.0.0.1:1433;databaseName=FT546-wms;encrypt=true;trustServerCertificate=true;
username: sa
password: Flrd0914.
password: 123456
# 从库数据源
slave:
# 从数据源开关/默认关闭

View File

@@ -71,7 +71,7 @@ spring:
# redis 配置
redis:
# 地址
host: 192.168.188.236
host: 127.0.0.1
# 端口,默认为6379
port: 6379
# 数据库索引

View File

@@ -27,6 +27,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="sendStatus" column="send_status"/>
<result property="sendTime" column="send_time"/>
<result property="msg" column="msg"/>
<result property="msg" column="msg"/>
<result property="msg" column="msg"/>
</resultMap>
<sql id="selectInStockinBackVo">

View File

@@ -274,10 +274,30 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
delete from in_stockin_detail_back where stockin_detail_id = #{stockinDetailId}
</delete>
<insert id="insertInStockInDetailBackFinish" parameterType="java.util.List">
INSERT INTO in_stockin_detail_back_finish
<foreach collection="list" item="item" separator="UNION ALL">
SELECT * FROM in_stockin_detail_back
WHERE stockin_detail_id = #{item.stockinDetailId}
</foreach>
</insert>
<delete id="deleteInStockinDetailBackByStockinDetailIds" parameterType="String">
delete from in_stockin_detail_back where stockin_detail_id in
<foreach item="stockinDetailId" collection="array" open="(" separator="," close=")">
#{stockinDetailId}
</foreach>
</delete>
<delete id="deleteInStockInDetailList">
DELETE FROM in_stockin_detail
WHERE stockin_detail_id IN
<foreach collection="idList" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>

View File

@@ -343,4 +343,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</where>
order by ist.create_date desc
</select>
</mapper>