zhaowc
2024-06-25 e34f379c22862982c20376c952ab56f9c4ccb163
修改controller
2个文件已添加
10个文件已修改
449 ■■■■■ 已修改文件
HTML/views/ASNSetting/ArrivalNotice.html 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HTML/views/StatisticalReport/BoxInfor.html 94 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HTML/views/StatisticalReport/PalletAddFrom.html 157 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/Model/InterFaceModel/AsnModels.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/Model/InterFaceModel/TaskModel.cs 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/Model/ModelDto/DataDto/StockDetailDto.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.BLL/BllTransServer/NoticeServer.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.BLL/DataServer/StockDetailServer.cs 82 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.IBLL/IBllTransServer/INoticeServer.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.IBLL/IDataServer/IStockDetailServer.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/Wms/Controllers/StatisticalController.cs 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/Wms/Controllers/UpApiController.cs 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HTML/views/ASNSetting/ArrivalNotice.html
@@ -546,18 +546,18 @@
                        {field: 'CompleteTime',title: '完成时间',align: 'center', width: 160,templet: '#templetCompleteTime2'},
                        {field: 'IsSampling',title: '是否取样',align: 'center',width: 90,templet: '#templetIsSampling'},
                        {field: 'InspectStatus',title: '质检状态',align: 'center',width: 90,templet: '#templetInspectStatus'},
                        {field: 'UnitName',title: '计量单位',align: 'center',width: 90},
                        //{field: 'UnitName',title: '计量单位',align: 'center',width: 90},
                        // {field: 'Price',title: '单价',align: 'center',width: 65},
                        // {field: 'Money',title: '金额',align: 'center',width: 65},
                        {field: 'LotText',title: '批次描述',align: 'center',width: 120},
                        {field: 'PackagName',title: '包装名称',align: 'center',width: 110,},
                        {field: 'IsBale',title: '是否裹包',align: 'center',width: 150},
                        {field: 'IsBelt',title: '是否打带',align: 'center',width: 150},
                        {field: 'UDF1',title: '自定义列1',align: 'center',width: 140},
                        {field: 'UDF2',title: '自定义列2',align: 'center',width: 140},
                        {field: 'UDF3',title: '自定义列3',align: 'center',width: 140},
                        {field: 'UDF4',title: '自定义列4',align: 'center',width: 140},
                        {field: 'UDF5',title: '自定义列5',align: 'center',width: 140,templet:'#templetUDF5'},
                        // {field: 'PackagName',title: '包装名称',align: 'center',width: 110,},
                        // {field: 'IsBale',title: '是否裹包',align: 'center',width: 150},
                        // {field: 'IsBelt',title: '是否打带',align: 'center',width: 150},
                        // {field: 'UDF1',title: '自定义列1',align: 'center',width: 140},
                        // {field: 'UDF2',title: '自定义列2',align: 'center',width: 140},
                        // {field: 'UDF3',title: '自定义列3',align: 'center',width: 140},
                        // {field: 'UDF4',title: '自定义列4',align: 'center',width: 140},
                        // {field: 'UDF5',title: '自定义列5',align: 'center',width: 140,templet:'#templetUDF5'},
                        {field: 'CreateUserName',title: '创建人',align: 'center',width: 100},
                        {field: 'CreateTime',title: '创建时间',align: 'center',width: 160,templet: '#templetCreateTime2'},
                        {field: 'UpdateUserName',title: '修改人',align: 'center',width: 150,},
