同步页面权限、业务功能、SQL脚本及项目文档

This commit is contained in:
Developer
2026-10-22 09:05:16 +08:00
parent ffac9fcc61
commit 9f64ad5c82
201 changed files with 343899 additions and 637 deletions

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,88 @@
// 生成2026年前未完成订单需求明细Excel,包含客户名称并排除已完成组件;修改人:Ld 修改时间:2026-07-24 11:30:36;
import fs from "node:fs/promises";
import path from "node:path";
import { SpreadsheetFile, Workbook } from "@oai/artifact-tool";
const outputDir = "D:/景耀/JY1.0/outputs/20260724_2026年前订单需求明细";
const sourcePath = "D:/景耀/JY1.0/库存查询_2026年前未完成订单需求明细.tsv";
const outputPath = path.join(outputDir, "2026年前未完成订单需求明细_排除已完成组件.xlsx");
function parseValue(value, columnIndex) {
if (columnIndex >= 6) {
const num = Number(value);
return Number.isFinite(num) ? num : 0;
}
return value;
}
const rawText = await fs.readFile(sourcePath, "utf16le");
const rows = rawText
.split(/\r?\n/)
.filter((line) => line.trim() !== "")
.filter((line, index) => index !== 1 || !/^[-\t]+$/.test(line.trim()))
.map((line, rowIndex) =>
line.split("\t").map((cell, colIndex) =>
rowIndex === 0 ? cell.trim() : parseValue(cell.trim(), colIndex),
),
);
const workbook = Workbook.create();
const sheet = workbook.worksheets.add("订单需求明细");
const rowCount = rows.length;
const colCount = rows[0].length;
sheet.getRangeByIndexes(0, 0, rowCount, colCount).values = rows;
sheet.freezePanes.freezeRows(1);
sheet.showGridLines = false;
const usedRange = sheet.getRangeByIndexes(0, 0, rowCount, colCount);
usedRange.format.font = { name: "Microsoft YaHei", size: 10 };
const headerRange = sheet.getRangeByIndexes(0, 0, 1, colCount);
headerRange.format = {
fill: "#1F4E78",
font: { bold: true, color: "#FFFFFF", name: "Microsoft YaHei", size: 10 },
};
sheet.getRangeByIndexes(1, 1, rowCount - 1, 1).format.numberFormat = "@";
sheet.getRangeByIndexes(1, 6, rowCount - 1, 3).format.numberFormat = "#,##0.0";
const widths = [18, 12, 30, 12, 28, 24, 10, 10, 12];
widths.forEach((width, index) => {
sheet.getRangeByIndexes(0, index, rowCount, 1).format.columnWidth = width;
});
const table = sheet.tables.add(`A1:I${rowCount}`, true, "Before2026DemandTable");
table.style = "TableStyleMedium2";
table.showFilterButton = true;
await fs.mkdir(outputDir, { recursive: true });
const inspect = await workbook.inspect({
kind: "table",
range: "订单需求明细!A1:I8",
include: "values,formulas",
tableMaxRows: 8,
tableMaxCols: 9,
});
console.log(inspect.ndjson);
const errors = await workbook.inspect({
kind: "match",
searchTerm: "#REF!|#DIV/0!|#VALUE!|#NAME\\?|#N/A",
options: { useRegex: true, maxResults: 50 },
summary: "final formula error scan",
});
console.log(errors.ndjson);
const preview = await workbook.render({
sheetName: "订单需求明细",
range: "A1:I20",
scale: 1,
format: "png",
});
await fs.writeFile(path.join(outputDir, "preview.png"), new Uint8Array(await preview.arrayBuffer()));
const output = await SpreadsheetFile.exportXlsx(workbook);
await output.save(outputPath);
console.log(`saved ${outputPath}`);

Binary file not shown.

After

Width:  |  Height:  |  Size: 156 KiB

Binary file not shown.

View File

