生产进度问题修改
This commit is contained in:
parent
7966960b85
commit
b03045f497
@ -151,7 +151,7 @@ public class bdgzsomthingController {
|
||||
BeanUtils.toBean(list, bdgzsomthingRespVO.class));
|
||||
}
|
||||
|
||||
@Scheduled(fixedRate = 10800000)
|
||||
// @Scheduled(fixedRate = 10800000)
|
||||
public void scheduledTask() {
|
||||
bdgzsomthingService.selectds();
|
||||
}
|
||||
@ -159,8 +159,8 @@ public class bdgzsomthingController {
|
||||
//@Scheduled(cron = "0 2 0 * * ?") //每天十天执行一次
|
||||
@PostConstruct
|
||||
public void init() {
|
||||
selectHasPrice();
|
||||
selectSafeStorageAndDeliverOneYear();
|
||||
// selectHasPrice();
|
||||
// selectSafeStorageAndDeliverOneYear();
|
||||
// bdgzsomthingService.selectds();
|
||||
}
|
||||
@Scheduled(cron = "0 0 2 * * ?")
|
||||
|
@ -92,16 +92,17 @@ public interface BgMasterLineMapper extends BaseMapperX<BgMasterLineDO> {
|
||||
return selectOne(query);
|
||||
}
|
||||
|
||||
default BgMasterLineDO getByDispatchDetail(Long id){
|
||||
default Long getByDispatchDetail(Long id){
|
||||
MPJLambdaWrapper<BgMasterLineDO> query = new MPJLambdaWrapper<>();
|
||||
query.selectAll(BgMasterLineDO.class)
|
||||
query
|
||||
.leftJoin(PgMasterLineDO.class, "a", PgMasterLineDO::getId, BgMasterLineDO::getZjMxId);
|
||||
|
||||
query.eq( PgMasterLineDO::getDispatchDetailId, id)
|
||||
.orderByDesc(BgMasterLineDO::getId)
|
||||
.last("limit 1");
|
||||
.eq(PgMasterLineDO::getDeleted,0)
|
||||
.eq(BgMasterLineDO::getIsQua,1)
|
||||
.in(BgMasterLineDO::getAuditOpinion,1,3);
|
||||
;
|
||||
|
||||
return selectOne(query);
|
||||
return selectCount(query);
|
||||
}
|
||||
}
|
||||
|
@ -242,6 +242,7 @@ public interface ProcessBomDetailMapper extends BaseMapperX<ProcessBomDetailDO>
|
||||
MPJLambdaWrapper<ProcessBomDetailDO> query = new MPJLambdaWrapper<>();
|
||||
query.selectAll(ProcessBomDetailDO.class)
|
||||
.select("f.name as compositionName")
|
||||
.select("t.amount*d.amount as boomAmount")
|
||||
.leftJoin(PlanTaskBomDO.class,"ptb",PlanTaskBomDO::getBomDetailId,ProcessBomDetailDO::getId)
|
||||
.leftJoin(PlanTaskDO.class,"pt",PlanTaskDO::getId,PlanTaskBomDO::getTaskId)
|
||||
.leftJoin(ProcessBomDO.class,"g",ProcessBomDO::getId,ProcessBomDetailDO::getBomId)
|
||||
@ -272,6 +273,7 @@ public interface ProcessBomDetailMapper extends BaseMapperX<ProcessBomDetailDO>
|
||||
.select("m.status as makeStatus")
|
||||
.select("r.receiving_status as receivingStatus")
|
||||
.select("CASE WHEN r.id IS NOT NULL THEN 1 ELSE 0 END AS orderNoExists")
|
||||
.select("t.amount*d.amount as boomAmount")
|
||||
.leftJoin(PlanTaskBomDO.class,"ptb",PlanTaskBomDO::getBomDetailId,ProcessBomDetailDO::getId)
|
||||
.leftJoin(PlanTaskDO.class,"pt",PlanTaskDO::getId,PlanTaskBomDO::getTaskId)
|
||||
.leftJoin(ProcessBomDO.class,"g",ProcessBomDO::getId,ProcessBomDetailDO::getBomId)
|
||||
|
@ -43,9 +43,11 @@ public interface ProjectOrderMapper extends BaseMapperX<ProjectOrderDO> {
|
||||
query.selectAll(ProjectOrderDO.class)
|
||||
.select("a.id as projectSubId,a.name as projectSubName")
|
||||
.select("b.name as customerName,e.name as deviceModel")
|
||||
|
||||
.leftJoin(ProjectOrderSubDO.class,"a",ProjectOrderSubDO::getProjectOrderId,ProjectOrderDO::getId)
|
||||
.leftJoin(CustomerDO.class,"b",CustomerDO::getId,ProjectOrderDO::getCustomerId)
|
||||
.leftJoin(EquipDO.class,"e",EquipDO::getId,ProjectOrderSubDO::getDeviceModel)
|
||||
.disableSubLogicDel()
|
||||
.like(!StringUtils.isEmpty(reqVO.getCode()),ProjectOrderDO::getCode,reqVO.getCode())
|
||||
.like(!StringUtils.isEmpty(reqVO.getProjectName()),ProjectOrderDO::getProjectName,reqVO.getProjectName())
|
||||
.like(!StringUtils.isEmpty(reqVO.getCustomerName()),"b.name",reqVO.getCustomerName())
|
||||
|
@ -330,7 +330,7 @@ public interface TaskDispatchDetailMapper extends BaseMapperX<TaskDispatchDetail
|
||||
if (reqVO.getSubOrDetailName() != null && !reqVO.getSubOrDetailName().trim().equals("")){
|
||||
query.and( e ->e.like(ProjectOrderDO::getProjectName, reqVO.getSubOrDetailName()).or().like(
|
||||
ProjectOrderSubDO::getName, reqVO.getSubOrDetailName()
|
||||
));
|
||||
).or().like(ProcessBomDetailDO::getMaterialName, reqVO.getSubOrDetailName()));
|
||||
// query.eq(" (b.project_name like '%" + reqVO.getSubOrDetailName() + "%' or c.name like '%" + reqVO.getSubOrDetailName() + "%')");
|
||||
}
|
||||
query.and(wrapper -> {
|
||||
|
@ -1256,9 +1256,8 @@ public class ProcessBomServiceImpl implements ProcessBomService {
|
||||
Postponement=1;
|
||||
}
|
||||
}
|
||||
BgMasterLineDO bgMasterLineDO = bgMasterLineMapper.getByDispatchDetail(detailDO.getId());
|
||||
if (ObjectUtil.isNotEmpty(bgMasterLineDO)){
|
||||
if (bgMasterLineDO.getIsQua()==1&&("1".equals(bgMasterLineDO.getAuditOpinion())||"3".equals(bgMasterLineDO.getAuditOpinion()))){
|
||||
Long bgMasterLineDO = bgMasterLineMapper.getByDispatchDetail(detailDO.getId());
|
||||
if (bgMasterLineDO>0){
|
||||
flag=3;
|
||||
}else if (Postponement==0){
|
||||
flag=1;
|
||||
@ -1267,7 +1266,6 @@ public class ProcessBomServiceImpl implements ProcessBomService {
|
||||
}
|
||||
}
|
||||
detailDO.setFlag(flag);
|
||||
}
|
||||
});
|
||||
item.setTaskDispatchDetailDOList(detailDOS);
|
||||
});
|
||||
|
@ -70,15 +70,15 @@
|
||||
<el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
|
||||
<el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
|
||||
|
||||
<el-button
|
||||
type="success"
|
||||
plain
|
||||
@click="handleExport"
|
||||
:loading="exportLoading"
|
||||
v-hasPermi="['heli:shenhe:export']"
|
||||
>
|
||||
<Icon icon="ep:download" class="mr-5px" /> 导出
|
||||
</el-button>
|
||||
<!-- <el-button-->
|
||||
<!-- type="success"-->
|
||||
<!-- plain-->
|
||||
<!-- @click="handleExport"-->
|
||||
<!-- :loading="exportLoading"-->
|
||||
<!-- v-hasPermi="['heli:shenhe:export']"-->
|
||||
<!-- >-->
|
||||
<!-- <Icon icon="ep:download" class="mr-5px" /> 导出-->
|
||||
<!-- </el-button>-->
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</ContentWrap>
|
||||
@ -89,12 +89,12 @@
|
||||
<el-tab-pane label="加工件" name="first">{{ }}</el-tab-pane>
|
||||
<el-tab-pane label="标准件" name="second">{{ }}</el-tab-pane>
|
||||
</el-tabs>
|
||||
<el-table style="height: 500px;" v-loading="loading" :data="list" :show-overflow-tooltip="true" border class="hl-table" :row-class-name="tableRowClassName" :cell-class-name="cellClassName">
|
||||
<el-table style="height: 500px;" v-loading="loading" :data="list" :show-overflow-tooltip="true" border class="hl-table" :cell-class-name="cellClassName">
|
||||
<el-table-column type="index" min-width="60" label="序号" align="center" />
|
||||
<el-table-column label="零件名称" align="center" prop="materialName" min-width="180"/>
|
||||
<el-table-column label="材质" prop="compositionName" min-width="180"/>
|
||||
<el-table-column label="规格型号" prop="spec" min-width="180"/>
|
||||
<el-table-column label="数量" prop="amount" min-width="145"/>
|
||||
<el-table-column label="数量" prop="boomAmount" min-width="145"/>
|
||||
<el-table-column v-if="activeIndex == 'first'" label="下料" min-width="145">
|
||||
<template #default="{ row }">
|
||||
<template v-for="(item, index) in row.taskDispatchDetailDOList" :key="index">
|
||||
@ -103,9 +103,9 @@
|
||||
<div class="first-row">
|
||||
<span class="left" v-if="!item.reportTime">{{ item.sort }}</span>
|
||||
<span class="right">
|
||||
<img
|
||||
v-if="item.checkYn === 1"
|
||||
src="/src/assets/imgs/checkStatus.png"
|
||||
<img
|
||||
v-if="item.checkYn === 0"
|
||||
src="/src/assets/imgs/checkstatusss.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
</span>
|
||||
@ -114,9 +114,9 @@
|
||||
<div class="second-row">
|
||||
<span class="left">{{ formatLongToDate(item.reportTime) }}</span>
|
||||
<span class="right">
|
||||
<img
|
||||
v-if="item.isOutsourcing === 'Y'"
|
||||
src="/src/assets/imgs/out.png"
|
||||
<img
|
||||
v-if="item.isOutsourcing === 'Y'"
|
||||
src="/src/assets/imgs/out.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
</span>
|
||||
@ -136,15 +136,15 @@
|
||||
</span>
|
||||
<span>
|
||||
<!-- isOutsourcing 图片 -->
|
||||
<img
|
||||
v-if="item.isOutsourcing === 'Y'"
|
||||
src="/src/assets/imgs/out.png"
|
||||
<img
|
||||
v-if="item.isOutsourcing === 'Y'"
|
||||
src="/src/assets/imgs/out.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
<!-- checkYn 图片 -->
|
||||
<img
|
||||
v-if="item.checkYn === 1"
|
||||
src="/src/assets/imgs/checkstatusss.png"
|
||||
<img
|
||||
v-if="item.checkYn === 0"
|
||||
src="/src/assets/imgs/checkstatusss.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
</span>
|
||||
@ -168,15 +168,15 @@
|
||||
</span>
|
||||
<span>
|
||||
<!-- isOutsourcing 图片 -->
|
||||
<img
|
||||
v-if="item.isOutsourcing === 'Y'"
|
||||
src="/src/assets/imgs/out.png"
|
||||
<img
|
||||
v-if="item.isOutsourcing === 'Y'"
|
||||
src="/src/assets/imgs/out.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
<!-- checkYn 图片 -->
|
||||
<img
|
||||
v-if="item.checkYn === 1"
|
||||
src="/src/assets/imgs/checkstatusss.png"
|
||||
<img
|
||||
v-if="item.checkYn === 0"
|
||||
src="/src/assets/imgs/checkstatusss.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
</span>
|
||||
@ -200,15 +200,15 @@
|
||||
</span>
|
||||
<span>
|
||||
<!-- isOutsourcing 图片 -->
|
||||
<img
|
||||
v-if="item.isOutsourcing === 'Y'"
|
||||
src="/src/assets/imgs/out.png"
|
||||
<img
|
||||
v-if="item.isOutsourcing === 'Y'"
|
||||
src="/src/assets/imgs/out.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
<!-- checkYn 图片 -->
|
||||
<img
|
||||
v-if="item.checkYn === 1"
|
||||
src="/src/assets/imgs/checkstatusss.png"
|
||||
<img
|
||||
v-if="item.checkYn === 0"
|
||||
src="/src/assets/imgs/checkstatusss.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
</span>
|
||||
@ -232,15 +232,15 @@
|
||||
</span>
|
||||
<span>
|
||||
<!-- isOutsourcing 图片 -->
|
||||
<img
|
||||
v-if="item.isOutsourcing === 'Y'"
|
||||
src="/src/assets/imgs/out.png"
|
||||
<img
|
||||
v-if="item.isOutsourcing === 'Y'"
|
||||
src="/src/assets/imgs/out.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
<!-- checkYn 图片 -->
|
||||
<img
|
||||
v-if="item.checkYn === 1"
|
||||
src="/src/assets/imgs/checkstatusss.png"
|
||||
<img
|
||||
v-if="item.checkYn === 0"
|
||||
src="/src/assets/imgs/checkstatusss.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
</span>
|
||||
@ -264,15 +264,15 @@
|
||||
</span>
|
||||
<span>
|
||||
<!-- isOutsourcing 图片 -->
|
||||
<img
|
||||
v-if="item.isOutsourcing === 'Y'"
|
||||
src="/src/assets/imgs/out.png"
|
||||
<img
|
||||
v-if="item.isOutsourcing === 'Y'"
|
||||
src="/src/assets/imgs/out.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
<!-- checkYn 图片 -->
|
||||
<img
|
||||
v-if="item.checkYn === 1"
|
||||
src="/src/assets/imgs/checkstatusss.png"
|
||||
<img
|
||||
v-if="item.checkYn === 0"
|
||||
src="/src/assets/imgs/checkstatusss.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
</span>
|
||||
@ -296,15 +296,15 @@
|
||||
</span>
|
||||
<span>
|
||||
<!-- isOutsourcing 图片 -->
|
||||
<img
|
||||
v-if="item.isOutsourcing === 'Y'"
|
||||
src="/src/assets/imgs/out.png"
|
||||
<img
|
||||
v-if="item.isOutsourcing === 'Y'"
|
||||
src="/src/assets/imgs/out.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
<!-- checkYn 图片 -->
|
||||
<img
|
||||
v-if="item.checkYn === 1"
|
||||
src="/src/assets/imgs/checkstatusss.png"
|
||||
<img
|
||||
v-if="item.checkYn === 0"
|
||||
src="/src/assets/imgs/checkstatusss.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
</span>
|
||||
@ -328,15 +328,15 @@
|
||||
</span>
|
||||
<span>
|
||||
<!-- isOutsourcing 图片 -->
|
||||
<img
|
||||
v-if="item.isOutsourcing === 'Y'"
|
||||
src="/src/assets/imgs/out.png"
|
||||
<img
|
||||
v-if="item.isOutsourcing === 'Y'"
|
||||
src="/src/assets/imgs/out.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
<!-- checkYn 图片 -->
|
||||
<img
|
||||
v-if="item.checkYn === 1"
|
||||
src="/src/assets/imgs/checkstatusss.png"
|
||||
<img
|
||||
v-if="item.checkYn === 0"
|
||||
src="/src/assets/imgs/checkstatusss.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
</span>
|
||||
@ -360,15 +360,15 @@
|
||||
</span>
|
||||
<span>
|
||||
<!-- isOutsourcing 图片 -->
|
||||
<img
|
||||
v-if="item.isOutsourcing === 'Y'"
|
||||
src="/src/assets/imgs/out.png"
|
||||
<img
|
||||
v-if="item.isOutsourcing === 'Y'"
|
||||
src="/src/assets/imgs/out.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
<!-- checkYn 图片 -->
|
||||
<img
|
||||
v-if="item.checkYn === 1"
|
||||
src="/src/assets/imgs/checkstatusss.png"
|
||||
<img
|
||||
v-if="item.checkYn === 0"
|
||||
src="/src/assets/imgs/checkstatusss.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
</span>
|
||||
@ -392,15 +392,15 @@
|
||||
</span>
|
||||
<span>
|
||||
<!-- isOutsourcing 图片 -->
|
||||
<img
|
||||
v-if="item.isOutsourcing === 'Y'"
|
||||
src="/src/assets/imgs/out.png"
|
||||
<img
|
||||
v-if="item.isOutsourcing === 'Y'"
|
||||
src="/src/assets/imgs/out.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
<!-- checkYn 图片 -->
|
||||
<img
|
||||
v-if="item.checkYn === 1"
|
||||
src="/src/assets/imgs/checkstatusss.png"
|
||||
<img
|
||||
v-if="item.checkYn === 0"
|
||||
src="/src/assets/imgs/checkstatusss.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
</span>
|
||||
@ -424,15 +424,15 @@
|
||||
</span>
|
||||
<span>
|
||||
<!-- isOutsourcing 图片 -->
|
||||
<img
|
||||
v-if="item.isOutsourcing === 'Y'"
|
||||
src="/src/assets/imgs/out.png"
|
||||
<img
|
||||
v-if="item.isOutsourcing === 'Y'"
|
||||
src="/src/assets/imgs/out.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
<!-- checkYn 图片 -->
|
||||
<img
|
||||
v-if="item.checkYn === 1"
|
||||
src="/src/assets/imgs/checkstatusss.png"
|
||||
<img
|
||||
v-if="item.checkYn === 0"
|
||||
src="/src/assets/imgs/checkstatusss.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
</span>
|
||||
@ -456,15 +456,15 @@
|
||||
</span>
|
||||
<span>
|
||||
<!-- isOutsourcing 图片 -->
|
||||
<img
|
||||
v-if="item.isOutsourcing === 'Y'"
|
||||
src="/src/assets/imgs/out.png"
|
||||
<img
|
||||
v-if="item.isOutsourcing === 'Y'"
|
||||
src="/src/assets/imgs/out.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
<!-- checkYn 图片 -->
|
||||
<img
|
||||
v-if="item.checkYn === 1"
|
||||
src="/src/assets/imgs/checkstatusss.png"
|
||||
<img
|
||||
v-if="item.checkYn === 0"
|
||||
src="/src/assets/imgs/checkstatusss.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
</span>
|
||||
@ -488,15 +488,15 @@
|
||||
</span>
|
||||
<span>
|
||||
<!-- isOutsourcing 图片 -->
|
||||
<img
|
||||
v-if="item.isOutsourcing === 'Y'"
|
||||
src="/src/assets/imgs/out.png"
|
||||
<img
|
||||
v-if="item.isOutsourcing === 'Y'"
|
||||
src="/src/assets/imgs/out.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
<!-- checkYn 图片 -->
|
||||
<img
|
||||
v-if="item.checkYn === 1"
|
||||
src="/src/assets/imgs/checkstatusss.png"
|
||||
<img
|
||||
v-if="item.checkYn === 0"
|
||||
src="/src/assets/imgs/checkstatusss.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
</span>
|
||||
@ -520,15 +520,15 @@
|
||||
</span>
|
||||
<span>
|
||||
<!-- isOutsourcing 图片 -->
|
||||
<img
|
||||
v-if="item.isOutsourcing === 'Y'"
|
||||
src="/src/assets/imgs/out.png"
|
||||
<img
|
||||
v-if="item.isOutsourcing === 'Y'"
|
||||
src="/src/assets/imgs/out.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
<!-- checkYn 图片 -->
|
||||
<img
|
||||
v-if="item.checkYn === 1"
|
||||
src="/src/assets/imgs/checkstatusss.png"
|
||||
<img
|
||||
v-if="item.checkYn === 0"
|
||||
src="/src/assets/imgs/checkstatusss.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
</span>
|
||||
@ -552,15 +552,15 @@
|
||||
</span>
|
||||
<span>
|
||||
<!-- isOutsourcing 图片 -->
|
||||
<img
|
||||
v-if="item.isOutsourcing === 'Y'"
|
||||
src="/src/assets/imgs/out.png"
|
||||
<img
|
||||
v-if="item.isOutsourcing === 'Y'"
|
||||
src="/src/assets/imgs/out.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
<!-- checkYn 图片 -->
|
||||
<img
|
||||
v-if="item.checkYn === 1"
|
||||
src="/src/assets/imgs/checkstatusss.png"
|
||||
<img
|
||||
v-if="item.checkYn === 0"
|
||||
src="/src/assets/imgs/checkstatusss.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
</span>
|
||||
@ -584,15 +584,15 @@
|
||||
</span>
|
||||
<span>
|
||||
<!-- isOutsourcing 图片 -->
|
||||
<img
|
||||
v-if="item.isOutsourcing === 'Y'"
|
||||
src="/src/assets/imgs/out.png"
|
||||
<img
|
||||
v-if="item.isOutsourcing === 'Y'"
|
||||
src="/src/assets/imgs/out.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
<!-- checkYn 图片 -->
|
||||
<img
|
||||
v-if="item.checkYn === 1"
|
||||
src="/src/assets/imgs/checkstatusss.png"
|
||||
<img
|
||||
v-if="item.checkYn === 0"
|
||||
src="/src/assets/imgs/checkstatusss.png"
|
||||
class="status-icon"
|
||||
/>
|
||||
</span>
|
||||
@ -605,10 +605,10 @@
|
||||
</template>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
|
||||
<!--标准件-->
|
||||
<!--加工件-->
|
||||
|
||||
|
||||
<el-table-column v-if="activeIndex == 'second'" label="物料需求计划" align="center" prop="planBoomExists" min-width="180">
|
||||
<template #default="{ row }">
|
||||
{{ row.planBoomExists ?(row.planBoomExists== 1?'✔':''):''}}
|
||||
@ -726,32 +726,19 @@ const formatLongToDate = (longTimestamp) => {
|
||||
return '';
|
||||
}
|
||||
const date = new Date(longTimestamp);
|
||||
const year = date.getFullYear();
|
||||
// const year = date.getFullYear();
|
||||
const year = String(date.getFullYear()).slice(-2);
|
||||
const month = String(date.getMonth() + 1).padStart(2, '0'); // 月份从 0 开始
|
||||
const day = String(date.getDate()).padStart(2, '0');
|
||||
return `${year}-${month}-${day}`;
|
||||
}
|
||||
|
||||
const tableRowClassName = ({ row }) => {
|
||||
var endTime = new Date(row.endTime);
|
||||
|
||||
// 获取当前时间的 Date 对象
|
||||
var currentTime = new Date();
|
||||
|
||||
// 将 endTime 和 currentTime 的时间部分设置为零
|
||||
endTime.setHours(0, 0, 0, 0);
|
||||
currentTime.setHours(0, 0, 0, 0);
|
||||
if (row.wgType!=2&&endTime < currentTime){
|
||||
return 'warning-row';
|
||||
}else {
|
||||
return ''
|
||||
}
|
||||
}
|
||||
const cellClassName = ({ row,column }) => {
|
||||
if(row.taskDispatchDetailDOList){
|
||||
for(var i = 0 ;i < row.taskDispatchDetailDOList.length ; i++){
|
||||
var item = row.taskDispatchDetailDOList[i];
|
||||
|
||||
|
||||
if (item.procedureName == column.label && item.flag === 1) {
|
||||
return 'green-cell'
|
||||
};
|
||||
@ -801,7 +788,7 @@ const handleExport = async () => {
|
||||
onMounted(async () => {
|
||||
loading.value = true
|
||||
await getList()
|
||||
|
||||
|
||||
userList.value = await UserApi.getSimpleUserList()
|
||||
})
|
||||
</script>
|
||||
@ -814,7 +801,7 @@ onMounted(async () => {
|
||||
background-color: #e6f7e6 !important;
|
||||
}
|
||||
.yellow-cell {
|
||||
background-color: #fffbe6 !important;
|
||||
background-color: #fffbe6 !important;
|
||||
}
|
||||
.red-cell {
|
||||
background-color: #fff1f0 !important;
|
||||
@ -824,14 +811,14 @@ onMounted(async () => {
|
||||
flex-direction: column;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
|
||||
.first-row, .second-row {
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
width: 100%;
|
||||
margin-bottom: 4px; /* 增加行间距 */
|
||||
}
|
||||
|
||||
|
||||
.status-icon {
|
||||
width: 35px; /* 增大图片宽度 */
|
||||
height: 35px; /* 增大图片高度 */
|
||||
|
169
mes-ui/mes-ui-admin-vue3/src/views/heli/storage/transaction.vue
Normal file
169
mes-ui/mes-ui-admin-vue3/src/views/heli/storage/transaction.vue
Normal file
@ -0,0 +1,169 @@
|
||||
<template>
|
||||
<el-card class="hl-card">
|
||||
<template #header>
|
||||
<span>库存变动日志</span>
|
||||
</template>
|
||||
<ContentWrap class="borderxx">
|
||||
<!-- 搜索工作栏 -->
|
||||
<el-form class="-mb-15px" :model="queryParams" ref="queryFormRef" :inline="true" label-width="120px">
|
||||
<el-form-item label="物料编码" prop="matCode">
|
||||
<el-input v-model="queryParams.matCode" placeholder="物料编码" clearable @keyup.enter="handleQuery" class="!w-240px" />
|
||||
</el-form-item>
|
||||
<el-form-item label="物料名称" prop="matName">
|
||||
<el-input v-model="queryParams.matName" placeholder="物料名称" clearable @keyup.enter="handleQuery" class="!w-240px" />
|
||||
</el-form-item>
|
||||
<el-form-item label="物料类型" prop="matType">
|
||||
<el-select v-model="queryParams.matType" placeholder="下拉选择" clearable class="!w-240px">
|
||||
<el-option v-for="dict in getIntDictOptions(DICT_TYPE.HELI_MATERIAL_TYPE)" :key="dict.label" :label="dict.label" :value="dict.label" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="仓库" prop="whId">
|
||||
<el-select v-model="queryParams.whId" placeholder="下拉选择" clearable class="!w-240px">
|
||||
<el-option v-for="dict in whList" :key="dict.id" :label="dict.wh_name" :value="dict.id" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="批次号" prop="lotNo" v-if="false">
|
||||
<el-input v-model="queryParams.lotNo" placeholder="批次号" clearable @keyup.enter="handleQuery" class="!w-240px" />
|
||||
</el-form-item>
|
||||
<el-form-item label="业务单据编号" prop="stockNo">
|
||||
<el-input v-model="queryParams.stockNo" placeholder="业务单据编号" clearable @keyup.enter="handleQuery" class="!w-240px" />
|
||||
</el-form-item>
|
||||
<el-form-item label="变动方向" prop="stockType">
|
||||
<el-select v-model="queryParams.stockType" placeholder="下拉选择" clearable class="!w-240px">
|
||||
<el-option v-for="dict in getIntDictOptions(DICT_TYPE.HELI_STORAGE_TYPE)" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="上游单据编号" prop="headerNo">
|
||||
<el-input v-model="queryParams.headerNo" placeholder="上游单据编号" clearable @keyup.enter="handleQuery" class="!w-240px" />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-button @click="handleQuery" type="primary">
|
||||
<Icon icon="ep:search" class="mr-5px" /> 搜索
|
||||
</el-button>
|
||||
<el-button @click="resetQuery">
|
||||
<Icon icon="ep:refresh" class="mr-5px" /> 重置
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</ContentWrap>
|
||||
|
||||
<!-- 列表 -->
|
||||
<ContentWrap>
|
||||
<el-table v-loading="loading" :data="list" :show-overflow-tooltip="true" class="hl-table">
|
||||
<el-table-column type="index" width="100" fixed label="序号" align="center" />
|
||||
<el-table-column label="物料编码" align="center" prop="matCode" min-width="120" fixed />
|
||||
<el-table-column label="物料名称" align="center" prop="matName" min-width="120" fixed />
|
||||
<el-table-column label="物料类型" align="center" prop="matType" min-width="120" />
|
||||
<el-table-column label="物料简称" align="center" prop="shortName" min-width="120" />
|
||||
<el-table-column label="规格/型号" align="center" prop="matSpec" min-width="120" />
|
||||
<el-table-column label="品牌" align="center" prop="matBrand" min-width="120" />
|
||||
<el-table-column label="业务单据编号" align="center" prop="stockNo" min-width="180" />
|
||||
<el-table-column label="业务单据类型" align="center" prop="stockTypeName" min-width="120" />
|
||||
<el-table-column label="上游单据编号" align="center" prop="headerNo" min-width="120" />
|
||||
<el-table-column label="仓库" align="center" prop="whName" min-width="120" />
|
||||
<el-table-column label="库区" align="center" prop="rgName" min-width="120" />
|
||||
<el-table-column label="库位" align="center" prop="pnName" min-width="140" />
|
||||
<el-table-column label="批次号" align="center" prop="lotNo" min-width="120" v-if="false" />
|
||||
<el-table-column label="变动数量" align="center" prop="storageOkQty" fixed="right" min-width="120">
|
||||
<template #default="scope">
|
||||
<span v-if="scope.row.storageOkQty<0" style="color:#EC808D;">
|
||||
{{scope.row.storageOkQty}}
|
||||
</span>
|
||||
<span v-else-if="scope.row.storageOkQty>0" style="color:#63A103;">
|
||||
+{{scope.row.storageOkQty}}
|
||||
</span>
|
||||
<span v-else>
|
||||
{{scope.row.storageOkQty}}
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="库存单位" align="center" prop="matUnit" fixed="right" min-width="120" />
|
||||
</el-table>
|
||||
<!-- 分页 -->
|
||||
<Pagination :total="total" v-model:page="queryParams.pageNo" v-model:limit="queryParams.pageSize" @pagination="getList" />
|
||||
</ContentWrap>
|
||||
</el-card>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import download from '@/utils/download'
|
||||
import * as StorageLogApi from '@/api/heli/storagelog'
|
||||
|
||||
import { getIntDictOptions, DICT_TYPE } from '@/utils/dict'
|
||||
|
||||
import * as WarehouseApi from '@/api/heli/warehouse'
|
||||
// import * as RgApi from '@/api/heli/rg'
|
||||
// import * as PnApi from '@/api/heli/pn'
|
||||
|
||||
defineOptions({ name: 'StorageLog' })
|
||||
|
||||
const whList = ref([])
|
||||
// const rgList = ref([])
|
||||
// const pnList = ref([])
|
||||
|
||||
const message = useMessage() // 消息弹窗
|
||||
const { t } = useI18n() // 国际化
|
||||
|
||||
const loading = ref(true) // 列表的加载中
|
||||
const list = ref([]) // 列表的数据
|
||||
const total = ref(0) // 列表的总页数
|
||||
const queryParams = reactive({
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
matCode: undefined,
|
||||
matName: undefined,
|
||||
matType: undefined,
|
||||
whId:undefined,
|
||||
lotNo: undefined,
|
||||
pnId: undefined,
|
||||
stockNo: undefined,
|
||||
stockType: undefined,
|
||||
headerNo: undefined
|
||||
})
|
||||
const queryFormRef = ref() // 搜索的表单
|
||||
|
||||
/** 查询列表 */
|
||||
const getList = async () => {
|
||||
loading.value = true
|
||||
try {
|
||||
const data = await StorageLogApi.getStorageLogPage(queryParams)
|
||||
list.value = data.list
|
||||
total.value = data.total
|
||||
} finally {
|
||||
loading.value = false
|
||||
}
|
||||
}
|
||||
|
||||
/** 搜索按钮操作 */
|
||||
const handleQuery = () => {
|
||||
queryParams.pageNo = 1
|
||||
getList()
|
||||
}
|
||||
|
||||
/** 重置按钮操作 */
|
||||
const resetQuery = () => {
|
||||
queryFormRef.value.resetFields()
|
||||
handleQuery()
|
||||
}
|
||||
//仓库列表
|
||||
const init_page_wh = (async ()=>{
|
||||
whList.value = await WarehouseApi.getSimpList()
|
||||
})
|
||||
// //库区列表
|
||||
// const init_page_rg = (async ()=>{
|
||||
// rgList.value = await RgApi.getSimpList()
|
||||
// })
|
||||
// //库位列表
|
||||
// const init_page_pn = (async ()=>{
|
||||
// pnList.value = await PnApi.getSimpList()
|
||||
// })
|
||||
|
||||
/** 初始化 **/
|
||||
onMounted(async () => {
|
||||
await init_page_wh()
|
||||
// await init_page_rg()
|
||||
// await init_page_pn()
|
||||
await getList()
|
||||
})
|
||||
</script>
|
Loading…
Reference in New Issue
Block a user