CollageController

server/2024/10/20 11:28:37/

目录

1、 CollageController

1.1、 保存领料主页面

1.1.1、 //审核人

1.1.2、 //审核时间

1.1.3、 //需要删除的ID集合

1.1.4、 //库存表

1.1.5、 //查询原来明细信息

1.1.6、 //修改配件表数量

1.1.7、 //修改配件表数量

1.1.8、 //查询原来明细信息

1.1.9、 查询领料单据信息

1.1.10、 //结算单号

1.1.11、 //领料员

1.1.12、 //领料时间

  1. CollageController 

using QXQPS.Models;

using QXQPS.Vo;

using System;

using System.Collections;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.Mvc;

namespace QXQPS.Areas.MechanicsManagment.Controllers

{

    public class CollageController : Controller

    {

        // GET: MechanicsManagment/Collage

    1. 保存领料主页面

        public ActionResult ListCollage(List<PW_Collage> listCollage, List<SYS_CollageDetai> listCollageDetai)//保存领料主页面

        {

            ArrayList list = new ArrayList();

            try

            {

                try

                {

                    var Auditor = Session["UserName"].ToString().Trim();

      1. //审核人

                    var Operator = Session["UserName"].ToString().Trim();//操作人

                    var CollageStates = "已领料".Trim();

                    var AuditDate = DateTime.Now;

      1. //审核时间

                    list.Add(Auditor);

                    list.Add(Operator);

                    list.Add(AuditDate.ToString());

                    list.Add(CollageStates);

                    listCollage[0].Auditor = Auditor;

                    listCollage[0].Operator = Operator;

                    listCollage[0].AuditDate = AuditDate;

                    listCollage[0].ToAudit = true;

                }

                catch (Exception)

                {

                    return Redirect("/Home/Login");

                }

                var CollageState = "已领料".Trim();

                if (listCollage[0].CollageID == 0)

                {

                    myModels.PW_Collage.Add(listCollage[0]);

                }

                else {

                    myModels.Entry(listCollage[0]).State = System.Data.Entity.EntityState.Modified;

                }

                if (myModels.SaveChanges() > 0)

                {

                    var CollageID = listCollage[0].CollageID;

                    if (listCollageDetai!=null)

                    {

                        List<int> oldID = new List<int>();//原来ID

                        List<int> newID = new List<int>();//新ID

                        List<int> listdelectID = new List<int>();

      1. //需要删除的ID集合

                        var lists = myModels.SYS_CollageDetai.Where(m => m.CollageID == CollageID).Select(m => new { m.CollageDetaiID }).ToList();

                        foreach (var item in lists)

                        {

                            oldID.Add(item.CollageDetaiID);

                        }

                        for (int i = 0; i < listCollageDetai.Count; i++)

                        {

                            listCollageDetai[i].CollageID = CollageID;

                            var CollageDetaiID = listCollageDetai[i].CollageDetaiID;

                            var FittingsCode = listCollageDetai[i].FittingsCode.Trim();//配件编码

                            var VehicleType = listCollageDetai[i].VehicleType.Trim();//车型

                            var InvenQuan = listCollageDetai[i].Quantity;//数量

                            var WarehouseID = listCollageDetai[i].WarehouseID;//仓库ID

                            var listInventory = myModels.SYS_Inventory.Where(m => m.FittingsCode == FittingsCode&&m.WarehouseID== WarehouseID).SingleOrDefault();

      1. //库存表

                            var listInventorys = myModels.SYS_Inventory.Where(m => m.FittingsCode == FittingsCode).ToList();//库存表

                            var listFittingsInfos = (from tbFittingsInfo in myModels.SYS_FittingsInfo where tbFittingsInfo.FittingsCode == FittingsCode select tbFittingsInfo).SingleOrDefault();

                            var listFittingsInfo = (from tbFittingsInfo in myModels.SYS_FittingsInfo

                                                    join tbFittingsType in myModels.SYS_FittingsType on tbFittingsInfo.FittingsTypeID equals tbFittingsType.FittingsTypeID

                                                    join tbVehicleType in myModels.SYS_VehicleType on tbFittingsInfo.VehicleTypeID equals tbVehicleType.VehicleTypeID

                                                    join tbSystemUnit in myModels.SYS_SystemUnit on tbFittingsInfo.SystemUnitID equals tbSystemUnit.SystemUnitID

                                                    where tbFittingsInfo.FittingsCode== FittingsCode

                                                    select new FittingsInfoVo

                                                    {

                                                        FittingsCode=tbFittingsInfo.FittingsCode.Trim(),

                                                        FittingsName=tbFittingsInfo.FittingsName.Trim(),

                                                        Intake=tbFittingsInfo.Intake,

                                                        SalesPrice=tbFittingsInfo.SalesPrice,

                                                        WholesalePrice =tbFittingsInfo.WholesalePrice,

                                                        FittingsTypeName=tbFittingsType.FittingsTypeName.Trim(),

                                                        VehicleType=tbVehicleType.VehicleType.Trim(),

                                                        SystemUnit=tbSystemUnit.SystemUnit.Trim(),

                                                    }).SingleOrDefault();

                            if (CollageDetaiID == 0)

                            {

                                myModels.SYS_CollageDetai.Add(listCollageDetai[i]);//新增

                            }

                            else {

                                newID.Add(listCollageDetai[i].CollageDetaiID);

                                myModels.Entry(listCollageDetai[i]).State = System.Data.Entity.EntityState.Modified;//修改

                            }

                            if (listFittingsInfos != null)

                            {

                                var lis = myModels.SYS_CollageDetai.Where(m => m.CollageDetaiID == CollageDetaiID).Select(m => new { m.FittingsCode, m.WarehouseID, m.Quantity }).SingleOrDefault();

      1. //查询原来明细信息

                                if (lis != null)

                                {

                                    var Quantity = lis.Quantity;

                                    listFittingsInfos.InvenQuan = listFittingsInfos.InvenQuan + (Quantity - InvenQuan);

      1. //修改配件表数量

                                }

                                else

                                {

                                    var liInvenQuan = listFittingsInfos.InvenQuan!=null? listFittingsInfos.InvenQuan:0;

                                    listFittingsInfos.InvenQuan = liInvenQuan - InvenQuan;

      1. //修改配件表数量

                                }

                                myModels.Entry(listFittingsInfos).State = System.Data.Entity.EntityState.Modified;

                            }

                            if (listInventory != null)//修改库存信息

                            {

                                if (CollageDetaiID != 0)

                                {

                                    var lis = myModels.SYS_CollageDetai.Where(m => m.CollageDetaiID == CollageDetaiID).Select(m => new { m.FittingsCode, m.WarehouseID , m.Quantity }).SingleOrDefault();

      1. //查询原来明细信息

                                    if (lis.WarehouseID != WarehouseID)

                                    {

                                        var liWarehouseID = lis.WarehouseID;

                                        var liFittingsCode = lis.FittingsCode;

                                        var oldInvenQuan = myModels.SYS_Inventory.Where(m => m.WarehouseID == liWarehouseID && m.FittingsCode == liFittingsCode).SingleOrDefault();//旧库存表

                                        oldInvenQuan.InvenQuan = oldInvenQuan.InvenQuan + InvenQuan;

                                        myModels.Entry(oldInvenQuan).State = System.Data.Entity.EntityState.Modified;//修改

                                        listInventory.InvenQuan = listInventory.InvenQuan - InvenQuan;

                                    }

                                    else

                                    {

                                        var Quantity = lis.Quantity;

                                        listInventory.InvenQuan = listInventory.InvenQuan + (Quantity - InvenQuan);

                                    }

                                }

                                else

                                {

                                   listInventory.InvenQuan = listInventory.InvenQuan  - InvenQuan;

                                }

                                myModels.Entry(listInventory).State = System.Data.Entity.EntityState.Modified;//修改

                            }

                            else//新增库存信息

                            {

                                SYS_Inventory sys_Inventory = new SYS_Inventory();

                                sys_Inventory.Position = listCollageDetai[i].Position;

                                sys_Inventory.WarehouseID = listCollageDetai[i].WarehouseID;

                                if (listFittingsInfo != null)

                                {

                                    sys_Inventory.FittingsType = listFittingsInfo.FittingsTypeName;

                                    sys_Inventory.FittingsCode = listFittingsInfo.FittingsCode;

                                    sys_Inventory.FittingsName = listFittingsInfo.FittingsName;

                                    sys_Inventory.VehicleType = listFittingsInfo.VehicleType;

                                    sys_Inventory.SystemUnit = listFittingsInfo.SystemUnit;

                                    sys_Inventory.InvenQuan = -InvenQuan;

                                    sys_Inventory.NewIntake = listFittingsInfo.Intake;

                                    sys_Inventory.SalePrice = listFittingsInfo.SalesPrice;

                                    sys_Inventory.WholePrice = listFittingsInfo.WholesalePrice;

                                    myModels.SYS_Inventory.Add(sys_Inventory);//新增

                                }

                                else

                                {

                                    sys_Inventory.NewIntake = 0;

                                    sys_Inventory.WholePrice = 0;

                                    sys_Inventory.FittingsCode = listCollageDetai[i].FittingsCode;

                                    sys_Inventory.FittingsName = listCollageDetai[i].FittingsName;

                                    sys_Inventory.VehicleType = listCollageDetai[i].VehicleType;

                                    sys_Inventory.SystemUnit = listCollageDetai[i].SystemUnit;

                                    sys_Inventory.InvenQuan = -listCollageDetai[i].Quantity;

                                    sys_Inventory.SalePrice = listCollageDetai[i].UnitPrice;

                                    sys_Inventory.Position = listCollageDetai[i].Position;

                                    myModels.SYS_Inventory.Add(sys_Inventory);//新增

                                }

                            }

                            myModels.SaveChanges();

                        }

                        var ReceptionID = listCollage[0].ReceptionID;

                        var listReception = (from tbReception in myModels.PW_Reception where tbReception.ReceptionID == ReceptionID select tbReception).Single();

                        listReception.CollageState = CollageState;

                        myModels.Entry(listReception).State = System.Data.Entity.EntityState.Modified;

                        myModels.SaveChanges();

                        listdelectID = oldID.Except(newID).ToList();//从某集合中删除其与另一个集合中相同的项;其实这个说简单点就是某集合中独有的元素(差集)

                        foreach (var item in listdelectID)

                        {

                            var listQuantity = myModels.SYS_CollageDetai.Where(m => m.CollageDetaiID == item).Select(m => new { m.Quantity, m.FittingsCode ,m.WarehouseID }).SingleOrDefault();

                            var FittingsCode = listQuantity.FittingsCode;

                            var WarehouseID = listQuantity.WarehouseID;

                            var Quantity = listQuantity.Quantity;

                            var listInventory = myModels.SYS_Inventory.Where(m => m.FittingsCode == FittingsCode && m.WarehouseID == WarehouseID).SingleOrDefault();//库存表

                            var listFittingsInfos = (from tbFittingsInfo in myModels.SYS_FittingsInfo where tbFittingsInfo.FittingsCode == FittingsCode select tbFittingsInfo).SingleOrDefault();//配件表

                            listInventory.InvenQuan = listInventory.InvenQuan + Quantity;

                            listFittingsInfos.InvenQuan = listFittingsInfos.InvenQuan + Quantity;

                            myModels.Entry(listInventory).State = System.Data.Entity.EntityState.Modified;//修改库存数量

                            myModels.Entry(listFittingsInfos).State = System.Data.Entity.EntityState.Modified;//修改配件数量

                            var listdelect = myModels.SYS_CollageDetai.Where(m => m.CollageDetaiID == item).Single();//删除

                            myModels.SYS_CollageDetai.Remove(listdelect);

                        }

                    }

                    else

                    {

                        var listdelect = myModels.SYS_CollageDetai.Where(m => m.CollageID == CollageID).ToList();//删除全部

                        myModels.SYS_CollageDetai.RemoveRange(listdelect);

                    }

                    myModels.SaveChanges();

                }

            }

            catch (Exception e)

            {

                return Json(false, JsonRequestBehavior.AllowGet);

            }

            return Json(list, JsonRequestBehavior.AllowGet);

        }

