From 527f2222ec9b268e5429326417a37a81bdaf5037 Mon Sep 17 00:00:00 2001
From: Administrator <Administrator@DESKTOP-5BIMHQ3>
Date: 星期四, 04 七月 2024 10:17:53 +0800
Subject: [PATCH] 修改问题
---
Wms/WMS.BLL/BllTransServer/RcsServer.cs | 227 +++++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 156 insertions(+), 71 deletions(-)
diff --git a/Wms/WMS.BLL/BllTransServer/RcsServer.cs b/Wms/WMS.BLL/BllTransServer/RcsServer.cs
index 672a451..eff7a95 100644
--- a/Wms/WMS.BLL/BllTransServer/RcsServer.cs
+++ b/Wms/WMS.BLL/BllTransServer/RcsServer.cs
@@ -1,5 +1,4 @@
-锘縰sing Microsoft.IdentityModel.Protocols;
-using Newtonsoft.Json;
+锘縰sing Newtonsoft.Json;
using SqlSugar;
using System;
using System.Collections.Generic;
@@ -30,7 +29,6 @@
public void GetPalletNo(Pallnetmsg pallnetmsg)
{
DataStockDetail pallet = new DataStockDetail();
- SysStorageLocat locat = new SysStorageLocat();
try
{
var house = "W01";//鍙《浣嶇疆锛屽悗缁牴鎹綅缃叧鑱旀垨瀹氫箟锛屾潵鍒ゆ柇鍙《浣嶇疆鎵�灞炶溅闂�
@@ -40,66 +38,13 @@
switch (pallnetmsg.Type)
{
case "0"://鍙噣妗�
- List<DataStockDetail> jtpallet = new List<DataStockDetail>();
- sql += $"and WareHouseNo = '{house}' and AreaNo like '%01' order by CreateTime desc";
- jtpallet = Db.Ado.SqlQuery<DataStockDetail>(sql).ToList();
- if (jtpallet.Count == 0)
+ sql += $"and WareHouseNo = '{house}' and AreaNo like '%01' and PalletStatus = '0' order by CreateTime desc";
+ pallet = Db.Ado.SqlQuery<DataStockDetail>(sql).FirstOrDefault();
+ if (pallet == null)
{
throw new Exception("鏆傛棤鍑�妗跺彲鍒嗛厤");
}
- //閬嶅巻搴撳瓨鍑�妗讹紝杩斿洖MES楠岃瘉
- foreach (var item in jtpallet)
- {
- string jsonReq = JsonConvert.SerializeObject(item.PalletNo);
- var response = HttpHelper.DoPost(url, jsonReq, "鍥炰紶MES鍑�妗剁紪鍙�", "RCS").ToString();
- var obj = JsonConvert.DeserializeObject<ReMes>(response);//瑙f瀽杩斿洖鏁版嵁
- if (obj.Success == "0")
- {
- if (obj.Result != "0")//鍙敤锛岀敓鎴愬皬杞︽媺鍑�妗朵换鍔�
- {
- //鏌ユ壘鏄惁鏈夌┖浣欒剰妗朵綅
- sql = $"select LocatNo from SysStorageLocat where AreaNo like '%04' and WareHouseNo = '{house}' and Status = 0";
- locat = Db.Ado.SqlQuery<SysStorageLocat>(sql).FirstOrDefault();
- if (locat == null)
- {
- Db.Ado.BeginTran();
- //鑴忔《鍖烘棤绌轰綑搴撲綅锛屽垯閿佸畾姝ゅ噣妗跺簱瀛�,骞堕噸鏂伴亶鍘�
- sql = $"UPDATE DataStockDetail Set Status = '5' Where locat ='{locat.LocatNo}'";
- Db.Ado.ExecuteCommand(sql);
- Db.Ado.CommitTran();
- break;
- }
- //鐢熸垚璋冨害灏忚溅鍑�妗跺幓鑴忔《鍖轰换鍔�
- var ztask = new TaskDetial
- {
- Startport = item.LocatNo,
- Endport = locat.LocatNo,
- Pallno = item.PalletNo,
- Type = "3",
- Crtype = "0",
- Noticedetailno = int.Parse(noticeno),
- };
- CreateLotTask(ztask);
- continue;
- }
- //涓嬪彂灏忚溅浠诲姟
- var task2 = new TaskDetial
- {
- Startport = item.LocatNo,
- Endport = pallnetmsg.Location,
- Pallno = item.PalletNo,
- Type = pallnetmsg.Type,
- Crtype = "1",
- Noticedetailno = int.Parse(noticeno),
- };
- CreateLotTask(task2);
- return;
- }
- else
- {
- throw new Exception("鍥炰紶MES鍑�妗剁紪鍙峰け璐ワ紒");
- }
- }
+
break;
case "1"://鍙枡妗讹紙娣锋枡锛�
//鍒ゆ柇鏄惁鏈夋壒娆″彿
@@ -117,8 +62,8 @@
}
noticeno = ArriveMes.Id.ToString();*/
//鏌ユ壘搴撳瓨涓槸鍚︽湁鍙敤鐨勬鎵规鐨勬贩鏂欐《
- sql= $"select PalletNo,LocatNo from DataStockDetail where LotNo = '{pallnetmsg.LotNo}'and AreaNo like '%02' " +
- $"and WareHouseNo = '{house}' and status = '0' order by CompleteTime desc";
+ sql= $@"select PalletNo,LocatNo from DataStockDetail where LotNo = '{pallnetmsg.LotNo}'and AreaNo like '%02'
+ and WareHouseNo = '{house}' and status = '0' and PalletStatus = '1' order by CompleteTime desc";
pallet = Db.Ado.SqlQuery<DataStockDetail>(sql).FirstOrDefault();
if (pallet == null)
{
@@ -142,8 +87,8 @@
}
noticeno = bllSo.Id.ToString();
//鏌ユ壘搴撳瓨涓槸鍚︽湁姝ゆ壒娆$殑涓嬫枡妗�
- sql = $"select PalletNo,LocatNo from DataStockDetail where LotNo = '{pallnetmsg.LotNo}'and AreaNo like '%03' " +
- $"and WareHouseNo = '{house}' and status = '0' order by CompleteTime desc";
+ sql = $@"select PalletNo,LocatNo from DataStockDetail where LotNo = '{pallnetmsg.LotNo}'and AreaNo like '%03'
+ and WareHouseNo = '{house}' and status = '0' and PalletStatus = '2' order by CompleteTime desc";
pallet = Db.Ado.SqlQuery<DataStockDetail>(sql).FirstOrDefault();
if (pallet == null)
{
@@ -152,13 +97,46 @@
break;
case "3"://鍙剰妗�
- sql += $"and WareHouseNo = '{house}' and AreaNo like '%04' order by CreateTime desc";
- pallet = Db.Ado.SqlQuery<DataStockDetail>(sql).FirstOrDefault();
- if (pallet == null)
+ sql += $"and WareHouseNo = '{house}' and AreaNo like '%04' and PalletStatus='3' order by CreateTime desc";
+ List<DataStockDetail> palletList = Db.Ado.SqlQuery<DataStockDetail>(sql).ToList();
+ if (palletList.Count <= 0)
{
throw new Exception("鏆傛棤鑴忔《鍙垎閰�");
}
+ //閬嶅巻搴撳瓨鑴忔《锛岃繑鍥濵ES楠岃瘉
+ foreach (var item in palletList)
+ {
+ string jsonReq = JsonConvert.SerializeObject(item.PalletNo);
+ var response = HttpHelper.DoPost(url, jsonReq, "鍥炰紶MES鑴忔《缂栧彿", "RCS").ToString();
+ var obj = JsonConvert.DeserializeObject<ReMes>(response);//瑙f瀽杩斿洖鏁版嵁
+ if (obj.Success == "0")
+ {
+ if (obj.Result != "1")//涓嶅彲娓呮礂锛屽皢鑴忔《鍐荤粨
+ {
+ item.Status = "5";//寮傚父鍐荤粨
+ //淇敼璇ユ《搴撳瓨鐘舵��
+ Db.Updateable(item).ExecuteCommand();
+ continue;
+ }
+ //涓嬪彂灏忚溅浠诲姟
+ var task2 = new TaskDetial
+ {
+ Startport = item.LocatNo,
+ Endport = pallnetmsg.Location,
+ Pallno = item.PalletNo,
+ Type = pallnetmsg.Type,
+ Crtype = "1",
+ Noticedetailno = int.Parse(noticeno),
+ };
+ CreateLotTask(task2);
+ return;
+ }
+ else
+ {
+ throw new Exception("鍥炰紶MES鍑�妗剁紪鍙峰け璐ワ紒");
+ }
+ }
break;
}
//涓嬪彂灏忚溅浠诲姟
@@ -178,6 +156,102 @@
catch (Exception ex)
{
Db.Ado.RollbackTran();
+ throw ex;
+ }
+ }
+
+ /// <summary>
+ /// MES涓嬪彂灏嗗噣妗舵敼涓鸿剰妗跺苟鎷夊埌鑴忔《鍖�
+ /// </summary>
+ /// <param name="PalletNo"></param>
+ /// <returns></returns>
+ public void ChangePalletStatus(string PalletNo)
+ {
+ try
+ {
+ var detail = Db.Queryable<DataStockDetail>().First(w => w.PalletNo == PalletNo && w.PalletStatus == "0");
+ if (detail == null)
+ {
+ throw new Exception($"搴撳瓨涓笉瀛樺湪妗跺彿涓猴細{PalletNo}鐨勫簱瀛�!");
+ }
+ //璧峰鐩爣鍌ㄤ綅淇℃伅
+ var statrtLocat = Db.Queryable<SysStorageLocat>().First(w => w.WareHouseNo == detail.WareHouseNo && w.AreaNo == detail.AreaNo && w.LocatNo == detail.LocatNo);
+ if (statrtLocat == null)
+ {
+ throw new Exception($"璇ユ《鎵�鍦ㄧ殑鍌ㄤ綅淇℃伅涓嶅瓨鍦�!");
+ }
+ //寮�鍚簨鍔�
+ Db.BeginTran();
+
+ //鏌ユ壘鏄惁鏈夌┖浣欒剰妗朵綅
+ var endLocat = Db.Queryable<SysStorageLocat>().First(w => w.WareHouseNo == detail.WareHouseNo && w.AreaNo.Contains("04") && w.Status == "0" && w.Flag=="0");
+ if (endLocat == null)
+ {
+ detail.Status = "5";//寮傚父閿佸畾
+ detail.PalletStatus = "3";//鑴忔《
+ //淇敼搴撳瓨鐘舵��
+ Db.Updateable(detail).ExecuteCommand();
+ }
+ else
+ {
+ //鐢熸垚璋冨害灏忚溅鍑�妗跺幓鑴忔《鍖轰换鍔�
+ var ztask = new TaskDetial
+ {
+ Startport = detail.LocatNo,
+ Endport = endLocat.LocatNo,
+ Pallno = PalletNo,
+ Type = "3",
+ Crtype = "2",
+ Noticedetailno = 0,
+ };
+ CreateLotTask(ztask);
+
+ statrtLocat.Status = "3";//鍑哄簱涓�
+ //淇敼璧峰鍌ㄤ綅鐘舵��
+ Db.Updateable(statrtLocat).ExecuteCommand();
+
+ detail.Status = "5";//寮傚父閿佸畾
+ detail.PalletStatus = "3";//鑴忔《
+ //淇敼搴撳瓨鐘舵��
+ Db.Updateable(detail).ExecuteCommand();
+ }
+ Db.CommitTran();
+ }
+ catch (Exception ex)
+ {
+ Db.RollbackTran();
+ throw ex;
+ }
+ }
+
+ /// <summary>
+ /// MES涓嬪彂娓呮礂閿佸畾鑴忔《
+ /// </summary>
+ /// <param name="pallnetmsg"></param>
+ public void CleanPallet(Pallnetmsg pallnetmsg)
+ {
+ try
+ {
+ var detail = Db.Queryable<DataStockDetail>().First(w => w.PalletNo == pallnetmsg.PalletNo && w.PalletStatus == "3");
+ if (detail == null)
+ {
+ throw new Exception($"搴撳瓨涓笉瀛樺湪妗跺彿涓猴細{pallnetmsg.PalletNo}鐨勫簱瀛�!");
+ }
+ //涓嬪彂灏忚溅浠诲姟
+ var task = new TaskDetial
+ {
+ Startport = detail.LocatNo,
+ Endport = pallnetmsg.Location,
+ Pallno = detail.PalletNo,
+ Type = "3",
+ Crtype = "1",
+ Noticedetailno = 0,
+ LotNo = "",
+ };
+ CreateLotTask(task);
+ }
+ catch (Exception ex)
+ {
throw ex;
}
}
@@ -262,7 +336,7 @@
{
Startport = pallnetmsg.Location,
Endport = loction.LocatNo,
- Pallno = pallnetmsg.Palletno,
+ Pallno = pallnetmsg.PalletNo,
Type = pallnetmsg.Type,
Crtype = "0",
Noticedetailno = int.Parse(noticeno),
@@ -371,7 +445,19 @@
{
//寮�鍚簨鍔�
Db.BeginTran();
- var na = taskDetial.Crtype == "0"?"鍏ュ簱":"鍑哄簱";
+ var na = "";
+ switch (taskDetial.Crtype)
+ {
+ case "0":
+ na = "鍏ュ簱";
+ break;
+ case "1":
+ na = "鍑哄簱";
+ break;
+ case "2":
+ na = "绉诲簱";
+ break;
+ }
var bz = "";
switch (taskDetial.Type)
{
@@ -459,7 +545,7 @@
logTaskEntry.IsSuccess = 1;
logTaskEntry.BackDate = DateTime.Now;
logTaskEntry.Status = "1";
- if (taskDetial.Crtype == "0")
+ if (taskDetial.Crtype == "0" || taskDetial.Crtype == "2")
{
sql = $"UPDATE SysStorageLocat SET Status = '2' where LocatNo = '{taskDetial.Endport}'";
if (taskDetial.Type == "2")
@@ -483,7 +569,6 @@
Db.RollbackTran();
throw ex;
}
-
}
}
}
--
Gitblit v1.8.0