jt
2021-06-10 5d0d028456874576560552f5a5c4e8b801786f11
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
using HH.WMS.Common;
using HH.WMS.Entitys;
using HH.WMS.Entitys.Common;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace HH.WMS.DAL.InStock
{
    public class TN_WM_INSPECTDAL : DapperBaseDAL
    {
        #region 查询检验单列表
        /// <summary>
        /// 查询检验单列表
        /// </summary>
        /// <param name="searchModel">实体</param>
        /// <returns></returns>
        public OperateResult GetInspectList(SearchModel searchModel)
        {
            var condition = searchModel.SearchCondition;
            string ConStr = "where 1=1 ";
            if (condition != null)
            {
                if (!string.IsNullOrEmpty(condition.CN_S_INSPECT_NO.ToString()))
                {
                    ConStr = ConStr + " and CN_S_INSPECT_NO like '%" + condition.CN_S_INSPECT_NO + "%'";
                }
                string state = condition.CN_S_STATE.ToString();
                if (!string.IsNullOrEmpty(state))
                {
                    if (state.IndexOf(",") > 0)
                    {
                        state = "'" + state.Replace(",", "','") + "'";
                        ConStr = ConStr + " and CN_S_STATE in (" + state + ")";
                    }
                    else
                    {
                        ConStr = ConStr + " and CN_S_STATE='" + state + "'";
                    }
                }
 
                if (!string.IsNullOrEmpty(condition.CN_T_START.ToString()))
                {
                    ConStr = ConStr + " and CN_T_CREATE >= '" + Util.ToStringInput(condition.CN_T_START) + " 00:00:00'";
                }
                if (!string.IsNullOrEmpty(condition.CN_T_END.ToString()))
                {
                    ConStr = ConStr + " and CN_T_CREATE <= '" + Util.ToStringInput(condition.CN_T_END) + " 23:59:59'";
                }
 
                if (!string.IsNullOrEmpty(condition.CN_S_OP_TYPE.ToString()))
                {
                    ConStr = ConStr + " and CN_S_OP_TYPE = '" + condition.CN_S_OP_TYPE + "'";
                }
 
            }
            string sql = @"(select * from TN_WM_INSPECT_MST ) T " + ConStr;
 
            OperateResult result = new OperateResult();
 
            return ExecutePagingResult(sql, searchModel.PageIndex, searchModel.PageSize, "", "");
        }
        #endregion
 
        #region 检验单送检
        /// <summary>
        /// 检验单送检
        /// </summary>
        /// <param name="inspectNo">检验单号</param>
        /// <param name="operatorName">送检员</param>
        /// <param name="inspectDept">送检部门</param>
        /// <returns></returns>
        public OperateResult InspectBeenTest(string inspectNo, string operatorName, string inspectDept)
        {
            if (string.IsNullOrEmpty(inspectDept))
            {
                inspectDept = Constants.InspectDept;
            }
            OperateResult result = new OperateResult();
            string sql = "UPDATE TN_WM_INSPECT_MST SET CN_S_STATE=@CN_S_STATE,CN_S_INSPECT_DEPT=@CN_S_INSPECT_DEPT,CN_S_SUBMIT_PERSONER=@CN_S_SUBMIT_PERSONER,CN_T_SUBMIT_INSPECT=case when CN_T_SUBMIT_INSPECT IS null then GETDATE() else CN_T_SUBMIT_INSPECT end WHERE CN_S_INSPECT_NO=@CN_S_INSPECT_NO";
            result = ExecuteTranSql(sql, new
            {
                CN_S_STATE = Constants.State_BeenTest,
                CN_S_INSPECT_DEPT = inspectDept,
                CN_S_SUBMIT_PERSONER = operatorName,
                CN_S_INSPECT_NO = inspectNo
            }, null);
            return result;
        }
        #endregion
 
        #region 获取调用OMS接口更新采购订单待检验数据
        /// <summary>
        /// 获取调用OMS接口更新采购订单待检验数据
        /// </summary>
        /// <param name="opinspectNo">检验单号</param>
        /// <returns></returns>
        public DataTable GetOmsCheckResultData(string opinspectNo)
        {
            string sql = @" SELECT DISTINCT ARRM.CN_S_OP_TYPE,INSD.CN_S_INSPECT_NO,INM.CN_S_FROM_NO,IND.CN_N_ROW_NO,INSD.CN_S_ITEM_CODE,INSD.CN_F_QUANTITY 
                             ,INSD.CN_F_QUALIFIED,INSD.CN_F_UNQUALIFIED,IND.CN_F_ACTUAL_PRICE  ,IND.CN_F_ACTUAL_MONEY
                             FROM TN_WM_INSPECT_DTL  INSD
                             LEFT JOIN TN_WM_ARRIVAL_MST ARRM ON ARRM.CN_S_ARRIVAL_NO=INSD.CN_S_FROM_NO
                             LEFT JOIN TN_WM_IN_MST  INM ON  ARRM.CN_S_FROM_NO=INM.CN_S_OP_NO
                             LEFT JOIN TN_WM_IN_DTL IND  ON  IND.CN_S_OP_NO=INM.CN_S_OP_NO AND INSD.CN_N_ROW_NO=IND.CN_N_ROW_NO
                             WHERE CN_S_INSPECT_NO='" + opinspectNo + "' AND INM.CN_S_FROM_NO  IS NOT NULL";
            return ExecuteDataTable(sql);
        }
        #endregion
 
        #region 检验单提交更新到货单数量
        /// <summary>
        /// 检验单提交更新到货单数量
        /// </summary>
        /// <param name="inspectNoStr">检验单字符串</param>
        /// <param name="trans"></param>
        /// <returns></returns>
        public OperateResult UpdateArrivalQty(string inspectNoStr, IDbTransaction trans)
        {
            string sql = @"UPDATE TN_WM_ARRIVAL_DTL  SET  TN_WM_ARRIVAL_DTL.CN_F_QUANTITY = TN_WM_INSPECT_DTL.CN_F_QUALIFIED 
                             FROM TN_WM_ARRIVAL_DTL INNER JOIN  TN_WM_INSPECT_DTL ON 
                             TN_WM_ARRIVAL_DTL.CN_S_ARRIVAL_NO=TN_WM_INSPECT_DTL.CN_S_FROM_NO AND
                             TN_WM_ARRIVAL_DTL.CN_N_ROW_NO=TN_WM_INSPECT_DTL.CN_S_FROM_ROW_NO AND
                             TN_WM_ARRIVAL_DTL.CN_S_ITEM_CODE=TN_WM_INSPECT_DTL.CN_S_ITEM_CODE 
                             WHERE TN_WM_INSPECT_DTL.CN_S_INSPECT_NO IN('" + inspectNoStr + "')";
            return ExecuteTranSql(sql, null, trans);
        }
        #endregion
    }
}