CollageController

news2024/10/22 2:47:32

目录

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.coloradmin.cn/o/2219213.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL程序介绍<一>

目录 MySQL程序简介 mysqld - MySQL 服务器 ​编辑 mysql - MySQL 命令⾏客⼾端 MySQL程序简介 1.MySQL安装完成通常会包含如下程序&#xff1a; Linux系统程序⼀般在 /usr/bin⽬录下&#xff0c;可以通过命令查看 windows系统⽬录&#xff1a; 你的安装路径\MySQL Server…

Redis JSON介绍和命令大全

Redis JSON介绍和命令大全 Redis JSON先说说JSON是什么再说说JSON Path先推荐两个网站JSONPath JAVA clents Redis JSON 安装内存json命令语法命令url命令解释JSON.ARRAPPENDJSON.ARRINDEXJSON.ARRINSERTJSON.ARRLENJSON.ARRPOPJSON.ARRTRIMJSON.CLEARJSON.DEBUG MEMORYJSON.DE…

Java 入门基础篇15 - java构造方法以及认识新的关键字

一 今日目标 构造方法static关键字代码块math类package关键字import关键字 二 构造方法概述 2.1 构造方法描述 构造方法是一个特殊方法&#xff0c;作用是创建对象&#xff0c;对对象进行初始化。 ​ 如&#xff1a; 对对象中的成员进行初始化值 2.1 构造方法的特征 1、方…

C/C++每日一练:编写一个栈数据结构

通过编写栈&#xff08;Stack&#xff09;数据结构&#xff0c;提升对基本数据结构的理解和运用。这也是掌握更复杂数据结构与算法的基础。栈是计算机科学中的一个重要概念&#xff0c;经常出现在许多算法和应用中。 栈&#xff08;Stack&#xff09; 栈是一种后进先出&#x…

【初阶数据结构】计数排序 :感受非比较排序的魅力

文章目录 前言1. 什么是计数排序&#xff1f;2. 计数排序的算法思路2.1 绝对位置和相对位置2.2 根据计数数组的信息来确认 3. 计数排序的代码4. 算法分析5. 计数排序的优缺点6.计数排序的应用场景 前言 如果大家仔细思考的话&#xff0c;可能会发现这么一个问题。我们学的七大…

【C语言】原码 反码 补码

为什么要有原码 反码 补码的概念&#xff1f; 因为在计算机中最终只能识别机器码&#xff0c;是以 0000 0000 二进制作为表示形式&#xff0c;对于一个数&#xff0c;计算机要使用一定的编码方式进行存储&#xff0c;原码 反码 补码是机器存储一个数值的编码方式&#xff0c;最…

技术分享:A-23OH型树脂在汽车涂装废溶剂回收中的应用

在当今汽车制造业竞争激烈的环境下&#xff0c;提高生产效率、降低成本的同时&#xff0c;满足环保要求已成为各制造商追求的核心目标。水性涂料因其环保、节能等多重优势&#xff0c;在汽车涂装领域的应用日益广泛。然而&#xff0c;随之而来的喷涂废溶剂处理问题也日益凸显。…

2024年软件设计师中级(软考中级)详细笔记【7】面向对象技术(下)23种设计模式(分值10+)

目录 前言阅读前必看 第七章 面向对象技术&#xff08;下&#xff09;7.3 设计模式&#xff08;固定4分&#xff09;7.3.1 设计模式的要素7.3.2 创建型设计模式7.3.2.1 Abstract Factory&#xff08;抽象工厂&#xff09;7.3.2.2 Builder&#xff08;生成器&#xff09;7.3.2.3…

调整奇数偶数的顺序

//调整奇数偶数的顺序 //输入一个整数数组&#xff0c;实现一个函数 //使得数组中所有的奇数位于数组的前半部分&#xff0c;所有的偶数位于数组的后半部分 #include<stdio.h> void tz(int a[],int sz) {int i 0;int j 0;int q 0;int c[100] { 0 };int b[100] { 0 …

Qt第十三天:网络编程:TCP和UDP的使用

