using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.ServiceModel; using System.Text; using DeiNiu.wms.Logical; using System.Transactions; using DeiNiu.wms.Data.Model; using DeiNiu.Utils; namespace DeiNiu.Wcf { // 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码、svc 和配置文件中的类名“ScheduledService”。 public class ScheduledService : IScheduledService { static int syncOperId =1; static lWmsInRequest _lir; static WmsGoods _wgoods; WmsGoods wgoods { get { if (_wgoods == null ) { _wgoods = new WmsGoods(); } return _wgoods; } } lWmsInRequest lir { get { if (_lir == null ) { _lir = new lWmsInRequest(syncOperId); } return _lir; } } private static lWmsOutRequest _lor; lWmsOutRequest lor { get { if (_lor == null ) { _lor = new lWmsOutRequest(syncOperId); } return _lor; } } private static lOwner _lOwner; lOwner lOwnerObj { get { if (_lOwner == null ) { _lOwner = new lOwner(syncOperId); } return _lOwner; } } private static lCustomer _lcust; lCustomer lcust { get { if (_lcust == null) { _lcust = new lCustomer(syncOperId); } return _lcust; } } private static lWmsOutPickRequest _lop ; lWmsOutPickRequest lop { get { if (_lop == null) { _lop = new lWmsOutPickRequest(syncOperId); } return _lop; } } private static lWmsOutPickPort _lopp; lWmsOutPickPort lopp { get { if (_lopp == null ) { _lopp = new lWmsOutPickPort(syncOperId ); } return _lopp; } } /* public void syncOutRequest() { lor.syncOrders(); } /// /// sync out request,create pickorders /// public void preProcessOutOrders() { lor.preProcessOutOrders(); } */ /// /// sync inrequests /// 启用入库收货、验收模块后不再自动同步入库数据 /// public void syncInRequest() { // lir.syncOrders(); } public void syncGoods() { wgoods.syncGoods(); } public int syncNewOwners() { return lOwnerObj.syncOwner(); } public int syncCustomer() { return lcust.syncCustomer(); } public void createPDAPickTasks() { lop.createPDAPickTasks( ); } public void syncAndCreatePickRequest(enumOutStockRequestStatus status) { lor.preProcessOutOrdersImp(status); } static bool isCreateWaveing = false; public bool createPickWaves() { // LogHelper.debug(typeof(ScheduledService), "begin to createPickWaves..."); if (isCreateWaveing) { // LogHelper.debug(typeof(ScheduledService), "!!!!!!!!!!!!!!!!! new pick wave ... is processing... return ...."); return false; } isCreateWaveing = true; // WmsConstants.WAVE_LINE = line; // WmsConstants.WAVE_SALE = sales; try { bool ok = lopp.createPickWaves(); // LogHelper.debug(typeof(ScheduledService), "end createPickWaves...success? " +ok); isCreateWaveing = false; return ok; } catch (Exception e) { throw e; } finally { isCreateWaveing = false; } } public int[] getJobInterVal() { _lop = new lWmsOutPickRequest(syncOperId); int[] a = new int[4]; a[0] = WmsConstants.JOB_OUT_REQUEST_INTERVAL; a[1] = WmsConstants.JOB_IN_REQUEST_INTERVAL; a[2] = WmsConstants.JOB_BASIC_INFO_SYNC_INTERVAL; a[3] = WmsConstants.JOB_OUT_REQUEST_NO_STOCK_CHECK_INTERVAL; return a; } public int getWaveInterval() { WaveRule wr = new WaveRule() .getCurrentActiveRule(enumWaveRuleType.普通波次); return wr.interval; } public void truncateDataForTestOnly() { // lir.truncateDataForTestOnly(); } } }