schangxiang@126.com
2025-09-17 60dd1afc3e8f94aa1b23211b6738d35b47294382
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
using iWareCommon.Common.Service;
using iWareCommon.Utils;
using iWareDataCore.BASE.Dao;
using iWareDataCore.BASE.Entity;
using iWareDataCore.ORM;
using iWareDataCore.Properties;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace iWareDataCore.BASE.Service
{
    public class PlaceMaterialService : CommonService<PlaceMaterialEntity, BASEPlaceMaterial, DbModelCore>
    {
 
        private static object Lock = new object();
 
        private PlaceMaterialService() : base(PlaceMaterialDao.GetInstance()) { }
 
        private static PlaceMaterialService Instance = null;
 
        /// <summary>
        /// 获取单例的方法
        /// </summary>
        /// <returns>角色服务的单例实体</returns>
        public static PlaceMaterialService GetInstance()
        {
 
            if (Instance == null)
            {
                lock (Lock)
                {
                    if (Instance == null)
                    {
                        Instance = new PlaceMaterialService();
                    }
                }
            }
            return Instance;
        }
 
 
        public int SaveInfo(string placeno,string materialno, out string msg)
        {
            msg = "";
            using (var dbModel = new DbModelCore())
            {
                try
                {
 
                    var place = dbModel.BASEPlaces.FirstOrDefault(x => x.code == placeno);
                    var material = dbModel.BASEMaterials.FirstOrDefault(x => x.code == materialno);
                    var pvmv = dbModel.BASEPlaceMaterialViews.FirstOrDefault(x => x.placecode == placeno || x.materialcode == materialno);
                    if (pvmv!=null)
                    {
                        msg = "所输入的库位或物料在库存中已存在,请检查!";
                        return 0;
                    }
                    if (place != null)
                    {
                        if (material != null)
                        {
                            var pvm = new BASEPlaceMaterial()
                            {
                                materialid = material.id,
                                placeid = place.id,
                                createtime = DateTime.Now,
                                updatetime = DateTime.Now
                            };
                            dbModel.BASEPlaceMaterials.Add(pvm);
                            place.status = 2;
                            place.isexecute = 0;
                            place.islock = 0;
                            dbModel.SaveChanges();
                            return pvm.id;
                        }
                        else 
                        {
                            msg = "物料不存在,请检查输入是否正确!";
                            return 0;
                        }
                    }
                    else 
                    {
                        msg = "库位不存在,请检查输入是否正确!";
                        return 0;
                    }
                  
                }
                catch (Exception ex)
                {
                    msg = ex.Message;
                    LogTextHelper.WriteLog(Resources.LogDir, this.ToString(), "SaveInfo", ex.Message);
                    return -1;
                }
            }
        }
             public int DeletePlaveMateial(List<int> ids,out string msg)
        {
            msg = "";
            using (var dbModel = new DbModelCore())
            {
                try
                {
                    var ones = dbModel.BASEPlaceMaterials.Where(x => ids.Contains(x.id)).ToList();
 
                    foreach (var one in ones)
                    {
                        int placeid = one.placeid;
                        var place = dbModel.BASEPlaces.FirstOrDefault(x => x.id == placeid);
                        if (place!=null)
                        {
                            place.status = 0;
                            place.isexecute = 0;
                            place.isexecute = 0;
                        }
                       
                    }
                    dbModel.BASEPlaceMaterials.RemoveRange(ones);
                    return dbModel.SaveChanges();
                }
                catch (Exception ex)
                {
                    msg = ex.Message;
                    LogTextHelper.WriteLog(Resources.LogDir, this.ToString(), "ChangePriority", ex.Message);
                    return -1;
                }
            }
        }
        
 
    }
}