kazelee
2025-05-19 b079910e5de15863c26e479ffab15cc45d706f1a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
using HH.WCS.Mobox3.DSZSH.AppStart;
using HH.WCS.Mobox3.DSZSH.Helpers;
using HH.WCS.Mobox3.DSZSH.Models;
 
using Newtonsoft.Json;
 
using static HH.WCS.Mobox3.DSZSH.Dtos.Request.WmsRequest;
using static HH.WCS.Mobox3.DSZSH.Dtos.Response.WmsResponse;
 
namespace HH.WCS.Mobox3.DSZSH.Services {
    public class WmsService {
        /// <summary>
        /// 博实物料信息下发同步
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public static WmsResult CgInfoSync(CgInfoSyncInfo model) {
            var db = DbHelper.GetDbClient();
            var random = new Random();
 
            try {
                var detail = new TN_CG_Detail {
                    S_ITEM_CODE = model.ItemCode,
                    S_ITEM_NAME = model.ItemName,
                    S_CNTR_CODE = Guid.NewGuid().ToString("D"), // NOTE 容器号:目前随机(后期可能会指定,或者PDA绑定时再填入)
                    S_BATCH_NO = model.BatchNo,
                    S_STANDARD = model.Standard,
                    S_NET_WEIGHT = model.NetWeight,
                    S_QUALITY_GRADE = model.QualityGrade,
                    //N_PRODUCT_LINE = random.Next(0, 3), // NOTE 产线号:目前随机(后期可能会指定,或者PDA绑定时再填入)
                };
 
                // 货位容器绑定的逻辑,在好运箱下线PDA的流程中操作
 
                //var locCntrRel = new TN_Loc_Container {
                //    //S_LOC_CODE = Settings.Config.ProductionLines[detail.N_PRODUCT_LINE].OffLoc[0], // 好运箱的位置是操作区,不是产线
                //    S_CNTR_CODE = detail.S_CNTR_CODE,
                //    S_CNTR_TYPE = "好运箱", // 贴标机只针对好运箱
                //};
 
                //using (var tran = db.Ado.UseTran()) {
                //    if (db.Insertable<TN_CG_Detail>(detail).ExecuteCommand() <= 0
                //        && db.Insertable<TN_Loc_Container>(detail).ExecuteCommand() <= 0) {
                //        tran.RollbackTran();
                //        return MesResultBuilder(2, "插入物料信息失败:" + JsonConvert.SerializeObject(detail));
                //    }
                //    tran.CommitTran();
                //}
 
                if (db.Insertable<TN_CG_Detail>(detail).ExecuteCommand() <= 0) {
                    return MesResultBuilder(2, "插入物料信息失败:" + JsonConvert.SerializeObject(detail));
                }
 
                return MesResultBuilder(0, "插入物料信息成功");
            }
            catch (Exception ex) {
                return MesResultBuilder(1, ex.Message);
            }
        }
    }
}