      1. 查询领料单据信息

        public ActionResult SelectCollage(BsgridPage bsgridPage)//查询领料单据信息

        {

            var lingItem = (from tbCollage in myModels.PW_Collage

                            join tbReception in myModels.PW_Reception on tbCollage.ReceptionID equals tbReception.ReceptionID

                            select new CollageVo

                            {

                                CollageID=tbCollage.CollageID,//领料ID

                                ReceptionID=tbReception.ReceptionID,

                                CarNum=tbReception.CarNum.Trim(),//车牌

                                Owner=tbReception.Owner.Trim(),//车主

                                MaintenanceNum=tbReception.MaintenanceNum.Trim(),

      1. //结算单号

                                CollageState = tbReception.CollageState.Trim() != "已退料" ? tbReception.CollageState.Trim() : "未领料",

                                ForeMan =tbCollage.ForeMan.Trim(),

      1. //领料员

                                Operator=tbCollage.Operator.Trim(),//操作人

                                Auditor=tbCollage.Auditor.Trim(),//审核人

                                Amount=tbCollage.Amount,//总金额

                                AuditDate=tbCollage.AuditDate.ToString(),//审核时间

                                CollageDate=tbCollage.CollageDate.ToString(),

      1. //领料时间

                                ToAudit=tbCollage.ToAudit,//审核否

                                Remark=tbCollage.Remark.Trim(),//备注

                            }).ToList();

            int count = lingItem.Count();

            List<CollageVo> listCollage = lingItem.OrderBy(m => m.ToAudit).Skip(bsgridPage.GetStartIndex()).Take(bsgridPage.pageSize).ToList();

            Bsgrid<CollageVo> bsgrid = new Bsgrid<CollageVo>()

            {

                success = true,

                totalRows = count,

                curPage = bsgridPage.curPage,

                data = listCollage

            };

            return Json(bsgrid, JsonRequestBehavior.AllowGet);

        }


http://www.ppmy.cn/server/133322.html

相关文章

区块链技术原理

1. 引言 区块链的定义 区块链是一种分布式账本技术&#xff08;Distributed Ledger Technology&#xff0c;DLT&#xff09;&#xff0c;其核心特征是通过密码学的方式将数据打包成一个个区块&#xff0c;按时间顺序依次相连&#xff0c;形成一个不可篡改、公开透明的链式数据…

数据结构-贪心算法笔记

前言&#xff1a;贪心无套路&#xff0c;狠狠刷就完事 分发饼干 455. 分发饼干 - 力扣&#xff08;LeetCode&#xff09; class Solution {/*** 找出最多有多少个孩子可以得到糖果。** param g 一个数组&#xff0c;表示每个孩子对糖果大小的满意度。* param s 一个数组&…

lua脚本使用cjson转换json时,空数组[]变成了空对象{}

一、前言 项目lua使用工具&#xff1a;cjson 问题&#xff1a;reids中部分数据的json key存在为[]的值&#xff0c;使用cjson进行解析的时候将原本空数组[]解析成了空对象{} 目标&#xff1a;原本[] 转 [] 二、解决方案 在使用cjson类库时&#xff0c;先配置json转换要求 -…

树莓派刷入OpenWrt后扩容overlay的方法

问题&#xff1a; 128G的SD卡刷入openwrt后发现可用空间不足100M&#xff08;我用的squashfs固件&#xff0c;ext4也存在同样的问题&#xff0c;但能否用此方法需要自己尝试一下&#xff09;。 rootOpenWrt:~# df -h Filesystem Size Used Available Use%…

【描述性统计分析】

文章目录 一、描述性统计分析简介1. 定义和目的2. 与推断统计的对比 二、关键统计量1. 集中趋势的度量1.1 均值&#xff08;Mean&#xff09;1.2 中位数&#xff08;Median&#xff09;1.3 众数&#xff08;Mode&#xff09; 2. 离散程度的度量2.1 方差&#xff08;Variance&am…

使用 JAX 进行 LLM 分布式监督微调

LLM distributed supervised fine-tuning with JAX — ROCm Blogs (amd.com) 24年1月25日&#xff0c;Douglas Jia 发布在AMD ROCm 博客上的文章。 在这篇文章中&#xff0c;我们回顾了使用 JAX 对基于双向编码器表示&#xff08;BERT&#xff09;的大型语言模型&#xff08;LL…

cs61a涉及图像转换的代码注释(Lecture01)

这段代码的主要作用是计算图像的单应性矩阵&#xff0c;并使用该矩阵对图像进行透视变换。具体来说&#xff0c;它的功能包括&#xff1a; 1. **单应性矩阵估计**&#xff1a; - 使用给定的四对对应点&#xff08;通常是从源图像和目标图像提取的特征点&#xff09;&#x…

linux的随机化处理

Linux的随机化处理&#xff08;或称为地址空间布局随机化&#xff0c;ASLR&#xff09;是一种安全特性&#xff0c;旨在提高系统对抗攻击的能力&#xff0c;尤其是缓冲区溢出和代码注入攻击。随机化处理通过改变进程在内存中的布局来减少攻击者利用漏洞的可能性。 随机化处理的…