@@ -0,0 +1,341 @@
CREATE PROCEDURE [dbo].[PDM_组件名称_确认更改新]
@项目流水号 int = '17412',
@机床流水号 int = '17448',
@修改人 int = '5',
@合同备注 nvarchar(200)=null
AS
declare @合同类型 int
declare @订单流水号 int
declare @组件流水号 int
declare @产品流水号 int
declare @机床流水号游标 int
declare @产品名称 nvarchar(200) = null
declare @数量 float = null
declare @单位 nvarchar(50) = null
declare @单价 float = null
declare @产品详情 nvarchar(500) = null
declare @产品位置 nvarchar(50) = null
declare @是否可选 int
declare @物料流水号 int
declare @是否滑台 int
declare @是否分配 int
declare @是否接收 int
declare @顺序 int
declare @组件流水号临时 int
declare @产品流水号临时 int
declare @机床流水号游标临时 int
declare @产品名称临时 nvarchar(200) = null
declare @数量临时 float = null
declare @配置数临时 float = null
declare @单位临时 nvarchar(50) = null
declare @单价临时 float = null
declare @产品详情临时 nvarchar(500) = null
declare @产品位置临时 nvarchar(50) = null
declare @是否可选临时 int
declare @物料流水号临时 int
declare @是否滑台临时 int
declare @顺序临时 int
select @合同类型=合同类型 from PDM_项目名称 where 项目流水号=@项目流水号
select @订单流水号=订单流水号 from 合同管理_订单信息_基础表 where 项目流水号=@项目流水号
declare @改前数量 int
select top 1 @组件流水号 = 组件流水号 from PDM_组件名称_修改记录_临时表 where PDM_组件名称_修改记录_临时表.机床流水号 = @机床流水号
select @改前数量 = count(1) from PDM_组件名称 where 组件流水号 = @组件流水号
declare @项目修改记录流水号 int
insert into PDM_项目名称_修改记录(项目流水号,修改人,合同备注)values(@项目流水号,@修改人,@合同备注)
set @项目修改记录流水号 = @@IDENTITY
if @合同类型 = 2
begin
insert into PDM_机床名称_修改记录(项目修改记录流水号,机床流水号,机床名称,数量,单位,单价,详情)
select @项目修改记录流水号,机床流水号,机床名称,数量,单位,单价,详情 from PDM_机床名称 where 项目流水号=@项目流水号
update PDM_机床名称 set PDM_机床名称.机床名称=a.机床名称,PDM_机床名称.数量=a.数量,PDM_机床名称.单位=a.单位,
PDM_机床名称.单价=a.单价,PDM_机床名称.详情=a.详情 from PDM_机床名称_修改记录_临时表 as a where PDM_机床名称.机床流水号=a.机床流水号
declare @机床数 int
select @机床数 = 数量 from PDM_机床名称_修改记录_临时表 where 机床流水号 = @机床流水号
update PDM_组件名称_修改记录_临时表 set 数量 = 配置数 * @机床数 where 机床流水号 = @机床流水号
-- 然后删除机床
--DELETE FROM PDM_机床名称
--WHERE 项目流水号 = @项目流水号
-- AND 机床流水号 NOT IN (SELECT 机床流水号 FROM PDM_机床名称_修改记录_临时表 WHERE 项目流水号 = @项目流水号)
-- 由于考虑到专机合同删除问题 实际删除临时表放到后面
-- 修改人:Ld 修改时间:2026-07-23 允许合同修改时删除未领料机床,已领料机床保留,避免误删已领料数据
IF EXISTS (SELECT 1 FROM PDM_机床名称_修改记录_临时表 WHERE 项目流水号 = @项目流水号)
BEGIN
DELETE r FROM 车间装配管理_装配任务 r
INNER JOIN PDM_组件名称 c ON c.组件流水号 = r.组件流水号
INNER JOIN PDM_机床名称 m ON m.机床流水号 = c.机床流水号
WHERE m.项目流水号 = @项目流水号
AND NOT EXISTS (SELECT 1 FROM PDM_机床名称_修改记录_临时表 t WHERE t.项目流水号 = @项目流水号 AND t.机床流水号 = m.机床流水号)
AND NOT EXISTS (SELECT 1 FROM PDM_组件名称 c2 WHERE c2.机床流水号 = m.机床流水号 AND ISNULL(c2.是否领料, 0) <> 0)
DELETE r FROM 车间装配管理_装配执行_临时领料明细 r
INNER JOIN PDM_组件名称 c ON c.组件流水号 = r.组件流水号
INNER JOIN PDM_机床名称 m ON m.机床流水号 = c.机床流水号
WHERE m.项目流水号 = @项目流水号
AND NOT EXISTS (SELECT 1 FROM PDM_机床名称_修改记录_临时表 t WHERE t.项目流水号 = @项目流水号 AND t.机床流水号 = m.机床流水号)
AND NOT EXISTS (SELECT 1 FROM PDM_组件名称 c2 WHERE c2.机床流水号 = m.机床流水号 AND ISNULL(c2.是否领料, 0) <> 0)
DELETE r FROM 车间装配管理_领料单明细 r
INNER JOIN PDM_组件名称 c ON c.组件流水号 = r.组件流水号
INNER JOIN PDM_机床名称 m ON m.机床流水号 = c.机床流水号
WHERE m.项目流水号 = @项目流水号
AND NOT EXISTS (SELECT 1 FROM PDM_机床名称_修改记录_临时表 t WHERE t.项目流水号 = @项目流水号 AND t.机床流水号 = m.机床流水号)
AND NOT EXISTS (SELECT 1 FROM PDM_组件名称 c2 WHERE c2.机床流水号 = m.机床流水号 AND ISNULL(c2.是否领料, 0) <> 0)
DELETE r FROM 车间装配管理_领料单 r
INNER JOIN PDM_组件名称 c ON c.组件流水号 = r.组件流水号
INNER JOIN PDM_机床名称 m ON m.机床流水号 = c.机床流水号
WHERE m.项目流水号 = @项目流水号
AND NOT EXISTS (SELECT 1 FROM PDM_机床名称_修改记录_临时表 t WHERE t.项目流水号 = @项目流水号 AND t.机床流水号 = m.机床流水号)
AND NOT EXISTS (SELECT 1 FROM PDM_组件名称 c2 WHERE c2.机床流水号 = m.机床流水号 AND ISNULL(c2.是否领料, 0) <> 0)
DELETE r FROM PDM_零件明细表_基本件 r
INNER JOIN PDM_组件名称 c ON c.组件流水号 = r.组件流水号
INNER JOIN PDM_机床名称 m ON m.机床流水号 = c.机床流水号
WHERE m.项目流水号 = @项目流水号
AND NOT EXISTS (SELECT 1 FROM PDM_机床名称_修改记录_临时表 t WHERE t.项目流水号 = @项目流水号 AND t.机床流水号 = m.机床流水号)
AND NOT EXISTS (SELECT 1 FROM PDM_组件名称 c2 WHERE c2.机床流水号 = m.机床流水号 AND ISNULL(c2.是否领料, 0) <> 0)
DELETE r FROM PDM_零件明细表_标准件和外购件 r
INNER JOIN PDM_组件名称 c ON c.组件流水号 = r.组件流水号
INNER JOIN PDM_机床名称 m ON m.机床流水号 = c.机床流水号
WHERE m.项目流水号 = @项目流水号
AND NOT EXISTS (SELECT 1 FROM PDM_机床名称_修改记录_临时表 t WHERE t.项目流水号 = @项目流水号 AND t.机床流水号 = m.机床流水号)
AND NOT EXISTS (SELECT 1 FROM PDM_组件名称 c2 WHERE c2.机床流水号 = m.机床流水号 AND ISNULL(c2.是否领料, 0) <> 0)
DELETE c FROM PDM_组件名称 c
INNER JOIN PDM_机床名称 m ON m.机床流水号 = c.机床流水号
WHERE m.项目流水号 = @项目流水号
AND NOT EXISTS (SELECT 1 FROM PDM_机床名称_修改记录_临时表 t WHERE t.项目流水号 = @项目流水号 AND t.机床流水号 = m.机床流水号)
AND NOT EXISTS (SELECT 1 FROM PDM_组件名称 c2 WHERE c2.机床流水号 = m.机床流水号 AND ISNULL(c2.是否领料, 0) <> 0)
DELETE m FROM PDM_机床名称 m
WHERE m.项目流水号 = @项目流水号
AND NOT EXISTS (SELECT 1 FROM PDM_机床名称_修改记录_临时表 t WHERE t.项目流水号 = @项目流水号 AND t.机床流水号 = m.机床流水号)
AND NOT EXISTS (SELECT 1 FROM PDM_组件名称 c WHERE c.机床流水号 = m.机床流水号 AND ISNULL(c.是否领料, 0) <> 0)
END
delete from PDM_机床名称_修改记录_临时表 where 项目流水号 = @项目流水号
end
insert into PDM_组件名称_修改记录(项目修改记录流水号,组件流水号,产品流水号,机床流水号,产品名称,数量,单位,单价,产品详情)
select @项目修改记录流水号,组件流水号,产品流水号,机床流水号,产品名称,数量,单位,单价,产品详情 from PDM_组件名称 where 机床流水号=@机床流水号 and 是否合同创建 = 1 and 已删= 0
declare @orderN int--临时变量,用来保存游标值
declare y_curr cursor for --申明游标 为orderNum
select 组件流水号 from PDM_组件名称_修改记录_临时表 where PDM_组件名称_修改记录_临时表.机床流水号 = @机床流水号
open y_curr --打开游标
fetch next from y_curr into @orderN ----开始循环游标变量
while(@@fetch_status=0)---返回被 FETCH 语句执行的最后游标的状态,而不是任何当前被连接打开的游标的状态。
begin
select @产品流水号临时=ISNULL([PDM_组件名称_修改记录_临时表].产品流水号,0),
@机床流水号游标临时 =[PDM_组件名称_修改记录_临时表].机床流水号,
@产品名称临时=[PDM_组件名称_修改记录_临时表].产品名称,
@数量临时=[PDM_组件名称_修改记录_临时表].数量,
@配置数临时=[PDM_组件名称_修改记录_临时表].配置数,
@单位临时=[PDM_组件名称_修改记录_临时表].单位,
@单价临时=[PDM_组件名称_修改记录_临时表].单价,
@产品详情临时=[PDM_组件名称_修改记录_临时表].产品详情,
@产品位置临时=[PDM_组件名称_修改记录_临时表].产品位置,
@是否可选临时=[PDM_组件名称_修改记录_临时表].是否可选,
@物料流水号临时=ISNULL( [PDM_组件名称_修改记录_临时表].物料流水号,0),
@是否滑台临时=ISNULL( 产品信息_基础表.是否滑台,0 ),
@顺序临时=[PDM_组件名称_修改记录_临时表].顺序
from [dbo].[PDM_组件名称_修改记录_临时表] LEFT JOIN 产品信息_基础表
ON 产品信息_基础表.产品流水号 = [PDM_组件名称_修改记录_临时表].产品流水号 where 组件流水号 = @orderN
select @产品流水号=ISNULL( PDM_组件名称.产品流水号,0),
@机床流水号游标 =PDM_组件名称.机床流水号,
@产品名称=PDM_组件名称.产品名称,
@数量=PDM_组件名称.数量,
@是否分配=PDM_组件名称.是否分配,
@是否接收 = 是否接收,
--@单位=PDM_组件名称.单位,
--@产品详情=PDM_组件名称.产品详情,
--@产品位置=PDM_组件名称.产品位置,
--@是否可选=PDM_组件名称.是否可选,
@物料流水号=ISNULL( PDM_组件名称.物料流水号,0),
@是否滑台=ISNULL( 产品信息_基础表.是否滑台,0)
from [dbo].PDM_组件名称 LEFT JOIN 产品信息_基础表
ON 产品信息_基础表.产品流水号 = PDM_组件名称.产品流水号 where 组件流水号 = @orderN
if @产品流水号临时 <> @产品流水号
begin
update dbo.PDM_组件名称 set 修改状态 = 2,是否分配 = 0 where 组件流水号 = @orderN
delete from 车间装配管理_领料单明细 where 组件流水号 = @orderN
delete from 车间装配管理_领料单 where 组件流水号 = @orderN
delete from 车间装配管理_装配执行_临时领料明细 where 组件流水号=@orderN
delete from PDM_零件明细表_基本件 where 组件流水号 = @orderN
delete from PDM_零件明细表_基本件_数据导入保存 where 订单流水号 = @订单流水号 and 产品名称 = @产品名称
delete from PDM_零件明细表_标准件和外购件 where 组件流水号 = @orderN
delete from PDM_零件明细表_外购件和标准件_数据导入保存 where 订单流水号 = @订单流水号 and 产品名称 = @产品名称
end
else
begin
-- 只有数量发生改动 才会修改 是否分配状态
--update dbo.PDM_组件名称 set 修改状态 = 1,是否分配 = 0 where 组件流水号 = @orderN
update dbo.PDM_组件名称 set 修改状态 = 1 where 组件流水号 = @orderN
if @数量临时 <> @数量 and @是否分配 = 1
begin
if @数量临时 <> @数量 and @是否分配 = 1
begin
declare @零件数量改前 int
declare @零件数量改后 int
SELECT @零件数量改前 = 零件数量 FROM PDM_零件明细表_基本件 where 组件流水号 = @orderN
SET @零件数量改后 = @零件数量改前/@数量 * @数量临时
IF(@零件数量改前 != @零件数量改后)
begin
update PDM_零件明细表_基本件 set 零件数量 = 零件数量/@数量 * @数量临时 where 组件流水号 = @orderN
update PDM_零件明细表_标准件和外购件 set 零件数量 = 零件数量/@数量 * @数量临时 where 组件流水号 = @orderN
-- 只有修改数量才将合同打回至 订单分配界面 重新分配 且有物料待分配
update PDM_组件名称 SET 是否分配 = 0 where 组件流水号 = @orderN
update 合同管理_订单信息_基础表 set 是否下达 = 0,是否提交=1 where 项目流水号=@项目流水号
end
end
end
end
if (
((@是否滑台临时 = 2 or @是否滑台临时 =4) and @物料流水号临时 = 0 and @产品流水号临时 <> 0 and (@是否滑台 = 2 or @是否滑台 =4) and @物料流水号 = 0 and @产品流水号 <> 0)
OR ((@是否滑台临时 = 1 or @是否滑台临时 =3) and @物料流水号临时 = 0 and @产品流水号临时 <> 0 and (@是否滑台 = 1 or @是否滑台 =3) and @物料流水号 = 0 and @产品流水号 <> 0)
OR (@是否滑台临时 = 0 and @物料流水号临时 = 0 and @产品流水号临时 = 0 and @是否滑台 = 0 and @物料流水号 = 0 and @产品流水号 = 0)
OR (@是否滑台临时 = 0 and @物料流水号临时 <> 0 and @产品流水号临时 = 0 and @是否滑台 = 0 and @物料流水号 <> 0 and @产品流水号 = 0)
OR (@是否滑台临时 = 0 and @物料流水号临时 = 0 and @产品流水号临时 <> 0 and @是否滑台 = 0 and @物料流水号 = 0 and @产品流水号 <> 0)
OR (@是否滑台临时 = 5 and @物料流水号临时 = 0 and @产品流水号临时 <> 0 and @是否滑台 = 5 and @物料流水号 = 0 and @产品流水号 <> 0)
)
begin
update PDM_组件名称 set PDM_组件名称.产品流水号=@产品流水号临时,
PDM_组件名称.产品名称=@产品名称临时,
PDM_组件名称.数量=@数量临时,
PDM_组件名称.配置数=@配置数临时,
PDM_组件名称.单位=@单位临时,
PDM_组件名称.单价=@单价临时,
PDM_组件名称.产品详情=@产品详情临时,
PDM_组件名称.产品位置=@产品位置临时,
PDM_组件名称.物料流水号=@物料流水号临时,
顺序 = @顺序临时
where PDM_组件名称.组件流水号 = @orderN
END
ELSE
begin
-- 先判断是否接收,如果接收过的就不修改它的状态到未下达 如果没接受过 零部件物料变为 未分配状态 订单也需要同步未分配
--if(@是否接收 = 1)
--begin
--update PDM_组件名称 set PDM_组件名称.产品流水号=@产品流水号临时,
-- PDM_组件名称.产品名称=@产品名称临时,
-- PDM_组件名称.数量=@数量临时,
-- PDM_组件名称.配置数=@配置数临时,
-- PDM_组件名称.单位=@单位临时,
-- PDM_组件名称.单价=@单价临时,
-- PDM_组件名称.产品详情=@产品详情临时,
-- PDM_组件名称.产品位置=@产品位置临时,
-- PDM_组件名称.物料流水号=@物料流水号临时,[电机联接板文本]=NULL,[联轴器文本]=NULL,
-- 轴承位置=NULL,轴承位置文本=NULL,安装方向=NULL,电机位置=NULL,电机位置文本=NULL,
-- 传动方式位置=NULL,传动方式位置文本=NULL,
-- [滑台电机位置]=NULL, [滑台电机文本]=NULL, 主轴轮=NULL,电机轮=NULL,皮带轮=NULL,其它=NULL,输出转速=NULL,
-- 中心内冷=NULL,防护类型=NULL,电机联接板=NULL,联轴器=NULL,组件采购=0,
-- 组件仓库=0,组件动力头=0,组件滑台=0,组件精工车间=0,组件专机=0,是否分配=0,是否接收=0,是否领料=0,装配进度=0,产品状态=0, 顺序 = @顺序临时
-- where PDM_组件名称.组件流水号 = @orderN
--end
--else
--begin
update PDM_组件名称 set PDM_组件名称.产品流水号=@产品流水号临时,
PDM_组件名称.产品名称=@产品名称临时,
PDM_组件名称.数量=@数量临时,
PDM_组件名称.配置数=@配置数临时,
PDM_组件名称.单位=@单位临时,
PDM_组件名称.单价=@单价临时,
PDM_组件名称.产品详情=@产品详情临时,
PDM_组件名称.产品位置=@产品位置临时,
PDM_组件名称.物料流水号=@物料流水号临时,[电机联接板文本]=NULL,[联轴器文本]=NULL,
轴承位置=NULL,轴承位置文本=NULL,安装方向=NULL,电机位置=NULL,电机位置文本=NULL,
传动方式位置=NULL,传动方式位置文本=NULL,
[滑台电机位置]=NULL, [滑台电机文本]=NULL, 主轴轮=NULL,电机轮=NULL,皮带轮=NULL,其它=NULL,输出转速=NULL,
中心内冷=NULL,防护类型=NULL,电机联接板=NULL,联轴器=NULL,组件采购=0,
组件仓库=0,组件动力头=0,组件滑台=0,组件精工车间=0,组件专机=0,是否分配=0,是否接收=0,是否领料=0,装配进度=0,产品状态=0, 顺序 = @顺序临时
where PDM_组件名称.组件流水号 = @orderN
update 合同管理_订单信息_基础表 set 是否下达 = 0,是否提交=1 where 项目流水号=@项目流水号
--end
END
--end
fetch next from y_curr into @orderN --开始循环游标变量
end
close y_curr--关闭游标
deallocate y_curr --释放游标
--update PDM_组件名称 set PDM_组件名称.产品流水号=a.产品流水号,PDM_组件名称.产品名称=a.产品名称,PDM_组件名称.数量=a.数量,PDM_组件名称.单位=a.单位,
--PDM_组件名称.单价=a.单价,PDM_组件名称.产品详情=a.产品详情,PDM_组件名称.物料流水号=a.物料流水号,轴承位置=NULL,轴承位置文本=NULL,安装方向=NULL,电机位置=NULL,电机位置文本=NULL,传动方式位置=NULL,传动方式位置文本=NULL,
--主轴轮=NULL,电机轮=NULL,皮带轮=NULL,其它=NULL,输出转速=NULL,中心内冷=NULL,防护类型=NULL,电机联接板=NULL,联轴器=NULL,组件采购=0,组件仓库=0,组件动力头=0,组件滑台=0,组件精工车间=0,
--组件专机=0,是否分配=0,是否接收=0,是否领料=0,装配进度=0,产品状态=0 from PDM_组件名称_修改记录_临时表 as a
--where PDM_组件名称.组件流水号=a.组件流水号 and PDM_组件名称.机床流水号 = @机床流水号
delete from 车间装配管理_装配任务 where 组件流水号 in (select 组件流水号 from PDM_组件名称 where 组件流水号 not in (select 组件流水号 from PDM_组件名称_修改记录_临时表 where 机床流水号=@机床流水号 and 组件流水号 is not null) and 机床流水号=@机床流水号 and 是否合同创建 = 1 and 产品状态 = 0)
delete from 车间装配管理_装配执行_临时领料明细 where 组件流水号 in (select 组件流水号 from PDM_组件名称 where 组件流水号 not in (select 组件流水号 from PDM_组件名称_修改记录_临时表 where 机床流水号=@机床流水号 and 组件流水号 is not null) and 机床流水号=@机床流水号 and 是否合同创建 = 1 and 产品状态 = 0)
delete from 车间装配管理_领料单明细 where 组件流水号 in (select 组件流水号 from PDM_组件名称 where 组件流水号 not in (select 组件流水号 from PDM_组件名称_修改记录_临时表 where 机床流水号=@机床流水号 and 组件流水号 is not null) and 机床流水号=@机床流水号 and 是否合同创建 = 1 and 产品状态 = 0)
delete from 车间装配管理_领料单 where 组件流水号 in (select 组件流水号 from PDM_组件名称 where 组件流水号 not in (select 组件流水号 from PDM_组件名称_修改记录_临时表 where 机床流水号=@机床流水号 and 组件流水号 is not null) and 机床流水号=@机床流水号 and 是否合同创建 = 1 and 产品状态 = 0)
delete from PDM_零件明细表_基本件 where 组件流水号 in (select 组件流水号 from PDM_组件名称 where 组件流水号 not in (select 组件流水号 from PDM_组件名称_修改记录_临时表 where 机床流水号=@机床流水号 and 组件流水号 is not null) and 机床流水号=@机床流水号 and 是否合同创建 = 1 and 产品状态 = 0)
delete from PDM_零件明细表_基本件_数据导入保存 where 订单流水号 = @订单流水号 and 产品名称 not in (select 产品名称 from PDM_组件名称_修改记录_临时表 where 机床流水号=@机床流水号 and 组件流水号 is not null)
delete from PDM_零件明细表_标准件和外购件 where 组件流水号 in (select 组件流水号 from PDM_组件名称 where 组件流水号 not in (select 组件流水号 from PDM_组件名称_修改记录_临时表 where 机床流水号=@机床流水号 and 组件流水号 is not null) and 机床流水号=@机床流水号 and 是否合同创建 = 1 and 产品状态 = 0)
delete from PDM_零件明细表_外购件和标准件_数据导入保存 where 订单流水号 = @订单流水号 and 产品名称 not in (select 产品名称 from PDM_组件名称_修改记录_临时表 where 机床流水号=@机床流水号 and 组件流水号 is not null)
delete from PDM_组件名称 where 组件流水号 not in (select 组件流水号 from PDM_组件名称_修改记录_临时表 where 机床流水号=@机床流水号 and 组件流水号 is not null) and 机床流水号=@机床流水号 and 是否合同创建 = 1 and 产品状态 = 0
update PDM_组件名称 set 已删 = 1 where 组件流水号 not in (select 组件流水号 from PDM_组件名称_修改记录_临时表 where 机床流水号=@机床流水号 and 组件流水号 is not null) and 机床流水号=@机床流水号 and 是否合同创建 = 1 and 产品状态 > 0
insert into PDM_组件名称(产品流水号,机床流水号,产品名称,产品详情,单位,单价,数量,是否合同创建,产品位置,是否可选,物料流水号,配置数,顺序)
select 产品流水号,机床流水号,产品名称,产品详情,单位,单价,数量,1,产品位置,是否可选,物料流水号,配置数,顺序 from PDM_组件名称_修改记录_临时表 where 机床流水号=@机床流水号 and 组件流水号 is null
-- 如果有 insert into 就将这个订单改为未下发 增加时将订单整体打回未下发
if(select count(1) from PDM_组件名称_修改记录_临时表 where 机床流水号=@机床流水号 and 组件流水号 is null) > 0
begin
update 合同管理_订单信息_基础表 set 是否下达 = 0,是否提交=1 where 项目流水号=@项目流水号
end
-- 不在最后判断,在前面如果在游标遍历中 数量改变了才重置是否下达
--declare @n int
--select @n=COUNT(*) from PDM_组件名称_修改记录_临时表 where 机床流水号=@机床流水号 and 组件流水号 is null
--if @n > 0
--begin
-- update 合同管理_订单信息_基础表 set 是否下达 = 0,是否提交=1 where 项目流水号=@项目流水号
--end
declare @n int
select @n=COUNT(*) from PDM_组件名称_修改记录_临时表 where 组件流水号 = @组件流水号--机床流水号=@机床流水号 --and 组件流水号 is null
if @n > @改前数量 -- 新增了物料
begin
update 合同管理_订单信息_基础表 set 是否下达 = 0,是否提交=1 where 项目流水号=@项目流水号
end
declare @金额 float
if @合同类型 = 2
begin
select @金额=SUM(ISNULL(单价,0)*ISNULL(数量,0)) from PDM_机床名称 where 项目流水号 = @项目流水号
update PDM_项目名称 set 合同金额 = @金额,合同备注=@合同备注 where 项目流水号=@项目流水号
end
else
begin
select @金额=SUM(ISNULL(单价,0)*ISNULL(数量,0)) from PDM_组件名称 where 机床流水号 = @机床流水号 and 已删 = 0
update PDM_项目名称 set 合同金额 = @金额,合同备注=@合同备注 where 项目流水号=@项目流水号
end
delete from PDM_组件名称_修改记录_临时表 where 机床流水号 = @机床流水号
update 合同管理_订单信息_基础表 set 确认日期 = NULL,是否确认=0,技术审核=1 where 项目流水号=@项目流水号

View File

