1
yangle
2023-03-22 cac7dffbf8189bd6f316339c032cbb9519eb7c6f
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
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Web.Http;
using WebAPI.Models;
 
namespace WebAPI.Controllers
{
    public class Sc_PackUnionBillController : ApiController
    {
        public DBUtility.ClsPub.Enum_BillStatus BillStatus;//单据状态(新增,修改,浏览,更新单价,变更)
        private json objJsonResult = new json();
        public DataSet ds = new DataSet();
        public SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
 
 
        #region 标准工时单列表
 
        [Route("Sc_PackUnionBill/GetSc_StationInBillList")]
        [HttpGet]
        public object GetSc_StationInBillList(string sWhere)
        {
            try
            {
                ds = oCn.RunProcReturn("select * from h_v_Sc_StationInBillListMain" + sWhere + "order by hmainid desc", "h_v_Sc_StationInBillListMain");
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "返回记录成功!";
                objJsonResult.data = ds.Tables[0];
                return objJsonResult;
            }
            catch (Exception ex)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "没有返回任何记录!" + ex.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
 
        #endregion
 
        #region 标准工时导出Excel表格数据
        [Route("Sc_PackUnionBill/Sc_StationInBillSetExcel")]
        [HttpGet]
        public HttpResponseMessage Sc_StationInBillSetExcel(string sWhere)
        {
            HSSFWorkbook workbook = new HSSFWorkbook();
            ISheet sheet = workbook.CreateSheet("sheet1");
            IRow row = sheet.CreateRow(0);
 
 
            row.CreateCell(0).SetCellValue("进站生产订单号");
            row.CreateCell(1).SetCellValue("流转卡号");
            row.CreateCell(2).SetCellValue("进出站所用时间");
            row.CreateCell(3).SetCellValue("系统工时");
            row.CreateCell(4).SetCellValue("工时");
            row.CreateCell(5).SetCellValue("工序名");
            row.CreateCell(6).SetCellValue("不良数量");
            row.CreateCell(7).SetCellValue("报废数量");
            row.CreateCell(8).SetCellValue("进站数量");
            row.CreateCell(9).SetCellValue("出站数量");
            row.CreateCell(10).SetCellValue("出站时间");
            row.CreateCell(11).SetCellValue("进站时间");
            row.CreateCell(12).SetCellValue("制单人");
            row.CreateCell(13).SetCellValue("制单日期");
            //精确控制列宽
            sheet.SetColumnWidth(1, 5000);
            sheet.SetColumnWidth(2, 5000);
            sheet.SetColumnWidth(3, 5000);
            sheet.SetColumnWidth(4, 5000);
            sheet.SetColumnWidth(5, 5000);
            sheet.SetColumnWidth(6, 5000);
            sheet.SetColumnWidth(7, 5000);
            sheet.SetColumnWidth(8, 5000);
            sheet.SetColumnWidth(9, 5000);
            sheet.SetColumnWidth(10, 5000);
            sheet.SetColumnWidth(11, 5000);
            sheet.SetColumnWidth(12, 5000);
            sheet.SetColumnWidth(13, 5000);
            sheet.SetColumnWidth(14, 5000);
            LogService.Write("swhere:" + sWhere);
            string sql = "select * from h_v_Sc_StationInBillListMain" + sWhere + " order by hmainid desc";
            DataSet ds = oCn.RunProcReturn(sql, "h_v_Sc_StationInBillListMain");
            LogService.Write("sql语句:" + sql);
            for (var i = 0; i < ds.Tables[0].Rows.Count; i++)
            {
                IRow row1 = sheet.CreateRow(i + 1);
                row1.CreateCell(0).SetCellValue(ds.Tables[0].Rows[i]["进站生产订单号"].ToString());
                row1.CreateCell(1).SetCellValue(ds.Tables[0].Rows[i]["流转卡号"].ToString());
                row1.CreateCell(2).SetCellValue(ds.Tables[0].Rows[i]["进出站所用时间"].ToString());
                row1.CreateCell(3).SetCellValue(ds.Tables[0].Rows[i]["进出站所用时间(小时)"].ToString());
                row1.CreateCell(4).SetCellValue(ds.Tables[0].Rows[i]["工时"].ToString());
                row1.CreateCell(5).SetCellValue(ds.Tables[0].Rows[i]["工序名"].ToString());
                row1.CreateCell(6).SetCellValue(ds.Tables[0].Rows[i]["不良数量"].ToString());
                row1.CreateCell(7).SetCellValue(ds.Tables[0].Rows[i]["报废数量"].ToString());
                row1.CreateCell(8).SetCellValue(ds.Tables[0].Rows[i]["进站数量"].ToString());
                row1.CreateCell(9).SetCellValue(ds.Tables[0].Rows[i]["出站数量"].ToString());
                row1.CreateCell(10).SetCellValue(ds.Tables[0].Rows[i]["出站时间"].ToString());
                row1.CreateCell(11).SetCellValue(ds.Tables[0].Rows[i]["进站时间"].ToString());
                row1.CreateCell(12).SetCellValue(ds.Tables[0].Rows[i]["制单人"].ToString());
                row1.CreateCell(13).SetCellValue(ds.Tables[0].Rows[i]["制单日期"].ToString());
            }
            System.IO.MemoryStream ms = new System.IO.MemoryStream();
            workbook.Write(ms);
            ms.Position = 0;
 
            var response = new HttpResponseMessage(HttpStatusCode.OK);
            response.Content = new StreamContent(ms);
 
            response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
            var fileName = "标准工时.xls";
 
            response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
            {
                FileName = System.Web.HttpUtility.UrlEncode(fileName)
            };
            return response;
        }
 
        #endregion
    }
}