zrg
1 天以前 b3f3b3e7373bfd12736332d9c269ad9f90c7e00c
增加附件通用方法
4个文件已修改
1个文件已添加
287 ■■■■■ 已修改文件
WebAPI/Controllers/WebAPIController.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/通用方法/文件上传/WebFileController.cs 265 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Properties/PublishProfiles/FolderProfile2.pubxml.user 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/WebAPI.csproj 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/WebAPI.csproj.user 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebAPI/Controllers/WebAPIController.cs
@@ -24366,6 +24366,9 @@
        }
        #endregion
        #region APP根据设备id进行自动登录
        [HttpGet]
        [Route("Web/getSysParameter")]
        public object getSysParameter(string HClientID)
@@ -24409,5 +24412,8 @@
                return objJsonResult;
            }
        }
        #endregion
    }
}
WebAPI/Controllers/ͨÓ÷½·¨/ÎļþÉÏ´«/WebFileController.cs
New file
@@ -0,0 +1,265 @@
using DAL;
using DBUtility;
using Model;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using Newtonsoft.Json.Linq;
using SQLHelper;
using System;
using System.Text;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web;
using System.Web.Http;
using WebAPI;
using WebAPI.Controllers.SCGL.日计划管理;
using WebAPI.Models;
using WebAPI.Service;
using SyntacticSugar.constant;
using System.Text.RegularExpressions;
namespace WebAPI.Controllers
{
    public class WebFileController : ApiController
    {
        //通用文件上传控制器
        public string sWhere = "";
        public WebServer webserver = new WebServer();
        public DataSet ds = new DataSet();
        private json objjson = new json();
        private json objJsonResult = new json();
        SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
        Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter();
        string fileip = System.Configuration.ConfigurationManager.AppSettings["FileIP"];
        #region æ–‡ä»¶ä¸Šä¼ 
        [Route("WebFile/UploadFile_WebFile")]
        [HttpPost]
        public object UploadFile_WebFile()
        {
            string path = "";
            string HBillType = HttpContext.Current.Request.Params["HBillType"];  //单据类型
            string HBillNo = HttpContext.Current.Request.Params["HBillNo"];  //单据号
            string HRemark = HttpContext.Current.Request.Params["HRemark"];  //备注
            string HUserName = HttpContext.Current.Request.Params["HUserName"];  //创建人
            HttpPostedFile files = HttpContext.Current.Request.Files["file"];
            // === åŠ¨æ€ç¡®å®šåŸºç¡€æ–‡ä»¶å¤¹ï¼ˆæ ¹æ®å•æ®ç±»åž‹ï¼‰ ===
            string baseFolder = "Files/WebFile/";  // é»˜è®¤è·¯å¾„
            if (HBillType == "3907")
                baseFolder = "Files/Sb_EquipConkBookBill/";      // è®¾å¤‡æ•…障登记单
            else if (HBillType == "3920")
                baseFolder = "Files/Sb_EquipRepairSignBill/";   // è®¾å¤‡ç»´ä¿®ç­¾åˆ°å•
            else if (HBillType == "3909")
                baseFolder = "Files/Sb_EquipRepairSendWorkBill/";   // è®¾å¤‡ç»´ä¿®æ´¾å·¥å•
            else if (HBillType == "3910")
                baseFolder = "Files/Sb_EquipRepairWorkBill/";   // è®¾å¤‡ç»´ä¿®è®°å½•单
            else if (HBillType == "3911")
                baseFolder = "Files/Sb_EquipRepairCheckBill/";   // è®¾å¤‡ç»´ä¿®éªŒæ”¶å•
            else if (HBillType == "3815")
                baseFolder = "Files/Sc_MouldConkBookBill/";   // æ¨¡å…·æ•…障登记单
            else if (HBillType == "3843")
                baseFolder = "Files/Sc_MouldRepairSendWorkBill/";   // æ¨¡å…·ç»´ä¿®æ´¾å·¥å•
            else if (HBillType == "3807")
                baseFolder = "Files/Sc_MouldRepairWorkBill/";   // æ¨¡å…·ç»´ä¿®è®°å½•单
            else if (HBillType == "3817")
                baseFolder = "Files/Sc_MouldRepairCheckBill/";   // æ¨¡å…·ç»´ä¿®éªŒæ”¶
            path = HttpContext.Current.Server.MapPath("~/../" + baseFolder + HBillNo);
            dynamic dyResult = UploadFile_WebFile(files, path, HBillNo, HRemark, HUserName, baseFolder);
            if (dyResult != null && dyResult.result == 1)
            {
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "上传成功!";
                objJsonResult.data = null;
                return objJsonResult;
            }
            else
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = dyResult.returnval;
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        public dynamic UploadFile_WebFile(HttpPostedFile files, string path, string HBillNo, string HRemark, string HUserName, string baseFolder)
        {
            dynamic Result_Ob = new { result = 1, returnval = "上传成功!" };
            string filePath = Path.GetFullPath(files.FileName);//文件上传路径
            string fileExtension = Path.GetExtension(files.FileName);// æ–‡ä»¶æ‰©å±•名
            string filename = files.FileName;//文件名
            string fileSavePath = path;// ä¸Šä¼ ä¿å­˜è·¯å¾„
            int filesize = files.ContentLength;//获取上传文件的大小单位为字节byte
            int Maxsize = 40000 * 1024;//定义上传文件的最大空间大小为40M
            // æž„建数据库存储的相对路径(/ å¼€å¤´ï¼Œå¦‚ /Files/WebFile/BillNo/)
            string relativeUrlPath = "/" + baseFolder.TrimStart('~').TrimStart('/') + HBillNo + "/";
            try
            {
                if (files == null || files.ContentLength <= 0)
                {
                    Result_Ob = new { result = 0, returnval = "文件不能为空!" };
                    return Result_Ob;
                }
                if (filesize >= Maxsize)
                {
                    Result_Ob = new { result = 0, returnval = "上传文件超过40M,不能上传!" };
                    return Result_Ob;
                }
                string fileurl = Path.Combine(fileSavePath, filename);
                if (Directory.Exists(fileurl) == true)  //如果存在重名文件就提示
                {
                    Result_Ob = new { result = 0, returnval = "存在同名文件!" };
                    return Result_Ob;
                }
                //删除数据表数据
                ds = oCN.RunProcReturn("delete from MES_AccessoriesList where HSourceBillNo ='" + HBillNo + "' and HFileName='" + filename + "'", "MES_AccessoriesList");
                if (Directory.Exists(path))
                {
                    File.Delete(fileurl);      //删除指定文件
                    files.SaveAs(fileurl);
                    string StrPath = relativeUrlPath + filename;   // æ•°æ®åº“存储的相对路径+文件名
                    if (File.Exists(fileurl))
                    {
                        //写入数据表(HFilePath ä½¿ç”¨ç›¸å¯¹è·¯å¾„)
                        oCN.RunProc("Insert into MES_AccessoriesList (HFileName,HFilePath,HFilePath_Cus,HFileType" +
                                    ",HLoadMan,HLoadDate,HRemark,HVerNum,HFileSize" +
                                    ",HFileClsID,HSourceBillNo" +
                                   ") values('"
                                    + filename.ToString() + "','" + StrPath.ToString() + "','" + filePath.ToString() + "','" + fileExtension.ToString() + "'" +
                                    ",'" + HUserName + "',getdate(),'" + HRemark + "','V1','" + filesize +
                                    "','" + 0 + "','" + HBillNo +
                                   "') ");
                    }
                    else
                    {
                        Result_Ob = new { result = 0, returnval = "上传失败!此文件为恶意文件" };
                    }
                }
                else
                {
                    Directory.CreateDirectory(fileSavePath); //添加文件夹
                    files.SaveAs(fileurl);
                    string StrPath = relativeUrlPath + filename;
                    if (File.Exists(fileurl))
                    {
                        oCN.RunProc("Insert into MES_AccessoriesList (HFileName,HFilePath,HFilePath_Cus,HFileType" +
                                    ",HLoadMan,HLoadDate,HRemark,HVerNum,HFileSize" +
                                    ",HFileClsID,HSourceBillNo" +
                                   ") values('"
                                    + filename.ToString() + "','" + StrPath.ToString() + "','" + filePath.ToString() + "','" + fileExtension.ToString() + "'" +
                                    ",'" + HUserName + "',getdate(),'" + HRemark + "','V1','" + filesize +
                                    "','" + 0 + "','" + HBillNo +
                                   "') ");
                    }
                    else
                    {
                        Result_Ob = new { result = 0, returnval = "上传失败!此文件为恶意文件" };
                    }
                }
            }
            catch (Exception e)
            {
                Result_Ob = new { result = 0, returnval = e.Message };
            }
            return Result_Ob;
        }
        /// <summary>
        /// æ ¹æ®å•据号查找上传文件列表
        /// </summary>
        [Route("WebFile/WebFileList")]
        [HttpGet]
        public object WebFileList(string HBillNo)
        {
            try
            {
                var request = HttpContext.Current.Request;
                string baseUrl = $"{request.Url.Scheme}://{request.Url.Authority}/";
                // 2. ç›´æŽ¥ç”¨æ•°æ®åº“已有的 HFilePath + HFileName æ‹¼æŽ¥å®Œæ•´ URL
                //    HFilePath ç¤ºä¾‹ï¼š/Files/WebFile/BillNo-001/
                string sql = $@"SELECT *,  '{baseUrl}' + HFilePath  AS url  FROM MES_AccessoriesList  WHERE HSourceBillNo = '{HBillNo.Replace("'", "''")}'";
                ds = oCN.RunProcReturn(sql, "MES_AccessoriesList");
                // 3. æ­£å¸¸è¿”回数据
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = ds.Tables[0];
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.Message;
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        /// <summary>
        /// æ ¹æ®ID,单据号,文件名 åˆ é™¤æ–‡ä»¶ï¼ˆåŒæ—¶åˆ é™¤æ•°æ®åº“记录和服务器物理文件)
        /// </summary>
        [Route("WebFile/WebFile_DeleteFilelist")]
        [HttpGet]
        public object WebFile_DeleteFilelist(string HItemID)
        {
            try
            {
                // 1. å…ˆä»Žæ•°æ®åº“获取该文件的存储路径(HFilePath å­—段在上传时已存储了完整的相对路径+文件名)
                DataSet dsFile = oCN.RunProcReturn(
                    "select HFilePath from MES_AccessoriesList where HItemID =" + HItemID,
                    "MES_AccessoriesList");
                // 2. æž„建物理路径并删除服务器上的文件
                if (dsFile != null && dsFile.Tables[0].Rows.Count > 0)
                {
                    string relativePath = dsFile.Tables[0].Rows[0]["HFilePath"].ToString(); // å¦‚ /Files/WebFile/BillNo/xxx.pdf
                                                                                            // åŽ»æŽ‰å¼€å¤´çš„ /,然后拼到网站根目录上一级
                    string physicalPath = HttpContext.Current.Server.MapPath("~/../" + relativePath.TrimStart('/'));
                    if (File.Exists(physicalPath))
                    {
                        File.Delete(physicalPath);
                    }
                }
                // 3. åˆ é™¤æ•°æ®åº“记录
                oCN.RunProc("delete from MES_AccessoriesList where HItemID =" + HItemID);
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "删除成功!";
                objJsonResult.data = null;
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "Exception!" + e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
    }
}
WebAPI/Properties/PublishProfiles/FolderProfile2.pubxml.user
@@ -5,7 +5,7 @@
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <_PublishTargetUrl>D:\网站发布\智云MESWMS\API</_PublishTargetUrl>
    <History>True|2026-05-08T01:07:03.6507328Z;False|2026-05-08T09:05:32.3334730+08:00;True|2026-05-07T12:13:57.4615562+08:00;False|2026-05-07T12:12:20.7379585+08:00;True|2026-05-06T17:23:26.3696432+08:00;True|2026-05-06T16:43:22.7970389+08:00;False|2026-05-06T16:43:00.3805256+08:00;True|2026-05-06T15:47:46.3255643+08:00;True|2026-05-06T14:10:15.7955768+08:00;True|2026-05-06T13:28:05.4583623+08:00;True|2026-05-06T11:19:55.3226983+08:00;True|2026-05-06T11:06:19.3185379+08:00;True|2026-05-06T10:59:23.7931807+08:00;True|2026-05-06T10:04:30.6570500+08:00;True|2026-05-06T09:18:32.7000782+08:00;False|2026-05-06T09:17:43.1625773+08:00;True|2026-04-08T09:55:10.8896063+08:00;False|2026-04-08T09:54:59.9647951+08:00;True|2026-04-07T16:03:45.1834044+08:00;False|2026-04-07T16:03:34.6199255+08:00;True|2026-04-06T20:28:16.0131270+08:00;False|2026-04-06T20:27:56.2563065+08:00;True|2026-04-01T11:48:50.5292235+08:00;True|2026-04-01T11:38:01.4330956+08:00;True|2026-04-01T11:10:56.0438060+08:00;False|2026-04-01T11:10:46.7232028+08:00;True|2026-04-01T10:56:38.9083881+08:00;False|2026-04-01T10:56:07.7574345+08:00;True|2026-03-27T14:26:07.9321307+08:00;False|2026-03-27T14:25:22.5010392+08:00;True|2026-03-27T13:35:36.8292396+08:00;False|2026-03-27T13:31:46.3527084+08:00;True|2026-03-24T15:10:02.2143243+08:00;True|2026-03-24T14:44:30.5286229+08:00;True|2026-03-24T10:24:40.8361153+08:00;False|2026-03-24T10:23:42.4160796+08:00;True|2026-03-23T19:05:41.2442007+08:00;False|2026-03-23T19:05:02.6358374+08:00;True|2026-03-23T15:35:21.7391934+08:00;False|2026-03-23T15:33:14.3621736+08:00;True|2026-03-21T11:27:25.8485662+08:00;True|2026-03-21T10:51:07.0416520+08:00;False|2026-03-21T10:50:30.0808809+08:00;True|2026-03-20T15:21:25.3928861+08:00;False|2026-03-20T15:20:18.7323151+08:00;True|2026-03-19T17:53:04.0599612+08:00;False|2026-03-19T17:49:34.2586338+08:00;True|2026-03-18T16:36:39.3459012+08:00;False|2026-03-18T16:33:44.2834015+08:00;True|2026-03-18T09:14:46.8169365+08:00;False|2026-03-18T09:11:29.5956354+08:00;True|2026-03-17T21:02:32.6298438+08:00;False|2026-03-17T21:01:51.7259809+08:00;True|2026-03-17T17:42:17.6095943+08:00;True|2026-03-17T17:22:22.7829010+08:00;True|2026-03-17T17:07:30.0424197+08:00;True|2026-03-17T17:00:25.9496446+08:00;True|2026-03-17T16:57:34.7454437+08:00;False|2026-03-17T16:55:25.6389756+08:00;True|2026-03-16T17:53:15.9567970+08:00;False|2026-03-16T17:52:38.5476276+08:00;True|2026-03-14T17:08:45.9696477+08:00;False|2026-03-14T17:07:54.0759419+08:00;True|2026-03-13T15:56:58.9781226+08:00;True|2026-03-13T14:54:12.0380800+08:00;True|2026-03-13T14:45:10.9471893+08:00;True|2026-03-13T14:34:35.7792308+08:00;True|2026-03-13T13:28:54.0165676+08:00;True|2026-03-13T13:04:26.7960852+08:00;True|2026-03-13T12:32:40.4056776+08:00;True|2026-03-13T12:00:38.5403236+08:00;True|2026-03-13T11:58:15.7212751+08:00;False|2026-03-13T11:56:03.1608711+08:00;True|2026-03-12T12:56:09.1798557+08:00;True|2026-03-12T12:10:38.6579078+08:00;True|2026-03-12T12:00:41.1216693+08:00;True|2026-03-12T10:49:25.6657932+08:00;True|2026-03-12T10:34:42.0132081+08:00;False|2026-03-12T10:34:21.1374537+08:00;True|2026-03-12T09:49:04.2791476+08:00;False|2026-03-12T09:48:32.0226441+08:00;True|2026-03-11T21:37:22.2202127+08:00;False|2026-03-11T21:35:48.4959239+08:00;True|2026-03-11T20:47:52.7636338+08:00;False|2026-03-11T20:47:20.3374534+08:00;True|2026-03-10T09:03:48.7681627+08:00;False|2026-03-10T09:02:36.0583806+08:00;True|2026-03-09T22:57:55.3577018+08:00;False|2026-03-09T22:55:54.8997804+08:00;True|2026-03-09T17:08:10.5420450+08:00;True|2026-03-09T16:57:28.4177680+08:00;True|2026-03-09T16:50:59.8251070+08:00;True|2026-03-09T10:23:55.4999880+08:00;False|2026-03-09T10:23:00.0281682+08:00;True|2026-03-06T09:15:06.5024218+08:00;True|2026-03-06T08:54:38.7087070+08:00;False|2026-03-06T08:53:23.6823346+08:00;True|2026-03-05T17:26:43.5908847+08:00;False|2026-03-05T17:25:48.2804326+08:00;True|2026-03-05T16:04:43.1077406+08:00;False|2026-03-05T16:02:11.7881116+08:00;True|2026-03-03T16:16:26.8635275+08:00;True|2026-03-03T15:54:24.2283621+08:00;True|2026-03-03T12:32:30.4495356+08:00;False|2026-03-03T12:31:06.0560910+08:00;True|2026-03-02T12:18:24.6587456+08:00;True|2026-03-02T09:35:22.6172462+08:00;False|2026-03-02T09:32:04.1416982+08:00;True|2026-02-28T12:04:01.7406133+08:00;True|2026-02-28T08:47:36.7167331+08:00;False|2026-02-28T08:46:49.1748795+08:00;True|2026-02-27T17:21:35.6897064+08:00;True|2026-02-27T17:00:03.2447893+08:00;True|2026-02-27T14:26:49.0714379+08:00;True|2026-02-27T13:57:50.9161682+08:00;False|2026-02-27T13:54:58.3092086+08:00;True|2026-02-26T16:30:22.6331887+08:00;True|2026-02-26T15:56:54.4778359+08:00;False|2026-02-26T15:55:53.2808802+08:00;False|2026-02-26T15:55:27.7501008+08:00;True|2026-02-26T12:42:10.3734658+08:00;True|2026-02-26T12:01:13.4363491+08:00;True|2026-02-26T10:24:02.2555254+08:00;True|2026-02-03T11:56:14.3086755+08:00;True|2026-02-03T11:51:19.6091315+08:00;True|2026-02-03T10:42:35.4774950+08:00;False|2026-02-03T10:40:57.1735351+08:00;True|2026-02-03T09:30:22.5235073+08:00;False|2026-02-03T09:27:21.6917147+08:00;True|2026-02-02T15:31:07.3762944+08:00;True|2026-02-02T14:13:20.5690146+08:00;True|2026-02-02T10:42:22.4804584+08:00;False|2026-02-02T10:41:48.7402434+08:00;True|2026-02-01T17:40:21.0538069+08:00;True|2026-02-01T15:44:12.2393909+08:00;False|2026-02-01T15:40:37.6456544+08:00;True|2026-01-31T12:05:50.6946479+08:00;False|2026-01-31T12:04:44.5273342+08:00;True|2026-01-29T17:14:07.3795568+08:00;True|2026-01-29T17:11:48.4286289+08:00;True|2026-01-29T16:10:42.7141082+08:00;True|2026-01-29T14:41:38.0583611+08:00;True|2026-01-29T14:36:18.1975177+08:00;True|2026-01-29T14:34:43.7423264+08:00;True|2026-01-29T14:09:16.2701844+08:00;True|2026-01-29T13:17:37.0708838+08:00;True|2026-01-29T10:21:51.3074443+08:00;False|2026-01-29T10:20:12.1418198+08:00;True|2026-01-28T13:52:59.2210650+08:00;True|2026-01-28T10:34:06.8152564+08:00;False|2026-01-28T10:32:51.4478083+08:00;True|2026-01-27T12:19:58.2090999+08:00;True|2026-01-27T12:18:40.9255150+08:00;True|2026-01-27T12:10:45.0784359+08:00;True|2026-01-27T11:45:58.2218602+08:00;True|2026-01-27T08:54:11.2473398+08:00;False|2026-01-27T08:50:52.3900508+08:00;True|2026-01-25T16:51:10.8469862+08:00;True|2026-01-25T16:15:55.3063785+08:00;False|2026-01-25T16:13:47.1609576+08:00;False|2026-01-25T16:10:27.3797138+08:00;True|2026-01-22T19:26:11.1120981+08:00;False|2026-01-22T19:21:59.7591077+08:00;True|2026-01-21T20:10:38.2264542+08:00;True|2026-01-21T20:05:52.6769930+08:00;False|2026-01-21T20:04:52.2864808+08:00;True|2026-01-20T10:09:22.6558754+08:00;True|2026-01-20T09:43:16.9535139+08:00;False|2026-01-20T09:40:14.5080297+08:00;True|2026-01-19T17:23:36.9963060+08:00;True|2026-01-19T17:18:41.7602029+08:00;True|2026-01-19T17:05:35.1663057+08:00;True|2026-01-19T16:49:48.9497194+08:00;True|2026-01-19T12:35:09.4063486+08:00;False|2026-01-19T12:33:25.3260660+08:00;True|2026-01-17T20:21:42.3497625+08:00;True|2026-01-17T20:17:40.8631870+08:00;True|2026-01-17T20:13:16.6618986+08:00;False|2026-01-17T20:10:39.7099356+08:00;False|2026-01-17T20:10:01.5198461+08:00;False|2026-01-17T20:09:07.5632818+08:00;True|2026-01-17T20:06:07.7085249+08:00;True|2026-01-17T17:50:38.6295526+08:00;False|2026-01-17T17:48:59.9531552+08:00;True|2026-01-16T16:22:22.3525933+08:00;True|2026-01-16T14:14:39.4187185+08:00;False|2026-01-16T14:10:47.6350779+08:00;True|2026-01-15T17:33:04.8867687+08:00;True|2026-01-15T17:13:07.4827420+08:00;False|2026-01-15T17:11:32.8298249+08:00;True|2026-01-15T16:34:04.8984638+08:00;True|2026-01-15T14:12:39.3677563+08:00;False|2026-01-15T14:10:25.0842475+08:00;True|2026-01-14T19:47:01.2486856+08:00;False|2026-01-14T19:46:15.5380497+08:00;True|2026-01-14T15:49:22.6528911+08:00;True|2026-01-14T10:24:06.5942562+08:00;False|2026-01-14T10:22:32.4884475+08:00;False|2026-01-12T09:27:01.9297704+08:00;True|2026-01-11T14:27:58.9407325+08:00;False|2026-01-11T14:26:47.1324504+08:00;True|2026-01-11T13:54:38.7697615+08:00;True|2026-01-11T12:39:56.1396008+08:00;False|2026-01-11T12:37:59.5059421+08:00;True|2026-01-09T15:34:00.7959753+08:00;False|2026-01-09T15:32:33.3223847+08:00;True|2026-01-09T10:27:04.4418230+08:00;False|2026-01-09T10:24:55.6104648+08:00;True|2026-01-08T18:05:09.8950096+08:00;False|2026-01-08T18:03:49.6828377+08:00;True|2026-01-08T15:53:31.8458993+08:00;True|2026-01-08T15:43:35.4452984+08:00;True|2026-01-08T15:16:09.2797564+08:00;True|2026-01-08T15:09:12.1761272+08:00;False|2026-01-08T15:08:31.8053125+08:00;True|2026-01-08T12:28:32.3839432+08:00;False|2026-01-08T12:28:06.4930402+08:00;False|2026-01-06T13:05:41.4537127+08:00;True|2026-01-04T11:27:03.6003486+08:00;True|2026-01-04T11:16:09.0856233+08:00;True|2026-01-04T11:09:33.9721372+08:00;True|2026-01-04T10:59:57.5111892+08:00;False|2026-01-04T10:57:57.5312203+08:00;True|2025-12-30T14:23:14.0889784+08:00;True|2025-12-29T09:12:05.7081903+08:00;False|2025-12-29T09:11:27.9082848+08:00;True|2025-07-01T16:53:57.8492332+08:00;True|2025-07-01T16:14:28.8419744+08:00;True|2025-07-01T15:15:43.3121091+08:00;True|2025-07-01T14:48:00.3454856+08:00;True|2025-07-01T09:17:46.2541717+08:00;False|2025-07-01T09:17:07.0648196+08:00;True|2025-06-23T14:30:28.6691264+08:00;False|2025-06-23T14:27:45.6002040+08:00;True|2025-06-23T11:02:08.3020700+08:00;True|2025-06-23T10:47:44.4654541+08:00;True|2025-06-23T09:46:24.9049910+08:00;False|2025-06-23T09:45:40.5195919+08:00;True|2025-06-20T14:33:10.9210583+08:00;True|2025-06-20T13:22:54.5321865+08:00;False|2025-06-20T13:21:30.8643897+08:00;True|2025-06-20T08:36:32.6695266+08:00;False|2025-06-20T08:35:57.8274069+08:00;True|2025-06-19T08:14:35.0623669+08:00;False|2025-06-19T08:12:57.2451557+08:00;True|2025-06-18T16:56:03.4555368+08:00;True|2025-06-18T16:42:43.2441845+08:00;False|2025-06-18T16:42:02.6907205+08:00;True|2025-06-16T16:13:03.2956026+08:00;False|2025-06-16T16:12:23.8438917+08:00;True|2025-06-16T15:21:32.7370852+08:00;True|2025-06-16T15:08:57.7166003+08:00;True|2025-06-16T14:02:18.4224630+08:00;True|2025-06-16T11:00:03.6375429+08:00;False|2025-06-16T10:59:26.0956296+08:00;True|2025-06-09T16:45:52.0865612+08:00;True|2025-06-09T16:38:47.2182194+08:00;True|2025-06-09T16:17:50.9170601+08:00;False|2025-06-09T16:17:43.0333396+08:00;True|2025-06-09T15:25:17.0429161+08:00;True|2025-06-09T15:00:15.0058791+08:00;True|2025-06-09T14:50:02.1370115+08:00;True|2025-06-09T14:38:10.9037045+08:00;True|2025-06-09T14:34:53.2826267+08:00;True|2025-06-09T14:07:24.5341951+08:00;True|2025-06-09T13:39:17.5042542+08:00;True|2025-06-09T09:30:31.8197114+08:00;True|2025-01-10T13:10:47.2046185+08:00;True|2025-01-10T11:11:49.4016910+08:00;True|2025-01-10T10:59:12.3481721+08:00;False|2025-01-10T10:58:24.5033898+08:00;True|2025-01-04T14:35:42.2792864+08:00;</History>
    <History>True|2026-05-09T08:00:44.4923700Z;True|2026-05-09T15:12:09.7412917+08:00;True|2026-05-09T15:07:21.2940902+08:00;True|2026-05-09T14:51:59.6563412+08:00;False|2026-05-09T14:51:43.7650440+08:00;True|2026-05-09T14:05:47.5384993+08:00;False|2026-05-09T14:04:34.8843560+08:00;True|2026-05-08T09:07:03.6507328+08:00;False|2026-05-08T09:05:32.3334730+08:00;True|2026-05-07T12:13:57.4615562+08:00;False|2026-05-07T12:12:20.7379585+08:00;True|2026-05-06T17:23:26.3696432+08:00;True|2026-05-06T16:43:22.7970389+08:00;False|2026-05-06T16:43:00.3805256+08:00;True|2026-05-06T15:47:46.3255643+08:00;True|2026-05-06T14:10:15.7955768+08:00;True|2026-05-06T13:28:05.4583623+08:00;True|2026-05-06T11:19:55.3226983+08:00;True|2026-05-06T11:06:19.3185379+08:00;True|2026-05-06T10:59:23.7931807+08:00;True|2026-05-06T10:04:30.6570500+08:00;True|2026-05-06T09:18:32.7000782+08:00;False|2026-05-06T09:17:43.1625773+08:00;True|2026-04-08T09:55:10.8896063+08:00;False|2026-04-08T09:54:59.9647951+08:00;True|2026-04-07T16:03:45.1834044+08:00;False|2026-04-07T16:03:34.6199255+08:00;True|2026-04-06T20:28:16.0131270+08:00;False|2026-04-06T20:27:56.2563065+08:00;True|2026-04-01T11:48:50.5292235+08:00;True|2026-04-01T11:38:01.4330956+08:00;True|2026-04-01T11:10:56.0438060+08:00;False|2026-04-01T11:10:46.7232028+08:00;True|2026-04-01T10:56:38.9083881+08:00;False|2026-04-01T10:56:07.7574345+08:00;True|2026-03-27T14:26:07.9321307+08:00;False|2026-03-27T14:25:22.5010392+08:00;True|2026-03-27T13:35:36.8292396+08:00;False|2026-03-27T13:31:46.3527084+08:00;True|2026-03-24T15:10:02.2143243+08:00;True|2026-03-24T14:44:30.5286229+08:00;True|2026-03-24T10:24:40.8361153+08:00;False|2026-03-24T10:23:42.4160796+08:00;True|2026-03-23T19:05:41.2442007+08:00;False|2026-03-23T19:05:02.6358374+08:00;True|2026-03-23T15:35:21.7391934+08:00;False|2026-03-23T15:33:14.3621736+08:00;True|2026-03-21T11:27:25.8485662+08:00;True|2026-03-21T10:51:07.0416520+08:00;False|2026-03-21T10:50:30.0808809+08:00;True|2026-03-20T15:21:25.3928861+08:00;False|2026-03-20T15:20:18.7323151+08:00;True|2026-03-19T17:53:04.0599612+08:00;False|2026-03-19T17:49:34.2586338+08:00;True|2026-03-18T16:36:39.3459012+08:00;False|2026-03-18T16:33:44.2834015+08:00;True|2026-03-18T09:14:46.8169365+08:00;False|2026-03-18T09:11:29.5956354+08:00;True|2026-03-17T21:02:32.6298438+08:00;False|2026-03-17T21:01:51.7259809+08:00;True|2026-03-17T17:42:17.6095943+08:00;True|2026-03-17T17:22:22.7829010+08:00;True|2026-03-17T17:07:30.0424197+08:00;True|2026-03-17T17:00:25.9496446+08:00;True|2026-03-17T16:57:34.7454437+08:00;False|2026-03-17T16:55:25.6389756+08:00;True|2026-03-16T17:53:15.9567970+08:00;False|2026-03-16T17:52:38.5476276+08:00;True|2026-03-14T17:08:45.9696477+08:00;False|2026-03-14T17:07:54.0759419+08:00;True|2026-03-13T15:56:58.9781226+08:00;True|2026-03-13T14:54:12.0380800+08:00;True|2026-03-13T14:45:10.9471893+08:00;True|2026-03-13T14:34:35.7792308+08:00;True|2026-03-13T13:28:54.0165676+08:00;True|2026-03-13T13:04:26.7960852+08:00;True|2026-03-13T12:32:40.4056776+08:00;True|2026-03-13T12:00:38.5403236+08:00;True|2026-03-13T11:58:15.7212751+08:00;False|2026-03-13T11:56:03.1608711+08:00;True|2026-03-12T12:56:09.1798557+08:00;True|2026-03-12T12:10:38.6579078+08:00;True|2026-03-12T12:00:41.1216693+08:00;True|2026-03-12T10:49:25.6657932+08:00;True|2026-03-12T10:34:42.0132081+08:00;False|2026-03-12T10:34:21.1374537+08:00;True|2026-03-12T09:49:04.2791476+08:00;False|2026-03-12T09:48:32.0226441+08:00;True|2026-03-11T21:37:22.2202127+08:00;False|2026-03-11T21:35:48.4959239+08:00;True|2026-03-11T20:47:52.7636338+08:00;False|2026-03-11T20:47:20.3374534+08:00;True|2026-03-10T09:03:48.7681627+08:00;False|2026-03-10T09:02:36.0583806+08:00;True|2026-03-09T22:57:55.3577018+08:00;False|2026-03-09T22:55:54.8997804+08:00;True|2026-03-09T17:08:10.5420450+08:00;True|2026-03-09T16:57:28.4177680+08:00;True|2026-03-09T16:50:59.8251070+08:00;True|2026-03-09T10:23:55.4999880+08:00;False|2026-03-09T10:23:00.0281682+08:00;True|2026-03-06T09:15:06.5024218+08:00;True|2026-03-06T08:54:38.7087070+08:00;False|2026-03-06T08:53:23.6823346+08:00;True|2026-03-05T17:26:43.5908847+08:00;False|2026-03-05T17:25:48.2804326+08:00;True|2026-03-05T16:04:43.1077406+08:00;False|2026-03-05T16:02:11.7881116+08:00;True|2026-03-03T16:16:26.8635275+08:00;True|2026-03-03T15:54:24.2283621+08:00;True|2026-03-03T12:32:30.4495356+08:00;False|2026-03-03T12:31:06.0560910+08:00;True|2026-03-02T12:18:24.6587456+08:00;True|2026-03-02T09:35:22.6172462+08:00;False|2026-03-02T09:32:04.1416982+08:00;True|2026-02-28T12:04:01.7406133+08:00;True|2026-02-28T08:47:36.7167331+08:00;False|2026-02-28T08:46:49.1748795+08:00;True|2026-02-27T17:21:35.6897064+08:00;True|2026-02-27T17:00:03.2447893+08:00;True|2026-02-27T14:26:49.0714379+08:00;True|2026-02-27T13:57:50.9161682+08:00;False|2026-02-27T13:54:58.3092086+08:00;True|2026-02-26T16:30:22.6331887+08:00;True|2026-02-26T15:56:54.4778359+08:00;False|2026-02-26T15:55:53.2808802+08:00;False|2026-02-26T15:55:27.7501008+08:00;True|2026-02-26T12:42:10.3734658+08:00;True|2026-02-26T12:01:13.4363491+08:00;True|2026-02-26T10:24:02.2555254+08:00;True|2026-02-03T11:56:14.3086755+08:00;True|2026-02-03T11:51:19.6091315+08:00;True|2026-02-03T10:42:35.4774950+08:00;False|2026-02-03T10:40:57.1735351+08:00;True|2026-02-03T09:30:22.5235073+08:00;False|2026-02-03T09:27:21.6917147+08:00;True|2026-02-02T15:31:07.3762944+08:00;True|2026-02-02T14:13:20.5690146+08:00;True|2026-02-02T10:42:22.4804584+08:00;False|2026-02-02T10:41:48.7402434+08:00;True|2026-02-01T17:40:21.0538069+08:00;True|2026-02-01T15:44:12.2393909+08:00;False|2026-02-01T15:40:37.6456544+08:00;True|2026-01-31T12:05:50.6946479+08:00;False|2026-01-31T12:04:44.5273342+08:00;True|2026-01-29T17:14:07.3795568+08:00;True|2026-01-29T17:11:48.4286289+08:00;True|2026-01-29T16:10:42.7141082+08:00;True|2026-01-29T14:41:38.0583611+08:00;True|2026-01-29T14:36:18.1975177+08:00;True|2026-01-29T14:34:43.7423264+08:00;True|2026-01-29T14:09:16.2701844+08:00;True|2026-01-29T13:17:37.0708838+08:00;True|2026-01-29T10:21:51.3074443+08:00;False|2026-01-29T10:20:12.1418198+08:00;True|2026-01-28T13:52:59.2210650+08:00;True|2026-01-28T10:34:06.8152564+08:00;False|2026-01-28T10:32:51.4478083+08:00;True|2026-01-27T12:19:58.2090999+08:00;True|2026-01-27T12:18:40.9255150+08:00;True|2026-01-27T12:10:45.0784359+08:00;True|2026-01-27T11:45:58.2218602+08:00;True|2026-01-27T08:54:11.2473398+08:00;False|2026-01-27T08:50:52.3900508+08:00;True|2026-01-25T16:51:10.8469862+08:00;True|2026-01-25T16:15:55.3063785+08:00;False|2026-01-25T16:13:47.1609576+08:00;False|2026-01-25T16:10:27.3797138+08:00;True|2026-01-22T19:26:11.1120981+08:00;False|2026-01-22T19:21:59.7591077+08:00;True|2026-01-21T20:10:38.2264542+08:00;True|2026-01-21T20:05:52.6769930+08:00;False|2026-01-21T20:04:52.2864808+08:00;True|2026-01-20T10:09:22.6558754+08:00;True|2026-01-20T09:43:16.9535139+08:00;False|2026-01-20T09:40:14.5080297+08:00;True|2026-01-19T17:23:36.9963060+08:00;True|2026-01-19T17:18:41.7602029+08:00;True|2026-01-19T17:05:35.1663057+08:00;True|2026-01-19T16:49:48.9497194+08:00;True|2026-01-19T12:35:09.4063486+08:00;False|2026-01-19T12:33:25.3260660+08:00;True|2026-01-17T20:21:42.3497625+08:00;True|2026-01-17T20:17:40.8631870+08:00;True|2026-01-17T20:13:16.6618986+08:00;False|2026-01-17T20:10:39.7099356+08:00;False|2026-01-17T20:10:01.5198461+08:00;False|2026-01-17T20:09:07.5632818+08:00;True|2026-01-17T20:06:07.7085249+08:00;True|2026-01-17T17:50:38.6295526+08:00;False|2026-01-17T17:48:59.9531552+08:00;True|2026-01-16T16:22:22.3525933+08:00;True|2026-01-16T14:14:39.4187185+08:00;False|2026-01-16T14:10:47.6350779+08:00;True|2026-01-15T17:33:04.8867687+08:00;True|2026-01-15T17:13:07.4827420+08:00;False|2026-01-15T17:11:32.8298249+08:00;True|2026-01-15T16:34:04.8984638+08:00;True|2026-01-15T14:12:39.3677563+08:00;False|2026-01-15T14:10:25.0842475+08:00;True|2026-01-14T19:47:01.2486856+08:00;False|2026-01-14T19:46:15.5380497+08:00;True|2026-01-14T15:49:22.6528911+08:00;True|2026-01-14T10:24:06.5942562+08:00;False|2026-01-14T10:22:32.4884475+08:00;False|2026-01-12T09:27:01.9297704+08:00;True|2026-01-11T14:27:58.9407325+08:00;False|2026-01-11T14:26:47.1324504+08:00;True|2026-01-11T13:54:38.7697615+08:00;True|2026-01-11T12:39:56.1396008+08:00;False|2026-01-11T12:37:59.5059421+08:00;True|2026-01-09T15:34:00.7959753+08:00;False|2026-01-09T15:32:33.3223847+08:00;True|2026-01-09T10:27:04.4418230+08:00;False|2026-01-09T10:24:55.6104648+08:00;True|2026-01-08T18:05:09.8950096+08:00;False|2026-01-08T18:03:49.6828377+08:00;True|2026-01-08T15:53:31.8458993+08:00;True|2026-01-08T15:43:35.4452984+08:00;True|2026-01-08T15:16:09.2797564+08:00;True|2026-01-08T15:09:12.1761272+08:00;False|2026-01-08T15:08:31.8053125+08:00;True|2026-01-08T12:28:32.3839432+08:00;False|2026-01-08T12:28:06.4930402+08:00;False|2026-01-06T13:05:41.4537127+08:00;True|2026-01-04T11:27:03.6003486+08:00;True|2026-01-04T11:16:09.0856233+08:00;True|2026-01-04T11:09:33.9721372+08:00;True|2026-01-04T10:59:57.5111892+08:00;False|2026-01-04T10:57:57.5312203+08:00;True|2025-12-30T14:23:14.0889784+08:00;True|2025-12-29T09:12:05.7081903+08:00;False|2025-12-29T09:11:27.9082848+08:00;True|2025-07-01T16:53:57.8492332+08:00;True|2025-07-01T16:14:28.8419744+08:00;True|2025-07-01T15:15:43.3121091+08:00;True|2025-07-01T14:48:00.3454856+08:00;True|2025-07-01T09:17:46.2541717+08:00;False|2025-07-01T09:17:07.0648196+08:00;True|2025-06-23T14:30:28.6691264+08:00;False|2025-06-23T14:27:45.6002040+08:00;True|2025-06-23T11:02:08.3020700+08:00;True|2025-06-23T10:47:44.4654541+08:00;True|2025-06-23T09:46:24.9049910+08:00;False|2025-06-23T09:45:40.5195919+08:00;True|2025-06-20T14:33:10.9210583+08:00;True|2025-06-20T13:22:54.5321865+08:00;False|2025-06-20T13:21:30.8643897+08:00;True|2025-06-20T08:36:32.6695266+08:00;False|2025-06-20T08:35:57.8274069+08:00;True|2025-06-19T08:14:35.0623669+08:00;False|2025-06-19T08:12:57.2451557+08:00;True|2025-06-18T16:56:03.4555368+08:00;True|2025-06-18T16:42:43.2441845+08:00;False|2025-06-18T16:42:02.6907205+08:00;True|2025-06-16T16:13:03.2956026+08:00;False|2025-06-16T16:12:23.8438917+08:00;True|2025-06-16T15:21:32.7370852+08:00;True|2025-06-16T15:08:57.7166003+08:00;True|2025-06-16T14:02:18.4224630+08:00;True|2025-06-16T11:00:03.6375429+08:00;False|2025-06-16T10:59:26.0956296+08:00;True|2025-06-09T16:45:52.0865612+08:00;True|2025-06-09T16:38:47.2182194+08:00;True|2025-06-09T16:17:50.9170601+08:00;False|2025-06-09T16:17:43.0333396+08:00;True|2025-06-09T15:25:17.0429161+08:00;True|2025-06-09T15:00:15.0058791+08:00;True|2025-06-09T14:50:02.1370115+08:00;True|2025-06-09T14:38:10.9037045+08:00;True|2025-06-09T14:34:53.2826267+08:00;True|2025-06-09T14:07:24.5341951+08:00;True|2025-06-09T13:39:17.5042542+08:00;True|2025-06-09T09:30:31.8197114+08:00;True|2025-01-10T13:10:47.2046185+08:00;True|2025-01-10T11:11:49.4016910+08:00;True|2025-01-10T10:59:12.3481721+08:00;False|2025-01-10T10:58:24.5033898+08:00;True|2025-01-04T14:35:42.2792864+08:00;</History>
  </PropertyGroup>
  <ItemGroup>
    <File Include="apiapp.json">
@@ -342,10 +342,10 @@
      <publishTime>11/24/2014 19:18:48</publishTime>
    </File>
    <File Include="bin/WebAPI.dll">
      <publishTime>05/08/2026 09:06:46</publishTime>
      <publishTime>05/09/2026 16:00:41</publishTime>
    </File>
    <File Include="bin/WebAPI.pdb">
      <publishTime>05/08/2026 09:06:46</publishTime>
      <publishTime>05/09/2026 16:00:41</publishTime>
    </File>
    <File Include="bin/WebAPI.XmlSerializers.dll">
      <publishTime>07/01/2025 16:53:56</publishTime>
@@ -575,11 +575,14 @@
    <File Include="Web.config">
      <publishTime>05/06/2026 09:18:31</publishTime>
    </File>
    <File Include="ZPLTemplate/测试.zpl">
      <publishTime>05/09/2026 09:53:59</publishTime>
    </File>
    <File Include="ZPLTemplate/物料条码 100×60.zpl">
      <publishTime>04/30/2026 15:08:32</publishTime>
      <publishTime>05/09/2026 09:53:59</publishTime>
    </File>
    <File Include="ZPLTemplate/物料条码 80×60.zpl">
      <publishTime>04/30/2026 15:08:32</publishTime>
      <publishTime>05/09/2026 09:53:59</publishTime>
    </File>
  </ItemGroup>
</Project>
WebAPI/WebAPI.csproj
@@ -740,6 +740,7 @@
    <Compile Include="Controllers\物流管理\其他结算单\YF_PayMentOtherBillTranController.cs" />
    <Compile Include="Controllers\物流管理\出运单\WLYayBillController.cs" />
    <Compile Include="Controllers\物流管理\运单费用结算单\Pay_WayBillPaymentBillController.cs" />
    <Compile Include="Controllers\通用方法\文件上传\WebFileController.cs" />
    <Compile Include="Controllers\项目管理\工程项目\PM_ProjectBill_WorkController.cs" />
    <Compile Include="DLL\ClsGy_ItemMoney_Ctl.cs" />
    <Compile Include="DLL\ClsSc_MESStopRestoreWorkBill.cs" />
WebAPI/WebAPI.csproj.user
@@ -2,7 +2,7 @@
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <LastActiveSolutionConfig>Debug|x86</LastActiveSolutionConfig>
    <LastActiveSolutionConfig>Debug|x86</LastActiveSolutionConfig>
    <LastActiveSolutionConfig>Debug|Any CPU</LastActiveSolutionConfig>
    <UseIISExpress>true</UseIISExpress>
    <Use64BitIISExpress />
    <IISExpressSSLPort />