@@ -0,0 +1,107 @@
CREATE PROCEDURE [dbo].[物料管理_查询数据_分页]
@物料名称_check bit = null,
@物料名称 nvarchar(50) = null,
@物料编码_check bit = null,
@物料编码 nvarchar(50) = null,
@图号_check bit = null,
@图号 nvarchar(50) = null,
@类型_check bit = null,
@类型 int = null,
@时间_check bit = null,
@开始时间 nvarchar(50) = null,
@结束时间 nvarchar(50) = null,
@排序名称 int =null,
@排序方式 int =null,
@物料库_check bit = null,
@物料库 int = null,
@PageCurrent int=1, --要显示的页码
@PageSize int = 20, --每页的大小(记录数)
@PageCount int = '1111' OUTPUT, --总页数
@ItemCount int = '1111' OUTPUT --数据总数
AS
declare @selectStrWhere nvarchar(4000)
set @selectStrWhere = '是否禁用=0 '
--if(@物料名称_check = 1)
-- set @selectStrWhere = @selectStrWhere+' and 名称 like + ''%'' + @物料名称 + ''%'' '
--if(@时间_check = 1)
-- set @selectStrWhere = @selectStrWhere+' and 修改日期 >=@开始时间 and 修改日期 <=@结束时间 '
--if(@图号_check = 1)
-- set @selectStrWhere = @selectStrWhere+' and 代号 like + ''%'' + @图号 + ''%'' '
--if(@类型_check = 1)
-- set @selectStrWhere = @selectStrWhere+' and 类型 = @类型 '
if (@物料名称_check = 1)
if(@物料名称 is not null)
set @selectStrWhere = @selectStrWhere+' and 名称 like '+N'''%'+@物料名称+N'%'''
if (@物料编码_check = 1)
if(@物料编码 is not null)
set @selectStrWhere = @selectStrWhere+' and 物料编码 like '+N'''%'+@物料编码+N'%'''
if (@时间_check = 1)
if(@开始时间 is not null and @结束时间 is not null)
set @selectStrWhere = @selectStrWhere+' and ' + N''''+@开始时间+N'''' + '<=修改日期' + ' and '+ N''''+@结束时间+N'''' + '>=修改日期'
if (@图号_check = 1)
if(@图号 is not null)
set @selectStrWhere = @selectStrWhere+' and 代号 like '+N'''%'+@图号+N'%'''
if (@类型_check = 1)
if(@类型 is not null)
set @selectStrWhere = @selectStrWhere+' and 类型 = '+str(@类型)
---if (@物料库_check = 1)
-- if(@物料库 is not null)
-- set @selectStrWhere = @selectStrWhere+' and 物料库流水号 = '+ str(@物料库)
declare @tbname sysname --要分页显示的表名
declare @fieldkey sysname --用于定位记录的主键(惟一键)字段,只能是单个字段
declare @where nvarchar(4000) --查询条件
declare @fieldshow nvarchar(1000) --以逗号分隔的要显示的字段列表,如果不指定,则显示所有字段
declare @fieldOrder nvarchar(1000) ----以逗号分隔的排序字段列表,可以指定在字段后面指定DESC/ASC --用于指定排序顺序
set @tbname = '物料视图'
set @fieldkey = '物料流水号'
set @where = @selectStrWhere
set @fieldshow =' [代号], [修改人], [修改日期], [单位], [单位流水号],[名称], [库位], [货位流水号], [操作日期],[文件内容],[文件后缀], [物料类型],[物料库流水号],
[是否启用], [是否禁用], [材料], [材料流水号],
[物料流水号], [物料编码], [类型], [类型名称], [物料说明],[规格],[曾用物料编码],[Expr1]'
if @排序名称 = 1
begin
if @排序方式 = 1
begin
set @fieldOrder ='名称 DESC'
end
else
begin
set @fieldOrder = '名称 ASC'
end
end
else if @排序名称 = 2
begin
if @排序方式 = 1
begin
set @fieldOrder = '代号 DESC'
end
else
begin
set @fieldOrder = '代号 ASC'
end
end
else
begin
set @fieldOrder = '操作日期 DESC'
end
exec sp_xt_pagesplit @tbname,@fieldkey,@where,@fieldshow,@fieldOrder,'',@PageCurrent,@PageSize,@PageCount out,@ItemCount out

View File

@@ -0,0 +1,206 @@
// 修改人:Ld 修改时间:2026-09-17 11:20:00; 生成正式库本月订单与所属合同关联明细 Excel。
import fs from "node:fs/promises";
import path from "node:path";
import { SpreadsheetFile, Workbook } from "@oai/artifact-tool";
const outputDir = path.resolve("outputs/order_contract_links_202609");
const jsonPath = path.join(outputDir, "order_contract_links_202609.json");
const summaryPath = path.join(outputDir, "extract_summary.json");
const outputPath = path.join(outputDir, "正式库订单关联合同明细_2026-09.xlsx");
const rows = JSON.parse(await fs.readFile(jsonPath, "utf8"));
const extractSummary = JSON.parse(await fs.readFile(summaryPath, "utf8"));
const workbook = Workbook.create();
const summarySheet = workbook.worksheets.add("汇总");
const detailSheet = workbook.worksheets.add("明细");
summarySheet.tabColor = "#1F4E78";
detailSheet.tabColor = "#5B9BD5";
summarySheet.showGridLines = false;
detailSheet.showGridLines = false;
const headers = [
"订单流水号",
"订单编号",
"订单类型",
"订单类型名称",
"补货类型",
"项目流水号",
"所属合同编号",
"所属合同类型",
"所属合同类型名称",
"关联类型",
"是否已关联合同",
"下单日期",
"下单人",
"客户名称",
"收货人员",
"合同经手人",
"合同签订日期",
"合同交货日期",
"审核期限",
"通用装配期限",
"采购期限",
"精工期限",
"专机装配期限",
"订单备注",
"合同备注",
"合同状态",
"订单状态",
"下达部门",
];
const detailValues = [
headers,
...rows.map((row) => headers.map((header) => row[header] ?? "")),
];
detailSheet.getRangeByIndexes(0, 0, detailValues.length, headers.length).values = detailValues;
const detailRange = detailSheet.getRangeByIndexes(0, 0, detailValues.length, headers.length);
detailRange.format.font = { name: "Arial", size: 10, color: "#1F2937" };
detailSheet.getRangeByIndexes(0, 0, 1, headers.length).format = {
fill: "#1F4E78",
font: { name: "Arial", size: 10, bold: true, color: "#FFFFFF" },
};
detailSheet.getRangeByIndexes(0, 0, detailValues.length, headers.length).format.borders = {
preset: "all",
style: "thin",
color: "#D9E2F3",
};
detailSheet.freezePanes.freezeRows(1);
detailSheet.freezePanes.freezeColumns(2);
detailSheet.getRange("A:A").format.numberFormat = "0";
detailSheet.getRange("C:C").format.numberFormat = "0";
detailSheet.getRange("F:F").format.numberFormat = "0";
detailSheet.getRange("H:H").format.numberFormat = "0";
detailSheet.getRange("L:L").format.numberFormat = "yyyy-mm-dd hh:mm";
detailSheet.getRange("Q:W").format.numberFormat = "yyyy-mm-dd";
detailSheet.getRange("N:N").format.columnWidth = 24;
detailSheet.getRange("X:Y").format.columnWidth = 34;
detailSheet.getRange("A:AB").format.autofitColumns();
detailSheet.getRange("A1:AB1").format.verticalAlignment = "center";
detailSheet.getRange("A1:AB1").format.wrapText = true;
detailSheet.getRange("A:AB").format.verticalAlignment = "center";
detailSheet.tables.add(`A1:AB${Math.max(detailValues.length, 2)}`, true, "OrderContractLinks");
const total = rows.length;
const linked = rows.filter((row) => row["是否已关联合同"] === "是").length;
const missing = total - linked;
const replenishment = rows.filter((row) => Number(row["订单类型"]) === 3).length;
const linkedReplenishment = rows.filter((row) => row["关联类型"] === "补货挂销售合同").length;
const independentReplenishment = rows.filter((row) => row["关联类型"] === "补货独立合同").length;
const typeCounts = new Map();
const relationCounts = new Map();
for (const row of rows) {
const typeName = row["订单类型名称"] || "未定义";
typeCounts.set(typeName, (typeCounts.get(typeName) || 0) + 1);
const relation = row["关联类型"] || "未定义";
relationCounts.set(relation, (relationCounts.get(relation) || 0) + 1);
}
summarySheet.getRange("B2").values = [["正式库订单关联合同明细"]];
summarySheet.getRange("B3").values = [[`期间:${extractSummary.开始日期} 至 ${extractSummary.结束日期}(不含结束日)`]];
summarySheet.getRange("B4").values = [[`数据源:${extractSummary.数据库},导出时间:${extractSummary.导出时间}`]];
summarySheet.getRange("B2").format.font = { name: "Arial", size: 14, bold: true, color: "#111827" };
summarySheet.getRange("B3:B4").format.font = { name: "Arial", size: 10, italic: true, color: "#4B5563" };
summarySheet.getRange("B5:I5").format.borders = { preset: "doubleBottom", style: "thin", color: "#1F4E78" };
summarySheet.getRange("B7:C12").values = [
["指标", "数量"],
["本月订单数", total],
["已关联合同数", linked],
["未关联合同数", missing],
["补货订单数", replenishment],
["补货挂销售合同数", linkedReplenishment],
];
summarySheet.getRange("E8:F8").values = [["补货独立合同数", independentReplenishment]];
summarySheet.getRange("B7:C7").format = {
fill: "#1F4E78",
font: { name: "Arial", size: 10, bold: true, color: "#FFFFFF" },
};
summarySheet.getRange("E8:F8").format = {
fill: "#EAF2F8",
font: { name: "Arial", size: 10, bold: true, color: "#1F2937" },
};
summarySheet.getRange("B7:C12").format.borders = { preset: "all", style: "thin", color: "#D9E2F3" };
summarySheet.getRange("E8:F8").format.borders = { preset: "all", style: "thin", color: "#D9E2F3" };
summarySheet.getRange("C8:C12").format.numberFormat = "#,##0";
summarySheet.getRange("F8:F8").format.numberFormat = "#,##0";
const typeRows = [["订单类型名称", "数量"], ...Array.from(typeCounts.entries()).sort((a, b) => b[1] - a[1])];
summarySheet.getRangeByIndexes(14, 1, typeRows.length, 2).values = typeRows;
summarySheet.getRangeByIndexes(14, 1, 1, 2).format = {
fill: "#1F4E78",
font: { name: "Arial", size: 10, bold: true, color: "#FFFFFF" },
};
summarySheet.getRangeByIndexes(14, 1, typeRows.length, 2).format.borders = {
preset: "all",
style: "thin",
color: "#D9E2F3",
};
summarySheet.getRangeByIndexes(15, 2, Math.max(typeRows.length - 1, 1), 1).format.numberFormat = "#,##0";
const relationRows = [["关联类型", "数量"], ...Array.from(relationCounts.entries()).sort((a, b) => b[1] - a[1])];
summarySheet.getRangeByIndexes(14, 4, relationRows.length, 2).values = relationRows;
summarySheet.getRangeByIndexes(14, 4, 1, 2).format = {
fill: "#1F4E78",
font: { name: "Arial", size: 10, bold: true, color: "#FFFFFF" },
};
summarySheet.getRangeByIndexes(14, 4, relationRows.length, 2).format.borders = {
preset: "all",
style: "thin",
color: "#D9E2F3",
};
summarySheet.getRangeByIndexes(15, 5, Math.max(relationRows.length - 1, 1), 1).format.numberFormat = "#,##0";
summarySheet.getRange("B24").values = [["说明"]];
summarySheet.getRange("B25").values = [["订单所属合同按 合同管理_订单信息_基础表.项目流水号 = PDM_项目名称.项目流水号 关联。"]];
summarySheet.getRange("B26").values = [["普通补货通常关联系统生成的补货合同,关联合同补货会指向对应销售合同。"]];
summarySheet.getRange("B24").format.font = { name: "Arial", size: 11, bold: true, color: "#111827" };
summarySheet.getRange("B25:B26").format.font = { name: "Arial", size: 10, color: "#374151" };
summarySheet.getRange("B:I").format.autofitColumns();
summarySheet.getRange("B:B").format.columnWidth = 22;
summarySheet.getRange("E:E").format.columnWidth = 22;
summarySheet.getRange("B2:I26").format.verticalAlignment = "center";
workbook.recalculate();
const summaryPreview = await workbook.render({
sheetName: "汇总",
range: "B2:F26",
scale: 1,
format: "png",
});
await fs.writeFile(path.join(outputDir, "summary_preview.png"), new Uint8Array(await summaryPreview.arrayBuffer()));
const detailPreview = await workbook.render({
sheetName: "明细",
range: "A1:AB20",
scale: 1,
format: "png",
});
await fs.writeFile(path.join(outputDir, "detail_preview.png"), new Uint8Array(await detailPreview.arrayBuffer()));
const check = await workbook.inspect({
kind: "table",
sheetId: "汇总",
range: "B7:F20",
include: "values",
tableMaxRows: 20,
tableMaxCols: 6,
});
console.log(check.ndjson);
const errors = await workbook.inspect({
kind: "match",
searchTerm: "#REF!|#DIV/0!|#VALUE!|#NAME\\?|#N/A|#NUM!|#NULL!|#SPILL!|#CALC!",
options: { useRegex: true, maxResults: 300 },
summary: "final formula error scan",
});
console.log(errors.ndjson);
await fs.mkdir(outputDir, { recursive: true });
const xlsx = await SpreadsheetFile.exportXlsx(workbook);
await xlsx.save(outputPath);
console.log(`xlsx=${outputPath}`);
console.log(`rows=${rows.length}`);

Binary file not shown.

After

Width:  |  Height:  |  Size: 304 KiB

View File

