王 垚
2022-11-25 9f5557065812e175e3379ac0f611dfdd65b1fc7b
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
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("制单日期");
            //精确控制列宽
            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);
 
            DataSet ds = oCn.RunProcReturn("select * from h_v_Sc_StationInBillListMain "+sWhere+ " order by hmainid desc", "h_v_Sc_StationInBillListMain");
            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(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());
            }
            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
    }
}