同步页面权限、业务功能、SQL脚本及项目文档
BIN
outputs/20260724_2026年前订单需求明细/2026年前未完成订单需求明细.xlsx
Normal file
30892
outputs/20260724_2026年前订单需求明细/2026年前未完成订单需求明细.xlsx.inspect.ndjson
Normal file
BIN
outputs/20260724_2026年前订单需求明细/2026年前未完成订单需求明细_排除全部完成组件.xlsx
Normal file
BIN
outputs/20260724_2026年前订单需求明细/2026年前未完成订单需求明细_排除已完成组件.xlsx
Normal file
88
outputs/20260724_2026年前订单需求明细/build_2026_before_orders.mjs
Normal 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}`);
|
||||
BIN
outputs/20260724_2026年前订单需求明细/preview.png
Normal file
|
After Width: | Height: | Size: 156 KiB |
BIN
outputs/26年生产计划表.xlsx
Normal file
341
outputs/PDM_组件名称_确认更改新_definition.sql
Normal 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 项目流水号=@项目流水号
|
||||
|
||||
107
outputs/material_proc_definition.txt
Normal 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
|
||||
|
||||
@@ -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}`);
|
||||
BIN
outputs/order_contract_links_202609/detail_preview.png
Normal file
|
After Width: | Height: | Size: 304 KiB |
@@ -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()
|
||||
}
|
||||
7
outputs/order_contract_links_202609/extract_summary.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"数据库": "ERPTOOL_JY",
|
||||
"开始日期": "2026-09-01",
|
||||
"结束日期": "2026-10-01",
|
||||
"导出时间": "2026-09-17 11:32:33",
|
||||
"记录数": 276
|
||||
}
|
||||
8282
outputs/order_contract_links_202609/order_contract_links_202609.json
Normal file
BIN
outputs/order_contract_links_202609/summary_preview.png
Normal file
|
After Width: | Height: | Size: 64 KiB |
BIN
outputs/order_contract_links_202609/正式库订单关联合同明细_2026-09.xlsx
Normal file
BIN
outputs/prod_replenishment.txt
Normal file
17
outputs/prod_订单信息_未下达_查询数据.sql
Normal 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
|
||||
|
||||
32
outputs/prod_订单信息_补货明细_查询.sql
Normal 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
|
||||
322
outputs/prod_订单信息_订单分配.sql
Normal 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
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
50
outputs/prod_订单投产_零件查询.sql
Normal 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
|
||||
|
||||
|
||||
|
||||
BIN
outputs/production_plan_template.xlsx
Normal file
BIN
outputs/sched_render_ascii/contact.png
Normal file
|
After Width: | Height: | Size: 470 KiB |
BIN
outputs/sched_render_ascii/page-1.png
Normal file
|
After Width: | Height: | Size: 300 KiB |
BIN
outputs/sched_render_ascii/page-2.png
Normal file
|
After Width: | Height: | Size: 307 KiB |
BIN
outputs/sched_render_ascii/page-3.png
Normal file
|
After Width: | Height: | Size: 302 KiB |
BIN
outputs/sched_render_ascii/page-4.png
Normal file
|
After Width: | Height: | Size: 302 KiB |
BIN
outputs/sched_render_ascii/page-5.png
Normal file
|
After Width: | Height: | Size: 299 KiB |
BIN
outputs/sched_render_ascii/page-6.png
Normal file
|
After Width: | Height: | Size: 308 KiB |
BIN
outputs/sched_render_ascii/page-7.png
Normal file
|
After Width: | Height: | Size: 86 KiB |
BIN
outputs/sched_render_ascii/plan.pdf
Normal file
BIN
outputs/system_user_manual/JY1.0系统使用说明书.docx
Normal file
BIN
outputs/system_user_manual/JY1.0系统使用说明书.pdf
Normal file
BIN
outputs/system_user_manual/assets/01_login.png
Normal file
|
After Width: | Height: | Size: 39 KiB |
BIN
outputs/system_user_manual/assets/02_workspace.png
Normal file
|
After Width: | Height: | Size: 57 KiB |
BIN
outputs/system_user_manual/assets/03_table_query.png
Normal file
|
After Width: | Height: | Size: 59 KiB |
BIN
outputs/system_user_manual/assets/04_business_flow.png
Normal file
|
After Width: | Height: | Size: 86 KiB |
BIN
outputs/system_user_manual/assets/05_mobile_pda.png
Normal file
|
After Width: | Height: | Size: 47 KiB |
BIN
outputs/system_user_manual/assets/detail.png
Normal file
|
After Width: | Height: | Size: 92 KiB |
BIN
outputs/system_user_manual/assets/filter.png
Normal file
|
After Width: | Height: | Size: 72 KiB |
BIN
outputs/system_user_manual/assets/flow_count.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
outputs/system_user_manual/assets/flow_inbound.png
Normal file
|
After Width: | Height: | Size: 51 KiB |
BIN
outputs/system_user_manual/assets/flow_outbound.png
Normal file
|
After Width: | Height: | Size: 50 KiB |
BIN
outputs/system_user_manual/assets/main.png
Normal file
|
After Width: | Height: | Size: 77 KiB |
BIN
outputs/system_user_manual/pdf_render/contact_sheet.png
Normal file
|
After Width: | Height: | Size: 302 KiB |
BIN
outputs/system_user_manual/pdf_render/page-01.png
Normal file
|
After Width: | Height: | Size: 160 KiB |
BIN
outputs/system_user_manual/pdf_render/page-02.png
Normal file
|
After Width: | Height: | Size: 43 KiB |
BIN
outputs/system_user_manual/pdf_render/page-03.png
Normal file
|
After Width: | Height: | Size: 222 KiB |
BIN
outputs/system_user_manual/pdf_render/page-04.png
Normal file
|
After Width: | Height: | Size: 218 KiB |
BIN
outputs/system_user_manual/pdf_render/page-05.png
Normal file
|
After Width: | Height: | Size: 324 KiB |
BIN
outputs/system_user_manual/pdf_render/page-06.png
Normal file
|
After Width: | Height: | Size: 325 KiB |
BIN
outputs/system_user_manual/pdf_render/page-07.png
Normal file
|
After Width: | Height: | Size: 345 KiB |
BIN
outputs/system_user_manual/pdf_render/page-08.png
Normal file
|
After Width: | Height: | Size: 534 KiB |
BIN
outputs/system_user_manual/pdf_render/page-09.png
Normal file
|
After Width: | Height: | Size: 129 KiB |
BIN
outputs/system_user_manual/pdf_render/page-10.png
Normal file
|
After Width: | Height: | Size: 171 KiB |
BIN
outputs/system_user_manual/pdf_render/page-11.png
Normal file
|
After Width: | Height: | Size: 158 KiB |
BIN
outputs/system_user_manual/pdf_render/page-12.png
Normal file
|
After Width: | Height: | Size: 179 KiB |
BIN
outputs/system_user_manual/pdf_render/page-13.png
Normal file
|
After Width: | Height: | Size: 254 KiB |
BIN
outputs/system_user_manual/pdf_render/page-14.png
Normal file
|
After Width: | Height: | Size: 101 KiB |
BIN
outputs/system_user_manual/pdf_render/page-15.png
Normal file
|
After Width: | Height: | Size: 130 KiB |
65
outputs/test_order_query_proc_definition.sql
Normal 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;
|
||||
|
||||
BIN
outputs/test_replenishment.txt
Normal file
17
outputs/test_订单信息_未下达_查询数据.sql
Normal 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
|
||||
|
||||
32
outputs/test_订单信息_补货明细_查询.sql
Normal 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
|
||||
322
outputs/test_订单信息_订单分配.sql
Normal 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
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
50
outputs/test_订单投产_零件查询.sql
Normal 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
|
||||
|
||||
|
||||
|
||||
70
outputs/合同信息_提交订单_definition.sql
Normal 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
|
||||
|
||||
46
outputs/技术确认_刷新BOM_definition.sql
Normal 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
|
||||
|
||||
BIN
outputs/排产优化方案_render/排产优化方案.pdf
Normal file
322
outputs/订单信息_订单分配_definition.sql
Normal 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
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||