HTML/views/StatisticalReport/BoxInfor.html
@@ -190,17 +190,29 @@
                        {{#  } else if(d.BitPalletMark == '1') { }}
                            <p>是</p>
                        {{# } }}
                        <script type="text/html" id="InspectPalletStatus">
                            {{#  if(d.PalletStatus=='0'){ }}
                                <p>净桶</p>
                            {{#  } else if(d.PalletStatus == '1') { }}
                                <p>预混</p>
                            {{# } else if(d.PalletStatus == '2') { }}
                                <p>半成品</p>
                            {{# } else if(d.PalletStatus == '3') { }}
                                <p>脏桶</p>
                            {{# }  }}
                        </script>
                    <script type="text/html" id="InspectPalletStatus">
                        {{# function GetBtn11(d){
                            var html = ``;
                            if(d.PalletStatus=='0'){
                                html = `净桶`;
                            } else if(d.PalletStatus=='1') {
                                html = `预混`;
                            } else if(d.PalletStatus=='2') {
                                html = `半成品`;
                            }else if(d.PalletStatus=='3') {
                                html = `脏桶`;
                            }
                            return html;
                        }
                    }}
                    {{ GetBtn11(d) }}
                    </script>
                    <script type="text/html" id="toolbarDemo">
                        <button class="layui-btn layuiadmin-btn-list layui-btn-sm  addClass" lay-event="add">
                            <i class="layui-icon">&#xe654;</i>添加
                        </button>
                    </script>
                </div>
            </div>
@@ -331,11 +343,11 @@
                var TotalColsArr = [[
                    {field: '',title: '序号',type:'numbers',align: 'center',fixed: 'left', "disabled": true},
                    {field: 'WareHouseName', title: '所属仓库', align: 'center'},
                    {field: 'RoadwayName', title: '所属巷道', align: 'center'},
                    //{field: 'RoadwayName', title: '所属巷道', align: 'center'},
                    {field: 'AreaName', title: '所属区域', align: 'center'},
                    {field: 'LocatNo', title: '储位地址', align: 'center'},
                    {field: 'PalletNo', title: '托盘号', align: 'center'},
                    {field: 'PalletStatus', title: '托盘状态', align: 'center', templet: '#InspectPalletStatus'},
                    {field: 'PalletStatus', title: '托盘类别', align: 'center', templet: '#InspectPalletStatus'},
                    {field: 'SkuNo', title: '物料编码', align: 'center'},
                    {field: 'SkuName', title: '物料名称', align: 'center'},
                    //{field: 'OwnerNo',title: '货主编码',align: 'center'},
@@ -378,6 +390,8 @@
                            limit: pageCnt,
                            limits: pageLimits,
                            even: true,
                            toolbar: '#toolbarDemo',
                            defaultToolbar: [''], //'print', 'exports'
                            cellMinWidth: 80, //全局定义常规单元格的最小宽度,layui 2.2.1 新增
                            done: function(){
                                //自定义列宽
@@ -425,6 +439,62 @@
                    //#endregion                    
                }                
                //头工具栏事件
                table.on('toolbar(LAY-app-content-list)', function (obj) {
                    var checkStatus = table.checkStatus(obj.config.id);
                    if (obj.event == "add") {
                        layer.open({
                            type: 2,
                            title: '添加托盘库存明细',
                            content: 'PalletAddFrom.html',
                            maxmin: true,
                            area: ['530px', '530px'],
                            btn: ['确定', '取消'],
                            yes: function(index, layero) {
                                var iframeWindow = window['layui-layer-iframe' + index],
                                    submitID = 'layuiadmin-app-form-submit',
                                    submit = layero.find('iframe').contents().find('#' + submitID);
                                //监听提交
                                iframeWindow.layui.form.on('submit(' + submitID + ')', function(data) {
                                    var field = data.field; //获取提交的字段
                                    //提交 Ajax 成功后,静态更新表格中的数据
                                    var param = {
                                        PalletNo:field.PalletNo,//托盘码
                                        WareHouseNo: field.WareHouseNo, //所属仓库
                                        AreaNo: field.AreaNo, //所属区域
                                        LocatNo:field.LocatNo,//所属储位
                                        PalletStatus: field.PalletStatus, //托盘类别
                                    };
                                    if(doing){
                                        doing = false;
                                        sendData(IP + "/Statistical/InsertStockDetail", param, 'post',function(res) {
                                            console.log(res);
                                            if (res.code == 0) { //成功
                                                layer.msg(res.msg, {
                                                    icon: 1,
                                                    time: 2000 //2秒关闭(如果不配置,默认是3秒)
                                                }, function() {
                                                    layer.close(index); //关闭弹层
                                                    refreshTable("","","","","","","","","","","","","","");
                                                    doing = true;
                                                });
                                            }
                                            else
                                            { //不成功
                                                layer.msg(res.msg, {
                                                    icon: 2,
                                                    time: 2000 //2秒关闭(如果不配置,默认是3秒)
                                                }, function() {doing = true;});
                                            }
                                        });
                                    }
                                });
                                submit.trigger('click');
                            }
                        });
                    }
                });
                //监听搜索
                form.on('submit(LAY-app-contlist-search)', function(data) {
                    var SkuNo = $("#SkuNo").val();
HTML/views/StatisticalReport/PalletAddFrom.html
New file
@@ -0,0 +1,157 @@
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>托盘库存明细维护管理</title>
        <meta name="renderer" content="webkit">
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
        <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
        <link rel="stylesheet" href="../../layuiadmin/layui/css/layui.css" media="all">
    </head>
    <body>
        <div class="layui-form" lay-filter="layuiadmin-app-form-list" id="layuiadmin-app-form-list" style="padding: 20px 30px 0 0;">
            <div class="layui-form-item">
                <label class="layui-form-label">托盘号</label>
                <div class="layui-input-block">
                    <input type="text" name="PalletNo" lay-verify="required"  placeholder="请输入托盘号" autocomplete="off" class="layui-input">
                </div>
            </div>
            <div class="layui-form-item">
                <label class="layui-form-label">所属仓库</label>
                <div class="layui-input-block">
                    <select name="WareHouseNo" id="WareHouseNo" lay-verify="required" lay-search lay-filter="SelectWareHouseNo">
                        <option value=""></option>
                    </select>
                </div>
            </div>
            <div class="layui-form-item">
                <label class="layui-form-label">所属区域</label>
                <div class="layui-input-block">
                    <select name="AreaNo" id="AreaNo" lay-verify="required" lay-search lay-filter="SelectAreaNo">
                        <option value=""></option>
                    </select>
                </div>
            </div>
            <div class="layui-form-item">
                <label class="layui-form-label">所属储位</label>
                <div class="layui-input-block">
                    <select name="LocatNo" id="LocatNo" lay-verify="" lay-search >
                        <option value=""></option>
                    </select>
                </div>
            </div>
            <div class="layui-form-item">
                <label class="layui-form-label">托盘状态</label>
                <div class="layui-input-block">
                    <select name="PalletStatus" id="PalletStatus" lay-verify="" lay-search>
                        <option value=""></option>
                        <option value="1">净桶</option>
                        <option value="2">混料</option>
                        <option value="3">半成品</option>
                        <option value="4">脏桶</option>
                    </select>
                </div>
            </div>
            <div class="layui-form-item layui-hide">
                <input type="button" lay-submit lay-filter="layuiadmin-app-form-submit" id="layuiadmin-app-form-submit" value="确认添加">
                <input type="button" lay-submit lay-filter="layuiadmin-app-form-edit" id="layuiadmin-app-form-edit" value="确认编辑">
            </div>
        </div>
            <script src="../../layuiadmin/layui/layui.js"></script>
            <script src="../../js/public.js"></script>
            <script src="../../js/jquery-3.5.1.min.js"></script>
            <script src="../../js/jquery.cookie.js"></script>
            <script>
                layui.config({
                    base: '../../layuiadmin/' //静态资源所在路径
                }).extend({
                    index: 'lib/index' //主入口模块
                }).use(['index', 'form', 'layer'], function() {
                    var $ = layui.$,
                        form = layui.form,
                        layer = layui.layer;
                //获取仓库
                sendData(IP + "/Sys/GetWarehouseDic", {}, 'get', function(res) {
                    if (res.code == 0) { //成功
                        // $("#RoadwayNo").empty();
                        for (var i = 0; i < res.data.length; i++) {
                            $("#WareHouseNo").append('<option value =' + res.data[i].WareHouseNo + '>' + res.data[i].WareHouseNo + '-' +
                            res.data[i].WareHouseName + '</option>');
                        }
                        // $("select[name='WareHouseNo']").val(val);
                        form.render('select');
                    } else { //不成功
                        layer.msg(res.msg, {
                            icon: 2,
                            time: 2000 //2秒关闭(如果不配置,默认是3秒)
                        }, function() {});
                    }
                });
                //获取所属区域
                form.on('select(SelectWareHouseNo)', function (data) {
                    var WareHouseNo=$("#WareHouseNo").val();
                    if(WareHouseNo==''){
                        return;
                    }
                    sendData(IP + "/Sys/GetStorageAreaByHouseNo?wareHouseNo="+WareHouseNo, {}, 'get', function(res) {
                        if (res.code == 0) { //成功
                            $("#AreaNo").empty();//清空上一个查询下拉值
                            for (var i = 0; i < res.data.length; i++) {
                                $("#AreaNo").append('<option value =' + res.data[i].AreaNo + '>' +
                                    res.data[i].AreaName + '</option>');
                            }
                            form.render('select');
                            getLocatList();
                        } else { //不成功
                            layer.msg(res.msg, {
                                icon: 2,
                                time: 2000 //2秒关闭(如果不配置,默认是3秒)
                            }, function() {});
                        }
                    });
                });
                //获取储位
                form.on('select(SelectAreaNo)', function (data) {
                    getLocatList();
                });
                function getLocatList(){
                    var AreaNo=$("#AreaNo").val();
                    if(AreaNo==''){
                        return;
                    }
                    sendData(IP + "/Sys/GetStorageLocatList", {AreaNo:AreaNo}, 'post', function(res) {
                        if (res.code == 0) { //成功
                            $("#LocatNo").empty();//清空上一个查询下拉值
                            for (var i = 0; i < res.data.length; i++) {
                                $("#LocatNo").append('<option value =' + res.data[i].LocatNo + '>' +
                                    res.data[i].LocatNo + '</option>');
                            }
                            form.render('select');
                        } else { //不成功
                            layer.msg(res.msg, {
                                icon: 2,
                                time: 2000 //2秒关闭(如果不配置,默认是3秒)
                            }, function() {});
                        }
                    });
                }
                //获取浏览器参数
                function getQueryString(name) {
                    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
                    var r = window.location.search.substr(1).match(reg);
                    if (r != null) return unescape(r[2]);
                    return null;
                }
                })
            </script>
    </body>
</html>
Wms/Model/InterFaceModel/AsnModels.cs
@@ -29,6 +29,11 @@
        public string Origin { get; set; }
        /// <summary>
        /// 创建人
        /// </summary>
        public string CreateUser { get; set; }
        /// <summary>
        /// 单据明细
        /// </summary>
        public List<AsnDetail> AsnDetails { get; set; }
Wms/Model/InterFaceModel/TaskModel.cs
New file
@@ -0,0 +1,19 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Model.InterFaceModel
{
    public class TaskModel
    {
        /// <summary>
        /// 任务号
        /// </summary>
        public string TaskNo { get; set; }
        /// <summary>
        /// 状态
        /// </summary>
        public string Status { get; set; }
    }
}
Wms/Model/ModelDto/DataDto/StockDetailDto.cs
@@ -131,15 +131,15 @@
        public DateTime? ExpirationTime { get; set; }
        /// <summary>
        /// 状态
        /// </summary>
        public string Status { get; set; }
        /// <summary>
        /// 托盘状态
        /// Default:0:净桶 1:预混 2:半成品 3:脏桶
        /// </summary>
        public string PalletStatus { get; set; }
        /// <summary>
        /// 状态
        /// </summary>
        public string Status { get; set; }
        /// <summary>
        /// 检验标记
Wms/WMS.BLL/BllTransServer/NoticeServer.cs
@@ -29,7 +29,7 @@
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public ErpModel CreateAsn(AsnInfo model)
        public ErpModel CreateAsnWork(AsnInfo model)
        {
            try
            {
@@ -55,7 +55,7 @@
                    Origin = string.IsNullOrEmpty(model.Origin) ? "MES" : model.Origin,
                    CustomerNo = model.Customer,
                    CustomerName = "",
                    OrderCode = model.OrderCode,
                    OrderCode = model.OrderCode
                };
                // 入库明细表信息
@@ -127,7 +127,7 @@
        /// <param name="TaskNo"></param>
        /// <param name="Status"></param>
        /// <returns></returns>
        public ErpModel FinishTask(string TaskNo,string Status)
        public ErpModel RCSFinishTask(string TaskNo,string Status)
        {
            try
            {
@@ -552,7 +552,7 @@
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public SoResInfo ErpAddExportNotice(SoInfo model)
        public SoResInfo CreateSoWork(SoInfo model)
        {
            try
            {
Wms/WMS.BLL/DataServer/StockDetailServer.cs
@@ -403,5 +403,87 @@
            }
        }
        #endregion
        #region 二楼业务
        /// <summary>
        /// 添加托盘库存明细
        /// </summary>
        public void InsertStockDetail(string PalletNo,string WareHouseNo,string AreaNo,string LocatNo, string PalletStatus,int userId)
        {
            try
            {
                if (string.IsNullOrEmpty(PalletNo))
                {
                    throw new Exception("托盘号不能为空!");
                }
                if (string.IsNullOrEmpty(WareHouseNo))
                {
                    throw new Exception("所属仓库不能为空!");
                }
                if (string.IsNullOrEmpty(AreaNo))
                {
                    throw new Exception("所属区域不能为空!");
                }
                if (string.IsNullOrEmpty(LocatNo))
                {
                    throw new Exception("储位地址不能为空!");
                }
                if (string.IsNullOrEmpty(PalletStatus))
                {
                    throw new Exception("托盘状态不能为空!");
                }
                var palletInfo = Db.Queryable<DataStockDetail>().First(w => w.PalletNo == PalletNo);
                if (palletInfo != null)
                {
                    throw new Exception($"库存中已有编号为:{PalletNo}的明细,请勿重复添加!");
                }
                Db.BeginTran();
                var comTime = DateTime.Now;
                var model = new DataStockDetail()
                {
                    Qty = 0,
                    LockQty = 0,
                    FrozenQty = 0,
                    InspectQty = 0,
                    WareHouseNo = WareHouseNo,//所属仓库
                    RoadwayNo = "",//所属巷道
                    AreaNo = AreaNo,//所属区域
                    LocatNo = LocatNo,//储位地址
                    PalletNo = PalletNo,
                    PalletNo2 = "",
                    PalletNo3 = "",
                    PalletTags = "0",
                    CompleteTime = comTime,
                    ProductionTime = null,
                    ExpirationTime = null,
                    Status = "0",
                    InspectMark = "0",
                    InspectStatus = "0",//待检验
                    BitPalletMark = "0",
                    PackagNo = "",
                    IsBale = "0",
                    IsBelt = "0",
                    PalletStatus = PalletStatus,
                    IsDel = "0",
                    CreateUser = userId,
                    CreateTime = comTime
                };
                //插入库存明细
                Db.Insertable(model).ExecuteCommand();
                Db.CommitTran();
            }
            catch (Exception e)
            {
                //回滚事务
                Db.RollbackTran();
                throw new Exception(e.Message);
            }
        }
        #endregion
    }
}
Wms/WMS.IBLL/IBllTransServer/INoticeServer.cs
@@ -12,21 +12,21 @@
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public ErpModel CreateAsn(AsnInfo model);
        public ErpModel CreateAsnWork(AsnInfo model);
        /// <summary>
        /// 任务完成
        /// 任务完成反馈
        /// </summary>
        /// <param name="TaskNo"></param>
        /// <param name="Status"></param>
        /// <returns></returns>
        public ErpModel FinishTask(string TaskNo, string Status);
        public ErpModel RCSFinishTask(string TaskNo, string Status);
        /// <summary>
        /// 下发出库单
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public SoResInfo ErpAddExportNotice(SoInfo model);
        public SoResInfo CreateSoWork(SoInfo model);
    }
}
Wms/WMS.IBLL/IDataServer/IStockDetailServer.cs
@@ -40,5 +40,10 @@
        /// <param name="inspectStatus">质量状态</param>
        /// <returns></returns>
        List<DataStockDetail> GetBindListDaoChu(string skuNo, string skuName, string palletNo, string lotNo, string boxNo, string status, string inspectMark, string bitPalletMark, string bitBoxMark, string inspectStatus);
        /// <summary>
        /// 添加托盘库存明细
        /// </summary>
        public void InsertStockDetail(string PalletNo, string WareHouseNo, string AreaNo, string LocatNo, string PalletStatus, int userId);
    }
}
Wms/Wms/Controllers/StatisticalController.cs
@@ -434,5 +434,39 @@
        }
        #endregion
        #region 二楼业务
        /// <summary>
        /// 添加托盘库存明细
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        [HttpPost]
        public IActionResult InsertStockDetail(StockDetailDto model)
        {
            try
            {
                var claimsIdentity = this.User.Identity as ClaimsIdentity;
                if (claimsIdentity == null)
                {
                    throw new Exception("未获取到用户信息");
                }
                string userId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value;
                if (string.IsNullOrWhiteSpace(userId))
                {
                    throw new Exception("未获取到用户信息");
                }
                _stockDetail.InsertStockDetail(model.PalletNo,model.WareHouseNo,model.AreaNo,model.LocatNo,model.PalletStatus,int.Parse(userId));
                return Ok(new { code = 0, count = 0, msg = "添加成功", data = "" });
            }
            catch (Exception e)
            {
                return Ok(new { code = 1, msg = e.Message });
            }
        }
        #endregion
    }
}
Wms/Wms/Controllers/UpApiController.cs
@@ -33,8 +33,9 @@
        private readonly IStockCheckServer _stockCheckSvc;//盘点单Svc 
        private readonly IProcurePlanServer _procurePlanSvc;//采购单Svs
        private readonly IRcsServer _rcsserver;//RCS相关任务
        private readonly INoticeServer _noticeSvc;//二楼单据相关
        public UpApiController(IOptions<ApiUrlConfig> setting,IExportNoticeServer exNoticeSvc,IArrivalNoticeServer arrivalNoticeServer,IStockCheckServer stockCheckSvc, IProcurePlanServer procurePlanSvc,IRcsServer rcsserver)
        public UpApiController(IOptions<ApiUrlConfig> setting,IExportNoticeServer exNoticeSvc,IArrivalNoticeServer arrivalNoticeServer,IStockCheckServer stockCheckSvc, IProcurePlanServer procurePlanSvc,IRcsServer rcsserver, INoticeServer noticeSvc)
        {
            _config = setting.Value;
            _exNoticeSvc = exNoticeSvc;
@@ -42,7 +43,7 @@
            _stockCheckSvc = stockCheckSvc;
            _procurePlanSvc = procurePlanSvc;
            _rcsserver = rcsserver;
            _noticeSvc = noticeSvc;
        }
        #endregion
@@ -449,6 +450,10 @@
            }
        }
                result.Message = e.Message;
                return Ok(result);
            }
        }
        //箱码信息 手持组托用 (赋码或追溯下发到wms)
        //质检结果下发接口