按新要求修改
This commit is contained in:
parent
662bed71ee
commit
48adb5b70a
@ -98,6 +98,7 @@ public class PgMasterLineDO extends BaseDO {
|
|||||||
* 检验人
|
* 检验人
|
||||||
*/
|
*/
|
||||||
private Long detilUser;
|
private Long detilUser;
|
||||||
|
private Long dispatchDetailId;
|
||||||
/**
|
/**
|
||||||
* 开始日期
|
* 开始日期
|
||||||
*/
|
*/
|
||||||
|
@ -87,6 +87,8 @@ public class TaskDispatchDetailDO extends BaseDO {
|
|||||||
private Long detailOwnerId;
|
private Long detailOwnerId;
|
||||||
//是否过程检, 否-Y 是 -N
|
//是否过程检, 否-Y 是 -N
|
||||||
private String testYn;
|
private String testYn;
|
||||||
|
//是否过程检, 否-Y 是 -N
|
||||||
|
private Integer checkYn;
|
||||||
/**
|
/**
|
||||||
* 预计结束日期
|
* 预计结束日期
|
||||||
*/
|
*/
|
||||||
|
@ -79,7 +79,7 @@ public interface PgMasterService {
|
|||||||
*/
|
*/
|
||||||
List<PgMasterLineDO> getPgMasterLineListByZlPgId(Integer zlPgId);
|
List<PgMasterLineDO> getPgMasterLineListByZlPgId(Integer zlPgId);
|
||||||
|
|
||||||
Boolean insertPgList(Long task_id,Long project_id,Long bomMxId,Long procedureId);
|
Boolean insertPgList(Long task_id,Long project_id,Long bomMxId,TaskDispatchDetailDO taskDispatchDetailDOk);
|
||||||
|
|
||||||
List<PgMasterLineDO> searchBomMx(Long task_id,Long project_id);
|
List<PgMasterLineDO> searchBomMx(Long task_id,Long project_id);
|
||||||
|
|
||||||
|
@ -59,7 +59,7 @@ public class PgMasterServiceImpl implements PgMasterService {
|
|||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Boolean insertPgList(Long task_id,Long project_id,Long bomMxId,Long procedureId){
|
public Boolean insertPgList(Long task_id,Long project_id,Long bomMxId,TaskDispatchDetailDO taskDispatchDetailDO){
|
||||||
//213 605
|
//213 605
|
||||||
//查询BOM明细
|
//查询BOM明细
|
||||||
List<ProcessBomDO> processBomDOList = processBomMapper.selectBomMx(task_id,project_id,bomMxId);
|
List<ProcessBomDO> processBomDOList = processBomMapper.selectBomMx(task_id,project_id,bomMxId);
|
||||||
@ -69,7 +69,8 @@ public class PgMasterServiceImpl implements PgMasterService {
|
|||||||
//bomID
|
//bomID
|
||||||
pgMasterLineDO.setBomId(o.getBomId());
|
pgMasterLineDO.setBomId(o.getBomId());
|
||||||
//工序id
|
//工序id
|
||||||
pgMasterLineDO.setProcedureId(procedureId);
|
pgMasterLineDO.setProcedureId(taskDispatchDetailDO.getProcedureId());
|
||||||
|
pgMasterLineDO.setDispatchDetailId(taskDispatchDetailDO.getId());
|
||||||
//bom名称
|
//bom名称
|
||||||
pgMasterLineDO.setBomName("BOM-"+o.getProjectSubShortName());
|
pgMasterLineDO.setBomName("BOM-"+o.getProjectSubShortName());
|
||||||
//bom编号
|
//bom编号
|
||||||
|
@ -510,8 +510,8 @@ public class TaskDispatchServiceImpl implements TaskDispatchService {
|
|||||||
if (CollUtil.isNotEmpty(taskDispatchDetailDO2)){
|
if (CollUtil.isNotEmpty(taskDispatchDetailDO2)){
|
||||||
//
|
//
|
||||||
for (TaskDispatchDetailDO dispatchDetailDO : taskDispatchDetailDO2) {
|
for (TaskDispatchDetailDO dispatchDetailDO : taskDispatchDetailDO2) {
|
||||||
if (!dispatchDetailDO.getTestYn().equals("Y")){
|
if (dispatchDetailDO.getTestYn() == null || !dispatchDetailDO.getTestYn().equals("Y") ){
|
||||||
throw exception(new ErrorCode(102223_666,"上一道工序:"+dispatchDetailDO.getProcedureName() + "没有完成,请确认!"));
|
throw exception(new ErrorCode(102223_666,dispatchDetailDO.getProcedureName() + "工序过程检没有完成,请确认!"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -764,8 +764,8 @@ public class TaskDispatchServiceImpl implements TaskDispatchService {
|
|||||||
bdgzsomthingMapper.updateById(bdgzsomthingDO);
|
bdgzsomthingMapper.updateById(bdgzsomthingDO);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (taskDispatchDO.getDispatchType().equals("PRODUCTION")){
|
if (taskDispatchDO.getDispatchType().equals("PRODUCTION") && taskDispatchDetailDO.getTestYn().equals("N")){
|
||||||
pgMasterService.insertPgList(planDO.getId(),planDO.getProjectId(),taskDispatchDO.getBomDetailId(),taskDispatchDetailDO.getProcedureId());
|
pgMasterService.insertPgList(planDO.getId(),planDO.getProjectId(),taskDispatchDO.getBomDetailId(),taskDispatchDetailDO);
|
||||||
}
|
}
|
||||||
// if (taskDispatchDO.getDispatchType().equals("PRODUCTION") && isBomDetailProductionOver){
|
// if (taskDispatchDO.getDispatchType().equals("PRODUCTION") && isBomDetailProductionOver){
|
||||||
//
|
//
|
||||||
|
@ -190,24 +190,24 @@ v-for="dict in getIntDictOptions(DICT_TYPE.HELI_PROJECT_PLAN_STATUS)" :key="dict
|
|||||||
</el-col> -->
|
</el-col> -->
|
||||||
<el-col :span="6" >
|
<el-col :span="6" >
|
||||||
<el-form-item label="设计工时" prop="delayReason">
|
<el-form-item label="设计工时" prop="delayReason">
|
||||||
{{ getWorkTime(1)}}
|
<el-input class="!w-260px" :placeholder="getWorkTime(1)" :disabled="true"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="设计工期" prop="delayReason">
|
<el-form-item label="设计工期" prop="delayReason">
|
||||||
{{ getWorkTime(2) }}
|
<el-input class="!w-260px" :placeholder="getWorkTime(2)" :disabled="true"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6" >
|
<el-col :span="6" >
|
||||||
<el-button v-if="formData.isOverProcess == null || formData.isOverProcess == 0" style="margin-left: 10%;" type="warning" @click="openDelay">延期</el-button>
|
<el-button v-if="formData.isOverProcess == null || formData.isOverProcess == 0" style="margin-left: 10%;" type="warning" @click="openDelay">延期</el-button>
|
||||||
<el-button v-if="formData.isOverProcess == null || formData.isOverProcess == 0" style="margin-left: 10%;" type="danger" @click="overProcess">{{ overbuttonName }}</el-button>
|
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="12" v-if="formData.isDelay == 1">
|
<el-col :span="12" v-if="delayDialog || formData.isDelay">
|
||||||
<el-form-item label="延期原因" prop="delayReason">
|
<el-form-item label="延期原因" prop="delayReason">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="formData.delayReason"
|
v-model="formData.delayReason"
|
||||||
:rows="2"
|
:rows="2"
|
||||||
disabled
|
:disabled="!delayDialog"
|
||||||
|
@blur="(e) => delaySubmit(e)"
|
||||||
type="textarea"
|
type="textarea"
|
||||||
placeholder="延期原因"
|
placeholder="延期原因"
|
||||||
/>
|
/>
|
||||||
@ -216,7 +216,7 @@ v-for="dict in getIntDictOptions(DICT_TYPE.HELI_PROJECT_PLAN_STATUS)" :key="dict
|
|||||||
</el-row>
|
</el-row>
|
||||||
</el-card>
|
</el-card>
|
||||||
<!--延期弹框-->
|
<!--延期弹框-->
|
||||||
<el-dialog
|
<!-- <el-dialog
|
||||||
v-model="delayDialog"
|
v-model="delayDialog"
|
||||||
title="延期信息填写"
|
title="延期信息填写"
|
||||||
:before-close="handleClose"
|
:before-close="handleClose"
|
||||||
@ -237,7 +237,7 @@ v-for="dict in getIntDictOptions(DICT_TYPE.HELI_PROJECT_PLAN_STATUS)" :key="dict
|
|||||||
</el-button>
|
</el-button>
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
</el-dialog>
|
</el-dialog> -->
|
||||||
<!-- 表格类信息 -->
|
<!-- 表格类信息 -->
|
||||||
<el-card class="hl-card-info">
|
<el-card class="hl-card-info">
|
||||||
<template #header>
|
<template #header>
|
||||||
@ -247,6 +247,7 @@ v-for="dict in getIntDictOptions(DICT_TYPE.HELI_PROJECT_PLAN_STATUS)" :key="dict
|
|||||||
<el-col v-if="active != 'detail'">
|
<el-col v-if="active != 'detail'">
|
||||||
<el-button v-if="formData.isOverProcess == null || formData.isOverProcess == 0" class="hl-addbutton" type="primary" size="large" @click="onAddItem">开始</el-button>
|
<el-button v-if="formData.isOverProcess == null || formData.isOverProcess == 0" class="hl-addbutton" type="primary" size="large" @click="onAddItem">开始</el-button>
|
||||||
<el-button v-if="formData.isOverProcess == null || formData.isOverProcess == 0" style="margin-left: 30px;" type="warning" size="large" @click="sendItem()">推送</el-button>
|
<el-button v-if="formData.isOverProcess == null || formData.isOverProcess == 0" style="margin-left: 30px;" type="warning" size="large" @click="sendItem()">推送</el-button>
|
||||||
|
<el-button v-if="formData.isOverProcess == null || formData.isOverProcess == 0" style="margin-left: 30px;" type="danger" size="large" @click="overProcess">{{ overbuttonName }}</el-button>
|
||||||
|
|
||||||
<!-- <el-button class="hl-addbutton" type="primary" size="large" @click="onAddItem">新增</el-button> -->
|
<!-- <el-button class="hl-addbutton" type="primary" size="large" @click="onAddItem">新增</el-button> -->
|
||||||
</el-col>
|
</el-col>
|
||||||
@ -255,13 +256,21 @@ v-for="dict in getIntDictOptions(DICT_TYPE.HELI_PROJECT_PLAN_STATUS)" :key="dict
|
|||||||
<el-form ref="processDesignProgressFormRef" :model="formData.processDesignProgressList" :rules="subFormRules" v-loading="subFormLoading" label-width="0">
|
<el-form ref="processDesignProgressFormRef" :model="formData.processDesignProgressList" :rules="subFormRules" v-loading="subFormLoading" label-width="0">
|
||||||
<el-table :data="formData.processDesignProgressList" class="hl-table">
|
<el-table :data="formData.processDesignProgressList" class="hl-table">
|
||||||
<el-table-column label="序号" align="center" type="index" width="80" fixed />
|
<el-table-column label="序号" align="center" type="index" width="80" fixed />
|
||||||
<el-table-column label="开始时间" align="center" prop="beginTime" :formatter="dateFormatter" min-width="200"/>
|
<el-table-column label="开始时间" align="center" prop="beginTime" :formatter="dateFormatter" min-width="200">
|
||||||
|
<template #header>开始时间</template>
|
||||||
|
<template #default="{ row, $index }">
|
||||||
|
<el-form-item :prop="`${$index}.beginTime`" class="mb-0px!">
|
||||||
|
<!-- <el-input-number min="0" max="100" class="!w-240px" :disabled="detailDisabled || row.id" v-model="row.progress" placeholder="请输入进度百分比" @change="verify1($index)"/>-->
|
||||||
|
<el-date-picker :disabled-date="(date) => disabledDate1(date, row)" @change="(e) => beginTimeChange(e,row)" :disabled=" row.isOver == 1 || formData.isOverProcess == 1" :formatter="dateFormatter" v-model="row.beginTime" type="datetime" placeholder="选择开始日期"/>
|
||||||
|
</el-form-item>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column label="结束时间" align="center" prop="endTime" :formatter="dateFormatter" min-width="200">
|
<el-table-column label="结束时间" align="center" prop="endTime" :formatter="dateFormatter" min-width="200">
|
||||||
<template #header>结束时间</template>
|
<template #header>结束时间</template>
|
||||||
<template #default="{ row, $index }">
|
<template #default="{ row, $index }">
|
||||||
<el-form-item :prop="`${$index}.endTime`" class="mb-0px!">
|
<el-form-item :prop="`${$index}.endTime`" class="mb-0px!">
|
||||||
<!-- <el-input-number min="0" max="100" class="!w-240px" :disabled="detailDisabled || row.id" v-model="row.progress" placeholder="请输入进度百分比" @change="verify1($index)"/>-->
|
<!-- <el-input-number min="0" max="100" class="!w-240px" :disabled="detailDisabled || row.id" v-model="row.progress" placeholder="请输入进度百分比" @change="verify1($index)"/>-->
|
||||||
<el-date-picker :disabled-date="(date) => disabledDate(date, row)" @change="(e) => endTimeChange(e,row)" :disabled="row.isOver || formData.isOverProcess == 1" :formatter="dateFormatter" v-model="row.endTime" type="datetime" placeholder="选择结束日期"/>
|
<el-date-picker :disabled-date="(date) => disabledDate(date, row)" @change="(e) => endTimeChange(e,row)" :disabled=" row.isOver == 1 || formData.isOverProcess == 1" :formatter="dateFormatter" v-model="row.endTime" type="datetime" placeholder="选择结束日期"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
@ -269,7 +278,7 @@ v-for="dict in getIntDictOptions(DICT_TYPE.HELI_PROJECT_PLAN_STATUS)" :key="dict
|
|||||||
<template #header>已做时间(小时)</template>
|
<template #header>已做时间(小时)</template>
|
||||||
<template #default="{ row, $index }">
|
<template #default="{ row, $index }">
|
||||||
<el-form-item :prop="`${$index}.workTime`" class="mb-0px!">
|
<el-form-item :prop="`${$index}.workTime`" class="mb-0px!">
|
||||||
<el-input-number :max="row.maxTime" :precision="2" class="!w-240px" :disabled="row.isOver || formData.isOverProcess == 1" v-model="row.workTime" placeholder="请输入已做时间"/>
|
<el-input-number :max="row.maxTime" :precision="2" class="!w-240px" :disabled=" row.isOver == 1 || formData.isOverProcess == 1" v-model="row.workTime" placeholder="请输入已做时间"/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
@ -296,7 +305,7 @@ v-for="dict in getIntDictOptions(DICT_TYPE.HELI_PROJECT_PLAN_STATUS)" :key="dict
|
|||||||
<el-table-column label="备注" prop="remark" min-width="280">
|
<el-table-column label="备注" prop="remark" min-width="280">
|
||||||
<template #default="{ row, $index }">
|
<template #default="{ row, $index }">
|
||||||
<el-form-item :prop="`${$index}.remark`" class="mb-0px!">
|
<el-form-item :prop="`${$index}.remark`" class="mb-0px!">
|
||||||
<el-input :disabled="row.hasNext || row.isOver || formData.isOverProcess == 1" v-model="row.remark" placeholder="请输入备注" />
|
<el-input :disabled="row.hasNext || row.isOver == 1 || formData.isOverProcess == 1" v-model="row.remark" placeholder="请输入备注" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
@ -392,9 +401,19 @@ const disabledDate = (time: Date,row : any) => {
|
|||||||
const tomorrow = new Date(today);
|
const tomorrow = new Date(today);
|
||||||
tomorrow.setDate(tomorrow.getDate() + 1); // 设置为明天
|
tomorrow.setDate(tomorrow.getDate() + 1); // 设置为明天
|
||||||
tomorrow.setHours(23, 59, 59, 999);
|
tomorrow.setHours(23, 59, 59, 999);
|
||||||
|
if(row.beginTime != null){
|
||||||
const beginDate = new Date(row.beginTime);
|
const beginDate = new Date(row.beginTime);
|
||||||
|
|
||||||
return time.getTime() < beginDate.getTime() || time.getTime() > tomorrow.getTime();
|
return time.getTime() < beginDate.getTime() || time.getTime() > tomorrow.getTime();
|
||||||
|
}else{
|
||||||
|
return time.getTime() > tomorrow.getTime();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const disabledDate1 = (time: Date,row : any) => {
|
||||||
|
const today = new Date();
|
||||||
|
today.setHours(23, 59, 59, 999);
|
||||||
|
return time.getTime() > today.getTime();
|
||||||
|
|
||||||
}
|
}
|
||||||
const handleClose = (done: () => void) => {
|
const handleClose = (done: () => void) => {
|
||||||
ElMessageBox.confirm('是否退出?')
|
ElMessageBox.confirm('是否退出?')
|
||||||
@ -405,9 +424,40 @@ const handleClose = (done: () => void) => {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
const getWorkTime = (type) =>{
|
const getWorkTime = (type) =>{
|
||||||
if(formData.value.craftStartDate != null && formData.value.craftEndDate != null){
|
var beginTime = null ;
|
||||||
const start = new Date(formData.value.craftStartDate ).getTime();
|
var endTime = null
|
||||||
const end = new Date( formData.value.craftEndDate).getTime();
|
if(processDesignType.value == 'BLUEPRINT_WORKBLANK'){
|
||||||
|
if(formData.value.blankDate != null && formData.value.startBlankDate ){
|
||||||
|
beginTime = formData.value.startBlankDate;
|
||||||
|
endTime = formData.value.blankDate
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
if(processDesignType.value == 'BLUEPRINT_2D'){
|
||||||
|
if(formData.value.twoDimDate != null && formData.value.startTwoDimDate ){
|
||||||
|
beginTime = formData.value.startTwoDimDate;
|
||||||
|
endTime = formData.value.twoDimDate
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(processDesignType.value == 'BLUEPRINT_3D'){
|
||||||
|
if(formData.value.threeDimDate != null && formData.value.startThreeDimDate != null){
|
||||||
|
beginTime = formData.value.startThreeDimDate;
|
||||||
|
endTime = formData.value.threeDimDate;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(processDesignType.value == 'BLUEPRINT_FOUNDRY_TECHNOLOGY'){
|
||||||
|
if(formData.value.craftStartDate != null && formData.value.craftEndDate != null ){
|
||||||
|
beginTime = formData.value.craftStartDate;
|
||||||
|
endTime = formData.value.craftEndDate
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if(beginTime != null && endTime != null){
|
||||||
|
const start = new Date(beginTime ).getTime();
|
||||||
|
const end = new Date(endTime).getTime();
|
||||||
const diffTime = Math.abs(end - start);
|
const diffTime = Math.abs(end - start);
|
||||||
var day = Math.floor(diffTime / (1000 * 60 * 60 * 24));
|
var day = Math.floor(diffTime / (1000 * 60 * 60 * 24));
|
||||||
if(type == 1){
|
if(type == 1){
|
||||||
@ -425,15 +475,44 @@ const endTimeChange = (e , row) =>{
|
|||||||
row.maxTime = row.workTime;
|
row.maxTime = row.workTime;
|
||||||
}else{
|
}else{
|
||||||
var endTime = new Date(e);
|
var endTime = new Date(e);
|
||||||
|
if(row.beginTime != null){
|
||||||
|
if(new Date(row.beginTime).getTime() > endTime.getTime()){
|
||||||
|
row.workTime = null
|
||||||
|
message.error("开始时间不能大于结束时间,请确认!")
|
||||||
|
}else{
|
||||||
var timeDiff = endTime.getTime() -row.beginTime;
|
var timeDiff = endTime.getTime() -row.beginTime;
|
||||||
|
|
||||||
// 将毫秒转换为小时
|
|
||||||
row.workTime = timeDiff / (1000 * 60 * 60);
|
row.workTime = timeDiff / (1000 * 60 * 60);
|
||||||
row.maxTime = row.workTime;
|
row.maxTime = row.workTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}else{
|
||||||
|
row.workTime = null
|
||||||
|
row.maxTime = row.workTime;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
const delaySubmit = async() =>{
|
const beginTimeChange = (e , row) =>{
|
||||||
|
if(e == null ){
|
||||||
|
row.workTime = null
|
||||||
|
row.maxTime = row.workTime;
|
||||||
|
}else{
|
||||||
|
var beginTime = new Date(e);
|
||||||
|
if(row.endTime != null){
|
||||||
|
if(new Date(row.endTime).getTime() < beginTime.getTime()){
|
||||||
|
row.workTime = null
|
||||||
|
message.error("开始时间不能大于结束时间,请确认!")
|
||||||
|
}else{
|
||||||
|
var timeDiff = new Date(row.endTime).getTime() -beginTime.getTime();
|
||||||
|
row.workTime = timeDiff / (1000 * 60 * 60);
|
||||||
|
row.maxTime = row.workTime;
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
row.workTime = null
|
||||||
|
row.maxTime = row.workTime;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const delaySubmit = async(event) =>{
|
||||||
if(formData.value.delayReason == null || formData.value.delayReason.replaceAll(' ','') == ''){
|
if(formData.value.delayReason == null || formData.value.delayReason.replaceAll(' ','') == ''){
|
||||||
message.error("延期原因不得为空,请确认!")
|
message.error("延期原因不得为空,请确认!")
|
||||||
return;
|
return;
|
||||||
@ -478,10 +557,8 @@ const openDelay = () =>{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(processDesignType.value == 'BLUEPRINT_FOUNDRY_TECHNOLOGY'){
|
if(processDesignType.value == 'BLUEPRINT_FOUNDRY_TECHNOLOGY'){
|
||||||
console.log(formData.value.craftEndDate)
|
|
||||||
if(formData.value.craftEndDate != null ){
|
if(formData.value.craftEndDate != null ){
|
||||||
console.log(date.getTime())
|
|
||||||
console.log(formData.value.craftEndDate)
|
|
||||||
if(formData.value.craftEndDate > date.getTime()){
|
if(formData.value.craftEndDate > date.getTime()){
|
||||||
message.error("当前日期为正常生产周期,未达到延期条件,请确认!")
|
message.error("当前日期为正常生产周期,未达到延期条件,请确认!")
|
||||||
return
|
return
|
||||||
@ -495,6 +572,10 @@ const openDelay = () =>{
|
|||||||
|
|
||||||
}
|
}
|
||||||
const overRow = async( row :any) =>{
|
const overRow = async( row :any) =>{
|
||||||
|
if(row.beginTime == null ){
|
||||||
|
message.error("开始时间不能为空!请确认!")
|
||||||
|
return
|
||||||
|
}
|
||||||
if(row.endTime == null ){
|
if(row.endTime == null ){
|
||||||
row.endTime = new Date().getTime()
|
row.endTime = new Date().getTime()
|
||||||
var timeDiff = row.endTime -row.beginTime;
|
var timeDiff = row.endTime -row.beginTime;
|
||||||
@ -504,8 +585,8 @@ const overRow = async( row :any) =>{
|
|||||||
row.maxTime = row.workTime;
|
row.maxTime = row.workTime;
|
||||||
// row.workTime = row.endTime - row.
|
// row.workTime = row.endTime - row.
|
||||||
}
|
}
|
||||||
if(row.endTime == null ){
|
if(new Date(row.beginTime) > new Date(row.endTime)){
|
||||||
message.error("结束时间不能为空!请确认!")
|
message.error("开始时间不能大于结束时间!请确认!")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if(row.workTime == null
|
if(row.workTime == null
|
||||||
@ -563,6 +644,10 @@ const sendItem = async() =>{
|
|||||||
var item = formData.value.processDesignProgressList[index];
|
var item = formData.value.processDesignProgressList[index];
|
||||||
if(!item.hasNext){
|
if(!item.hasNext){
|
||||||
senIndex = index;
|
senIndex = index;
|
||||||
|
if(item.beginTime == null){
|
||||||
|
message.error("开始时间不能为空!请确认!")
|
||||||
|
return
|
||||||
|
}
|
||||||
if(item.endTime == null){
|
if(item.endTime == null){
|
||||||
message.error("结束时间不能为空!请确认!")
|
message.error("结束时间不能为空!请确认!")
|
||||||
return
|
return
|
||||||
|
@ -264,11 +264,13 @@ class="!w-260px" v-model="formData.createTime" type="date" value-format="x"
|
|||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column fixed label="过程检" align="center" prop="testYn" width="120px" >
|
<el-table-column fixed label="过程检" align="center" prop="testYn" width="120px" >
|
||||||
<template #default="{ row, $index }">
|
<template #default="{ row, $index }">
|
||||||
<el-form-item :prop="`${$index}.testYn`" class="mb-0px!">
|
<el-form-item :prop="`${$index}.testYns`" class="mb-0px!">
|
||||||
<el-radio-group size="small" :disabled="detailDisabled||row.beginProduce != 0 || row.procedureStatus != 0" v-model="row.testYn" >
|
<el-checkbox v-model="row.checkYns" @change="changeChange(row)" :disabled="detailDisabled||row.beginProduce != 0 || row.procedureStatus != 0" />
|
||||||
|
|
||||||
|
<!-- <el-radio-group size="small" :disabled="detailDisabled||row.beginProduce != 0 || row.procedureStatus != 0" v-model="row.testYn" >
|
||||||
<el-radio-button label="N">是</el-radio-button>
|
<el-radio-button label="N">是</el-radio-button>
|
||||||
<el-radio-button label="Y">否</el-radio-button>
|
<el-radio-button label="Y">否</el-radio-button>
|
||||||
</el-radio-group>
|
</el-radio-group> -->
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
@ -588,12 +590,24 @@ const totalTital = ref('')
|
|||||||
const formLoading = ref(false)
|
const formLoading = ref(false)
|
||||||
const dialogTitle = ref('')
|
const dialogTitle = ref('')
|
||||||
const detailDisabled = ref(false)
|
const detailDisabled = ref(false)
|
||||||
|
const changeChange = ( row) =>{
|
||||||
|
if(row.testYn == 'N'){
|
||||||
|
row.testYn = 'Y'
|
||||||
|
row.checkYn = 1
|
||||||
|
row.checkYns = false
|
||||||
|
}else{
|
||||||
|
row.testYn = 'N'
|
||||||
|
row.checkYn = 0
|
||||||
|
row.checkYns = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const changePrepTime = (type,index,row)=>{
|
const changePrepTime = (type,index,row)=>{
|
||||||
if(index == 0){
|
if(index == 0){
|
||||||
formData.value.taskDispatchDetails.forEach((item)=>{
|
formData.value.taskDispatchDetails.forEach((item)=>{
|
||||||
if(item.id == null){
|
if(item.id == null){
|
||||||
console.log('sss')
|
|
||||||
if(type == 'END'){
|
if(type == 'END'){
|
||||||
item.endTime = row.endTime;
|
item.endTime = row.endTime;
|
||||||
}else{
|
}else{
|
||||||
@ -1234,6 +1248,11 @@ const queryData = async (id?: number) => {
|
|||||||
checkList.value = [];
|
checkList.value = [];
|
||||||
if(formData.value.taskDispatchDetails!=null){
|
if(formData.value.taskDispatchDetails!=null){
|
||||||
formData.value.taskDispatchDetails.forEach(item=> {
|
formData.value.taskDispatchDetails.forEach(item=> {
|
||||||
|
if(item.checkYn == 1){
|
||||||
|
item.checkYns = false
|
||||||
|
}else{
|
||||||
|
item.checkYns = true
|
||||||
|
}
|
||||||
if ("Y" == item.isOutsourcing) {
|
if ("Y" == item.isOutsourcing) {
|
||||||
item.isOutsourcing = true
|
item.isOutsourcing = true
|
||||||
} else {
|
} else {
|
||||||
@ -1457,6 +1476,8 @@ const onAddItem = () => {
|
|||||||
dispatchId: undefined,
|
dispatchId: undefined,
|
||||||
procedureCode:'' ,
|
procedureCode:'' ,
|
||||||
isReport:0 ,
|
isReport:0 ,
|
||||||
|
checkYn : 0,
|
||||||
|
checkYns: true,
|
||||||
}
|
}
|
||||||
// 遍历对象的键
|
// 遍历对象的键
|
||||||
// Object.keys(procedureList.value).forEach((key) => {
|
// Object.keys(procedureList.value).forEach((key) => {
|
||||||
@ -1486,15 +1507,36 @@ const onAddItem = () => {
|
|||||||
if(add){
|
if(add){
|
||||||
|
|
||||||
|
|
||||||
if(procedureArrary.includes(element)){
|
if(procedureArrary.includes(element) && getStartTime(element) != ''){
|
||||||
row.startTime = getStartTime(element);
|
row.startTime = getStartTime(element);
|
||||||
|
}else{
|
||||||
|
if(formData.value.taskDispatchDetails != null && formData.value.taskDispatchDetails.length > 0){
|
||||||
|
var it = formData.value.taskDispatchDetails [0]
|
||||||
|
console.log(it)
|
||||||
|
if(it.startTime != null){
|
||||||
|
row.startTime = it.startTime
|
||||||
}
|
}
|
||||||
row.isOutsourcing = true;
|
}
|
||||||
row.dispatchType = 2
|
}
|
||||||
row.postId = '2'
|
if(procedureArrary.includes(element) && getEndTime(element) != ''){
|
||||||
|
row.endTime = getEndTime(element)
|
||||||
|
}else{
|
||||||
|
if(formData.value.taskDispatchDetails != null && formData.value.taskDispatchDetails.length > 0){
|
||||||
|
var it = formData.value.taskDispatchDetails [0]
|
||||||
|
if(it.endTime != null){
|
||||||
|
row.endTime = it.endTime
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
row.endTime = formData.value.requiredCompletedDate
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
row.testYn = 'N'
|
||||||
|
// row.isOutsourcing = true;
|
||||||
|
// row.dispatchType = 2
|
||||||
|
// row.postId = '2'
|
||||||
row.amount = formData.value.amount
|
row.amount = formData.value.amount
|
||||||
row.dispatchId = formData.value.id
|
row.dispatchId = formData.value.id
|
||||||
row.endTime = formData.value.requiredCompletedDate
|
|
||||||
list.push(row)
|
list.push(row)
|
||||||
row.sort = i;
|
row.sort = i;
|
||||||
i++;
|
i++;
|
||||||
@ -1536,6 +1578,35 @@ const getStartTime = ( element : string) =>{
|
|||||||
return ''
|
return ''
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
const getEndTime = ( element : string) =>{
|
||||||
|
//20250601新增开始时间判断逻辑:
|
||||||
|
// 下料\电焊 开始日期 = 生产计划中的母模/毛坯时间
|
||||||
|
// 编程,开粗,铣床,车床,磨床,数控开始时间=粗/精加工开始日期
|
||||||
|
// 热处理开始=计划中的热处理
|
||||||
|
// 火花=计划中的火花
|
||||||
|
// 刻字,网格,深孔钻,钻孔= 粗,精加工开始日期。
|
||||||
|
// 要求:默认的时间是可以更改的。
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
if(element == '下料' || element == '电焊'){
|
||||||
|
return craftInfos.value[0].endDate;
|
||||||
|
}else if(element == '编程' || element == '开粗' || element == '铣床' || element == '车床' || element == '磨床' || element == '数控1' || element == '数控2' ||element == '刻字' ||
|
||||||
|
element == '网格' || element == '深钻孔' || element == '钻孔'
|
||||||
|
){
|
||||||
|
return craftInfos.value[1].endDate
|
||||||
|
}else if(element == '热处理'){
|
||||||
|
return craftInfos.value[2].endDate
|
||||||
|
}else if(element == '火花'){
|
||||||
|
return craftInfos.value[3].endDate
|
||||||
|
}else{
|
||||||
|
return ''
|
||||||
|
}
|
||||||
|
}
|
||||||
type OwnerListType = {
|
type OwnerListType = {
|
||||||
index: number;
|
index: number;
|
||||||
id: number;
|
id: number;
|
||||||
@ -1604,7 +1675,7 @@ const onDeleteItem = async (row,index) => {
|
|||||||
message.success(t('common.delSuccess'))
|
message.success(t('common.delSuccess'))
|
||||||
}
|
}
|
||||||
const handleOutsourcingChange= async (row: any) => {
|
const handleOutsourcingChange= async (row: any) => {
|
||||||
if(row.isOutsourcing == true){
|
if(row.isOutsourcing == false){
|
||||||
row.dispatchType = 1
|
row.dispatchType = 1
|
||||||
row.postId = ''
|
row.postId = ''
|
||||||
}else{
|
}else{
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
import { onLoad, onShow } from '@dcloudio/uni-app'
|
import { onLoad, onShow } from '@dcloudio/uni-app'
|
||||||
import { useLoginStore } from '@/stores/modules/login'
|
import { useLoginStore } from '@/stores/modules/login'
|
||||||
|
|
||||||
import { getTaskRepotPageAPI, getTaskDetailAPI, postOperateAPI, postOperateAPIEnd ,type ProcessDesignVO ,createProcessDesign,updateProcessDesign,getProcessDesignProgressListByProcessDesignId} from '@/services/moJuSheJiReport'
|
import { getTaskRepotPageAPI, getTaskDetailAPI, postOperateAPI, postOperateAPIEnd, type ProcessDesignVO, createProcessDesign, updateProcessDesign, getProcessDesignProgressListByProcessDesignId } from '@/services/moJuSheJiReport'
|
||||||
const popup = ref<UniHelper.UniPopupInstance>()
|
const popup = ref<UniHelper.UniPopupInstance>()
|
||||||
const userStore = useLoginStore()
|
const userStore = useLoginStore()
|
||||||
const dictInfo = userStore?.dictInfo || []
|
const dictInfo = userStore?.dictInfo || []
|
||||||
@ -57,10 +57,10 @@
|
|||||||
detailInfo.value.active = 'START'
|
detailInfo.value.active = 'START'
|
||||||
const data = await getTaskRepotPageAPI(params)
|
const data = await getTaskRepotPageAPI(params)
|
||||||
historyList.value = data.list
|
historyList.value = data.list
|
||||||
if(historyList.value != null && historyList.value.length > 0){
|
if (historyList.value != null && historyList.value.length > 0) {
|
||||||
for (var i = 0; i < historyList.value .length; i++) {
|
for (var i = 0; i < historyList.value.length; i++) {
|
||||||
var item = historyList.value[i];
|
var item = historyList.value[i];
|
||||||
if(item.isOver == 0){
|
if (item.isOver == 0) {
|
||||||
formObj.value = item;
|
formObj.value = item;
|
||||||
detailInfo.value.active = 'STOP'
|
detailInfo.value.active = 'STOP'
|
||||||
}
|
}
|
||||||
@ -142,7 +142,7 @@
|
|||||||
formRef.value?.resetFields()
|
formRef.value?.resetFields()
|
||||||
}
|
}
|
||||||
|
|
||||||
const submitForm = async (operate,type) => {
|
const submitForm = async (operate, type) => {
|
||||||
isLoading.value = true;
|
isLoading.value = true;
|
||||||
try {
|
try {
|
||||||
formData.value.id = detailInfo.value.id
|
formData.value.id = detailInfo.value.id
|
||||||
@ -157,12 +157,12 @@
|
|||||||
} else {
|
} else {
|
||||||
processDesignId = await updateProcessDesign(data)
|
processDesignId = await updateProcessDesign(data)
|
||||||
}
|
}
|
||||||
await queryData(detailInfo.value.id,type)
|
await queryData(detailInfo.value.id, type)
|
||||||
} finally {
|
} finally {
|
||||||
isLoading.value = false
|
isLoading.value = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const queryData = async (id?: number,type:string) => {
|
const queryData = async (id ?: number, type : string) => {
|
||||||
isLoading.value = true
|
isLoading.value = true
|
||||||
resetForm()
|
resetForm()
|
||||||
// 修改时,设置数据
|
// 修改时,设置数据
|
||||||
@ -173,10 +173,10 @@
|
|||||||
formData.value.processDesignProgressList = await getProcessDesignProgressListByProcessDesignId(id)
|
formData.value.processDesignProgressList = await getProcessDesignProgressListByProcessDesignId(id)
|
||||||
historyList.value = formData.value.processDesignProgressList;
|
historyList.value = formData.value.processDesignProgressList;
|
||||||
detailInfo.value.active = 'START'
|
detailInfo.value.active = 'START'
|
||||||
if(historyList.value != null && historyList.value.length > 0){
|
if (historyList.value != null && historyList.value.length > 0) {
|
||||||
for (var i = 0; i < historyList.value.length; i++) {
|
for (var i = 0; i < historyList.value.length; i++) {
|
||||||
var item = historyList.value[i]
|
var item = historyList.value[i]
|
||||||
if(item.isOver == 0){
|
if (item.isOver == 0) {
|
||||||
formObj.value = item;
|
formObj.value = item;
|
||||||
detailInfo.value.active = 'STOP'
|
detailInfo.value.active = 'STOP'
|
||||||
break;
|
break;
|
||||||
@ -184,7 +184,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
isLoading.value = false
|
isLoading.value = false
|
||||||
if(type == 'ADD'){
|
if (type == 'ADD') {
|
||||||
popup.value?.open();
|
popup.value?.open();
|
||||||
}
|
}
|
||||||
// if( formData.value.processDesignProgressList != null && formData.value.processDesignProgressList.length > 0){
|
// if( formData.value.processDesignProgressList != null && formData.value.processDesignProgressList.length > 0){
|
||||||
@ -226,108 +226,114 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const overRow = async( row :any) =>{
|
const overRow = async (row : any) => {
|
||||||
if(row.endTime == null ){
|
if (row.endTime == null) {
|
||||||
row.endTime = new Date().getTime()
|
row.endTime = new Date().getTime()
|
||||||
var timeDiff = row.endTime -row.beginTime;
|
var timeDiff = row.endTime - row.beginTime;
|
||||||
|
|
||||||
// 将毫秒转换为小时
|
// 将毫秒转换为小时
|
||||||
row.workTime = timeDiff / (1000 * 60 * 60);
|
row.workTime = timeDiff / (1000 * 60 * 60);
|
||||||
row.maxTime = row.workTime;
|
row.maxTime = row.workTime;
|
||||||
// row.workTime = row.endTime - row.
|
// row.workTime = row.endTime - row.
|
||||||
}
|
}
|
||||||
if(row.endTime == null ){
|
if (row.beginTime == null) {
|
||||||
uni.showToast({ icon: 'none', title:'结束时间不能为空!请确认!'})
|
uni.showToast({ icon: 'none', title: '开始时间不能为空!请确认!' })
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if(row.workTime == null
|
|
||||||
){
|
if (new Date(row.beginTime).getTime() > new Date(row.endTime).getTime()) {
|
||||||
uni.showToast({ icon: 'none', title:'已做时间不能为空!请确认!'})
|
uni.showToast({ icon: 'none', title: '开始时间不能大于结束时间!请确认!' })
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (row.workTime == null
|
||||||
|
) {
|
||||||
|
uni.showToast({ icon: 'none', title: '已做时间不能为空!请确认!' })
|
||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
formData.value.processDesignProgressList.forEach((item) =>{
|
formData.value.processDesignProgressList.forEach((item) => {
|
||||||
if(item.isOver == 0){
|
if (item.isOver == 0) {
|
||||||
item.workTime = row.workTime;
|
item.workTime = row.workTime;
|
||||||
item.endTime = new Date(row.endTime).getTime();
|
item.endTime = new Date(row.endTime).getTime();
|
||||||
item.remark = (row.remark == null || row.remark == '')? '':row.remark
|
item.remark = (row.remark == null || row.remark == '') ? '' : row.remark
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
row.isOver = 1;
|
row.isOver = 1;
|
||||||
await submitForm('SAVE','OVER');
|
await submitForm('SAVE', 'OVER');
|
||||||
//更新一下这条数据的状态
|
//更新一下这条数据的状态
|
||||||
}
|
}
|
||||||
const handOver = () =>{
|
const handOver = () => {
|
||||||
|
|
||||||
}
|
}
|
||||||
/** 新增按钮操作 */
|
/** 新增按钮操作 */
|
||||||
const onAddItem = async() => {
|
const onAddItem = async () => {
|
||||||
//条件修改:没有时间就不填
|
//条件修改:没有时间就不填
|
||||||
var date = new Date();
|
var date = new Date();
|
||||||
if(processDesignType.value == 'BLUEPRINT_WORKBLANK'){
|
if (processDesignType.value == 'BLUEPRINT_WORKBLANK') {
|
||||||
if(detailInfo.value.blankDate != null ){
|
if (detailInfo.value.blankDate != null) {
|
||||||
if(detailInfo.value.blankDate < date.getTime()){
|
if (detailInfo.value.blankDate < date.getTime()) {
|
||||||
if(detailInfo.value.isDelay == null || detailInfo.value.isDelay == 0){
|
if (detailInfo.value.isDelay == null || detailInfo.value.isDelay == 0) {
|
||||||
uni.showToast({ icon: 'none', title: '当前任务已超期,请延期后重试!' })
|
uni.showToast({ icon: 'none', title: '当前任务已超期,请延期后重试!' })
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}else{
|
} else {
|
||||||
// message.error("毛坯结束时间为空!请确认!")
|
// message.error("毛坯结束时间为空!请确认!")
|
||||||
// return
|
// return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(processDesignType.value == 'BLUEPRINT_2D'){
|
if (processDesignType.value == 'BLUEPRINT_2D') {
|
||||||
if(detailInfo.value.twoDimDate != null ){
|
if (detailInfo.value.twoDimDate != null) {
|
||||||
if(detailInfo.value.twoDimDate < date.getTime()){
|
if (detailInfo.value.twoDimDate < date.getTime()) {
|
||||||
if(detailInfo.value.isDelay == null || detailInfo.value.isDelay == 0){
|
if (detailInfo.value.isDelay == null || detailInfo.value.isDelay == 0) {
|
||||||
uni.showToast({ icon: 'none', title: '当前任务已超期,请延期后重试!' })
|
uni.showToast({ icon: 'none', title: '当前任务已超期,请延期后重试!' })
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}else{
|
} else {
|
||||||
// message.error("2D结束时间为空!请确认!")
|
// message.error("2D结束时间为空!请确认!")
|
||||||
// return
|
// return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(processDesignType.value == 'BLUEPRINT_3D'){
|
if (processDesignType.value == 'BLUEPRINT_3D') {
|
||||||
if(detailInfo.value.threeDimDate != null ){
|
if (detailInfo.value.threeDimDate != null) {
|
||||||
if(detailInfo.value.threeDimDate < date.getTime()){
|
if (detailInfo.value.threeDimDate < date.getTime()) {
|
||||||
if(detailInfo.value.isDelay == null || detailInfo.value.isDelay == 0){
|
if (detailInfo.value.isDelay == null || detailInfo.value.isDelay == 0) {
|
||||||
uni.showToast({ icon: 'none', title: '当前任务已超期,请延期后重试!' })
|
uni.showToast({ icon: 'none', title: '当前任务已超期,请延期后重试!' })
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}else{
|
} else {
|
||||||
// message.error("3D结束时间为空!请确认!")
|
// message.error("3D结束时间为空!请确认!")
|
||||||
// return
|
// return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(processDesignType.value == 'BLUEPRINT_FOUNDRY_TECHNOLOGY'){
|
if (processDesignType.value == 'BLUEPRINT_FOUNDRY_TECHNOLOGY') {
|
||||||
console.log(detailInfo.value.craftEndDate)
|
console.log(detailInfo.value.craftEndDate)
|
||||||
if(detailInfo.value.craftEndDate != null ){
|
if (detailInfo.value.craftEndDate != null) {
|
||||||
console.log(date.getTime())
|
console.log(date.getTime())
|
||||||
console.log(detailInfo.value.craftEndDate)
|
console.log(detailInfo.value.craftEndDate)
|
||||||
if(detailInfo.value.craftEndDate < date.getTime()){
|
if (detailInfo.value.craftEndDate < date.getTime()) {
|
||||||
if(detailInfo.value.isDelay == null || detailInfo.value.isDelay == 0){
|
if (detailInfo.value.isDelay == null || detailInfo.value.isDelay == 0) {
|
||||||
uni.showToast({ icon: 'none', title: '当前任务已超期,请延期后重试!' })
|
uni.showToast({ icon: 'none', title: '当前任务已超期,请延期后重试!' })
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}else{
|
} else {
|
||||||
// message.error("工艺结束时间为空!请确认!")
|
// message.error("工艺结束时间为空!请确认!")
|
||||||
// return
|
// return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (historyList.value != null && historyList.value.length>0){
|
if (historyList.value != null && historyList.value.length > 0) {
|
||||||
for ( var i = 0 ; i < historyList.value.length ; i++){
|
for (var i = 0; i < historyList.value.length; i++) {
|
||||||
var item = historyList.value[i];
|
var item = historyList.value[i];
|
||||||
if(item.isOver == 0){
|
if (item.isOver == 0) {
|
||||||
message.error("上一项进度未结束汇报!请确认!")
|
uni.showToast({ icon: 'none', title: '上一项进度未结束汇报,请确认!' })
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// if(item.endTime == null ){
|
// if(item.endTime == null ){
|
||||||
@ -351,16 +357,16 @@
|
|||||||
blueprintLink: undefined,
|
blueprintLink: undefined,
|
||||||
remark: '',
|
remark: '',
|
||||||
createTime: date.getTime(),
|
createTime: date.getTime(),
|
||||||
beginTime:date.getTime(),
|
beginTime: date.getTime(),
|
||||||
endTime:undefined,
|
endTime: undefined,
|
||||||
isOver:0,
|
isOver: 0,
|
||||||
workTime:undefined,
|
workTime: undefined,
|
||||||
creatorName: userStore.userInfo.nickname,
|
creatorName: userStore.userInfo.nickname,
|
||||||
status: 1,
|
status: 1,
|
||||||
}
|
}
|
||||||
row.processDesignId = detailInfo.value.progress
|
row.processDesignId = detailInfo.value.progress
|
||||||
historyList.value.unshift(row)
|
historyList.value.unshift(row)
|
||||||
await submitForm('SAVE','ADD');
|
await submitForm('SAVE', 'STOP');
|
||||||
}
|
}
|
||||||
|
|
||||||
// 提交报工
|
// 提交报工
|
||||||
@ -417,7 +423,7 @@
|
|||||||
popup.value?.open() */
|
popup.value?.open() */
|
||||||
}
|
}
|
||||||
const getWorkTime = (beginTime, endTime) => {
|
const getWorkTime = (beginTime, endTime) => {
|
||||||
if(beginTime == null || endTime == null) return ''
|
if (beginTime == null || endTime == null) return ''
|
||||||
return parseFloat(((new Date(endTime).getTime() - new Date(beginTime).getTime()) / (1000 * 60 * 60)).toFixed(2))
|
return parseFloat(((new Date(endTime).getTime() - new Date(beginTime).getTime()) / (1000 * 60 * 60)).toFixed(2))
|
||||||
}
|
}
|
||||||
const showPopup = ref(false)
|
const showPopup = ref(false)
|
||||||
@ -433,8 +439,8 @@
|
|||||||
|
|
||||||
return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
|
return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
|
||||||
}
|
}
|
||||||
const openPops = (item) =>{
|
const openPops = (item) => {
|
||||||
if(item.isOver == 0){
|
if (item.isOver == 0) {
|
||||||
popup.value?.open()
|
popup.value?.open()
|
||||||
formObj.value = item
|
formObj.value = item
|
||||||
}
|
}
|
||||||
@ -457,10 +463,34 @@
|
|||||||
}
|
}
|
||||||
return val
|
return val
|
||||||
}
|
}
|
||||||
const changeDate1 = (e,item) => {
|
const changeDate1 = (e, item) => {
|
||||||
item.endTime = e
|
item.endTime = new Date(e).getTime()
|
||||||
item.workTime = getWorkTime(item.beginTime,item.endTime)
|
if (item.beginTime != null) {
|
||||||
console.log(item.workTime)
|
if (new Date(item.beginTime).getTime() > new Date(e).getTime()) {
|
||||||
|
formObj.value.workTime = null
|
||||||
|
uni.showToast({ icon: 'none', title: '开始时间不能大于结束时间,请确认!' })
|
||||||
|
} else {
|
||||||
|
formObj.value.workTime = getWorkTime(item.beginTime, item.endTime)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
formObj.value.workTime = null
|
||||||
|
}
|
||||||
|
//item.workTime = getWorkTime(item.beginTime, item.endTime)
|
||||||
|
}
|
||||||
|
const changeDate2 = (e, item) => {
|
||||||
|
item.beginTime = new Date(e).getTime()
|
||||||
|
if (item.endTime != null) {
|
||||||
|
if (new Date(item.endTime).getTime() < new Date(e).getTime()) {
|
||||||
|
formObj.value.workTime = null
|
||||||
|
uni.showToast({ icon: 'none', title: '开始时间不能大于结束时间,请确认!' })
|
||||||
|
} else {
|
||||||
|
|
||||||
|
formObj.value.workTime = getWorkTime(item.beginTime, item.endTime)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
formObj.value.workTime = null
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<template>
|
<template>
|
||||||
@ -496,7 +526,8 @@
|
|||||||
</view>
|
</view>
|
||||||
<view class="product-item" v-else-if="detailInfo.processDesignType== 'BLUEPRINT_3D'">
|
<view class="product-item" v-else-if="detailInfo.processDesignType== 'BLUEPRINT_3D'">
|
||||||
工艺起止日期:{{formatDate(detailInfo.startThreeDimDate)}} ~
|
工艺起止日期:{{formatDate(detailInfo.startThreeDimDate)}} ~
|
||||||
{{formatDate(detailInfo.threeDimDate)}} </view>
|
{{formatDate(detailInfo.threeDimDate)}}
|
||||||
|
</view>
|
||||||
<view class="product-item" v-else-if="detailInfo.processDesignType== 'BLUEPRINT_WORKBLANK'">
|
<view class="product-item" v-else-if="detailInfo.processDesignType== 'BLUEPRINT_WORKBLANK'">
|
||||||
工艺起止日期:{{formatDate(detailInfo.startBlankDate)}} ~ {{formatDate(detailInfo.blankDate)}}
|
工艺起止日期:{{formatDate(detailInfo.startBlankDate)}} ~ {{formatDate(detailInfo.blankDate)}}
|
||||||
</view>
|
</view>
|
||||||
@ -548,6 +579,9 @@
|
|||||||
<view class="action" v-if="detailInfo.isOverProcess !== 1">
|
<view class="action" v-if="detailInfo.isOverProcess !== 1">
|
||||||
<view class="action-item start" v-if="detailInfo.active == 'START'" @click="onAddItem()">开始</view>
|
<view class="action-item start" v-if="detailInfo.active == 'START'" @click="onAddItem()">开始</view>
|
||||||
<view class="action-item stop" v-if="detailInfo.active != 'START'" @click="handleStop()">结束</view>
|
<view class="action-item stop" v-if="detailInfo.active != 'START'" @click="handleStop()">结束</view>
|
||||||
|
|
||||||
|
<!-- <view class="action-item start" v-if="detailInfo.active == 'START'" @click="onAddItem()">开始</view>
|
||||||
|
<view class="action-item stop" v-if="detailInfo.active != 'START'" @click="handleStop()">结束</view> -->
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
<view class="loading-text" v-else>加载中..</view>
|
<view class="loading-text" v-else>加载中..</view>
|
||||||
@ -559,18 +593,17 @@
|
|||||||
<view class="cont">
|
<view class="cont">
|
||||||
<view class="item">
|
<view class="item">
|
||||||
<view class="label">开始时间</view>
|
<view class="label">开始时间</view>
|
||||||
<view class="val"><uni-datetime-picker disabled type="datetime" style="text-align: center;"
|
<view class="val"><uni-datetime-picker type="datetime" style="text-align: center;"
|
||||||
v-model="formObj.beginTime" /></view>
|
@change="(e) => changeDate2(e,formObj)" v-model="formObj.beginTime" /></view>
|
||||||
</view>
|
</view>
|
||||||
<view class="item">
|
<view class="item">
|
||||||
<view class="label"><span class="star">*</span>结束时间</view>
|
<view class="label">结束时间</view>
|
||||||
<view class="val"> <uni-datetime-picker :disabled="formObj.hasNext" type="datetime"
|
<view class="val"> <uni-datetime-picker style="text-align: center;" type="datetime"
|
||||||
v-model="formObj.endTime" @change="(e) => changeDate1(e,formObj)" /></view>
|
v-model="formObj.endTime" @change="(e) => changeDate1(e,formObj)" /></view>
|
||||||
</view>
|
</view>
|
||||||
<view class="item">
|
<view class="item">
|
||||||
<view class="label"><span class="star">*</span>已做时间(小时)</view>
|
<view class="label">已做时间</view>
|
||||||
<uni-easyinput :disabled="formObj.hasNext"
|
<uni-easyinput @change="formObj.workTime = oninput(formObj.workTime,2)" class="val" type="number"
|
||||||
@change="formObj.workTime = oninput(formObj.workTime,2)" class="val" type="number"
|
|
||||||
v-model="formObj.workTime" placeholder="请输入已做时间"></uni-easyinput>
|
v-model="formObj.workTime" placeholder="请输入已做时间"></uni-easyinput>
|
||||||
|
|
||||||
<!-- <uni-easyinput class="val" type="digit" v-model="workTime" placeholder="请输入本次报工工时"></uni-easyinput -->
|
<!-- <uni-easyinput class="val" type="digit" v-model="workTime" placeholder="请输入本次报工工时"></uni-easyinput -->
|
||||||
@ -578,8 +611,7 @@
|
|||||||
</view>
|
</view>
|
||||||
<view class="item">
|
<view class="item">
|
||||||
<view class="label">备注</view>
|
<view class="label">备注</view>
|
||||||
<uni-easyinput type="textarea" :disabled="formObj.hasNext" v-model="formObj.remark"
|
<uni-easyinput type="textarea" v-model="formObj.remark" placeholder="请输入备注" />
|
||||||
placeholder="请输入备注" />
|
|
||||||
<!-- <view class="unit"> {{ detailInfo.unit }}</view> -->
|
<!-- <view class="unit"> {{ detailInfo.unit }}</view> -->
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
@ -762,10 +794,10 @@
|
|||||||
padding: 0rpx 10rpx;
|
padding: 0rpx 10rpx;
|
||||||
|
|
||||||
.item {
|
.item {
|
||||||
margin: 10rpx 0;
|
margin: 5rpx 0;
|
||||||
background: #EAEEF4;
|
background: #EAEEF4;
|
||||||
font-size: 28rpx;
|
font-size: 28rpx;
|
||||||
padding: 20rpx;
|
padding: 15rpx;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
border-radius: 10rpx;
|
border-radius: 10rpx;
|
||||||
color: #737D88;
|
color: #737D88;
|
||||||
@ -928,7 +960,7 @@
|
|||||||
|
|
||||||
.label {
|
.label {
|
||||||
font-size: 32rpx;
|
font-size: 32rpx;
|
||||||
width: 260rpx;
|
width: 200rpx;
|
||||||
|
|
||||||
.star {
|
.star {
|
||||||
color: red
|
color: red
|
||||||
@ -936,7 +968,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.val {
|
.val {
|
||||||
flex: 1;
|
flex: 1.5;
|
||||||
font-size: 32rpx;
|
font-size: 32rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user