feat: 更新装配任务和质量报表

This commit is contained in:
meswork764
2026-06-18 17:48:36 +08:00
parent 1a781b02c2
commit ab508369c9
54 changed files with 10788 additions and 102 deletions

View File

@@ -307,9 +307,7 @@ export default {
.replace(/'/g, ''')
},
isOutsourceProcess(process) {
return process.指派对象 === '外协' ||
String(process.工序名称 || '').includes('(外协)') ||
String(process.工序名称 || '').includes('(外协)')
return process.指派对象 === '外协'
},
getProcessStatusNum(status) {
const statusNum = parseInt(status)
@@ -333,8 +331,10 @@ export default {
return statusNum === 6 || statusNum === 3 || countNum > 0
},
isGreenProcess(process) {
console.log(process)
console.log( this.toProcessNumber(process.收料数量), this.toProcessNumber(process.完成数量),this.isOutsourceProcess(process))
return this.isOutsourceProcess(process) &&
this.toProcessNumber(process.收料数量) > this.toProcessNumber(process.收检合格数) + this.toProcessNumber(process.收检不合格数)
this.toProcessNumber(process.收料数量) > this.toProcessNumber(process.完成数量) + this.toProcessNumber(process.收检不合格数)
},
getProcessBaseClass(process) {
if (this.isGreenProcess(process)) {
@@ -375,7 +375,6 @@ export default {
return lineNo === lastLineNo + 1 &&
String(process.外协分组 || '') === String(lastProcess.外协分组 || '')
}
processes.forEach((process, index) => {
if (!this.isOutsourceProcess(process)) {
flushOutsourceRun()
@@ -388,8 +387,9 @@ export default {
lastProcess = process
})
flushOutsourceRun()
console.log(classes)
return classes
},
getProcessClass(process, index, outsourceGroupClasses) {
if (this.isOutsourceProcess(process)) {

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -132,7 +132,7 @@
</el-tag>
</template>
</el-table-column>
<el-table-column prop="Progress" label="进度" align="center" width="150">
<!-- <el-table-column prop="Progress" label="进度" align="center" width="150">
<template slot-scope="scope">
<el-progress
:percentage="scope.row.Progress || 0"
@@ -152,7 +152,7 @@
<span>{{ scope.row.Battery }}%</span>
</div>
</template>
</el-table-column>
</el-table-column> -->
<el-table-column prop="Operator" label="操作人" align="center" width="100"/>
<el-table-column prop="UpdateTime" label="更新时间" align="center" width="160"/>
<el-table-column label="操作" align="center" width="200" fixed="right">
@@ -172,14 +172,14 @@
style="color: #E6A23C;"
@click="pauseTask(scope.row)"
:disabled="scope.row.TaskStatus !== 'RUNNING'"
>暂停</el-button>
>暂停</el-button> -->
<el-button
type="text"
icon="el-icon-circle-close"
size="mini"
style="color: #F56C6C;"
@click="cancelTask(scope.row)"
>取消</el-button> -->
>取消</el-button>
</template>
</el-table-column>
</el-table>
@@ -373,6 +373,10 @@
</template>
<script>
import axios from 'axios'
const AGV_MOVE_API = 'http://192.168.2.92:9981/api/zk/call_agv_move_web'
export default {
data() {
return {
@@ -436,7 +440,7 @@ export default {
created() {
this.getLocationPoints()
this.getRealtimeData()
this.startAutoRefresh()
//this.startAutoRefresh()
},
beforeDestroy() {
@@ -513,7 +517,7 @@ export default {
var Data = this.CreateData('12', '生产管理_物料机器人_修改点位', param)
this.ExecDatabase(Data).then(response => {
if (response.data && response.data[0] && response.data[0].result === '1') {
if (response.data && response.data[0] && response.data[0].result === 1) {
this.$message.success('修改点位成功')
this.pointFormVisible = false
this.getLocationPoints()
@@ -536,13 +540,13 @@ export default {
param[5] = ['Y坐标', this.pointForm.YCoordinate]
param[6] = ['描述', this.pointForm.Description || '']
var Data = this.CreateData('12', '生产管理_物料机器人_新增点位', param)
var Data = this.CreateData('11', '生产管理_物料机器人_新增点位', param)
this.ExecDatabase(Data).then(response => {
if (response.data && response.data[0] && response.data[0].result === '1') {
if (response.data && response.data[0] && response.data[0].Result === 1) {
this.$message.success('新增点位成功')
this.pointFormVisible = false
this.getLocationPoints()
} else if (response.data[0].result === '编码重复') {s
} else if (response.data[0].Result === '编码重复') {
this.$message.error('点位编码已存在')
} else {
this.$message.error('新增点位失败')
@@ -564,12 +568,12 @@ export default {
var param = []
param[0] = ['ID', row.ID]
var Data = this.CreateData('12', '生产管理_物料机器人_删除点位', param)
var Data = this.CreateData('11', '生产管理_物料机器人_删除点位', param)
this.ExecDatabase(Data).then(response => {
if (response.data && response.data[0] && response.data[0].result === '1') {
if (response.data && response.data[0] && response.data[0].Result === 1) {
this.$message.success('删除点位成功')
this.getLocationPoints()
} else if (response.data[0].result === '点位使用中') {
} else if (response.data[0].Result === '点位使用中') {
this.$message.error('该点位正在被任务使用,无法删除')
} else {
this.$message.error('删除点位失败')
@@ -712,30 +716,73 @@ export default {
this.$confirm('确认开始该任务?', '提示', {
type: 'info'
}).then(() => {
var param = []
param[0] = ['任务编号', row.TaskNo]
param[1] = ['状态', 'RUNNING']
param[2] = ['进度', row.Progress || 0]
param[3] = ['速度', 0.5]
param[4] = ['电量', 100]
param[5] = ['X坐标', null]
param[6] = ['Y坐标', null]
param[7] = ['方向', '']
var Data = this.CreateData('12', '生产管理_物料机器人_更新任务状态', param)
this.ExecDatabase(Data).then(response => {
if (response.data && response.data[0] && response.data[0].result === '1') {
this.$message.success('任务已开始')
this.getRealtimeData()
} else {
this.$message.error('操作失败')
}
this.callAgvMove(row).then(() => {
return this.updateTaskStatus(row)
}).then(() => {
this.$message.success('任务已开始')
this.getRealtimeData()
}).catch(error => {
console.error('开始任务失败:', error)
this.$message.error('操作失败')
this.$message.error(error.message || '操作失败')
})
}).catch(() => {})
},
// 调用 AGV 搬运接口
callAgvMove(row) {
const fromBin = row.CurrentPoint || row.StartPoint
const toBin = row.TargetPoint || row.EndPoint
if (!row.TaskNo || !fromBin || !toBin) {
return Promise.reject(new Error('任务点位信息不完整无法下发AGV任务'))
}
const data = {
entityName: 'ContainerTransportOrder',
entityValues: [
{
id: row.TaskNo,
kind: 'Luck',
status: 'Building',
priority: 10,
fromBin,
toBin
}
]
}
return axios.post(AGV_MOVE_API, data).then(response => {
const result = response.data || {}
console.log(response)
const isSuccess = Array.isArray(result.ids) && result.ids.indexOf(row.TaskNo) !== -1 && !result.code
if (!isSuccess) {
const message = result.message || result.code || 'AGV任务下发失败'
return Promise.reject(new Error(message))
}
return result
})
},
// 更新 MES 任务状态
updateTaskStatus(row) {
var param = []
param[0] = ['任务编号', row.TaskNo]
param[1] = ['状态', 'RUNNING']
param[2] = ['进度', row.Progress || 0]
param[3] = ['速度', 0.5]
param[4] = ['电量', 100]
param[5] = ['X坐标', null]
param[6] = ['Y坐标', null]
param[7] = ['方向', '']
var Data = this.CreateData('12', '生产管理_物料机器人_更新任务状态', param)
return this.ExecDatabase(Data).then(response => {
if (response.data && response.data[0] && response.data[0].result === '1') {
return response
}
return Promise.reject(new Error('任务状态更新失败'))
})
},
// 暂停任务
// pauseTask(row) {
@@ -767,29 +814,29 @@ export default {
// }).catch(() => {})
// },
// 取消任务
// cancelTask(row) {
// this.$confirm('确认取消该任务?', '提示', {
// type: 'warning'
// }).then(() => {
// var param = []
// param[0] = ['任务编号', row.TaskNo]
// param[1] = ['状态', 'CANCELED']
//取消任务
cancelTask(row) {
this.$confirm('确认取消该任务?', '提示', {
type: 'warning'
}).then(() => {
var param = []
param[0] = ['任务编号', row.TaskNo]
param[1] = ['状态', 'CANCELED']
// var Data = this.CreateData('12', '生产管理_物料机器人_完成任务', param)
// this.ExecDatabase(Data).then(response => {
// if (response.data && response.data[0] && response.data[0].result === '1') {
// this.$message.success('任务已取消')
// this.getRealtimeData()
// } else {
// this.$message.error('操作失败')
// }
// }).catch(error => {
// console.error('取消任务失败:', error)
// this.$message.error('操作失败')
// })
// }).catch(() => {})
// },
var Data = this.CreateData('12', '生产管理_物料机器人_完成任务', param)
this.ExecDatabase(Data).then(response => {
if (response.data && response.data[0] && response.data[0].result === '1') {
this.$message.success('任务已取消')
this.getRealtimeData()
} else {
this.$message.error('操作失败')
}
}).catch(error => {
console.error('取消任务失败:', error)
this.$message.error('操作失败')
})
}).catch(() => {})
},
// ========== 历史记录相关方法 ==========
@@ -1007,4 +1054,4 @@ export default {
}
}
}
</style>
</style>

View File

@@ -43,6 +43,13 @@
clearable
style="width: 150px; margin-right: 10px"
/>
<span class="show-text">物料名称:</span>
<el-input
v-model="productname2"
placeholder="请输入零件名称"
clearable
style="width: 150px; margin-right: 10px"
/>
<!-- <span class="show-text">计划开工:</span>
<el-date-picker
v-model="completionTime"
@@ -1833,6 +1840,7 @@ export default {
salenum:'',
contractNo: "",
productCode2: "",
productname2: "",
process: "",
processList2: [],
nature: "",
@@ -2711,6 +2719,7 @@ getUserId() {
param.push(["TaskAID", this.TaskAID || 0]);
param.push(["订单号", this.orderNo2 || 0]);
param.push(["零件编号", this.productCode2]);
param.push(["零件名称", this.productname2]);
param.push(["计划开工_Start", ""]);
param.push(["计划开工_End", ""]);
param.push(["生产状态", this.productionStatus2 || -1]);

View File

@@ -731,6 +731,40 @@ async uploadToSAP(record, detail) {
// ========== 9. 提交工时单据到SAP ==========
if (params.length > 0) {
try {
await new Promise(resolve => setTimeout(resolve, 500))
const reorderResult = await getB1("/ProductionOrders", {
"$filter": `AbsoluteEntry eq ${record.订单编号}`
})
if (!reorderResult.success || !reorderResult.data?.value?.length) {
return { success: false, error: '重新获取生产订单失败' }
}
const updatedOrder = reorderResult.data.value[0]
const lines = updatedOrder.ProductionOrderLines || []
lines.forEach(line => {
const matched = params.find(param => Number(line.LineNumber) === Number(param.BaseLine))
if (matched) {
line.PlannedQuantity = Number(line.IssuedQuantity) + Number(matched.Quantity)
}
})
const patchResult = await patchB1(`ProductionOrders(${updatedOrder.AbsoluteEntry})`, {
ProductionOrderLines: lines,
ProductionOrdersStages: updatedOrder.ProductionOrdersStages || []
})
if (!patchResult.success) {
this.$message.error(patchResult.message)
return { success: false, error: patchResult.message || '更新生产订单PlannedQuantity失败' }
}
} catch (reorderError) {
console.warn(`重新获取订单数据失败:`, reorderError)
return { success: false, error: reorderError.message || '更新生产订单PlannedQuantity异常' }
}
try {
const startDate = record.开始时间 ? record.开始时间.split(' ')[0] : this.currentdate
const result = await postB1("/InventoryGenExits", {

View File

@@ -215,7 +215,7 @@
</el-input>
</el-form-item>
<el-form-item label="班次标准工时">
<el-input v-model="editForm.班次标准工时" readonly />
<el-input v-model="editForm.当日班次最小标准工时" />
</el-form-item>
<!-- <el-form-item label="工序顺序">
<el-input v-model="editForm.工艺顺序" readonly />
@@ -682,7 +682,7 @@ export default {
加工工时: row.加工工时 || 0,
总时长: row.总时长 || 0,
工艺顺序: row.订单行号 || 0,
当日班次最小标准工时 : row.当日班次最小标准工时 || 0
当日班次最小标准工时 : row.当日班次最小标准工时 || 8
}
this.editDialogVisible = true
},

View File

@@ -285,7 +285,7 @@
width="180"
prop="检测说明"
/>
<el-table-column label="操作" align="center" width="250" fixed="right">
<el-table-column label="操作" align="center" width="350" fixed="right">
<template slot-scope="scope">
<el-button
class="operation-btn"
@@ -299,9 +299,15 @@
type="primary"
size="mini"
@click="getitemdraw(scope.row)"
>图纸</el-button
>零件图纸</el-button
>
<el-button
class="operation-btn"
type="primary"
size="mini"
@click="getitemdraw2(scope.row)"
>工艺图纸</el-button
>
</template>
</el-table-column>
@@ -598,31 +604,23 @@ export default {
this.$message.error('未上传图纸');
}
})
// this.ExecDatabase(Data).then(async (response) => {
// console.log(response);
// if (response.data.length > 0) {
// var pdfSrc = "" + this.downPDF + "" + response.data[0].uid + ".pdf";
// // 1. 先打开对话框
// this.seeVisible = true;
// // 2. 等待对话框完全渲染(使用 $nextTick 确保 DOM 已更新)
// await this.$nextTick();
// // 3. 等待一小段时间确保对话框内的容器完全渲染
// setTimeout(async () => {
// try {
// await seepdf(pdfSrc, 'see');
// } catch (error) {
// console.error('PDF 渲染失败:', error);
// this.$message.error('PDF 渲染失败: ' + error.message);
// }
// }, 300); // 增加延迟确保 DOM 完全渲染
// } else {
// this.$message.error('未上传图纸');
// }
// });
},
getitemdraw2(row) {
var param = [];
param[0] = ['物料编号', row.零件编码];
var Data = this.CreateData('11', '工艺管理_工艺维护_查看图纸', param);
this.ExecDatabase(Data).then(response => {
console.log(response)
if (response.data.length > 0) {
var pdfSrc =""+this.downPDF+""+ response.data[0].uid+".pdf"
window.open(pdfSrc,'_blank')
}else {
this.$message.error('未上传图纸');
}
})
},
Urgent(row){
var param = []

View File

@@ -965,6 +965,7 @@ export default {
return;
}
// 调用存储过程保存数据
this.receiveCheckVisible = false;
this.saveReceiveCheck();
});
},

View File

@@ -0,0 +1,132 @@
<template>
<div class="test-assembly-task">
<el-card>
<div class="search-container">
<span class="show-text">任务类型:</span>
<el-select
v-model="taskType"
placeholder="请选择任务类型"
style="width: 150px; margin-right: 10px"
@change="searchTable"
>
<el-option label="全部" value="全部" />
<el-option label="阀类" value="阀类" />
<el-option label="系统类" value="系统类" />
</el-select>
<span class="show-text">生产订单:</span>
<el-input
v-model="productionOrder"
placeholder="请输入生产订单"
clearable
style="width: 150px; margin-right: 10px"
@keyup.enter.native="searchTable"
/>
<span class="show-text">销售订单:</span>
<el-input
v-model="salesOrder"
placeholder="请输入销售订单"
clearable
style="width: 150px; margin-right: 10px"
@keyup.enter.native="searchTable"
/>
<span class="show-text">物料名称:</span>
<el-input
v-model="materialName"
placeholder="请输入物料名称"
clearable
style="width: 160px; margin-right: 10px"
@keyup.enter.native="searchTable"
/>
<span class="show-text">物料编码:</span>
<el-input
v-model="materialCode"
placeholder="请输入物料编码"
clearable
style="width: 180px; margin-right: 10px"
@keyup.enter.native="searchTable"
/>
<el-button :disabled="loading" icon="el-icon-search" plain type="primary" @click="searchTable">查询</el-button>
</div>
<el-table
v-loading="loading"
:data="tableData"
:height="'72vh'"
border
element-loading-background="rgba(0, 0, 0, 0.2)"
element-loading-spinner="el-icon-loading"
highlight-current-row
size="mini"
style="width: 100%; margin-top: 20px"
tooltip-effect="dark"
>
<el-table-column align="center" label="序号" type="index" width="60" fixed />
<el-table-column align="center" prop="销售订单" label="销售订单" width="120" fixed show-overflow-tooltip />
<el-table-column align="center" prop="生产订单" label="生产订单" width="100" fixed />
<el-table-column align="center" prop="物料名称" label="物料名称" width="170" show-overflow-tooltip />
<el-table-column align="center" prop="物料编码" label="物料编码" width="180" show-overflow-tooltip />
<el-table-column align="center" prop="计划数量" label="计划数量" width="100" />
<el-table-column align="center" prop="完成数量" label="完成数量" width="100" />
<el-table-column align="center" prop="检验数量" label="检验数量" width="100" />
<el-table-column align="center" prop="检验合格数量" label="检验合格数量" width="120" />
<el-table-column align="center" prop="检验不合格数量" label="检验不合格数量" width="130" />
</el-table>
</el-card>
</div>
</template>
<script>
export default {
name: 'TestAssemblyTask',
data() {
return {
taskType: '全部',
productionOrder: '',
salesOrder: '',
materialName: '',
materialCode: '',
loading: false,
tableData: []
}
},
mounted() {
this.searchTable()
},
methods: {
searchTable() {
this.loading = true
const param = []
param.push(['任务类型', this.taskType])
param.push(['生产订单', this.productionOrder])
param.push(['销售订单', this.salesOrder])
param.push(['物料名称', this.materialName])
param.push(['物料编码', this.materialCode])
const data = this.CreateData('11', '质量管理_测试装配任务_查询', param)
this.ExecDatabase(data).then(response => {
this.tableData = response.data || []
}).catch(error => {
this.$message.error('查询失败:' + error.message)
}).finally(() => {
this.loading = false
})
}
}
}
</script>
<style scoped>
.test-assembly-task {
padding: 10px;
}
.search-container {
display: flex;
align-items: center;
flex-wrap: wrap;
}
.show-text {
font-size: 14px;
margin-right: 6px;
}
</style>

View File

@@ -52,6 +52,11 @@
<span type="success">{{ scope.row.roles_function }}</span>
</template>
</el-table-column>
<el-table-column align="center" label="班组" prop="班组" show-overflow-tooltip>
<template slot-scope="scope">
<span type="success">{{ scope.row.班组 }}</span>
</template>
</el-table-column>
<el-table-column align="center" label="操作" min-width="450">
<template slot-scope="scope">
<el-button icon="el-icon-refresh-right" style="font-family: MiSans Regular,serif;color: #4d77d6"
@@ -111,6 +116,27 @@
<el-form-item label="工号" prop="account">
<el-input v-model="form1.account" placeholder="请输入工号" readonly style="width: 240px;border-radius: 4px" />
</el-form-item>
<el-form-item label="班组" prop="班组">
<el-select
v-model="form1.team"
clearable
placeholder="请选择"
style="width: 150px; margin-right: 10px"
>
<el-option label="装配" value="装配" />
<el-option label="电气" value="电气" />
<el-option label="机加" value="机加" />
<el-option label="质检" value="质检" />
<el-option label="技术" value="技术" />
<el-option label="计划" value="计划" />
<el-option label="库房" value="库房" />
<el-option label="采购" value="采购" />
<el-option label="销售" value="销售" />
<el-option label="售后" value="售后" />
<el-option label="工艺" value="工艺" />
<el-option label="其他" value="其他" />
</el-select>
</el-form-item>
<!-- <el-form-item label="密码" prop="password">-->
<!-- <el-input-->
<!-- v-model="form1.password"-->
@@ -167,7 +193,8 @@ export default {
PersonalName: '',
account: '',
password: '',
PersonalroleValue: ''
PersonalroleValue: '',
team:''
},
rules1: {
PersonalName: [{ required: true, message: '请输入姓名', trigger: 'blur' }],
@@ -179,7 +206,8 @@ export default {
tableData: [],
total: 0, // 总条数
pageSize: 10, // 每页显示条数
pageList: 1 // 后台获取页
pageList: 1, // 后台获取页
team:''
}
},
created() {
@@ -251,7 +279,8 @@ export default {
password: response.data.result[i].password,
roles_number: parseInt(response.data.result[i].Roles_number),
roles_function: response.data.result[i].Roles_Function,
isClient: response.data.result[i].isClient
isClient: response.data.result[i].isClient,
班组:response.data.result[i].班组
})
}
}
@@ -270,6 +299,7 @@ export default {
this.form1.account = row.account
this.form1.password = row.password
this.form1.PersonalroleValue = row.roles_number
this.form1.team = row.班组
this.title1 = '编辑人员'
this.dialogFormVisible1 = true
},
@@ -284,6 +314,7 @@ export default {
param[2] = ['password', this.form1.password]
param[3] = ['Personnel_Name', this.form1.PersonalName]
param[4] = ['Roles_number', this.form1.PersonalroleValue]
param[5] = ['班组', this.form1.team]
if (this.form1.account === '' || this.form1.account === null) {
this.$message.error('请输入工号')
} else if (this.form1.password === '' || this.form1.password === null) {

View File

@@ -0,0 +1,9 @@
IF COL_LENGTH(N'dbo.MES_接口_生产计划', N'预计送检日期') IS NULL
BEGIN
ALTER TABLE [dbo].[MES_接口_生产计划] ADD [] datetime NULL;
END;
IF COL_LENGTH(N'dbo.MES_接口_生产计划', N'销售要求日期') IS NULL
BEGIN
ALTER TABLE [dbo].[MES_接口_生产计划] ADD [] datetime NULL;
END;

View File

@@ -0,0 +1,17 @@
ALTER VIEW dbo.View_生产订单_MES
AS
SELECT a., a., b., a., a., a., a., b. AS , a., a.,
a., a., a., a., a., a., a., a., b., b., b., b., b.,
b., b., b., b., b., b., b., b., b., b., b., b.,
b., b., b., b., b., b., b., b., b., b., b.,
b., b., b., b., b., b., b., b., b., b., b., b., b., b.,
b.AID AS TaskAID, b., b., b., b., b., b., b., b.,
a. AS , b., a., b., a., b., b., b., a., a.,
a., a., a. AS Expr1, b., dbo.MES_资源主数据.VisCode, a., a., a., b.,
a., a., a., a., b., a., dbo._零件图纸.worker, b., b., a.,
a., a., a., a.
FROM dbo.MES_接口_生产计划_生产任务 AS b LEFT OUTER JOIN
dbo._零件图纸 ON b. = dbo._零件图纸.num LEFT OUTER JOIN
dbo.MES_资源主数据 ON b. = dbo.MES_资源主数据.Name RIGHT OUTER JOIN
dbo.MES_接口_生产计划 AS a ON b. = a.
WHERE (b. = 'pit_Resource') AND (a. IS NULL)

View File

@@ -0,0 +1,17 @@
CREATE VIEW dbo.View_生产订单_MES
AS
SELECT a., a., b., a., a., a., a., b. AS , a., a.,
a., a., a., a., a., a., a., a., b., b., b., b., b.,
b., b., b., b., b., b., b., b., b., b., b., b.,
b., b., b., b., b., b., b., b., b., b., b.,
b., b., b., b., b., b., b., b., b., b., b., b., b., b.,
b.AID AS TaskAID, b., b., b., b., b., b., b., b.,
a. AS , b., a., b., a., b., b., b., a., a.,
a., a., a. AS Expr1, b., dbo.MES_资源主数据.VisCode, a., a., a., b.,
a., a., a., a., b., a., dbo._零件图纸.worker, b., b., a.,
a., a.
FROM dbo.MES_接口_生产计划_生产任务 AS b LEFT OUTER JOIN
dbo._零件图纸 ON b. = dbo._零件图纸.num LEFT OUTER JOIN
dbo.MES_资源主数据 ON b. = dbo.MES_资源主数据.Name RIGHT OUTER JOIN
dbo.MES_接口_生产计划 AS a ON b. = a.
WHERE (b. = 'pit_Resource') AND (a. IS NULL)

View File

@@ -0,0 +1,30 @@
CREATE OR ALTER PROCEDURE [dbo].[_可执行任务数]
AS
BEGIN
SET NOCOUNT ON;
;WITH base AS (
SELECT
CASE WHEN LIKE '%系统%' THEN 1 ELSE 0 END AS ,
ISNULL(, 0) AS ,
,
ISNULL(,
CASE
WHEN LIKE '%系统%' THEN DATEADD(DAY, 3, )
ELSE DATEADD(DAY, 3, )
END
) AS
FROM [dbo].[View_生产订单_MES]
WHERE [] = 'pit_Resource'
AND [] LIKE '%装配%'
AND ISNULL(, 0) < 4
AND [] NOT LIKE '%软管总成%'
AND [] NOT LIKE '%发货部件%'
AND [] <> ''
)
SELECT
SUM(CASE WHEN = 0 AND = 1 THEN 1 ELSE 0 END) AS ,
SUM(CASE WHEN = 1 AND IS NOT NULL THEN 1 ELSE 0 END) AS ,
SUM(CASE WHEN CAST( AS date) < CAST(GETDATE() AS date) THEN 1 ELSE 0 END) AS
FROM base;
END;

View File

@@ -0,0 +1,21 @@
CREATE OR ALTER PROCEDURE [dbo].[_可执行任务数]
AS
BEGIN
SET NOCOUNT ON;
SELECT
SUM(CASE WHEN NOT LIKE '%系统%' AND ISNULL(, 0) = 1 THEN 1 ELSE 0 END) AS ,
SUM(CASE WHEN LIKE '%系统%' AND IS NOT NULL THEN 1 ELSE 0 END) AS ,
SUM(CASE
WHEN NOT LIKE '%系统%' AND ISNULL(, 0) = 1 THEN 1
WHEN LIKE '%系统%' AND IS NOT NULL THEN 1
ELSE 0
END) AS
FROM [dbo].[View_生产订单_MES]
WHERE [] = 'pit_Resource'
AND [] LIKE '%装配%'
AND ISNULL(, 0) < 4
AND [] NOT LIKE '%软管总成%'
AND [] NOT LIKE '%发货部件%'
AND [] <> '';
END;

View File

@@ -0,0 +1,21 @@
CREATE PROCEDURE [dbo].[_可执行任务数]
AS
BEGIN
SET NOCOUNT ON;
SELECT
SUM(CASE WHEN NOT LIKE '%系统%' AND ISNULL(, 0) = 1 THEN 1 ELSE 0 END) AS ,
SUM(CASE WHEN LIKE '%系统%' AND IS NOT NULL THEN 1 ELSE 0 END) AS ,
SUM(CASE
WHEN NOT LIKE '%系统%' AND ISNULL(, 0) = 1 THEN 1
WHEN LIKE '%系统%' AND IS NOT NULL THEN 1
ELSE 0
END) AS
FROM [dbo].[View_生产订单_MES]
WHERE [] = 'pit_Resource'
AND [] LIKE '%装配%'
AND ISNULL(, 0) < 4
AND [] NOT LIKE '%软管总成%'
AND [] NOT LIKE '%发货部件%'
AND [] <> '';
END;

View File

@@ -0,0 +1,21 @@
CREATE OR ALTER PROCEDURE [dbo].[_可执行任务数]
AS
BEGIN
SET NOCOUNT ON;
SELECT
SUM(CASE WHEN NOT LIKE '%系统%' AND IS NOT NULL THEN 1 ELSE 0 END) AS ,
SUM(CASE WHEN LIKE '%系统%' AND IS NOT NULL THEN 1 ELSE 0 END) AS ,
SUM(CASE
WHEN NOT LIKE '%系统%' AND IS NOT NULL THEN 1
WHEN LIKE '%系统%' AND IS NOT NULL THEN 1
ELSE 0
END) AS
FROM [dbo].[View_生产订单_MES]
WHERE [] = 'pit_Resource'
AND [] LIKE '%装配%'
AND ISNULL(, 0) < 4
AND [] NOT LIKE '%软管总成%'
AND [] NOT LIKE '%发货部件%'
AND [] <> '';
END;

View File

@@ -0,0 +1,129 @@
ALTER PROCEDURE [dbo].[_系统类任务查询]
@ int=0,
@ nvarchar(50)='', --
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@1 nvarchar(50)='',
@2 nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='全部' , --
@ nvarchar(50)='全部',
@ nvarchar(50)='不含'
AS
BEGIN
declare @selectStr nvarchar(max)
declare @selectStrWhere nvarchar(max)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 like ''%系统%'' and isnull(任务状态,0)<4'
if(@='自制件') --
set @selectStr='
SELECT [计划数量订单],isnull(开工时间,0) as 开工时间,isnull(进度,0) as 进度,[TaskAID],v.[合同号],v.[订单编号] as 订单号,
[订单行号],[订单拆分内码] as 拆分内码,[物料编号] as 产品编码,[物料描述] as 产品名称,TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS VARCHAR(30)))) AS 计划数量,
[计划完成] as 要求完工日期,[工序名称],完成数量,v.计划号,收料数量,外协分组,v.任务状态,v.齐套时间,v.派工时间,v.齐套,v.要求发货日期,
case when [加急状态]=1 then ''加急'' else '''' end as 加急状态,性质,isnull(总工时,0) as 总工时,[占用情况]
,[排产状态],[工序计划数量],指派对象编号,指派对象,TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS VARCHAR(30)))) AS 指派数量,计划开始时间,计划完成时间,最晚开始时间,
[派工状态],[外协通知],[优先级],[未完成说明],[派工特殊说明],[最后编辑人],[最后编辑时间],[二次派工],s.交货日期理论齐套日期 as 交货日期,
case when zj.计划号 is not null then '''' else '''' end as 终检,ISNULL(g.标准工时, 0) as 标准工时,钣金预达时间,ISNULL(预计送检日期, DATEADD(DAY, 3, 钣金预达时间)) as 预计送检日期,销售要求日期,
ISNULL(zp.装配工时, 0) as 任务装配工时,
ISNULL(zj1.质检工时, 0) as 任务质检工时,
ISNULL(htzp.合同装配工时, 0) as 合同装配工时,
ISNULL(htzj.合同质检工时, 0) as 合同质检工时,
ISNULL(zp.装配工序说明, '''') as 装配工序说明,
ISNULL(zj1.质检工序说明, '''') as 质检工序说明,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), lc.流程描述), N'','') WITHIN GROUP (ORDER BY lc.流程ID)
FROM [YL_MESDB].[dbo].[流程表] lc
WHERE lc.已关联计划号 = v.[订单编号]
), '''') as 异常报警信息,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
FROM (
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
FROM [dbo].[YL_加工中心_操作记录表] t
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
WHERE t.操作类别 = ''开始加工''
AND t.结束时间 IS NULL
AND t.操作数值 IS NOT NULL
AND pt.订单编号 = v.[订单编号]
AND ry.班组 = ''装配''
) jxz
), '''') as 装配进行中,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
FROM (
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
FROM [dbo].[YL_加工中心_操作记录表] t
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
WHERE t.操作类别 = ''开始加工''
AND t.结束时间 IS NULL
AND t.操作数值 IS NOT NULL
AND pt.订单编号 = v.[订单编号]
AND ry.班组 = ''质检''
) jxz
), '''') as 质检进行中 FROM [View_生产订单_MES] v
LEFT JOIN (
SELECT DISTINCT 计划号
FROM dbo.YL_质量检验_质检记录
WHERE 质检类型 = ''终检''
) zj ON v.[订单编号] = zj.计划号
LEFT JOIN [dbo].[车间生产管理工艺_零件生产工艺_工艺库] g -- 新增LEFT JOIN
ON v.[订单编号] = g.订单编号
AND v.[订单行号] = g.工艺顺序
LEFT JOIN (
SELECT gs.订单号, SUM(gs.总时长) as 装配工时,max(gs.工序说明) as 装配工序说明
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''装配''
GROUP BY gs.订单号
) zp ON v.[订单编号] = zp.订单号
LEFT JOIN (
SELECT gs.订单号, SUM(gs.总时长) as 质检工时,max(gs.工序说明) as 质检工序说明
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''质检''
GROUP BY gs.订单号
) zj1 ON v.[订单编号] = zj1.订单号
LEFT JOIN (
SELECT gs.合同号, SUM(gs.总时长) as 合同装配工时
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''装配''
GROUP BY gs.合同号
) htzp ON v.[合同号] = htzp.合同号
LEFT JOIN (
SELECT gs.合同号, SUM(gs.总时长) as 合同质检工时
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''质检''
GROUP BY gs.合同号
) htzj ON v.[合同号] = htzj.合同号
left join SAP.SBO_YL.dbo.UBT_MES_ORDROPEN2 s
on v.合同号 = s.项目号 and v.物料编号 = s.物料号'
if(@>0)set @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+Convert(VARCHAR(10),@)
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and v.[合同号] like ''%'+@+'%'''
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@+'%'''
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@+'%'''
if(@ = '不含')set @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%'''
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@+''''
if(@1 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@1+''''
if(@2 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@2+''''
if(@ <>'')set @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@+''''
if(@ <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@+''''
if(@='未完成')set @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0'
else if(@='已完成')set @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1'
if(@='自制件') set @selectStrWhere=@selectStrWhere + ' and [不装配] <> '''''
if(@='装配件') set @selectStrWhere=@selectStrWhere + ' and [不装配] = '''''
if(@<>'全部') set @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@+''', '',''))'
set @selectStrWhere = @selectStrWhere+ 'ORDER BY
CASE WHEN 钣金预达时间 IS NULL THEN 1 ELSE 0 END,
钣金预达时间,v.[合同号] '
set @selectStr=@selectStr+@selectStrWhere
print @selectStr
EXEC sp_executesql @selectStr
END

View File

@@ -0,0 +1,129 @@
ALTER PROCEDURE [dbo].[_系统类任务查询]
@ int=0,
@ nvarchar(50)='', --
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@1 nvarchar(50)='',
@2 nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='全部' , --
@ nvarchar(50)='全部',
@ nvarchar(50)='不含'
AS
BEGIN
declare @selectStr nvarchar(max)
declare @selectStrWhere nvarchar(max)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 like ''%系统%'' and isnull(任务状态,0)<4'
if(@='自制件') --
set @selectStr='
SELECT [计划数量订单],isnull(开工时间,0) as 开工时间,isnull(进度,0) as 进度,[TaskAID],v.[合同号],v.[订单编号] as 订单号,
[订单行号],[订单拆分内码] as 拆分内码,[物料编号] as 产品编码,[物料描述] as 产品名称,TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS VARCHAR(30)))) AS 计划数量,
[计划完成] as 要求完工日期,[工序名称],完成数量,v.计划号,收料数量,外协分组,v.任务状态,v.齐套时间,v.派工时间,v.齐套,v.要求发货日期,
case when [加急状态]=1 then ''加急'' else '''' end as 加急状态,性质,isnull(总工时,0) as 总工时,[占用情况]
,[排产状态],[工序计划数量],指派对象编号,指派对象,TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS VARCHAR(30)))) AS 指派数量,计划开始时间,计划完成时间,最晚开始时间,
[派工状态],[外协通知],[优先级],[未完成说明],[派工特殊说明],[最后编辑人],[最后编辑时间],[二次派工],s.交货日期理论齐套日期 as 交货日期,
case when zj.计划号 is not null then '''' else '''' end as 终检,ISNULL(g.标准工时, 0) as 标准工时,钣金预达时间,
ISNULL(zp.装配工时, 0) as 任务装配工时,
ISNULL(zj1.质检工时, 0) as 任务质检工时,
ISNULL(htzp.合同装配工时, 0) as 合同装配工时,
ISNULL(htzj.合同质检工时, 0) as 合同质检工时,
ISNULL(zp.装配工序说明, '''') as 装配工序说明,
ISNULL(zj1.质检工序说明, '''') as 质检工序说明,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), lc.流程描述), N'','') WITHIN GROUP (ORDER BY lc.流程ID)
FROM [YL_MESDB].[dbo].[流程表] lc
WHERE lc.已关联计划号 = v.[订单编号]
), '''') as 异常报警信息,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
FROM (
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
FROM [dbo].[YL_加工中心_操作记录表] t
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
WHERE t.操作类别 = ''开始加工''
AND t.结束时间 IS NULL
AND t.操作数值 IS NOT NULL
AND pt.订单编号 = v.[订单编号]
AND ry.班组 = ''装配''
) jxz
), '''') as 装配进行中,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
FROM (
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
FROM [dbo].[YL_加工中心_操作记录表] t
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
WHERE t.操作类别 = ''开始加工''
AND t.结束时间 IS NULL
AND t.操作数值 IS NOT NULL
AND pt.订单编号 = v.[订单编号]
AND ry.班组 = ''质检''
) jxz
), '''') as 质检进行中 FROM [View_生产订单_MES] v
LEFT JOIN (
SELECT DISTINCT 计划号
FROM dbo.YL_质量检验_质检记录
WHERE 质检类型 = ''终检''
) zj ON v.[订单编号] = zj.计划号
LEFT JOIN [dbo].[车间生产管理工艺_零件生产工艺_工艺库] g -- 新增LEFT JOIN
ON v.[订单编号] = g.订单编号
AND v.[订单行号] = g.工艺顺序
LEFT JOIN (
SELECT gs.订单号, SUM(gs.总时长) as 装配工时,max(gs.工序说明) as 装配工序说明
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''装配''
GROUP BY gs.订单号
) zp ON v.[订单编号] = zp.订单号
LEFT JOIN (
SELECT gs.订单号, SUM(gs.总时长) as 质检工时,max(gs.工序说明) as 质检工序说明
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''质检''
GROUP BY gs.订单号
) zj1 ON v.[订单编号] = zj1.订单号
LEFT JOIN (
SELECT gs.合同号, SUM(gs.总时长) as 合同装配工时
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''装配''
GROUP BY gs.合同号
) htzp ON v.[合同号] = htzp.合同号
LEFT JOIN (
SELECT gs.合同号, SUM(gs.总时长) as 合同质检工时
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''质检''
GROUP BY gs.合同号
) htzj ON v.[合同号] = htzj.合同号
left join SAP.SBO_YL.dbo.UBT_MES_ORDROPEN2 s
on v.合同号 = s.项目号 and v.物料编号 = s.物料号'
if(@>0)set @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+Convert(VARCHAR(10),@)
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and [合同号] like ''%'+@+'%'''
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@+'%'''
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@+'%'''
if(@ = '不含')set @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%'''
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@+''''
if(@1 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@1+''''
if(@2 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@2+''''
if(@ <>'')set @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@+''''
if(@ <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@+''''
if(@='未完成')set @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0'
else if(@='已完成')set @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1'
if(@='自制件') set @selectStrWhere=@selectStrWhere + ' and [不装配] <> '''''
if(@='装配件') set @selectStrWhere=@selectStrWhere + ' and [不装配] = '''''
if(@<>'全部') set @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@+''', '',''))'
set @selectStrWhere = @selectStrWhere+ 'ORDER BY
CASE WHEN 钣金预达时间 IS NULL THEN 1 ELSE 0 END,
钣金预达时间,v.计划开始时间 '
set @selectStr=@selectStr+@selectStrWhere
print @selectStr
EXEC sp_executesql @selectStr
END

View File

@@ -0,0 +1,129 @@
ALTER PROCEDURE [dbo].[_系统类任务查询]
@ int=0,
@ nvarchar(50)='', --
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@1 nvarchar(50)='',
@2 nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='全部' , --
@ nvarchar(50)='全部',
@ nvarchar(50)='不含'
AS
BEGIN
declare @selectStr nvarchar(max)
declare @selectStrWhere nvarchar(max)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 like ''%系统%'' and isnull(任务状态,0)<4'
if(@='自制件') --
set @selectStr='
SELECT [计划数量订单],isnull(开工时间,0) as 开工时间,isnull(进度,0) as 进度,[TaskAID],v.[合同号],v.[订单编号] as 订单号,
[订单行号],[订单拆分内码] as 拆分内码,[物料编号] as 产品编码,[物料描述] as 产品名称,TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS VARCHAR(30)))) AS 计划数量,
[计划完成] as 要求完工日期,[工序名称],完成数量,v.计划号,收料数量,外协分组,v.任务状态,v.齐套时间,v.派工时间,v.齐套,v.要求发货日期,
case when [加急状态]=1 then ''加急'' else '''' end as 加急状态,性质,isnull(总工时,0) as 总工时,[占用情况]
,[排产状态],[工序计划数量],指派对象编号,指派对象,TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS VARCHAR(30)))) AS 指派数量,计划开始时间,计划完成时间,最晚开始时间,
[派工状态],[外协通知],[优先级],[未完成说明],[派工特殊说明],[最后编辑人],[最后编辑时间],[二次派工],s.交货日期理论齐套日期 as 交货日期,
case when zj.计划号 is not null then '''' else '''' end as 终检,ISNULL(g.标准工时, 0) as 标准工时,钣金预达时间,ISNULL(预计送检日期, DATEADD(DAY, 3, 钣金预达时间)) as 预计送检日期,ISNULL(销售要求日期, s.交货日期理论齐套日期) as 销售要求日期,
ISNULL(zp.装配工时, 0) as 任务装配工时,
ISNULL(zj1.质检工时, 0) as 任务质检工时,
ISNULL(htzp.合同装配工时, 0) as 合同装配工时,
ISNULL(htzj.合同质检工时, 0) as 合同质检工时,
ISNULL(zp.装配工序说明, '''') as 装配工序说明,
ISNULL(zj1.质检工序说明, '''') as 质检工序说明,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), lc.流程描述), N'','') WITHIN GROUP (ORDER BY lc.流程ID)
FROM [YL_MESDB].[dbo].[流程表] lc
WHERE lc.已关联计划号 = v.[订单编号]
), '''') as 异常报警信息,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
FROM (
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
FROM [dbo].[YL_加工中心_操作记录表] t
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
WHERE t.操作类别 = ''开始加工''
AND t.结束时间 IS NULL
AND t.操作数值 IS NOT NULL
AND pt.订单编号 = v.[订单编号]
AND ry.班组 = ''装配''
) jxz
), '''') as 装配进行中,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
FROM (
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
FROM [dbo].[YL_加工中心_操作记录表] t
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
WHERE t.操作类别 = ''开始加工''
AND t.结束时间 IS NULL
AND t.操作数值 IS NOT NULL
AND pt.订单编号 = v.[订单编号]
AND ry.班组 = ''质检''
) jxz
), '''') as 质检进行中 FROM [View_生产订单_MES] v
LEFT JOIN (
SELECT DISTINCT 计划号
FROM dbo.YL_质量检验_质检记录
WHERE 质检类型 = ''终检''
) zj ON v.[订单编号] = zj.计划号
LEFT JOIN [dbo].[车间生产管理工艺_零件生产工艺_工艺库] g -- 新增LEFT JOIN
ON v.[订单编号] = g.订单编号
AND v.[订单行号] = g.工艺顺序
LEFT JOIN (
SELECT gs.订单号, SUM(gs.总时长) as 装配工时,max(gs.工序说明) as 装配工序说明
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''装配''
GROUP BY gs.订单号
) zp ON v.[订单编号] = zp.订单号
LEFT JOIN (
SELECT gs.订单号, SUM(gs.总时长) as 质检工时,max(gs.工序说明) as 质检工序说明
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''质检''
GROUP BY gs.订单号
) zj1 ON v.[订单编号] = zj1.订单号
LEFT JOIN (
SELECT gs.合同号, SUM(gs.总时长) as 合同装配工时
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''装配''
GROUP BY gs.合同号
) htzp ON v.[合同号] = htzp.合同号
LEFT JOIN (
SELECT gs.合同号, SUM(gs.总时长) as 合同质检工时
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''质检''
GROUP BY gs.合同号
) htzj ON v.[合同号] = htzj.合同号
left join SAP.SBO_YL.dbo.UBT_MES_ORDROPEN2 s
on v.合同号 = s.项目号 and v.物料编号 = s.物料号'
if(@>0)set @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+Convert(VARCHAR(10),@)
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and v.[合同号] like ''%'+@+'%'''
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@+'%'''
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@+'%'''
if(@ = '不含')set @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%'''
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@+''''
if(@1 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@1+''''
if(@2 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@2+''''
if(@ <>'')set @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@+''''
if(@ <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@+''''
if(@='未完成')set @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0'
else if(@='已完成')set @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1'
if(@='自制件') set @selectStrWhere=@selectStrWhere + ' and [不装配] <> '''''
if(@='装配件') set @selectStrWhere=@selectStrWhere + ' and [不装配] = '''''
if(@<>'全部') set @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@+''', '',''))'
set @selectStrWhere = @selectStrWhere+ 'ORDER BY
CASE WHEN 钣金预达时间 IS NULL THEN 1 ELSE 0 END,
钣金预达时间,v.[合同号] '
set @selectStr=@selectStr+@selectStrWhere
print @selectStr
EXEC sp_executesql @selectStr
END

View File

@@ -0,0 +1,133 @@
ALTER PROCEDURE [dbo].[_系统类任务查询]
@ int=0,
@ nvarchar(50)='', --
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@1 nvarchar(50)='',
@2 nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='全部' , --
@ nvarchar(50)='全部',
@ nvarchar(50)='不含'
AS
BEGIN
declare @selectStr nvarchar(max)
declare @selectStrWhere nvarchar(max)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 like ''%系统%'' and isnull(任务状态,0)<4'
if(@='自制件') --
set @selectStr='
SELECT [计划数量订单],isnull(开工时间,0) as 开工时间,isnull(进度,0) as 进度,[TaskAID],v.[合同号],v.[订单编号] as 订单号,
[订单行号],[订单拆分内码] as 拆分内码,[物料编号] as 产品编码,[物料描述] as 产品名称,TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS VARCHAR(30)))) AS 计划数量,
[计划完成] as 要求完工日期,[工序名称],完成数量,v.计划号,收料数量,外协分组,v.任务状态,v.齐套时间,v.派工时间,v.齐套,v.要求发货日期,
case when [加急状态]=1 then ''加急'' else '''' end as 加急状态,性质,isnull(总工时,0) as 总工时,[占用情况]
,[排产状态],[工序计划数量],指派对象编号,指派对象,TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS VARCHAR(30)))) AS 指派数量,计划开始时间,计划完成时间,最晚开始时间,
[派工状态],[外协通知],[优先级],[未完成说明],[派工特殊说明],[最后编辑人],[最后编辑时间],[二次派工],s.交货日期理论齐套日期 as 交货日期,
case when zj.计划号 is not null then '''' else '''' end as 终检,ISNULL(g.标准工时, 0) as 标准工时,钣金预达时间,ISNULL(预计送检日期, DATEADD(DAY, 3, 钣金预达时间)) as 预计送检日期,ISNULL(销售要求日期, s.交货日期理论齐套日期) as 销售要求日期,
ISNULL(zp.装配工时, 0) as 任务装配工时,
ISNULL(zj1.质检工时, 0) as 任务质检工时,
ISNULL(htzp.合同装配工时, 0) as 合同装配工时,
ISNULL(htzj.合同质检工时, 0) as 合同质检工时,
ISNULL(zp.装配工序说明, '''') as 装配工序说明,
ISNULL(zj1.质检工序说明, '''') as 质检工序说明,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), lc.流程描述), N'','') WITHIN GROUP (ORDER BY lc.流程ID)
FROM [YL_MESDB].[dbo].[流程表] lc
WHERE lc.已关联计划号 = v.[订单编号]
), '''') as 异常报警信息,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
FROM (
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
FROM [dbo].[YL_加工中心_操作记录表] t
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
WHERE t.操作类别 = ''开始加工''
AND t.结束时间 IS NULL
AND t.操作数值 IS NOT NULL
AND pt.订单编号 = v.[订单编号]
AND ry.班组 = ''装配''
) jxz
), '''') as 装配进行中,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
FROM (
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
FROM [dbo].[YL_加工中心_操作记录表] t
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
WHERE t.操作类别 = ''开始加工''
AND t.结束时间 IS NULL
AND t.操作数值 IS NOT NULL
AND pt.订单编号 = v.[订单编号]
AND ry.班组 = ''质检''
) jxz
), '''') as 质检进行中 FROM [View_生产订单_MES] v
LEFT JOIN (
SELECT DISTINCT 计划号
FROM dbo.YL_质量检验_质检记录
WHERE 质检类型 = ''终检''
) zj ON v.[订单编号] = zj.计划号
LEFT JOIN [dbo].[车间生产管理工艺_零件生产工艺_工艺库] g -- 新增LEFT JOIN
ON v.[订单编号] = g.订单编号
AND v.[订单行号] = g.工艺顺序
LEFT JOIN (
SELECT gs.订单号, SUM(gs.总时长) as 装配工时,max(gs.工序说明) as 装配工序说明
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''装配''
GROUP BY gs.订单号
) zp ON v.[订单编号] = zp.订单号
LEFT JOIN (
SELECT gs.订单号, SUM(gs.总时长) as 质检工时,max(gs.工序说明) as 质检工序说明
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''质检''
GROUP BY gs.订单号
) zj1 ON v.[订单编号] = zj1.订单号
LEFT JOIN (
SELECT gs.合同号, SUM(gs.总时长) as 合同装配工时
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''装配''
GROUP BY gs.合同号
) htzp ON v.[合同号] = htzp.合同号
LEFT JOIN (
SELECT gs.合同号, SUM(gs.总时长) as 合同质检工时
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''质检''
GROUP BY gs.合同号
) htzj ON v.[合同号] = htzj.合同号
left join (
SELECT 项目号, 物料号, MIN(交货日期理论齐套日期) as 交货日期理论齐套日期
FROM SAP.SBO_YL.dbo.UBT_MES_ORDROPEN2
GROUP BY 项目号, 物料号
) s
on v.合同号 = s.项目号 and v.物料编号 = s.物料号'
if(@>0)set @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+Convert(VARCHAR(10),@)
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and v.[合同号] like ''%'+@+'%'''
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@+'%'''
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@+'%'''
if(@ = '不含')set @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%'''
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@+''''
if(@1 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@1+''''
if(@2 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@2+''''
if(@ <>'')set @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@+''''
if(@ <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@+''''
if(@='未完成')set @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0'
else if(@='已完成')set @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1'
if(@='自制件') set @selectStrWhere=@selectStrWhere + ' and [不装配] <> '''''
if(@='装配件') set @selectStrWhere=@selectStrWhere + ' and [不装配] = '''''
if(@<>'全部') set @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@+''', '',''))'
set @selectStrWhere = @selectStrWhere+ 'ORDER BY
CASE WHEN 钣金预达时间 IS NULL THEN 1 ELSE 0 END,
钣金预达时间,v.[合同号] '
set @selectStr=@selectStr+@selectStrWhere
print @selectStr
EXEC sp_executesql @selectStr
END

View File

@@ -0,0 +1,129 @@
CREATE PROCEDURE [dbo].[_系统类任务查询]
@ int=0,
@ nvarchar(50)='', --
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@1 nvarchar(50)='',
@2 nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='全部' , --
@ nvarchar(50)='全部',
@ nvarchar(50)='不含'
AS
BEGIN
declare @selectStr nvarchar(max)
declare @selectStrWhere nvarchar(max)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 like ''%系统%'' and isnull(任务状态,0)<4'
if(@='自制件') --
set @selectStr='
SELECT [计划数量订单],isnull(开工时间,0) as 开工时间,isnull(进度,0) as 进度,[TaskAID],v.[合同号],v.[订单编号] as 订单号,
[订单行号],[订单拆分内码] as 拆分内码,[物料编号] as 产品编码,[物料描述] as 产品名称,TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS VARCHAR(30)))) AS 计划数量,
[计划完成] as 要求完工日期,[工序名称],完成数量,v.计划号,收料数量,外协分组,v.任务状态,v.齐套时间,v.派工时间,v.齐套,v.要求发货日期,
case when [加急状态]=1 then ''加急'' else '''' end as 加急状态,性质,isnull(总工时,0) as 总工时,[占用情况]
,[排产状态],[工序计划数量],指派对象编号,指派对象,TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS VARCHAR(30)))) AS 指派数量,计划开始时间,计划完成时间,最晚开始时间,
[派工状态],[外协通知],[优先级],[未完成说明],[派工特殊说明],[最后编辑人],[最后编辑时间],[二次派工],s.交货日期理论齐套日期 as 交货日期,
case when zj.计划号 is not null then '''' else '''' end as 终检,ISNULL(g.标准工时, 0) as 标准工时,钣金预达时间,
ISNULL(zp.装配工时, 0) as 任务装配工时,
ISNULL(zj1.质检工时, 0) as 任务质检工时,
ISNULL(htzp.合同装配工时, 0) as 合同装配工时,
ISNULL(htzj.合同质检工时, 0) as 合同质检工时,
ISNULL(zp.装配工序说明, '''') as 装配工序说明,
ISNULL(zj1.质检工序说明, '''') as 质检工序说明,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), lc.流程描述), N'','') WITHIN GROUP (ORDER BY lc.流程ID)
FROM [YL_MESDB].[dbo].[流程表] lc
WHERE lc.已关联计划号 = v.[订单编号]
), '''') as 异常报警信息,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
FROM (
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
FROM [dbo].[YL_加工中心_操作记录表] t
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
WHERE t.操作类别 = ''开始加工''
AND t.结束时间 IS NULL
AND t.操作数值 IS NOT NULL
AND pt.订单编号 = v.[订单编号]
AND ry.班组 = ''装配''
) jxz
), '''') as 装配进行中,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
FROM (
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
FROM [dbo].[YL_加工中心_操作记录表] t
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
WHERE t.操作类别 = ''开始加工''
AND t.结束时间 IS NULL
AND t.操作数值 IS NOT NULL
AND pt.订单编号 = v.[订单编号]
AND ry.班组 = ''质检''
) jxz
), '''') as 质检进行中 FROM [View_生产订单_MES] v
LEFT JOIN (
SELECT DISTINCT 计划号
FROM dbo.YL_质量检验_质检记录
WHERE 质检类型 = ''终检''
) zj ON v.[订单编号] = zj.计划号
LEFT JOIN [dbo].[车间生产管理工艺_零件生产工艺_工艺库] g -- 新增LEFT JOIN
ON v.[订单编号] = g.订单编号
AND v.[订单行号] = g.工艺顺序
LEFT JOIN (
SELECT gs.订单号, SUM(gs.总时长) as 装配工时,max(gs.工序说明) as 装配工序说明
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''装配''
GROUP BY gs.订单号
) zp ON v.[订单编号] = zp.订单号
LEFT JOIN (
SELECT gs.订单号, SUM(gs.总时长) as 质检工时,max(gs.工序说明) as 质检工序说明
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''质检''
GROUP BY gs.订单号
) zj1 ON v.[订单编号] = zj1.订单号
LEFT JOIN (
SELECT gs.合同号, SUM(gs.总时长) as 合同装配工时
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''装配''
GROUP BY gs.合同号
) htzp ON v.[合同号] = htzp.合同号
LEFT JOIN (
SELECT gs.合同号, SUM(gs.总时长) as 合同质检工时
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''质检''
GROUP BY gs.合同号
) htzj ON v.[合同号] = htzj.合同号
left join SAP.SBO_YL.dbo.UBT_MES_ORDROPEN2 s
on v.合同号 = s.项目号 and v.物料编号 = s.物料号'
if(@>0)set @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+Convert(VARCHAR(10),@)
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and v.[合同号] like ''%'+@+'%'''
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@+'%'''
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@+'%'''
if(@ = '不含')set @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%'''
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@+''''
if(@1 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@1+''''
if(@2 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@2+''''
if(@ <>'')set @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@+''''
if(@ <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@+''''
if(@='未完成')set @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0'
else if(@='已完成')set @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1'
if(@='自制件') set @selectStrWhere=@selectStrWhere + ' and [不装配] <> '''''
if(@='装配件') set @selectStrWhere=@selectStrWhere + ' and [不装配] = '''''
if(@<>'全部') set @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@+''', '',''))'
set @selectStrWhere = @selectStrWhere+ 'ORDER BY
CASE WHEN 钣金预达时间 IS NULL THEN 1 ELSE 0 END,
钣金预达时间,v.[合同号] '
set @selectStr=@selectStr+@selectStrWhere
print @selectStr
EXEC sp_executesql @selectStr
END

View File

@@ -0,0 +1,98 @@
CREATE PROCEDURE [dbo].[_系统类任务查询]
@ int=0,
@ nvarchar(50)='', --
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@1 nvarchar(50)='',
@2 nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='全部' , --
@ nvarchar(50)='全部',
@ nvarchar(50)='不含'
AS
BEGIN
declare @selectStr nvarchar(4000)
declare @selectStrWhere nvarchar(4000)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 like ''%系统%'' and isnull(任务状态,0)<4'
if(@='自制件') --
set @selectStr='
SELECT [计划数量订单],isnull(开工时间,0) as 开工时间,isnull(进度,0) as 进度,[TaskAID],v.[合同号],v.[订单编号] as 订单号,
[订单行号],[订单拆分内码] as 拆分内码,[物料编号] as 产品编码,[物料描述] as 产品名称,TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS VARCHAR(30)))) AS 计划数量,
[计划完成] as 要求完工日期,[工序名称],完成数量,v.计划号,收料数量,外协分组,v.任务状态,v.齐套时间,v.派工时间,v.齐套,v.要求发货日期,
case when [加急状态]=1 then ''加急'' else '''' end as 加急状态,性质,isnull(总工时,0) as 总工时,[占用情况]
,[排产状态],[工序计划数量],指派对象编号,指派对象,TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS VARCHAR(30)))) AS 指派数量,计划开始时间,计划完成时间,最晚开始时间,
[派工状态],[外协通知],[优先级],[未完成说明],[派工特殊说明],[最后编辑人],[最后编辑时间],[二次派工],s.交货日期理论齐套日期 as 交货日期,
case when zj.计划号 is not null then '''' else '''' end as 终检,ISNULL(g.标准工时, 0) as 标准工时,钣金预达时间,
ISNULL(zp.装配工时, 0) as 任务装配工时,
ISNULL(zj1.质检工时, 0) as 任务质检工时,
ISNULL(htzp.合同装配工时, 0) as 合同装配工时,
ISNULL(htzj.合同质检工时, 0) as 合同质检工时,
ISNULL(zp.装配工序说明, '''') as 装配工序说明,
ISNULL(zj1.质检工序说明, '''') as 质检工序说明
FROM [View_生产订单_MES] v
LEFT JOIN (
SELECT DISTINCT 计划号
FROM dbo.YL_质量检验_质检记录
WHERE 质检类型 = ''终检''
) zj ON v.[订单编号] = zj.计划号
LEFT JOIN [dbo].[车间生产管理工艺_零件生产工艺_工艺库] g -- 新增LEFT JOIN
ON v.[订单编号] = g.订单编号
AND v.[订单行号] = g.工艺顺序
LEFT JOIN (
SELECT gs.订单号, SUM(gs.总时长) as 装配工时,max(gs.工序说明) as 装配工序说明
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''装配''
GROUP BY gs.订单号
) zp ON v.[订单编号] = zp.订单号
LEFT JOIN (
SELECT gs.订单号, SUM(gs.总时长) as 质检工时,max(gs.工序说明) as 质检工序说明
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''质检''
GROUP BY gs.订单号
) zj1 ON v.[订单编号] = zj1.订单号
LEFT JOIN (
SELECT gs.合同号, SUM(gs.总时长) as 合同装配工时
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''装配''
GROUP BY gs.合同号
) htzp ON v.[合同号] = htzp.合同号
LEFT JOIN (
SELECT gs.合同号, SUM(gs.总时长) as 合同质检工时
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''质检''
GROUP BY gs.合同号
) htzj ON v.[合同号] = htzj.合同号
left join SAP.SBO_YL.dbo.UBT_MES_ORDROPEN2 s
on v.合同号 = s.项目号 and v.物料编号 = s.物料号'
if(@>0)set @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+Convert(VARCHAR(10),@)
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and [合同号] like ''%'+@+'%'''
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@+'%'''
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@+'%'''
if(@ = '不含')set @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%'''
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@+''''
if(@1 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@1+''''
if(@2 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@2+''''
if(@ <>'')set @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@+''''
if(@ <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@+''''
if(@='未完成')set @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0'
else if(@='已完成')set @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1'
if(@='自制件') set @selectStrWhere=@selectStrWhere + ' and [不装配] <> '''''
if(@='装配件') set @selectStrWhere=@selectStrWhere + ' and [不装配] = '''''
if(@<>'全部') set @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@+''', '',''))'
set @selectStrWhere = @selectStrWhere+ 'ORDER BY
CASE WHEN 钣金预达时间 IS NULL THEN 1 ELSE 0 END,
钣金预达时间,v.计划开始时间 '
set @selectStr=@selectStr+@selectStrWhere
print @selectStr
EXEC sp_executesql @selectStr
END

View File

@@ -0,0 +1,129 @@
CREATE PROCEDURE [dbo].[_系统类任务查询]
@ int=0,
@ nvarchar(50)='', --
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@1 nvarchar(50)='',
@2 nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='全部' , --
@ nvarchar(50)='全部',
@ nvarchar(50)='不含'
AS
BEGIN
declare @selectStr nvarchar(max)
declare @selectStrWhere nvarchar(max)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 like ''%系统%'' and isnull(任务状态,0)<4'
if(@='自制件') --
set @selectStr='
SELECT [计划数量订单],isnull(开工时间,0) as 开工时间,isnull(进度,0) as 进度,[TaskAID],v.[合同号],v.[订单编号] as 订单号,
[订单行号],[订单拆分内码] as 拆分内码,[物料编号] as 产品编码,[物料描述] as 产品名称,TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS VARCHAR(30)))) AS 计划数量,
[计划完成] as 要求完工日期,[工序名称],完成数量,v.计划号,收料数量,外协分组,v.任务状态,v.齐套时间,v.派工时间,v.齐套,v.要求发货日期,
case when [加急状态]=1 then ''加急'' else '''' end as 加急状态,性质,isnull(总工时,0) as 总工时,[占用情况]
,[排产状态],[工序计划数量],指派对象编号,指派对象,TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS VARCHAR(30)))) AS 指派数量,计划开始时间,计划完成时间,最晚开始时间,
[派工状态],[外协通知],[优先级],[未完成说明],[派工特殊说明],[最后编辑人],[最后编辑时间],[二次派工],s.交货日期理论齐套日期 as 交货日期,
case when zj.计划号 is not null then '''' else '''' end as 终检,ISNULL(g.标准工时, 0) as 标准工时,钣金预达时间,ISNULL(预计送检日期, DATEADD(DAY, 3, 钣金预达时间)) as 预计送检日期,销售要求日期,
ISNULL(zp.装配工时, 0) as 任务装配工时,
ISNULL(zj1.质检工时, 0) as 任务质检工时,
ISNULL(htzp.合同装配工时, 0) as 合同装配工时,
ISNULL(htzj.合同质检工时, 0) as 合同质检工时,
ISNULL(zp.装配工序说明, '''') as 装配工序说明,
ISNULL(zj1.质检工序说明, '''') as 质检工序说明,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), lc.流程描述), N'','') WITHIN GROUP (ORDER BY lc.流程ID)
FROM [YL_MESDB].[dbo].[流程表] lc
WHERE lc.已关联计划号 = v.[订单编号]
), '''') as 异常报警信息,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
FROM (
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
FROM [dbo].[YL_加工中心_操作记录表] t
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
WHERE t.操作类别 = ''开始加工''
AND t.结束时间 IS NULL
AND t.操作数值 IS NOT NULL
AND pt.订单编号 = v.[订单编号]
AND ry.班组 = ''装配''
) jxz
), '''') as 装配进行中,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
FROM (
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
FROM [dbo].[YL_加工中心_操作记录表] t
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
WHERE t.操作类别 = ''开始加工''
AND t.结束时间 IS NULL
AND t.操作数值 IS NOT NULL
AND pt.订单编号 = v.[订单编号]
AND ry.班组 = ''质检''
) jxz
), '''') as 质检进行中 FROM [View_生产订单_MES] v
LEFT JOIN (
SELECT DISTINCT 计划号
FROM dbo.YL_质量检验_质检记录
WHERE 质检类型 = ''终检''
) zj ON v.[订单编号] = zj.计划号
LEFT JOIN [dbo].[车间生产管理工艺_零件生产工艺_工艺库] g -- 新增LEFT JOIN
ON v.[订单编号] = g.订单编号
AND v.[订单行号] = g.工艺顺序
LEFT JOIN (
SELECT gs.订单号, SUM(gs.总时长) as 装配工时,max(gs.工序说明) as 装配工序说明
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''装配''
GROUP BY gs.订单号
) zp ON v.[订单编号] = zp.订单号
LEFT JOIN (
SELECT gs.订单号, SUM(gs.总时长) as 质检工时,max(gs.工序说明) as 质检工序说明
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''质检''
GROUP BY gs.订单号
) zj1 ON v.[订单编号] = zj1.订单号
LEFT JOIN (
SELECT gs.合同号, SUM(gs.总时长) as 合同装配工时
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''装配''
GROUP BY gs.合同号
) htzp ON v.[合同号] = htzp.合同号
LEFT JOIN (
SELECT gs.合同号, SUM(gs.总时长) as 合同质检工时
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''质检''
GROUP BY gs.合同号
) htzj ON v.[合同号] = htzj.合同号
left join SAP.SBO_YL.dbo.UBT_MES_ORDROPEN2 s
on v.合同号 = s.项目号 and v.物料编号 = s.物料号'
if(@>0)set @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+Convert(VARCHAR(10),@)
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and v.[合同号] like ''%'+@+'%'''
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@+'%'''
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@+'%'''
if(@ = '不含')set @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%'''
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@+''''
if(@1 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@1+''''
if(@2 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@2+''''
if(@ <>'')set @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@+''''
if(@ <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@+''''
if(@='未完成')set @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0'
else if(@='已完成')set @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1'
if(@='自制件') set @selectStrWhere=@selectStrWhere + ' and [不装配] <> '''''
if(@='装配件') set @selectStrWhere=@selectStrWhere + ' and [不装配] = '''''
if(@<>'全部') set @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@+''', '',''))'
set @selectStrWhere = @selectStrWhere+ 'ORDER BY
CASE WHEN 钣金预达时间 IS NULL THEN 1 ELSE 0 END,
钣金预达时间,v.[合同号] '
set @selectStr=@selectStr+@selectStrWhere
print @selectStr
EXEC sp_executesql @selectStr
END

View File

@@ -0,0 +1,129 @@
CREATE PROCEDURE [dbo].[_系统类任务查询]
@ int=0,
@ nvarchar(50)='', --
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@1 nvarchar(50)='',
@2 nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='全部' , --
@ nvarchar(50)='全部',
@ nvarchar(50)='不含'
AS
BEGIN
declare @selectStr nvarchar(max)
declare @selectStrWhere nvarchar(max)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 like ''%系统%'' and isnull(任务状态,0)<4'
if(@='自制件') --
set @selectStr='
SELECT [计划数量订单],isnull(开工时间,0) as 开工时间,isnull(进度,0) as 进度,[TaskAID],v.[合同号],v.[订单编号] as 订单号,
[订单行号],[订单拆分内码] as 拆分内码,[物料编号] as 产品编码,[物料描述] as 产品名称,TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS VARCHAR(30)))) AS 计划数量,
[计划完成] as 要求完工日期,[工序名称],完成数量,v.计划号,收料数量,外协分组,v.任务状态,v.齐套时间,v.派工时间,v.齐套,v.要求发货日期,
case when [加急状态]=1 then ''加急'' else '''' end as 加急状态,性质,isnull(总工时,0) as 总工时,[占用情况]
,[排产状态],[工序计划数量],指派对象编号,指派对象,TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS VARCHAR(30)))) AS 指派数量,计划开始时间,计划完成时间,最晚开始时间,
[派工状态],[外协通知],[优先级],[未完成说明],[派工特殊说明],[最后编辑人],[最后编辑时间],[二次派工],s.交货日期理论齐套日期 as 交货日期,
case when zj.计划号 is not null then '''' else '''' end as 终检,ISNULL(g.标准工时, 0) as 标准工时,钣金预达时间,ISNULL(预计送检日期, DATEADD(DAY, 3, 钣金预达时间)) as 预计送检日期,ISNULL(销售要求日期, s.交货日期理论齐套日期) as 销售要求日期,
ISNULL(zp.装配工时, 0) as 任务装配工时,
ISNULL(zj1.质检工时, 0) as 任务质检工时,
ISNULL(htzp.合同装配工时, 0) as 合同装配工时,
ISNULL(htzj.合同质检工时, 0) as 合同质检工时,
ISNULL(zp.装配工序说明, '''') as 装配工序说明,
ISNULL(zj1.质检工序说明, '''') as 质检工序说明,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), lc.流程描述), N'','') WITHIN GROUP (ORDER BY lc.流程ID)
FROM [YL_MESDB].[dbo].[流程表] lc
WHERE lc.已关联计划号 = v.[订单编号]
), '''') as 异常报警信息,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
FROM (
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
FROM [dbo].[YL_加工中心_操作记录表] t
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
WHERE t.操作类别 = ''开始加工''
AND t.结束时间 IS NULL
AND t.操作数值 IS NOT NULL
AND pt.订单编号 = v.[订单编号]
AND ry.班组 = ''装配''
) jxz
), '''') as 装配进行中,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
FROM (
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
FROM [dbo].[YL_加工中心_操作记录表] t
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
WHERE t.操作类别 = ''开始加工''
AND t.结束时间 IS NULL
AND t.操作数值 IS NOT NULL
AND pt.订单编号 = v.[订单编号]
AND ry.班组 = ''质检''
) jxz
), '''') as 质检进行中 FROM [View_生产订单_MES] v
LEFT JOIN (
SELECT DISTINCT 计划号
FROM dbo.YL_质量检验_质检记录
WHERE 质检类型 = ''终检''
) zj ON v.[订单编号] = zj.计划号
LEFT JOIN [dbo].[车间生产管理工艺_零件生产工艺_工艺库] g -- 新增LEFT JOIN
ON v.[订单编号] = g.订单编号
AND v.[订单行号] = g.工艺顺序
LEFT JOIN (
SELECT gs.订单号, SUM(gs.总时长) as 装配工时,max(gs.工序说明) as 装配工序说明
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''装配''
GROUP BY gs.订单号
) zp ON v.[订单编号] = zp.订单号
LEFT JOIN (
SELECT gs.订单号, SUM(gs.总时长) as 质检工时,max(gs.工序说明) as 质检工序说明
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''质检''
GROUP BY gs.订单号
) zj1 ON v.[订单编号] = zj1.订单号
LEFT JOIN (
SELECT gs.合同号, SUM(gs.总时长) as 合同装配工时
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''装配''
GROUP BY gs.合同号
) htzp ON v.[合同号] = htzp.合同号
LEFT JOIN (
SELECT gs.合同号, SUM(gs.总时长) as 合同质检工时
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''质检''
GROUP BY gs.合同号
) htzj ON v.[合同号] = htzj.合同号
left join SAP.SBO_YL.dbo.UBT_MES_ORDROPEN2 s
on v.合同号 = s.项目号 and v.物料编号 = s.物料号'
if(@>0)set @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+Convert(VARCHAR(10),@)
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and v.[合同号] like ''%'+@+'%'''
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@+'%'''
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@+'%'''
if(@ = '不含')set @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%'''
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@+''''
if(@1 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@1+''''
if(@2 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@2+''''
if(@ <>'')set @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@+''''
if(@ <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@+''''
if(@='未完成')set @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0'
else if(@='已完成')set @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1'
if(@='自制件') set @selectStrWhere=@selectStrWhere + ' and [不装配] <> '''''
if(@='装配件') set @selectStrWhere=@selectStrWhere + ' and [不装配] = '''''
if(@<>'全部') set @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@+''', '',''))'
set @selectStrWhere = @selectStrWhere+ 'ORDER BY
CASE WHEN 钣金预达时间 IS NULL THEN 1 ELSE 0 END,
钣金预达时间,v.[合同号] '
set @selectStr=@selectStr+@selectStrWhere
print @selectStr
EXEC sp_executesql @selectStr
END

View File

@@ -0,0 +1,213 @@
ALTER PROCEDURE [dbo].[_系统类任务查询_导出]
@ int=0,
@ nvarchar(50)='', --
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@1 nvarchar(50)='',
@2 nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='全部' , --
@ nvarchar(50)='全部',
@ nvarchar(50)='不含'
AS
BEGIN
SET NOCOUNT ON;
SELECT '系统类任务_' + REPLACE(REPLACE(REPLACE(CONVERT(NVARCHAR(19), GETDATE(), 21), ':', ''), '-', ''), ' ', '-') AS tablename, '15' AS tabletype;
SELECT 256*18 AS ,
256*14 AS ,
256*10 AS ,
256*24 AS ,
256*24 AS ,
256*10 AS ,
256*8 AS ,
256*12 AS ,
256*18 AS ,
256*12 AS ,
256*20 AS ,
256*14 AS ,
256*14 AS ,
256*14 AS ,
256*40 AS ,
256*40 AS ,
256*40 AS ,
256*14 AS ,
256*14 AS ,
256*14 AS ,
256*14 AS ,
256*24 AS ,
256*24 AS ,
256*14 AS ,
256*12 AS ,
256*10 AS ,
256*18 AS ,
256*12 AS ,
256*10 AS ,
256*20 AS ,
256*20 AS ,
256*14 AS ,
256*14 AS ,
256*20 AS ;
SELECT 0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ;
DECLARE @selectStr nvarchar(max);
DECLARE @selectStrWhere nvarchar(max)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 like ''%系统%'' and isnull(任务状态,0)<4';
IF(@='自制件')
SET @selectStr='
SELECT
CONVERT(varchar(10), v.钣金预达时间, 120) AS 钣金预达时间,
v.[合同号] AS 销售订单,
v.[订单编号] AS 生产订单,
v.[物料编号] AS 物料编码,
v.[物料描述] AS 物料名称,
TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS varchar(30)))) AS 计划数,
CASE WHEN v.齐套 = 1 THEN '''' ELSE '''' END AS 齐套,
CONVERT(varchar(10), v.齐套时间, 120) AS 发料齐套,
CONVERT(varchar(10), v.计划开始时间, 120) AS 计划开始,
CONVERT(varchar(10), v.派工时间, 120) AS 派工时间,
[二次派工] AS 二次派工,
CONVERT(varchar(10), ISNULL(v.预计送检日期, DATEADD(DAY, 3, v.钣金预达时间)), 120) AS 预计送检日期,
CONVERT(varchar(10), v.销售要求日期, 120) AS 销售要求日期,
CONVERT(varchar(10), v.要求发货日期, 120) AS 发货要求日期,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), lc.流程描述), N'','') WITHIN GROUP (ORDER BY lc.流程ID)
FROM [YL_MESDB].[dbo].[流程表] lc
WHERE lc.已关联计划号 = v.[订单编号]
), '''') AS 异常报警信息,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
FROM (
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
FROM [dbo].[YL_加工中心_操作记录表] t
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
WHERE t.操作类别 = ''开始加工''
AND t.结束时间 IS NULL
AND t.操作数值 IS NOT NULL
AND pt.订单编号 = v.[订单编号]
AND ry.班组 = ''装配''
) jxz
), '''') AS 装配进行中,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
FROM (
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
FROM [dbo].[YL_加工中心_操作记录表] t
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
WHERE t.操作类别 = ''开始加工''
AND t.结束时间 IS NULL
AND t.操作数值 IS NOT NULL
AND pt.订单编号 = v.[订单编号]
AND ry.班组 = ''质检''
) jxz
), '''') AS 质检进行中,
CAST(ISNULL(zp.装配工时, 0) / 60.0 AS decimal(18,2)) AS 任务装配工时,
CAST(ISNULL(zj1.质检工时, 0) / 60.0 AS decimal(18,2)) AS 任务质检工时,
CAST(ISNULL(htzp.合同装配工时, 0) / 60.0 AS decimal(18,2)) AS 合同装配工时,
CAST(ISNULL(htzj.合同质检工时, 0) / 60.0 AS decimal(18,2)) AS 合同质检工时,
ISNULL(zp.装配工序说明, '''') AS 装配工序说明,
ISNULL(zj1.质检工序说明, '''') AS 质检工序说明,
CONVERT(varchar(10), [计划完成], 120) AS 要求完工日期,
[工序名称] AS 工序名称,
v.计划号 AS 计划号,
指派对象 AS 指派对象,
TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS varchar(30)))) AS 指派数量,
[优先级] AS 优先级,
[未完成说明] AS 未完成说明,
[派工特殊说明] AS 派工特殊备注,
[占用情况] AS 占用情况,
[最后编辑人] AS 最后编辑人,
CONVERT(varchar(19), [最后编辑时间], 120) AS 最后编辑时间
FROM [View_生产订单_MES] v
LEFT JOIN (
SELECT gs.订单号, SUM(gs.总时长) AS 装配工时, MAX(gs.工序说明) AS 装配工序说明
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''装配''
GROUP BY gs.订单号
) zp ON v.[订单编号] = zp.订单号
LEFT JOIN (
SELECT gs.订单号, SUM(gs.总时长) AS 质检工时, MAX(gs.工序说明) AS 质检工序说明
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''质检''
GROUP BY gs.订单号
) zj1 ON v.[订单编号] = zj1.订单号
LEFT JOIN (
SELECT gs.合同号, SUM(gs.总时长) AS 合同装配工时
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''装配''
GROUP BY gs.合同号
) htzp ON v.[合同号] = htzp.合同号
LEFT JOIN (
SELECT gs.合同号, SUM(gs.总时长) AS 合同质检工时
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''质检''
GROUP BY gs.合同号
) htzj ON v.[合同号] = htzj.合同号
LEFT JOIN SAP.SBO_YL.dbo.UBT_MES_ORDROPEN2 s
ON v.合同号 = s.项目号 AND v.物料编号 = s.物料号';
IF(@>0) SET @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+CONVERT(varchar(10),@);
IF(@<>'') SET @selectStrWhere=@selectStrWhere + ' and [合同号] like ''%'+@+'%''';
IF(@<>'') SET @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@+'%''';
IF(@<>'') SET @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@+'%''';
IF(@ = '不含') SET @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%''';
IF(@<>'') SET @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@+'''';
IF(@1 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@1+'''';
IF(@2 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@2+'''';
IF(@ <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@+'''';
IF(@ <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@+'''';
IF(@='未完成') SET @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0';
ELSE IF(@='已完成') SET @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1';
IF(@='自制件') SET @selectStrWhere=@selectStrWhere + ' and [不装配] <> ''''';
IF(@='装配件') SET @selectStrWhere=@selectStrWhere + ' and [不装配] = ''''';
IF(@<>'全部') SET @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@+''', '',''))';
SET @selectStrWhere = @selectStrWhere + ' ORDER BY CASE WHEN 钣金预达时间 IS NULL THEN 1 ELSE 0 END, 钣金预达时间, v.计划开始时间';
SET @selectStr=@selectStr+@selectStrWhere;
PRINT @selectStr;
EXEC sp_executesql @selectStr;
END

View File

@@ -0,0 +1,213 @@
ALTER PROCEDURE [dbo].[_系统类任务查询_导出]
@ int=0,
@ nvarchar(50)='', --
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@1 nvarchar(50)='',
@2 nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='全部' , --
@ nvarchar(50)='全部',
@ nvarchar(50)='不含'
AS
BEGIN
SET NOCOUNT ON;
SELECT '系统类任务_' + REPLACE(REPLACE(REPLACE(CONVERT(NVARCHAR(19), GETDATE(), 21), ':', ''), '-', ''), ' ', '-') AS tablename, '15' AS tabletype;
SELECT 256*18 AS ,
256*14 AS ,
256*10 AS ,
256*24 AS ,
256*24 AS ,
256*10 AS ,
256*8 AS ,
256*12 AS ,
256*18 AS ,
256*12 AS ,
256*20 AS ,
256*14 AS ,
256*14 AS ,
256*14 AS ,
256*40 AS ,
256*40 AS ,
256*40 AS ,
256*14 AS ,
256*14 AS ,
256*14 AS ,
256*14 AS ,
256*24 AS ,
256*24 AS ,
256*14 AS ,
256*12 AS ,
256*10 AS ,
256*18 AS ,
256*12 AS ,
256*10 AS ,
256*20 AS ,
256*20 AS ,
256*14 AS ,
256*14 AS ,
256*20 AS ;
SELECT 0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ;
DECLARE @selectStr nvarchar(max);
DECLARE @selectStrWhere nvarchar(max)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 like ''%系统%'' and isnull(任务状态,0)<4';
IF(@='自制件')
SET @selectStr='
SELECT
CONVERT(varchar(10), v.钣金预达时间, 120) AS 钣金预达时间,
v.[合同号] AS 销售订单,
v.[订单编号] AS 生产订单,
v.[物料编号] AS 物料编码,
v.[物料描述] AS 物料名称,
TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS varchar(30)))) AS 计划数,
CASE WHEN v.齐套 = 1 THEN '''' ELSE '''' END AS 齐套,
CONVERT(varchar(10), v.齐套时间, 120) AS 发料齐套,
CONVERT(varchar(10), v.计划开始时间, 120) AS 计划开始,
CONVERT(varchar(10), v.派工时间, 120) AS 派工时间,
[二次派工] AS 二次派工,
CONVERT(varchar(10), ISNULL(v.预计送检日期, DATEADD(DAY, 3, v.钣金预达时间)), 120) AS 预计送检日期,
CONVERT(varchar(10), v.销售要求日期, 120) AS 销售要求日期,
CONVERT(varchar(10), v.要求发货日期, 120) AS 发货要求日期,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), lc.流程描述), N'','') WITHIN GROUP (ORDER BY lc.流程ID)
FROM [YL_MESDB].[dbo].[流程表] lc
WHERE lc.已关联计划号 = v.[订单编号]
), '''') AS 异常报警信息,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
FROM (
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
FROM [dbo].[YL_加工中心_操作记录表] t
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
WHERE t.操作类别 = ''开始加工''
AND t.结束时间 IS NULL
AND t.操作数值 IS NOT NULL
AND pt.订单编号 = v.[订单编号]
AND ry.班组 = ''装配''
) jxz
), '''') AS 装配进行中,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
FROM (
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
FROM [dbo].[YL_加工中心_操作记录表] t
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
WHERE t.操作类别 = ''开始加工''
AND t.结束时间 IS NULL
AND t.操作数值 IS NOT NULL
AND pt.订单编号 = v.[订单编号]
AND ry.班组 = ''质检''
) jxz
), '''') AS 质检进行中,
CAST(ISNULL(zp.装配工时, 0) / 3600.0 AS decimal(18,2)) AS 任务装配工时,
CAST(ISNULL(zj1.质检工时, 0) / 3600.0 AS decimal(18,2)) AS 任务质检工时,
CAST(ISNULL(htzp.合同装配工时, 0) / 3600.0 AS decimal(18,2)) AS 合同装配工时,
CAST(ISNULL(htzj.合同质检工时, 0) / 3600.0 AS decimal(18,2)) AS 合同质检工时,
ISNULL(zp.装配工序说明, '''') AS 装配工序说明,
ISNULL(zj1.质检工序说明, '''') AS 质检工序说明,
CONVERT(varchar(10), [计划完成], 120) AS 要求完工日期,
[工序名称] AS 工序名称,
v.计划号 AS 计划号,
指派对象 AS 指派对象,
TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS varchar(30)))) AS 指派数量,
[优先级] AS 优先级,
[未完成说明] AS 未完成说明,
[派工特殊说明] AS 派工特殊备注,
[占用情况] AS 占用情况,
[最后编辑人] AS 最后编辑人,
CONVERT(varchar(19), [最后编辑时间], 120) AS 最后编辑时间
FROM [View_生产订单_MES] v
LEFT JOIN (
SELECT gs.订单号, SUM(gs.总时长) AS 装配工时, MAX(gs.工序说明) AS 装配工序说明
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''装配''
GROUP BY gs.订单号
) zp ON v.[订单编号] = zp.订单号
LEFT JOIN (
SELECT gs.订单号, SUM(gs.总时长) AS 质检工时, MAX(gs.工序说明) AS 质检工序说明
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''质检''
GROUP BY gs.订单号
) zj1 ON v.[订单编号] = zj1.订单号
LEFT JOIN (
SELECT gs.合同号, SUM(gs.总时长) AS 合同装配工时
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''装配''
GROUP BY gs.合同号
) htzp ON v.[合同号] = htzp.合同号
LEFT JOIN (
SELECT gs.合同号, SUM(gs.总时长) AS 合同质检工时
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''质检''
GROUP BY gs.合同号
) htzj ON v.[合同号] = htzj.合同号
LEFT JOIN SAP.SBO_YL.dbo.UBT_MES_ORDROPEN2 s
ON v.合同号 = s.项目号 AND v.物料编号 = s.物料号';
IF(@>0) SET @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+CONVERT(varchar(10),@);
IF(@<>'') SET @selectStrWhere=@selectStrWhere + ' and [合同号] like ''%'+@+'%''';
IF(@<>'') SET @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@+'%''';
IF(@<>'') SET @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@+'%''';
IF(@ = '不含') SET @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%''';
IF(@<>'') SET @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@+'''';
IF(@1 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@1+'''';
IF(@2 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@2+'''';
IF(@ <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@+'''';
IF(@ <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@+'''';
IF(@='未完成') SET @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0';
ELSE IF(@='已完成') SET @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1';
IF(@='自制件') SET @selectStrWhere=@selectStrWhere + ' and [不装配] <> ''''';
IF(@='装配件') SET @selectStrWhere=@selectStrWhere + ' and [不装配] = ''''';
IF(@<>'全部') SET @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@+''', '',''))';
SET @selectStrWhere = @selectStrWhere + ' ORDER BY CASE WHEN 钣金预达时间 IS NULL THEN 1 ELSE 0 END, 钣金预达时间, v.计划开始时间';
SET @selectStr=@selectStr+@selectStrWhere;
PRINT @selectStr;
EXEC sp_executesql @selectStr;
END

View File

@@ -0,0 +1,213 @@
ALTER PROCEDURE [dbo].[_系统类任务查询_导出]
@ int=0,
@ nvarchar(50)='', --
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@1 nvarchar(50)='',
@2 nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='全部' , --
@ nvarchar(50)='全部',
@ nvarchar(50)='不含'
AS
BEGIN
SET NOCOUNT ON;
SELECT '系统类任务_' + REPLACE(REPLACE(REPLACE(CONVERT(NVARCHAR(19), GETDATE(), 21), ':', ''), '-', ''), ' ', '-') AS tablename, '15' AS tabletype;
SELECT 256*18 AS ,
256*14 AS ,
256*10 AS ,
256*24 AS ,
256*24 AS ,
256*10 AS ,
256*8 AS ,
256*12 AS ,
256*18 AS ,
256*12 AS ,
256*20 AS ,
256*14 AS ,
256*14 AS ,
256*14 AS ,
256*40 AS ,
256*40 AS ,
256*40 AS ,
256*14 AS ,
256*14 AS ,
256*14 AS ,
256*14 AS ,
256*24 AS ,
256*24 AS ,
256*14 AS ,
256*12 AS ,
256*10 AS ,
256*18 AS ,
256*12 AS ,
256*10 AS ,
256*20 AS ,
256*20 AS ,
256*14 AS ,
256*14 AS ,
256*20 AS ;
SELECT 0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ;
DECLARE @selectStr nvarchar(max);
DECLARE @selectStrWhere nvarchar(max)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 like ''%系统%'' and isnull(任务状态,0)<4';
IF(@='自制件')
SET @selectStr='
SELECT
CONVERT(varchar(10), v.钣金预达时间, 120) AS 钣金预达时间,
v.[合同号] AS 销售订单,
v.[订单编号] AS 生产订单,
v.[物料编号] AS 物料编码,
v.[物料描述] AS 物料名称,
TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS varchar(30)))) AS 计划数,
CASE WHEN v.齐套 = 1 THEN '''' ELSE '''' END AS 齐套,
CONVERT(varchar(10), v.齐套时间, 120) AS 发料齐套,
CONVERT(varchar(10), v.计划开始时间, 120) AS 计划开始,
CONVERT(varchar(10), v.派工时间, 120) AS 派工时间,
[二次派工] AS 二次派工,
CONVERT(varchar(10), ISNULL(v.预计送检日期, DATEADD(DAY, 3, v.钣金预达时间)), 120) AS 预计送检日期,
CONVERT(varchar(10), ISNULL(v.销售要求日期, s.交货日期理论齐套日期), 120) AS 销售要求日期,
CONVERT(varchar(10), v.要求发货日期, 120) AS 发货要求日期,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), lc.流程描述), N'','') WITHIN GROUP (ORDER BY lc.流程ID)
FROM [YL_MESDB].[dbo].[流程表] lc
WHERE lc.已关联计划号 = v.[订单编号]
), '''') AS 异常报警信息,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
FROM (
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
FROM [dbo].[YL_加工中心_操作记录表] t
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
WHERE t.操作类别 = ''开始加工''
AND t.结束时间 IS NULL
AND t.操作数值 IS NOT NULL
AND pt.订单编号 = v.[订单编号]
AND ry.班组 = ''装配''
) jxz
), '''') AS 装配进行中,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
FROM (
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
FROM [dbo].[YL_加工中心_操作记录表] t
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
WHERE t.操作类别 = ''开始加工''
AND t.结束时间 IS NULL
AND t.操作数值 IS NOT NULL
AND pt.订单编号 = v.[订单编号]
AND ry.班组 = ''质检''
) jxz
), '''') AS 质检进行中,
CAST(ISNULL(zp.装配工时, 0) / 3600.0 AS decimal(18,2)) AS 任务装配工时,
CAST(ISNULL(zj1.质检工时, 0) / 3600.0 AS decimal(18,2)) AS 任务质检工时,
CAST(ISNULL(htzp.合同装配工时, 0) / 3600.0 AS decimal(18,2)) AS 合同装配工时,
CAST(ISNULL(htzj.合同质检工时, 0) / 3600.0 AS decimal(18,2)) AS 合同质检工时,
ISNULL(zp.装配工序说明, '''') AS 装配工序说明,
ISNULL(zj1.质检工序说明, '''') AS 质检工序说明,
CONVERT(varchar(10), [计划完成], 120) AS 要求完工日期,
[工序名称] AS 工序名称,
v.计划号 AS 计划号,
指派对象 AS 指派对象,
TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS varchar(30)))) AS 指派数量,
[优先级] AS 优先级,
[未完成说明] AS 未完成说明,
[派工特殊说明] AS 派工特殊备注,
[占用情况] AS 占用情况,
[最后编辑人] AS 最后编辑人,
CONVERT(varchar(19), [最后编辑时间], 120) AS 最后编辑时间
FROM [View_生产订单_MES] v
LEFT JOIN (
SELECT gs.订单号, SUM(gs.总时长) AS 装配工时, MAX(gs.工序说明) AS 装配工序说明
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''装配''
GROUP BY gs.订单号
) zp ON v.[订单编号] = zp.订单号
LEFT JOIN (
SELECT gs.订单号, SUM(gs.总时长) AS 质检工时, MAX(gs.工序说明) AS 质检工序说明
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''质检''
GROUP BY gs.订单号
) zj1 ON v.[订单编号] = zj1.订单号
LEFT JOIN (
SELECT gs.合同号, SUM(gs.总时长) AS 合同装配工时
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''装配''
GROUP BY gs.合同号
) htzp ON v.[合同号] = htzp.合同号
LEFT JOIN (
SELECT gs.合同号, SUM(gs.总时长) AS 合同质检工时
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''质检''
GROUP BY gs.合同号
) htzj ON v.[合同号] = htzj.合同号
LEFT JOIN SAP.SBO_YL.dbo.UBT_MES_ORDROPEN2 s
ON v.合同号 = s.项目号 AND v.物料编号 = s.物料号';
IF(@>0) SET @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+CONVERT(varchar(10),@);
IF(@<>'') SET @selectStrWhere=@selectStrWhere + ' and [合同号] like ''%'+@+'%''';
IF(@<>'') SET @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@+'%''';
IF(@<>'') SET @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@+'%''';
IF(@ = '不含') SET @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%''';
IF(@<>'') SET @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@+'''';
IF(@1 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@1+'''';
IF(@2 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@2+'''';
IF(@ <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@+'''';
IF(@ <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@+'''';
IF(@='未完成') SET @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0';
ELSE IF(@='已完成') SET @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1';
IF(@='自制件') SET @selectStrWhere=@selectStrWhere + ' and [不装配] <> ''''';
IF(@='装配件') SET @selectStrWhere=@selectStrWhere + ' and [不装配] = ''''';
IF(@<>'全部') SET @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@+''', '',''))';
SET @selectStrWhere = @selectStrWhere + ' ORDER BY CASE WHEN 钣金预达时间 IS NULL THEN 1 ELSE 0 END, 钣金预达时间, v.计划开始时间';
SET @selectStr=@selectStr+@selectStrWhere;
PRINT @selectStr;
EXEC sp_executesql @selectStr;
END

View File

@@ -0,0 +1,217 @@
ALTER PROCEDURE [dbo].[_系统类任务查询_导出]
@ int=0,
@ nvarchar(50)='', --
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@1 nvarchar(50)='',
@2 nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='全部' , --
@ nvarchar(50)='全部',
@ nvarchar(50)='不含'
AS
BEGIN
SET NOCOUNT ON;
SELECT '系统类任务_' + REPLACE(REPLACE(REPLACE(CONVERT(NVARCHAR(19), GETDATE(), 21), ':', ''), '-', ''), ' ', '-') AS tablename, '15' AS tabletype;
SELECT 256*18 AS ,
256*14 AS ,
256*10 AS ,
256*24 AS ,
256*24 AS ,
256*10 AS ,
256*8 AS ,
256*12 AS ,
256*18 AS ,
256*12 AS ,
256*20 AS ,
256*14 AS ,
256*14 AS ,
256*14 AS ,
256*40 AS ,
256*40 AS ,
256*40 AS ,
256*14 AS ,
256*14 AS ,
256*14 AS ,
256*14 AS ,
256*24 AS ,
256*24 AS ,
256*14 AS ,
256*12 AS ,
256*10 AS ,
256*18 AS ,
256*12 AS ,
256*10 AS ,
256*20 AS ,
256*20 AS ,
256*14 AS ,
256*14 AS ,
256*20 AS ;
SELECT 0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ;
DECLARE @selectStr nvarchar(max);
DECLARE @selectStrWhere nvarchar(max)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 like ''%系统%'' and isnull(任务状态,0)<4';
IF(@='自制件')
SET @selectStr='
SELECT
CONVERT(varchar(10), v.钣金预达时间, 120) AS 钣金预达时间,
v.[合同号] AS 销售订单,
v.[订单编号] AS 生产订单,
v.[物料编号] AS 物料编码,
v.[物料描述] AS 物料名称,
TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS varchar(30)))) AS 计划数,
CASE WHEN v.齐套 = 1 THEN '''' ELSE '''' END AS 齐套,
CONVERT(varchar(10), v.齐套时间, 120) AS 发料齐套,
CONVERT(varchar(10), v.计划开始时间, 120) AS 计划开始,
CONVERT(varchar(10), v.派工时间, 120) AS 派工时间,
[二次派工] AS 二次派工,
CONVERT(varchar(10), ISNULL(v.预计送检日期, DATEADD(DAY, 3, v.钣金预达时间)), 120) AS 预计送检日期,
CONVERT(varchar(10), ISNULL(v.销售要求日期, s.交货日期理论齐套日期), 120) AS 销售要求日期,
CONVERT(varchar(10), v.要求发货日期, 120) AS 发货要求日期,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), lc.流程描述), N'','') WITHIN GROUP (ORDER BY lc.流程ID)
FROM [YL_MESDB].[dbo].[流程表] lc
WHERE lc.已关联计划号 = v.[订单编号]
), '''') AS 异常报警信息,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
FROM (
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
FROM [dbo].[YL_加工中心_操作记录表] t
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
WHERE t.操作类别 = ''开始加工''
AND t.结束时间 IS NULL
AND t.操作数值 IS NOT NULL
AND pt.订单编号 = v.[订单编号]
AND ry.班组 = ''装配''
) jxz
), '''') AS 装配进行中,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
FROM (
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
FROM [dbo].[YL_加工中心_操作记录表] t
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
WHERE t.操作类别 = ''开始加工''
AND t.结束时间 IS NULL
AND t.操作数值 IS NOT NULL
AND pt.订单编号 = v.[订单编号]
AND ry.班组 = ''质检''
) jxz
), '''') AS 质检进行中,
CAST(ISNULL(zp.装配工时, 0) / 3600.0 AS decimal(18,2)) AS 任务装配工时,
CAST(ISNULL(zj1.质检工时, 0) / 3600.0 AS decimal(18,2)) AS 任务质检工时,
CAST(ISNULL(htzp.合同装配工时, 0) / 3600.0 AS decimal(18,2)) AS 合同装配工时,
CAST(ISNULL(htzj.合同质检工时, 0) / 3600.0 AS decimal(18,2)) AS 合同质检工时,
ISNULL(zp.装配工序说明, '''') AS 装配工序说明,
ISNULL(zj1.质检工序说明, '''') AS 质检工序说明,
CONVERT(varchar(10), [计划完成], 120) AS 要求完工日期,
[工序名称] AS 工序名称,
v.计划号 AS 计划号,
指派对象 AS 指派对象,
TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS varchar(30)))) AS 指派数量,
[优先级] AS 优先级,
[未完成说明] AS 未完成说明,
[派工特殊说明] AS 派工特殊备注,
[占用情况] AS 占用情况,
[最后编辑人] AS 最后编辑人,
CONVERT(varchar(19), [最后编辑时间], 120) AS 最后编辑时间
FROM [View_生产订单_MES] v
LEFT JOIN (
SELECT gs.订单号, SUM(gs.总时长) AS 装配工时, MAX(gs.工序说明) AS 装配工序说明
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''装配''
GROUP BY gs.订单号
) zp ON v.[订单编号] = zp.订单号
LEFT JOIN (
SELECT gs.订单号, SUM(gs.总时长) AS 质检工时, MAX(gs.工序说明) AS 质检工序说明
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''质检''
GROUP BY gs.订单号
) zj1 ON v.[订单编号] = zj1.订单号
LEFT JOIN (
SELECT gs.合同号, SUM(gs.总时长) AS 合同装配工时
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''装配''
GROUP BY gs.合同号
) htzp ON v.[合同号] = htzp.合同号
LEFT JOIN (
SELECT gs.合同号, SUM(gs.总时长) AS 合同质检工时
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''质检''
GROUP BY gs.合同号
) htzj ON v.[合同号] = htzj.合同号
LEFT JOIN (
SELECT 项目号, 物料号, MIN(交货日期理论齐套日期) as 交货日期理论齐套日期
FROM SAP.SBO_YL.dbo.UBT_MES_ORDROPEN2
GROUP BY 项目号, 物料号
) s
ON v.合同号 = s.项目号 AND v.物料编号 = s.物料号';
IF(@>0) SET @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+CONVERT(varchar(10),@);
IF(@<>'') SET @selectStrWhere=@selectStrWhere + ' and [合同号] like ''%'+@+'%''';
IF(@<>'') SET @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@+'%''';
IF(@<>'') SET @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@+'%''';
IF(@ = '不含') SET @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%''';
IF(@<>'') SET @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@+'''';
IF(@1 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@1+'''';
IF(@2 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@2+'''';
IF(@ <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@+'''';
IF(@ <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@+'''';
IF(@='未完成') SET @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0';
ELSE IF(@='已完成') SET @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1';
IF(@='自制件') SET @selectStrWhere=@selectStrWhere + ' and [不装配] <> ''''';
IF(@='装配件') SET @selectStrWhere=@selectStrWhere + ' and [不装配] = ''''';
IF(@<>'全部') SET @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@+''', '',''))';
SET @selectStrWhere = @selectStrWhere + ' ORDER BY CASE WHEN 钣金预达时间 IS NULL THEN 1 ELSE 0 END, 钣金预达时间, v.计划开始时间';
SET @selectStr=@selectStr+@selectStrWhere;
PRINT @selectStr;
EXEC sp_executesql @selectStr;
END

View File

@@ -0,0 +1,213 @@
CREATE PROCEDURE [dbo].[_系统类任务查询_导出]
@ int=0,
@ nvarchar(50)='', --
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@1 nvarchar(50)='',
@2 nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='全部' , --
@ nvarchar(50)='全部',
@ nvarchar(50)='不含'
AS
BEGIN
SET NOCOUNT ON;
SELECT '系统类任务_' + REPLACE(REPLACE(REPLACE(CONVERT(NVARCHAR(19), GETDATE(), 21), ':', ''), '-', ''), ' ', '-') AS tablename, '15' AS tabletype;
SELECT 256*18 AS ,
256*14 AS ,
256*10 AS ,
256*24 AS ,
256*24 AS ,
256*10 AS ,
256*8 AS ,
256*12 AS ,
256*18 AS ,
256*12 AS ,
256*20 AS ,
256*14 AS ,
256*14 AS ,
256*14 AS ,
256*40 AS ,
256*40 AS ,
256*40 AS ,
256*14 AS ,
256*14 AS ,
256*14 AS ,
256*14 AS ,
256*24 AS ,
256*24 AS ,
256*14 AS ,
256*12 AS ,
256*10 AS ,
256*18 AS ,
256*12 AS ,
256*10 AS ,
256*20 AS ,
256*20 AS ,
256*14 AS ,
256*14 AS ,
256*20 AS ;
SELECT 0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ;
DECLARE @selectStr nvarchar(max);
DECLARE @selectStrWhere nvarchar(max)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 like ''%系统%'' and isnull(任务状态,0)<4';
IF(@='自制件')
SET @selectStr='
SELECT
CONVERT(varchar(10), v.钣金预达时间, 120) AS 钣金预达时间,
v.[合同号] AS 销售订单,
v.[订单编号] AS 生产订单,
v.[物料编号] AS 物料编码,
v.[物料描述] AS 物料名称,
TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS varchar(30)))) AS 计划数,
CASE WHEN v.齐套 = 1 THEN '''' ELSE '''' END AS 齐套,
CONVERT(varchar(10), v.齐套时间, 120) AS 发料齐套,
CONVERT(varchar(10), v.计划开始时间, 120) AS 计划开始,
CONVERT(varchar(10), v.派工时间, 120) AS 派工时间,
[二次派工] AS 二次派工,
CONVERT(varchar(10), DATEADD(DAY, 3, CONVERT(date, v.齐套时间)), 120) AS 预计送检日期,
CONVERT(varchar(10), s.交货日期理论齐套日期, 120) AS 销售要求日期,
CONVERT(varchar(10), v.要求发货日期, 120) AS 发货要求日期,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), lc.流程描述), N'','') WITHIN GROUP (ORDER BY lc.流程ID)
FROM [YL_MESDB].[dbo].[流程表] lc
WHERE lc.已关联计划号 = v.[订单编号]
), '''') AS 异常报警信息,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
FROM (
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
FROM [dbo].[YL_加工中心_操作记录表] t
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
WHERE t.操作类别 = ''开始加工''
AND t.结束时间 IS NULL
AND t.操作数值 IS NOT NULL
AND pt.订单编号 = v.[订单编号]
AND ry.班组 = ''装配''
) jxz
), '''') AS 装配进行中,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
FROM (
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
FROM [dbo].[YL_加工中心_操作记录表] t
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
WHERE t.操作类别 = ''开始加工''
AND t.结束时间 IS NULL
AND t.操作数值 IS NOT NULL
AND pt.订单编号 = v.[订单编号]
AND ry.班组 = ''质检''
) jxz
), '''') AS 质检进行中,
CAST(ISNULL(zp.装配工时, 0) / 60.0 AS decimal(18,2)) AS 任务装配工时,
CAST(ISNULL(zj1.质检工时, 0) / 60.0 AS decimal(18,2)) AS 任务质检工时,
CAST(ISNULL(htzp.合同装配工时, 0) / 60.0 AS decimal(18,2)) AS 合同装配工时,
CAST(ISNULL(htzj.合同质检工时, 0) / 60.0 AS decimal(18,2)) AS 合同质检工时,
ISNULL(zp.装配工序说明, '''') AS 装配工序说明,
ISNULL(zj1.质检工序说明, '''') AS 质检工序说明,
CONVERT(varchar(10), [计划完成], 120) AS 要求完工日期,
[工序名称] AS 工序名称,
v.计划号 AS 计划号,
指派对象 AS 指派对象,
TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS varchar(30)))) AS 指派数量,
[优先级] AS 优先级,
[未完成说明] AS 未完成说明,
[派工特殊说明] AS 派工特殊备注,
[占用情况] AS 占用情况,
[最后编辑人] AS 最后编辑人,
CONVERT(varchar(19), [最后编辑时间], 120) AS 最后编辑时间
FROM [View_生产订单_MES] v
LEFT JOIN (
SELECT gs.订单号, SUM(gs.总时长) AS 装配工时, MAX(gs.工序说明) AS 装配工序说明
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''装配''
GROUP BY gs.订单号
) zp ON v.[订单编号] = zp.订单号
LEFT JOIN (
SELECT gs.订单号, SUM(gs.总时长) AS 质检工时, MAX(gs.工序说明) AS 质检工序说明
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''质检''
GROUP BY gs.订单号
) zj1 ON v.[订单编号] = zj1.订单号
LEFT JOIN (
SELECT gs.合同号, SUM(gs.总时长) AS 合同装配工时
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''装配''
GROUP BY gs.合同号
) htzp ON v.[合同号] = htzp.合同号
LEFT JOIN (
SELECT gs.合同号, SUM(gs.总时长) AS 合同质检工时
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''质检''
GROUP BY gs.合同号
) htzj ON v.[合同号] = htzj.合同号
LEFT JOIN SAP.SBO_YL.dbo.UBT_MES_ORDROPEN2 s
ON v.合同号 = s.项目号 AND v.物料编号 = s.物料号';
IF(@>0) SET @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+CONVERT(varchar(10),@);
IF(@<>'') SET @selectStrWhere=@selectStrWhere + ' and [合同号] like ''%'+@+'%''';
IF(@<>'') SET @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@+'%''';
IF(@<>'') SET @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@+'%''';
IF(@ = '不含') SET @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%''';
IF(@<>'') SET @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@+'''';
IF(@1 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@1+'''';
IF(@2 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@2+'''';
IF(@ <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@+'''';
IF(@ <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@+'''';
IF(@='未完成') SET @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0';
ELSE IF(@='已完成') SET @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1';
IF(@='自制件') SET @selectStrWhere=@selectStrWhere + ' and [不装配] <> ''''';
IF(@='装配件') SET @selectStrWhere=@selectStrWhere + ' and [不装配] = ''''';
IF(@<>'全部') SET @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@+''', '',''))';
SET @selectStrWhere = @selectStrWhere + ' ORDER BY CASE WHEN 钣金预达时间 IS NULL THEN 1 ELSE 0 END, 钣金预达时间, v.计划开始时间';
SET @selectStr=@selectStr+@selectStrWhere;
PRINT @selectStr;
EXEC sp_executesql @selectStr;
END

View File

@@ -0,0 +1,213 @@
CREATE PROCEDURE [dbo].[_系统类任务查询_导出]
@ int=0,
@ nvarchar(50)='', --
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@1 nvarchar(50)='',
@2 nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='全部' , --
@ nvarchar(50)='全部',
@ nvarchar(50)='不含'
AS
BEGIN
SET NOCOUNT ON;
SELECT '系统类任务_' + REPLACE(REPLACE(REPLACE(CONVERT(NVARCHAR(19), GETDATE(), 21), ':', ''), '-', ''), ' ', '-') AS tablename, '15' AS tabletype;
SELECT 256*18 AS ,
256*14 AS ,
256*10 AS ,
256*24 AS ,
256*24 AS ,
256*10 AS ,
256*8 AS ,
256*12 AS ,
256*18 AS ,
256*12 AS ,
256*20 AS ,
256*14 AS ,
256*14 AS ,
256*14 AS ,
256*40 AS ,
256*40 AS ,
256*40 AS ,
256*14 AS ,
256*14 AS ,
256*14 AS ,
256*14 AS ,
256*24 AS ,
256*24 AS ,
256*14 AS ,
256*12 AS ,
256*10 AS ,
256*18 AS ,
256*12 AS ,
256*10 AS ,
256*20 AS ,
256*20 AS ,
256*14 AS ,
256*14 AS ,
256*20 AS ;
SELECT 0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ;
DECLARE @selectStr nvarchar(max);
DECLARE @selectStrWhere nvarchar(max)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 like ''%系统%'' and isnull(任务状态,0)<4';
IF(@='自制件')
SET @selectStr='
SELECT
CONVERT(varchar(10), v.钣金预达时间, 120) AS 钣金预达时间,
v.[合同号] AS 销售订单,
v.[订单编号] AS 生产订单,
v.[物料编号] AS 物料编码,
v.[物料描述] AS 物料名称,
TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS varchar(30)))) AS 计划数,
CASE WHEN v.齐套 = 1 THEN '''' ELSE '''' END AS 齐套,
CONVERT(varchar(10), v.齐套时间, 120) AS 发料齐套,
CONVERT(varchar(10), v.计划开始时间, 120) AS 计划开始,
CONVERT(varchar(10), v.派工时间, 120) AS 派工时间,
[二次派工] AS 二次派工,
CONVERT(varchar(10), ISNULL(v.预计送检日期, DATEADD(DAY, 3, v.钣金预达时间)), 120) AS 预计送检日期,
CONVERT(varchar(10), v.销售要求日期, 120) AS 销售要求日期,
CONVERT(varchar(10), v.要求发货日期, 120) AS 发货要求日期,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), lc.流程描述), N'','') WITHIN GROUP (ORDER BY lc.流程ID)
FROM [YL_MESDB].[dbo].[流程表] lc
WHERE lc.已关联计划号 = v.[订单编号]
), '''') AS 异常报警信息,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
FROM (
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
FROM [dbo].[YL_加工中心_操作记录表] t
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
WHERE t.操作类别 = ''开始加工''
AND t.结束时间 IS NULL
AND t.操作数值 IS NOT NULL
AND pt.订单编号 = v.[订单编号]
AND ry.班组 = ''装配''
) jxz
), '''') AS 装配进行中,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
FROM (
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
FROM [dbo].[YL_加工中心_操作记录表] t
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
WHERE t.操作类别 = ''开始加工''
AND t.结束时间 IS NULL
AND t.操作数值 IS NOT NULL
AND pt.订单编号 = v.[订单编号]
AND ry.班组 = ''质检''
) jxz
), '''') AS 质检进行中,
CAST(ISNULL(zp.装配工时, 0) / 60.0 AS decimal(18,2)) AS 任务装配工时,
CAST(ISNULL(zj1.质检工时, 0) / 60.0 AS decimal(18,2)) AS 任务质检工时,
CAST(ISNULL(htzp.合同装配工时, 0) / 60.0 AS decimal(18,2)) AS 合同装配工时,
CAST(ISNULL(htzj.合同质检工时, 0) / 60.0 AS decimal(18,2)) AS 合同质检工时,
ISNULL(zp.装配工序说明, '''') AS 装配工序说明,
ISNULL(zj1.质检工序说明, '''') AS 质检工序说明,
CONVERT(varchar(10), [计划完成], 120) AS 要求完工日期,
[工序名称] AS 工序名称,
v.计划号 AS 计划号,
指派对象 AS 指派对象,
TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS varchar(30)))) AS 指派数量,
[优先级] AS 优先级,
[未完成说明] AS 未完成说明,
[派工特殊说明] AS 派工特殊备注,
[占用情况] AS 占用情况,
[最后编辑人] AS 最后编辑人,
CONVERT(varchar(19), [最后编辑时间], 120) AS 最后编辑时间
FROM [View_生产订单_MES] v
LEFT JOIN (
SELECT gs.订单号, SUM(gs.总时长) AS 装配工时, MAX(gs.工序说明) AS 装配工序说明
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''装配''
GROUP BY gs.订单号
) zp ON v.[订单编号] = zp.订单号
LEFT JOIN (
SELECT gs.订单号, SUM(gs.总时长) AS 质检工时, MAX(gs.工序说明) AS 质检工序说明
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''质检''
GROUP BY gs.订单号
) zj1 ON v.[订单编号] = zj1.订单号
LEFT JOIN (
SELECT gs.合同号, SUM(gs.总时长) AS 合同装配工时
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''装配''
GROUP BY gs.合同号
) htzp ON v.[合同号] = htzp.合同号
LEFT JOIN (
SELECT gs.合同号, SUM(gs.总时长) AS 合同质检工时
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''质检''
GROUP BY gs.合同号
) htzj ON v.[合同号] = htzj.合同号
LEFT JOIN SAP.SBO_YL.dbo.UBT_MES_ORDROPEN2 s
ON v.合同号 = s.项目号 AND v.物料编号 = s.物料号';
IF(@>0) SET @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+CONVERT(varchar(10),@);
IF(@<>'') SET @selectStrWhere=@selectStrWhere + ' and [合同号] like ''%'+@+'%''';
IF(@<>'') SET @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@+'%''';
IF(@<>'') SET @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@+'%''';
IF(@ = '不含') SET @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%''';
IF(@<>'') SET @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@+'''';
IF(@1 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@1+'''';
IF(@2 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@2+'''';
IF(@ <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@+'''';
IF(@ <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@+'''';
IF(@='未完成') SET @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0';
ELSE IF(@='已完成') SET @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1';
IF(@='自制件') SET @selectStrWhere=@selectStrWhere + ' and [不装配] <> ''''';
IF(@='装配件') SET @selectStrWhere=@selectStrWhere + ' and [不装配] = ''''';
IF(@<>'全部') SET @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@+''', '',''))';
SET @selectStrWhere = @selectStrWhere + ' ORDER BY CASE WHEN 钣金预达时间 IS NULL THEN 1 ELSE 0 END, 钣金预达时间, v.计划开始时间';
SET @selectStr=@selectStr+@selectStrWhere;
PRINT @selectStr;
EXEC sp_executesql @selectStr;
END

View File

@@ -0,0 +1,213 @@
CREATE PROCEDURE [dbo].[_系统类任务查询_导出]
@ int=0,
@ nvarchar(50)='', --
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@1 nvarchar(50)='',
@2 nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='全部' , --
@ nvarchar(50)='全部',
@ nvarchar(50)='不含'
AS
BEGIN
SET NOCOUNT ON;
SELECT '系统类任务_' + REPLACE(REPLACE(REPLACE(CONVERT(NVARCHAR(19), GETDATE(), 21), ':', ''), '-', ''), ' ', '-') AS tablename, '15' AS tabletype;
SELECT 256*18 AS ,
256*14 AS ,
256*10 AS ,
256*24 AS ,
256*24 AS ,
256*10 AS ,
256*8 AS ,
256*12 AS ,
256*18 AS ,
256*12 AS ,
256*20 AS ,
256*14 AS ,
256*14 AS ,
256*14 AS ,
256*40 AS ,
256*40 AS ,
256*40 AS ,
256*14 AS ,
256*14 AS ,
256*14 AS ,
256*14 AS ,
256*24 AS ,
256*24 AS ,
256*14 AS ,
256*12 AS ,
256*10 AS ,
256*18 AS ,
256*12 AS ,
256*10 AS ,
256*20 AS ,
256*20 AS ,
256*14 AS ,
256*14 AS ,
256*20 AS ;
SELECT 0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ;
DECLARE @selectStr nvarchar(max);
DECLARE @selectStrWhere nvarchar(max)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 like ''%系统%'' and isnull(任务状态,0)<4';
IF(@='自制件')
SET @selectStr='
SELECT
CONVERT(varchar(10), v.钣金预达时间, 120) AS 钣金预达时间,
v.[合同号] AS 销售订单,
v.[订单编号] AS 生产订单,
v.[物料编号] AS 物料编码,
v.[物料描述] AS 物料名称,
TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS varchar(30)))) AS 计划数,
CASE WHEN v.齐套 = 1 THEN '''' ELSE '''' END AS 齐套,
CONVERT(varchar(10), v.齐套时间, 120) AS 发料齐套,
CONVERT(varchar(10), v.计划开始时间, 120) AS 计划开始,
CONVERT(varchar(10), v.派工时间, 120) AS 派工时间,
[二次派工] AS 二次派工,
CONVERT(varchar(10), ISNULL(v.预计送检日期, DATEADD(DAY, 3, v.钣金预达时间)), 120) AS 预计送检日期,
CONVERT(varchar(10), v.销售要求日期, 120) AS 销售要求日期,
CONVERT(varchar(10), v.要求发货日期, 120) AS 发货要求日期,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), lc.流程描述), N'','') WITHIN GROUP (ORDER BY lc.流程ID)
FROM [YL_MESDB].[dbo].[流程表] lc
WHERE lc.已关联计划号 = v.[订单编号]
), '''') AS 异常报警信息,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
FROM (
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
FROM [dbo].[YL_加工中心_操作记录表] t
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
WHERE t.操作类别 = ''开始加工''
AND t.结束时间 IS NULL
AND t.操作数值 IS NOT NULL
AND pt.订单编号 = v.[订单编号]
AND ry.班组 = ''装配''
) jxz
), '''') AS 装配进行中,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
FROM (
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
FROM [dbo].[YL_加工中心_操作记录表] t
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
WHERE t.操作类别 = ''开始加工''
AND t.结束时间 IS NULL
AND t.操作数值 IS NOT NULL
AND pt.订单编号 = v.[订单编号]
AND ry.班组 = ''质检''
) jxz
), '''') AS 质检进行中,
CAST(ISNULL(zp.装配工时, 0) / 3600.0 AS decimal(18,2)) AS 任务装配工时,
CAST(ISNULL(zj1.质检工时, 0) / 3600.0 AS decimal(18,2)) AS 任务质检工时,
CAST(ISNULL(htzp.合同装配工时, 0) / 3600.0 AS decimal(18,2)) AS 合同装配工时,
CAST(ISNULL(htzj.合同质检工时, 0) / 3600.0 AS decimal(18,2)) AS 合同质检工时,
ISNULL(zp.装配工序说明, '''') AS 装配工序说明,
ISNULL(zj1.质检工序说明, '''') AS 质检工序说明,
CONVERT(varchar(10), [计划完成], 120) AS 要求完工日期,
[工序名称] AS 工序名称,
v.计划号 AS 计划号,
指派对象 AS 指派对象,
TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS varchar(30)))) AS 指派数量,
[优先级] AS 优先级,
[未完成说明] AS 未完成说明,
[派工特殊说明] AS 派工特殊备注,
[占用情况] AS 占用情况,
[最后编辑人] AS 最后编辑人,
CONVERT(varchar(19), [最后编辑时间], 120) AS 最后编辑时间
FROM [View_生产订单_MES] v
LEFT JOIN (
SELECT gs.订单号, SUM(gs.总时长) AS 装配工时, MAX(gs.工序说明) AS 装配工序说明
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''装配''
GROUP BY gs.订单号
) zp ON v.[订单编号] = zp.订单号
LEFT JOIN (
SELECT gs.订单号, SUM(gs.总时长) AS 质检工时, MAX(gs.工序说明) AS 质检工序说明
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''质检''
GROUP BY gs.订单号
) zj1 ON v.[订单编号] = zj1.订单号
LEFT JOIN (
SELECT gs.合同号, SUM(gs.总时长) AS 合同装配工时
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''装配''
GROUP BY gs.合同号
) htzp ON v.[合同号] = htzp.合同号
LEFT JOIN (
SELECT gs.合同号, SUM(gs.总时长) AS 合同质检工时
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''质检''
GROUP BY gs.合同号
) htzj ON v.[合同号] = htzj.合同号
LEFT JOIN SAP.SBO_YL.dbo.UBT_MES_ORDROPEN2 s
ON v.合同号 = s.项目号 AND v.物料编号 = s.物料号';
IF(@>0) SET @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+CONVERT(varchar(10),@);
IF(@<>'') SET @selectStrWhere=@selectStrWhere + ' and [合同号] like ''%'+@+'%''';
IF(@<>'') SET @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@+'%''';
IF(@<>'') SET @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@+'%''';
IF(@ = '不含') SET @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%''';
IF(@<>'') SET @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@+'''';
IF(@1 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@1+'''';
IF(@2 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@2+'''';
IF(@ <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@+'''';
IF(@ <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@+'''';
IF(@='未完成') SET @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0';
ELSE IF(@='已完成') SET @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1';
IF(@='自制件') SET @selectStrWhere=@selectStrWhere + ' and [不装配] <> ''''';
IF(@='装配件') SET @selectStrWhere=@selectStrWhere + ' and [不装配] = ''''';
IF(@<>'全部') SET @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@+''', '',''))';
SET @selectStrWhere = @selectStrWhere + ' ORDER BY CASE WHEN 钣金预达时间 IS NULL THEN 1 ELSE 0 END, 钣金预达时间, v.计划开始时间';
SET @selectStr=@selectStr+@selectStrWhere;
PRINT @selectStr;
EXEC sp_executesql @selectStr;
END

View File

@@ -0,0 +1,213 @@
CREATE PROCEDURE [dbo].[_系统类任务查询_导出]
@ int=0,
@ nvarchar(50)='', --
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@1 nvarchar(50)='',
@2 nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='全部' , --
@ nvarchar(50)='全部',
@ nvarchar(50)='不含'
AS
BEGIN
SET NOCOUNT ON;
SELECT '系统类任务_' + REPLACE(REPLACE(REPLACE(CONVERT(NVARCHAR(19), GETDATE(), 21), ':', ''), '-', ''), ' ', '-') AS tablename, '15' AS tabletype;
SELECT 256*18 AS ,
256*14 AS ,
256*10 AS ,
256*24 AS ,
256*24 AS ,
256*10 AS ,
256*8 AS ,
256*12 AS ,
256*18 AS ,
256*12 AS ,
256*20 AS ,
256*14 AS ,
256*14 AS ,
256*14 AS ,
256*40 AS ,
256*40 AS ,
256*40 AS ,
256*14 AS ,
256*14 AS ,
256*14 AS ,
256*14 AS ,
256*24 AS ,
256*24 AS ,
256*14 AS ,
256*12 AS ,
256*10 AS ,
256*18 AS ,
256*12 AS ,
256*10 AS ,
256*20 AS ,
256*20 AS ,
256*14 AS ,
256*14 AS ,
256*20 AS ;
SELECT 0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ;
DECLARE @selectStr nvarchar(max);
DECLARE @selectStrWhere nvarchar(max)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 like ''%系统%'' and isnull(任务状态,0)<4';
IF(@='自制件')
SET @selectStr='
SELECT
CONVERT(varchar(10), v.钣金预达时间, 120) AS 钣金预达时间,
v.[合同号] AS 销售订单,
v.[订单编号] AS 生产订单,
v.[物料编号] AS 物料编码,
v.[物料描述] AS 物料名称,
TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS varchar(30)))) AS 计划数,
CASE WHEN v.齐套 = 1 THEN '''' ELSE '''' END AS 齐套,
CONVERT(varchar(10), v.齐套时间, 120) AS 发料齐套,
CONVERT(varchar(10), v.计划开始时间, 120) AS 计划开始,
CONVERT(varchar(10), v.派工时间, 120) AS 派工时间,
[二次派工] AS 二次派工,
CONVERT(varchar(10), ISNULL(v.预计送检日期, DATEADD(DAY, 3, v.钣金预达时间)), 120) AS 预计送检日期,
CONVERT(varchar(10), ISNULL(v.销售要求日期, s.交货日期理论齐套日期), 120) AS 销售要求日期,
CONVERT(varchar(10), v.要求发货日期, 120) AS 发货要求日期,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), lc.流程描述), N'','') WITHIN GROUP (ORDER BY lc.流程ID)
FROM [YL_MESDB].[dbo].[流程表] lc
WHERE lc.已关联计划号 = v.[订单编号]
), '''') AS 异常报警信息,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
FROM (
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
FROM [dbo].[YL_加工中心_操作记录表] t
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
WHERE t.操作类别 = ''开始加工''
AND t.结束时间 IS NULL
AND t.操作数值 IS NOT NULL
AND pt.订单编号 = v.[订单编号]
AND ry.班组 = ''装配''
) jxz
), '''') AS 装配进行中,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
FROM (
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
FROM [dbo].[YL_加工中心_操作记录表] t
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
WHERE t.操作类别 = ''开始加工''
AND t.结束时间 IS NULL
AND t.操作数值 IS NOT NULL
AND pt.订单编号 = v.[订单编号]
AND ry.班组 = ''质检''
) jxz
), '''') AS 质检进行中,
CAST(ISNULL(zp.装配工时, 0) / 3600.0 AS decimal(18,2)) AS 任务装配工时,
CAST(ISNULL(zj1.质检工时, 0) / 3600.0 AS decimal(18,2)) AS 任务质检工时,
CAST(ISNULL(htzp.合同装配工时, 0) / 3600.0 AS decimal(18,2)) AS 合同装配工时,
CAST(ISNULL(htzj.合同质检工时, 0) / 3600.0 AS decimal(18,2)) AS 合同质检工时,
ISNULL(zp.装配工序说明, '''') AS 装配工序说明,
ISNULL(zj1.质检工序说明, '''') AS 质检工序说明,
CONVERT(varchar(10), [计划完成], 120) AS 要求完工日期,
[工序名称] AS 工序名称,
v.计划号 AS 计划号,
指派对象 AS 指派对象,
TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS varchar(30)))) AS 指派数量,
[优先级] AS 优先级,
[未完成说明] AS 未完成说明,
[派工特殊说明] AS 派工特殊备注,
[占用情况] AS 占用情况,
[最后编辑人] AS 最后编辑人,
CONVERT(varchar(19), [最后编辑时间], 120) AS 最后编辑时间
FROM [View_生产订单_MES] v
LEFT JOIN (
SELECT gs.订单号, SUM(gs.总时长) AS 装配工时, MAX(gs.工序说明) AS 装配工序说明
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''装配''
GROUP BY gs.订单号
) zp ON v.[订单编号] = zp.订单号
LEFT JOIN (
SELECT gs.订单号, SUM(gs.总时长) AS 质检工时, MAX(gs.工序说明) AS 质检工序说明
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''质检''
GROUP BY gs.订单号
) zj1 ON v.[订单编号] = zj1.订单号
LEFT JOIN (
SELECT gs.合同号, SUM(gs.总时长) AS 合同装配工时
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''装配''
GROUP BY gs.合同号
) htzp ON v.[合同号] = htzp.合同号
LEFT JOIN (
SELECT gs.合同号, SUM(gs.总时长) AS 合同质检工时
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''质检''
GROUP BY gs.合同号
) htzj ON v.[合同号] = htzj.合同号
LEFT JOIN SAP.SBO_YL.dbo.UBT_MES_ORDROPEN2 s
ON v.合同号 = s.项目号 AND v.物料编号 = s.物料号';
IF(@>0) SET @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+CONVERT(varchar(10),@);
IF(@<>'') SET @selectStrWhere=@selectStrWhere + ' and [合同号] like ''%'+@+'%''';
IF(@<>'') SET @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@+'%''';
IF(@<>'') SET @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@+'%''';
IF(@ = '不含') SET @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%''';
IF(@<>'') SET @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@+'''';
IF(@1 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@1+'''';
IF(@2 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@2+'''';
IF(@ <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@+'''';
IF(@ <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@+'''';
IF(@='未完成') SET @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0';
ELSE IF(@='已完成') SET @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1';
IF(@='自制件') SET @selectStrWhere=@selectStrWhere + ' and [不装配] <> ''''';
IF(@='装配件') SET @selectStrWhere=@selectStrWhere + ' and [不装配] = ''''';
IF(@<>'全部') SET @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@+''', '',''))';
SET @selectStrWhere = @selectStrWhere + ' ORDER BY CASE WHEN 钣金预达时间 IS NULL THEN 1 ELSE 0 END, 钣金预达时间, v.计划开始时间';
SET @selectStr=@selectStr+@selectStrWhere;
PRINT @selectStr;
EXEC sp_executesql @selectStr;
END

View File

@@ -0,0 +1,213 @@
CREATE PROCEDURE [dbo].[_系统类任务查询_导出]
@ int=0,
@ nvarchar(50)='', --
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@1 nvarchar(50)='',
@2 nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='全部' , --
@ nvarchar(50)='全部',
@ nvarchar(50)='不含'
AS
BEGIN
SET NOCOUNT ON;
SELECT '系统类任务_' + REPLACE(REPLACE(REPLACE(CONVERT(NVARCHAR(19), GETDATE(), 21), ':', ''), '-', ''), ' ', '-') AS tablename, '15' AS tabletype;
SELECT 256*18 AS ,
256*14 AS ,
256*10 AS ,
256*24 AS ,
256*24 AS ,
256*10 AS ,
256*8 AS ,
256*12 AS ,
256*18 AS ,
256*12 AS ,
256*20 AS ,
256*14 AS ,
256*14 AS ,
256*14 AS ,
256*40 AS ,
256*40 AS ,
256*40 AS ,
256*14 AS ,
256*14 AS ,
256*14 AS ,
256*14 AS ,
256*24 AS ,
256*24 AS ,
256*14 AS ,
256*12 AS ,
256*10 AS ,
256*18 AS ,
256*12 AS ,
256*10 AS ,
256*20 AS ,
256*20 AS ,
256*14 AS ,
256*14 AS ,
256*20 AS ;
SELECT 0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ;
DECLARE @selectStr nvarchar(max);
DECLARE @selectStrWhere nvarchar(max)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 like ''%系统%'' and isnull(任务状态,0)<4';
IF(@='自制件')
SET @selectStr='
SELECT
CONVERT(varchar(10), v.钣金预达时间, 120) AS 钣金预达时间,
v.[合同号] AS 销售订单,
v.[订单编号] AS 生产订单,
v.[物料编号] AS 物料编码,
v.[物料描述] AS 物料名称,
TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS varchar(30)))) AS 计划数,
CASE WHEN v.齐套 = 1 THEN '''' ELSE '''' END AS 齐套,
CONVERT(varchar(10), v.齐套时间, 120) AS 发料齐套,
CONVERT(varchar(10), v.计划开始时间, 120) AS 计划开始,
CONVERT(varchar(10), v.派工时间, 120) AS 派工时间,
[二次派工] AS 二次派工,
CONVERT(varchar(10), DATEADD(DAY, 3, CONVERT(date, v.齐套时间)), 120) AS 预计送检日期,
CONVERT(varchar(10), s.交货日期理论齐套日期, 120) AS 销售要求日期,
CONVERT(varchar(10), v.要求发货日期, 120) AS 发货要求日期,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), lc.流程描述), N'','') WITHIN GROUP (ORDER BY lc.流程ID)
FROM [YL_MESDB].[dbo].[流程表] lc
WHERE lc.已关联计划号 = v.[订单编号]
), '''') AS 异常报警信息,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
FROM (
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
FROM [dbo].[YL_加工中心_操作记录表] t
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
WHERE t.操作类别 = ''开始加工''
AND t.结束时间 IS NULL
AND t.操作数值 IS NOT NULL
AND pt.订单编号 = v.[订单编号]
AND ry.班组 = ''装配''
) jxz
), '''') AS 装配进行中,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
FROM (
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
FROM [dbo].[YL_加工中心_操作记录表] t
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
WHERE t.操作类别 = ''开始加工''
AND t.结束时间 IS NULL
AND t.操作数值 IS NOT NULL
AND pt.订单编号 = v.[订单编号]
AND ry.班组 = ''质检''
) jxz
), '''') AS 质检进行中,
CAST(ISNULL(zp.装配工时, 0) / 60.0 AS decimal(18,2)) AS 任务装配工时,
CAST(ISNULL(zj1.质检工时, 0) / 60.0 AS decimal(18,2)) AS 任务质检工时,
CAST(ISNULL(htzp.合同装配工时, 0) / 60.0 AS decimal(18,2)) AS 合同装配工时,
CAST(ISNULL(htzj.合同质检工时, 0) / 60.0 AS decimal(18,2)) AS 合同质检工时,
ISNULL(zp.装配工序说明, '''') AS 装配工序说明,
ISNULL(zj1.质检工序说明, '''') AS 质检工序说明,
CONVERT(varchar(10), [计划完成], 120) AS 要求完工日期,
[工序名称] AS 工序名称,
v.计划号 AS 计划号,
指派对象 AS 指派对象,
TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS varchar(30)))) AS 指派数量,
[优先级] AS 优先级,
[未完成说明] AS 未完成说明,
[派工特殊说明] AS 派工特殊备注,
[占用情况] AS 占用情况,
[最后编辑人] AS 最后编辑人,
CONVERT(varchar(19), [最后编辑时间], 120) AS 最后编辑时间
FROM [View_生产订单_MES] v
LEFT JOIN (
SELECT gs.订单号, SUM(gs.总时长) AS 装配工时, MAX(gs.工序说明) AS 装配工序说明
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''装配''
GROUP BY gs.订单号
) zp ON v.[订单编号] = zp.订单号
LEFT JOIN (
SELECT gs.订单号, SUM(gs.总时长) AS 质检工时, MAX(gs.工序说明) AS 质检工序说明
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''质检''
GROUP BY gs.订单号
) zj1 ON v.[订单编号] = zj1.订单号
LEFT JOIN (
SELECT gs.合同号, SUM(gs.总时长) AS 合同装配工时
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''装配''
GROUP BY gs.合同号
) htzp ON v.[合同号] = htzp.合同号
LEFT JOIN (
SELECT gs.合同号, SUM(gs.总时长) AS 合同质检工时
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''质检''
GROUP BY gs.合同号
) htzj ON v.[合同号] = htzj.合同号
LEFT JOIN SAP.SBO_YL.dbo.UBT_MES_ORDROPEN2 s
ON v.合同号 = s.项目号 AND v.物料编号 = s.物料号';
IF(@>0) SET @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+CONVERT(varchar(10),@);
IF(@<>'') SET @selectStrWhere=@selectStrWhere + ' and [合同号] like ''%'+@+'%''';
IF(@<>'') SET @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@+'%''';
IF(@<>'') SET @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@+'%''';
IF(@ = '不含') SET @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%''';
IF(@<>'') SET @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@+'''';
IF(@1 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@1+'''';
IF(@2 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@2+'''';
IF(@ <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@+'''';
IF(@ <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@+'''';
IF(@='未完成') SET @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0';
ELSE IF(@='已完成') SET @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1';
IF(@='自制件') SET @selectStrWhere=@selectStrWhere + ' and [不装配] <> ''''';
IF(@='装配件') SET @selectStrWhere=@selectStrWhere + ' and [不装配] = ''''';
IF(@<>'全部') SET @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@+''', '',''))';
SET @selectStrWhere = @selectStrWhere + ' ORDER BY CASE WHEN 钣金预达时间 IS NULL THEN 1 ELSE 0 END, 钣金预达时间, v.计划开始时间';
SET @selectStr=@selectStr+@selectStrWhere;
PRINT @selectStr;
EXEC sp_executesql @selectStr;
END

View File

@@ -0,0 +1,40 @@
CREATE OR ALTER PROCEDURE [dbo].[_系统类装配任务_修改预计送检日期]
@editstr nvarchar(100),
@ int=0
AS
BEGIN
SET NOCOUNT ON;
DECLARE @whereStr nvarchar(max)=' where 1=1 ';
DECLARE @updateStr nvarchar(max)='update [MES_接口_生产计划] set ';
DECLARE @selStr nvarchar(max)='';
IF(@>0) SET @whereStr=@whereStr + ' and [订单编号]='+CONVERT(varchar(10),@);
IF(@editstr<>'') SET @updateStr = @updateStr + @editstr;
SET @selStr=@updateStr+@whereStr;
PRINT @selStr;
EXEC sp_executesql @selStr;
SELECT '1' AS result;
END;
GO
CREATE OR ALTER PROCEDURE [dbo].[_系统类装配任务_修改销售要求日期]
@editstr nvarchar(100),
@ int=0
AS
BEGIN
SET NOCOUNT ON;
DECLARE @whereStr nvarchar(max)=' where 1=1 ';
DECLARE @updateStr nvarchar(max)='update [MES_接口_生产计划] set ';
DECLARE @selStr nvarchar(max)='';
IF(@>0) SET @whereStr=@whereStr + ' and [订单编号]='+CONVERT(varchar(10),@);
IF(@editstr<>'') SET @updateStr = @updateStr + @editstr;
SET @selStr=@updateStr+@whereStr;
PRINT @selStr;
EXEC sp_executesql @selStr;
SELECT '1' AS result;
END;

View File

@@ -0,0 +1,26 @@
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
create PROCEDURE [dbo].[_系统类装配任务_修改钣金预达时间]
@editstr nvarchar(50),
@ int=0
AS
declare @whereStr nvarchar(max)=' where 1=1 '
declare @updateStr nvarchar(max)='update [MES_接口_生产计划] set '
declare @selStr nvarchar(max)=''
-- update [MES_接口_生产计划_生产任务] set [计划数量] = @未指派数量_剩余 where 订单编号=@订单号 and 订单行号=@订单行号 and 订单拆分内码<>@订单拆分内码 and isnull(派工状态,0)=0
if(@>0)set @whereStr=@whereStr + ' and [订单编号]='+Convert(VARCHAR(10),@)
if(@editstr<>'')set @updateStr = @updateStr + @editstr
set @selStr=@updateStr+@whereStr
print @selStr
EXEC sp_executesql @selStr

View File

@@ -0,0 +1,102 @@
ALTER PROCEDURE [dbo].[_阀类任务查询]
@ int=0,
@ nvarchar(50)='', --
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@1 nvarchar(50)='',
@2 nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='全部' , --
@ nvarchar(50)='全部',
@ nvarchar(50)='不含'
AS
BEGIN
declare @selectStr nvarchar(max)
declare @selectStrWhere nvarchar(max)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 not like ''%系统%'' and isnull(任务状态,0)<4'
if(@='自制件') --
set @selectStr='
SELECT [计划数量订单],isnull(开工时间,0) as 开工时间,isnull(进度,0) as 进度,[TaskAID],v.[合同号],v.[订单编号] as 订单号,
[订单行号],[订单拆分内码] as 拆分内码,[物料编号] as 产品编码,[物料描述] as 产品名称,TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS VARCHAR(30)))) AS 计划数量,
[计划完成] as 要求完工日期,[工序名称],完成数量,v.计划号,收料数量,外协分组,v.任务状态,v.齐套时间,v.派工时间,v.齐套,v.要求发货日期,
case when [加急状态]=1 then ''加急'' else '''' end as 加急状态,性质,isnull(总工时,0) as 总工时,[占用情况]
,[排产状态],[工序计划数量],指派对象编号,指派对象,TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS VARCHAR(30)))) AS 指派数量,计划开始时间,计划完成时间,最晚开始时间,
[派工状态],[外协通知],[优先级],[未完成说明],[派工特殊说明],[最后编辑人],[最后编辑时间],[二次派工],s.交货日期理论齐套日期 as 交货日期,
case when zj.计划号 is not null then '''' else '''' end as 终检,ISNULL(g.标准工时, 0) as 标准工时,
ISNULL(zp.装配工时, 0) as 任务装配工时,
ISNULL(zj1.质检工时, 0) as 任务质检工时,
ISNULL(htzp.合同装配工时, 0) as 合同装配工时,
ISNULL(htzj.合同质检工时, 0) as 合同质检工时,
ISNULL(zp.装配工序说明, '''') as 装配工序说明,
ISNULL(zj1.质检工序说明, '''') as 质检工序说明,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), lc.流程描述), N'','') WITHIN GROUP (ORDER BY lc.流程ID)
FROM [YL_MESDB].[dbo].[流程表] lc
WHERE lc.已关联计划号 = v.[订单编号]
), '''') as 异常报警信息
FROM [View_生产订单_MES] v
LEFT JOIN (
SELECT DISTINCT 计划号
FROM dbo.YL_质量检验_质检记录
WHERE 质检类型 = ''终检''
) zj ON v.[订单编号] = zj.计划号
LEFT JOIN [dbo].[车间生产管理工艺_零件生产工艺_工艺库] g -- 新增LEFT JOIN
ON v.[订单编号] = g.订单编号
AND v.[订单行号] = g.工艺顺序
LEFT JOIN (
SELECT gs.订单号, SUM(gs.总时长) as 装配工时,max(gs.工序说明) as 装配工序说明
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''装配''
GROUP BY gs.订单号
) zp ON v.[订单编号] = zp.订单号
LEFT JOIN (
SELECT gs.订单号, SUM(gs.总时长) as 质检工时,max(gs.工序说明) as 质检工序说明
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''质检''
GROUP BY gs.订单号
) zj1 ON v.[订单编号] = zj1.订单号
LEFT JOIN (
SELECT gs.合同号, SUM(gs.总时长) as 合同装配工时
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''装配''
GROUP BY gs.合同号
) htzp ON v.[合同号] = htzp.合同号
LEFT JOIN (
SELECT gs.合同号, SUM(gs.总时长) as 合同质检工时
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''质检''
GROUP BY gs.合同号
) htzj ON v.[合同号] = htzj.合同号
left join SAP.SBO_YL.dbo.UBT_MES_ORDROPEN2 s
on v.合同号 = s.项目号 and v.物料编号 = s.物料号'
if(@>0)set @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+Convert(VARCHAR(10),@)
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and [合同号] like ''%'+@+'%'''
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@+'%'''
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@+'%'''
if(@ = '不含')set @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%'''
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@+''''
if(@1 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@1+''''
if(@2 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@2+''''
if(@ <>'')set @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@+''''
if(@ <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@+''''
if(@='未完成')set @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0'
else if(@='已完成')set @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1'
if(@='自制件') set @selectStrWhere=@selectStrWhere + ' and [不装配] <> '''''
if(@='装配件') set @selectStrWhere=@selectStrWhere + ' and [不装配] = '''''
if(@<>'全部') set @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@+''', '',''))'
set @selectStrWhere = @selectStrWhere+ 'ORDER BY
CASE WHEN 齐套时间 IS NULL THEN 1 ELSE 0 END,
齐套时间,计划开始时间 '
set @selectStr=@selectStr+@selectStrWhere
print @selectStr
EXEC sp_executesql @selectStr
END

View File

@@ -0,0 +1,129 @@
ALTER PROCEDURE [dbo].[_阀类任务查询]
@ int=0,
@ nvarchar(50)='', --
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@1 nvarchar(50)='',
@2 nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='全部' , --
@ nvarchar(50)='全部',
@ nvarchar(50)='不含'
AS
BEGIN
declare @selectStr nvarchar(max)
declare @selectStrWhere nvarchar(max)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 not like ''%系统%'' and isnull(任务状态,0)<4'
if(@='自制件') --
set @selectStr='
SELECT [计划数量订单],isnull(开工时间,0) as 开工时间,isnull(进度,0) as 进度,[TaskAID],v.[合同号],v.[订单编号] as 订单号,
[订单行号],[订单拆分内码] as 拆分内码,[物料编号] as 产品编码,[物料描述] as 产品名称,TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS VARCHAR(30)))) AS 计划数量,
[计划完成] as 要求完工日期,[工序名称],完成数量,v.计划号,收料数量,外协分组,v.任务状态,v.齐套时间,v.派工时间,v.齐套,v.要求发货日期,
case when [加急状态]=1 then ''加急'' else '''' end as 加急状态,性质,isnull(总工时,0) as 总工时,[占用情况]
,[排产状态],[工序计划数量],指派对象编号,指派对象,TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS VARCHAR(30)))) AS 指派数量,计划开始时间,计划完成时间,最晚开始时间,
[派工状态],[外协通知],[优先级],[未完成说明],[派工特殊说明],[最后编辑人],[最后编辑时间],[二次派工],s.交货日期理论齐套日期 as 交货日期,
case when zj.计划号 is not null then '''' else '''' end as 终检,ISNULL(g.标准工时, 0) as 标准工时,
ISNULL(zp.装配工时, 0) as 任务装配工时,
ISNULL(zj1.质检工时, 0) as 任务质检工时,
ISNULL(htzp.合同装配工时, 0) as 合同装配工时,
ISNULL(htzj.合同质检工时, 0) as 合同质检工时,
ISNULL(zp.装配工序说明, '''') as 装配工序说明,
ISNULL(zj1.质检工序说明, '''') as 质检工序说明,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), lc.流程描述), N'','') WITHIN GROUP (ORDER BY lc.流程ID)
FROM [YL_MESDB].[dbo].[流程表] lc
WHERE lc.已关联计划号 = v.[订单编号]
), '''') as 异常报警信息,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
FROM (
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
FROM [dbo].[YL_加工中心_操作记录表] t
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
WHERE t.操作类别 = ''开始加工''
AND t.结束时间 IS NULL
AND t.操作数值 IS NOT NULL
AND pt.订单编号 = v.[订单编号]
AND ry.班组 = ''装配''
) jxz
), '''') as 装配进行中,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
FROM (
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
FROM [dbo].[YL_加工中心_操作记录表] t
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
WHERE t.操作类别 = ''开始加工''
AND t.结束时间 IS NULL
AND t.操作数值 IS NOT NULL
AND pt.订单编号 = v.[订单编号]
AND ry.班组 = ''质检''
) jxz
), '''') as 质检进行中 FROM [View_生产订单_MES] v
LEFT JOIN (
SELECT DISTINCT 计划号
FROM dbo.YL_质量检验_质检记录
WHERE 质检类型 = ''终检''
) zj ON v.[订单编号] = zj.计划号
LEFT JOIN [dbo].[车间生产管理工艺_零件生产工艺_工艺库] g -- 新增LEFT JOIN
ON v.[订单编号] = g.订单编号
AND v.[订单行号] = g.工艺顺序
LEFT JOIN (
SELECT gs.订单号, SUM(gs.总时长) as 装配工时,max(gs.工序说明) as 装配工序说明
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''装配''
GROUP BY gs.订单号
) zp ON v.[订单编号] = zp.订单号
LEFT JOIN (
SELECT gs.订单号, SUM(gs.总时长) as 质检工时,max(gs.工序说明) as 质检工序说明
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''质检''
GROUP BY gs.订单号
) zj1 ON v.[订单编号] = zj1.订单号
LEFT JOIN (
SELECT gs.合同号, SUM(gs.总时长) as 合同装配工时
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''装配''
GROUP BY gs.合同号
) htzp ON v.[合同号] = htzp.合同号
LEFT JOIN (
SELECT gs.合同号, SUM(gs.总时长) as 合同质检工时
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''质检''
GROUP BY gs.合同号
) htzj ON v.[合同号] = htzj.合同号
left join SAP.SBO_YL.dbo.UBT_MES_ORDROPEN2 s
on v.合同号 = s.项目号 and v.物料编号 = s.物料号'
if(@>0)set @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+Convert(VARCHAR(10),@)
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and [合同号] like ''%'+@+'%'''
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@+'%'''
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@+'%'''
if(@ = '不含')set @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%'''
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@+''''
if(@1 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@1+''''
if(@2 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@2+''''
if(@ <>'')set @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@+''''
if(@ <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@+''''
if(@='未完成')set @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0'
else if(@='已完成')set @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1'
if(@='自制件') set @selectStrWhere=@selectStrWhere + ' and [不装配] <> '''''
if(@='装配件') set @selectStrWhere=@selectStrWhere + ' and [不装配] = '''''
if(@<>'全部') set @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@+''', '',''))'
set @selectStrWhere = @selectStrWhere+ 'ORDER BY
CASE WHEN 齐套时间 IS NULL THEN 1 ELSE 0 END,
齐套时间,计划开始时间 '
set @selectStr=@selectStr+@selectStrWhere
print @selectStr
EXEC sp_executesql @selectStr
END

View File

@@ -0,0 +1,133 @@
ALTER PROCEDURE [dbo].[_阀类任务查询]
@ int=0,
@ nvarchar(50)='', --
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@1 nvarchar(50)='',
@2 nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='全部' , --
@ nvarchar(50)='全部',
@ nvarchar(50)='不含'
AS
BEGIN
declare @selectStr nvarchar(max)
declare @selectStrWhere nvarchar(max)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 not like ''%系统%'' and isnull(任务状态,0)<4'
if(@='自制件') --
set @selectStr='
SELECT [计划数量订单],isnull(开工时间,0) as 开工时间,isnull(进度,0) as 进度,[TaskAID],v.[合同号],v.[订单编号] as 订单号,
[订单行号],[订单拆分内码] as 拆分内码,[物料编号] as 产品编码,[物料描述] as 产品名称,TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS VARCHAR(30)))) AS 计划数量,
[计划完成] as 要求完工日期,[工序名称],完成数量,v.计划号,收料数量,外协分组,v.任务状态,v.齐套时间,v.派工时间,v.齐套,v.要求发货日期,
case when [加急状态]=1 then ''加急'' else '''' end as 加急状态,性质,isnull(总工时,0) as 总工时,[占用情况]
,[排产状态],[工序计划数量],指派对象编号,指派对象,TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS VARCHAR(30)))) AS 指派数量,计划开始时间,计划完成时间,最晚开始时间,
[派工状态],[外协通知],[优先级],[未完成说明],[派工特殊说明],[最后编辑人],[最后编辑时间],[二次派工],s.交货日期理论齐套日期 as 交货日期,
case when zj.计划号 is not null then '''' else '''' end as 终检,ISNULL(g.标准工时, 0) as 标准工时,ISNULL(预计送检日期, DATEADD(DAY, 3, 齐套时间)) as 预计送检日期,ISNULL(销售要求日期, s.交货日期理论齐套日期) as 销售要求日期,
ISNULL(zp.装配工时, 0) as 任务装配工时,
ISNULL(zj1.质检工时, 0) as 任务质检工时,
ISNULL(htzp.合同装配工时, 0) as 合同装配工时,
ISNULL(htzj.合同质检工时, 0) as 合同质检工时,
ISNULL(zp.装配工序说明, '''') as 装配工序说明,
ISNULL(zj1.质检工序说明, '''') as 质检工序说明,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), lc.流程描述), N'','') WITHIN GROUP (ORDER BY lc.流程ID)
FROM [YL_MESDB].[dbo].[流程表] lc
WHERE lc.已关联计划号 = v.[订单编号]
), '''') as 异常报警信息,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
FROM (
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
FROM [dbo].[YL_加工中心_操作记录表] t
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
WHERE t.操作类别 = ''开始加工''
AND t.结束时间 IS NULL
AND t.操作数值 IS NOT NULL
AND pt.订单编号 = v.[订单编号]
AND ry.班组 = ''装配''
) jxz
), '''') as 装配进行中,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
FROM (
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
FROM [dbo].[YL_加工中心_操作记录表] t
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
WHERE t.操作类别 = ''开始加工''
AND t.结束时间 IS NULL
AND t.操作数值 IS NOT NULL
AND pt.订单编号 = v.[订单编号]
AND ry.班组 = ''质检''
) jxz
), '''') as 质检进行中 FROM [View_生产订单_MES] v
LEFT JOIN (
SELECT DISTINCT 计划号
FROM dbo.YL_质量检验_质检记录
WHERE 质检类型 = ''终检''
) zj ON v.[订单编号] = zj.计划号
LEFT JOIN [dbo].[车间生产管理工艺_零件生产工艺_工艺库] g -- 新增LEFT JOIN
ON v.[订单编号] = g.订单编号
AND v.[订单行号] = g.工艺顺序
LEFT JOIN (
SELECT gs.订单号, SUM(gs.总时长) as 装配工时,max(gs.工序说明) as 装配工序说明
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''装配''
GROUP BY gs.订单号
) zp ON v.[订单编号] = zp.订单号
LEFT JOIN (
SELECT gs.订单号, SUM(gs.总时长) as 质检工时,max(gs.工序说明) as 质检工序说明
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''质检''
GROUP BY gs.订单号
) zj1 ON v.[订单编号] = zj1.订单号
LEFT JOIN (
SELECT gs.合同号, SUM(gs.总时长) as 合同装配工时
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''装配''
GROUP BY gs.合同号
) htzp ON v.[合同号] = htzp.合同号
LEFT JOIN (
SELECT gs.合同号, SUM(gs.总时长) as 合同质检工时
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''质检''
GROUP BY gs.合同号
) htzj ON v.[合同号] = htzj.合同号
left join (
SELECT 项目号, 物料号, MIN(交货日期理论齐套日期) as 交货日期理论齐套日期
FROM SAP.SBO_YL.dbo.UBT_MES_ORDROPEN2
GROUP BY 项目号, 物料号
) s
on v.合同号 = s.项目号 and v.物料编号 = s.物料号'
if(@>0)set @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+Convert(VARCHAR(10),@)
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and v.[合同号] like ''%'+@+'%'''
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@+'%'''
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@+'%'''
if(@ = '不含')set @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%'''
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@+''''
if(@1 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@1+''''
if(@2 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@2+''''
if(@ <>'')set @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@+''''
if(@ <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@+''''
if(@='未完成')set @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0'
else if(@='已完成')set @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1'
if(@='自制件') set @selectStrWhere=@selectStrWhere + ' and [不装配] <> '''''
if(@='装配件') set @selectStrWhere=@selectStrWhere + ' and [不装配] = '''''
if(@<>'全部') set @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@+''', '',''))'
set @selectStrWhere = @selectStrWhere+ 'ORDER BY
CASE WHEN 齐套时间 IS NULL THEN 1 ELSE 0 END,
齐套时间,计划开始时间 '
set @selectStr=@selectStr+@selectStrWhere
print @selectStr
EXEC sp_executesql @selectStr
END

View File

@@ -0,0 +1,129 @@
ALTER PROCEDURE [dbo].[_阀类任务查询]
@ int=0,
@ nvarchar(50)='', --
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@1 nvarchar(50)='',
@2 nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='全部' , --
@ nvarchar(50)='全部',
@ nvarchar(50)='不含'
AS
BEGIN
declare @selectStr nvarchar(max)
declare @selectStrWhere nvarchar(max)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 not like ''%系统%'' and isnull(任务状态,0)<4'
if(@='自制件') --
set @selectStr='
SELECT [计划数量订单],isnull(开工时间,0) as 开工时间,isnull(进度,0) as 进度,[TaskAID],v.[合同号],v.[订单编号] as 订单号,
[订单行号],[订单拆分内码] as 拆分内码,[物料编号] as 产品编码,[物料描述] as 产品名称,TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS VARCHAR(30)))) AS 计划数量,
[计划完成] as 要求完工日期,[工序名称],完成数量,v.计划号,收料数量,外协分组,v.任务状态,v.齐套时间,v.派工时间,v.齐套,v.要求发货日期,
case when [加急状态]=1 then ''加急'' else '''' end as 加急状态,性质,isnull(总工时,0) as 总工时,[占用情况]
,[排产状态],[工序计划数量],指派对象编号,指派对象,TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS VARCHAR(30)))) AS 指派数量,计划开始时间,计划完成时间,最晚开始时间,
[派工状态],[外协通知],[优先级],[未完成说明],[派工特殊说明],[最后编辑人],[最后编辑时间],[二次派工],s.交货日期理论齐套日期 as 交货日期,
case when zj.计划号 is not null then '''' else '''' end as 终检,ISNULL(g.标准工时, 0) as 标准工时,ISNULL(预计送检日期, DATEADD(DAY, 3, 齐套时间)) as 预计送检日期,ISNULL(销售要求日期, s.交货日期理论齐套日期) as 销售要求日期,
ISNULL(zp.装配工时, 0) as 任务装配工时,
ISNULL(zj1.质检工时, 0) as 任务质检工时,
ISNULL(htzp.合同装配工时, 0) as 合同装配工时,
ISNULL(htzj.合同质检工时, 0) as 合同质检工时,
ISNULL(zp.装配工序说明, '''') as 装配工序说明,
ISNULL(zj1.质检工序说明, '''') as 质检工序说明,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), lc.流程描述), N'','') WITHIN GROUP (ORDER BY lc.流程ID)
FROM [YL_MESDB].[dbo].[流程表] lc
WHERE lc.已关联计划号 = v.[订单编号]
), '''') as 异常报警信息,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
FROM (
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
FROM [dbo].[YL_加工中心_操作记录表] t
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
WHERE t.操作类别 = ''开始加工''
AND t.结束时间 IS NULL
AND t.操作数值 IS NOT NULL
AND pt.订单编号 = v.[订单编号]
AND ry.班组 = ''装配''
) jxz
), '''') as 装配进行中,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
FROM (
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
FROM [dbo].[YL_加工中心_操作记录表] t
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
WHERE t.操作类别 = ''开始加工''
AND t.结束时间 IS NULL
AND t.操作数值 IS NOT NULL
AND pt.订单编号 = v.[订单编号]
AND ry.班组 = ''质检''
) jxz
), '''') as 质检进行中 FROM [View_生产订单_MES] v
LEFT JOIN (
SELECT DISTINCT 计划号
FROM dbo.YL_质量检验_质检记录
WHERE 质检类型 = ''终检''
) zj ON v.[订单编号] = zj.计划号
LEFT JOIN [dbo].[车间生产管理工艺_零件生产工艺_工艺库] g -- 新增LEFT JOIN
ON v.[订单编号] = g.订单编号
AND v.[订单行号] = g.工艺顺序
LEFT JOIN (
SELECT gs.订单号, SUM(gs.总时长) as 装配工时,max(gs.工序说明) as 装配工序说明
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''装配''
GROUP BY gs.订单号
) zp ON v.[订单编号] = zp.订单号
LEFT JOIN (
SELECT gs.订单号, SUM(gs.总时长) as 质检工时,max(gs.工序说明) as 质检工序说明
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''质检''
GROUP BY gs.订单号
) zj1 ON v.[订单编号] = zj1.订单号
LEFT JOIN (
SELECT gs.合同号, SUM(gs.总时长) as 合同装配工时
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''装配''
GROUP BY gs.合同号
) htzp ON v.[合同号] = htzp.合同号
LEFT JOIN (
SELECT gs.合同号, SUM(gs.总时长) as 合同质检工时
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''质检''
GROUP BY gs.合同号
) htzj ON v.[合同号] = htzj.合同号
left join SAP.SBO_YL.dbo.UBT_MES_ORDROPEN2 s
on v.合同号 = s.项目号 and v.物料编号 = s.物料号'
if(@>0)set @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+Convert(VARCHAR(10),@)
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and v.[合同号] like ''%'+@+'%'''
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@+'%'''
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@+'%'''
if(@ = '不含')set @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%'''
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@+''''
if(@1 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@1+''''
if(@2 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@2+''''
if(@ <>'')set @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@+''''
if(@ <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@+''''
if(@='未完成')set @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0'
else if(@='已完成')set @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1'
if(@='自制件') set @selectStrWhere=@selectStrWhere + ' and [不装配] <> '''''
if(@='装配件') set @selectStrWhere=@selectStrWhere + ' and [不装配] = '''''
if(@<>'全部') set @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@+''', '',''))'
set @selectStrWhere = @selectStrWhere+ 'ORDER BY
CASE WHEN 齐套时间 IS NULL THEN 1 ELSE 0 END,
齐套时间,计划开始时间 '
set @selectStr=@selectStr+@selectStrWhere
print @selectStr
EXEC sp_executesql @selectStr
END

View File

@@ -0,0 +1,98 @@
CREATE PROCEDURE [dbo].[_阀类任务查询]
@ int=0,
@ nvarchar(50)='', --
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@1 nvarchar(50)='',
@2 nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='全部' , --
@ nvarchar(50)='全部',
@ nvarchar(50)='不含'
AS
BEGIN
declare @selectStr nvarchar(4000)
declare @selectStrWhere nvarchar(4000)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 not like ''%系统%'' and isnull(任务状态,0)<4'
if(@='自制件') --
set @selectStr='
SELECT [计划数量订单],isnull(开工时间,0) as 开工时间,isnull(进度,0) as 进度,[TaskAID],v.[合同号],v.[订单编号] as 订单号,
[订单行号],[订单拆分内码] as 拆分内码,[物料编号] as 产品编码,[物料描述] as 产品名称,TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS VARCHAR(30)))) AS 计划数量,
[计划完成] as 要求完工日期,[工序名称],完成数量,v.计划号,收料数量,外协分组,v.任务状态,v.齐套时间,v.派工时间,v.齐套,v.要求发货日期,
case when [加急状态]=1 then ''加急'' else '''' end as 加急状态,性质,isnull(总工时,0) as 总工时,[占用情况]
,[排产状态],[工序计划数量],指派对象编号,指派对象,TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS VARCHAR(30)))) AS 指派数量,计划开始时间,计划完成时间,最晚开始时间,
[派工状态],[外协通知],[优先级],[未完成说明],[派工特殊说明],[最后编辑人],[最后编辑时间],[二次派工],s.交货日期理论齐套日期 as 交货日期,
case when zj.计划号 is not null then '''' else '''' end as 终检,ISNULL(g.标准工时, 0) as 标准工时,
ISNULL(zp.装配工时, 0) as 任务装配工时,
ISNULL(zj1.质检工时, 0) as 任务质检工时,
ISNULL(htzp.合同装配工时, 0) as 合同装配工时,
ISNULL(htzj.合同质检工时, 0) as 合同质检工时,
ISNULL(zp.装配工序说明, '''') as 装配工序说明,
ISNULL(zj1.质检工序说明, '''') as 质检工序说明
FROM [View_生产订单_MES] v
LEFT JOIN (
SELECT DISTINCT 计划号
FROM dbo.YL_质量检验_质检记录
WHERE 质检类型 = ''终检''
) zj ON v.[订单编号] = zj.计划号
LEFT JOIN [dbo].[车间生产管理工艺_零件生产工艺_工艺库] g -- 新增LEFT JOIN
ON v.[订单编号] = g.订单编号
AND v.[订单行号] = g.工艺顺序
LEFT JOIN (
SELECT gs.订单号, SUM(gs.总时长) as 装配工时,max(gs.工序说明) as 装配工序说明
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''装配''
GROUP BY gs.订单号
) zp ON v.[订单编号] = zp.订单号
LEFT JOIN (
SELECT gs.订单号, SUM(gs.总时长) as 质检工时,max(gs.工序说明) as 质检工序说明
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''质检''
GROUP BY gs.订单号
) zj1 ON v.[订单编号] = zj1.订单号
LEFT JOIN (
SELECT gs.合同号, SUM(gs.总时长) as 合同装配工时
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''装配''
GROUP BY gs.合同号
) htzp ON v.[合同号] = htzp.合同号
LEFT JOIN (
SELECT gs.合同号, SUM(gs.总时长) as 合同质检工时
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''质检''
GROUP BY gs.合同号
) htzj ON v.[合同号] = htzj.合同号
left join SAP.SBO_YL.dbo.UBT_MES_ORDROPEN2 s
on v.合同号 = s.项目号 and v.物料编号 = s.物料号'
if(@>0)set @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+Convert(VARCHAR(10),@)
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and [合同号] like ''%'+@+'%'''
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@+'%'''
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@+'%'''
if(@ = '不含')set @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%'''
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@+''''
if(@1 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@1+''''
if(@2 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@2+''''
if(@ <>'')set @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@+''''
if(@ <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@+''''
if(@='未完成')set @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0'
else if(@='已完成')set @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1'
if(@='自制件') set @selectStrWhere=@selectStrWhere + ' and [不装配] <> '''''
if(@='装配件') set @selectStrWhere=@selectStrWhere + ' and [不装配] = '''''
if(@<>'全部') set @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@+''', '',''))'
set @selectStrWhere = @selectStrWhere+ 'ORDER BY
CASE WHEN 齐套时间 IS NULL THEN 1 ELSE 0 END,
齐套时间,计划开始时间 '
set @selectStr=@selectStr+@selectStrWhere
print @selectStr
EXEC sp_executesql @selectStr
END

View File

@@ -0,0 +1,102 @@
CREATE PROCEDURE [dbo].[_阀类任务查询]
@ int=0,
@ nvarchar(50)='', --
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@1 nvarchar(50)='',
@2 nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='全部' , --
@ nvarchar(50)='全部',
@ nvarchar(50)='不含'
AS
BEGIN
declare @selectStr nvarchar(max)
declare @selectStrWhere nvarchar(max)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 not like ''%系统%'' and isnull(任务状态,0)<4'
if(@='自制件') --
set @selectStr='
SELECT [计划数量订单],isnull(开工时间,0) as 开工时间,isnull(进度,0) as 进度,[TaskAID],v.[合同号],v.[订单编号] as 订单号,
[订单行号],[订单拆分内码] as 拆分内码,[物料编号] as 产品编码,[物料描述] as 产品名称,TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS VARCHAR(30)))) AS 计划数量,
[计划完成] as 要求完工日期,[工序名称],完成数量,v.计划号,收料数量,外协分组,v.任务状态,v.齐套时间,v.派工时间,v.齐套,v.要求发货日期,
case when [加急状态]=1 then ''加急'' else '''' end as 加急状态,性质,isnull(总工时,0) as 总工时,[占用情况]
,[排产状态],[工序计划数量],指派对象编号,指派对象,TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS VARCHAR(30)))) AS 指派数量,计划开始时间,计划完成时间,最晚开始时间,
[派工状态],[外协通知],[优先级],[未完成说明],[派工特殊说明],[最后编辑人],[最后编辑时间],[二次派工],s.交货日期理论齐套日期 as 交货日期,
case when zj.计划号 is not null then '''' else '''' end as 终检,ISNULL(g.标准工时, 0) as 标准工时,
ISNULL(zp.装配工时, 0) as 任务装配工时,
ISNULL(zj1.质检工时, 0) as 任务质检工时,
ISNULL(htzp.合同装配工时, 0) as 合同装配工时,
ISNULL(htzj.合同质检工时, 0) as 合同质检工时,
ISNULL(zp.装配工序说明, '''') as 装配工序说明,
ISNULL(zj1.质检工序说明, '''') as 质检工序说明,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), lc.流程描述), N'','') WITHIN GROUP (ORDER BY lc.流程ID)
FROM [YL_MESDB].[dbo].[流程表] lc
WHERE lc.已关联计划号 = v.[订单编号]
), '''') as 异常报警信息
FROM [View_生产订单_MES] v
LEFT JOIN (
SELECT DISTINCT 计划号
FROM dbo.YL_质量检验_质检记录
WHERE 质检类型 = ''终检''
) zj ON v.[订单编号] = zj.计划号
LEFT JOIN [dbo].[车间生产管理工艺_零件生产工艺_工艺库] g -- 新增LEFT JOIN
ON v.[订单编号] = g.订单编号
AND v.[订单行号] = g.工艺顺序
LEFT JOIN (
SELECT gs.订单号, SUM(gs.总时长) as 装配工时,max(gs.工序说明) as 装配工序说明
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''装配''
GROUP BY gs.订单号
) zp ON v.[订单编号] = zp.订单号
LEFT JOIN (
SELECT gs.订单号, SUM(gs.总时长) as 质检工时,max(gs.工序说明) as 质检工序说明
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''质检''
GROUP BY gs.订单号
) zj1 ON v.[订单编号] = zj1.订单号
LEFT JOIN (
SELECT gs.合同号, SUM(gs.总时长) as 合同装配工时
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''装配''
GROUP BY gs.合同号
) htzp ON v.[合同号] = htzp.合同号
LEFT JOIN (
SELECT gs.合同号, SUM(gs.总时长) as 合同质检工时
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''质检''
GROUP BY gs.合同号
) htzj ON v.[合同号] = htzj.合同号
left join SAP.SBO_YL.dbo.UBT_MES_ORDROPEN2 s
on v.合同号 = s.项目号 and v.物料编号 = s.物料号'
if(@>0)set @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+Convert(VARCHAR(10),@)
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and [合同号] like ''%'+@+'%'''
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@+'%'''
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@+'%'''
if(@ = '不含')set @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%'''
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@+''''
if(@1 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@1+''''
if(@2 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@2+''''
if(@ <>'')set @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@+''''
if(@ <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@+''''
if(@='未完成')set @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0'
else if(@='已完成')set @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1'
if(@='自制件') set @selectStrWhere=@selectStrWhere + ' and [不装配] <> '''''
if(@='装配件') set @selectStrWhere=@selectStrWhere + ' and [不装配] = '''''
if(@<>'全部') set @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@+''', '',''))'
set @selectStrWhere = @selectStrWhere+ 'ORDER BY
CASE WHEN 齐套时间 IS NULL THEN 1 ELSE 0 END,
齐套时间,计划开始时间 '
set @selectStr=@selectStr+@selectStrWhere
print @selectStr
EXEC sp_executesql @selectStr
END

View File

@@ -0,0 +1,129 @@
CREATE PROCEDURE [dbo].[_阀类任务查询]
@ int=0,
@ nvarchar(50)='', --
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@1 nvarchar(50)='',
@2 nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='全部' , --
@ nvarchar(50)='全部',
@ nvarchar(50)='不含'
AS
BEGIN
declare @selectStr nvarchar(max)
declare @selectStrWhere nvarchar(max)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 not like ''%系统%'' and isnull(任务状态,0)<4'
if(@='自制件') --
set @selectStr='
SELECT [计划数量订单],isnull(开工时间,0) as 开工时间,isnull(进度,0) as 进度,[TaskAID],v.[合同号],v.[订单编号] as 订单号,
[订单行号],[订单拆分内码] as 拆分内码,[物料编号] as 产品编码,[物料描述] as 产品名称,TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS VARCHAR(30)))) AS 计划数量,
[计划完成] as 要求完工日期,[工序名称],完成数量,v.计划号,收料数量,外协分组,v.任务状态,v.齐套时间,v.派工时间,v.齐套,v.要求发货日期,
case when [加急状态]=1 then ''加急'' else '''' end as 加急状态,性质,isnull(总工时,0) as 总工时,[占用情况]
,[排产状态],[工序计划数量],指派对象编号,指派对象,TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS VARCHAR(30)))) AS 指派数量,计划开始时间,计划完成时间,最晚开始时间,
[派工状态],[外协通知],[优先级],[未完成说明],[派工特殊说明],[最后编辑人],[最后编辑时间],[二次派工],s.交货日期理论齐套日期 as 交货日期,
case when zj.计划号 is not null then '''' else '''' end as 终检,ISNULL(g.标准工时, 0) as 标准工时,ISNULL(预计送检日期, DATEADD(DAY, 3, 齐套时间)) as 预计送检日期,ISNULL(销售要求日期, s.交货日期理论齐套日期) as 销售要求日期,
ISNULL(zp.装配工时, 0) as 任务装配工时,
ISNULL(zj1.质检工时, 0) as 任务质检工时,
ISNULL(htzp.合同装配工时, 0) as 合同装配工时,
ISNULL(htzj.合同质检工时, 0) as 合同质检工时,
ISNULL(zp.装配工序说明, '''') as 装配工序说明,
ISNULL(zj1.质检工序说明, '''') as 质检工序说明,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), lc.流程描述), N'','') WITHIN GROUP (ORDER BY lc.流程ID)
FROM [YL_MESDB].[dbo].[流程表] lc
WHERE lc.已关联计划号 = v.[订单编号]
), '''') as 异常报警信息,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
FROM (
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
FROM [dbo].[YL_加工中心_操作记录表] t
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
WHERE t.操作类别 = ''开始加工''
AND t.结束时间 IS NULL
AND t.操作数值 IS NOT NULL
AND pt.订单编号 = v.[订单编号]
AND ry.班组 = ''装配''
) jxz
), '''') as 装配进行中,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
FROM (
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
FROM [dbo].[YL_加工中心_操作记录表] t
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
WHERE t.操作类别 = ''开始加工''
AND t.结束时间 IS NULL
AND t.操作数值 IS NOT NULL
AND pt.订单编号 = v.[订单编号]
AND ry.班组 = ''质检''
) jxz
), '''') as 质检进行中 FROM [View_生产订单_MES] v
LEFT JOIN (
SELECT DISTINCT 计划号
FROM dbo.YL_质量检验_质检记录
WHERE 质检类型 = ''终检''
) zj ON v.[订单编号] = zj.计划号
LEFT JOIN [dbo].[车间生产管理工艺_零件生产工艺_工艺库] g -- 新增LEFT JOIN
ON v.[订单编号] = g.订单编号
AND v.[订单行号] = g.工艺顺序
LEFT JOIN (
SELECT gs.订单号, SUM(gs.总时长) as 装配工时,max(gs.工序说明) as 装配工序说明
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''装配''
GROUP BY gs.订单号
) zp ON v.[订单编号] = zp.订单号
LEFT JOIN (
SELECT gs.订单号, SUM(gs.总时长) as 质检工时,max(gs.工序说明) as 质检工序说明
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''质检''
GROUP BY gs.订单号
) zj1 ON v.[订单编号] = zj1.订单号
LEFT JOIN (
SELECT gs.合同号, SUM(gs.总时长) as 合同装配工时
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''装配''
GROUP BY gs.合同号
) htzp ON v.[合同号] = htzp.合同号
LEFT JOIN (
SELECT gs.合同号, SUM(gs.总时长) as 合同质检工时
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''质检''
GROUP BY gs.合同号
) htzj ON v.[合同号] = htzj.合同号
left join SAP.SBO_YL.dbo.UBT_MES_ORDROPEN2 s
on v.合同号 = s.项目号 and v.物料编号 = s.物料号'
if(@>0)set @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+Convert(VARCHAR(10),@)
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and v.[合同号] like ''%'+@+'%'''
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@+'%'''
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@+'%'''
if(@ = '不含')set @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%'''
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@+''''
if(@1 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@1+''''
if(@2 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@2+''''
if(@ <>'')set @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@+''''
if(@ <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@+''''
if(@='未完成')set @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0'
else if(@='已完成')set @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1'
if(@='自制件') set @selectStrWhere=@selectStrWhere + ' and [不装配] <> '''''
if(@='装配件') set @selectStrWhere=@selectStrWhere + ' and [不装配] = '''''
if(@<>'全部') set @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@+''', '',''))'
set @selectStrWhere = @selectStrWhere+ 'ORDER BY
CASE WHEN 齐套时间 IS NULL THEN 1 ELSE 0 END,
齐套时间,计划开始时间 '
set @selectStr=@selectStr+@selectStrWhere
print @selectStr
EXEC sp_executesql @selectStr
END

View File

@@ -0,0 +1,129 @@
CREATE PROCEDURE [dbo].[_阀类任务查询]
@ int=0,
@ nvarchar(50)='', --
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@1 nvarchar(50)='',
@2 nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='全部' , --
@ nvarchar(50)='全部',
@ nvarchar(50)='不含'
AS
BEGIN
declare @selectStr nvarchar(max)
declare @selectStrWhere nvarchar(max)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 not like ''%系统%'' and isnull(任务状态,0)<4'
if(@='自制件') --
set @selectStr='
SELECT [计划数量订单],isnull(开工时间,0) as 开工时间,isnull(进度,0) as 进度,[TaskAID],v.[合同号],v.[订单编号] as 订单号,
[订单行号],[订单拆分内码] as 拆分内码,[物料编号] as 产品编码,[物料描述] as 产品名称,TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS VARCHAR(30)))) AS 计划数量,
[计划完成] as 要求完工日期,[工序名称],完成数量,v.计划号,收料数量,外协分组,v.任务状态,v.齐套时间,v.派工时间,v.齐套,v.要求发货日期,
case when [加急状态]=1 then ''加急'' else '''' end as 加急状态,性质,isnull(总工时,0) as 总工时,[占用情况]
,[排产状态],[工序计划数量],指派对象编号,指派对象,TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS VARCHAR(30)))) AS 指派数量,计划开始时间,计划完成时间,最晚开始时间,
[派工状态],[外协通知],[优先级],[未完成说明],[派工特殊说明],[最后编辑人],[最后编辑时间],[二次派工],s.交货日期理论齐套日期 as 交货日期,
case when zj.计划号 is not null then '''' else '''' end as 终检,ISNULL(g.标准工时, 0) as 标准工时,
ISNULL(zp.装配工时, 0) as 任务装配工时,
ISNULL(zj1.质检工时, 0) as 任务质检工时,
ISNULL(htzp.合同装配工时, 0) as 合同装配工时,
ISNULL(htzj.合同质检工时, 0) as 合同质检工时,
ISNULL(zp.装配工序说明, '''') as 装配工序说明,
ISNULL(zj1.质检工序说明, '''') as 质检工序说明,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), lc.流程描述), N'','') WITHIN GROUP (ORDER BY lc.流程ID)
FROM [YL_MESDB].[dbo].[流程表] lc
WHERE lc.已关联计划号 = v.[订单编号]
), '''') as 异常报警信息,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
FROM (
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
FROM [dbo].[YL_加工中心_操作记录表] t
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
WHERE t.操作类别 = ''开始加工''
AND t.结束时间 IS NULL
AND t.操作数值 IS NOT NULL
AND pt.订单编号 = v.[订单编号]
AND ry.班组 = ''装配''
) jxz
), '''') as 装配进行中,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
FROM (
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
FROM [dbo].[YL_加工中心_操作记录表] t
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
WHERE t.操作类别 = ''开始加工''
AND t.结束时间 IS NULL
AND t.操作数值 IS NOT NULL
AND pt.订单编号 = v.[订单编号]
AND ry.班组 = ''质检''
) jxz
), '''') as 质检进行中 FROM [View_生产订单_MES] v
LEFT JOIN (
SELECT DISTINCT 计划号
FROM dbo.YL_质量检验_质检记录
WHERE 质检类型 = ''终检''
) zj ON v.[订单编号] = zj.计划号
LEFT JOIN [dbo].[车间生产管理工艺_零件生产工艺_工艺库] g -- 新增LEFT JOIN
ON v.[订单编号] = g.订单编号
AND v.[订单行号] = g.工艺顺序
LEFT JOIN (
SELECT gs.订单号, SUM(gs.总时长) as 装配工时,max(gs.工序说明) as 装配工序说明
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''装配''
GROUP BY gs.订单号
) zp ON v.[订单编号] = zp.订单号
LEFT JOIN (
SELECT gs.订单号, SUM(gs.总时长) as 质检工时,max(gs.工序说明) as 质检工序说明
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''质检''
GROUP BY gs.订单号
) zj1 ON v.[订单编号] = zj1.订单号
LEFT JOIN (
SELECT gs.合同号, SUM(gs.总时长) as 合同装配工时
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''装配''
GROUP BY gs.合同号
) htzp ON v.[合同号] = htzp.合同号
LEFT JOIN (
SELECT gs.合同号, SUM(gs.总时长) as 合同质检工时
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''质检''
GROUP BY gs.合同号
) htzj ON v.[合同号] = htzj.合同号
left join SAP.SBO_YL.dbo.UBT_MES_ORDROPEN2 s
on v.合同号 = s.项目号 and v.物料编号 = s.物料号'
if(@>0)set @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+Convert(VARCHAR(10),@)
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and v.[合同号] like ''%'+@+'%'''
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@+'%'''
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@+'%'''
if(@ = '不含')set @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%'''
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@+''''
if(@1 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@1+''''
if(@2 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@2+''''
if(@ <>'')set @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@+''''
if(@ <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@+''''
if(@='未完成')set @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0'
else if(@='已完成')set @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1'
if(@='自制件') set @selectStrWhere=@selectStrWhere + ' and [不装配] <> '''''
if(@='装配件') set @selectStrWhere=@selectStrWhere + ' and [不装配] = '''''
if(@<>'全部') set @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@+''', '',''))'
set @selectStrWhere = @selectStrWhere+ 'ORDER BY
CASE WHEN 齐套时间 IS NULL THEN 1 ELSE 0 END,
齐套时间,计划开始时间 '
set @selectStr=@selectStr+@selectStrWhere
print @selectStr
EXEC sp_executesql @selectStr
END

View File

@@ -0,0 +1,210 @@
ALTER PROCEDURE [dbo].[_阀类任务查询_导出]
@ int=0,
@ nvarchar(50)='', --
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@1 nvarchar(50)='',
@2 nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='全部' , --
@ nvarchar(50)='全部',
@ nvarchar(50)='不含'
AS
BEGIN
SET NOCOUNT ON;
SELECT '阀类任务_' + REPLACE(REPLACE(REPLACE(CONVERT(NVARCHAR(19), GETDATE(), 21), ':', ''), '-', ''), ' ', '-') AS tablename, '15' AS tabletype;
SELECT 256*12 AS ,
256*18 AS ,
256*12 AS ,
256*8 AS ,
256*14 AS ,
256*10 AS ,
256*24 AS ,
256*24 AS ,
256*10 AS ,
256*20 AS ,
256*14 AS ,
256*14 AS ,
256*14 AS ,
256*40 AS ,
256*40 AS ,
256*40 AS ,
256*14 AS ,
256*14 AS ,
256*14 AS ,
256*14 AS ,
256*24 AS ,
256*24 AS ,
256*14 AS ,
256*12 AS ,
256*10 AS ,
256*18 AS ,
256*12 AS ,
256*10 AS ,
256*20 AS ,
256*20 AS ,
256*14 AS ,
256*14 AS ,
256*20 AS ;
SELECT 0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ;
DECLARE @selectStr nvarchar(max);
DECLARE @selectStrWhere nvarchar(max)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 not like ''%系统%'' and isnull(任务状态,0)<4';
IF(@='自制件')
SET @selectStr='
SELECT
CONVERT(varchar(10), v.齐套时间, 120) AS 发料齐套,
CONVERT(varchar(10), v.计划开始时间, 120) AS 计划开始,
CONVERT(varchar(10), v.派工时间, 120) AS 派工时间,
CASE WHEN v.齐套 = 1 THEN '''' ELSE '''' END AS 齐套,
v.[合同号] AS 销售订单,
v.[订单编号] AS 生产订单,
v.[物料编号] AS 物料编码,
v.[物料描述] AS 物料名称,
TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS varchar(30)))) AS 计划数,
[二次派工] AS 二次派工,
CONVERT(varchar(10), DATEADD(DAY, 3, CONVERT(date, v.齐套时间)), 120) AS 预计送检日期,
CONVERT(varchar(10), s.交货日期理论齐套日期, 120) AS 销售要求日期,
CONVERT(varchar(10), v.要求发货日期, 120) AS 发货要求日期,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), lc.流程描述), N'','') WITHIN GROUP (ORDER BY lc.流程ID)
FROM [YL_MESDB].[dbo].[流程表] lc
WHERE lc.已关联计划号 = v.[订单编号]
), '''') AS 异常报警信息,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
FROM (
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
FROM [dbo].[YL_加工中心_操作记录表] t
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
WHERE t.操作类别 = ''开始加工''
AND t.结束时间 IS NULL
AND t.操作数值 IS NOT NULL
AND pt.订单编号 = v.[订单编号]
AND ry.班组 = ''装配''
) jxz
), '''') AS 装配进行中,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
FROM (
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
FROM [dbo].[YL_加工中心_操作记录表] t
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
WHERE t.操作类别 = ''开始加工''
AND t.结束时间 IS NULL
AND t.操作数值 IS NOT NULL
AND pt.订单编号 = v.[订单编号]
AND ry.班组 = ''质检''
) jxz
), '''') AS 质检进行中,
CAST(ISNULL(zp.装配工时, 0) / 60.0 AS decimal(18,2)) AS 任务装配工时,
CAST(ISNULL(zj1.质检工时, 0) / 60.0 AS decimal(18,2)) AS 任务质检工时,
CAST(ISNULL(htzp.合同装配工时, 0) / 60.0 AS decimal(18,2)) AS 合同装配工时,
CAST(ISNULL(htzj.合同质检工时, 0) / 60.0 AS decimal(18,2)) AS 合同质检工时,
ISNULL(zp.装配工序说明, '''') AS 装配工序说明,
ISNULL(zj1.质检工序说明, '''') AS 质检工序说明,
CONVERT(varchar(10), [计划完成], 120) AS 要求完工日期,
[工序名称] AS 工序名称,
v.计划号 AS 计划号,
指派对象 AS 指派对象,
TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS varchar(30)))) AS 指派数量,
[优先级] AS 优先级,
[未完成说明] AS 未完成说明,
[派工特殊说明] AS 派工特殊备注,
[占用情况] AS 占用情况,
[最后编辑人] AS 最后编辑人,
CONVERT(varchar(19), [最后编辑时间], 120) AS 最后编辑时间
FROM [View_生产订单_MES] v
LEFT JOIN (
SELECT gs.订单号, SUM(gs.总时长) AS 装配工时, MAX(gs.工序说明) AS 装配工序说明
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''装配''
GROUP BY gs.订单号
) zp ON v.[订单编号] = zp.订单号
LEFT JOIN (
SELECT gs.订单号, SUM(gs.总时长) AS 质检工时, MAX(gs.工序说明) AS 质检工序说明
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''质检''
GROUP BY gs.订单号
) zj1 ON v.[订单编号] = zj1.订单号
LEFT JOIN (
SELECT gs.合同号, SUM(gs.总时长) AS 合同装配工时
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''装配''
GROUP BY gs.合同号
) htzp ON v.[合同号] = htzp.合同号
LEFT JOIN (
SELECT gs.合同号, SUM(gs.总时长) AS 合同质检工时
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''质检''
GROUP BY gs.合同号
) htzj ON v.[合同号] = htzj.合同号
LEFT JOIN SAP.SBO_YL.dbo.UBT_MES_ORDROPEN2 s
ON v.合同号 = s.项目号 AND v.物料编号 = s.物料号';
IF(@>0) SET @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+CONVERT(varchar(10),@);
IF(@<>'') SET @selectStrWhere=@selectStrWhere + ' and [合同号] like ''%'+@+'%''';
IF(@<>'') SET @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@+'%''';
IF(@<>'') SET @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@+'%''';
IF(@ = '不含') SET @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%''';
IF(@<>'') SET @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@+'''';
IF(@1 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@1+'''';
IF(@2 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@2+'''';
IF(@ <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@+'''';
IF(@ <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@+'''';
IF(@='未完成') SET @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0';
ELSE IF(@='已完成') SET @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1';
IF(@='自制件') SET @selectStrWhere=@selectStrWhere + ' and [不装配] <> ''''';
IF(@='装配件') SET @selectStrWhere=@selectStrWhere + ' and [不装配] = ''''';
IF(@<>'全部') SET @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@+''', '',''))';
SET @selectStrWhere = @selectStrWhere + ' ORDER BY CASE WHEN 齐套时间 IS NULL THEN 1 ELSE 0 END, 齐套时间, 计划开始时间';
SET @selectStr=@selectStr+@selectStrWhere;
PRINT @selectStr;
EXEC sp_executesql @selectStr;
END

View File

@@ -0,0 +1,214 @@
ALTER PROCEDURE [dbo].[_阀类任务查询_导出]
@ int=0,
@ nvarchar(50)='', --
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@1 nvarchar(50)='',
@2 nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='全部' , --
@ nvarchar(50)='全部',
@ nvarchar(50)='不含'
AS
BEGIN
SET NOCOUNT ON;
SELECT '阀类任务_' + REPLACE(REPLACE(REPLACE(CONVERT(NVARCHAR(19), GETDATE(), 21), ':', ''), '-', ''), ' ', '-') AS tablename, '15' AS tabletype;
SELECT 256*12 AS ,
256*18 AS ,
256*12 AS ,
256*8 AS ,
256*14 AS ,
256*10 AS ,
256*24 AS ,
256*24 AS ,
256*10 AS ,
256*20 AS ,
256*14 AS ,
256*14 AS ,
256*14 AS ,
256*40 AS ,
256*40 AS ,
256*40 AS ,
256*14 AS ,
256*14 AS ,
256*14 AS ,
256*14 AS ,
256*24 AS ,
256*24 AS ,
256*14 AS ,
256*12 AS ,
256*10 AS ,
256*18 AS ,
256*12 AS ,
256*10 AS ,
256*20 AS ,
256*20 AS ,
256*14 AS ,
256*14 AS ,
256*20 AS ;
SELECT 0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ;
DECLARE @selectStr nvarchar(max);
DECLARE @selectStrWhere nvarchar(max)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 not like ''%系统%'' and isnull(任务状态,0)<4';
IF(@='自制件')
SET @selectStr='
SELECT
CONVERT(varchar(10), v.齐套时间, 120) AS 发料齐套,
CONVERT(varchar(10), v.计划开始时间, 120) AS 计划开始,
CONVERT(varchar(10), v.派工时间, 120) AS 派工时间,
CASE WHEN v.齐套 = 1 THEN '''' ELSE '''' END AS 齐套,
v.[合同号] AS 销售订单,
v.[订单编号] AS 生产订单,
v.[物料编号] AS 物料编码,
v.[物料描述] AS 物料名称,
TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS varchar(30)))) AS 计划数,
[二次派工] AS 二次派工,
CONVERT(varchar(10), ISNULL(v.预计送检日期, DATEADD(DAY, 3, v.齐套时间)), 120) AS 预计送检日期,
CONVERT(varchar(10), ISNULL(v.销售要求日期, s.交货日期理论齐套日期), 120) AS 销售要求日期,
CONVERT(varchar(10), v.要求发货日期, 120) AS 发货要求日期,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), lc.流程描述), N'','') WITHIN GROUP (ORDER BY lc.流程ID)
FROM [YL_MESDB].[dbo].[流程表] lc
WHERE lc.已关联计划号 = v.[订单编号]
), '''') AS 异常报警信息,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
FROM (
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
FROM [dbo].[YL_加工中心_操作记录表] t
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
WHERE t.操作类别 = ''开始加工''
AND t.结束时间 IS NULL
AND t.操作数值 IS NOT NULL
AND pt.订单编号 = v.[订单编号]
AND ry.班组 = ''装配''
) jxz
), '''') AS 装配进行中,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
FROM (
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
FROM [dbo].[YL_加工中心_操作记录表] t
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
WHERE t.操作类别 = ''开始加工''
AND t.结束时间 IS NULL
AND t.操作数值 IS NOT NULL
AND pt.订单编号 = v.[订单编号]
AND ry.班组 = ''质检''
) jxz
), '''') AS 质检进行中,
CAST(ISNULL(zp.装配工时, 0) / 3600.0 AS decimal(18,2)) AS 任务装配工时,
CAST(ISNULL(zj1.质检工时, 0) / 3600.0 AS decimal(18,2)) AS 任务质检工时,
CAST(ISNULL(htzp.合同装配工时, 0) / 3600.0 AS decimal(18,2)) AS 合同装配工时,
CAST(ISNULL(htzj.合同质检工时, 0) / 3600.0 AS decimal(18,2)) AS 合同质检工时,
ISNULL(zp.装配工序说明, '''') AS 装配工序说明,
ISNULL(zj1.质检工序说明, '''') AS 质检工序说明,
CONVERT(varchar(10), [计划完成], 120) AS 要求完工日期,
[工序名称] AS 工序名称,
v.计划号 AS 计划号,
指派对象 AS 指派对象,
TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS varchar(30)))) AS 指派数量,
[优先级] AS 优先级,
[未完成说明] AS 未完成说明,
[派工特殊说明] AS 派工特殊备注,
[占用情况] AS 占用情况,
[最后编辑人] AS 最后编辑人,
CONVERT(varchar(19), [最后编辑时间], 120) AS 最后编辑时间
FROM [View_生产订单_MES] v
LEFT JOIN (
SELECT gs.订单号, SUM(gs.总时长) AS 装配工时, MAX(gs.工序说明) AS 装配工序说明
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''装配''
GROUP BY gs.订单号
) zp ON v.[订单编号] = zp.订单号
LEFT JOIN (
SELECT gs.订单号, SUM(gs.总时长) AS 质检工时, MAX(gs.工序说明) AS 质检工序说明
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''质检''
GROUP BY gs.订单号
) zj1 ON v.[订单编号] = zj1.订单号
LEFT JOIN (
SELECT gs.合同号, SUM(gs.总时长) AS 合同装配工时
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''装配''
GROUP BY gs.合同号
) htzp ON v.[合同号] = htzp.合同号
LEFT JOIN (
SELECT gs.合同号, SUM(gs.总时长) AS 合同质检工时
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''质检''
GROUP BY gs.合同号
) htzj ON v.[合同号] = htzj.合同号
LEFT JOIN (
SELECT 项目号, 物料号, MIN(交货日期理论齐套日期) as 交货日期理论齐套日期
FROM SAP.SBO_YL.dbo.UBT_MES_ORDROPEN2
GROUP BY 项目号, 物料号
) s
ON v.合同号 = s.项目号 AND v.物料编号 = s.物料号';
IF(@>0) SET @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+CONVERT(varchar(10),@);
IF(@<>'') SET @selectStrWhere=@selectStrWhere + ' and [合同号] like ''%'+@+'%''';
IF(@<>'') SET @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@+'%''';
IF(@<>'') SET @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@+'%''';
IF(@ = '不含') SET @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%''';
IF(@<>'') SET @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@+'''';
IF(@1 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@1+'''';
IF(@2 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@2+'''';
IF(@ <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@+'''';
IF(@ <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@+'''';
IF(@='未完成') SET @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0';
ELSE IF(@='已完成') SET @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1';
IF(@='自制件') SET @selectStrWhere=@selectStrWhere + ' and [不装配] <> ''''';
IF(@='装配件') SET @selectStrWhere=@selectStrWhere + ' and [不装配] = ''''';
IF(@<>'全部') SET @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@+''', '',''))';
SET @selectStrWhere = @selectStrWhere + ' ORDER BY CASE WHEN 齐套时间 IS NULL THEN 1 ELSE 0 END, 齐套时间, 计划开始时间';
SET @selectStr=@selectStr+@selectStrWhere;
PRINT @selectStr;
EXEC sp_executesql @selectStr;
END

View File

@@ -0,0 +1,210 @@
ALTER PROCEDURE [dbo].[_阀类任务查询_导出]
@ int=0,
@ nvarchar(50)='', --
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@1 nvarchar(50)='',
@2 nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='全部' , --
@ nvarchar(50)='全部',
@ nvarchar(50)='不含'
AS
BEGIN
SET NOCOUNT ON;
SELECT '阀类任务_' + REPLACE(REPLACE(REPLACE(CONVERT(NVARCHAR(19), GETDATE(), 21), ':', ''), '-', ''), ' ', '-') AS tablename, '15' AS tabletype;
SELECT 256*12 AS ,
256*18 AS ,
256*12 AS ,
256*8 AS ,
256*14 AS ,
256*10 AS ,
256*24 AS ,
256*24 AS ,
256*10 AS ,
256*20 AS ,
256*14 AS ,
256*14 AS ,
256*14 AS ,
256*40 AS ,
256*40 AS ,
256*40 AS ,
256*14 AS ,
256*14 AS ,
256*14 AS ,
256*14 AS ,
256*24 AS ,
256*24 AS ,
256*14 AS ,
256*12 AS ,
256*10 AS ,
256*18 AS ,
256*12 AS ,
256*10 AS ,
256*20 AS ,
256*20 AS ,
256*14 AS ,
256*14 AS ,
256*20 AS ;
SELECT 0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ;
DECLARE @selectStr nvarchar(max);
DECLARE @selectStrWhere nvarchar(max)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 not like ''%系统%'' and isnull(任务状态,0)<4';
IF(@='自制件')
SET @selectStr='
SELECT
CONVERT(varchar(10), v.齐套时间, 120) AS 发料齐套,
CONVERT(varchar(10), v.计划开始时间, 120) AS 计划开始,
CONVERT(varchar(10), v.派工时间, 120) AS 派工时间,
CASE WHEN v.齐套 = 1 THEN '''' ELSE '''' END AS 齐套,
v.[合同号] AS 销售订单,
v.[订单编号] AS 生产订单,
v.[物料编号] AS 物料编码,
v.[物料描述] AS 物料名称,
TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS varchar(30)))) AS 计划数,
[二次派工] AS 二次派工,
CONVERT(varchar(10), ISNULL(v.预计送检日期, DATEADD(DAY, 3, v.齐套时间)), 120) AS 预计送检日期,
CONVERT(varchar(10), ISNULL(v.销售要求日期, s.交货日期理论齐套日期), 120) AS 销售要求日期,
CONVERT(varchar(10), v.要求发货日期, 120) AS 发货要求日期,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), lc.流程描述), N'','') WITHIN GROUP (ORDER BY lc.流程ID)
FROM [YL_MESDB].[dbo].[流程表] lc
WHERE lc.已关联计划号 = v.[订单编号]
), '''') AS 异常报警信息,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
FROM (
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
FROM [dbo].[YL_加工中心_操作记录表] t
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
WHERE t.操作类别 = ''开始加工''
AND t.结束时间 IS NULL
AND t.操作数值 IS NOT NULL
AND pt.订单编号 = v.[订单编号]
AND ry.班组 = ''装配''
) jxz
), '''') AS 装配进行中,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
FROM (
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
FROM [dbo].[YL_加工中心_操作记录表] t
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
WHERE t.操作类别 = ''开始加工''
AND t.结束时间 IS NULL
AND t.操作数值 IS NOT NULL
AND pt.订单编号 = v.[订单编号]
AND ry.班组 = ''质检''
) jxz
), '''') AS 质检进行中,
CAST(ISNULL(zp.装配工时, 0) / 3600.0 AS decimal(18,2)) AS 任务装配工时,
CAST(ISNULL(zj1.质检工时, 0) / 3600.0 AS decimal(18,2)) AS 任务质检工时,
CAST(ISNULL(htzp.合同装配工时, 0) / 3600.0 AS decimal(18,2)) AS 合同装配工时,
CAST(ISNULL(htzj.合同质检工时, 0) / 3600.0 AS decimal(18,2)) AS 合同质检工时,
ISNULL(zp.装配工序说明, '''') AS 装配工序说明,
ISNULL(zj1.质检工序说明, '''') AS 质检工序说明,
CONVERT(varchar(10), [计划完成], 120) AS 要求完工日期,
[工序名称] AS 工序名称,
v.计划号 AS 计划号,
指派对象 AS 指派对象,
TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS varchar(30)))) AS 指派数量,
[优先级] AS 优先级,
[未完成说明] AS 未完成说明,
[派工特殊说明] AS 派工特殊备注,
[占用情况] AS 占用情况,
[最后编辑人] AS 最后编辑人,
CONVERT(varchar(19), [最后编辑时间], 120) AS 最后编辑时间
FROM [View_生产订单_MES] v
LEFT JOIN (
SELECT gs.订单号, SUM(gs.总时长) AS 装配工时, MAX(gs.工序说明) AS 装配工序说明
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''装配''
GROUP BY gs.订单号
) zp ON v.[订单编号] = zp.订单号
LEFT JOIN (
SELECT gs.订单号, SUM(gs.总时长) AS 质检工时, MAX(gs.工序说明) AS 质检工序说明
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''质检''
GROUP BY gs.订单号
) zj1 ON v.[订单编号] = zj1.订单号
LEFT JOIN (
SELECT gs.合同号, SUM(gs.总时长) AS 合同装配工时
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''装配''
GROUP BY gs.合同号
) htzp ON v.[合同号] = htzp.合同号
LEFT JOIN (
SELECT gs.合同号, SUM(gs.总时长) AS 合同质检工时
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''质检''
GROUP BY gs.合同号
) htzj ON v.[合同号] = htzj.合同号
LEFT JOIN SAP.SBO_YL.dbo.UBT_MES_ORDROPEN2 s
ON v.合同号 = s.项目号 AND v.物料编号 = s.物料号';
IF(@>0) SET @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+CONVERT(varchar(10),@);
IF(@<>'') SET @selectStrWhere=@selectStrWhere + ' and [合同号] like ''%'+@+'%''';
IF(@<>'') SET @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@+'%''';
IF(@<>'') SET @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@+'%''';
IF(@ = '不含') SET @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%''';
IF(@<>'') SET @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@+'''';
IF(@1 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@1+'''';
IF(@2 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@2+'''';
IF(@ <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@+'''';
IF(@ <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@+'''';
IF(@='未完成') SET @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0';
ELSE IF(@='已完成') SET @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1';
IF(@='自制件') SET @selectStrWhere=@selectStrWhere + ' and [不装配] <> ''''';
IF(@='装配件') SET @selectStrWhere=@selectStrWhere + ' and [不装配] = ''''';
IF(@<>'全部') SET @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@+''', '',''))';
SET @selectStrWhere = @selectStrWhere + ' ORDER BY CASE WHEN 齐套时间 IS NULL THEN 1 ELSE 0 END, 齐套时间, 计划开始时间';
SET @selectStr=@selectStr+@selectStrWhere;
PRINT @selectStr;
EXEC sp_executesql @selectStr;
END

View File

@@ -0,0 +1,65 @@
CREATE PROCEDURE [dbo].[_阀类任务查询_导出]
@ int=0,
@ nvarchar(50)='', --
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@1 nvarchar(50)='',
@2 nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='全部' , --
@ nvarchar(50)='全部',
@ nvarchar(50)='不含'
AS
BEGIN
SET NOCOUNT ON;
-- 导出文件名和类型
SELECT '阀类任务_' + REPLACE(REPLACE(REPLACE(CONVERT(NVARCHAR(19), GETDATE(), 21), ':', ''), '-', ''), ' ', '-') AS tablename, '15' AS tabletype
-- 字段宽度
SELECT 256*20 AS , 256*20 AS , 256*20 AS , 256*10 AS , 256*10 AS ,
256*10 AS , 256*40 AS , 256*20 AS , 256*10 AS , 256*10 AS , 256*20 AS , 256*20 AS ,
256*20 AS
-- 是否计算列
SELECT 0 AS , 0 AS , 0 AS , 0 AS , 0 AS ,
0 AS , 0 AS , 0 AS , 0 AS , 0 AS , 0 AS , 0 AS ,
0 AS
-- 导出数据:每行都填满完整信息
declare @selectStr nvarchar(4000)
declare @selectStrWhere nvarchar(4000)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 not like ''%系统%'' and isnull(任务状态,0)<4'
if(@='自制件') --
set @selectStr='
SELECT v.齐套时间,计划开始时间,v.派工时间,v.齐套,[合同号],v.[订单编号] as 订单号,[物料编号] as 产品编码,[物料描述] as 产品名称,TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS VARCHAR(30)))) AS 计划数量,
[二次派工],DATEADD(DAY, 3, CONVERT(DATE, v.齐套时间)),1,要求发货日期
FROM [View_生产订单_MES] v'
if(@>0)set @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+Convert(VARCHAR(10),@)
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and [合同号] like ''%'+@+'%'''
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@+'%'''
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@+'%'''
if(@ = '不含')set @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%'''
if(@<>'')set @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@+''''
if(@1 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@1+''''
if(@2 <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@2+''''
if(@ <>'')set @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@+''''
if(@ <>'')set @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@+''''
if(@='未完成')set @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0'
else if(@='已完成')set @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1'
if(@='自制件') set @selectStrWhere=@selectStrWhere + ' and [不装配] <> '''''
if(@='装配件') set @selectStrWhere=@selectStrWhere + ' and [不装配] = '''''
if(@<>'全部') set @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@+''', '',''))'
set @selectStrWhere = @selectStrWhere+ 'ORDER BY
CASE WHEN 齐套时间 IS NULL THEN 1 ELSE 0 END,
齐套时间 '
set @selectStr=@selectStr+@selectStrWhere
print @selectStr
EXEC sp_executesql @selectStr
END

View File

@@ -0,0 +1,210 @@
CREATE PROCEDURE [dbo].[_阀类任务查询_导出]
@ int=0,
@ nvarchar(50)='', --
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@1 nvarchar(50)='',
@2 nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='全部' , --
@ nvarchar(50)='全部',
@ nvarchar(50)='不含'
AS
BEGIN
SET NOCOUNT ON;
SELECT '阀类任务_' + REPLACE(REPLACE(REPLACE(CONVERT(NVARCHAR(19), GETDATE(), 21), ':', ''), '-', ''), ' ', '-') AS tablename, '15' AS tabletype;
SELECT 256*12 AS ,
256*18 AS ,
256*12 AS ,
256*8 AS ,
256*14 AS ,
256*10 AS ,
256*24 AS ,
256*24 AS ,
256*10 AS ,
256*20 AS ,
256*14 AS ,
256*14 AS ,
256*14 AS ,
256*40 AS ,
256*40 AS ,
256*40 AS ,
256*14 AS ,
256*14 AS ,
256*14 AS ,
256*14 AS ,
256*24 AS ,
256*24 AS ,
256*14 AS ,
256*12 AS ,
256*10 AS ,
256*18 AS ,
256*12 AS ,
256*10 AS ,
256*20 AS ,
256*20 AS ,
256*14 AS ,
256*14 AS ,
256*20 AS ;
SELECT 0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ;
DECLARE @selectStr nvarchar(max);
DECLARE @selectStrWhere nvarchar(max)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 not like ''%系统%'' and isnull(任务状态,0)<4';
IF(@='自制件')
SET @selectStr='
SELECT
CONVERT(varchar(10), v.齐套时间, 120) AS 发料齐套,
CONVERT(varchar(10), v.计划开始时间, 120) AS 计划开始,
CONVERT(varchar(10), v.派工时间, 120) AS 派工时间,
CASE WHEN v.齐套 = 1 THEN '''' ELSE '''' END AS 齐套,
v.[合同号] AS 销售订单,
v.[订单编号] AS 生产订单,
v.[物料编号] AS 物料编码,
v.[物料描述] AS 物料名称,
TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS varchar(30)))) AS 计划数,
[二次派工] AS 二次派工,
CONVERT(varchar(10), ISNULL(v.预计送检日期, DATEADD(DAY, 3, v.齐套时间)), 120) AS 预计送检日期,
CONVERT(varchar(10), ISNULL(v.销售要求日期, s.交货日期理论齐套日期), 120) AS 销售要求日期,
CONVERT(varchar(10), v.要求发货日期, 120) AS 发货要求日期,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), lc.流程描述), N'','') WITHIN GROUP (ORDER BY lc.流程ID)
FROM [YL_MESDB].[dbo].[流程表] lc
WHERE lc.已关联计划号 = v.[订单编号]
), '''') AS 异常报警信息,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
FROM (
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
FROM [dbo].[YL_加工中心_操作记录表] t
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
WHERE t.操作类别 = ''开始加工''
AND t.结束时间 IS NULL
AND t.操作数值 IS NOT NULL
AND pt.订单编号 = v.[订单编号]
AND ry.班组 = ''装配''
) jxz
), '''') AS 装配进行中,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
FROM (
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
FROM [dbo].[YL_加工中心_操作记录表] t
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
WHERE t.操作类别 = ''开始加工''
AND t.结束时间 IS NULL
AND t.操作数值 IS NOT NULL
AND pt.订单编号 = v.[订单编号]
AND ry.班组 = ''质检''
) jxz
), '''') AS 质检进行中,
CAST(ISNULL(zp.装配工时, 0) / 3600.0 AS decimal(18,2)) AS 任务装配工时,
CAST(ISNULL(zj1.质检工时, 0) / 3600.0 AS decimal(18,2)) AS 任务质检工时,
CAST(ISNULL(htzp.合同装配工时, 0) / 3600.0 AS decimal(18,2)) AS 合同装配工时,
CAST(ISNULL(htzj.合同质检工时, 0) / 3600.0 AS decimal(18,2)) AS 合同质检工时,
ISNULL(zp.装配工序说明, '''') AS 装配工序说明,
ISNULL(zj1.质检工序说明, '''') AS 质检工序说明,
CONVERT(varchar(10), [计划完成], 120) AS 要求完工日期,
[工序名称] AS 工序名称,
v.计划号 AS 计划号,
指派对象 AS 指派对象,
TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS varchar(30)))) AS 指派数量,
[优先级] AS 优先级,
[未完成说明] AS 未完成说明,
[派工特殊说明] AS 派工特殊备注,
[占用情况] AS 占用情况,
[最后编辑人] AS 最后编辑人,
CONVERT(varchar(19), [最后编辑时间], 120) AS 最后编辑时间
FROM [View_生产订单_MES] v
LEFT JOIN (
SELECT gs.订单号, SUM(gs.总时长) AS 装配工时, MAX(gs.工序说明) AS 装配工序说明
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''装配''
GROUP BY gs.订单号
) zp ON v.[订单编号] = zp.订单号
LEFT JOIN (
SELECT gs.订单号, SUM(gs.总时长) AS 质检工时, MAX(gs.工序说明) AS 质检工序说明
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''质检''
GROUP BY gs.订单号
) zj1 ON v.[订单编号] = zj1.订单号
LEFT JOIN (
SELECT gs.合同号, SUM(gs.总时长) AS 合同装配工时
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''装配''
GROUP BY gs.合同号
) htzp ON v.[合同号] = htzp.合同号
LEFT JOIN (
SELECT gs.合同号, SUM(gs.总时长) AS 合同质检工时
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''质检''
GROUP BY gs.合同号
) htzj ON v.[合同号] = htzj.合同号
LEFT JOIN SAP.SBO_YL.dbo.UBT_MES_ORDROPEN2 s
ON v.合同号 = s.项目号 AND v.物料编号 = s.物料号';
IF(@>0) SET @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+CONVERT(varchar(10),@);
IF(@<>'') SET @selectStrWhere=@selectStrWhere + ' and [合同号] like ''%'+@+'%''';
IF(@<>'') SET @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@+'%''';
IF(@<>'') SET @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@+'%''';
IF(@ = '不含') SET @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%''';
IF(@<>'') SET @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@+'''';
IF(@1 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@1+'''';
IF(@2 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@2+'''';
IF(@ <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@+'''';
IF(@ <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@+'''';
IF(@='未完成') SET @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0';
ELSE IF(@='已完成') SET @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1';
IF(@='自制件') SET @selectStrWhere=@selectStrWhere + ' and [不装配] <> ''''';
IF(@='装配件') SET @selectStrWhere=@selectStrWhere + ' and [不装配] = ''''';
IF(@<>'全部') SET @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@+''', '',''))';
SET @selectStrWhere = @selectStrWhere + ' ORDER BY CASE WHEN 齐套时间 IS NULL THEN 1 ELSE 0 END, 齐套时间, 计划开始时间';
SET @selectStr=@selectStr+@selectStrWhere;
PRINT @selectStr;
EXEC sp_executesql @selectStr;
END

View File

@@ -0,0 +1,210 @@
CREATE PROCEDURE [dbo].[_阀类任务查询_导出]
@ int=0,
@ nvarchar(50)='', --
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@1 nvarchar(50)='',
@2 nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='',
@ nvarchar(50)='全部' , --
@ nvarchar(50)='全部',
@ nvarchar(50)='不含'
AS
BEGIN
SET NOCOUNT ON;
SELECT '阀类任务_' + REPLACE(REPLACE(REPLACE(CONVERT(NVARCHAR(19), GETDATE(), 21), ':', ''), '-', ''), ' ', '-') AS tablename, '15' AS tabletype;
SELECT 256*12 AS ,
256*18 AS ,
256*12 AS ,
256*8 AS ,
256*14 AS ,
256*10 AS ,
256*24 AS ,
256*24 AS ,
256*10 AS ,
256*20 AS ,
256*14 AS ,
256*14 AS ,
256*14 AS ,
256*40 AS ,
256*40 AS ,
256*40 AS ,
256*14 AS ,
256*14 AS ,
256*14 AS ,
256*14 AS ,
256*24 AS ,
256*24 AS ,
256*14 AS ,
256*12 AS ,
256*10 AS ,
256*18 AS ,
256*12 AS ,
256*10 AS ,
256*20 AS ,
256*20 AS ,
256*14 AS ,
256*14 AS ,
256*20 AS ;
SELECT 0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ,
0 AS ;
DECLARE @selectStr nvarchar(max);
DECLARE @selectStrWhere nvarchar(max)=' where [物料类型]=''pit_Resource'' and [自制件属性] like ''%装配%'' and 物料描述 not like ''%系统%'' and isnull(任务状态,0)<4';
IF(@='自制件')
SET @selectStr='
SELECT
CONVERT(varchar(10), v.齐套时间, 120) AS 发料齐套,
CONVERT(varchar(10), v.计划开始时间, 120) AS 计划开始,
CONVERT(varchar(10), v.派工时间, 120) AS 派工时间,
CASE WHEN v.齐套 = 1 THEN '''' ELSE '''' END AS 齐套,
v.[合同号] AS 销售订单,
v.[订单编号] AS 生产订单,
v.[物料编号] AS 物料编码,
v.[物料描述] AS 物料名称,
TRIM(''.'' FROM TRIM(''0'' FROM CAST(v.[计划数量] AS varchar(30)))) AS 计划数,
[二次派工] AS 二次派工,
CONVERT(varchar(10), DATEADD(DAY, 3, CONVERT(date, v.齐套时间)), 120) AS 预计送检日期,
CONVERT(varchar(10), s.交货日期理论齐套日期, 120) AS 销售要求日期,
CONVERT(varchar(10), v.要求发货日期, 120) AS 发货要求日期,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), lc.流程描述), N'','') WITHIN GROUP (ORDER BY lc.流程ID)
FROM [YL_MESDB].[dbo].[流程表] lc
WHERE lc.已关联计划号 = v.[订单编号]
), '''') AS 异常报警信息,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
FROM (
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
FROM [dbo].[YL_加工中心_操作记录表] t
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
WHERE t.操作类别 = ''开始加工''
AND t.结束时间 IS NULL
AND t.操作数值 IS NOT NULL
AND pt.订单编号 = v.[订单编号]
AND ry.班组 = ''装配''
) jxz
), '''') AS 装配进行中,
ISNULL((
SELECT STRING_AGG(CONVERT(nvarchar(max), jxz.UserName + '': '' + CONVERT(varchar(19), jxz.StartTime, 120)), N'','') WITHIN GROUP (ORDER BY jxz.StartTime DESC)
FROM (
SELECT DISTINCT t.操作人 AS UserName, t.开始时间 AS StartTime
FROM [dbo].[YL_加工中心_操作记录表] t
LEFT JOIN [dbo].[MES_接口_生产计划_生产任务] pt ON t.TaskAID = pt.AID
INNER JOIN [YL_MESDB].[dbo].[登录基础数据_人员信息] ry ON t.操作人 = ry.Personnel_Name
WHERE t.操作类别 = ''开始加工''
AND t.结束时间 IS NULL
AND t.操作数值 IS NOT NULL
AND pt.订单编号 = v.[订单编号]
AND ry.班组 = ''质检''
) jxz
), '''') AS 质检进行中,
CAST(ISNULL(zp.装配工时, 0) / 60.0 AS decimal(18,2)) AS 任务装配工时,
CAST(ISNULL(zj1.质检工时, 0) / 60.0 AS decimal(18,2)) AS 任务质检工时,
CAST(ISNULL(htzp.合同装配工时, 0) / 60.0 AS decimal(18,2)) AS 合同装配工时,
CAST(ISNULL(htzj.合同质检工时, 0) / 60.0 AS decimal(18,2)) AS 合同质检工时,
ISNULL(zp.装配工序说明, '''') AS 装配工序说明,
ISNULL(zj1.质检工序说明, '''') AS 质检工序说明,
CONVERT(varchar(10), [计划完成], 120) AS 要求完工日期,
[工序名称] AS 工序名称,
v.计划号 AS 计划号,
指派对象 AS 指派对象,
TRIM(''.'' FROM TRIM(''0'' FROM CAST([指派数量] AS varchar(30)))) AS 指派数量,
[优先级] AS 优先级,
[未完成说明] AS 未完成说明,
[派工特殊说明] AS 派工特殊备注,
[占用情况] AS 占用情况,
[最后编辑人] AS 最后编辑人,
CONVERT(varchar(19), [最后编辑时间], 120) AS 最后编辑时间
FROM [View_生产订单_MES] v
LEFT JOIN (
SELECT gs.订单号, SUM(gs.总时长) AS 装配工时, MAX(gs.工序说明) AS 装配工序说明
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''装配''
GROUP BY gs.订单号
) zp ON v.[订单编号] = zp.订单号
LEFT JOIN (
SELECT gs.订单号, SUM(gs.总时长) AS 质检工时, MAX(gs.工序说明) AS 质检工序说明
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''质检''
GROUP BY gs.订单号
) zj1 ON v.[订单编号] = zj1.订单号
LEFT JOIN (
SELECT gs.合同号, SUM(gs.总时长) AS 合同装配工时
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''装配''
GROUP BY gs.合同号
) htzp ON v.[合同号] = htzp.合同号
LEFT JOIN (
SELECT gs.合同号, SUM(gs.总时长) AS 合同质检工时
FROM [dbo].[View_生产工时视图] gs
INNER JOIN [dbo].[登录基础数据_人员信息] ry ON gs.操作人 = ry.Personnel_Name
WHERE ry.班组 = ''质检''
GROUP BY gs.合同号
) htzj ON v.[合同号] = htzj.合同号
LEFT JOIN SAP.SBO_YL.dbo.UBT_MES_ORDROPEN2 s
ON v.合同号 = s.项目号 AND v.物料编号 = s.物料号';
IF(@>0) SET @selectStrWhere=@selectStrWhere + ' and v.[订单编号]='+CONVERT(varchar(10),@);
IF(@<>'') SET @selectStrWhere=@selectStrWhere + ' and [合同号] like ''%'+@+'%''';
IF(@<>'') SET @selectStrWhere=@selectStrWhere + ' and [物料编号] like ''%'+@+'%''';
IF(@<>'') SET @selectStrWhere=@selectStrWhere + ' and [物料描述] like ''%'+@+'%''';
IF(@ = '不含') SET @selectStrWhere=@selectStrWhere + ' and [物料描述] not like ''%软管总成%'' and [物料描述] not like ''%发货部件%''';
IF(@<>'') SET @selectStrWhere=@selectStrWhere + ' and [工序名称] = '''+@+'''';
IF(@1 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成] >= '''+@1+'''';
IF(@2 <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成] <= '''+@2+'''';
IF(@ <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划开始时间] >= '''+@+'''';
IF(@ <>'') SET @selectStrWhere=@selectStrWhere + ' and [计划完成时间] <= '''+@+'''';
IF(@='未完成') SET @selectStrWhere=@selectStrWhere + ' and isnull([排产状态],0) = 0';
ELSE IF(@='已完成') SET @selectStrWhere=@selectStrWhere + ' and [排产状态] = 1';
IF(@='自制件') SET @selectStrWhere=@selectStrWhere + ' and [不装配] <> ''''';
IF(@='装配件') SET @selectStrWhere=@selectStrWhere + ' and [不装配] = ''''';
IF(@<>'全部') SET @selectStrWhere=@selectStrWhere + ' and [指派对象] in (SELECT value FROM STRING_SPLIT('''+@+''', '',''))';
SET @selectStrWhere = @selectStrWhere + ' ORDER BY CASE WHEN 齐套时间 IS NULL THEN 1 ELSE 0 END, 齐套时间, 计划开始时间';
SET @selectStr=@selectStr+@selectStrWhere;
PRINT @selectStr;
EXEC sp_executesql @selectStr;
END

View File

@@ -0,0 +1,40 @@
CREATE OR ALTER PROCEDURE [dbo].[_阀类装配任务_修改预计送检日期]
@editstr nvarchar(100),
@ int=0
AS
BEGIN
SET NOCOUNT ON;
DECLARE @whereStr nvarchar(max)=' where 1=1 ';
DECLARE @updateStr nvarchar(max)='update [MES_接口_生产计划] set ';
DECLARE @selStr nvarchar(max)='';
IF(@>0) SET @whereStr=@whereStr + ' and [订单编号]='+CONVERT(varchar(10),@);
IF(@editstr<>'') SET @updateStr = @updateStr + @editstr;
SET @selStr=@updateStr+@whereStr;
PRINT @selStr;
EXEC sp_executesql @selStr;
SELECT '1' AS result;
END;
GO
CREATE OR ALTER PROCEDURE [dbo].[_阀类装配任务_修改销售要求日期]
@editstr nvarchar(100),
@ int=0
AS
BEGIN
SET NOCOUNT ON;
DECLARE @whereStr nvarchar(max)=' where 1=1 ';
DECLARE @updateStr nvarchar(max)='update [MES_接口_生产计划] set ';
DECLARE @selStr nvarchar(max)='';
IF(@>0) SET @whereStr=@whereStr + ' and [订单编号]='+CONVERT(varchar(10),@);
IF(@editstr<>'') SET @updateStr = @updateStr + @editstr;
SET @selStr=@updateStr+@whereStr;
PRINT @selStr;
EXEC sp_executesql @selStr;
SELECT '1' AS result;
END;

View File

@@ -12,7 +12,14 @@
<article v-for="item in summaryCards" :key="item.title" class="panel summary-card" :class="item.className">
<div>
<div class="summary-title">{{ item.title }}</div>
<div class="summary-body">
<div v-if="item.metrics" class="summary-metrics">
<div v-for="metric in item.metrics" :key="metric.label" class="summary-metric">
<span>{{ metric.label }}</span>
<b>{{ metric.value }}</b>
<small>{{ item.unit }}</small>
</div>
</div>
<div v-else class="summary-body">
<img class="summary-icon" :src="item.icon" :alt="item.title" />
<div class="summary-value" :class="item.valueClass"><span>{{ item.value }}</span><small
v-if="item.unit">{{ item.unit }}</small></div>
@@ -143,7 +150,7 @@ onMounted(() => {
searchDashboardData()
startAllScroll()
setInterval(function(){
searchDashboardData
searchDashboardData()
},600000)
})
@@ -221,6 +228,7 @@ const stopAllScroll = () => {
// ============ 数据查询 ============
const searchDashboardData = () => {
searchExecutableData()
searchUnclosedData()
searchMaterialshortageData()
searchUrgentData()
@@ -229,6 +237,9 @@ const searchDashboardData = () => {
searchPassRateData()
searchDoneTaskData()
}
const searchExecutableData = () => {
queryDashboardData('装配中心任务看板_可执行任务数', applyExecutableData)
}
const searchUnclosedData = () => {
queryDashboardData('装配中心任务看板_异常未关闭总数', applyUnclosedData)
}
@@ -250,8 +261,14 @@ const searchPassRateData = () => {
const searchDoneTaskData = () => {
queryDashboardData('装配中心任务看板_已完成任务', applyDoneTaskData)
}
const applyExecutableData = rows => {
const row = rows[0] || {}
summaryCards[0].metrics[0].value = row.阀类可执行任务数 || 0
summaryCards[0].metrics[1].value = row.系统类可执行任务数 || 0
summaryCards[1].value = row.及时送检数 || 0
}
const applyUnclosedData = rows => {
summaryCards[3].value = rows[0].装配异常未关闭总数
summaryCards[4].value = rows[0].装配异常未关闭总数
}
const applyDeliveryData = rows => {
deliveryRows.value = rows.map(item => {
@@ -286,7 +303,7 @@ const applyDeliveryData = rows => {
})
}
const applyUrgentData = rows => {
summaryCards[1].value = rows[0].加急总数
summaryCards[3].value = rows[0].加急总数
}
const applyPassRateData = rows => {
summaryCards[2].value = rows[0].总合格率+'%'
@@ -380,11 +397,11 @@ const icons = {
done: svgIcon('#47eaa0', '#0da76b', '<rect x="19" y="19" width="34" height="34" rx="8"/><path d="M27 37l7 7 15-18"/>')
}
const summaryCards = [
{ title: '及时送检数', value: 18, unit: '', icon: icons.pending },
{ title: '加急任务数', value: 125, unit: '条', icon: icons.urgent, valueClass: 'red-text' },
{ title: '可执行任务数', unit: '条', className: 'executable-card', metrics: [{ label: '阀类', value: 0 }, { label: '系统类', value: 0 }] },
{ title: '及时送检数', value: 0, unit: '条', icon: icons.pending , valueClass: 'red-text'},
{ title: '装配合格率', value: '100%', icon: icons.finalCheck, valueClass: 'green-text full-value' },
{ title: '异常未关闭消息数', value: 5, unit: '条', icon: icons.urgent, valueClass: 'red-text' },
{ title: '缺勤人员', value: 0, unit: '', icon:icons.returnDown, valueClass: 'orange-text', className: 'absence-card', people: [{ name: '全勤', group: '装配1班' }, { name: '全勤', group: '装配2班' }, { name: '全勤', group: '装配3班' }] },
{ title: '加急任务数', value: 125, unit: '条', icon: icons.urgent, valueClass: 'red-text' },
{ title: '异常未关闭消息数', value: 5, unit: '', icon: icons.urgent, valueClass: 'red-text', className: 'exception-card' },
]
const taskColumns = [
{ label: '生产订单', key: 'productionOrder', width: '72px' },
@@ -504,7 +521,7 @@ const doneColumns = [
.summary-row {
display: grid;
grid-template-columns: 1.05fr 1.05fr 1fr 1.2fr 1.55fr;
grid-template-columns: 1.28fr 1fr 1fr 1fr .82fr;
gap: 17px;
}
@@ -594,6 +611,90 @@ const doneColumns = [
text-align: left;
}
.executable-card {
padding: 8px 16px;
}
.executable-card .summary-title {
margin-bottom: 8px;
font-size: 21px;
text-align: left;
}
.summary-metrics {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 14px;
align-items: center;
width: 100%;
}
.summary-metric {
position: relative;
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
grid-template-rows: 22px 48px;
align-items: baseline;
min-width: 0;
padding: 6px 10px 4px;
color: #fff;
font-weight: 800;
}
.summary-metric span {
grid-column: 1 / -1;
color: #89d4ff;
font-size: 18px;
line-height: 22px;
white-space: nowrap;
}
.summary-metric b {
color: #18c65b;
font-size: 50px;
line-height: 1;
text-align: right;
text-shadow: 0 0 10px rgba(24, 198, 91, .32);
}
.summary-metric small {
color: #fff;
font-size: 18px;
font-weight: 700;
text-align: left;
white-space: nowrap;
}
.exception-card {
padding: 8px 12px;
}
.exception-card .summary-title {
font-size: 18px;
}
.exception-card .summary-body {
grid-template-columns: 54px 150px;
column-gap: 16px;
}
.exception-card .summary-icon {
width: 54px;
height: 54px;
}
.exception-card .summary-value {
grid-template-columns: 105px 28px;
}
.exception-card .summary-value span {
font-size: 48px;
}
.exception-card .summary-value small {
font-size: 20px;
}
.summary-title {
margin-bottom: 5px;
color: #89d4ff;