| | |
| | | return (true, $"生成任务'{obj.TaskToInsert.S_TYPE}'成功!!任务号='{obj.TaskToInsert.S_CODE}',容器号='{obj.TaskToInsert.S_CNTR_CODE}',起点='{obj.TaskToInsert.S_START_LOC}',终点='{obj.TaskToInsert.S_END_LOC}'"); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 数据库事务 : 涉及单据明细更新的任务创建 |
| | | /// </summary> |
| | | /// <param name="obj"></param> |
| | | /// <remarks><b>[ 要求 ]</b> obj ≠ null ; obj.TaskToInsert ≠ null</remarks> |
| | | /// <returns></returns> |
| | | /// <exception cref="ArgumentException"></exception> |
| | | public static (bool, string) CreateTaskOrderObj(CreateTaskOrderObj obj) { |
| | | var db = new SqlHelper<object>().GetInstance(); |
| | | |
| | | using (var tran = db.Ado.UseTran()) { |
| | | |
| | | if (obj.OutboundDetailToUpdate != null && db.Updateable(obj.OutboundDetailToUpdate).UpdateColumns(it => new { it.N_B_STATE, it.T_MODIFY }).ExecuteCommand() <= 0) { |
| | | tran.RollbackTran(); |
| | | return (false, $"更新[明细表][状态]为[完成]失败!!数据:\n\n{JsonConvert.SerializeObject(obj.OutboundDetailToUpdate)}\n"); |
| | | } |
| | | |
| | | if (obj.SpotCheckDetailToUpdate != null && db.Updateable(obj.SpotCheckDetailToUpdate).UpdateColumns(it => new { it.N_B_STATE, it.T_MODIFY }).ExecuteCommand() <= 0) { |
| | | tran.RollbackTran(); |
| | | return (false, $"更新[明细表][状态]为[完成]失败!!数据:\n\n{JsonConvert.SerializeObject(obj.SpotCheckDetailToUpdate)}\n"); |
| | | } |
| | | |
| | | if (obj.RelocationDetailToUpdate != null && db.Updateable(obj.RelocationDetailToUpdate).UpdateColumns(it => new { it.N_B_STATE, it.T_MODIFY }).ExecuteCommand() <= 0) { |
| | | tran.RollbackTran(); |
| | | return (false, $"更新[明细表][状态]为[完成]失败!!数据:\n\n{JsonConvert.SerializeObject(obj.RelocationDetailToUpdate)}\n"); |
| | | } |
| | | |
| | | #region 创建任务 + 货位锁 |
| | | if (obj.StartLocToUpdate != null && db.Updateable(obj.StartLocToUpdate).UpdateColumns(it => new { it.N_LOCK_STATE, it.S_LOCK_STATE, it.S_LOCK_OP, it.T_MODIFY, it.N_CURRENT_NUM, }).ExecuteCommand() <= 0) { |
| | | tran.RollbackTran(); |
| | | return (false, $"更新[起点货位][锁状态]失败!!起点='{obj.StartLocToUpdate.S_CODE}',锁状态=>'{obj.StartLocToUpdate.S_LOCK_STATE}'"); |
| | | } |
| | | if (obj.EndLocToUpdate != null && db.Updateable(obj.EndLocToUpdate).UpdateColumns(it => new { it.N_LOCK_STATE, it.S_LOCK_STATE, it.S_LOCK_OP, it.T_MODIFY, }).ExecuteCommand() <= 0) { |
| | | tran.RollbackTran(); |
| | | return (false, $"更新[终点货位][锁状态]失败!!终点='{obj.EndLocToUpdate.S_CODE}',锁状态=>'{obj.EndLocToUpdate.S_LOCK_STATE}'"); |
| | | } |
| | | if (obj.TaskToInsert == null) { |
| | | tran.RollbackTran(); |
| | | throw new ArgumentException("数据库事务处理:待插入的[任务]为空!!"); // 待插入的任务不存在,直接抛出异常 |
| | | } |
| | | if (db.Insertable(obj.TaskToInsert).ExecuteCommand() <= 0) { |
| | | tran.RollbackTran(); |
| | | return (false, $"生成任务'{obj.TaskToInsert.S_TYPE}'失败!!任务号='{obj.TaskToInsert.S_CODE}',容器号='{obj.TaskToInsert.S_CNTR_CODE}',起点='{obj.TaskToInsert.S_START_LOC}',终点='{obj.TaskToInsert.S_END_LOC}'"); |
| | | } |
| | | #endregion |
| | | |
| | | // 提交数据库更改 |
| | | tran.CommitTran(); |
| | | return (true, $"生成任务'{obj.TaskToInsert.S_TYPE}'成功!!任务号='{obj.TaskToInsert.S_CODE}',容器号='{obj.TaskToInsert.S_CNTR_CODE}',起点='{obj.TaskToInsert.S_START_LOC}',终点='{obj.TaskToInsert.S_END_LOC}'"); |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | public class CreateTaskObj { |
| | |
| | | public TN_CG_Detail CgDetailToUpdate { get; set; } = null; |
| | | } |
| | | |
| | | public class DbTranObj { |
| | | public List<TN_Location> LocListToUpdate { get; set; } |
| | | public class CreateTaskOrderObj { |
| | | |
| | | #region 起点货位 / 终点货位 / 任务 |
| | | public TN_Location StartLocToUpdate { get; set; } = null; |
| | | public TN_Location EndLocToUpdate { get; set; } = null; |
| | | public TN_Task TaskToInsert { get; set; } = null; |
| | | #endregion |
| | | |
| | | public TN_Outbound_Detail OutboundDetailToUpdate { get; set; } = null; |
| | | public TN_SpotCheck_Detail SpotCheckDetailToUpdate { get; set; } = null; |
| | | public TN_RelocationList_Detail RelocationDetailToUpdate { get; set; } = null; |
| | | } |
| | | |
| | | } |