@@ -0,0 +1,117 @@
# 修改人:Ld 修改时间:2026-09-17 11:20:00; 从正式库导出本月订单与所属合同关联数据,供 Excel 生成脚本使用。
$ErrorActionPreference = 'Stop'
$outputDir = Join-Path (Get-Location) 'outputs/order_contract_links_202609'
New-Item -ItemType Directory -Force -Path $outputDir | Out-Null
$connectionString = 'Server=192.168.1.27;Database=ERPTOOL_JY;User ID=sa;Password=126.com;TrustServerCertificate=True;Connection Timeout=10'
$connection = New-Object System.Data.SqlClient.SqlConnection $connectionString
$connection.Open()
try {
$command = $connection.CreateCommand()
$command.CommandTimeout = 120
$command.CommandText = @"
DECLARE @开始日期 DATETIME = '2026-09-01';
DECLARE @结束日期 DATETIME = '2026-10-01';
SELECT
o.订单流水号,
o.订单编号,
o.订单类型,
CASE
WHEN o.订单类型 = 1 THEN N'模块销售订单'
WHEN o.订单类型 = 2 THEN N'专机销售订单'
WHEN o.订单类型 = 3 AND o.订单编号 LIKE N'BHWG%' THEN N'外购补货订单'
WHEN o.订单类型 = 3 AND o.订单编号 LIKE N'BHZZ%' THEN N'自制补货订单'
WHEN o.订单类型 = 3 THEN N'补货订单'
WHEN o.订单类型 = 5 THEN N'售后订单'
WHEN o.订单类型 = 6 THEN N'新模块订单'
WHEN o.订单类型 = 7 THEN N'新专机订单'
ELSE N'未定义'
END AS 订单类型名称,
CASE
WHEN o.订单类型 = 3 AND o.订单编号 LIKE N'BHWG%' THEN N'外购补货'
WHEN o.订单类型 = 3 AND o.订单编号 LIKE N'BHZZ%' THEN N'自制补货'
ELSE N''
END AS 补货类型,
o.项目流水号,
p.合同编号 AS 所属合同编号,
p.合同类型 AS 所属合同类型,
CASE
WHEN p.合同类型 = 1 THEN N'模块合同'
WHEN p.合同类型 = 2 THEN N'专机合同'
WHEN p.合同类型 = 3 THEN N'补货/仓库备货合同'
WHEN p.合同类型 = 5 THEN N'售后合同'
WHEN p.合同类型 = 6 THEN N'新模块合同'
WHEN p.合同类型 = 7 THEN N'新专机合同'
ELSE N'未定义'
END AS 所属合同类型名称,
CASE
WHEN o.订单类型 = 3 AND p.合同类型 <> 3 THEN N'补货挂销售合同'
WHEN o.订单类型 = 3 AND p.合同类型 = 3 THEN N'补货独立合同'
WHEN o.订单编号 = p.合同编号 THEN N'订单号同合同号'
ELSE N'订单关联销售合同'
END AS 关联类型,
CASE WHEN p.项目流水号 IS NULL THEN N'否' ELSE N'是' END AS 是否已关联合同,
CONVERT(varchar(19), o.下单日期, 120) AS 下单日期,
ISNULL(d.姓名, N'') AS 下单人,
ISNULL(pv.客户名称, N'') AS 客户名称,
ISNULL(pv.收货人员, N'') AS 收货人员,
ISNULL(pv.经手人, N'') AS 合同经手人,
CONVERT(varchar(10), p.签订日期, 120) AS 合同签订日期,
CONVERT(varchar(10), p.交货日期, 120) AS 合同交货日期,
CONVERT(varchar(10), o.审核期限, 120) AS 审核期限,
CONVERT(varchar(10), o.通用装配期限, 120) AS 通用装配期限,
CONVERT(varchar(10), o.采购期限, 120) AS 采购期限,
CONVERT(varchar(10), o.精工期限, 120) AS 精工期限,
CONVERT(varchar(10), o.专机装配期限, 120) AS 专机装配期限,
ISNULL(o.订单备注, N'') AS 订单备注,
ISNULL(p.合同备注, N'') AS 合同备注,
ISNULL(pv.状态, N'') AS 合同状态,
ISNULL(ov.订单状态, N'') AS 订单状态,
ISNULL(ov.下达部门, N'') AS 下达部门
FROM dbo.合同管理_订单信息_基础表 o
LEFT JOIN dbo.PDM_项目名称 p ON o.项目流水号 = p.项目流水号
LEFT JOIN dbo.PDM_项目名称_视图 pv ON o.项目流水号 = pv.项目流水号
LEFT JOIN dbo.PDM_订单信息_视图 ov ON o.订单流水号 = ov.订单流水号
LEFT JOIN dbo.人事档案管理_人员名单 d ON o.下单人 = d.人员编号
WHERE o.下单日期 >= @开始日期
AND o.下单日期 < @结束日期
ORDER BY o.下单日期 DESC, o.订单流水号 DESC;
"@
$adapter = New-Object System.Data.SqlClient.SqlDataAdapter $command
$table = New-Object System.Data.DataTable
[void]$adapter.Fill($table)
$rows = foreach ($row in $table.Rows) {
$object = [ordered]@{}
foreach ($column in $table.Columns) {
$value = $row[$column.ColumnName]
if ($value -is [System.DBNull]) {
$object[$column.ColumnName] = $null
} else {
$object[$column.ColumnName] = $value
}
}
[pscustomobject]$object
}
$jsonPath = Join-Path $outputDir 'order_contract_links_202609.json'
$rows | ConvertTo-Json -Depth 4 | Set-Content -LiteralPath $jsonPath -Encoding UTF8
$summary = [ordered]@{
数据库 = 'ERPTOOL_JY'
开始日期 = '2026-09-01'
结束日期 = '2026-10-01'
导出时间 = (Get-Date -Format 'yyyy-MM-dd HH:mm:ss')
记录数 = $table.Rows.Count
}
$summary | ConvertTo-Json -Depth 3 | Set-Content -LiteralPath (Join-Path $outputDir 'extract_summary.json') -Encoding UTF8
Write-Output "exported=$($table.Rows.Count)"
Write-Output "json=$jsonPath"
} finally {
$connection.Close()
}

View File

@@ -0,0 +1,7 @@
{
"数据库": "ERPTOOL_JY",
"开始日期": "2026-09-01",
"结束日期": "2026-10-01",
"导出时间": "2026-09-17 11:32:33",
"记录数": 276
}

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

View File

@@ -0,0 +1,17 @@
CREATE PROCEDURE [dbo].[订单信息_未下达_查询数据]
AS
--2024-09-03 注释掉 zyh
--select PDM_订单信息_视图.*,isnull(是否有打回,0) as 是否有打回
--from PDM_订单信息_视图 LEFT OUTER JOIN
--(select 订单流水号,1 as 是否有打回 from 车间装配管理_装配任务_打回记录 group by 订单流水号) as a ON dbo.PDM_订单信息_视图.订单流水号 = a.订单流水号
-- where 是否下达 = 0 and 是否提交 > 0 and 是否启用 = 1 and 是否审核=1 and 是否显示=1 order by 操作日期 desc
select b.*,isnull(是否有打回,0) as 是否有打回 from
(select PDM_订单信息_视图.* from PDM_订单信息_视图 where 是否下达 = 0 and 是否提交 > 0 and 是否启用 = 1 and 是否审核=1 and 是否显示=1) b LEFT OUTER JOIN
(select 订单流水号,1 as 是否有打回 from 车间装配管理_装配任务_打回记录 group by 订单流水号) a ON b.订单流水号 = a.订单流水号
order by 操作日期 desc

View File

@@ -0,0 +1,32 @@
-- =============================================
-- Author: 刘帅
-- Create date: 2021-02-26
-- =============================================
CREATE PROCEDURE [dbo].[订单信息_补货明细_查询]
@订单流水号 int,
@订单类型 int
AS
if @订单类型= 3
begin
select 组件流水号,采购件 as 物料名称,图号或型号,单位,采购数 as 补货数,isnull(到货数,0) as 完成数,累计库存,最低库存,物料流水号,采购管理_采购合同明细_全部_查询视图.流水号,1 as 是否采购,ISNULL(条数,0) as 条数 from 采购管理_采购合同明细_全部_查询视图 left join
(select count(*) as 条数,流水号 from 补货订单_补货零件_修改记录 where 是否采购 = 1 group by 流水号) as a on 采购管理_采购合同明细_全部_查询视图.流水号= a.流水号
where 订单流水号 = @订单流水号
union all
SELECT PDM_组件名称_视图.组件流水号,dbo.库存管理_物料主文件_基本.名称 , dbo.库存管理_物料主文件_基本.代号, dbo.单位名称_基础表.单位, dbo.PDM_零件明细表_基本件.零件数量 AS 补货数,
ISNULL(dbo.车间生产管理工艺_零件工艺计划.完成数量, 0) AS 完成数, dbo.库存管理_外购件累计库存.累计库存, dbo.库存管理_外购件累计库存.最低库存,
dbo.PDM_零件明细表_基本件.物料流水号,dbo.PDM_零件明细表_基本件.基本件流水号,0 as 是否采购,ISNULL(条数,0) as 条数
FROM dbo.PDM_组件名称_视图 INNER JOIN
dbo.PDM_零件明细表_基本件 ON dbo.PDM_组件名称_视图.组件流水号 = dbo.PDM_零件明细表_基本件.组件流水号 left join
(select count(*) as 条数,流水号 from 补货订单_补货零件_修改记录 where 是否采购 = 0 group by 流水号) as a on PDM_零件明细表_基本件.基本件流水号= a.流水号 INNER JOIN
dbo.库存管理_物料主文件_基本 ON dbo.PDM_零件明细表_基本件.物料流水号 = dbo.库存管理_物料主文件_基本.物料流水号 INNER JOIN
dbo.单位名称_基础表 ON dbo.库存管理_物料主文件_基本.单位流水号 = dbo.单位名称_基础表.单位流水号 LEFT OUTER JOIN
dbo.库存管理_外购件累计库存 ON dbo.库存管理_物料主文件_基本.物料流水号 = dbo.库存管理_外购件累计库存.物料流水号 LEFT OUTER JOIN
dbo.车间生产管理工艺_零件工艺计划 ON dbo.PDM_零件明细表_基本件.基本件流水号 = dbo.车间生产管理工艺_零件工艺计划.基本件流水号
where 订单流水号 = @订单流水号
end
else
begin
select *,0 as 用库存数 from PDM_组件名称_视图
where 订单流水号 = @订单流水号
end

View File

