xiaojiao
2025-12-26 4279cb4384f7f960d87af8b8ad9db73c2dececa3
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
/*
 *所有关于Dt_inboundorder_detail_hty类的业务代码应在此处编写
*可使用repository.调用常用方法,获取EF/Dapper等信息
*如果需要事务请使用repository.DbContextBeginTransaction
*也可使用DBServerProvider.手动获取数据库相关信息
*用户信息、权限、角色等使用UserContext.Current操作
*Dt_inboundorder_detail_htyService对增、删、改查、导入、导出、审核业务代码扩展参照ServiceFunFilter
*/
using WIDESEA.Core.BaseProvider;
using WIDESEA.Core.Extensions.AutofacManager;
using WIDESEA.Entity.DomainModels;
using System.Linq;
using WIDESEA.Core.Utilities;
using System.Linq.Expressions;
using WIDESEA.Core.Extensions;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.AspNetCore.Http;
using WIDESEA.Services.IRepositories;
using System;
using WIDESEA.Services.IServices;
using WIDESEA.Core.ManageUser;
using WIDESEA.Services.Repositories;
using WIDESEA.Common;
using System.Collections.Generic;
 
namespace WIDESEA.Services.Services
{
    public partial class Dt_inboundorder_detail_htyService
    {
        private readonly IHttpContextAccessor _httpContextAccessor;
        private readonly IDt_inboundorder_detail_htyRepository _repository;//访问数据库
 
        [ActivatorUtilitiesConstructor]
        public Dt_inboundorder_detail_htyService(
            IDt_inboundorder_detail_htyRepository dbRepository,
            IHttpContextAccessor httpContextAccessor
            )
        : base(dbRepository)
        {
            _httpContextAccessor = httpContextAccessor;
            _repository = dbRepository;
            //多租户会用到这init代码,其他情况可以不用
            //base.Init(dbRepository);
        }
 
        /// <summary>
        /// 添加入库订单明细历史数据
        /// </summary>
        /// <param name="delKeys"></param>
        /// <returns></returns>
        public WebResponseContent AddToHistory(List<string> delKeys)
        {
            WebResponseContent content = new WebResponseContent();
            try
            {
                List<string> headIds = new List<string>();
                for (int i = 0; i < delKeys.Count(); i++)
                {
                    IRepository<Dt_inboundorder_detail> repositoryDetail = Dt_inboundorder_detailRepository.Instance;
                    Dt_inboundorder_detail detail = repositoryDetail.FindFirst(a => a.inorderdtl_id == new System.Guid(delKeys[i].ToString()));
                    IRepository<Dt_inboundorder_head_hty> headhty = Dt_inboundorder_head_htyRepository.Instance;
                    Dt_inboundorder_head_hty _Inboundorder_Head_Hty = headhty.FindFirst(d => d.inorderhead_sourceid == detail.inorderdtl_headid);
                    detail.inorderdtl_state = ((int)OrderState.WMSClosed).ToString();
                    Dt_inboundorder_detail_hty detail_Hty = new Dt_inboundorder_detail_hty
                    {
                        inorderdtl_areaid = detail.inorderdtl_areaid,
                        inorderdtl_batch = detail.inorderdtl_batch,
                        inorderdtl_batch_cus = detail.inorderdtl_batch_cus,
                        inorderdtl_checkoutby = detail.inorderdtl_checkoutby,
                        inorderdtl_checktype = detail.inorderdtl_checktype,
                        inorderdtl_compeletor = UserContext.Current.UserTrueName,
                        inorderdtl_createtime = detail.inorderdtl_createtime,
                        inorderdtl_creator = detail.inorderdtl_creator,
                        inorderdtl_depart = detail.inorderdtl_depart,
                        inorderdtl_expiredate = detail.inorderdtl_expiredate,
                        inorderdtl_finishedqty = detail.inorderdtl_finishedqty,
                        inorderdtl_finishtime = DateTime.Now,
                        inorderdtl_grade = detail.inorderdtl_grade,
                        inorderdtl_headid = detail.inorderdtl_headid,
                        inorderdtl_isupload = detail.inorderdtl_isupload,
                        inorderdtl_item = detail.inorderdtl_item,
                        inorderdtl_loadtime = detail.inorderdtl_loadtime,
                        inorderdtl_materielid = detail.inorderdtl_materielid,
                        inorderdtl_number = detail.inorderdtl_number,
                        inorderdtl_operatetype = "删除",
                        inorderdtl_prodtdate = detail.inorderdtl_prodtdate,
                        inorderdtl_progressqty = detail.inorderdtl_progressqty,
                        inorderdtl_qty = detail.inorderdtl_qty,
                        inorderdtl_sourceid = _Inboundorder_Head_Hty.inorderhead_id.ToString(),
                        inorderdtl_state = detail.inorderdtl_state,
                        inorderdtl_supply = detail.inorderdtl_supply
                    };
                    //Add<Dt_inboundorder_detail_hty>(detail_Hty);//将删除数据添加到历史数据表
                    repository.Add(detail_Hty,true);
 
                    //if (!headIds.Contains(detail.inorderdtl_headid))
                    //    headIds.Add(detail.inorderdtl_headid);
 
                    //IDt_inboundorder_detailService detailService = Dt_inboundorder_detailService.Instance;
                    //detailService.Del(new object[] { detail.inorderdtl_id.ToString() }, false);
 
                }
                //content.Data = headIds;
                content.Status = true;
            }
            catch (Exception ex)
            {
                content.Status = false;
                content.Message = ex.Message;
            }
            return content;
        }
    }
}