From 245e51a89259881f2a157e967fc2f1008e12bd5e Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周六, 30 11月 2024 17:30:03 +0800
Subject: [PATCH] 222
---
CC/iWareCC_ASRS/Common/Helper/MyExtendHelper.cs | 410 +++++++++++++---------------------------------------------
1 files changed, 91 insertions(+), 319 deletions(-)
diff --git a/CC/iWareCC_ASRS/Common/Helper/MyExtendHelper.cs b/CC/iWareCC_ASRS/Common/Helper/MyExtendHelper.cs
index 4cc12dd..a1b91dc 100644
--- a/CC/iWareCC_ASRS/Common/Helper/MyExtendHelper.cs
+++ b/CC/iWareCC_ASRS/Common/Helper/MyExtendHelper.cs
@@ -1,9 +1,11 @@
-锘縰sing iWareCommon.Common.Globle;
+锘縰sing Admin.NET.Application;
+using iWareCommon.Common.Globle;
using iWareCommon.Utils;
using iWareModel;
using iWareModel.EnumType.XiGangPublicCommon;
using iWareSql.DataAccess;
using iWareSql.DBModel;
+using iWareSql.WmsDBModel;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -20,6 +22,91 @@
/// </summary>
public class MyExtendHelper
{
+
+ /// <summary>
+ /// 澶勭悊 琛� mes_order_gather
+ /// </summary>
+ /// <param name="wmsDB"></param>
+ /// <param name="package"></param>
+ /// <param name="qitaoValue"></param>
+ /// <param name="_UnlinePerson"></param>
+ /// <param name="errMsg"></param>
+ /// <returns></returns>
+ public static bool HandlerOrderGather(WmsDBModel wmsDB, mes_package_gather package, string qitaoValue, string _UnlinePerson, out string errMsg)
+ {
+ errMsg = "";
+ //澶勭悊琛� mes_order_gather
+ if (package == null) {
+ return true;
+ }
+ var isAddOrder = false;
+ var packageList = wmsDB.mes_package_gather.Where(x => x.Info5 == package.Info5).ToList();
+ if (packageList == null || packageList?.Count == 0)
+ {
+ errMsg = $"娌℃湁鎵惧埌鐢熶骇鍗曞彿{package.Info5}鐨勬眹鎬绘暟鎹�";
+ return false;
+ }
+ var order = wmsDB.mes_order_gather.Where(x => x.Info5 == package.Info5).FirstOrDefault();
+ if (order != null)
+ {
+
+ }
+ else
+ {
+ order = new mes_order_gather()
+ {
+ Id = Yitter.IdGenerator.YitIdHelper.NextId(),
+ Info5 = package.Info5,
+ OrderId = package.OrderId,
+ PlanNo = package.PlanNo,
+ };
+ isAddOrder = true;
+ }
+ order.PackageNum = packageList.Count();
+ order.UnLinePackageNum = packageList.Where(x => x.UpiStatus == (int)UpiStatusEnum.宸蹭笅绾�).Count();
+ order.NoUnLinePackageNum = order.PackageNum - order.UnLinePackageNum;
+
+ order.AllPackageArea = packageList.Sum(x => Convert.ToDecimal(x.Info13));
+ order.ScanPackageArea = packageList.Where(x => x.UpiStatus == (int)UpiStatusEnum.宸蹭笅绾�).Sum(x => Convert.ToDecimal(x.Info13));
+ order.NoScanPackageArea = order.AllPackageArea - order.ScanPackageArea;
+ order.IsKitting = qitaoValue == "榻愬" ? true : false;
+
+ var order_unLine = false;
+ //鏌ヨ涓嬩竴涓寘鏄笉鏄睘浜庤璁㈠崟
+ var newLineQueue = wmsDB.mes_package_linequeue.OrderBy(x => x.Id).FirstOrDefault();
+ if (newLineQueue != null && newLineQueue.Info5 != order.Info5)
+ {
+ //琛ㄧず鏄� 鍒囨崲 鏂拌鍗曚簡锛岃璁㈠崟瑕佹洿鏂颁负 宸蹭笅绾裤��
+ order_unLine = true;
+ }
+ else
+ {
+ //鍒ゆ柇璇ヨ鍗曟槸鍚﹀凡涓嬬嚎
+ if (order.PackageNum == order.UnLinePackageNum)
+ {
+ order_unLine = true;
+ }
+ }
+ //鍒ゆ柇璇ヨ鍗曟槸鍚﹀凡涓嬬嚎
+ if (order_unLine)
+ {
+ order.IsUnline = true;
+ order.UnlineTime = DateTime.Now;
+ order.UnlinePerson = _UnlinePerson;
+ }
+ else
+ {
+ order.IsUnline = false;
+ }
+
+ if (isAddOrder)
+ {
+ wmsDB.mes_order_gather.Add(order);
+ }
+
+ return true;
+ }
+
/// <summary>
/// 閰嶇疆缂烘枡鍘熷洜
@@ -135,12 +222,12 @@
var res = clent.WriteScanValidateACK(isReset, (int)EDevice.RGV, stationCode, value, Convert.ToInt32(plcTaskId));
if (res.result)
{
- Log4NetHelper.WriteInfoLog(iWareCommon.Utils.LogType.LineInScanTheadService, "HandlerLineInSacnResult 涓嬪彂鎵弿楠岃瘉涓嬪彂鎴愬姛锛屽啓鍏ュ�紇alue:" + value + "锛宻tationCode锛�" + stationCode + ",PlcTaskId:" + plcTaskId + ",绯荤粺鎵樼洏鍙�:" + sysSalverCode + ",鎵弿鎵樼洏鍙�:" + scanCode + ",澶勭悊绫诲瀷锛�" + handType);
+ Log4NetHelper.WriteInfoLog(iWareCommon.Utils.LogType.DataProcess_RobotBuffer_FinishTaskForOutbound, "HandlerLineInSacnResult 涓嬪彂鎵弿楠岃瘉涓嬪彂鎴愬姛锛屽啓鍏ュ�紇alue:" + value + "锛宻tationCode锛�" + stationCode + ",PlcTaskId:" + plcTaskId + ",绯荤粺鎵樼洏鍙�:" + sysSalverCode + ",鎵弿鎵樼洏鍙�:" + scanCode + ",澶勭悊绫诲瀷锛�" + handType);
return true;
}
else
{
- Log4NetHelper.WriteErrorLog(iWareCommon.Utils.LogType.LineInScanTheadService, "HandlerLineInSacnResult 涓嬪彂鎵弿楠岃瘉涓嬪彂澶辫触锛屽啓鍏ュ�紇alue:" + value + "锛宻tationCode锛�" + stationCode + ",PlcTaskId:" + plcTaskId + ",绯荤粺鎵樼洏鍙�:" + sysSalverCode + ",鎵弿鎵樼洏鍙�:" + scanCode + ",澶勭悊绫诲瀷锛�" + handType);
+ Log4NetHelper.WriteErrorLog(iWareCommon.Utils.LogType.DataProcess_RobotBuffer_FinishTaskForOutbound, "HandlerLineInSacnResult 涓嬪彂鎵弿楠岃瘉涓嬪彂澶辫触锛屽啓鍏ュ�紇alue:" + value + "锛宻tationCode锛�" + stationCode + ",PlcTaskId:" + plcTaskId + ",绯荤粺鎵樼洏鍙�:" + sysSalverCode + ",鎵弿鎵樼洏鍙�:" + scanCode + ",澶勭悊绫诲瀷锛�" + handType);
return false;
}
}
@@ -517,270 +604,6 @@
#endregion
/// <summary>
- /// 鏂板缓杞繍浠诲姟
- /// </summary>
- /// <param name="flag">1:杞Щ鍒�1014浣嶇疆 2:杞Щ鍒扮珛浣撳簱涓� 3:1009鍒�1011 4:绔嬩綋搴撳埌1014浣嶇疆 </param>
- /// <param name="rgvEDevice">RGV璁惧鍙�</param>
- /// <param name="user"></param>
- /// <param name="store"></param>
- /// <returns></returns>
- public static FunRetEntity AddTransferTask(AddTransferTaskEnum flag, EDevice rgvEDevice, SysUser user, V_AllStore store)
- {
- FunRetEntity fr = new FunRetEntity();
- var errMsg = "";
- var remark = "鏂板杞繍浠诲姟";
- try
- {
- #region 浜嬪姟
- #endregion
- using (DbModel edm = new DbModel())
- {
- //澧炲姞楠岃瘉 銆怑ditBy shaocx,2022-04-28銆�
- switch (flag)
- {
- case AddTransferTaskEnum.浣嶇疆1011杞Щ鍒�1014浣嶇疆:
- case AddTransferTaskEnum.浣嶇疆1011杞Щ鍒扮珛浣撳簱涓�:
- //鍘绘帀杩欎釜楠岃瘉锛屽墠闈㈠厑璁稿垱寤轰换鍔″氨鍒涘缓鍚� 銆怑ditBy shaocx,2022-05-15銆�
- /*
- var isAllow = IsAllowCreateTaskForInStore(edm, ref errMsg);
- if (!isAllow)
- {
- return FunRetEntity.Fail(errMsg);
- }
- //*/
- break;
- }
-
- using (var trans = edm.Database.BeginTransaction())
- {
- try
- {
- Task_Main mainTask = new Task_Main();
- mainTask.IsVirtual = false;//闈炶櫄鎷熷叆搴�
- mainTask.TaskNo = TaskNoHelper.GenerateTaskNo("TR");
- mainTask.TaskName = "绌烘墭杞繍";
-
-
-
- #region 鑾峰彇浠诲姟璧风偣
-
- //璧风偣
- var realSourcePlace = "";
- Base_Station sourcePlace = null;
- if (flag == AddTransferTaskEnum.绔嬩綋搴撳埌1014浣嶇疆)
- {//4:绔嬩綋搴撳埌1014浣嶇疆
- var srmStore = MyExtendHelper.FindStoreForEmptySalverTo1014(edm, ref errMsg);
- if (srmStore == null)
- {
- return FunRetEntity.Fail(errMsg);
- }
- store = ClassHelper.RotationMapping<V_AllStore, V_Store>(srmStore);
- sourcePlace = StationHandler.GetPlaceByPlaceId(store.StationId, edm);
- realSourcePlace = sourcePlace.SrmStationCode;
-
- //璁板綍鍖哄煙 [EditBy shaocx,2022-05-02]
- var device = BusinessHelper.GetSrmDeviceByPlaceNo(sourcePlace.SrmStationCode);
- mainTask.Area = ((int)device).ToString();
- }
- else if (flag == AddTransferTaskEnum.浣嶇疆1014鍒�1020)
- {//5:浣嶇疆1014鍒�1020
- sourcePlace = StationHandler.GetPlaceByPlaceId(store.StationId, edm);
- realSourcePlace = sourcePlace.RgvStationCode;
- }
- else
- {
- var getSourcePlaceResult = StationHandler.GetTargtStationForAddTransferTask(edm, rgvEDevice, ref errMsg, ref sourcePlace);
- if (getSourcePlaceResult.result == false) return getSourcePlaceResult;
- realSourcePlace = sourcePlace.RgvStationCode;
- }
- mainTask.SourcePlace = sourcePlace.Id;
- mainTask.RealSourcePlace = realSourcePlace;
-
- #endregion
-
- #region 鑾峰彇涓棿鐐瑰拰鐩爣鐐�
-
- Base_Station toPlace = null;
- Base_Station midPlace = null;
- var getMidToPlaceResult = MainTaskHandler.GetMidToPlaceForAddTransferTask(sourcePlace, flag, edm, ref errMsg, ref toPlace, ref midPlace, ref mainTask);
- if (getMidToPlaceResult.result == false) return getMidToPlaceResult;
-
- #endregion
-
- SetTaskTypeStateAndInOutFlagForMainTask(flag, ref mainTask);
-
- Base_Salver salver = null;
- Base_Material newMaterial = null;
- if (store == null)
- {//鏂板缓鐗╂枡锛屾柊寤烘墭鐩橈紝鏂板缓缁戝畾鍏崇郴
- //缁戝畾鎵樼洏鍜岀珯鐐圭殑鍏崇郴
- //鏂板缓鐗╂枡
- var salverStackCount = GetSalverStackCountForBackToStore();
- if (salverStackCount == 0)
- {
- //鎶ラ敊
- return FunRetEntity.Fail("鏍规嵁1009绔欑偣鐨勫厜鐢佃幏鍙栬繑鍥炵珛浣撳簱鐨勬墭鐩樻暟涓�0");
- }
-
- newMaterial = MaterialHandler.CreateEmptySlaverMaterial(edm, "绌烘墭鐩樿浆杩愭椂鍒涘缓", salverStackCount);
- //鍒ゆ柇鎵樼洏鏄惁瀛樺湪锛屽鏋滃瓨鍦紝灏变笉闇�瑕侀噸寤猴紝濡傛灉涓嶅瓨鍦紝灏辨柊寤烘墭鐩�
- salver = SalverHandler.CreateVirtualSalver(edm, "绌烘墭鐩樿浆杩�");
- if (!string.IsNullOrEmpty(errMsg))
- {
- return FunRetEntity.Fail(errMsg);
- }
- //缁戝畾鎵樼洏鍜岀墿鏂欑殑鍏崇郴
- Salver_Material_Handler.CreateCvIRelation(edm, user.Name, salver, newMaterial, remark);
- //缁戝畾鎵樼洏鍜岀珯鐐圭殑鍏崇郴
- Salver_Station_Handler.CreateCvPRelation(edm, user.Name, salver, sourcePlace, Salver_V_Station_StateEnum.鍏ュ簱缁戝畾, remark);
- }
- else
- {
- salver = SalverHandler.GetSalveById(edm, store.SalverId);
- newMaterial = MaterialHandler.GetMaterialById(edm, store.MaterialId);
- }
-
- mainTask.SalverId = salver.Id;
- mainTask.SalverCode = salver.SalverCode;
- mainTask.MaterialId = newMaterial.Id;
- //鐗╂枡淇℃伅
- MainTaskHandler.SetMaterialForMainTask(ref mainTask, newMaterial);
-
- //搴忓垪鍙峰拰璁㈣揣鍙疯祴鍊� [Editby shaocx,2022-04-05]
- mainTask.SerialNumber = "";
- mainTask.OrderNo = "";
-
- mainTask.CreateTime = mainTask.ModifyTime = mainTask.StartTime = DateTime.Now;
- mainTask.CreateBy = mainTask.ModifyBy = user.Name;
- mainTask.CreateId = mainTask.ModifyId = user.ID;
- mainTask.OperationRemark = "娣诲姞";
-
- string taskSequenceGuid = "";
- mainTask.TaskSequence = MainTaskHandler.GenerateTaskSequence(edm, ref taskSequenceGuid);//鐢熸垚浠诲姟搴忓垪鍙�
- mainTask.TaskSequenceGuid = taskSequenceGuid;
-
- edm.Task_Main.Add(mainTask);
- edm.SaveChanges();//淇濆瓨涓�娆★紝姝ゆ椂mainTask鐨勮嚜澧濱D灏辨湁鍊间簡
-
- var plcTaskNo = BusinessHelper.CreatePlcTaskIdForSrmTask();
- var createTime = DateTime.Now;
-
- if (flag == AddTransferTaskEnum.浣嶇疆1011杞Щ鍒�1014浣嶇疆)
- {//杞Щ鍒�1014浣嶇疆
- //鍒涘缓RGV浠诲姟
- FunRetEntity fre = PartTaskHandler.CreatePartTask(createTime, plcTaskNo, edm, EDeviceType.RGV, user.Name, 1, DeviceTaskTypeEnum.绌烘墭杞繍鍒版媶鐩樻満鍏ュ彛, mainTask, salver, sourcePlace, toPlace, remark);
- if (fre.result == false)
- {
- throw new Exception(fr.resMsg);
- }
- }
- else if (flag == AddTransferTaskEnum.浣嶇疆1011杞Щ鍒扮珛浣撳簱涓�)
- {//杞Щ鍒扮珛浣撳簱涓�
- //鍒涘缓RGV浠诲姟
- FunRetEntity fre = PartTaskHandler.CreatePartTask(createTime, plcTaskNo, edm, EDeviceType.RGV, user.Name, 1, DeviceTaskTypeEnum.绌烘墭杞繍鍒扮珛浣撳簱, mainTask, salver, sourcePlace, midPlace, remark);
- if (fre.result == false)
- {
- throw new Exception(fr.resMsg);
- }
- //鍒涘缓鍫嗗灈鏈轰换鍔�
- fre = PartTaskHandler.CreatePartTask(createTime, plcTaskNo, edm, EDeviceType.鍫嗗灈鏈�, user.Name, 2, DeviceTaskTypeEnum.绌烘墭杞繍鍒扮珛浣撳簱, mainTask, salver, midPlace, toPlace, remark);
- if (fre.result == false)
- {
- throw new Exception(fr.resMsg);
- }
- }
- else if (flag == AddTransferTaskEnum.浣嶇疆1009鍒颁綅缃�1011)
- {// 3:1009鍒�1011
- //鍒涘缓RGV浠诲姟
- FunRetEntity fre = PartTaskHandler.CreatePartTask(createTime, plcTaskNo, edm, EDeviceType.RGV, user.Name, 1, DeviceTaskTypeEnum.绌烘墭缂撳瓨浣嶈浆杩�, mainTask, salver, sourcePlace, toPlace, remark);
- if (fre.result == false)
- {
- throw new Exception(fr.resMsg);
- }
- }
- else if (flag == AddTransferTaskEnum.绔嬩綋搴撳埌1014浣嶇疆)
- {//4:绔嬩綋搴撳埌1014浣嶇疆
-
- //鍒涘缓鍫嗗灈鏈轰换鍔�
- FunRetEntity fre = PartTaskHandler.CreatePartTask(createTime, plcTaskNo, edm, EDeviceType.鍫嗗灈鏈�, user.Name, 1, DeviceTaskTypeEnum.绔嬪簱绌烘墭鍒版媶鐩樻満鍏ュ彛, mainTask, salver, sourcePlace, midPlace, remark);
- if (fre.result == false)
- {
- throw new Exception(fr.resMsg);
- }
- //鍒涘缓RGV浠诲姟
- fre = PartTaskHandler.CreatePartTask(createTime, plcTaskNo, edm, EDeviceType.RGV, user.Name, 2, DeviceTaskTypeEnum.绔嬪簱绌烘墭鍒版媶鐩樻満鍏ュ彛, mainTask, salver, midPlace, toPlace, remark);
- if (fre.result == false)
- {
- throw new Exception(fr.resMsg);
- }
- }
- else if (flag == AddTransferTaskEnum.浣嶇疆1014鍒�1020)
- {//5:1014鍒�1020浣嶇疆
- //鍒涘缓RGV浠诲姟
- FunRetEntity fre = PartTaskHandler.CreatePartTask(createTime, plcTaskNo, edm, EDeviceType.RGV, user.Name, 1, DeviceTaskTypeEnum.鎷嗙洏鏈哄叆鍙e埌鎷嗙洏鏈�, mainTask, salver, sourcePlace, toPlace, remark);
- if (fre.result == false)
- {
- throw new Exception(fr.resMsg);
- }
- }
-
- edm.SaveChanges();//绗簩娆′繚瀛�
-
- trans.Commit();//浜嬪姟鎻愪氦
- }
- catch (Exception ex)
- {
- trans.Rollback();
- throw ex;
- }
- }
- return FunRetEntity.Success("鎴愬姛");
- }
- }
- catch (System.Exception ex)
- {
- throw ex;
- }
- }
-
- private static void SetTaskTypeStateAndInOutFlagForMainTask(AddTransferTaskEnum flag, ref Task_Main mainTask)
- {
- var _InOutFlag = default(MainInOutFlagEnum);
- var _taskType = default(MainTaskTypeEnum);
- var _taskState = default(MainTaskStatusEnum);
- switch (flag)
- {
- case AddTransferTaskEnum.绔嬩綋搴撳埌1014浣嶇疆:
- _taskType = MainTaskTypeEnum.鑷姩鍑哄簱;
- _taskState = MainTaskStatusEnum.鍑哄簱涓�;
- _InOutFlag = MainInOutFlagEnum.鍑哄簱;
- break;
- case AddTransferTaskEnum.浣嶇疆1009鍒颁綅缃�1011:
- case AddTransferTaskEnum.浣嶇疆1011杞Щ鍒�1014浣嶇疆:
- case AddTransferTaskEnum.浣嶇疆1014鍒�1020:
- _taskType = MainTaskTypeEnum.绌烘墭杞繍;
- _taskState = MainTaskStatusEnum.寰呰浆杩�;
- _InOutFlag = MainInOutFlagEnum.杞繍;
- break;
- case AddTransferTaskEnum.浣嶇疆1011杞Щ鍒扮珛浣撳簱涓�:
- _taskType = MainTaskTypeEnum.鑷姩鍏ュ簱;
- _taskState = MainTaskStatusEnum.鍏ュ簱涓�;
- _InOutFlag = MainInOutFlagEnum.鍏ュ簱;
- break;
- default:
- throw new Exception("涓嶆敮鎸佺殑绫诲瀷");
- }
- mainTask.TaskType = Convert.ToInt32(_taskType);
- mainTask.TaskTypeName = _taskType.ToString();
- mainTask.TaskState = Convert.ToInt32(_taskState);
- mainTask.TaskStateName = _taskState.ToString();
-
- mainTask.InOutFlag = (int)_InOutFlag;
- mainTask.InOutFlagName = _InOutFlag.ToString();
- }
-
-
- /// <summary>
/// 鏄惁鍏佽缁�1014鍙戦�佺洰鏍囩偣鏄�1014鐨勪换鍔�
/// </summary>
/// <param name="context"></param>
@@ -889,58 +712,7 @@
public static FunRetEntity DoHandler(DbModel context, V_AllStore store, EDevice rgvStationCode)
{
- try
- {
- SysUser user = new SysUser()
- {
- ID = 0,
- Name = SysGloble.WCSSystem
- };
- if (rgvStationCode == EDevice.绌烘墭缂撳瓨1011)
- {
- //鍒ゆ柇1014鏄惁鏈夌┖浣�
- var queryRgvStationCode = ((int)EDevice.鎷嗙洏鏈哄叆鍙�1014).ToString();
- V_AllStore my1014Store = null;
- var isAllow = MyExtendHelper.IsAllowSendTaskToPlace1014(context, queryRgvStationCode, ref my1014Store);
- if (isAllow)
- {
- return AddTransferTask(AddTransferTaskEnum.浣嶇疆1011杞Щ鍒�1014浣嶇疆, rgvStationCode, user, store);
- }
- else
- {
- //瀵绘壘绔嬩綋搴撴槸鍚︽湁搴撳瓨
- return AddTransferTask(AddTransferTaskEnum.浣嶇疆1011杞Щ鍒扮珛浣撳簱涓�, rgvStationCode, user, store);
- }
- //*/
- //var isGD_HasCatogryForRgvStattion = IsGD_HasCatogryForRgvStattion(queryRgvStationCode);
- //var store_1014_count = context.V_AllStore.Where(x => x.RgvStationCode == queryRgvStationCode).Count();
- //if (store_1014_count > 0 || isGD_HasCatogryForRgvStattion)
- //{
-
- //}
- //else
- //{//1014鏃犺揣锛屽垱寤轰换鍔�
- // return MainTaskHandler.AddTransferTask(AddTransferTaskEnum.杞Щ鍒�1014浣嶇疆, rgvStationCode, user, store);
- //}
- }
- else if (rgvStationCode == EDevice.绌烘墭缂撳瓨1009)
- {
- return AddTransferTask(AddTransferTaskEnum.浣嶇疆1009鍒颁綅缃�1011, rgvStationCode, user, store);
- }
- else if (rgvStationCode == EDevice.鎷嗙洏鏈哄叆鍙�1014)
- {//鎷嗙洏鏈哄叆鍙�1014澶勬柊寤轰粠绔嬩綋搴撳彨鎵樼洏浠诲姟
- return AddTransferTask(AddTransferTaskEnum.绔嬩綋搴撳埌1014浣嶇疆, rgvStationCode, user, store);
- }
- else if (rgvStationCode == EDevice.鎷嗙洏鏈�1020)
- {// 浠�1014鍒�1020
- return AddTransferTask(AddTransferTaskEnum.浣嶇疆1014鍒�1020, rgvStationCode, user, store);
- }
- return null;
- }
- catch (Exception ex)
- {
- return FunRetEntity.Fail("鏂板绌烘墭鐩樿浆杩愪换鍔″紓甯�:" + ex.Message);
- }
+ return null;
}
/// <summary>
--
Gitblit v1.9.3