change - WMS定时同步原材料入库信息给ERP循环执行,取消事务

master
yinq 1 month ago
parent 164975af1e
commit d393650adc

@ -250,9 +250,18 @@ public class WmsApiController extends BaseController {
// @Log(title = "同步原材料入库信息", businessType = BusinessType.INSERT)
public R<AjaxResult> synchronizeInventoryInformationToERP() {
int result = 0;
StringBuilder errorBuffer = new StringBuilder();
Map<Long, List<WmsRawInstock>> purchaseOrderIdMap = wmsErpScheduledTaskService.synchronizeInventoryInformationToERP();
for (Long purchaseOrderId : purchaseOrderIdMap.keySet()) {
wmsErpScheduledTaskService.syncInventoryInformation(purchaseOrderIdMap, purchaseOrderId, result);
try {
wmsErpScheduledTaskService.syncInventoryInformation(purchaseOrderIdMap, purchaseOrderId, result);
} catch (Exception e) {
result++;
errorBuffer.append(result).append(e.getMessage()).append("||");
}
}
if (errorBuffer.length() > 0) {
return R.fail(errorBuffer.toString());
}
return R.ok();
}

@ -88,4 +88,12 @@ public interface IWmsRawInstockService
* @param wmsRawInstockContinueVo
*/
public int continueRawInstock(WmsRawInstockContinueVo wmsRawInstockContinueVo);
/**
* WMS
* 使REQUIRES_NEW使
*
* @param wmsRawInstockList
*/
public void updateWmsRawInStockWithoutRollback(List<WmsRawInstock> wmsRawInstockList);
}

@ -18,11 +18,11 @@ import com.hw.wms.config.WmsConfig;
import com.hw.wms.domain.*;
import com.hw.wms.mapper.*;
import com.hw.wms.service.IWmsErpScheduledTaskService;
import com.hw.wms.service.IWmsRawInstockService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
@ -68,6 +68,9 @@ public class WmsErpScheduledTaskServiceImpl implements IWmsErpScheduledTaskServi
@Autowired
private WmsConfig wmsConfig;
@Autowired
private IWmsRawInstockService wmsRawInstockService;
public int i=0;
//仓库编码
// private String FStockId = "CK050";
@ -88,7 +91,7 @@ public class WmsErpScheduledTaskServiceImpl implements IWmsErpScheduledTaskServi
return purchaseOrderIdMap;
}
@Transactional(rollbackFor = Exception.class)
// @Transactional(rollbackFor = Exception.class)
@Override
public void syncInventoryInformation(Map<Long, List<WmsRawInstock>> purchaseOrderIdMap, Long purchaseOrderId, int result) {
R<MesPurchaseOrder> purchaseOrderData = remoteMesService.selectPurchaseOrderJoinSupplierProjectByOrderId(purchaseOrderId, SecurityConstants.INNER);
@ -154,34 +157,17 @@ public class WmsErpScheduledTaskServiceImpl implements IWmsErpScheduledTaskServi
result++;
log.info("synchronizeInventoryInformationToERP同步原材料入库成功:" + paramsResulJson);
} else {
updateWmsRawInStockWithoutRollback(wmsRawInstockList);
wmsRawInstockService.updateWmsRawInStockWithoutRollback(wmsRawInstockList);
log.error("synchronizeInventoryInformationToERP同步原材料入库失败:" + paramsResulJson);
throw new ServiceException("同步原材料入库失败" + paramsResulJson);
}
} catch (Exception e) {
updateWmsRawInStockWithoutRollback(wmsRawInstockList);
wmsRawInstockService.updateWmsRawInStockWithoutRollback(wmsRawInstockList);
log.error("同步原材料入库失败:" + e);
throw new ServiceException("同步原材料入库失败::" + e);
}
}
/**
* WMS
* 使REQUIRES_NEW使
*
* @param wmsRawInstockList
*/
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void updateWmsRawInStockWithoutRollback(List<WmsRawInstock> wmsRawInstockList) {
for (WmsRawInstock rawInstock : wmsRawInstockList) {
rawInstock.setErpStatus("0");//同步ERP状态(0:失败,1成功)
rawInstock.setErpAmount(rawInstock.getInstockAmount());
rawInstock.setUpdateDate(DateUtils.getNowDate());
wmsRawInstockMapper.updateWmsRawInstock(rawInstock);
log.info("updateWmsRawInStockWithoutRollback原材料入库单失败状态:" + rawInstock.getRawInstockId());
}
}
/**
* ERP
*

@ -3,14 +3,13 @@ package com.hw.wms.service.impl;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
import com.hw.common.core.constant.MesConstants;
import com.hw.common.core.constant.SecurityConstants;
import com.hw.common.core.constant.WmsConstants;
import com.hw.common.core.domain.R;
import com.hw.common.core.exception.ServiceException;
import com.hw.common.core.utils.StringUtils;
import com.hw.common.core.utils.DateUtils;
import com.hw.common.core.utils.uuid.Seq;
import com.hw.common.security.utils.SecurityUtils;
import com.hw.mes.api.RemoteMesService;
@ -23,6 +22,8 @@ import com.hw.wms.domain.vo.*;
import com.hw.wms.mapper.WmsBaseLocationMapper;
import com.hw.wms.mapper.WmsRawOutstockMapper;
import com.hw.wms.mapper.WmsRawStockMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
@ -30,6 +31,7 @@ import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import com.hw.wms.mapper.WmsRawInstockMapper;
import com.hw.wms.domain.WmsRawInstock;
@ -46,6 +48,9 @@ import javax.annotation.Resource;
*/
@Service
public class WmsRawInstockServiceImpl implements IWmsRawInstockService {
private static final Logger log = LoggerFactory.getLogger(WmsRawInstockServiceImpl.class);
@Autowired
private WmsRawInstockMapper wmsRawInstockMapper;
@ -426,4 +431,21 @@ public class WmsRawInstockServiceImpl implements IWmsRawInstockService {
}
/**
* WMS
* 使REQUIRES_NEW使
*
* @param wmsRawInstockList
*/
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void updateWmsRawInStockWithoutRollback(List<WmsRawInstock> wmsRawInstockList) {
for (WmsRawInstock rawInstock : wmsRawInstockList) {
rawInstock.setErpStatus("0");//同步ERP状态(0:失败,1成功)
rawInstock.setErpAmount(new BigDecimal(0));
rawInstock.setUpdateDate(DateUtils.getNowDate());
wmsRawInstockMapper.updateWmsRawInstock(rawInstock);
log.info("updateWmsRawInStockWithoutRollback原材料入库单失败状态:" + rawInstock.getRawInstockId());
}
}
}

Loading…
Cancel
Save