Administrator
2024-01-30 845ccac41be71294fdd4dec197537c85d4828665
入库流程增加订单复核功能
3个文件已修改
98 ■■■■ 已修改文件
HTML/views/ASNSetting/ArrivalNotice.html 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/Wms/Controllers/UpApiController.cs 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HTML/views/ASNSetting/ArrivalNotice.html
@@ -180,6 +180,9 @@
                                html += `<a class="layui-btn layui-btn-normal layui-btn-xs clossClass" lay-event="closs">  <i class="layui-icon layui-icon-ok"></i>订单关闭</a>
                                        <a class="layui-btn layui-btn-danger layui-btn-xs cheXiaoClass" lay-event="chexiao"> <i class="layui-icon layui-icon-delete"></i>撤销</a>`; 
                                    break;
                                case "3" :
                                html += `<a class="layui-btn layui-btn-normal layui-btn-xs clossClass" lay-event="check">  <i class="layui-icon layui-icon-ok"></i>复核</a>`;
                                    break;
                                default : 
                                break; 
                            }
@@ -962,6 +965,32 @@
                            var param = {
                                Id:data.Id,
                            };
                            sendData(IP + "/UpApi/CloseAsn", param, 'post', function (res) {
                                if (res.code == 0) { //成功
                                    layer.msg(res.msg, {
                                        icon: 1,
                                        time: 2000 //2秒关闭(如果不配置,默认是3秒)
                                    }, function () {
                                        refreshTable();
                                        doing = true
                                    });
                                } else { //不成功
                                    layer.msg(res.msg, {
                                        icon: 2,
                                        time: 2000 //2秒关闭(如果不配置,默认是3秒)
                                    }, function () { doing = true });
                                }
                            });
                        });
                        break;
                    case "check" :
                        // 代码区域
                        layer.confirm('确定复核此单据吗?', function(index) {
                            // 代码区域
                            var param = {
                                Id:data.Id,
                            };
                            sendData(IP + "/UpApi/FinishAsn", param, 'post', function (res) {
                                if (res.code == 0) { //成功
                                    layer.msg(res.msg, {
@@ -978,7 +1007,7 @@
                                    }, function () { doing = true });
                                }
                            });
                        });
                        });
                        
                        break;
                    case "chexiao" :
Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
@@ -847,6 +847,10 @@
                {
                    throw new Exception("未查询到单据明细信息");
                }
                if (userId == notice.UpdateUser)
                {
                    throw new Exception("复核失败,复核人员和关闭订单人员不能相同!");
                }
                var list = new List<AsnDetail>();
                foreach (var d in detail)
                {
@@ -865,21 +869,26 @@
                    OrderCode = notice.OrderCode,
                    AsnDetails = list
                };
                // 通过接口发送至erp
                var jsonData = JsonConvert.SerializeObject(soInfo);
                #region 通过接口发送至erp
                //系统对接后放开
                /*var jsonData = JsonConvert.SerializeObject(soInfo);
                var response = HttpHelper.DoPost(url, jsonData, "入库单完成上传", "ERP");
                //解析返回数据
                var obj = JsonConvert.DeserializeObject<ErpModel>(response);
                var obj = JsonConvert.DeserializeObject<ErpModel>(response);//解析返回数据
                if (obj.Success != 0)
                {
                    throw new Exception("上传失败" + obj.Message);
                }
                }*/
                #endregion
                notice.Status = "4";
                notice.UpdateTime = DateTime.Now;
                notice.UpdateUser = userId;
                Db.Updateable(notice).ExecuteCommand();
                new OperationASNServer().AddLogOperationAsn("入库作业", "入库单据", notice.ASNNo, "复核", $"复核了单据号为{notice.ASNNo}的单据信息", userId);
                return true;
            }
            catch (Exception e)
Wms/Wms/Controllers/UpApiController.cs
@@ -37,9 +37,38 @@
        #endregion
        #region 调用上游系统接口
        /// <summary>
        /// 入库单完成回传
        /// 入库单关闭
        /// </summary>
        /// <param name="model">入库单号</param>
        /// <returns></returns>
        [HttpPost]
        public IActionResult CloseAsn(IdVm model)
        {
            try
            {
                //获取当前登录的用户ID
                var claimsIdentity = this.User.Identity as ClaimsIdentity;
                if (claimsIdentity == null)
                {
                    return Ok(new { code = 1, msg = "未获取到当前操作人信息" });
                }
                var userId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value;
                if (string.IsNullOrWhiteSpace(userId))
                {
                    return Ok(new { code = 1, msg = "未获取到当前操作人信息" });
                }
                _arrivalNoticeSvc.CloseArrivalNotice(model.Id, int.Parse(userId));
                return Ok(new { code = 0, count = 0, msg = "入库单关单成功" });
            }
            catch (Exception e)
            {
                return Ok(new { code = 1, msg = e.Message });
            }
        }
        /// <summary>
        /// 入库单复核并回传
        /// </summary>
        /// <param name="model">入库单号</param>
        /// <returns></returns>
@@ -59,20 +88,9 @@
                {
                    return Ok(new { code = 1, msg = "未获取到当前操作人信息" });
                }
                var bolls = _arrivalNoticeSvc.CloseArrivalNotice(model.Id, int.Parse(userId));
                if (bolls == "")
                {
                    //系统对接后放开
                    //var bl =_ArrivalNoticeSvc.FinishAsn(model.Id,_config.ErpHost+_config.AsnFinishUrl,int.Parse(userId));
                    //if (bl)
                    //{
                        return Ok(new { code = 0, count = 0, msg = "入库单关单上传成功" });
                    //}
                    //return Ok(new { code = 1, count = 0, msg = "出库单关单成功但上传失败" });
                }
                return Ok(new { code = 1, msg = "入库单关单失败" });
                _arrivalNoticeSvc.FinishAsn(model.Id, _config.ErpHost + _config.AsnFinishUrl, int.Parse(userId));
                return Ok(new { code = 0, count = 0, msg = "入库单复核并上传成功" });
            }
            catch (Exception e)
            {