|
|
|
@ -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
|
|
|
|
|
*
|
|
|
|
|