@@ -0,0 +1,322 @@
CREATE PROCEDURE [dbo].[订单信息_订单分配]
@订单流水号 int,
@组件流水号组 nvarchar(4000) = null,
@人员编号 int = null,
@订单类型 int = null,
@仓库 int = null,
@精工车间 int = null,
@动力头 int = null,
@滑台 int = null,
@采购 int = null,
@专机 int = null,
@审核期限 nvarchar(50)=null,
@通用装配期限 nvarchar(50)=null,
@采购期限 nvarchar(50)=null,
@精工期限 nvarchar(50)=null,
@专机装配期限 nvarchar(50)=null
AS
IF @审核期限 IS NULL
SET @审核期限 = convert(varchar(10),GETDATE(), 23)
IF @通用装配期限 IS NULL
SET @通用装配期限 = convert(varchar(10),GETDATE(), 23)
IF @采购期限 IS NULL
SET @采购期限 = convert(varchar(10),GETDATE(), 23)
IF @精工期限 IS NULL
SET @精工期限 = convert(varchar(10),GETDATE(), 23)
IF @专机装配期限 IS NULL
SET @专机装配期限 = convert(varchar(10),GETDATE(), 23)
DECLARE @Length INT
DECLARE @第一个组件流水号 varchar(4000)
DECLARE @组件流水号 int
DECLARE @工艺计划流水号 INT
declare @strSelect nvarchar(4000)
declare @strSelectOrderby nvarchar(100)
declare @strSelectWhere nvarchar(4000)
declare @物料流水号 int
declare @类型 int
select @strSelectWhere = ''
SELECT @Length = DATALENGTH(@组件流水号组)
WHILE @Length > 0
BEGIN
EXECUTE @Length = p_PopFirstWord @组件流水号组 OUTPUT, @第一个组件流水号 OUTPUT
IF @Length > 0
BEGIN
SELECT @组件流水号 = convert(int,@第一个组件流水号)
declare @组件数量 int
select @组件数量=数量 from PDM_组件名称 where 组件流水号 = @组件流水号
select @物料流水号=isnull(物料流水号,0) from PDM_组件名称_视图 where 组件流水号 = @组件流水号
if @物料流水号 = 0
begin
update PDM_零件明细表_基本件 set 零件数量 = 零件数量 * @组件数量 where 组件流水号 = @组件流水号
update PDM_零件明细表_标准件和外购件 set 零件数量 = 零件数量 * @组件数量 where 组件流水号 = @组件流水号
end
if @订单类型 = 1 or @订单类型 = 5 or @订单类型 = 6
begin
if @仓库 = 1
begin
insert into 订单下达_发货任务(组件流水号)values(@组件流水号)
update PDM_组件名称 set 产品状态=4,完成数量=数量,组件仓库=@仓库,是否分配 = 1 where 组件流水号=@组件流水号
if @物料流水号 > 0
begin
delete from PDM_零件明细表_基本件 where 组件流水号=@组件流水号
delete from PDM_零件明细表_标准件和外购件 where 组件流水号=@组件流水号
select @类型=类型 from 库存管理_物料主文件_基本 where 物料流水号=@物料流水号
if @类型 = 2
insert into PDM_零件明细表_基本件(组件流水号,物料流水号,零件数量,零件类型,材料流水号,导入人员编号)
select @组件流水号,物料流水号,@组件数量,3,材料流水号,@人员编号 from 库存管理_物料主文件_基本 where 物料流水号=@物料流水号
if @类型 = 1
insert into PDM_零件明细表_标准件和外购件(组件流水号,物料流水号,零件数量,零件类型,材料流水号,导入人员编号)
select @组件流水号,物料流水号,@组件数量,2,材料流水号,@人员编号 from 库存管理_物料主文件_基本 where 物料流水号=@物料流水号
end
end
if @滑台 = 1 or @动力头 = 1 or @专机 = 1
begin
if @物料流水号 > 0
begin
delete from PDM_零件明细表_基本件 where 组件流水号=@组件流水号
delete from PDM_零件明细表_标准件和外购件 where 组件流水号=@组件流水号
insert into PDM_零件明细表_基本件(组件流水号,物料流水号,零件数量,零件类型,材料流水号,导入人员编号)
select @组件流水号,物料流水号,@组件数量,3,材料流水号,@人员编号 from 库存管理_物料主文件_基本 where 物料流水号=@物料流水号
end
end
if @精工车间 = 1
begin
if @物料流水号 > 0
begin
delete from PDM_零件明细表_基本件 where 组件流水号=@组件流水号
delete from PDM_零件明细表_标准件和外购件 where 组件流水号=@组件流水号
insert into PDM_零件明细表_基本件(组件流水号,物料流水号,零件数量,零件类型,材料流水号,导入人员编号,是否投产,投产数)
select @组件流水号,物料流水号,@组件数量,3,材料流水号,@人员编号,1,@组件数量 from 库存管理_物料主文件_基本 where 物料流水号=@物料流水号
end
end
if @采购 = 1
begin
if @物料流水号 > 0
begin
delete from PDM_零件明细表_基本件 where 组件流水号=@组件流水号
delete from PDM_零件明细表_标准件和外购件 where 组件流水号=@组件流水号
insert into PDM_零件明细表_标准件和外购件(组件流水号,物料流水号,零件数量,零件类型,材料流水号,导入人员编号)
select @组件流水号,物料流水号,@组件数量,2,材料流水号,@人员编号 from 库存管理_物料主文件_基本 where 物料流水号=@物料流水号
end
end
update PDM_组件名称 set 组件仓库=@仓库,组件精工车间=@精工车间,组件动力头=@动力头,组件滑台=@滑台,组件采购=@采购,组件专机=@专机,是否分配 = 1 where 组件流水号=@组件流水号
end
if @订单类型 = 2 or @订单类型 = 7
begin
if @仓库 = 1
begin
insert into 订单下达_发货任务(组件流水号)values(@组件流水号)
update PDM_组件名称 set 产品状态=4,组件仓库=@仓库,是否分配 = 1,完成数量=数量 where 组件流水号=@组件流水号
if @物料流水号 > 0
begin
delete from PDM_零件明细表_基本件 where 组件流水号=@组件流水号
delete from PDM_零件明细表_标准件和外购件 where 组件流水号=@组件流水号
select @类型=类型 from 库存管理_物料主文件_基本 where 物料流水号=@物料流水号
if @类型 = 2
insert into PDM_零件明细表_基本件(组件流水号,物料流水号,零件数量,零件类型,材料流水号,导入人员编号)
select @组件流水号,物料流水号,@组件数量,3,材料流水号,@人员编号 from 库存管理_物料主文件_基本 where 物料流水号=@物料流水号
if @类型 = 1
insert into PDM_零件明细表_标准件和外购件(组件流水号,物料流水号,零件数量,零件类型,材料流水号,导入人员编号)
select @组件流水号,物料流水号,@组件数量,2,材料流水号,@人员编号 from 库存管理_物料主文件_基本 where 物料流水号=@物料流水号
end
end
else
begin
if @物料流水号 > 0
begin
delete from PDM_零件明细表_基本件 where 组件流水号=@组件流水号
delete from PDM_零件明细表_标准件和外购件 where 组件流水号=@组件流水号
select @类型=类型 from 库存管理_物料主文件_基本 where 物料流水号=@物料流水号
if @类型 = 2
insert into PDM_零件明细表_基本件(组件流水号,物料流水号,零件数量,零件类型,材料流水号,导入人员编号)
select @组件流水号,物料流水号,@组件数量,3,材料流水号,@人员编号 from 库存管理_物料主文件_基本 where 物料流水号=@物料流水号
if @类型 = 1
insert into PDM_零件明细表_标准件和外购件(组件流水号,物料流水号,零件数量,零件类型,材料流水号,导入人员编号)
select @组件流水号,物料流水号,@组件数量,2,材料流水号,@人员编号 from 库存管理_物料主文件_基本 where 物料流水号=@物料流水号
end
declare @是否滑台 int
select @是否滑台=是否滑台 from PDM_组件名称_视图 where 组件流水号=@组件流水号
if @是否滑台 = 2 or @是否滑台 = 4
begin
update PDM_组件名称 set 组件动力头=1,是否分配 = 1 where 组件流水号=@组件流水号
end
else if @是否滑台 = 1 or @是否滑台 = 3
begin
update PDM_组件名称 set 组件滑台=1,是否分配 = 1 where 组件流水号=@组件流水号
end
else
begin
update PDM_组件名称 set 组件专机=1,是否分配 = 1 where 组件流水号=@组件流水号
end
end
end
if @订单类型 = 3
begin
update PDM_组件名称 set 组件精工车间=@精工车间,组件采购=@采购,是否分配 = 1,是否接收 = 1 where 组件流水号=@组件流水号
end
if @订单类型 = 2 or @订单类型 = 3 or @订单类型 = 7
begin
declare @id int = 1
declare @基本件流水号 int
declare @图号或型号 nvarchar(50)
declare @数量 int
create table #临时表
(
id int IDENTITY (1,1) not null,
基本件流水号 int,
图号或型号 nvarchar(50),
数量 int,
primary key (id)
);
insert into #临时表 select 流水号,图号或型号,投产数 from PDM_零件明细表_基本件_视图 where 组件流水号=@组件流水号 and 是否传递 = 0 and 是否滑台 <> 1 and 是否滑台 <> 2 and 组件仓库 = 0 and 是否投产 = 1
while (@id<=(select COUNT (id) from #临时表 ))
begin
select @基本件流水号=基本件流水号,@图号或型号=图号或型号,@数量=数量 from #临时表 where id = @id
insert into 车间生产管理工艺_零件工艺计划(基本件流水号,零件图号,批次数量)values(@基本件流水号,@图号或型号,@数量)
set @工艺计划流水号 = IDENT_CURRENT( '车间生产管理工艺_零件工艺计划' )
update PDM_零件明细表_基本件 set 是否传递 = 1 where 基本件流水号= @基本件流水号
declare @名称 nvarchar(50)
select @名称=零件名称 from PDM_零件明细表_基本件_视图 where 流水号= @基本件流水号
set @名称 = LEFT(@名称,2)
if @名称 = '主轴'
begin
declare @i int
set @i = 0
while(@i<@数量)
begin
INSERT INTO 车间生产工艺管理_零件批次(工艺计划流水号,数量,批号,是否主轴)
VALUES (@工艺计划流水号,1,@i+1,1)
set @i=@i+1
end
end
set @id = @id + 1
end
drop table #临时表
end
if @订单类型 = 1 or @订单类型 = 5 or @订单类型 = 6
begin
declare @id1 int = 1
declare @基本件流水号1 int
declare @图号或型号1 nvarchar(50)
declare @数量1 int
create table #临时表1
(
id int IDENTITY (1,1) not null,
基本件流水号 int,
图号或型号 nvarchar(50),
数量 int,
primary key (id)
);
insert into #临时表1 select 流水号,图号或型号,投产数 from PDM_零件明细表_基本件_视图 where 组件流水号=@组件流水号 and 是否传递 = 0 and (是否滑台 = 3 or 是否滑台 = 4 or 是否滑台 = 0) and 组件仓库 = 0 and 是否投产 = 1
while (@id1<=(select COUNT (id) from #临时表1 ))
begin
select @基本件流水号1=基本件流水号,@图号或型号1=图号或型号,@数量1=数量 from #临时表1 where id = @id1
insert into 车间生产管理工艺_零件工艺计划(基本件流水号,零件图号,批次数量)values(@基本件流水号1,@图号或型号1,@数量1)
set @工艺计划流水号 = IDENT_CURRENT( '车间生产管理工艺_零件工艺计划' )
update PDM_零件明细表_基本件 set 是否传递 = 1 where 基本件流水号= @基本件流水号1
declare @名称1 nvarchar(50)
select @名称1=零件名称 from PDM_零件明细表_基本件_视图 where 流水号= @基本件流水号1
if @名称1 = '主轴'
begin
declare @i1 int
set @i1 = 0
while(@i1<@数量1)
begin
INSERT INTO 车间生产工艺管理_零件批次(工艺计划流水号,数量,批号,是否主轴)
VALUES (@工艺计划流水号,1,@i1+1,1)
set @i1=@i1+1
end
end
set @id1 = @id1 + 1
end
drop table #临时表1
end
END
END
update 合同管理_订单信息_基础表 set 仓库=@仓库,精工车间=@精工车间,动力头=@动力头,滑台=@滑台,采购=@采购,专机=@专机,技术审核=0,
下达人=@人员编号,下达日期=GETDATE(),审核期限 = @审核期限,通用装配期限 = @通用装配期限
,采购期限 = @采购期限,精工期限 =@精工期限,专机装配期限 = @专机装配期限
where 订单流水号=@订单流水号
-- 处理异常请求,是否接收 = 1 的一定是已分配的组件
declare @是否接收 int
select @是否接收 = 是否接收 from PDM_组件名称 where 组件流水号 = @组件流水号
if @是否接收 = 1 update PDM_组件名称 set 是否分配 = 1 where 组件流水号 = @组件流水号
declare @n1 int=0
declare @m int=0
declare @l int=0
declare @h int=0
declare @j int=0
declare @k int=0
select @n1=COUNT(*) from PDM_组件名称_视图 where 订单流水号=@订单流水号 and 是否滑台 <> 5 and 已删 = 0
select @m=COUNT(*) from PDM_组件名称_视图 where 订单流水号=@订单流水号 and 是否分配 = 1 and 是否滑台 <> 5 and 已删 = 0
select @l=COUNT(*) from PDM_组件名称_视图 where 订单流水号=@订单流水号 and 组件仓库 = 1 and 产品状态 = 4 and 已删 = 0
if @n1=@m
begin
if @n1 = @l
begin
update 合同管理_订单信息_基础表 set 是否下达=1,是否提交=5 where 订单流水号=@订单流水号
end
else
begin
select @h=COUNT(*) from PDM_组件名称_视图 where 订单流水号=@订单流水号 and 是否滑台 <> 5 and 已删 = 0
select @j=COUNT(*) from PDM_组件名称_视图 where 订单流水号=@订单流水号 and 产品状态 = 4 and 是否滑台 <> 5 and 已删 = 0
if @h = @j and (@订单类型 = 1 or @订单类型 = 5 or @订单类型 = 6)
begin
update 合同管理_订单信息_基础表 set 是否下达=1,是否提交=5 where 订单流水号=@订单流水号
end
else
begin
select @k = 是否提交 from 合同管理_订单信息_基础表 where 订单流水号=@订单流水号
if @k < 2
begin
update 合同管理_订单信息_基础表 set 是否下达=1,是否提交=2 where 订单流水号=@订单流水号
end
else
begin
update 合同管理_订单信息_基础表 set 是否下达=1 where 订单流水号=@订单流水号
end
end
end
end

View File

@@ -0,0 +1,50 @@
-- =============================================
-- Author: 李显
-- Create date: 20210821
-- =============================================
CREATE PROCEDURE [dbo].[订单投产_零件查询]
@组件流水号 int,
@产品流水号 int
AS
begin
--select *,机加工MES_零件图PDF表.uid as 图纸 from PDM_零件明细表_基本件_视图
-- left join [机加工MES_零件图PDF表] on PDM_零件明细表_基本件_视图.图号或型号 = [机加工MES_零件图PDF表].name
select A.*,机加工MES_零件图PDF表.uid as 图纸 from (SELECT dbo.PDM_零件明细表_基本件.基本件流水号 AS 流水号, dbo.PDM_零件明细表_基本件.组件流水号,
dbo.PDM_组件名称_视图.产品名称, dbo.库存管理_物料主文件_基本.名称 AS 零件名称,
dbo.库存管理_物料主文件_基本.代号 AS 图号或型号, CASE WHEN dbo.PDM_零件明细表_基本件.是否投产 = 1 THEN dbo.PDM_零件明细表_基本件.投产数 ELSE ISNULL( dbo.PDM_零件明细表_基本件.零件数量,0) END AS 数量 ,
dbo.PDM_零件明细表_材料.材料, dbo.PDM_零件明细表_基本件.零件备注, 人事档案管理_人员名单_1.姓名 AS 导入人,
CONVERT(varchar(10), dbo.PDM_零件明细表_基本件.操作日期, 23) AS 导入时间, '自制' AS 类型,
dbo.PDM_组件名称_视图.订单流水号, dbo.PDM_组件名称_视图.订单编号, dbo.PDM_零件明细表_基本件.零件类型,
dbo.PDM_零件明细表_基本件.是否传递, ISNULL(dbo.车间生产管理工艺_零件工艺计划.考核状态, 0) AS 考核状态,
dbo.PDM_零件明细表_基本件.材料流水号, CASE WHEN 修改人员 IS NOT NULL
THEN 人事档案管理_人员名单.姓名 ELSE 人事档案管理_人员名单_1.姓名 END AS 修改人,
CASE WHEN 修改时间 IS NOT NULL THEN CONVERT(varchar(10), 修改时间, 23) ELSE CONVERT(varchar(10),
PDM_零件明细表_基本件.操作日期, 23) END AS 修改时间, dbo.PDM_组件名称_视图.产品流水号,
dbo.PDM_组件名称_视图.是否滑台, dbo.PDM_零件明细表_基本件.单件重量, dbo.PDM_零件明细表_基本件.物料流水号,
ISNULL(dbo.库存管理_外购件累计库存.累计库存, 0) AS 累计库存, dbo.PDM_零件明细表_基本件.已领数量,
ISNULL(dbo.PDM_组件名称_视图.组件仓库, 0) AS 组件仓库, dbo.PDM_组件名称_视图.是否分配,
ISNULL(dbo.库存管理_外购件累计库存.补货中, 0) AS 补货中, dbo.PDM_零件明细表_基本件.是否投产,isnull(dbo.库存管理_外购件累计库存.累计库存,0) as 库存 ,isnull(需求量,0) as 需求量,是否后增
FROM dbo.PDM_零件明细表_基本件 INNER JOIN
dbo.PDM_组件名称_视图 ON
dbo.PDM_零件明细表_基本件.组件流水号 = dbo.PDM_组件名称_视图.组件流水号 INNER JOIN
dbo.库存管理_物料主文件_基本 ON
dbo.PDM_零件明细表_基本件.物料流水号 = dbo.库存管理_物料主文件_基本.物料流水号 LEFT OUTER JOIN
物料管理_需求量_视图 ON 物料管理_需求量_视图.物料流水号 = PDM_零件明细表_基本件.物料流水号 left join
dbo.库存管理_外购件累计库存 ON
dbo.库存管理_物料主文件_基本.物料流水号 = dbo.库存管理_外购件累计库存.物料流水号 LEFT OUTER JOIN
dbo.人事档案管理_人员名单 ON
dbo.PDM_零件明细表_基本件.修改人员 = dbo.人事档案管理_人员名单.人员编号 LEFT OUTER JOIN
dbo.人事档案管理_人员名单 AS 人事档案管理_人员名单_1 ON
dbo.PDM_零件明细表_基本件.导入人员编号 = 人事档案管理_人员名单_1.人员编号 LEFT OUTER JOIN
dbo.车间生产管理工艺_零件工艺计划 ON
dbo.PDM_零件明细表_基本件.基本件流水号 = dbo.车间生产管理工艺_零件工艺计划.基本件流水号 LEFT OUTER JOIN
dbo.PDM_零件明细表_材料 ON dbo.PDM_零件明细表_基本件.材料流水号 = dbo.PDM_零件明细表_材料.材料流水号 ) AS A
left join [机加工MES_零件图PDF表] on A.图号或型号 = [机加工MES_零件图PDF表].name
where 组件流水号 = @组件流水号
end

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 470 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 300 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 307 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 302 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 302 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 299 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 308 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 302 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 160 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 222 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 218 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 324 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 325 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 345 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 534 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 129 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 171 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 179 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 254 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 KiB

View File

@@ -0,0 +1,65 @@
CREATE PROCEDURE [dbo].[订单信息_查询数据_加收货人]
@买方名称_check bit=null,
@客户 nvarchar(50)= null,
@创建人_check bit=null,
@创建人 nvarchar(50)= null,
@订单编号_check bit=null,
@订单流水号 int=null,
@下单日期_check bit=null,
@开始时间 datetime=null,
@结束时间 datetime=null,
@订单状态_check bit=null,
@订单状态 nvarchar(50)=null
AS
BEGIN
SET NOCOUNT ON;
DECLARE @selectStr nvarchar(max);
DECLARE @selectStrWhere nvarchar(max);
-- 修改人:Ld 修改时间:2026-09-21 15:13:20; 合同编号优先显示补货来源关联的销售合同号,普通订单显示自身项目合同号。
SET @selectStr = N'
select
PDM_订单信息_视图.*,
COALESCE(来源项目.合同编号, 当前项目.合同编号) AS 合同编号,
A.暂停原因数量
from PDM_订单信息_视图
LEFT JOIN dbo.[补货订单来源关联] AS 补货来源
ON 补货来源.补货订单流水号 = PDM_订单信息_视图.订单流水号
AND ISNULL(补货来源.是否有效, 1) = 1
LEFT JOIN dbo.PDM_项目名称 AS 来源项目
ON 补货来源.来源项目流水号 = 来源项目.项目流水号
LEFT JOIN dbo.PDM_项目名称 AS 当前项目
ON PDM_订单信息_视图.项目流水号 = 当前项目.项目流水号
LEFT JOIN
(
select PDM_订单信息_视图.订单流水号, ISNULL(COUNT([车间装配管理_暂停装配_记录表].暂停原因), 0) AS 暂停原因数量
FROM PDM_订单信息_视图
LEFT join PDM_机床名称 on PDM_订单信息_视图.项目流水号 = PDM_机床名称.项目流水号
LEFT join [dbo].[PDM_组件名称] on PDM_机床名称.机床流水号 = PDM_组件名称.机床流水号
LEFT join [dbo].[车间装配管理_装配任务] on PDM_组件名称.组件流水号 = 车间装配管理_装配任务.组件流水号
LEFT join [dbo].[车间装配管理_暂停装配_记录表] on [dbo].[车间装配管理_暂停装配_记录表].装配任务流水号 = 车间装配管理_装配任务.装配任务流水号
group by PDM_订单信息_视图.订单流水号
) AS A
ON A.订单流水号 = PDM_订单信息_视图.订单流水号 ';
SET @selectStrWhere = N'where 是否提交 <> 0 ';
IF(@买方名称_check = 1)
SET @selectStrWhere = @selectStrWhere + N' and 买方 + isnull(收货人,'''') like + ''%'' + @客户 + ''%'' ';
IF(@创建人_check = 1)
SET @selectStrWhere = @selectStrWhere + N' and isnull(创建人,'''') like + ''%'' + @创建人 + ''%'' ';
IF(@订单编号_check = 1)
SET @selectStrWhere = @selectStrWhere + N' and PDM_订单信息_视图.订单流水号 = @订单流水号 ';
IF(@下单日期_check = 1)
SET @selectStrWhere = @selectStrWhere + N' and 创建日期 >= @开始时间 and 创建日期 <= @结束时间 ';
IF(@订单状态_check = 1)
SET @selectStrWhere = @selectStrWhere + N' and 订单状态 = @订单状态 ';
SET @selectStr = @selectStr + @selectStrWhere + N'order by 合同操作日期 DESC';
PRINT @selectStr;
EXEC sp_executesql @selectStr,
N'@客户 nvarchar(50),@创建人 nvarchar(50),@订单流水号 int,@开始时间 datetime,@结束时间 datetime,@订单状态 nvarchar(50)',
@客户,@创建人,@订单流水号,@开始时间,@结束时间,@订单状态;
END;

Binary file not shown.

View File

@@ -0,0 +1,17 @@
CREATE PROCEDURE [dbo].[订单信息_未下达_查询数据]
AS
--2024-09-03 注释掉 zyh
--select PDM_订单信息_视图.*,isnull(是否有打回,0) as 是否有打回
--from PDM_订单信息_视图 LEFT OUTER JOIN
--(select 订单流水号,1 as 是否有打回 from 车间装配管理_装配任务_打回记录 group by 订单流水号) as a ON dbo.PDM_订单信息_视图.订单流水号 = a.订单流水号
-- where 是否下达 = 0 and 是否提交 > 0 and 是否启用 = 1 and 是否审核=1 and 是否显示=1 order by 操作日期 desc
select b.*,isnull(是否有打回,0) as 是否有打回 from
(select PDM_订单信息_视图.* from PDM_订单信息_视图 where 是否下达 = 0 and 是否提交 > 0 and 是否启用 = 1 and 是否审核=1 and 是否显示=1) b LEFT OUTER JOIN
(select 订单流水号,1 as 是否有打回 from 车间装配管理_装配任务_打回记录 group by 订单流水号) a ON b.订单流水号 = a.订单流水号
order by 操作日期 desc

View File

@@ -0,0 +1,32 @@
-- =============================================
-- Author: 刘帅
-- Create date: 2021-02-26
-- =============================================
CREATE PROCEDURE [dbo].[订单信息_补货明细_查询]
@订单流水号 int,
@订单类型 int
AS
if @订单类型= 3
begin
select 组件流水号,采购件 as 物料名称,图号或型号,单位,采购数 as 补货数,isnull(到货数,0) as 完成数,累计库存,最低库存,物料流水号,采购管理_采购合同明细_全部_查询视图.流水号,1 as 是否采购,ISNULL(条数,0) as 条数 from 采购管理_采购合同明细_全部_查询视图 left join
(select count(*) as 条数,流水号 from 补货订单_补货零件_修改记录 where 是否采购 = 1 group by 流水号) as a on 采购管理_采购合同明细_全部_查询视图.流水号= a.流水号
where 订单流水号 = @订单流水号
union all
SELECT PDM_组件名称_视图.组件流水号,dbo.库存管理_物料主文件_基本.名称 , dbo.库存管理_物料主文件_基本.代号, dbo.单位名称_基础表.单位, dbo.PDM_零件明细表_基本件.零件数量 AS 补货数,
ISNULL(dbo.车间生产管理工艺_零件工艺计划.完成数量, 0) AS 完成数, dbo.库存管理_外购件累计库存.累计库存, dbo.库存管理_外购件累计库存.最低库存,
dbo.PDM_零件明细表_基本件.物料流水号,dbo.PDM_零件明细表_基本件.基本件流水号,0 as 是否采购,ISNULL(条数,0) as 条数
FROM dbo.PDM_组件名称_视图 INNER JOIN
dbo.PDM_零件明细表_基本件 ON dbo.PDM_组件名称_视图.组件流水号 = dbo.PDM_零件明细表_基本件.组件流水号 left join
(select count(*) as 条数,流水号 from 补货订单_补货零件_修改记录 where 是否采购 = 0 group by 流水号) as a on PDM_零件明细表_基本件.基本件流水号= a.流水号 INNER JOIN
dbo.库存管理_物料主文件_基本 ON dbo.PDM_零件明细表_基本件.物料流水号 = dbo.库存管理_物料主文件_基本.物料流水号 INNER JOIN
dbo.单位名称_基础表 ON dbo.库存管理_物料主文件_基本.单位流水号 = dbo.单位名称_基础表.单位流水号 LEFT OUTER JOIN
dbo.库存管理_外购件累计库存 ON dbo.库存管理_物料主文件_基本.物料流水号 = dbo.库存管理_外购件累计库存.物料流水号 LEFT OUTER JOIN
dbo.车间生产管理工艺_零件工艺计划 ON dbo.PDM_零件明细表_基本件.基本件流水号 = dbo.车间生产管理工艺_零件工艺计划.基本件流水号
where 订单流水号 = @订单流水号
end
else
begin
select *,0 as 用库存数 from PDM_组件名称_视图
where 订单流水号 = @订单流水号
end

View File

@@ -0,0 +1,322 @@
CREATE PROCEDURE [dbo].[订单信息_订单分配]
@订单流水号 int,
@组件流水号组 nvarchar(4000) = null,
@人员编号 int = null,
@订单类型 int = null,
@仓库 int = null,
@精工车间 int = null,
@动力头 int = null,
@滑台 int = null,
@采购 int = null,
@专机 int = null,
@审核期限 nvarchar(50)=null,
@通用装配期限 nvarchar(50)=null,
@采购期限 nvarchar(50)=null,
@精工期限 nvarchar(50)=null,
@专机装配期限 nvarchar(50)=null
AS
IF @审核期限 IS NULL
SET @审核期限 = convert(varchar(10),GETDATE(), 23)
IF @通用装配期限 IS NULL
SET @通用装配期限 = convert(varchar(10),GETDATE(), 23)
IF @采购期限 IS NULL
SET @采购期限 = convert(varchar(10),GETDATE(), 23)
IF @精工期限 IS NULL
SET @精工期限 = convert(varchar(10),GETDATE(), 23)
IF @专机装配期限 IS NULL
SET @专机装配期限 = convert(varchar(10),GETDATE(), 23)
DECLARE @Length INT
DECLARE @第一个组件流水号 varchar(4000)
DECLARE @组件流水号 int
DECLARE @工艺计划流水号 INT
declare @strSelect nvarchar(4000)
declare @strSelectOrderby nvarchar(100)
declare @strSelectWhere nvarchar(4000)
declare @物料流水号 int
declare @类型 int
select @strSelectWhere = ''
SELECT @Length = DATALENGTH(@组件流水号组)
WHILE @Length > 0
BEGIN
EXECUTE @Length = p_PopFirstWord @组件流水号组 OUTPUT, @第一个组件流水号 OUTPUT
IF @Length > 0
BEGIN
SELECT @组件流水号 = convert(int,@第一个组件流水号)
declare @组件数量 int
select @组件数量=数量 from PDM_组件名称 where 组件流水号 = @组件流水号
select @物料流水号=isnull(物料流水号,0) from PDM_组件名称_视图 where 组件流水号 = @组件流水号
if @物料流水号 = 0
begin
update PDM_零件明细表_基本件 set 零件数量 = 零件数量 * @组件数量 where 组件流水号 = @组件流水号
update PDM_零件明细表_标准件和外购件 set 零件数量 = 零件数量 * @组件数量 where 组件流水号 = @组件流水号
end
if @订单类型 = 1 or @订单类型 = 5 or @订单类型 = 6
begin
if @仓库 = 1
begin
insert into 订单下达_发货任务(组件流水号)values(@组件流水号)
update PDM_组件名称 set 产品状态=4,完成数量=数量,组件仓库=@仓库,是否分配 = 1 where 组件流水号=@组件流水号
if @物料流水号 > 0
begin
delete from PDM_零件明细表_基本件 where 组件流水号=@组件流水号
delete from PDM_零件明细表_标准件和外购件 where 组件流水号=@组件流水号
select @类型=类型 from 库存管理_物料主文件_基本 where 物料流水号=@物料流水号
if @类型 = 2
insert into PDM_零件明细表_基本件(组件流水号,物料流水号,零件数量,零件类型,材料流水号,导入人员编号)
select @组件流水号,物料流水号,@组件数量,3,材料流水号,@人员编号 from 库存管理_物料主文件_基本 where 物料流水号=@物料流水号
if @类型 = 1
insert into PDM_零件明细表_标准件和外购件(组件流水号,物料流水号,零件数量,零件类型,材料流水号,导入人员编号)
select @组件流水号,物料流水号,@组件数量,2,材料流水号,@人员编号 from 库存管理_物料主文件_基本 where 物料流水号=@物料流水号
end
end
if @滑台 = 1 or @动力头 = 1 or @专机 = 1
begin
if @物料流水号 > 0
begin
delete from PDM_零件明细表_基本件 where 组件流水号=@组件流水号
delete from PDM_零件明细表_标准件和外购件 where 组件流水号=@组件流水号
insert into PDM_零件明细表_基本件(组件流水号,物料流水号,零件数量,零件类型,材料流水号,导入人员编号)
select @组件流水号,物料流水号,@组件数量,3,材料流水号,@人员编号 from 库存管理_物料主文件_基本 where 物料流水号=@物料流水号
end
end
if @精工车间 = 1
begin
if @物料流水号 > 0
begin
delete from PDM_零件明细表_基本件 where 组件流水号=@组件流水号
delete from PDM_零件明细表_标准件和外购件 where 组件流水号=@组件流水号
insert into PDM_零件明细表_基本件(组件流水号,物料流水号,零件数量,零件类型,材料流水号,导入人员编号,是否投产,投产数)
select @组件流水号,物料流水号,@组件数量,3,材料流水号,@人员编号,1,@组件数量 from 库存管理_物料主文件_基本 where 物料流水号=@物料流水号
end
end
if @采购 = 1
begin
if @物料流水号 > 0
begin
delete from PDM_零件明细表_基本件 where 组件流水号=@组件流水号
delete from PDM_零件明细表_标准件和外购件 where 组件流水号=@组件流水号
insert into PDM_零件明细表_标准件和外购件(组件流水号,物料流水号,零件数量,零件类型,材料流水号,导入人员编号)
select @组件流水号,物料流水号,@组件数量,2,材料流水号,@人员编号 from 库存管理_物料主文件_基本 where 物料流水号=@物料流水号
end
end
update PDM_组件名称 set 组件仓库=@仓库,组件精工车间=@精工车间,组件动力头=@动力头,组件滑台=@滑台,组件采购=@采购,组件专机=@专机,是否分配 = 1 where 组件流水号=@组件流水号
end
if @订单类型 = 2 or @订单类型 = 7
begin
if @仓库 = 1
begin
insert into 订单下达_发货任务(组件流水号)values(@组件流水号)
update PDM_组件名称 set 产品状态=4,组件仓库=@仓库,是否分配 = 1,完成数量=数量 where 组件流水号=@组件流水号
if @物料流水号 > 0
begin
delete from PDM_零件明细表_基本件 where 组件流水号=@组件流水号
delete from PDM_零件明细表_标准件和外购件 where 组件流水号=@组件流水号
select @类型=类型 from 库存管理_物料主文件_基本 where 物料流水号=@物料流水号
if @类型 = 2
insert into PDM_零件明细表_基本件(组件流水号,物料流水号,零件数量,零件类型,材料流水号,导入人员编号)
select @组件流水号,物料流水号,@组件数量,3,材料流水号,@人员编号 from 库存管理_物料主文件_基本 where 物料流水号=@物料流水号
if @类型 = 1
insert into PDM_零件明细表_标准件和外购件(组件流水号,物料流水号,零件数量,零件类型,材料流水号,导入人员编号)
select @组件流水号,物料流水号,@组件数量,2,材料流水号,@人员编号 from 库存管理_物料主文件_基本 where 物料流水号=@物料流水号
end
end
else
begin
if @物料流水号 > 0
begin
delete from PDM_零件明细表_基本件 where 组件流水号=@组件流水号
delete from PDM_零件明细表_标准件和外购件 where 组件流水号=@组件流水号
select @类型=类型 from 库存管理_物料主文件_基本 where 物料流水号=@物料流水号
if @类型 = 2
insert into PDM_零件明细表_基本件(组件流水号,物料流水号,零件数量,零件类型,材料流水号,导入人员编号)
select @组件流水号,物料流水号,@组件数量,3,材料流水号,@人员编号 from 库存管理_物料主文件_基本 where 物料流水号=@物料流水号
if @类型 = 1
insert into PDM_零件明细表_标准件和外购件(组件流水号,物料流水号,零件数量,零件类型,材料流水号,导入人员编号)
select @组件流水号,物料流水号,@组件数量,2,材料流水号,@人员编号 from 库存管理_物料主文件_基本 where 物料流水号=@物料流水号
end
declare @是否滑台 int
select @是否滑台=是否滑台 from PDM_组件名称_视图 where 组件流水号=@组件流水号
if @是否滑台 = 2 or @是否滑台 = 4
begin
update PDM_组件名称 set 组件动力头=1,是否分配 = 1 where 组件流水号=@组件流水号
end
else if @是否滑台 = 1 or @是否滑台 = 3
begin
update PDM_组件名称 set 组件滑台=1,是否分配 = 1 where 组件流水号=@组件流水号
end
else
begin
update PDM_组件名称 set 组件专机=1,是否分配 = 1 where 组件流水号=@组件流水号
end
end
end
if @订单类型 = 3
begin
update PDM_组件名称 set 组件精工车间=@精工车间,组件采购=@采购,是否分配 = 1,是否接收 = 1 where 组件流水号=@组件流水号
end
if @订单类型 = 2 or @订单类型 = 3 or @订单类型 = 7
begin
declare @id int = 1
declare @基本件流水号 int
declare @图号或型号 nvarchar(50)
declare @数量 int
create table #临时表
(
id int IDENTITY (1,1) not null,
基本件流水号 int,
图号或型号 nvarchar(50),
数量 int,
primary key (id)
);
insert into #临时表 select 流水号,图号或型号,投产数 from PDM_零件明细表_基本件_视图 where 组件流水号=@组件流水号 and 是否传递 = 0 and 是否滑台 <> 1 and 是否滑台 <> 2 and 组件仓库 = 0 and 是否投产 = 1
while (@id<=(select COUNT (id) from #临时表 ))
begin
select @基本件流水号=基本件流水号,@图号或型号=图号或型号,@数量=数量 from #临时表 where id = @id
insert into 车间生产管理工艺_零件工艺计划(基本件流水号,零件图号,批次数量)values(@基本件流水号,@图号或型号,@数量)
set @工艺计划流水号 = IDENT_CURRENT( '车间生产管理工艺_零件工艺计划' )
update PDM_零件明细表_基本件 set 是否传递 = 1 where 基本件流水号= @基本件流水号
declare @名称 nvarchar(50)
select @名称=零件名称 from PDM_零件明细表_基本件_视图 where 流水号= @基本件流水号
set @名称 = LEFT(@名称,2)
if @名称 = '主轴'
begin
declare @i int
set @i = 0
while(@i<@数量)
begin
INSERT INTO 车间生产工艺管理_零件批次(工艺计划流水号,数量,批号,是否主轴)
VALUES (@工艺计划流水号,1,@i+1,1)
set @i=@i+1
end
end
set @id = @id + 1
end
drop table #临时表
end
if @订单类型 = 1 or @订单类型 = 5 or @订单类型 = 6
begin
declare @id1 int = 1
declare @基本件流水号1 int
declare @图号或型号1 nvarchar(50)
declare @数量1 int
create table #临时表1
(
id int IDENTITY (1,1) not null,
基本件流水号 int,
图号或型号 nvarchar(50),
数量 int,
primary key (id)
);
insert into #临时表1 select 流水号,图号或型号,投产数 from PDM_零件明细表_基本件_视图 where 组件流水号=@组件流水号 and 是否传递 = 0 and (是否滑台 = 3 or 是否滑台 = 4 or 是否滑台 = 0) and 组件仓库 = 0 and 是否投产 = 1
while (@id1<=(select COUNT (id) from #临时表1 ))
begin
select @基本件流水号1=基本件流水号,@图号或型号1=图号或型号,@数量1=数量 from #临时表1 where id = @id1
insert into 车间生产管理工艺_零件工艺计划(基本件流水号,零件图号,批次数量)values(@基本件流水号1,@图号或型号1,@数量1)
set @工艺计划流水号 = IDENT_CURRENT( '车间生产管理工艺_零件工艺计划' )
update PDM_零件明细表_基本件 set 是否传递 = 1 where 基本件流水号= @基本件流水号1
declare @名称1 nvarchar(50)
select @名称1=零件名称 from PDM_零件明细表_基本件_视图 where 流水号= @基本件流水号1
if @名称1 = '主轴'
begin
declare @i1 int
set @i1 = 0
while(@i1<@数量1)
begin
INSERT INTO 车间生产工艺管理_零件批次(工艺计划流水号,数量,批号,是否主轴)
VALUES (@工艺计划流水号,1,@i1+1,1)
set @i1=@i1+1
end
end
set @id1 = @id1 + 1
end
drop table #临时表1
end
END
END
update 合同管理_订单信息_基础表 set 仓库=@仓库,精工车间=@精工车间,动力头=@动力头,滑台=@滑台,采购=@采购,专机=@专机,技术审核=0,
下达人=@人员编号,下达日期=GETDATE(),审核期限 = @审核期限,通用装配期限 = @通用装配期限
,采购期限 = @采购期限,精工期限 =@精工期限,专机装配期限 = @专机装配期限
where 订单流水号=@订单流水号
-- 处理异常请求,是否接收 = 1 的一定是已分配的组件
declare @是否接收 int
select @是否接收 = 是否接收 from PDM_组件名称 where 组件流水号 = @组件流水号
if @是否接收 = 1 update PDM_组件名称 set 是否分配 = 1 where 组件流水号 = @组件流水号
declare @n1 int=0
declare @m int=0
declare @l int=0
declare @h int=0
declare @j int=0
declare @k int=0
select @n1=COUNT(*) from PDM_组件名称_视图 where 订单流水号=@订单流水号 and 是否滑台 <> 5 and 已删 = 0
select @m=COUNT(*) from PDM_组件名称_视图 where 订单流水号=@订单流水号 and 是否分配 = 1 and 是否滑台 <> 5 and 已删 = 0
select @l=COUNT(*) from PDM_组件名称_视图 where 订单流水号=@订单流水号 and 组件仓库 = 1 and 产品状态 = 4 and 已删 = 0
if @n1=@m
begin
if @n1 = @l
begin
update 合同管理_订单信息_基础表 set 是否下达=1,是否提交=5 where 订单流水号=@订单流水号
end
else
begin
select @h=COUNT(*) from PDM_组件名称_视图 where 订单流水号=@订单流水号 and 是否滑台 <> 5 and 已删 = 0
select @j=COUNT(*) from PDM_组件名称_视图 where 订单流水号=@订单流水号 and 产品状态 = 4 and 是否滑台 <> 5 and 已删 = 0
if @h = @j and (@订单类型 = 1 or @订单类型 = 5 or @订单类型 = 6)
begin
update 合同管理_订单信息_基础表 set 是否下达=1,是否提交=5 where 订单流水号=@订单流水号
end
else
begin
select @k = 是否提交 from 合同管理_订单信息_基础表 where 订单流水号=@订单流水号
if @k < 2
begin
update 合同管理_订单信息_基础表 set 是否下达=1,是否提交=2 where 订单流水号=@订单流水号
end
else
begin
update 合同管理_订单信息_基础表 set 是否下达=1 where 订单流水号=@订单流水号
end
end
end
end

View File

@@ -0,0 +1,50 @@
-- =============================================
-- Author: 李显
-- Create date: 20210821
-- =============================================
CREATE PROCEDURE [dbo].[订单投产_零件查询]
@组件流水号 int,
@产品流水号 int
AS
begin
--select *,机加工MES_零件图PDF表.uid as 图纸 from PDM_零件明细表_基本件_视图
-- left join [机加工MES_零件图PDF表] on PDM_零件明细表_基本件_视图.图号或型号 = [机加工MES_零件图PDF表].name
select A.*,机加工MES_零件图PDF表.uid as 图纸 from (SELECT dbo.PDM_零件明细表_基本件.基本件流水号 AS 流水号, dbo.PDM_零件明细表_基本件.组件流水号,
dbo.PDM_组件名称_视图.产品名称, dbo.库存管理_物料主文件_基本.名称 AS 零件名称,
dbo.库存管理_物料主文件_基本.代号 AS 图号或型号, CASE WHEN dbo.PDM_零件明细表_基本件.是否投产 = 1 THEN dbo.PDM_零件明细表_基本件.投产数 ELSE ISNULL( dbo.PDM_零件明细表_基本件.零件数量,0) END AS 数量 ,
dbo.PDM_零件明细表_材料.材料, dbo.PDM_零件明细表_基本件.零件备注, 人事档案管理_人员名单_1.姓名 AS 导入人,
CONVERT(varchar(10), dbo.PDM_零件明细表_基本件.操作日期, 23) AS 导入时间, '自制' AS 类型,
dbo.PDM_组件名称_视图.订单流水号, dbo.PDM_组件名称_视图.订单编号, dbo.PDM_零件明细表_基本件.零件类型,
dbo.PDM_零件明细表_基本件.是否传递, ISNULL(dbo.车间生产管理工艺_零件工艺计划.考核状态, 0) AS 考核状态,
dbo.PDM_零件明细表_基本件.材料流水号, CASE WHEN 修改人员 IS NOT NULL
THEN 人事档案管理_人员名单.姓名 ELSE 人事档案管理_人员名单_1.姓名 END AS 修改人,
CASE WHEN 修改时间 IS NOT NULL THEN CONVERT(varchar(10), 修改时间, 23) ELSE CONVERT(varchar(10),
PDM_零件明细表_基本件.操作日期, 23) END AS 修改时间, dbo.PDM_组件名称_视图.产品流水号,
dbo.PDM_组件名称_视图.是否滑台, dbo.PDM_零件明细表_基本件.单件重量, dbo.PDM_零件明细表_基本件.物料流水号,
ISNULL(dbo.库存管理_外购件累计库存.累计库存, 0) AS 累计库存, dbo.PDM_零件明细表_基本件.已领数量,
ISNULL(dbo.PDM_组件名称_视图.组件仓库, 0) AS 组件仓库, dbo.PDM_组件名称_视图.是否分配,
ISNULL(dbo.库存管理_外购件累计库存.补货中, 0) AS 补货中, dbo.PDM_零件明细表_基本件.是否投产,isnull(dbo.库存管理_外购件累计库存.累计库存,0) as 库存 ,isnull(需求量,0) as 需求量,是否后增
FROM dbo.PDM_零件明细表_基本件 INNER JOIN
dbo.PDM_组件名称_视图 ON
dbo.PDM_零件明细表_基本件.组件流水号 = dbo.PDM_组件名称_视图.组件流水号 INNER JOIN
dbo.库存管理_物料主文件_基本 ON
dbo.PDM_零件明细表_基本件.物料流水号 = dbo.库存管理_物料主文件_基本.物料流水号 LEFT OUTER JOIN
物料管理_需求量_视图 ON 物料管理_需求量_视图.物料流水号 = PDM_零件明细表_基本件.物料流水号 left join
dbo.库存管理_外购件累计库存 ON
dbo.库存管理_物料主文件_基本.物料流水号 = dbo.库存管理_外购件累计库存.物料流水号 LEFT OUTER JOIN
dbo.人事档案管理_人员名单 ON
dbo.PDM_零件明细表_基本件.修改人员 = dbo.人事档案管理_人员名单.人员编号 LEFT OUTER JOIN
dbo.人事档案管理_人员名单 AS 人事档案管理_人员名单_1 ON
dbo.PDM_零件明细表_基本件.导入人员编号 = 人事档案管理_人员名单_1.人员编号 LEFT OUTER JOIN
dbo.车间生产管理工艺_零件工艺计划 ON
dbo.PDM_零件明细表_基本件.基本件流水号 = dbo.车间生产管理工艺_零件工艺计划.基本件流水号 LEFT OUTER JOIN
dbo.PDM_零件明细表_材料 ON dbo.PDM_零件明细表_基本件.材料流水号 = dbo.PDM_零件明细表_材料.材料流水号 ) AS A
left join [机加工MES_零件图PDF表] on A.图号或型号 = [机加工MES_零件图PDF表].name
where 组件流水号 = @组件流水号
end

View File

@@ -0,0 +1,70 @@
-- =============================================
-- Author: 刘帅
-- Create date: 20210308
-- =============================================
CREATE PROCEDURE [dbo].[合同信息_提交订单]
@项目流水号 int,
--@审核期限 nvarchar(50)=null,
--@通用装配期限 nvarchar(50)=null,
--@采购期限 nvarchar(50)=null,
--@精工期限 nvarchar(50)=null,
--@专机装配期限 nvarchar(50)=null,
@订单备注 nvarchar(500)=null,
@下单人 int
AS
declare @合同类型 int
declare @单号 varchar(100)
select @合同类型=合同类型,@单号=合同编号 from PDM_项目名称 where 项目流水号 = @项目流水号
-- 判断是否已经创建过这个订单,若创建过则不允许二次创建
if(select count(1) from 合同管理_订单信息_基础表 where 订单编号 = @单号) > 0
begin
return;
end
insert 合同管理_订单信息_基础表(项目流水号,订单编号,订单类型,下单人,订单备注,是否提交,下单日期)
values(@项目流水号,@单号,@合同类型,@下单人,@订单备注,1,GETDATE())
update PDM_项目名称 set 是否生成订单 = 1 where 项目流水号 = @项目流水号
if @合同类型 = 1 or @合同类型 = 2 or @合同类型 = 5 or @合同类型 = 6 or @合同类型 = 7
begin
declare @id int = 1
declare @组件流水号 int
declare @产品流水号 int
declare @数量 float
create table #临时表
(
id int IDENTITY (1,1) not null,
组件流水号 int,
产品流水号 int,
primary key (id)
);
insert into #临时表 select 组件流水号,产品流水号 from PDM_组件名称_视图 where 项目流水号 = @项目流水号 and isnull(产品流水号,0) > 0
while (@id<=(select COUNT (id) from #临时表 ))
begin
select @组件流水号=组件流水号, @产品流水号=产品流水号 from #临时表 where id = @id
insert into PDM_零件明细表_基本件(组件流水号,物料流水号,零件数量,零件类型,材料流水号,导入人员编号)
select @组件流水号,物料流水号,零件数量,零件类型,材料流水号,导入人员编号 from 产品信息_基本件_基础表 where 产品流水号=@产品流水号 and 物料流水号 in (select 物料流水号 from 库存管理_物料主文件_基本 where 是否禁用 = 0 )
insert into PDM_零件明细表_标准件和外购件(组件流水号,物料流水号,零件数量,零件类型,材料流水号,导入人员编号)
select @组件流水号,物料流水号,零件数量,零件类型,材料流水号,导入人员编号 from 产品信息_外购件_基础表 where 产品流水号=@产品流水号 and 物料流水号 in (select 物料流水号 from 库存管理_物料主文件_基本 where 是否禁用 = 0 )
set @id = @id + 1
end
drop table #临时表
end
if @合同类型 = 2
begin
update 合同管理_订单信息_基础表 set 技术审核 = 1 where 项目流水号 = @项目流水号
end

View File

@@ -0,0 +1,46 @@
--李显
--09-11
create PROCEDURE [dbo].[技术确认_刷新BOM]
@组件流水号 int,
@产品流水号 int
AS
declare @订单流水号 int
declare @产品名称 nvarchar(50)
declare @是否分配 int
declare @组件数量 int
select @订单流水号=订单流水号,@产品名称=产品名称 from PDM_组件名称_视图 where 组件流水号=@组件流水号
select @是否分配 = 是否分配,@组件数量=数量 from PDM_组件名称 where 组件流水号=@组件流水号
delete from PDM_零件明细表_基本件 where 组件流水号=@组件流水号 and 物料流水号 in (select 物料流水号 from 产品信息_基本件_基础表 where 产品流水号=@产品流水号 and 物料流水号 in (select 物料流水号 from 库存管理_物料主文件_基本 where 是否禁用 = 0 ))
delete from PDM_零件明细表_标准件和外购件 where 组件流水号=@组件流水号 and 物料流水号 in (select 物料流水号 from 产品信息_外购件_基础表 where 产品流水号=@产品流水号 and 物料流水号 in (select 物料流水号 from 库存管理_物料主文件_基本 where 是否禁用 = 0 ))
declare @数量 int
select @数量=数量 from [dbo].[PDM_组件名称] where 组件流水号=@组件流水号
if @是否分配 = 1
begin
insert into PDM_零件明细表_基本件(组件流水号,物料流水号,零件数量,零件类型,材料流水号,导入人员编号)
select @组件流水号,物料流水号,零件数量 * @数量,零件类型,材料流水号,导入人员编号
from 产品信息_基本件_基础表 where 产品流水号=@产品流水号 and 物料流水号 in (select 物料流水号 from 库存管理_物料主文件_基本 where 是否禁用 = 0 )
insert into PDM_零件明细表_标准件和外购件(组件流水号,物料流水号,零件数量,零件类型,材料流水号,导入人员编号)
select @组件流水号,物料流水号,零件数量 * @数量,零件类型,材料流水号,导入人员编号
from 产品信息_外购件_基础表 where 产品流水号=@产品流水号 and 物料流水号 in (select 物料流水号 from 库存管理_物料主文件_基本 where 是否禁用 = 0 )
end
else
begin
insert into PDM_零件明细表_基本件(组件流水号,物料流水号,零件数量,零件类型,材料流水号,导入人员编号)
select @组件流水号,物料流水号,零件数量,零件类型,材料流水号,导入人员编号
from 产品信息_基本件_基础表 where 产品流水号=@产品流水号 and 物料流水号 in (select 物料流水号 from 库存管理_物料主文件_基本 where 是否禁用 = 0 )
insert into PDM_零件明细表_标准件和外购件(组件流水号,物料流水号,零件数量,零件类型,材料流水号,导入人员编号)
select @组件流水号,物料流水号,零件数量,零件类型,材料流水号,导入人员编号
from 产品信息_外购件_基础表 where 产品流水号=@产品流水号 and 物料流水号 in (select 物料流水号 from 库存管理_物料主文件_基本 where 是否禁用 = 0 )
end

View File

@@ -0,0 +1,322 @@
CREATE PROCEDURE [dbo].[订单信息_订单分配]
@订单流水号 int,
@组件流水号组 nvarchar(4000) = null,
@人员编号 int = null,
@订单类型 int = null,
@仓库 int = null,
@精工车间 int = null,
@动力头 int = null,
@滑台 int = null,
@采购 int = null,
@专机 int = null,
@审核期限 nvarchar(50)=null,
@通用装配期限 nvarchar(50)=null,
@采购期限 nvarchar(50)=null,
@精工期限 nvarchar(50)=null,
@专机装配期限 nvarchar(50)=null
AS
IF @审核期限 IS NULL
SET @审核期限 = convert(varchar(10),GETDATE(), 23)
IF @通用装配期限 IS NULL
SET @通用装配期限 = convert(varchar(10),GETDATE(), 23)
IF @采购期限 IS NULL
SET @采购期限 = convert(varchar(10),GETDATE(), 23)
IF @精工期限 IS NULL
SET @精工期限 = convert(varchar(10),GETDATE(), 23)
IF @专机装配期限 IS NULL
SET @专机装配期限 = convert(varchar(10),GETDATE(), 23)
DECLARE @Length INT
DECLARE @第一个组件流水号 varchar(4000)
DECLARE @组件流水号 int
DECLARE @工艺计划流水号 INT
declare @strSelect nvarchar(4000)
declare @strSelectOrderby nvarchar(100)
declare @strSelectWhere nvarchar(4000)
declare @物料流水号 int
declare @类型 int
select @strSelectWhere = ''
SELECT @Length = DATALENGTH(@组件流水号组)
WHILE @Length > 0
BEGIN
EXECUTE @Length = p_PopFirstWord @组件流水号组 OUTPUT, @第一个组件流水号 OUTPUT
IF @Length > 0
BEGIN
SELECT @组件流水号 = convert(int,@第一个组件流水号)
declare @组件数量 int
select @组件数量=数量 from PDM_组件名称 where 组件流水号 = @组件流水号
select @物料流水号=isnull(物料流水号,0) from PDM_组件名称_视图 where 组件流水号 = @组件流水号
if @物料流水号 = 0
begin
update PDM_零件明细表_基本件 set 零件数量 = 零件数量 * @组件数量 where 组件流水号 = @组件流水号
update PDM_零件明细表_标准件和外购件 set 零件数量 = 零件数量 * @组件数量 where 组件流水号 = @组件流水号
end
if @订单类型 = 1 or @订单类型 = 5 or @订单类型 = 6
begin
if @仓库 = 1
begin
insert into 订单下达_发货任务(组件流水号)values(@组件流水号)
update PDM_组件名称 set 产品状态=4,完成数量=数量,组件仓库=@仓库,是否分配 = 1 where 组件流水号=@组件流水号
if @物料流水号 > 0
begin
delete from PDM_零件明细表_基本件 where 组件流水号=@组件流水号
delete from PDM_零件明细表_标准件和外购件 where 组件流水号=@组件流水号
select @类型=类型 from 库存管理_物料主文件_基本 where 物料流水号=@物料流水号
if @类型 = 2
insert into PDM_零件明细表_基本件(组件流水号,物料流水号,零件数量,零件类型,材料流水号,导入人员编号)
select @组件流水号,物料流水号,@组件数量,3,材料流水号,@人员编号 from 库存管理_物料主文件_基本 where 物料流水号=@物料流水号
if @类型 = 1
insert into PDM_零件明细表_标准件和外购件(组件流水号,物料流水号,零件数量,零件类型,材料流水号,导入人员编号)
select @组件流水号,物料流水号,@组件数量,2,材料流水号,@人员编号 from 库存管理_物料主文件_基本 where 物料流水号=@物料流水号
end
end
if @滑台 = 1 or @动力头 = 1 or @专机 = 1
begin
if @物料流水号 > 0
begin
delete from PDM_零件明细表_基本件 where 组件流水号=@组件流水号
delete from PDM_零件明细表_标准件和外购件 where 组件流水号=@组件流水号
insert into PDM_零件明细表_基本件(组件流水号,物料流水号,零件数量,零件类型,材料流水号,导入人员编号)
select @组件流水号,物料流水号,@组件数量,3,材料流水号,@人员编号 from 库存管理_物料主文件_基本 where 物料流水号=@物料流水号
end
end
if @精工车间 = 1
begin
if @物料流水号 > 0
begin
delete from PDM_零件明细表_基本件 where 组件流水号=@组件流水号
delete from PDM_零件明细表_标准件和外购件 where 组件流水号=@组件流水号
insert into PDM_零件明细表_基本件(组件流水号,物料流水号,零件数量,零件类型,材料流水号,导入人员编号,是否投产,投产数)
select @组件流水号,物料流水号,@组件数量,3,材料流水号,@人员编号,1,@组件数量 from 库存管理_物料主文件_基本 where 物料流水号=@物料流水号
end
end
if @采购 = 1
begin
if @物料流水号 > 0
begin
delete from PDM_零件明细表_基本件 where 组件流水号=@组件流水号
delete from PDM_零件明细表_标准件和外购件 where 组件流水号=@组件流水号
insert into PDM_零件明细表_标准件和外购件(组件流水号,物料流水号,零件数量,零件类型,材料流水号,导入人员编号)
select @组件流水号,物料流水号,@组件数量,2,材料流水号,@人员编号 from 库存管理_物料主文件_基本 where 物料流水号=@物料流水号
end
end
update PDM_组件名称 set 组件仓库=@仓库,组件精工车间=@精工车间,组件动力头=@动力头,组件滑台=@滑台,组件采购=@采购,组件专机=@专机,是否分配 = 1 where 组件流水号=@组件流水号
end
if @订单类型 = 2 or @订单类型 = 7
begin
if @仓库 = 1
begin
insert into 订单下达_发货任务(组件流水号)values(@组件流水号)
update PDM_组件名称 set 产品状态=4,组件仓库=@仓库,是否分配 = 1,完成数量=数量 where 组件流水号=@组件流水号
if @物料流水号 > 0
begin
delete from PDM_零件明细表_基本件 where 组件流水号=@组件流水号
delete from PDM_零件明细表_标准件和外购件 where 组件流水号=@组件流水号
select @类型=类型 from 库存管理_物料主文件_基本 where 物料流水号=@物料流水号
if @类型 = 2
insert into PDM_零件明细表_基本件(组件流水号,物料流水号,零件数量,零件类型,材料流水号,导入人员编号)
select @组件流水号,物料流水号,@组件数量,3,材料流水号,@人员编号 from 库存管理_物料主文件_基本 where 物料流水号=@物料流水号
if @类型 = 1
insert into PDM_零件明细表_标准件和外购件(组件流水号,物料流水号,零件数量,零件类型,材料流水号,导入人员编号)
select @组件流水号,物料流水号,@组件数量,2,材料流水号,@人员编号 from 库存管理_物料主文件_基本 where 物料流水号=@物料流水号
end
end
else
begin
if @物料流水号 > 0
begin
delete from PDM_零件明细表_基本件 where 组件流水号=@组件流水号
delete from PDM_零件明细表_标准件和外购件 where 组件流水号=@组件流水号
select @类型=类型 from 库存管理_物料主文件_基本 where 物料流水号=@物料流水号
if @类型 = 2
insert into PDM_零件明细表_基本件(组件流水号,物料流水号,零件数量,零件类型,材料流水号,导入人员编号)
select @组件流水号,物料流水号,@组件数量,3,材料流水号,@人员编号 from 库存管理_物料主文件_基本 where 物料流水号=@物料流水号
if @类型 = 1
insert into PDM_零件明细表_标准件和外购件(组件流水号,物料流水号,零件数量,零件类型,材料流水号,导入人员编号)
select @组件流水号,物料流水号,@组件数量,2,材料流水号,@人员编号 from 库存管理_物料主文件_基本 where 物料流水号=@物料流水号
end
declare @是否滑台 int
select @是否滑台=是否滑台 from PDM_组件名称_视图 where 组件流水号=@组件流水号
if @是否滑台 = 2 or @是否滑台 = 4
begin
update PDM_组件名称 set 组件动力头=1,是否分配 = 1 where 组件流水号=@组件流水号
end
else if @是否滑台 = 1 or @是否滑台 = 3
begin
update PDM_组件名称 set 组件滑台=1,是否分配 = 1 where 组件流水号=@组件流水号
end
else
begin
update PDM_组件名称 set 组件专机=1,是否分配 = 1 where 组件流水号=@组件流水号
end
end
end
if @订单类型 = 3
begin
update PDM_组件名称 set 组件精工车间=@精工车间,组件采购=@采购,是否分配 = 1,是否接收 = 1 where 组件流水号=@组件流水号
end
if @订单类型 = 2 or @订单类型 = 3 or @订单类型 = 7
begin
declare @id int = 1
declare @基本件流水号 int
declare @图号或型号 nvarchar(50)
declare @数量 int
create table #临时表
(
id int IDENTITY (1,1) not null,
基本件流水号 int,
图号或型号 nvarchar(50),
数量 int,
primary key (id)
);
insert into #临时表 select 流水号,图号或型号,投产数 from PDM_零件明细表_基本件_视图 where 组件流水号=@组件流水号 and 是否传递 = 0 and 是否滑台 <> 1 and 是否滑台 <> 2 and 组件仓库 = 0 and 是否投产 = 1
while (@id<=(select COUNT (id) from #临时表 ))
begin
select @基本件流水号=基本件流水号,@图号或型号=图号或型号,@数量=数量 from #临时表 where id = @id
insert into 车间生产管理工艺_零件工艺计划(基本件流水号,零件图号,批次数量)values(@基本件流水号,@图号或型号,@数量)
set @工艺计划流水号 = IDENT_CURRENT( '车间生产管理工艺_零件工艺计划' )
update PDM_零件明细表_基本件 set 是否传递 = 1 where 基本件流水号= @基本件流水号
declare @名称 nvarchar(50)
select @名称=零件名称 from PDM_零件明细表_基本件_视图 where 流水号= @基本件流水号
set @名称 = LEFT(@名称,2)
if @名称 = '主轴'
begin
declare @i int
set @i = 0
while(@i<@数量)
begin
INSERT INTO 车间生产工艺管理_零件批次(工艺计划流水号,数量,批号,是否主轴)
VALUES (@工艺计划流水号,1,@i+1,1)
set @i=@i+1
end
end
set @id = @id + 1
end
drop table #临时表
end
if @订单类型 = 1 or @订单类型 = 5 or @订单类型 = 6
begin
declare @id1 int = 1
declare @基本件流水号1 int
declare @图号或型号1 nvarchar(50)
declare @数量1 int
create table #临时表1
(
id int IDENTITY (1,1) not null,
基本件流水号 int,
图号或型号 nvarchar(50),
数量 int,
primary key (id)
);
insert into #临时表1 select 流水号,图号或型号,投产数 from PDM_零件明细表_基本件_视图 where 组件流水号=@组件流水号 and 是否传递 = 0 and (是否滑台 = 3 or 是否滑台 = 4 or 是否滑台 = 0) and 组件仓库 = 0 and 是否投产 = 1
while (@id1<=(select COUNT (id) from #临时表1 ))
begin
select @基本件流水号1=基本件流水号,@图号或型号1=图号或型号,@数量1=数量 from #临时表1 where id = @id1
insert into 车间生产管理工艺_零件工艺计划(基本件流水号,零件图号,批次数量)values(@基本件流水号1,@图号或型号1,@数量1)
set @工艺计划流水号 = IDENT_CURRENT( '车间生产管理工艺_零件工艺计划' )
update PDM_零件明细表_基本件 set 是否传递 = 1 where 基本件流水号= @基本件流水号1
declare @名称1 nvarchar(50)
select @名称1=零件名称 from PDM_零件明细表_基本件_视图 where 流水号= @基本件流水号1
if @名称1 = '主轴'
begin
declare @i1 int
set @i1 = 0
while(@i1<@数量1)
begin
INSERT INTO 车间生产工艺管理_零件批次(工艺计划流水号,数量,批号,是否主轴)
VALUES (@工艺计划流水号,1,@i1+1,1)
set @i1=@i1+1
end
end
set @id1 = @id1 + 1
end
drop table #临时表1
end
END
END
update 合同管理_订单信息_基础表 set 仓库=@仓库,精工车间=@精工车间,动力头=@动力头,滑台=@滑台,采购=@采购,专机=@专机,技术审核=0,
下达人=@人员编号,下达日期=GETDATE(),审核期限 = @审核期限,通用装配期限 = @通用装配期限
,采购期限 = @采购期限,精工期限 =@精工期限,专机装配期限 = @专机装配期限
where 订单流水号=@订单流水号
-- 处理异常请求,是否接收 = 1 的一定是已分配的组件
declare @是否接收 int
select @是否接收 = 是否接收 from PDM_组件名称 where 组件流水号 = @组件流水号
if @是否接收 = 1 update PDM_组件名称 set 是否分配 = 1 where 组件流水号 = @组件流水号
declare @n1 int=0
declare @m int=0
declare @l int=0
declare @h int=0
declare @j int=0
declare @k int=0
select @n1=COUNT(*) from PDM_组件名称_视图 where 订单流水号=@订单流水号 and 是否滑台 <> 5 and 已删 = 0
select @m=COUNT(*) from PDM_组件名称_视图 where 订单流水号=@订单流水号 and 是否分配 = 1 and 是否滑台 <> 5 and 已删 = 0
select @l=COUNT(*) from PDM_组件名称_视图 where 订单流水号=@订单流水号 and 组件仓库 = 1 and 产品状态 = 4 and 已删 = 0
if @n1=@m
begin
if @n1 = @l
begin
update 合同管理_订单信息_基础表 set 是否下达=1,是否提交=5 where 订单流水号=@订单流水号
end
else
begin
select @h=COUNT(*) from PDM_组件名称_视图 where 订单流水号=@订单流水号 and 是否滑台 <> 5 and 已删 = 0
select @j=COUNT(*) from PDM_组件名称_视图 where 订单流水号=@订单流水号 and 产品状态 = 4 and 是否滑台 <> 5 and 已删 = 0
if @h = @j and (@订单类型 = 1 or @订单类型 = 5 or @订单类型 = 6)
begin
update 合同管理_订单信息_基础表 set 是否下达=1,是否提交=5 where 订单流水号=@订单流水号
end
else
begin
select @k = 是否提交 from 合同管理_订单信息_基础表 where 订单流水号=@订单流水号
if @k < 2
begin
update 合同管理_订单信息_基础表 set 是否下达=1,是否提交=2 where 订单流水号=@订单流水号
end
else
begin
update 合同管理_订单信息_基础表 set 是否下达=1 where 订单流水号=@订单流水号
end
end
end
end