我发现了有些人喜欢静静看博客不聊天呐&#xff0c; 但是ta会点赞。 这样的人呢帅气低调有内涵&#xff0c; 美丽大方很优雅。 说的就是你&#xff0c; 不用再怀疑哦 ❤️TCP&#xff1a; 一、创建项目&#xff0c;命名为Server&#xff0c;继承QWidget 二、添加Qt设计师…

Axure重要元件三——中继器添加数据

亲爱的小伙伴&#xff0c;在您浏览之前&#xff0c;烦请关注一下&#xff0c;在此深表感谢&#xff01; 本节课&#xff1a;中继器添加数据 课程内容&#xff1a;添加数据项、自动添加序号、自动添加数据汇总 应用场景&#xff1a;表单数据的添加 案例展示&#xff1a; 步骤…

算法: 模拟题目练习

文章目录 模拟替换所有的问号提莫攻击Z 字形变换外观数列数青蛙 总结 模拟 替换所有的问号 按照题目的要求写代码即可~ public String modifyString(String ss) {int n ss.length();if (n 1) {return "a";}char[] s ss.toCharArray();for (int i 0; i < n; i…

【华为HCIP实战课程十三】OSPF网络中3类LSA及区域间负载均衡,网络工程师

一、ABR SW1查看OSPF ABR为R4而非R3,因为R4连接骨干区域0,R3没有连接到区域0 R6查看OSPF路由: 二、查看3类LSA,由于R6不是ABR因此自身不会产生3类LSA 但是有区域间路由就可以看到3类LSA

分布式介绍

CAP理论 CAP理论是分布式架构中提出来的一种设计思想模型&#xff0c;全称是由Consistency、Availability、Partition Tolerance三个词组成。 C(Consistency&#xff0c;一致性):总能读到最新的写操作的结果A(Availability&#xff0c;可用性):每个请求都要在合理的时间内给出…

Spring Boot知识管理:跨平台集成方案

4系统概要设计 4.1概述 本系统采用B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式&#xff0c;是一个适用于Internet环境下的模型结构。只要用户能连上Internet,便可以在任何时间、任何地点使用。系统工作原理图如图4-1所示&#xff1a; 图4-1系统工作原理…

后渗透利用之vcenter

目录 vcenter介绍环境搭建历史漏洞版本信息1、直接访问2、请求接⼝ 打点CVE_2021_21972漏洞描述&#xff1a;POC&#xff1a; 后渗透获取vCenter后台重置密码Cookie登录创建管理员 获取虚拟机Hash分析快照挂载磁盘 获取Esxi 后台获取解密key获取数据库账号密码查询Esxi加密密码…

ESP32-IDF 分区表

目录 一、基本介绍1、配置结构体1.1 esp_partition_t1.2 esp_partition_iterator_t 2、常用 API2.1 esp_partition_find2.2 esp_partition_find_first2.3 esp_partition_get2.4 esp_partition_next2.5 esp_partition_iterator_release2.6 esp_partition_verify2.7 esp_partitio…

使用WPF写一个简单的开关控件

<Window x:Class"WPF练习.MainWindow"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d"http://schemas.microsoft.com/expression/blend/2008"xm…

适用于 vue react Es6 jQuery 等等的组织架构图(组织结构图)

我这里找的是 OrgChart 插件; 地址: GitHub - dabeng/OrgChart: Its a simple and direct organization chart plugin. Anytime you want a tree-like chart, you can turn to OrgChart. 这里面能满足你对组织架构图的一切需求! ! ! 例: 按需加载 / 拖拽 / 编辑 / 自定义 / …

【玉米病害识别】Python+卷积神经网络算法+人工智能+深度学习+计算机课设项目+TensorFlow+模型训练

一、介绍 玉米病害识别系统&#xff0c;本系统使用Python作为主要开发语言&#xff0c;通过收集了8种常见的玉米叶部病害图片数据集&#xff08;‘矮花叶病’, ‘健康’, ‘灰斑病一般’, ‘灰斑病严重’, ‘锈病一般’, ‘锈病严重’, ‘叶斑病一般’, ‘叶斑病严重’&#x…