From 26f88473f470ab34f46d95642035a4e5f6b69847 Mon Sep 17 00:00:00 2001
From: 刘磊 <1161824510@qq.com>
Date: 星期四, 15 一月 2026 13:53:10 +0800
Subject: [PATCH] 同步
---
项目代码/WCS/WCSServer/WIDESEAWCS_TaskInfoService/Partial/TaskService.cs | 11
项目代码/WMS/WMSServer/WIDESEA_Core/DB/Models/BaseEntity.cs | 4
项目代码/WMS/WMSClient/src/router/tables.js | 10
项目代码/WMS/WMSServer/WIDESEA_WMSServer/Controllers/MES/MESController.cs | 17
项目代码/WMS/WMSServer/WIDESEA_StoragIntegrationServices/MES/Partial/PassPoint.cs | 14
项目代码/WCS/WCSServer/WIDESEAWCS_Tasks/ConveyorLineJob/ConveyorLineTaskCommand.cs | 83 +-
项目代码/WMS/WMSServer/WIDESEA_Core/Const/ConfigConst.cs | 7
项目代码/WCS/WCSServer/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs | 195 ++----
项目代码/WMS/WMSServer/WIDESEA_Model/Models/BasicInfo/Dt_BDCConfiguration_detail.cs | 62 ++
项目代码/WMS/WMSClient/src/views/widesea_wms/basicinfo/Dt_BDCConfiguration.vue | 86 +++
项目代码/WMS/WMSServer/WIDESEA_Common/MES/Request/CarCharacteristicInfo.cs | 0
项目代码/WMS/WMSServer/WIDESEA_Model/Models/BasicInfo/Dt_BDCConfiguration.cs | 34
项目代码/WCS/WCSServer/WIDESEAWCS_Tasks/ConveyorLineJob/ConveyorLineDBName.cs | 71 +
项目代码/WMS/WMSServer/WIDESEA_Common/MES/GetCarCharacteristicInfo.cs | 45 +
项目代码/WMS/WMSServer/WIDESEA_StoragIntegrationServices/MES/Partial/preBind.cs | 4
项目代码/WCS/WCSServer/WIDESEAWCS_QuartzJob/ConveyorLine/CommonConveyorLine.cs | 2
项目代码/WMS/WMSServer/WIDESEA_StorageTaskServices/BDCManager/BDCManager.cs | 7
项目代码/WMS/WMSServer/WIDESEA_StoragIntegrationServices/MES/Partial/bindWorkOrder.cs | 6
项目代码/WMS/WMSServer/WIDESEA_StoragIntegrationServices/MES/Partial/pushOrderInfo.cs | 7
项目代码/WMS/WMSServer/WIDESEA_StoragIntegrationServices/MES/Partial/pushWorkOrderInfo.cs | 38 +
项目代码/WCS/WCSServer/WIDESEAWCS_QuartzJob/StackerCrane/Common/STK.cs | 293 ++++++++++
项目代码/WMS/WMSServer/WIDESEA_StoragIntegrationServices/MES/Partial/getCharacteristic.cs | 73 ++
项目代码/WMS/WMSServer/WIDESEA_StorageBasicServices/BasicInfo/Dt_BDCConfigurationService.cs | 4
项目代码/WMS/WMSServer/WIDESEA_StoragIntegrationServices/MES/Partial/issuedCharacter.cs | 16
项目代码/WMS/WMSServer/WIDESEA_StoragIntegrationServices/MES/MESService.cs | 4
项目代码/WMS/WMSServer/WIDESEA_Core/HostedService/SeedDataHostedService.cs | 2
项目代码/WCS/WCSServer/WIDESEAWCS_QuartzJob/StackerCrane/IStackerCrane.cs | 36
项目代码/WMS/WMSServer/WIDESEA_IStoragIntegrationServices/MES/IMESService.cs | 36 +
项目代码/WCS/WCSServer/WIDESEAWCS_Tasks/SC/SCJob.cs | 364 +++++++++++++
项目代码/WMS/WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs | 7
项目代码/WMS/WMSServer/WIDESEA_WMSServer/Controllers/TaskController.cs | 12
项目代码/WMS/WMSClient/src/extension/widesea_wms/basicinfo/Dt_BDCConfiguration.js | 67 ++
项目代码/WMS/WMSServer/WIDESEA_Common/MES/Request/pushWorkOrderInfo.cs | 8
项目代码/WMS/WMSServer/WIDESEA_Common/MES/Request/IssuedCharacterInfo.cs | 7
项目代码/WMS/WMSClient/src/views/widesea_wms/OrderInfo/Dt_AssemblyOrderInfo.vue | 2
35 files changed, 1,352 insertions(+), 282 deletions(-)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServer/WIDESEAWCS_QuartzJob/ConveyorLine/CommonConveyorLine.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServer/WIDESEAWCS_QuartzJob/ConveyorLine/CommonConveyorLine.cs"
index 2cf97b5..1ffbf17 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServer/WIDESEAWCS_QuartzJob/ConveyorLine/CommonConveyorLine.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServer/WIDESEAWCS_QuartzJob/ConveyorLine/CommonConveyorLine.cs"
@@ -220,7 +220,7 @@
public T ReadCustomer<T>(string deviceChildCode) where T : IDataTransfer, new()
{
if (!IsConnected) throw new Exception($"{deviceChildCode}閫氳杩炴帴閿欒锛岃妫�鏌ョ綉缁�");
- DeviceProDTO? devicePro = _deviceProDTOs.Where(x => x.DeviceProParamType == "DeviceCommand" && x.DeviceChildCode == deviceChildCode).OrderBy(x => x.DeviceProOffset).FirstOrDefault();
+ DeviceProDTO? devicePro = _deviceProDTOs.Where(x => x.DeviceProParamType == "ReadDeviceCommand" && x.DeviceChildCode == deviceChildCode).OrderBy(x => x.DeviceProOffset).FirstOrDefault();
if (devicePro == null)
{
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServer/WIDESEAWCS_QuartzJob/StackerCrane/Common/STK.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServer/WIDESEAWCS_QuartzJob/StackerCrane/Common/STK.cs"
new file mode 100644
index 0000000..adca8bd
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServer/WIDESEAWCS_QuartzJob/StackerCrane/Common/STK.cs"
@@ -0,0 +1,293 @@
+锘縰sing HslCommunication;
+using System.ComponentModel;
+using System.Reflection;
+using WIDESEAWCS_Communicator;
+using WIDESEAWCS_QuartzJob.DeviceBase;
+using WIDESEAWCS_QuartzJob.DTO;
+using WIDESEAWCS_QuartzJob.StackerCrane;
+using WIDESEAWCS_QuartzJob.StackerCrane.Enum;
+
+namespace WIDESEAWCS_QuartzJob
+{
+ /// <summary>
+ /// 涓�鑸爢鍨涙満瀹炵幇绫伙紝瀹炵幇鍫嗗灈鏈烘帴鍙e眰
+ /// </summary>
+ [Description("鍫嗗灈鏈�")]
+ public class STK : IStackerCrane
+ {
+ #region Private Member
+
+ /// <summary>
+ /// 瀹屾垚淇″彿绛夊緟鏃堕棿
+ /// </summary>
+ private const int WaitTimeout = 20 * 6000;
+
+ /// <summary>
+ /// 瀹屾垚淇″彿璇诲彇棰戠巼
+ /// </summary>
+ private const int ReadTimeout = 100;
+
+ /// <summary>
+ /// 鍫嗗灈鏈洪�氳瀵硅薄
+ /// </summary>
+ private BaseCommunicator _communicator;
+ /// <summary>
+ /// 鍫嗗灈鏈哄崗璁俊鎭�
+ /// </summary>
+ private readonly List<DeviceProDTO> _deviceProDTOs;
+ /// <summary>
+ /// 鍫嗗灈鏈哄崗璁槑缁嗕俊鎭�
+ /// </summary>
+ private readonly List<DeviceProtocolDetailDTO> _deviceProtocolDetailDTOs;
+ /// <summary>
+ /// 璁惧缂栧彿
+ /// </summary>
+ public readonly string _deviceCode;
+ /// <summary>
+ /// 璁惧鍚嶇О
+ /// </summary>
+ public readonly string _deviceName;
+ /// <summary>
+ /// 涓婁竴娆′换鍔″彿
+ /// </summary>
+ private int _lastTaskNum;
+
+ private bool _isChecked = false;
+
+ private bool _heartStatr = true;
+
+ private bool _isConnected = true;
+ #endregion Private Member
+
+ #region Public Member
+ /// <summary>
+ /// 鍫嗗灈鏈洪�氳瀵硅薄
+ /// </summary>
+ public BaseCommunicator Communicator => _communicator;
+
+ /// <summary>
+ /// 鍫嗗灈鏈哄崗璁俊鎭�
+ /// </summary>
+ public List<DeviceProDTO> DeviceProDTOs => _deviceProDTOs;
+
+ /// <summary>
+ /// 鍫嗗灈鏈哄崗璁槑缁嗕俊鎭�
+ /// </summary>
+ public List<DeviceProtocolDetailDTO> DeviceProtocolDetailDTOs => _deviceProtocolDetailDTOs;
+
+ /// <summary>
+ /// 涓婁竴娆℃墽琛岀殑浠诲姟鍙�
+ /// </summary>
+ public int LastTaskNum => _lastTaskNum;
+
+ /// <summary>
+ /// 璁惧缂栧彿
+ /// </summary>
+ public string DeviceCode => _deviceCode;
+
+ /// <summary>
+ /// 璁惧鍚嶇О
+ /// </summary>
+ public string DeviceName => _deviceName;
+
+ /// <summary>
+ /// 閫氳鏄惁宸茶繛鎺�
+ /// </summary>
+ public bool IsConnected => Communicator.IsConnected && _isConnected;
+
+ /// <summary>
+ /// 鍫嗗灈鏈轰换鍔″畬鎴愪簨浠�
+ /// </summary>
+ public event EventHandler<StackerCraneTaskCompletedEventArgs> StackerCraneTaskCompletedEventHandler;
+
+ /// <summary>
+ /// 鍫嗗灈鏈轰换鍔″懡浠ゅ璞�
+ /// </summary>
+ public object StackerCraneTaskCommand { get; set; }
+
+ /// <summary>
+ /// 鍫嗗灈鏈哄畬鎴愪簨浠舵槸鍚﹀凡璁㈤槄
+ /// </summary>
+ public bool IsEventSubscribed => StackerCraneTaskCompletedEventHandler != null;
+
+ /// <summary>
+ /// 鍫嗗灈鏈轰笌MOM杩炴帴鐘舵��
+ /// </summary>
+ public bool StackerOnline { get; set; } = false;
+
+ public int? LastTaskType { get; set; } = null;
+
+ public int CurrentTaskNum => throw new NotImplementedException();
+
+ public bool IsFault => throw new NotImplementedException();
+
+ public DeviceStatus Status => throw new NotImplementedException();
+ #endregion
+
+ #region Constructor Function
+ /// <summary>
+ /// 鏋勯�犲嚱鏁�
+ /// </summary>
+ /// <param name="communicator">鍫嗗灈鏈洪�氳瀵硅薄</param>
+ /// <param name="deviceProDTOs">鍫嗗灈鏈哄崗璁俊鎭�</param>
+ /// <param name="deviceProtocolDetailDTOs">鍫嗗灈鏈哄崗璁槑缁嗕俊鎭�</param>
+ /// <param name="deviceCode">璁惧缂栧彿</param>
+ /// <param name="deviceName">璁惧鍚嶇О</param>
+ public STK(BaseCommunicator communicator, List<DeviceProDTO> deviceProDTOs, List<DeviceProtocolDetailDTO> deviceProtocolDetailDTOs, string deviceCode, string deviceName)
+ {
+ _communicator = communicator;
+ _deviceProDTOs = deviceProDTOs;
+ _deviceProtocolDetailDTOs = deviceProtocolDetailDTOs;
+ _deviceCode = deviceCode;
+ _deviceName = deviceName;
+ }
+ #endregion
+
+ #region Private Method
+ private void AnalysisData()
+ {
+
+ }
+ #endregion
+
+ #region Public Method
+ /// <summary>
+ /// 鍙戦�佷换鍔″懡浠�
+ /// </summary>
+ /// <param name="command">浠诲姟鍛戒护</param>
+ /// <returns></returns>
+ public bool SendCommand<T>(T command, string childCode) where T : IDataTransfer, new()
+ {
+ if (!IsConnected) throw new Exception($"閫氳杩炴帴閿欒锛岃妫�鏌ョ綉缁�");
+ DeviceProDTO? devicePro = _deviceProDTOs.Where(x => x.DeviceProParamType == nameof(DeviceCommand) && x.DeviceChildCode == childCode).OrderBy(x => x.DeviceProOffset).FirstOrDefault();
+ if (devicePro == null)
+ {
+ return false;
+ }
+ if (Communicator.WriteCustomer(devicePro.DeviceProAddress, command))
+ {
+ StackerCraneTaskCommand = command;
+ return true;
+ }
+ return false;
+ }
+
+ /// <summary>
+ /// 璇诲彇PLC鏁版嵁锛岃繑鍥炶嚜瀹氫箟瀵硅薄
+ /// </summary>
+ /// <typeparam name="T">娉涘瀷</typeparam>
+ /// <param name="deviceChildCode">瀛愯澶囩紪鍙�</param>
+ /// <returns>杩斿洖鑷畾涔夊璞℃垨鎶涘嚭寮傚父</returns>
+ /// <exception cref="Exception"></exception>
+ public T ReadCustomer<T>(string deviceChildCode) where T : IDataTransfer, new()
+ {
+ if (!IsConnected) throw new Exception($"閫氳杩炴帴閿欒锛岃妫�鏌ョ綉缁�");
+ DeviceProDTO? devicePro = _deviceProDTOs.Where(x => x.DeviceProParamType == "ReadDeviceCommand" && x.DeviceChildCode == deviceChildCode).OrderBy(x => x.DeviceProOffset).FirstOrDefault();
+
+ if (devicePro == null)
+ {
+ throw new Exception("鏈壘鍒板崗璁俊鎭�");
+ }
+ else
+ {
+ return Communicator.ReadCustomer<T>(devicePro.DeviceProAddress);
+ }
+ }
+
+ /// <summary>
+ /// 璇诲彇PLC鏁版嵁锛岃繑鍥炶嚜瀹氫箟瀵硅薄
+ /// </summary>
+ /// <typeparam name="T">娉涘瀷</typeparam>
+ /// <param name="deviceChildCode">瀛愯澶囩紪鍙�</param>
+ /// <param name="typeName">鍙傛暟绫诲瀷</param>
+ /// <returns>杩斿洖鑷畾涔夊璞℃垨鎶涘嚭寮傚父</returns>
+ /// <exception cref="Exception"></exception>
+ public T ReadCustomer<T>(string deviceChildCode, string typeName) where T : IDataTransfer, new()
+ {
+ if (!IsConnected) throw new Exception($"閫氳杩炴帴閿欒锛岃妫�鏌ョ綉缁�");
+ DeviceProDTO? devicePro = _deviceProDTOs.Where(x => x.DeviceProParamType == typeName && x.DeviceChildCode == deviceChildCode).OrderBy(x => x.DeviceProOffset).FirstOrDefault();
+
+ if (devicePro == null)
+ {
+ throw new Exception("鏈壘鍒板崗璁俊鎭�");
+ }
+ else
+ {
+ return Communicator.ReadCustomer<T>(devicePro.DeviceProAddress);
+ }
+ }
+
+ /// <summary>
+ /// 鏍规嵁鍙傛暟鍚嶇О銆佽澶囧瓙缂栧彿鍐欏叆瀵瑰簲鐨勬暟鎹��
+ /// </summary>
+ /// <typeparam name="TEnum">鍙傛暟鍚嶇О鏋氫妇绫诲瀷銆�</typeparam>
+ /// <typeparam name="TValue">瑕佸啓鍏ョ殑鏁版嵁绫诲瀷銆�</typeparam>
+ /// <param name="enum">鍙傛暟鍚嶇О銆�</param>
+ /// <param name="value">瑕佸啓鍏ョ殑鏁版嵁銆�</param>
+ /// <param name="deviceChildCode">璁惧瀛愮紪鍙峰啓</param>
+ /// <returns>杩斿洖鍐欏叆鎴愬姛鎴栧け璐�</returns>
+ public bool SetValue<TEnum, TValue>(TEnum @enum, TValue value, string deviceChildCode)
+ where TEnum : Enum
+ where TValue : notnull
+ {
+ if (!IsConnected) throw new Exception($"閫氳杩炴帴閿欒锛岃妫�鏌ョ綉缁�");
+ DeviceProDTO? devicePro = _deviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == @enum.ToString() && x.DeviceChildCode == deviceChildCode);
+ return devicePro == null ? throw new Exception($"鍐欏叆鏁版嵁閿欒,鏈湪鍗忚淇℃伅閲岄潰鎵惧埌鍙傛暟{value.ToString()}") : Communicator.WriteObj(devicePro.DeviceProAddress, devicePro.DeviceDataType, value);
+ }
+
+
+ /// <summary>
+ /// 鏍规嵁鍙傛暟鍚嶇О銆佽澶囧瓙缂栧彿鍐欏叆瀵瑰簲鐨勬暟鎹��
+ /// </summary>
+ /// <typeparam name="TEnum">鍙傛暟鍚嶇О鏋氫妇绫诲瀷銆�</typeparam>
+ /// <typeparam name="TValue">瑕佸啓鍏ョ殑鏁版嵁绫诲瀷銆�</typeparam>
+ /// <param name="enum">鍙傛暟鍚嶇О銆�</param>
+ /// <param name="value">瑕佸啓鍏ョ殑鏁版嵁銆�</param>
+ /// <param name="deviceChildCode">璁惧瀛愮紪鍙峰啓</param>
+ /// <returns>杩斿洖鍐欏叆鎴愬姛鎴栧け璐�</returns>
+ public bool SetValue<TEnum, TValue>(TEnum @enum, TValue value, string deviceChildCode, string typeName)
+ where TEnum : Enum
+ where TValue : notnull
+ {
+ if (!IsConnected) throw new Exception($"閫氳杩炴帴閿欒锛岃妫�鏌ョ綉缁�");
+ DeviceProDTO? devicePro = _deviceProDTOs.FirstOrDefault(x => x.DeviceProParamType == typeName && x.DeviceProParamName == @enum.ToString() && x.DeviceChildCode == deviceChildCode);
+ return devicePro == null ? throw new Exception($"鍐欏叆鏁版嵁閿欒,鏈湪鍗忚淇℃伅閲岄潰鎵惧埌鍙傛暟{value.ToString()}") : Communicator.WriteObj(devicePro.DeviceProAddress, devicePro.DeviceDataType, value);
+ }
+
+ /// <summary>
+ /// 鏍规嵁鍙傛暟鍚嶇О璇诲彇鍫嗗灈鏈哄搴旂殑鏁版嵁銆�
+ /// </summary>
+ /// <typeparam name="TEnum">鍙傛暟鍚嶇О鏋氫妇绫诲瀷銆�</typeparam>
+ /// <typeparam name="TRsult">璇诲彇缁撴灉鐨勮繑鍥炲�肩被鍨嬨��</typeparam>
+ /// <param name="value">鍙傛暟鍚嶇О銆�</param>
+ /// <returns>杩斿洖璇诲彇鍒扮殑鏁版嵁銆�</returns>
+ /// <exception cref="Exception"></exception>
+ public TRsult GetValue<TEnum, TRsult>(TEnum value, string childCode) where TEnum : Enum
+ {
+ if (!IsConnected) throw new Exception($"閫氳杩炴帴閿欒锛岃妫�鏌ョ綉缁�");
+ DeviceProDTO? devicePro = _deviceProDTOs.FirstOrDefault(x => x.DeviceProParamName == value.ToString() && x.DeviceChildCode == childCode);
+ return devicePro == null ? throw new Exception() : (TRsult)Communicator.ReadAsObj(devicePro.DeviceProAddress, devicePro.DeviceDataType);
+ }
+
+ /// <summary>
+ /// 涓庤澶囩殑蹇冭烦
+ /// </summary>
+ public void Heartbeat()
+ {
+
+ }
+
+ public void Dispose()
+ {
+ _heartStatr = false;
+ _communicator.Dispose();
+ GC.SuppressFinalize(this);
+ }
+
+ public bool SendCommand<T>(T command) where T : IDataTransfer, new()
+ {
+ throw new NotImplementedException();
+ }
+ #endregion
+ }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServer/WIDESEAWCS_QuartzJob/StackerCrane/IStackerCrane.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServer/WIDESEAWCS_QuartzJob/StackerCrane/IStackerCrane.cs"
index 2a805f8..2689101 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServer/WIDESEAWCS_QuartzJob/StackerCrane/IStackerCrane.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServer/WIDESEAWCS_QuartzJob/StackerCrane/IStackerCrane.cs"
@@ -81,24 +81,24 @@
/// </summary>
event EventHandler<StackerCraneTaskCompletedEventArgs> StackerCraneTaskCompletedEventHandler;
- /// <summary>
- /// 璇诲彇PLC鍗忚鍦板潃鐨勬暟鎹�
- /// </summary>
- /// <typeparam name="TEnum">鍗忚淇℃伅鐨勬灇涓惧璞′俊鎭��</typeparam>
- /// <typeparam name="TRsult">璇诲彇鏁版嵁鐨勭被鍨嬪璞′俊鎭��</typeparam>
- /// <param name="value">鏋氫妇鍊�</param>
- /// <returns>璇诲彇鍒扮殑鏁版嵁</returns>
- TRsult GetValue<TEnum, TRsult>(TEnum value) where TEnum : Enum;
+ ///// <summary>
+ ///// 璇诲彇PLC鍗忚鍦板潃鐨勬暟鎹�
+ ///// </summary>
+ ///// <typeparam name="TEnum">鍗忚淇℃伅鐨勬灇涓惧璞′俊鎭��</typeparam>
+ ///// <typeparam name="TRsult">璇诲彇鏁版嵁鐨勭被鍨嬪璞′俊鎭��</typeparam>
+ ///// <param name="value">鏋氫妇鍊�</param>
+ ///// <returns>璇诲彇鍒扮殑鏁版嵁</returns>
+ //TRsult GetValue<TEnum, TRsult>(TEnum value) where TEnum : Enum;
- /// <summary>
- /// 鏍规嵁鍙傛暟鍚嶇О鍐欏叆鍫嗗灈鏈哄搴旂殑鏁版嵁銆�
- /// </summary>
- /// <typeparam name="TEnum">鍙傛暟鍚嶇О鏋氫妇绫诲瀷銆�</typeparam>
- /// <typeparam name="TValue">瑕佸啓鍏ョ殑鏁版嵁绫诲瀷銆�</typeparam>
- /// <param name="enum">鍙傛暟鍚嶇О銆�</param>
- /// <param name="value">瑕佸啓鍏ョ殑鏁版嵁銆�</param>
- /// <returns>杩斿洖鍐欏叆鎴愬姛鎴栧け璐�</returns>
- /// <exception cref="Exception"></exception>
- bool SetValue<TEnum, TValue>(TEnum @enum, TValue value) where TEnum : Enum where TValue : notnull;
+ ///// <summary>
+ ///// 鏍规嵁鍙傛暟鍚嶇О鍐欏叆鍫嗗灈鏈哄搴旂殑鏁版嵁銆�
+ ///// </summary>
+ ///// <typeparam name="TEnum">鍙傛暟鍚嶇О鏋氫妇绫诲瀷銆�</typeparam>
+ ///// <typeparam name="TValue">瑕佸啓鍏ョ殑鏁版嵁绫诲瀷銆�</typeparam>
+ ///// <param name="enum">鍙傛暟鍚嶇О銆�</param>
+ ///// <param name="value">瑕佸啓鍏ョ殑鏁版嵁銆�</param>
+ ///// <returns>杩斿洖鍐欏叆鎴愬姛鎴栧け璐�</returns>
+ ///// <exception cref="Exception"></exception>
+ //bool SetValue<TEnum, TValue>(TEnum @enum, TValue value) where TEnum : Enum where TValue : notnull;
}
}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServer/WIDESEAWCS_TaskInfoService/Partial/TaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServer/WIDESEAWCS_TaskInfoService/Partial/TaskService.cs"
index eae964d..7c556b0 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServer/WIDESEAWCS_TaskInfoService/Partial/TaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServer/WIDESEAWCS_TaskInfoService/Partial/TaskService.cs"
@@ -387,6 +387,17 @@
return BaseDal.QueryFirst(x => (TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.InNew || TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.SC_OutFinish) && x.CurrentAddress == currentAddress, TaskOrderBy);
}
+ /// <summary>
+ /// 鏍规嵁璁惧缂栧彿銆佸綋鍓嶅湴鍧�鏌ヨ杈撻�佺嚎鏈墽琛岀殑浠诲姟
+ /// </summary>
+ /// <param name="deviceNo">璁惧缂栧彿</param>
+ /// <param name="currentAddress">褰撳墠鍦板潃</param>
+ /// <returns></returns>
+ public Dt_Task QueryConveyorLineTask(int palletCode, string currentAddress)
+ {
+ return BaseDal.QueryFirst(x => (TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.InNew || TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.SC_OutFinish) && x.CurrentAddress == currentAddress, TaskOrderBy);
+ }
+
/// 浠诲姟瀹屾垚
/// </summary>
/// <param name="taskNum">浠诲姟缂栧彿</param>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServer/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServer/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs"
index 0d98309..b4e8964 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServer/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServer/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs"
@@ -43,6 +43,7 @@
using WIDESEAWCS_SignalR;
using WIDESEAWCS_Tasks.ConveyorLineJob;
using WIDESEAWCS_Tasks.StackerCraneJob;
+using static Microsoft.EntityFrameworkCore.DbLoggerCategory.Database;
using ICacheService = WIDESEAWCS_Core.Caches.ICacheService;
namespace WIDESEAWCS_Tasks
@@ -88,19 +89,37 @@
foreach (var station in stationManagers)
{
- ConveyorLineTaskCommand command = conveyorLine.ReadCustomer<ConveyorLineTaskCommand>(station.stationChildCode);
+ var request = conveyorLine.GetValue<ConveyorLineDBName, byte>(ConveyorLineDBName.EntApply, station.stationChildCode);
- DeviceProtocolDetailDTO? deviceProtocolDetails = conveyorLine.DeviceProtocolDetailDTOs.FirstOrDefault(x => x.DeviceProParamName == station.stationChildCode && x.ProtocalDetailValue == command.RequestTask.ToString());
-
- //x.DeviceProParamName == nameof(ConveyorLineTaskCommand.ConveyorLineSingal)
+ DeviceProtocolDetailDTO? deviceProtocolDetails = conveyorLine.DeviceProtocolDetailDTOs.FirstOrDefault(x => x.DeviceProParamName == station.stationChildCode && x.ProtocalDetailValue == request.ToString());
+
if (deviceProtocolDetails != null)
{
MethodInfo? method = GetType().GetMethod(deviceProtocolDetails.ProtocolDetailType);
if (method != null)
{
- method.Invoke(this, new object[] { conveyorLine, command, station });
+ method.Invoke(this, new object[] { conveyorLine, conveyorLine, station });
}
}
+
+ //ConveyorLineTaskCommand command = conveyorLine.ReadCustomer<ConveyorLineTaskCommand>(station.stationChildCode);
+ //command.PVI.Replace("/0", "").Replace("\"\\u0010\\u000f", "");
+ //command.CarColor.Replace("/0", "");
+ //command.CarType.Replace("/0", "");
+ //command.CarCate.Replace("/0", "");
+ //command.CatSkyWindow.Replace("/0", "");
+
+ //DeviceProtocolDetailDTO? deviceProtocolDetails = conveyorLine.DeviceProtocolDetailDTOs.FirstOrDefault(x => x.DeviceProParamName == station.stationChildCode && x.ProtocalDetailValue == command.Request.ToString());
+
+ ////x.DeviceProParamName == nameof(ConveyorLineTaskCommand.ConveyorLineSingal)
+ //if (deviceProtocolDetails != null)
+ //{
+ // MethodInfo? method = GetType().GetMethod(deviceProtocolDetails.ProtocolDetailType);
+ // if (method != null)
+ // {
+ // method.Invoke(this, new object[] { conveyorLine, command, station });
+ // }
+ //}
#region 璋冪敤浜嬩欢鎬荤嚎閫氱煡鍓嶇
//var tokenInfos = _cacheService.Get<List<UserInfo>>("Cache_UserToken");
@@ -136,32 +155,32 @@
}
/// <summary>
- /// 杈撻�佺嚎璇锋眰鍒嗛厤璺緞
+ /// 杈撻�佺嚎璇锋眰鍏ュ簱
/// </summary>
/// <param name="conveyorLine">杈撻�佺嚎瀹炰緥瀵硅薄</param>
/// <param name="command">璇诲彇鐨勮姹備俊鎭�</param>
/// <param name="childDeviceCode">瀛愯澶囩紪鍙�</param>
- public void RequestInboundFlow(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, Dt_StationManager stationInfo)
+ public void RequestReceviceCar(CommonConveyorLine conveyorLine, CommonConveyorLine conveyorLine2, Dt_StationManager stationInfo)
{
- var log = $"銆恵conveyorLine.DeviceName}銆�,鎵樼洏鍙凤細銆恵stationInfo.stationChildCode}銆�,绔欏彴锛氥�恵stationInfo.remark}銆戣姹傛祦鍚�";
+ var log = $"銆恵conveyorLine.DeviceName}銆�,鎵樼洏鍙凤細銆恵stationInfo.stationChildCode}銆�,绔欏彴锛氥�恵stationInfo.remark}銆戣姹備换鍔�";
ConsoleHelper.WriteSuccessLine(log);
//_noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = log, time = DateTime.Now.ToString("G"), color = "red" });
WriteInfo(conveyorLine.DeviceName, log);
//if()
-
- var taskNew = _taskService.QueryConveyorLineTask(command.Barcode, stationInfo.stationChildCode);
+ var palletcode = conveyorLine2.GetValue<ConveyorLineDBName, string>(ConveyorLineDBName.SkidNo, stationInfo.stationChildCode);
+ var taskNew = _taskService.QueryConveyorLineTask(palletcode, stationInfo.stationChildCode);
if (taskNew == null)
{
- if (_taskService.RequestTask(command.Barcode, stationInfo).Result.Status)
+ if (_taskService.RequestTask(palletcode, stationInfo).Result.Status)
{
- Dt_Task task = _taskService.QueryConveyorLineTask(command.Barcode, stationInfo.stationChildCode);
+ Dt_Task task = _taskService.QueryConveyorLineTask(palletcode, stationInfo.stationChildCode);
if (task != null)
{
- conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, task.NextAddress, stationInfo.stationChildCode);
+ //conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, task.NextAddress, stationInfo.stationChildCode);
//conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, task.NextAddress, stationInfo.stationChildCode);
- conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode);
+ //conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode);
_taskService.UpdateTaskStatusToNext(task);
}
@@ -169,18 +188,8 @@
else
{
//濡傛灉浠诲姟璇锋眰澶辫触
- conveyorLine.SetValue(ConveyorLineDBName.ResponState, 2, stationInfo.stationChildCode);
+ //conveyorLine.SetValue(ConveyorLineDBName.ResponState, 2, stationInfo.stationChildCode);
}
- }
- else
- {
- conveyorLine.SetValue(ConveyorLineDBName.Barcode, taskNew.PalletCode, stationInfo.stationChildCode);
-
- conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, taskNew.NextAddress, stationInfo.stationChildCode);
- //conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, taskNew.NextAddress, stationInfo.stationChildCode);
- conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode);
-
- _taskService.UpdateTaskStatusToNext(taskNew);
}
}
@@ -199,18 +208,18 @@
WriteInfo(conveyorLine.DeviceName, log);
//if()
- var taskNew = _taskService.QueryConveyorLineTask(command.Barcode, stationInfo.stationChildCode);
+ var taskNew = _taskService.QueryConveyorLineTask(command.PalletCode.ToString().PadLeft(4, '0'), stationInfo.stationChildCode);
if (taskNew == null)
{
- if (_taskService.RequestTask(command.Barcode, stationInfo).Result.Status)
+ if (_taskService.RequestTask(command.PalletCode.ToString().PadLeft(4, '0'), stationInfo).Result.Status)
{
- Dt_Task task = _taskService.QueryConveyorLineTask(command.Barcode, stationInfo.stationChildCode);
+ Dt_Task task = _taskService.QueryConveyorLineTask(command.PalletCode.ToString().PadLeft(4, '0'), stationInfo.stationChildCode);
if (task != null)
{
- conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, task.NextAddress, stationInfo.stationChildCode);
+ //conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, task.NextAddress, stationInfo.stationChildCode);
//conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, task.NextAddress, stationInfo.stationChildCode);
- conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode);
+ //conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode);
_taskService.UpdateTaskStatusToNext(task);
}
@@ -218,25 +227,8 @@
else
{
//濡傛灉浠诲姟璇锋眰澶辫触
- conveyorLine.SetValue(ConveyorLineDBName.ResponState, 2, stationInfo.stationChildCode);
+ //conveyorLine.SetValue(ConveyorLineDBName.ResponState, 2, stationInfo.stationChildCode);
}
- }
- else
- {
- conveyorLine.SetValue(ConveyorLineDBName.Barcode, taskNew.PalletCode, stationInfo.stationChildCode);
-
- if ((taskNew.TargetAddress == "2042" || taskNew.TargetAddress == "2032") && taskNew.TaskState == (int)TaskOutStatusEnum.SC_OutFinish)
- {
- conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, taskNew.TargetAddress, stationInfo.stationChildCode);
- }
- else
- {
- conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, taskNew.NextAddress, stationInfo.stationChildCode);
- }
- //conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, taskNew.NextAddress, stationInfo.stationChildCode);
- conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode);
-
- _taskService.UpdateTaskStatusToNext(taskNew);
}
}
@@ -249,7 +241,7 @@
public void ConveyorLineInFinish(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, Dt_StationManager stationInfo)
{
//string clinfo = conveyorLine.ReadValue(ConveyorLineDBName.Barcode, stationInfo.stationChildCode).ToString();
- var task = _taskService.QueryExecutingTaskByBarcode(command.Barcode, stationInfo.stationChildCode);
+ var task = _taskService.QueryExecutingTaskByBarcode(command.PalletCode.ToString().PadLeft(4, '0'), stationInfo.stationChildCode);
if (task != null && task.TaskState != (int)TaskInStatusEnum.Line_InFinish)
{
//ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
@@ -258,11 +250,11 @@
ConsoleHelper.WriteErrorLine($"{stationInfo.stationChildCode}绔欏彴璇锋眰鍝嶅簲淇℃伅:{content.ToJsonString()}");
if (content.Status)
{
- conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode);
+ //conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode);
}
else
{
- conveyorLine.SetValue(ConveyorLineDBName.ResponState, 2, stationInfo.stationChildCode);
+ //conveyorLine.SetValue(ConveyorLineDBName.ResponState, 2, stationInfo.stationChildCode);
}
}
}
@@ -279,17 +271,12 @@
var task = _taskService.QueryConveyorLineTask(conveyorLine.DeviceName, stationInfo.stationChildCode);
if (task != null)
{
- conveyorLine.SetValue(ConveyorLineDBName.Barcode, task.PalletCode, stationInfo.stationChildCode);
- conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, task.TargetAddress, stationInfo.stationChildCode);
- conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode);
+ conveyorLine.SetValue(ConveyorLineDBName.SkidNo, task.PalletCode, stationInfo.stationChildCode);
+ //conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, task.TargetAddress, stationInfo.stationChildCode);
+ //conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode);
//ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
_taskService.UpdateTaskStatusToNext(task);
-
- if (task.TargetAddress == "2009" && task.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting)
- {
- _taskService.UpdateTaskStatusToNext(task);
- }
}
}
@@ -303,89 +290,27 @@
/// <param name="ProtocalDetailValue">绾夸綋褰撳墠bool璇诲彇鍋忕Щ鍦板潃</param>
public void ConveyorLineOutFinish(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, Dt_StationManager stationInfo)
{
- var task = _taskService.QueryExecutingTaskByBarcode(command.Barcode, stationInfo.stationChildCode);
+ var task = _taskService.QueryConveyorLineTask(conveyorLine.DeviceName, stationInfo.stationChildCode);
if (task != null)
{
- if (task.TargetAddress == "2032" || task.TargetAddress == "2042")
- {
- bool k2 = conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, task.TargetAddress, stationInfo.stationChildCode);
- bool k3 = conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode);
- WebResponseContent k4 = _taskService.UpdateTaskStatusToNext(task);
- }
- else
- {
- WebResponseContent content = _taskService.RequestWheelsFlow(task.PalletCode).Result;
- if (content.Status)
- {
- string taraddress = content.Data.ToString(); // "2032";SourceAddress
-
- bool k2 = conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, task.TargetAddress, stationInfo.stationChildCode);
- bool k3 = conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode);
- WebResponseContent k4 = _taskService.UpdateTaskStatusToNext(task);
- }
- else
- {
- conveyorLine.SetValue(ConveyorLineDBName.ResponState, 2, stationInfo.stationChildCode);
-
- Console.Out.WriteLine($"璇诲彇鍒拌緭閫佺嚎鐢宠,鐢宠鏉$爜锛歿command.Barcode}锛屽悜WMS鐢宠鍘诲悜澶辫触锛屽師鍥狅細{content.Message},鍐欏叆鐢宠瘔淇℃晠闅滐細2");
- }
- }
-
- }
- else
- {
-
- string taraddresspos = _taskService.RequestWheletHty(command.Barcode);
- if (taraddresspos != null)
+ var canTask = _taskRepository.QueryData(x => true).OrderByDescending(x => x.Grade).ThenBy(x => x.CreateDate).FirstOrDefault();
+ if (null != canTask && task.PalletCode == canTask.PalletCode)
{
- bool k2 = conveyorLine.SetValue(ConveyorLineDBName.TargetAddress, taraddresspos, stationInfo.stationChildCode);
- bool k3 = conveyorLine.SetValue(ConveyorLineDBName.ResponState, 1, stationInfo.stationChildCode);
+ //WebResponseContent k4 = _taskService.UpdateTaskStatusToNext(task);
- }
- else
- {
- conveyorLine.SetValue(ConveyorLineDBName.ResponState, 2, stationInfo.stationChildCode);
- Console.Out.WriteLine($"璇诲彇鍒拌緭閫佺嚎鐢宠,鐢宠鏉$爜锛歿command.Barcode}锛屾湭鎵惧埌浠诲姟锛岀敵璇蜂笅涓�鍦板潃涓猴細{stationInfo.stationChildCode},鍐欏叆鐢宠瘔淇℃晠闅滐細2");
+ //command.PalletCode = (Int32)20;
+ //command.PVI = "ABCD0123456789";
+ //command.CarCate = "SUV";
+ //command.CarColor = "AB01";
+
+ conveyorLine.SetValue(ConveyorLineDBName.SkidNo, 20, stationInfo.stationChildCode);
+
+ conveyorLine.SetValue(ConveyorLineDBName.PVI, "ABCD", stationInfo.stationChildCode);
+
+ //conveyorLine.SendCommand<ConveyorLineTaskCommand>(command, stationInfo.stationChildCode);
}
}
}
-
- /// <summary>
- /// 杈撻�佺嚎璇锋眰鍏ュ簱
- /// </summary>
- /// <param name="conveyorLine">杈撻�佺嚎瀹炰緥瀵硅薄</param>
- /// <param name="command">璇诲彇鐨勮姹備俊鎭�</param>
- /// <param name="childDeviceCode">瀛愯澶囩紪鍙�</param>
- //public void RequestInbound(CommonConveyorLine_After conveyorLine, ConveyorLineTaskCommand_After command, string childDeviceCode)
- //{
- // var stationInfo = _stationManagerService.GetStationInfoByChildCode(childDeviceCode);
- // if (stationInfo != null)
- // {
- // //_taskService.r
- // }
- // var taskNew = _taskService.QueryCraneConveyorLineTask(command.ConveyorLineTaskNum.ObjToInt(), childDeviceCode);
- // if (taskNew == null)
- // {
- // string barcode = command.ConveyorLineBarcode.TrimEnd();
- // if (_taskService.RequestWMSTask(command.ConveyorLineBarcode, childDeviceCode).Result.Status)
- // {
- // Dt_Task task = _taskService.QueryConveyorLineTask(conveyorLine.DeviceCode, childDeviceCode);
- // if (task != null)
- // {
- // ConveyorLineTaskCommand_After taskCommand = _mapper.Map<ConveyorLineTaskCommand_After>(task);
- // //taskCommand.InteractiveSignal = command.InteractiveSignal;
- // taskCommand.ResponState = 1;
- // taskCommand.ConveyorLineTaskNum = task.TaskNum;
- // taskCommand.ConveyorLineTargetAddress = Convert.ToInt16(task.NextAddress);
- // conveyorLine.SendCommand(taskCommand, childDeviceCode);
-
- // //ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
-
- // _taskService.UpdateTaskStatusToNext(task);
- // }
- // }
- // }
- //}
}
}
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServer/WIDESEAWCS_Tasks/ConveyorLineJob/ConveyorLineDBName.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServer/WIDESEAWCS_Tasks/ConveyorLineJob/ConveyorLineDBName.cs"
index 66ea6c4..6591a38 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServer/WIDESEAWCS_Tasks/ConveyorLineJob/ConveyorLineDBName.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServer/WIDESEAWCS_Tasks/ConveyorLineJob/ConveyorLineDBName.cs"
@@ -30,45 +30,84 @@
#region ReadDevice
/// <summary>
- /// 浠诲姟鍙�
+ /// 鎵�/鑷姩
/// </summary>
- TaskNum,
+ Auto,
/// <summary>
- /// 鐩爣鍦板潃
+ /// 杩愯
/// </summary>
- TargetAddress,
+ Running,
/// <summary>
- /// 璇锋眰
+ /// 鍏ュ簱璇锋眰
/// </summary>
- RequestTask,
+ EntApply,
/// <summary>
- /// 璇锋眰鍝嶅簲
+ /// 鍑哄簱璇锋眰
/// </summary>
- ResponState,
+ OutApply,
/// <summary>
- /// 璇锋眰鏀炬枡
+ /// 鍏佽鏀炬枡
/// </summary>
- RequestPut,
+ AllowPut,
/// <summary>
- /// 鏀炬枡瀹屾垚
+ /// 婊氬簥鍗犱綅
/// </summary>
- PutFinish,
+ Occupy,
/// <summary>
- /// 鐩爣鍦板潃
+ /// 鏄惁鎶ヨ
/// </summary>
- Barcode,
+ IsAlarm,
/// <summary>
- /// 澶囩敤
+ /// 澶囩敤1
/// </summary>
- Spare,
+ Spare1,
+ /// <summary>
+ /// 澶囩敤2
+ /// </summary>
+ Spare2,
+
+ /// <summary>
+ /// 澶囩敤3
+ /// </summary>
+ Spare3,
+
+ /// <summary>
+ /// 婊戞﹪鍙�
+ /// </summary>
+ SkidNo,
+
+ /// <summary>
+ /// PVI
+ /// </summary>
+ PVI,
+
+ /// <summary>
+ /// PVI鍐欏叆
+ /// </summary>
+ PVI_W,
+
+ /// <summary>
+ /// 婊戞﹪鍙�
+ /// </summary>
+ Spare4,
+
+ /// <summary>
+ /// =1 绌烘挰 =2鎾粍 =3杞﹁韩 =4鐢垫睜澹� =5绌烘枡鏋�
+ /// </summary>
+ Spare5,
+
+ /// <summary>
+ /// 澶囩敤6
+ /// </summary>
+ Spare6,
#endregion
#region WriteDevice
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServer/WIDESEAWCS_Tasks/ConveyorLineJob/ConveyorLineTaskCommand.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServer/WIDESEAWCS_Tasks/ConveyorLineJob/ConveyorLineTaskCommand.cs"
index 083b757..cfad607 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServer/WIDESEAWCS_Tasks/ConveyorLineJob/ConveyorLineTaskCommand.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServer/WIDESEAWCS_Tasks/ConveyorLineJob/ConveyorLineTaskCommand.cs"
@@ -36,24 +36,15 @@
// public short ConveyorLineAlarm { get; set; }
- //}
+ //}
public class ConveyorLineTaskCommand : DeviceCommand
{
- /// <summary>
- /// 浠诲姟鍙�
- /// </summary>
- public short TaskNum { get; set; }
/// <summary>
- /// 鐩爣鍦板潃
+ /// 璇锋眰
/// </summary>
- public short TargetAddress { get; set; }
-
- /// <summary>
- /// 璇锋眰浠诲姟
- /// </summary>
- public short RequestTask { get; set; }
+ public byte Request { get; set; }
/// <summary>
/// 璇锋眰鍝嶅簲
@@ -61,49 +52,59 @@
public short ResponState { get; set; }
/// <summary>
- /// 璇锋眰鏀炬枡
+ /// 婊戞﹪鍙�
/// </summary>
- public short RequestPut { get; set; }
+ public int PalletCode { get; set; } //=>
/// <summary>
- /// 鏀炬枡瀹屾垚
+ /// PVI鐮�
/// </summary>
- public short PutFinish { get; set; }
+ [DataLength(13)]
+ public string PVI { get; set; }
/// <summary>
- /// 鏉$爜
+ /// 澶囩敤1
/// </summary>
- [DataLength(10)]
- public string Barcode { get; set; }
+ [DataLength(3)]
+ public string Spare1 { get; set; }
/// <summary>
- /// 澶囩敤
+ /// 杞︾郴
/// </summary>
- public short Spare { get; set; }
+ [DataLength(4)]
+ public string CarType { get; set; }
- //public short SourceAddress { get; set; }
- //public short TargetAddress { get; set; }
+ /// <summary>
+ /// 杞﹀瀷
+ /// </summary>
+ [DataLength(4)]
+ public string CarCate { get; set; }
+
+ /// <summary>
+ /// 鏂瑰悜鐩樹綅缃�
+ /// </summary>
+ [DataLength(4)]
+ public string CarPosition { get; set; }
+
+ /// <summary>
+ /// 澶╃獥
+ /// </summary>
+ [DataLength(4)]
+ public string CatSkyWindow { get; set; }
+
+ /// <summary>
+ /// 杞﹁韩棰滆壊
+ /// </summary>
+ [DataLength(2)]
+ public string CarColor { get; set; }
+
+ /// <summary>
+ /// 澶囩敤2
+ /// </summary>
+ public short Spare2 { get; set; }
}
- public class ConveyorLineTaskCommand_CZ : DeviceCommand
- {
- /// <summary>
- /// 杞﹁酱鏉$爜
- /// </summary>
- [DataLength(40)]
- public string Number { get; set; }
-
- /// <summary>
- /// 璇锋眰淇″彿
- /// </summary>
- public short ConveyorLineSingal { get; set; }
-
- /// <summary>
- /// 璇锋眰鍙嶉
- /// </summary>
- public short ResponState { get; set; }
- }
//public class ConveyorLineTaskCommandWrite : DeviceCommand
//{
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServer/WIDESEAWCS_Tasks/SC/SCJob.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServer/WIDESEAWCS_Tasks/SC/SCJob.cs"
new file mode 100644
index 0000000..a90b5b0
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServer/WIDESEAWCS_Tasks/SC/SCJob.cs"
@@ -0,0 +1,364 @@
+锘縰sing Mapster;
+using Newtonsoft.Json;
+using Quartz;
+using System.Diagnostics.CodeAnalysis;
+using System.Text;
+using WIDESEAWCS_BasicInfoRepository;
+using WIDESEAWCS_Common;
+using WIDESEAWCS_Common.TaskEnum;
+using WIDESEAWCS_Core.Caches;
+using WIDESEAWCS_Core.Helper;
+using WIDESEAWCS_Core.HttpContextUser;
+using WIDESEAWCS_IProcessRepository;
+using WIDESEAWCS_ISystemServices;
+using WIDESEAWCS_ITaskInfo_HtyRepository;
+using WIDESEAWCS_ITaskInfoRepository;
+using WIDESEAWCS_ITaskInfoService;
+using WIDESEAWCS_Model.Models;
+using WIDESEAWCS_QuartzJob;
+using WIDESEAWCS_QuartzJob.DeviceBase;
+using WIDESEAWCS_QuartzJob.Models;
+using WIDESEAWCS_QuartzJob.Service;
+using WIDESEAWCS_QuartzJob.StackerCrane.Enum;
+using WIDESEAWCS_SignalR;
+using WIDESEAWCS_Tasks.ConveyorLineJob;
+using WIDESEAWCS_Tasks.StackerCraneJob;
+
+namespace WIDESEAWCS_Tasks
+{
+ [DisallowConcurrentExecution]
+ public class SCJob : JobBase, IJob
+ {
+ private readonly ITaskService _taskService;
+ private readonly ITaskExecuteDetailService _taskExecuteDetailService;
+ private readonly ITaskRepository _taskRepository;
+ private readonly IRouterService _routerService;
+ private readonly IProcessRepository _processRepository;
+ private readonly ICacheService _cacheService;
+ private readonly INoticeService _noticeService;
+ private readonly IDt_StationManagerRepository _stationManagerRepository;
+ private readonly ITask_HtyRepository _htyRepository;
+ private readonly ISys_ConfigService _sys_ConfigService;
+ private static List<string>? userTokenIds;
+ private static List<int>? userIds;
+
+ public SCJob(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, ITaskRepository taskRepository, IRouterService routerService, IProcessRepository processRepository, ICacheService cacheService, INoticeService noticeService, IDt_StationManagerRepository stationManagerRepository, ITask_HtyRepository htyRepository, ISys_ConfigService sys_ConfigService)
+ {
+ _taskService = taskService;
+ _taskExecuteDetailService = taskExecuteDetailService;
+ _taskRepository = taskRepository;
+ _routerService = routerService;
+ _processRepository = processRepository;
+ _cacheService = cacheService;
+ _noticeService = noticeService;
+ _stationManagerRepository = stationManagerRepository;
+ _htyRepository = htyRepository;
+ _sys_ConfigService = sys_ConfigService;
+ }
+
+ public Task Execute(IJobExecutionContext context)
+ {
+ try
+ {
+ bool flag = context.JobDetail.JobDataMap.TryGetValue("JobParams", out object? value);
+ if (flag && value != null && value is STK commonStackerCrane)
+ {
+ List<string> childCodes = commonStackerCrane.DeviceProDTOs.GroupBy(d => d.DeviceChildCode).Select(g => g.Key).ToList();
+ Parallel.For(0, childCodes.Count, (i, state) =>
+ {
+
+ ConsoleHelper.WriteColorLine($"銆恵childCodes[i]}銆戞椂闂淬�恵DateTime.Now}銆戙�戙�恵Thread.CurrentThread.ManagedThreadId}銆�", ConsoleColor.Magenta);
+
+ if (commonStackerCrane.GetValue<StackerCraneDBName, byte>(StackerCraneDBName.TaskState, childCodes[i]) == 2)
+ {
+ int taskNum = commonStackerCrane.GetValue<StackerCraneDBName, int>(StackerCraneDBName.CurrentTaskNum, childCodes[i]);
+ byte workStatus = commonStackerCrane.GetValue<StackerCraneDBName, byte>(StackerCraneDBName.TaskState, childCodes[i]);
+
+ ConsoleHelper.WriteColorLine($"銆恵childCodes[i]}銆戝爢鍨涙満浣滀笟鐘舵�侊細銆恵workStatus}銆戞椂闂淬�恵DateTime.Now}", ConsoleColor.Magenta);
+
+ string str = $"銆恵childCodes[i]}銆戜换鍔″畬鎴�,浠诲姟鍙凤細銆恵taskNum}銆戞椂闂淬�恵DateTime.Now}銆�";
+ WriteInfo(childCodes[i], str);
+ ConsoleHelper.WriteColorLine(str, ConsoleColor.Blue);
+ var task = _taskRepository.QueryFirst(x => x.TaskNum == taskNum);
+
+ if (task == null)
+ {
+ commonStackerCrane.SetValue(StackerCraneDBName.CMD, 2, childCodes[i]);
+ }
+ else
+ {
+ var content = _taskService.StackCraneTaskCompleted(taskNum);
+
+ var isWorkType = commonStackerCrane.SetValue(StackerCraneDBName.WorkType, 2, childCodes[i]);
+ str = $"銆恵childCodes[i]}銆慦MS|WCS浠诲姟瀹屾垚锛氥�恵content.Status}銆�,鍫嗗灈鏈哄畬鎴愪俊鍙峰啓鍏ワ細銆恵isWorkType}銆�,浠诲姟鍙凤細銆恵taskNum}銆戞椂闂淬�恵DateTime.Now}銆�";
+ WriteInfo(childCodes[i], str);
+ ConsoleHelper.WriteColorLine(str, ConsoleColor.Blue);
+ }
+ }
+
+ if (commonStackerCrane.GetValue<StackerCraneDBName, bool>(StackerCraneDBName.Online, childCodes[i]) //鍦ㄧ嚎
+ && commonStackerCrane.GetValue<StackerCraneDBName, bool>(StackerCraneDBName.Free, childCodes[i]) //绌洪棽
+ && !commonStackerCrane.GetValue<StackerCraneDBName, bool>(StackerCraneDBName.Alarm, childCodes[i]) //鏃犳姤璀�
+ && !commonStackerCrane.GetValue<StackerCraneDBName, bool>(StackerCraneDBName.Goods, childCodes[i]) //杞借揣鍙版棤璐�
+ && commonStackerCrane.GetValue<StackerCraneDBName, bool>(StackerCraneDBName.Flag, childCodes[i]) //璐у弶鍚敤
+ )
+ {
+ Dt_Task? task = GetTask(commonStackerCrane, childCodes[i]);
+ if (task != null)
+ {
+ StackerCraneTaskCommand? stackerCraneTaskCommand = ConvertToStackerCraneTaskCommand(task);
+ if (stackerCraneTaskCommand != null)
+ {
+ var taskNum = commonStackerCrane.GetValue<StackerCraneDBName, int>(StackerCraneDBName.CurrentTaskNum, childCodes[i]);
+ //var taskBarCode = commonStackerCrane.GetValue<StackerCraneDBName, string>(StackerCraneDBName.Barcode);
+ ConsoleHelper.WriteColorLine($"銆恵childCodes[i]}銆戝爢鍨涙満浠诲姟鍙凤細銆恵taskNum}銆戜换鍔′换鍔″彿锛氥�恵task.TaskNum}銆�", ConsoleColor.DarkBlue);
+ if (taskNum == 0)
+ {
+ ConsoleHelper.WriteColorLine($"銆恵childCodes[i]}銆戜换鍔″彿涓恒�恵0}銆�,浠诲姟鍙蜂笉涓�鑷村彲浠ヤ笅鍙戜换鍔�", ConsoleColor.DarkBlue);
+
+ Thread.Sleep(500);
+ bool sendFlag = commonStackerCrane.SendCommand(stackerCraneTaskCommand, childCodes[i]);
+
+ _taskService.UpdateTaskStatusToNext(task.TaskNum);
+ }
+ }
+ }
+ }
+ });
+ }
+ }
+ catch (Exception ex)
+ {
+ throw;
+ }
+ return Task.CompletedTask;
+ }
+
+ /// <summary>
+ /// 鑾峰彇浠诲姟
+ /// </summary>
+ /// <param name="commonStackerCrane">鍫嗗灈鏈哄璞�</param>
+ /// <returns></returns>
+ private Dt_Task? GetTask(STK commonStackerCrane, string childCode)
+ {
+ Dt_Task task;
+
+ task = _taskService.QueryExcutingTask(childCode);
+ if (task != null)
+ {
+ ConsoleHelper.WriteErrorLine($"鍫嗗灈鏈哄瓨鍦ㄦ墽琛屼腑鐨勪换鍔�,璇锋鏌�");
+ return null;
+ }
+
+ task = _taskService.QueryRelocationTask(childCode);
+ if (task != null)
+ {
+ return task;
+ }
+
+ if (commonStackerCrane.LastTaskType == null)
+ {
+ task = _taskService.QueryStackerCraneTask(childCode);
+ }
+ else
+ {
+ var lastTaskTypeGroup = commonStackerCrane.LastTaskType.GetValueOrDefault().GetTaskTypeGroup();
+ if (lastTaskTypeGroup == TaskTypeGroup.OutbondGroup)
+ {
+ task = _taskService.QueryStackerCraneInTask(childCode);
+ if (task == null)
+ {
+ task = _taskService.QueryStackerCraneOutTask(childCode);
+ }
+ }
+ else
+ {
+ task = _taskService.QueryStackerCraneOutTask(childCode);
+ }
+ }
+
+ if (task != null && task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
+ {
+ //var relocation = _taskService.OutBeforeCheck(task.TaskNum);
+
+ //if (relocation != null)
+ //{
+ // return relocation;
+ //}
+
+ // 妫�鏌ュ綋鍓嶅嚭搴撲换鍔$珯鍙版槸鍚﹀厑璁告斁璐�
+ var occupiedStation = OutTaskStationIsOccupied(task);
+ if (occupiedStation == null)
+ {
+ // 濡傛灉褰撳墠鍑哄簱浠诲姟绔欏彴涓嶅厑璁告斁璐э紝鎺掗櫎褰撳墠浠诲姟锛屾煡鎵惧叾浠栧嚭搴撲换鍔�
+
+ var log = $"浠诲姟鍙凤細銆恵task.TaskNum}銆戝嚭搴撳湴鍧�锛氥�恵task.NextAddress}銆戜笉鍏佽鏀捐揣";
+ ConsoleHelper.WriteErrorLine(log);
+
+ _noticeService.Logs(userTokenIds, new { commonStackerCrane.DeviceName, log = log, time = DateTime.Now.ToString("G"), color = "red" });
+ WriteInfo(commonStackerCrane.DeviceName, log);
+
+ task = _taskService.QueryStackerCraneInTask(commonStackerCrane.DeviceCode);
+ }
+ else
+ {
+ return task;
+ }
+ }
+ else if (task == null)
+ {
+ task = _taskService.QueryStackerCraneInTask(commonStackerCrane.DeviceCode);
+ }
+
+ if (task != null && task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)
+ {
+ var relocation = _taskService.InBeforeCheck(task.TaskNum);
+
+ if (relocation != null)
+ {
+ return relocation;
+ }
+ }
+ return task;
+ }
+
+
+ /// <summary>
+ /// 鍑哄簱浠诲姟鍒ゆ柇鍑哄簱绔欏彴鏄惁琚崰鐢�
+ /// </summary>
+ /// <param name="task">浠诲姟瀹炰綋</param>
+ /// <returns>濡傛灉鏈鍗犵敤锛岃繑鍥炰紶鍏ョ殑浠诲姟淇℃伅锛屽惁鍒欙紝杩斿洖null</returns>
+ private Dt_Task? OutTaskStationIsOccupied([NotNull] Dt_Task task)
+ {
+ Dt_Router? router = _routerService.QueryNextRoutes(task.Roadway, task.NextAddress).FirstOrDefault();
+
+ //Dt_Router? router = _routerService.QueryNextRoutes(task.Roadway, task.NextAddress).FirstOrDefault();
+ if (router != null)
+ {
+ IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == router.ChildPosiDeviceCode);
+ if (device != null)
+ {
+ CommonConveyorLine conveyorLine = (CommonConveyorLine)device;
+ if (conveyorLine.IsOccupied(router.ChildPosi))//鍑哄簱绔欏彴鏈鍗犵敤
+ {
+ return task;
+ }
+ }
+ else
+ {
+ _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鏈壘鍒板嚭搴撶珯鍙般�恵router.ChildPosiDeviceCode}銆戝搴旂殑閫氳瀵硅薄锛屾棤娉曞垽鏂嚭搴撶珯鍙版槸鍚﹁鍗犵敤");
+ }
+ }
+ else
+ {
+ _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鏈壘鍒扮珯鍙般�恵task.NextAddress}銆戜俊鎭紝鏃犳硶鏍¢獙绔欏彴");
+ }
+ return null;
+ }
+
+ /// <summary>
+ /// 浠诲姟瀹炰綋杞崲鎴愬懡浠odel
+ /// </summary>
+ /// <param name="task">浠诲姟瀹炰綋</param>
+ /// <returns></returns>
+ /// <exception cref="Exception"></exception>
+ public StackerCraneTaskCommand? ConvertToStackerCraneTaskCommand([NotNull] Dt_Task task)
+ {
+ StackerCraneTaskCommand stackerCraneTaskCommand = new StackerCraneTaskCommand();
+
+ stackerCraneTaskCommand.TrayCode = "";
+ stackerCraneTaskCommand.TaskNo = task.TaskNum;
+ stackerCraneTaskCommand.TaskType = 1;
+ stackerCraneTaskCommand.Goods_Type = 0;
+ stackerCraneTaskCommand.CMD = 1;
+ if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)//鍒ゆ柇鏄惁鏄叆搴撲换鍔�
+ {
+ List<Dt_Router> routers = _routerService.QueryNextRoutes(task.CurrentAddress, task.Roadway);
+ if (routers.Count > 0)
+ {
+ stackerCraneTaskCommand.S_Row = Convert.ToInt16(routers.FirstOrDefault().SrmRow);
+ stackerCraneTaskCommand.S_Bay = Convert.ToInt16(routers.FirstOrDefault().SrmColumn);
+ stackerCraneTaskCommand.S_level = Convert.ToInt16(routers.FirstOrDefault().SrmLayer);
+
+ string[] targetCodes = task.NextAddress.Split("-");
+ if (targetCodes.Length == 3)
+ {
+ stackerCraneTaskCommand.E_Row = Convert.ToInt16(targetCodes[0]) /*% 2 != 0 ? (short)1 : (short)2*/;
+ stackerCraneTaskCommand.E_Bay = Convert.ToInt16(targetCodes[1]);
+ stackerCraneTaskCommand.E_level = Convert.ToInt16(targetCodes[2]);
+ }
+ else
+ {
+ //鏁版嵁閰嶇疆閿欒
+ _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鍏ュ簱浠诲姟缁堢偣閿欒锛岃捣鐐癸細銆恵task.NextAddress}銆�");
+ return null;
+ }
+ }
+ else
+ {
+ _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鏈壘鍒扮珯鍙般�恵task.NextAddress}銆戜俊鎭紝鏃犳硶鑾峰彇瀵瑰簲鐨勫爢鍨涙満鍙栬揣绔欏彴淇℃伅");
+ return null;
+ }
+ }
+ else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
+ {
+ List<Dt_Router> routers = _routerService.QueryNextRoutes(task.Roadway, task.TargetAddress);
+ if (routers.Count > 0)
+ {
+ stackerCraneTaskCommand.E_Row = Convert.ToInt16(routers.FirstOrDefault().SrmRow);
+ stackerCraneTaskCommand.E_Bay = Convert.ToInt16(routers.FirstOrDefault().SrmColumn);
+ stackerCraneTaskCommand.E_level = Convert.ToInt16(routers.FirstOrDefault().SrmLayer);
+
+ string[] sourceCodes = task.CurrentAddress.Split("-");
+ if (sourceCodes.Length == 3)
+ {
+ stackerCraneTaskCommand.S_Row = Convert.ToInt16(sourceCodes[0]) /*% 2 != 0 ? (short)1 : (short)2*/;
+ stackerCraneTaskCommand.S_Bay = Convert.ToInt16(sourceCodes[1]);
+ stackerCraneTaskCommand.S_level = Convert.ToInt16(sourceCodes[2]);
+ }
+ else
+ {
+ //鏁版嵁閰嶇疆閿欒
+ _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鍑哄簱浠诲姟璧风偣閿欒锛岃捣鐐癸細銆恵task.CurrentAddress}銆�");
+ return null;
+ }
+ }
+ else
+ {
+ _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鏈壘鍒扮珯鍙般�恵task.NextAddress}銆戜俊鎭紝鏃犳硶鑾峰彇瀵瑰簲鐨勫爢鍨涙満鏀捐揣绔欏彴淇℃伅");
+ return null;
+ }
+ }
+ else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.RelocationGroup)
+ {
+ string[] targetCodes = task.NextAddress.Split("-");
+ if (targetCodes.Length == 3)
+ {
+ stackerCraneTaskCommand.E_Row = Convert.ToInt16(targetCodes[0]) /*% 2 != 0 ? (short)1 : (short)2*/;
+ stackerCraneTaskCommand.E_Bay = Convert.ToInt16(targetCodes[1]);
+ stackerCraneTaskCommand.E_level = Convert.ToInt16(targetCodes[2]);
+ }
+ else
+ {
+ //鏁版嵁閰嶇疆閿欒
+ _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"绉诲簱浠诲姟缁堢偣閿欒锛岃捣鐐癸細銆恵task.NextAddress}銆�");
+ return null;
+ }
+ string[] sourceCodes = task.CurrentAddress.Split("-");
+ if (sourceCodes.Length == 3)
+ {
+ stackerCraneTaskCommand.S_Row = Convert.ToInt16(sourceCodes[0])/* % 2 != 0 ? (short)1 : (short)2*/;
+ stackerCraneTaskCommand.S_Bay = Convert.ToInt16(sourceCodes[1]);
+ stackerCraneTaskCommand.S_level = Convert.ToInt16(sourceCodes[2]);
+ }
+ else
+ {
+ //鏁版嵁閰嶇疆閿欒
+ _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"绉诲簱浠诲姟璧风偣閿欒锛岃捣鐐癸細銆恵task.CurrentAddress}銆�");
+ return null;
+ }
+ }
+ return stackerCraneTaskCommand;
+ }
+ }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/widesea_wms/basicinfo/Dt_BDCConfiguration.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/widesea_wms/basicinfo/Dt_BDCConfiguration.js"
new file mode 100644
index 0000000..0595aa0
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/extension/widesea_wms/basicinfo/Dt_BDCConfiguration.js"
@@ -0,0 +1,67 @@
+
+let extension = {
+ components: {
+ //鏌ヨ鐣岄潰鎵╁睍缁勪欢
+ gridHeader: '',
+ gridBody: '',
+ gridFooter: '',
+ //鏂板缓銆佺紪杈戝脊鍑烘鎵╁睍缁勪欢
+ modelHeader: '',
+ modelBody: '',
+ modelFooter: ''
+ },
+ tableAction: '', //鎸囧畾鏌愬紶琛ㄧ殑鏉冮檺(杩欓噷濉啓琛ㄥ悕,榛樿涓嶇敤濉啓)
+ buttons: { view: [], box: [], detail: [] }, //鎵╁睍鐨勬寜閽�
+ methods: {
+ //涓嬮潰杩欎簺鏂规硶鍙互淇濈暀涔熷彲浠ュ垹闄�
+ onInit() { //妗嗘灦鍒濆鍖栭厤缃墠锛�
+ //绀轰緥锛氬湪鎸夐挳鐨勬渶鍓嶉潰娣诲姞涓�涓寜閽�
+ // this.buttons.unshift({ //涔熷彲浠ョ敤push鎴栬�卻plice鏂规硶鏉ヤ慨鏀筨uttons鏁扮粍
+ // name: '鎸夐挳', //鎸夐挳鍚嶇О
+ // icon: 'el-icon-document', //鎸夐挳鍥炬爣vue2鐗堟湰瑙乮view鏂囨。icon锛寁ue3鐗堟湰瑙乪lement ui鏂囨。icon(娉ㄦ剰涓嶆槸element puls鏂囨。)
+ // type: 'primary', //鎸夐挳鏍峰紡vue2鐗堟湰瑙乮view鏂囨。button锛寁ue3鐗堟湰瑙乪lement ui鏂囨。button
+ // onClick: function () {
+ // this.$Message.success('鐐瑰嚮浜嗘寜閽�');
+ // }
+ // });
+
+ //绀轰緥锛氳缃慨鏀规柊寤恒�佺紪杈戝脊鍑烘瀛楁鏍囩鐨勯暱搴�
+ this.boxOptions.labelWidth = 150;
+ },
+ onInited() {
+ //妗嗘灦鍒濆鍖栭厤缃悗
+ //濡傛灉瑕侀厤缃槑缁嗚〃,鍦ㄦ鏂规硶鎿嶄綔
+ //this.detailOptions.columns.forEach(column=>{ });
+ },
+ searchBefore(param) {
+ //鐣岄潰鏌ヨ鍓�,鍙互缁檖aram.wheres娣诲姞鏌ヨ鍙傛暟
+ //杩斿洖false锛屽垯涓嶄細鎵ц鏌ヨ
+ return true;
+ },
+ searchAfter(result) {
+ //鏌ヨ鍚庯紝result杩斿洖鐨勬煡璇㈡暟鎹�,鍙互鍦ㄦ樉绀哄埌琛ㄦ牸鍓嶅鐞嗚〃鏍肩殑鍊�
+ return true;
+ },
+ addBefore(formData) {
+ //鏂板缓淇濆瓨鍓峟ormData涓哄璞★紝鍖呮嫭鏄庣粏琛紝鍙互缁欑粰琛ㄥ崟璁剧疆鍊硷紝鑷繁杈撳嚭鐪媐ormData鐨勫��
+ return true;
+ },
+ updateBefore(formData) {
+ //缂栬緫淇濆瓨鍓峟ormData涓哄璞★紝鍖呮嫭鏄庣粏琛ㄣ�佸垹闄よ鐨処d
+ return true;
+ },
+ rowClick({ row, column, event }) {
+ //鏌ヨ鐣岄潰鐐瑰嚮琛屼簨浠�
+ // this.$refs.table.$refs.table.toggleRowSelection(row); //鍗曞嚮琛屾椂閫変腑褰撳墠琛�;
+ },
+ modelOpenAfter(row) {
+ //鐐瑰嚮缂栬緫銆佹柊寤烘寜閽脊鍑烘鍚庯紝鍙互鍦ㄦ澶勫啓閫昏緫锛屽锛屼粠鍚庡彴鑾峰彇鏁版嵁
+ //(1)鍒ゆ柇鏄紪杈戣繕鏄柊寤烘搷浣滐細 this.currentAction=='Add';
+ //(2)缁欏脊鍑烘璁剧疆榛樿鍊�
+ //(3)this.editFormFields.瀛楁='xxx';
+ //濡傛灉闇�瑕佺粰涓嬫媺妗嗚缃粯璁ゅ�硷紝璇烽亶鍘唗his.editFormOptions鎵惧埌瀛楁閰嶇疆瀵瑰簲data灞炴�х殑key鍊�
+ //鐪嬩笉鎳傚氨鎶婅緭鍑虹湅锛歝onsole.log(this.editFormOptions)
+ }
+ }
+};
+export default extension;
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/router/tables.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/router/tables.js"
index 65c029c..90e849b 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/router/tables.js"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/router/tables.js"
@@ -306,6 +306,14 @@
// meta: {
// keepAlive: true
// }
- }
+ },
+ {
+ path: '/Dt_BDCConfiguration',
+ name: 'Dt_BDCConfiguration',
+ component: () => import('@/views/widesea_wms/basicinfo/Dt_BDCConfiguration.vue'),
+ meta: {
+ keepAlive: false
+ }
+ },
]
export default tables
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/widesea_wms/OrderInfo/Dt_AssemblyOrderInfo.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/widesea_wms/OrderInfo/Dt_AssemblyOrderInfo.vue"
index 1584219..ef0eea8 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/widesea_wms/OrderInfo/Dt_AssemblyOrderInfo.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/widesea_wms/OrderInfo/Dt_AssemblyOrderInfo.vue"
@@ -18,7 +18,7 @@
const table = ref({
key: 'id',
footer: "Foots",
- cnName: '娑傝宸ュ崟',
+ cnName: '鎬昏宸ュ崟',
name: 'Orderinfo/Dt_AssemblyOrderInfo',
url: "/Dt_AssemblyOrderInfo/",
sortName: "Id"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/widesea_wms/basicinfo/Dt_BDCConfiguration.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/widesea_wms/basicinfo/Dt_BDCConfiguration.vue"
new file mode 100644
index 0000000..8536626
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSClient/src/views/widesea_wms/basicinfo/Dt_BDCConfiguration.vue"
@@ -0,0 +1,86 @@
+<!--
+*Author锛歫xx
+ *Contact锛�283591387@qq.com
+ *浠g爜鐢辨鏋剁敓鎴�,浠讳綍鏇存敼閮藉彲鑳藉鑷磋浠g爜鐢熸垚鍣ㄨ鐩�
+ *涓氬姟璇峰湪@/extension/widesea_wms/basicinfo/Dt_AreaInfo.js姝ゅ缂栧啓
+ -->
+<template>
+ <view-grid ref="grid" :columns="columns" :detail="detail" :editFormFields="editFormFields"
+ :editFormOptions="editFormOptions" :searchFormFields="searchFormFields" :searchFormOptions="searchFormOptions"
+ :table="table" :extend="extend">
+ </view-grid>
+</template>
+<script>
+import extend from "@/extension/widesea_wms/basicinfo/Dt_BDCConfiguration.js";
+import { ref, defineComponent } from "vue";
+export default defineComponent({
+ setup() {
+ const table = ref({
+ key: 'Id',
+ footer: "Foots",
+ cnName: '閰嶇疆淇℃伅',
+ name: 'basicinfo/Dt_BDCConfiguration',
+ url: "/Dt_BDCConfiguration/",
+ sortName: "Id"
+ });
+ const editFormFields = ref({
+ "Name": "",
+ "IsActive": "",
+ "MaxWhiteBodyCache": "",
+ "MaxPaintedBodyCache": "",
+ "MaxEmptySledCache": ""
+ });
+ const editFormOptions = ref([
+ [
+ { "title": "閰嶇疆鍚嶇О", "field": "Name", type: "text" },
+ { "title": "鏄惁鍚敤", "field": "IsActive", type: "int" },
+
+ ],
+ [
+ { "title": "鏈�澶х櫧杞﹁韩缂撳瓨", "field": "MaxWhiteBodyCache", type: "text" },
+ { "title": "鏈�澶у僵杞﹁韩缂撳瓨", "field": "MaxPaintedBodyCache", type: "text" },
+ { "title": "鏈�澶х┖婊戞﹪缂撳瓨", "field": "MaxEmptySledCache", type: "text" },
+ ]
+ ]);
+ const searchFormFields = ref({
+ "Name": "",
+ "IsActive": "",
+ });
+ const searchFormOptions = ref([
+ [
+ { "title": "閰嶇疆鍚嶇О", "field": "Name", type: "text" },
+ { "title": "鏄惁鍚敤", "field": "IsActive", type: "int" }
+ ],
+ ]);
+ const columns = ref([{ field: 'Id', title: 'ID', type: 'int', sort: true, hidden: true, width: 110, readonly: true, require: true, align: 'left' },
+ { field: 'name', title: '閰嶇疆鍚嶇О', type: 'string', width: 110, align: 'left' },
+ { field: 'isActive', title: '鐘舵��', type: 'int', width: 110, align: 'left', bind: { key: "status", data: [] } },
+ { field: 'maxWhiteBodyCache', title: '鏈�澶х櫧杞﹁韩缂撳瓨', type: 'int', width: 120, align: 'left' },
+ { field: 'maxWhiteBodyCache', title: '鏈�澶у僵杞﹁韩缂撳瓨', type: 'int', width: 120, align: 'left' },
+ { field: 'maxWhiteBodyCache', title: '鏈�澶х┖婊戞﹪缂撳瓨', type: 'int', width: 120, align: 'left' },
+ { field: 'creater', title: '鍒涘缓浜�', type: 'string', width: 75, align: 'left' },
+ { field: 'createDate', title: '鍒涘缓鏃堕棿', type: 'datetime', sort: true, width: 120, align: 'left', sort: true },
+ { field: 'modifier', title: '淇敼浜�', type: 'string', sort: true, width: 75, align: 'left' },
+ { field: 'modifyDate', title: '淇敼鏃堕棿', type: 'datetime', sort: true, width: 120, align: 'left', sort: true },
+
+ ]);
+ const detail = ref({
+ cnName: "#detailCnName",
+ table: "#detailTable",
+ columns: [],
+ sortName: "",
+ key: ""
+ });
+ return {
+ table,
+ extend,
+ editFormFields,
+ editFormOptions,
+ searchFormFields,
+ searchFormOptions,
+ columns,
+ detail,
+ };
+ },
+});
+</script>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Common/MES/GetCarCharacteristicInfo.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Common/MES/GetCarCharacteristicInfo.cs"
new file mode 100644
index 0000000..4270985
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Common/MES/GetCarCharacteristicInfo.cs"
@@ -0,0 +1,45 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEA_Common
+{
+ /// <summary>
+ /// AVI/BDC鍚慚ES璇锋眰杞﹁締鐗瑰緛淇℃伅
+ /// rfidPrint : pvi鍙�+鐧借溅韬墿鏂欏彿鍚�4浣�
+ /// vin : vin鍙�
+ /// AB00 : 杞﹀瀷
+ /// SE00 : 杞﹁韩棰滆壊
+ /// AD00 : 澶╃獥
+ /// </summary>
+ public class GetCarCharacteristicInfo
+ {
+ /// <summary>
+ /// 鍞竴鏍囪瘑
+ /// </summary>
+ public string unionKey { get; set; }
+
+ /// <summary>
+ /// 宸ュ巶缂栫爜
+ /// </summary>
+ public string code { get; set; }
+
+ /// <summary>
+ /// pvi鍙�+鐧借溅韬墿鏂欏彿鍚�4浣�
+ /// </summary>
+ public string rfid { get; set; }
+
+ /// <summary>
+ /// VIN鍙�
+ /// </summary>
+ public bool success { get; set; }
+
+ /// <summary>
+ /// 鍚屾鏃堕棿
+ /// </summary>
+ public DateTime? messageTime { get; set; }
+
+ }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Common/MES/CarCharacteristicInfo.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Common/MES/Request/CarCharacteristicInfo.cs"
similarity index 100%
rename from "\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Common/MES/CarCharacteristicInfo.cs"
rename to "\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Common/MES/Request/CarCharacteristicInfo.cs"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Common/MES/Request/IssuedCharacterInfo.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Common/MES/Request/IssuedCharacterInfo.cs"
index 4f3f56b..8593971 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Common/MES/Request/IssuedCharacterInfo.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Common/MES/Request/IssuedCharacterInfo.cs"
@@ -6,12 +6,17 @@
namespace WIDESEA_Common.MES.Request
{
+ /// <summary>
+ /// BDC璇锋眰鐒婅鐗瑰緛涓嬪彂
+ /// 杞﹁韩杩涘叆BDC鏃讹紝BDC璇诲彇杞﹁韩涓婄殑涓�缁存潯鐮佸悜MES璇锋眰鐒婅鐗瑰緛淇℃伅
+ /// 璇锋眰鍙傛暟
+ /// </summary>
public class IssuedCharacterInfo
{
/// <summary>
/// 宸ュ巶缂栧彿
/// </summary>
- public string plantCode { get; set; } = "1022";
+ public string plantCode { get; set; } = "1052";
/// <summary>
/// pvi鍙�+鐧借溅韬墿鏂欏彿鍚�4浣� (鎵弿杞﹁韩鐧借溅韬墿鏂欑爜)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Common/MES/Request/pushWorkOrderInfo.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Common/MES/Request/pushWorkOrderInfo.cs"
index a87f235..69a62b2 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Common/MES/Request/pushWorkOrderInfo.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Common/MES/Request/pushWorkOrderInfo.cs"
@@ -6,10 +6,16 @@
namespace WIDESEA_Common
{
+
+ public class pushWorkOrderInfo
+ {
+ public List<pushWorkOrderInfoDet> list { get; set; }
+ }
+
/// <summary>
/// 娑傝宸ュ崟淇℃伅
/// </summary>
- public class pushWorkOrderInfo
+ public class pushWorkOrderInfoDet
{
/// <summary>
/// 宸ュ巶
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Core/Const/ConfigConst.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Core/Const/ConfigConst.cs"
index bc93dc4..9b238de 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Core/Const/ConfigConst.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Core/Const/ConfigConst.cs"
@@ -100,7 +100,7 @@
/// <summary>
/// 杞﹁韩杩囩偣
/// </summary>
- public const string PassPoint = "PassPoint";
+ public const string AVIPASS = "AVIPASS";
/// <summary>
/// WCS鎺ユ敹浠诲姟
@@ -116,5 +116,10 @@
/// 杞﹁韩鐗瑰緛淇℃伅
/// </summary>
public const string IssuedCharacter = "IssuedCharacter";
+
+ /// <summary>
+ /// BDC鍚慚ES璇锋眰杞﹁締鐗瑰緛淇℃伅
+ /// </summary>
+ public const string getCharacteristic = "getCharacteristic";
}
}
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Core/DB/Models/BaseEntity.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Core/DB/Models/BaseEntity.cs"
index 826b722..ec3625b 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Core/DB/Models/BaseEntity.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Core/DB/Models/BaseEntity.cs"
@@ -79,7 +79,7 @@
[ImporterHeader(Name = "淇敼浜�")]
[ExporterHeader(DisplayName = "淇敼浜�")]
[SugarColumn(IsNullable = true, IsOnlyIgnoreInsert = true, ColumnDescription = "淇敼浜�")]
- public string Modifier { get; set; }
+ public string Modifier { get; set; } = "System";
/// <summary>
/// 淇敼鏃ユ湡
@@ -87,7 +87,7 @@
[ImporterHeader(Name = "淇敼鏃ユ湡")]
[ExporterHeader(DisplayName = "淇敼鏃ユ湡")]
[SugarColumn(IsNullable = true, IsOnlyIgnoreInsert = true, ColumnDescription = "淇敼鏃ユ湡")]
- public DateTime? ModifyDate { get; set; } //= DateTime.Now;
+ public DateTime? ModifyDate { get; set; } = DateTime.Now;
/// <summary>
/// 鏁版嵁鐗堟湰
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Core/HostedService/SeedDataHostedService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Core/HostedService/SeedDataHostedService.cs"
index 1064dbc..80b23ea 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Core/HostedService/SeedDataHostedService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Core/HostedService/SeedDataHostedService.cs"
@@ -49,7 +49,7 @@
{
// 浣跨敤 myScopedService 鎵ц浠诲姟
- await DBSeed.SeedAsync(_dbContext, _webRootPath);
+ //await DBSeed.SeedAsync(_dbContext, _webRootPath);
//澶氱鎴� 鍚屾
//await DBSeed.TenantSeedAsync(_dbContext);
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_IStoragIntegrationServices/MES/IMESService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_IStoragIntegrationServices/MES/IMESService.cs"
index 508a16e..185193c 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_IStoragIntegrationServices/MES/IMESService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_IStoragIntegrationServices/MES/IMESService.cs"
@@ -10,14 +10,48 @@
{
public interface IMESService : IDependency
{
+ /// <summary>
+ /// 娑傝宸ュ崟淇℃伅
+ /// </summary>
+ /// <param name="json"></param>
+ /// <returns></returns>
WebResponseContent pushWorkOrderInfo(object json);
+ /// <summary>
+ /// 棰勭粦瀹氬伐鍗�
+ /// </summary>
WebResponseContent prebind(object json);
- WebResponseContent PassPoint(string stationCode);
+ /// <summary>
+ /// 杞﹁韩杩囩偣璇锋眰
+ /// </summary>
+ WebResponseContent PassPoint(string stationCode, string rfid);
+ /// <summary>
+ /// 鎬昏宸ュ崟淇℃伅
+ /// </summary>
WebResponseContent pushOrderInfo(object json);
+ /// <summary>
+ /// BDC璇锋眰鐒婅鐗瑰緛淇℃伅
+ /// </summary>
+ /// <param name="rfidPrint">RFID</param>
+ /// <param name="vin">VIN鍙�</param>
+ /// <param name="stationNo">绔欏彴璇锋眰鐐逛綅</param>
+ /// <returns></returns>
WebResponseContent issuedCharacter(string rfidPrint, string vin, string stationNo);
+
+ /// <summary>
+ /// 杞﹁韩缁戝畾宸ュ崟(鐒婅鐩撮�氭秱瑁�)
+ /// </summary>
+ WebResponseContent bindWorkOrder(string stationNo, string rfid);
+
+ /// <summary>
+ /// BDC璇锋眰杞﹁締鐗瑰緛淇℃伅
+ /// </summary>
+ /// <param name="rfidPrint">RFID</param>
+ /// <param name="stationNo">绔欏彴璇锋眰鐐逛綅</param>
+ /// <returns></returns>
+ WebResponseContent getCharacteristic(string rfidPrint, string stationNo);
}
}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Model/Models/BasicInfo/Dt_BDCConfiguration.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Model/Models/BasicInfo/Dt_BDCConfiguration.cs"
index 0d1e8e1..e8b2e12 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Model/Models/BasicInfo/Dt_BDCConfiguration.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Model/Models/BasicInfo/Dt_BDCConfiguration.cs"
@@ -5,63 +5,61 @@
using System.Linq;
using System.Text;
using System.Threading.Tasks;
+using WIDESEA_Core.DB.Models;
namespace WIDESEA_Model.Models
{
/// <summary>
- /// BDC缂撳瓨閰嶇疆锛屽瓨鍌ㄥ悇绫荤墿鏂欑殑鏈�澶х紦瀛樻暟閲忛檺鍒�
+ /// BDC缂撳瓨閰嶇疆
/// </summary>
- [SugarTable(nameof(Dt_BDCConfiguration), "BDC缂撳瓨閰嶇疆")]
- public class Dt_BDCConfiguration
+ [SugarTable(nameof(Dt_BDCConfiguration_detail), "BDC閰嶇疆")]
+ public class Dt_BDCConfiguration_detail : BaseEntity
{
- [Key]
+ [SugarColumn(ColumnName = "Id", IsPrimaryKey = true, IsIdentity = true)]
public int Id { get; set; }
+
+ [SugarColumn(ColumnName = "Name")]
+ public int Con_Id { get; set; }
/// <summary>
/// 閰嶇疆鍚嶇О
/// </summary>
- [Required]
- [MaxLength(100)]
- public string Name { get; set; } = "Default Configuration";
+ [SugarColumn(ColumnName = "Name")]
+ public string Name { get; set; } = "榛樿閰嶇疆";
/// <summary>
/// 鐧借溅韬渶澶х紦瀛樻暟
/// </summary>
+ [SugarColumn(ColumnName = "MaxWhiteBodyCache")]
[Range(0, int.MaxValue)]
+
public int MaxWhiteBodyCache { get; set; } = 100;
/// <summary>
/// 褰╄溅韬渶澶х紦瀛樻暟
/// </summary>
+ [SugarColumn(ColumnName = "MaxPaintedBodyCache")]
[Range(0, int.MaxValue)]
public int MaxPaintedBodyCache { get; set; } = 100;
/// <summary>
/// 鐢垫睜澹虫渶澶х紦瀛樻暟
/// </summary>
+ [SugarColumn(ColumnName = "MaxBatteryCaseCache")]
[Range(0, int.MaxValue)]
public int MaxBatteryCaseCache { get; set; } = 50;
/// <summary>
/// 绌烘粦姗囨渶澶х紦瀛樻暟
/// </summary>
+ [SugarColumn(ColumnName = "MaxEmptySledCache")]
[Range(0, int.MaxValue)]
public int MaxEmptySledCache { get; set; } = 30;
/// <summary>
- /// 鏈�鍚庢洿鏂版椂闂�
- /// </summary>
- public DateTime LastUpdatedTime { get; set; } = DateTime.Now;
-
- /// <summary>
- /// 鏇存柊浜�
- /// </summary>
- [MaxLength(50)]
- public string UpdatedBy { get; set; } = "System";
-
- /// <summary>
/// 鏄惁鍚敤
/// </summary>
+ [SugarColumn(ColumnName = "IsActive")]
public int IsActive { get; set; } = 1;
}
}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Model/Models/BasicInfo/Dt_BDCConfiguration_detail.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Model/Models/BasicInfo/Dt_BDCConfiguration_detail.cs"
new file mode 100644
index 0000000..7004ee2
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_Model/Models/BasicInfo/Dt_BDCConfiguration_detail.cs"
@@ -0,0 +1,62 @@
+锘縰sing SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.DB.Models;
+
+namespace WIDESEA_Model.Models
+{
+ /// <summary>
+ /// BDC缂撳瓨閰嶇疆锛屽瓨鍌ㄥ悇绫荤墿鏂欑殑鏈�澶х紦瀛樻暟閲忛檺鍒�
+ /// </summary>
+ [SugarTable(nameof(Dt_BDCConfiguration), "BDC閰嶇疆璇︽儏")]
+ public class Dt_BDCConfiguration: BaseEntity
+ {
+ [SugarColumn(ColumnName = "Id", IsPrimaryKey = true, IsIdentity = true)]
+ public int Id { get; set; }
+
+ /// <summary>
+ /// 閰嶇疆鍚嶇О
+ /// </summary>
+ [SugarColumn(ColumnName = "Name")]
+ public string Name { get; set; } = "榛樿閰嶇疆";
+
+ /// <summary>
+ /// 鐧借溅韬渶澶х紦瀛樻暟
+ /// </summary>
+ [SugarColumn(ColumnName = "MaxWhiteBodyCache")]
+ [Range(0, int.MaxValue)]
+
+ public int MaxWhiteBodyCache { get; set; } = 100;
+
+ /// <summary>
+ /// 褰╄溅韬渶澶х紦瀛樻暟
+ /// </summary>
+ [SugarColumn(ColumnName = "MaxPaintedBodyCache")]
+ [Range(0, int.MaxValue)]
+ public int MaxPaintedBodyCache { get; set; } = 100;
+
+ /// <summary>
+ /// 鐢垫睜澹虫渶澶х紦瀛樻暟
+ /// </summary>
+ [SugarColumn(ColumnName = "MaxBatteryCaseCache")]
+ [Range(0, int.MaxValue)]
+ public int MaxBatteryCaseCache { get; set; } = 50;
+
+ /// <summary>
+ /// 绌烘粦姗囨渶澶х紦瀛樻暟
+ /// </summary>
+ [SugarColumn(ColumnName = "MaxEmptySledCache")]
+ [Range(0, int.MaxValue)]
+ public int MaxEmptySledCache { get; set; } = 30;
+
+ /// <summary>
+ /// 鏄惁鍚敤
+ /// </summary>
+ [SugarColumn(ColumnName = "IsActive")]
+ public int IsActive { get; set; } = 1;
+ }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StoragIntegrationServices/MES/MESService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StoragIntegrationServices/MES/MESService.cs"
index 66a5dbb..85973fa 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StoragIntegrationServices/MES/MESService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StoragIntegrationServices/MES/MESService.cs"
@@ -31,8 +31,9 @@
private readonly IUnitOfWorkManage _unitOfWorkManage;
private readonly IDt_CarBodyRepository _carBodyRepository;
private readonly IDt_AssemblyOrderInfoRepository _assemblyOrderInfoRepository;
+ private readonly IDt_PaintingOrderInfoRepository _paintingOrderInfoRepository;
- public MESService(ILocationInfoRepository locationRepository, IDt_TaskRepository taskRepository, ISys_ConfigService configService, IDt_StationManagerRepository stationManagerRepository, IDt_AreaInfoRepository dt_AreaInfoRepository, IDt_PalletInfoRepository palletInfoRepository, IDt_PalletStockInfoRepository palletStockInfoRepository, IDt_OutOrderRepository OutOrderRepository, IUnitOfWorkManage unitOfWorkManage, IDt_CarBodyRepository carBodyRepository, IDt_AssemblyOrderInfoRepository assemblyOrderInfoRepository)
+ public MESService(ILocationInfoRepository locationRepository, IDt_TaskRepository taskRepository, ISys_ConfigService configService, IDt_StationManagerRepository stationManagerRepository, IDt_AreaInfoRepository dt_AreaInfoRepository, IDt_PalletInfoRepository palletInfoRepository, IDt_PalletStockInfoRepository palletStockInfoRepository, IDt_OutOrderRepository OutOrderRepository, IUnitOfWorkManage unitOfWorkManage, IDt_CarBodyRepository carBodyRepository, IDt_AssemblyOrderInfoRepository assemblyOrderInfoRepository, IDt_PaintingOrderInfoRepository paintingOrderInfoRepository)
{
_locationRepository = locationRepository;
_taskRepository = taskRepository;
@@ -45,6 +46,7 @@
_unitOfWorkManage = unitOfWorkManage;
_carBodyRepository = carBodyRepository;
_assemblyOrderInfoRepository = assemblyOrderInfoRepository;
+ _paintingOrderInfoRepository = paintingOrderInfoRepository;
}
}
}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StoragIntegrationServices/MES/Partial/PassPoint.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StoragIntegrationServices/MES/Partial/PassPoint.cs"
index 98d7133..5e820ad 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StoragIntegrationServices/MES/Partial/PassPoint.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StoragIntegrationServices/MES/Partial/PassPoint.cs"
@@ -6,19 +6,16 @@
namespace WIDESEA_StoragIntegrationServices
{
- /// <summary>
- /// 杞﹁韩杩囩偣璇锋眰
- /// </summary>
public partial class MESService
{
- public WebResponseContent PassPoint(string stationCode)
+ public WebResponseContent PassPoint(string stationCode, string rfid)
{
WebResponseContent content = new WebResponseContent();
try
{
var configs = _configService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_MESIPAddress);
var wmsBase = configs.FirstOrDefault(x => x.ConfigKey == SysConfigConst.MESIPAddress)?.ConfigValue;
- var ipAddress = configs.FirstOrDefault(x => x.ConfigKey == SysConfigConst.PassPoint)?.ConfigValue;
+ var ipAddress = configs.FirstOrDefault(x => x.ConfigKey == SysConfigConst.AVIPASS)?.ConfigValue;
if (wmsBase == null || ipAddress == null)
{
throw new InvalidOperationException("WMS IP 鏈厤缃�");
@@ -32,8 +29,8 @@
union_key = Guid.NewGuid().ToString(),
line_code = stationInfo.stationChildCode,
message_time = DateTime.Now,
- plant_code = "",
- pvi = "",
+ plant_code = "1052",
+ pvi = rfid,
station_code = stationInfo.stationChildCode,
vin = "",
pass_time = DateTime.Now
@@ -47,6 +44,9 @@
throw new Exception($"杞﹁韩杩囩偣寮傚父锛歿responseContent.Message}");
}
+ LogFactory.GetLog("杞﹁韩杩囩偣").Info(true, $"\r\r--------------------------------------");
+ LogFactory.GetLog("杞﹁韩杩囩偣").Info(true, $"宸ヤ綅鍙�:{stationCode},RFID:{rfid}");
+
return content;
}
catch (Exception ex)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StoragIntegrationServices/MES/Partial/bindWorkOrder.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StoragIntegrationServices/MES/Partial/bindWorkOrder.cs"
index 8533927..a883af1 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StoragIntegrationServices/MES/Partial/bindWorkOrder.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StoragIntegrationServices/MES/Partial/bindWorkOrder.cs"
@@ -19,7 +19,7 @@
/// </summary>
public partial class MESService
{
- public WebResponseContent bindWorkOrder(string stationCode)
+ public WebResponseContent bindWorkOrder(string stationNo, string rfid)
{
WebResponseContent content = new WebResponseContent();
try
@@ -33,7 +33,7 @@
}
var wmsIpAddress = wmsBase + ipAddress;
- var stationInfo = _stationManagerRepository.QueryFirst(x => x.stationChildCode == stationCode);
+ var stationInfo = _stationManagerRepository.QueryFirst(x => x.stationChildCode == stationNo);
BindWorkOrder passPoint = new BindWorkOrder()
{
@@ -41,7 +41,7 @@
stationCode = stationInfo.stationChildCode,
messageTime = DateTime.Now.ToString(),
plantCode = "1022",
- pvi = "",
+ pvi = rfid,
workOrderNo = "",
workOrderType = "",
workshopCode = ""
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StoragIntegrationServices/MES/Partial/getCharacteristic.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StoragIntegrationServices/MES/Partial/getCharacteristic.cs"
new file mode 100644
index 0000000..4bb12f5
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StoragIntegrationServices/MES/Partial/getCharacteristic.cs"
@@ -0,0 +1,73 @@
+锘縰sing Microsoft.EntityFrameworkCore.Storage.ValueConversion.Internal;
+using Newtonsoft.Json;
+using System;
+using System.Collections.Generic;
+using System.IdentityModel.Tokens.Jwt;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Common;
+using WIDESEA_Common.MES;
+using WIDESEA_Common.MES.Request;
+using WIDESEA_Core;
+using WIDESEA_Core.Const;
+using WIDESEA_Core.Helper;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_StoragIntegrationServices
+{
+ /// <summary>
+ /// BDC鍚慚ES璇锋眰杞﹁締鐗瑰緛淇℃伅
+ /// 鎺ュ彛鎻忚堪: BDC鍦≒BS01鍓嶄竴涓伐浣嶉�氳繃锛圥VI+鐧借溅韬悗4浣嶏級鍚慚ES璇锋眰VIN+杞﹁締鐗瑰緛淇℃伅鍐欏叆tag
+ /// </summary>
+ public partial class MESService
+ {
+ /// <summary>
+ /// BDC璇锋眰杞﹁締鐗瑰緛淇℃伅
+ /// </summary>
+ /// <param name="rfidPrint">RFID</param>
+ /// <param name="stationNo">绔欏彴璇锋眰鐐逛綅</param>
+ /// <returns></returns>
+ public WebResponseContent getCharacteristic(string rfidPrint, string stationNo)
+ {
+ WebResponseContent content = new WebResponseContent();
+ try
+ {
+ CarCharacteristicInfo characterInfo = new CarCharacteristicInfo()
+ {
+ plantCode = "1052",
+ rfidPrint = rfidPrint,
+ vin = vin,
+ messageTime = DateTime.Now.ToString(),
+ unionKey = Guid.NewGuid().ToString(),
+ };
+
+ var configs = _configService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_MESIPAddress);
+ var wmsBase = configs.FirstOrDefault(x => x.ConfigKey == SysConfigConst.MESIPAddress)?.ConfigValue;
+ var ipAddress = configs.FirstOrDefault(x => x.ConfigKey == SysConfigConst.getCharacteristic)?.ConfigValue;
+ if (wmsBase == null || ipAddress == null)
+ {
+ throw new InvalidOperationException("WMS IP 鏈厤缃�");
+ }
+ var wmsIpAddress = wmsBase + ipAddress;
+
+ var MESrespon = HttpHelper.Post(wmsIpAddress, characterInfo.ToJson());
+
+ GetCarCharacteristicInfo characterRespon = JsonConvert.DeserializeObject<GetCarCharacteristicInfo>(MESrespon);
+ if (!characterRespon.success)
+ {
+ throw new Exception($"{characterRespon}");
+ }
+
+ LogFactory.GetLog("BDC璇锋眰杞﹁締鐗瑰緛淇℃伅").Info(true, $"\r\r--------------------------------------");
+ LogFactory.GetLog("BDC璇锋眰杞﹁締鐗瑰緛淇℃伅").Info(true, $"宸ヤ綅鍙�:{stationNo},RFID:{rfidPrint}");
+
+ return content;
+ }
+ catch (Exception ex)
+ {
+ return content.Error($"BDC璇锋眰杞﹁締鐗瑰緛淇℃伅锛�:{ex.Message}");
+ }
+ }
+ }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StoragIntegrationServices/MES/Partial/issuedCharacter.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StoragIntegrationServices/MES/Partial/issuedCharacter.cs"
index 6f43342..ded569a 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StoragIntegrationServices/MES/Partial/issuedCharacter.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StoragIntegrationServices/MES/Partial/issuedCharacter.cs"
@@ -21,13 +21,7 @@
/// </summary>
public partial class MESService
{
- /// <summary>
- /// BDC璇锋眰鐒婅鐗瑰緛淇℃伅
- /// </summary>
- /// <param name="rfidPrint">RFID</param>
- /// <param name="vin">VIN鍙�</param>
- /// <param name="stationNo">绔欏彴璇锋眰鐐逛綅</param>
- /// <returns></returns>
+
public WebResponseContent issuedCharacter(string rfidPrint, string vin, string stationNo)
{
WebResponseContent content = new WebResponseContent();
@@ -35,7 +29,7 @@
{
IssuedCharacterInfo characterInfo = new IssuedCharacterInfo()
{
- plantCode = "1022",
+ plantCode = "1052",
rfidPrint = rfidPrint,
vin = vin,
messageTime = DateTime.Now
@@ -70,10 +64,16 @@
};
_carBodyRepository.AddData(CarBody);
+
+ LogFactory.GetLog("璇锋眰鐒婅鐗瑰緛淇℃伅").Info(true, $"\r\r--------------------------------------");
+ LogFactory.GetLog("璇锋眰鐒婅鐗瑰緛淇℃伅").Info(true, $"宸ヤ綅鍙�:{stationNo},RFID:{rfidPrint}");
+
+
return content;
}
catch (Exception ex)
{
+ LogFactory.GetLog("璇锋眰鐒婅鐗瑰緛淇℃伅").Info(true, $"璇锋眰鐒婅鐗瑰緛淇℃伅寮傚父锛�:{ex.Message}");
return content.Error($"璇锋眰鐒婅鐗瑰緛淇℃伅寮傚父锛�:{ex.Message}");
}
}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StoragIntegrationServices/MES/Partial/preBind.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StoragIntegrationServices/MES/Partial/preBind.cs"
index 1bea05a..62586aa 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StoragIntegrationServices/MES/Partial/preBind.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StoragIntegrationServices/MES/Partial/preBind.cs"
@@ -15,9 +15,7 @@
namespace WIDESEA_StoragIntegrationServices
{
- /// <summary>
- /// 棰勭粦瀹�
- /// </summary>
+
public partial class MESService
{
public WebResponseContent prebind(object json)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StoragIntegrationServices/MES/Partial/pushOrderInfo.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StoragIntegrationServices/MES/Partial/pushOrderInfo.cs"
index 0c06a9d..199cf98 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StoragIntegrationServices/MES/Partial/pushOrderInfo.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StoragIntegrationServices/MES/Partial/pushOrderInfo.cs"
@@ -18,9 +18,7 @@
namespace WIDESEA_StoragIntegrationServices
{
- /// <summary>
- /// 鎬昏宸ュ崟淇℃伅
- /// </summary>
+
public partial class MESService
{
public WebResponseContent pushOrderInfo(object json)
@@ -132,6 +130,9 @@
_unitOfWorkManage.CommitTran();
responseContent.OK();
+
+ LogFactory.GetLog("鎬昏宸ュ崟淇℃伅").Info(true, $"\r\r--------------------------------------");
+ LogFactory.GetLog("鎬昏宸ュ崟淇℃伅").Info(true, json.ToJsonString());
}
catch (Exception ex)
{
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StoragIntegrationServices/MES/Partial/pushWorkOrderInfo.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StoragIntegrationServices/MES/Partial/pushWorkOrderInfo.cs"
index 87cd9a1..d2f2daf 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StoragIntegrationServices/MES/Partial/pushWorkOrderInfo.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StoragIntegrationServices/MES/Partial/pushWorkOrderInfo.cs"
@@ -16,16 +16,13 @@
using WIDESEA_DTO.WMS;
using WIDESEA_Model.Models;
using WIDESEA_StorageBasicRepository;
+using WIDESEA_StorageOutOrderRepository;
namespace WIDESEA_StoragIntegrationServices
{
public partial class MESService
{
- /// <summary>
- /// 娑傝宸ュ崟淇℃伅
- /// </summary>
- /// <param name="json"></param>
- /// <returns></returns>
+
public WebResponseContent pushWorkOrderInfo(object json)
{
WebResponseContent content = new WebResponseContent();
@@ -35,11 +32,34 @@
var result = JsonConvert.DeserializeObject<pushWorkOrderInfo>(json.ToString());
- var palletStockInfos = _palletStockInfoRepository.QueryData(x => x.OrderID == result.workOrderNo);
+ var paintingOrderInfos = new List<Dt_PaintingOrderInfo>();
+ foreach (var item in result.list)
+ {
+ Dt_PaintingOrderInfo paintingOrderInfo = new Dt_PaintingOrderInfo()
+ {
+ biwMaterial = item.biwMaterial,
+ carBodyCharacteristic = item.carBodyCharacteristic,
+ config1 = item.config1,
+ config3 = item.config3,
+ CreateDate = DateTime.Now,
+ Creater = "System",
+ pbMaterial = item.pbMaterial,
+ plantCode = item.plantCode,
+ pvi = item.pvi,
+ sequenceNo = item.sequenceNo,
+ skylightCharacteristic = item.skylightCharacteristic,
+ twoToneCharacteristic = item.twoToneCharacteristic,
+ vehicleCharacteristic = item.vehicleCharacteristic,
+ workOrderNo = item.workOrderNo,
+ workOrderSendStatus = item.workOrderSendStatus,
+ splitStrategy = item.splitStrategy,
+ workOrderType = item.workOrderType,
+ workshopCode = item.workshopCode,
+ };
-
-
-
+ paintingOrderInfos.Add(paintingOrderInfo);
+ }
+ _paintingOrderInfoRepository.AddData(paintingOrderInfos);
LogFactory.GetLog("娑傝宸ュ崟淇℃伅").Info(true, $"\r\r--------------------------------------");
LogFactory.GetLog("娑傝宸ュ崟淇℃伅").Info(true, result.ToJsonString());
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageBasicServices/BasicInfo/Dt_BDCConfigurationService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageBasicServices/BasicInfo/Dt_BDCConfigurationService.cs"
index dd3f952..f3d45a4 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageBasicServices/BasicInfo/Dt_BDCConfigurationService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageBasicServices/BasicInfo/Dt_BDCConfigurationService.cs"
@@ -50,8 +50,8 @@
MaxPaintedBodyCache = maxPaintedBody,
MaxBatteryCaseCache = maxBatteryCase,
MaxEmptySledCache = maxEmptySled,
- LastUpdatedTime = DateTime.Now,
- UpdatedBy = App.User.UserName,
+ CreateDate = DateTime.Now,
+ Creater = App.User.UserName,
IsActive = 1
};
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageTaskServices/BDCManager/BDCManager.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageTaskServices/BDCManager/BDCManager.cs"
index 21003a2..8f902cf 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageTaskServices/BDCManager/BDCManager.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageTaskServices/BDCManager/BDCManager.cs"
@@ -4,6 +4,7 @@
using System.Security.Cryptography.X509Certificates;
using System.Text;
using System.Threading.Tasks;
+using WIDESEA_IStoragIntegrationServices;
using WIDESEAWCS_BasicInfoRepository;
using WIDESEAWCS_BasicInfoService;
@@ -17,14 +18,16 @@
private readonly ILocationInfoRepository _locationRepository;
private readonly IDt_RoadWayInfoRepository _roadWayInfoRepository;
private readonly IDt_RoadWayRepository _roadWayRepository;
-
+ private readonly IMESService _mesService;
+
// 鏇存柊鏋勯�犲嚱鏁�
- public BDCManager(IDt_BDCConfigurationService BDCConfigurationService, ILocationInfoRepository locationInfoRepository, IDt_RoadWayInfoRepository roadWayInfoRepository )
+ public BDCManager(IDt_BDCConfigurationService BDCConfigurationService, ILocationInfoRepository locationInfoRepository, IDt_RoadWayInfoRepository roadWayInfoRepository, IMESService mesService)
{
_BDCConfigurationService = BDCConfigurationService;
_locationRepository = locationInfoRepository;
_roadWayInfoRepository = roadWayInfoRepository;
+ _mesService = mesService;
}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs"
index 9cc2883..1af1811 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs"
@@ -45,9 +45,9 @@
var carBody = _carBodyRepository.QueryFirst(x => x.PalletCode == input.PalletCode);
- BDCManager bDCManager = new BDCManager(_bdcConfigurationService, _locationRepository, _roadWayInfoRepository);
+ //BDCManager bDCManager = new BDCManager(_bdcConfigurationService, _locationRepository, _roadWayInfoRepository);
- await bDCManager.AddToBDC(carBody);
+ //await bDCManager.AddToBDC(carBody);
// 鑾峰彇搴撲綅
var location = RequestLocation(stationInfo.Roadway);
@@ -96,10 +96,11 @@
#endregion 璇锋眰浠诲姟鍏ュ簱
#region 搴撲綅鍒嗛厤
+
#region 鑾峰彇璐т綅
object objLOCK = new object();
/// <summary>
- /// 鍙屽崌搴撲綅鍒嗛厤
+ /// 搴撲綅鍒嗛厤
/// </summary>
/// <param name="requestTask"></param>
/// <param name="locationInfos"></param>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_WMSServer/Controllers/MES/MESController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_WMSServer/Controllers/MES/MESController.cs"
index 079f645..b860861 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_WMSServer/Controllers/MES/MESController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_WMSServer/Controllers/MES/MESController.cs"
@@ -7,7 +7,7 @@
namespace WIDESEA_WMSServer.Controllers;
-[Route("api/[controller]")]
+[Route("api/BDC")]
[ApiController]
public class MESController : Controller
{
@@ -26,9 +26,9 @@
/// <param name="stationCode"></param>
/// <returns></returns>
[HttpPost, Route("PassPoint"), AllowAnonymous]
- public WebResponseContent PassPoint(string stationCode)
+ public WebResponseContent PassPoint(string stationCode,string rfid)
{
- return _MESService.PassPoint(stationCode);
+ return _MESService.PassPoint(stationCode, rfid);
}
/// <summary>
@@ -63,4 +63,15 @@
{
return _MESService.issuedCharacter(carCode, vin, station);
}
+
+ /// <summary>
+ /// 杞﹁韩杩囩偣
+ /// </summary>
+ /// <param name="stationCode"></param>
+ /// <returns></returns>
+ [HttpPost, Route("PassPoint"), AllowAnonymous]
+ public WebResponseContent PassPoint(string stationCode, string rfid)
+ {
+ return _MESService.(stationCode, rfid);
+ }
}
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_WMSServer/Controllers/TaskController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_WMSServer/Controllers/TaskController.cs"
index 8f30d8d..518ce68 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_WMSServer/Controllers/TaskController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WMSServer/WIDESEA_WMSServer/Controllers/TaskController.cs"
@@ -88,4 +88,16 @@
{
return Service.CreateAndSendOutboundTask(saveModel);
}
+
+ /// <summary>
+ /// 浠诲姟鐘舵�佷慨鏀�
+ /// </summary>
+ /// <param name="input">璇锋眰鏁版嵁</param>
+ /// <returns></returns>
+ //[HttpPost, AllowAnonymous, Route("UpdateTaskStatus")]
+ ////[TypeFilter(typeof(ThrottleFilter), Arguments = new object[] { 5 })] // 5绉掕妭娴�
+ //public async Task<WebResponseContent> UpdateTaskStatus([FromBody] UpdateStatusDto input)
+ //{
+ // return await Service.UpdateTaskStatus(input.TaskNum, input.TaskState);
+ //}
}
\ No newline at end of file
--
Gitblit v1.9.3