Merge remote-tracking branch 'origin/master'

master
夜笙歌 9 months ago
commit 9b341cb0b0

@ -106,6 +106,24 @@ public class MesProductOrderController extends BaseController {
return toAjax(mesProductOrderService.productOrderLockInventory(mesProductOrder));
}
/**
*
*/
@Log(title = "生产工单", businessType = BusinessType.UPDATE)
@PostMapping("/productOrderPublish")
public AjaxResult productOrderPublish(@RequestBody MesProductOrder mesProductOrder) {
return toAjax(mesProductOrderService.productOrderPublish(mesProductOrder));
}
/**
*
*/
@Log(title = "生产工单", businessType = BusinessType.UPDATE)
@PostMapping("/productOrderRecall")
public AjaxResult productOrderRecall(@RequestBody MesProductOrder mesProductOrder) {
return toAjax(mesProductOrderService.productOrderRecall(mesProductOrder));
}
/**
*
*

@ -73,4 +73,20 @@ public interface IMesProductOrderService
*/
public int productOrderLockInventory(MesProductOrder mesProductOrder);
/**
*
*
* @param mesProductOrder
* @return
*/
public int productOrderPublish(MesProductOrder mesProductOrder);
/**
*
*
* @param mesProductOrder
* @return
*/
public int productOrderRecall(MesProductOrder mesProductOrder);
}

@ -56,7 +56,7 @@ public class MesProductOrderServiceImpl implements IMesProductOrderService {
@Override
public int insertMesProductOrder(MesProductOrder mesProductOrder) {
mesProductOrder.setCreateTime(DateUtils.getNowDate());
//校验是否超出销售数量
//销售订单添加工单:校验是否超出销售数量
if (mesProductOrder.getSaleOrderFlag().equals("1") && StringUtils.isNotNull(mesProductOrder.getSaleOrderId())) {
checkSalesQuantity(mesProductOrder);
}
@ -131,7 +131,9 @@ public class MesProductOrderServiceImpl implements IMesProductOrderService {
BigDecimal sumDecimal = new BigDecimal(0);
if (StringUtils.isNotNull(mesProductOrders)) {
for (MesProductOrder order : mesProductOrders) {
sumDecimal = sumDecimal.add(order.getPlanAmount());
if (!order.getOrderStatus().equals(MesConstants.RECALL)){
sumDecimal = sumDecimal.add(order.getPlanAmount());
}
}
}
sumDecimal = sumDecimal.add(mesProductOrder.getPlanAmount());
@ -152,8 +154,40 @@ public class MesProductOrderServiceImpl implements IMesProductOrderService {
if (productOrder.getStockLockFlag().equals("1")) {
throw new ServiceException("该工单库存已锁定!");
}
if (!mesProductOrder.getOrderStatus().equals(MesConstants.UN_PUBLISH)){
throw new ServiceException("该生产工单不是未发布状态!");
}
// 调用仓库接口锁定库存
mesProductOrder.setUpdateTime(DateUtils.getNowDate());
return mesProductOrderMapper.updateMesProductOrder(mesProductOrder);
}
/**
*
* @param mesProductOrder
* @return
*/
@Override
public int productOrderPublish(MesProductOrder mesProductOrder) {
if (!mesProductOrder.getOrderStatus().equals(MesConstants.UN_PUBLISH)){
throw new ServiceException("该生产工单不是未发布状态!");
}
mesProductOrder.setOrderStatus(MesConstants.PUBLISHED);
return mesProductOrderMapper.updateMesProductOrder(mesProductOrder);
}
/**
*
* @param mesProductOrder
* @return
*/
@Override
public int productOrderRecall(MesProductOrder mesProductOrder) {
// 检验生产派工未下达状态的可进行工单撤回
mesProductOrder.setOrderStatus(MesConstants.RECALL);
// 调用仓库接口取消锁定库存
mesProductOrder.setStockLockFlag("0");
return mesProductOrderMapper.updateMesProductOrder(mesProductOrder);
}
}

@ -70,6 +70,7 @@
<select id="selectMesProductOrderList" parameterType="MesProductOrder" resultMap="MesProductOrderResult">
<include refid="selectMesProductOrderVo"/>
<where>
order_status not in ('9')
<if test="orderCode != null and orderCode != ''">and order_code = #{orderCode}</if>
<if test="saleOrderId != null ">and sale_order_id = #{saleOrderId}</if>
<if test="saleorderCode != null and saleorderCode != ''">and saleorder_code = #{saleorderCode}</if>

@ -52,6 +52,24 @@ export function productOrderLockInventory(data) {
})
}
//发布
export function productOrderPublish(data) {
return request({
url: '/mes/productOrder/productOrderPublish',
method: 'post',
data: data
})
}
//撤回
export function productOrderRecall(data) {
return request({
url: '/mes/productOrder/productOrderRecall',
method: 'post',
data: data
})
}
// 删除生产工单
export function delProductOrder(productOrderId) {
return request({

@ -59,24 +59,24 @@
<el-table-column label="物料规格" align="center" prop="materialSpec" />
<el-table-column label="净重" align="center" prop="netWeight" />
<el-table-column label="毛重" align="center" prop="grossWeight" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['mes:materialinfo:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['mes:materialinfo:remove']"
>删除</el-button>
</template>
</el-table-column>
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">-->
<!-- <template slot-scope="scope">-->
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-edit"-->
<!-- @click="handleUpdate(scope.row)"-->
<!-- v-hasPermi="['mes:materialinfo:edit']"-->
<!-- >修改</el-button>-->
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-delete"-->
<!-- @click="handleDelete(scope.row)"-->
<!-- v-hasPermi="['mes:materialinfo:remove']"-->
<!-- >删除</el-button>-->
<!-- </template>-->
<!-- </el-table-column>-->
</el-table>
<pagination

@ -45,16 +45,16 @@
/>
</el-select>
</el-form-item>
<!-- <el-form-item label="库存锁定标识" prop="stockLockFlag">-->
<!-- <el-select v-model="queryParams.stockLockFlag" placeholder="请选择库存锁定标识" clearable>-->
<!-- <el-option-->
<!-- v-for="dict in dict.type.active_flag"-->
<!-- :key="dict.value"-->
<!-- :label="dict.label"-->
<!-- :value="dict.value"-->
<!-- />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="库存锁定标识" prop="stockLockFlag">-->
<!-- <el-select v-model="queryParams.stockLockFlag" placeholder="请选择库存锁定标识" clearable>-->
<!-- <el-option-->
<!-- v-for="dict in dict.type.active_flag"-->
<!-- :key="dict.value"-->
<!-- :label="dict.label"-->
<!-- :value="dict.value"-->
<!-- />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
@ -70,7 +70,8 @@
size="mini"
@click="handleAdd"
v-hasPermi="['mes:productOrder:add']"
>销售订单新增</el-button>
>销售订单新增
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
@ -80,7 +81,8 @@
size="mini"
@click="handleNoOrderAdd"
v-hasPermi="['mes:productOrder:add']"
>无订单新增</el-button>
>无订单新增
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
@ -91,7 +93,8 @@
:disabled="single"
@click="handleUpdate"
v-hasPermi="['mes:productOrder:edit']"
>修改</el-button>
>修改
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
@ -102,7 +105,8 @@
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['mes:productOrder:remove']"
>删除</el-button>
>删除
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
@ -112,13 +116,14 @@
size="mini"
@click="handleExport"
v-hasPermi="['mes:productOrder:export']"
>导出</el-button>
>导出
</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="productOrderList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column type="selection" width="55" align="center"/>
<el-table-column label="主键标识" align="center" prop="productOrderId" v-if="columns[0].visible"/>
<el-table-column label="工单编号" align="center" prop="orderCode" v-if="columns[1].visible"/>
<el-table-column label="销售订单ID" align="center" prop="saleOrderId" v-if="columns[2].visible"/>
@ -127,7 +132,7 @@
<el-table-column label="项目编号" align="center" prop="projectNo" v-if="columns[5].visible"/>
<el-table-column label="物料ID" align="center" prop="materialId" v-if="columns[6].visible"/>
<el-table-column label="物料bomID" align="center" prop="materialBomId" v-if="columns[7].visible"/>
<el-table-column label="派工类型" align="center" prop="dispatchType" v-if="columns[8].visible" >
<el-table-column label="派工类型" align="center" prop="dispatchType" v-if="columns[8].visible">
<template slot-scope="scope">
<dict-tag :options="dict.type.dispatch_type" :value="scope.row.dispatchType"/>
</template>
@ -139,7 +144,7 @@
<el-table-column label="完成数量" align="center" prop="completeAmount" v-if="columns[13].visible"/>
<el-table-column label="发布时间" align="center" prop="releaseTime" width="180" v-if="columns[14].visible">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.releaseTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
<span>{{ parseTime(scope.row.releaseTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
</template>
</el-table-column>
<el-table-column label="计划交货日期" align="center" prop="planDeliveryDate" width="180" v-if="columns[26].visible">
@ -149,30 +154,30 @@
</el-table-column>
<el-table-column label="计划开始时间" align="center" prop="planBeginTime" width="180" v-if="columns[15].visible">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.planBeginTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
<span>{{ parseTime(scope.row.planBeginTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
</template>
</el-table-column>
<el-table-column label="计划结束时间" align="center" prop="planEndTime" width="180" v-if="columns[16].visible">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.planEndTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
<span>{{ parseTime(scope.row.planEndTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
</template>
</el-table-column>
<el-table-column label="开始时间" align="center" prop="realBeginTime" width="180" v-if="columns[17].visible">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.realBeginTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
<span>{{ parseTime(scope.row.realBeginTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
</template>
</el-table-column>
<el-table-column label="完成时间" align="center" prop="realEndTime" width="180" v-if="columns[18].visible">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.realEndTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
<span>{{ parseTime(scope.row.realEndTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
</template>
</el-table-column>
<el-table-column label="工单状态" align="center" prop="orderStatus" v-if="columns[19].visible" >
<el-table-column label="工单状态" align="center" prop="orderStatus" v-if="columns[19].visible">
<template slot-scope="scope">
<dict-tag :options="dict.type.plan_status" :value="scope.row.orderStatus"/>
</template>
</el-table-column>
<el-table-column label="库存锁定标识" align="center" prop="stockLockFlag" v-if="columns[20].visible" >
<el-table-column label="库存锁定标识" align="center" prop="stockLockFlag" v-if="columns[20].visible">
<template slot-scope="scope">
<dict-tag :options="dict.type.active_flag" :value="scope.row.stockLockFlag"/>
</template>
@ -181,37 +186,59 @@
<el-table-column label="创建人" align="center" prop="createBy" v-if="columns[22].visible"/>
<el-table-column label="创建时间" align="center" prop="createTime" width="180" v-if="columns[23].visible">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
</template>
</el-table-column>
<el-table-column label="更新人" align="center" prop="updateBy" v-if="columns[24].visible"/>
<el-table-column label="更新时间" align="center" prop="updateTime" width="180" v-if="columns[25].visible">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.updateTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
<span>{{ parseTime(scope.row.updateTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="220">
<template slot-scope="scope">
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-edit"-->
<!-- @click="handleUpdate(scope.row)"-->
<!-- v-hasPermi="['mes:productOrder:edit']"-->
<!-- >修改</el-button>-->
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['mes:productOrder:edit']"
>修改</el-button>
icon="el-icon-lock"
@click="handleLockInventory(scope.row)"
>锁库存
</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleLockInventory(scope.row)"
>锁库存</el-button>
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-delete"-->
<!-- @click="handleDelete(scope.row)"-->
<!-- v-hasPermi="['mes:productOrder:remove']"-->
<!-- >删除</el-button>-->
icon="el-icon-success"
@click="handlePublish(scope.row)"
>发布
</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-d-arrow-left"
@click="handleRecall(scope.row)"
>撤回
</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-right"
@click="handleDispatch(scope.row)"
>生产派工
</el-button>
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-delete"-->
<!-- @click="handleDelete(scope.row)"-->
<!-- v-hasPermi="['mes:productOrder:remove']"-->
<!-- >删除</el-button>-->
</template>
</el-table-column>
</el-table>
@ -230,24 +257,24 @@
<el-form-item label="工单编号" prop="orderCode">
<el-input v-model="form.orderCode" placeholder="请输入工单编号" :disabled="true"/>
</el-form-item>
<!-- <el-form-item label="销售订单ID" prop="saleOrderId">-->
<!-- <el-input v-model="form.saleOrderId" placeholder="请输入销售订单ID" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="销售订单ID" prop="saleOrderId">-->
<!-- <el-input v-model="form.saleOrderId" placeholder="请输入销售订单ID" />-->
<!-- </el-form-item>-->
<el-form-item label="销售订单编号" prop="saleorderCode">
<el-input v-model="form.saleorderCode" placeholder="请点击右侧检索销售订单编号" readonly>
<el-button slot="append" icon="el-icon-search" @click="handleSaleOrderAdd"></el-button>
<el-button slot="append" icon="el-icon-search" @click="handleSaleOrderAdd"></el-button>
</el-input>
</el-form-item>
<el-form-item label="销售订单行号" prop="saleorderLinenumber">
<el-input v-model="form.saleorderLinenumber" placeholder="请输入销售订单行号" :disabled="true"/>
</el-form-item>
<!-- <el-form-item label="项目编号" prop="projectNo">-->
<!-- <el-input v-model="form.projectNo" placeholder="请输入项目编号" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="物料ID" prop="materialId" >-->
<!-- <el-input v-model="form.materialId" placeholder="请输入物料ID" :disabled="true"/>-->
<!-- </el-form-item>-->
<el-form-item label="物料名称" prop="materialId" >
<!-- <el-form-item label="项目编号" prop="projectNo">-->
<!-- <el-input v-model="form.projectNo" placeholder="请输入项目编号" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="物料ID" prop="materialId" >-->
<!-- <el-input v-model="form.materialId" placeholder="请输入物料ID" :disabled="true"/>-->
<!-- </el-form-item>-->
<el-form-item label="物料名称" prop="materialId">
<el-input v-model="form.materialName" placeholder="请输入物料名称" :disabled="true"/>
</el-form-item>
<el-form-item label="物料BOM" prop="materialBomId">
@ -260,17 +287,8 @@
></el-option>
</el-select>
</el-form-item>
<!-- <el-form-item label="派工类型" prop="dispatchType">-->
<!-- <el-radio-group v-model="form.dispatchType">-->
<!-- <el-radio-->
<!-- v-for="dict in dict.type.dispatch_type"-->
<!-- :key="dict.value"-->
<!-- :label="dict.value"-->
<!-- >{{dict.label}}</el-radio>-->
<!-- </el-radio-group>-->
<!-- </el-form-item>-->
<el-form-item label="工艺路线" prop="dispatchId">
<el-select v-model="form.dispatchId" filterable placeholder="请选择工艺路线" clearable>
<el-select v-model="form.dispatchId" filterable placeholder="请选择工艺路线" clearable>
<el-option
v-for="item in routeList"
:key="item.routeId"
@ -283,59 +301,108 @@
<el-input-number v-model="form.saleAmount" placeholder="请输入销售数量" :disabled="true"/>
</el-form-item>
<el-form-item label="计划数量" prop="planAmount">
<el-input-number v-model="form.planAmount" placeholder="请输入计划数量" />
<el-input-number v-model="form.planAmount" placeholder="请输入计划数量"/>
</el-form-item>
<!-- <el-form-item label="已派工数量" prop="dispatchAmount">-->
<!-- <el-input-number v-model="form.dispatchAmount" placeholder="请输入已派工数量" />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="完成数量" prop="completeAmount">-->
<!-- <el-input-number v-model="form.completeAmount" placeholder="请输入完成数量" />-->
<!-- </el-form-item>-->
<el-form-item label="计划交货日期" prop="planDeliveryDate">
<el-date-picker clearable
v-model="form.planDeliveryDate"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择计划交货日期">
v-model="form.planDeliveryDate"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择计划交货日期">
</el-date-picker>
</el-form-item>
<el-form-item label="计划开始时间" prop="planBeginTime">
<el-date-picker clearable
v-model="form.planBeginTime"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择计划开始时间">
v-model="form.planBeginTime"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择计划开始时间">
</el-date-picker>
</el-form-item>
<el-form-item label="计划结束时间" prop="planEndTime">
<el-date-picker clearable
v-model="form.planEndTime"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择计划结束时间">
v-model="form.planEndTime"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择计划结束时间">
</el-date-picker>
</el-form-item>
<!-- <el-form-item label="工单状态" prop="orderStatus">-->
<!-- <el-select v-model="form.orderStatus" placeholder="请选择工单状态">-->
<!-- <el-option-->
<!-- v-for="dict in dict.type.plan_status"-->
<!-- :key="dict.value"-->
<!-- :label="dict.label"-->
<!-- :value="dict.value"-->
<!-- ></el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="库存锁定标识" prop="stockLockFlag">-->
<!-- <el-radio-group v-model="form.stockLockFlag">-->
<!-- <el-radio-->
<!-- v-for="dict in dict.type.active_flag"-->
<!-- :key="dict.value"-->
<!-- :label="dict.value"-->
<!-- >{{dict.label}}</el-radio>-->
<!-- </el-radio-group>-->
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容"/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
<!-- 无销售订单添加生产工单对话框 -->
<el-dialog :title="title" :visible.sync="noOrderOpen" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="110px">
<el-form-item label="工单编号" prop="orderCode">
<el-input v-model="form.orderCode" :disabled="true"/>
</el-form-item>
<!-- <el-form-item label="项目编号" prop="projectNo">-->
<!-- <el-input v-model="form.projectNo" placeholder="请输入项目编号"/>-->
<!-- </el-form-item>-->
<el-form-item label="物料名称" prop="materialName">
<el-input v-model="form.materialName" placeholder="请点击右侧检索物料" readonly>
<el-button slot="append" icon="el-icon-search" @click="handleMaterialAdd"></el-button>
</el-input>
</el-form-item>
<el-form-item label="物料BOM" prop="materialBomId">
<el-select v-model="form.materialBomId" placeholder="请选择物料BOM">
<el-option
v-for="item in materialBomList"
:key="item.materialBomId"
:label="item.materialNameDesc"
:value="item.materialBomId"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="工艺路线" prop="dispatchId">
<el-select v-model="form.dispatchId" filterable placeholder="请选择工艺路线" clearable>
<el-option
v-for="item in routeList"
:key="item.routeId"
:label="item.routeName"
:value="item.routeId"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="销售数量" prop="saleAmount">
<el-input-number v-model="form.saleAmount" placeholder="请输入销售数量"/>
</el-form-item>
<el-form-item label="计划数量" prop="planAmount">
<el-input-number v-model="form.planAmount" placeholder="请输入计划数量"/>
</el-form-item>
<el-form-item label="计划交货日期" prop="planDeliveryDate">
<el-date-picker clearable
v-model="form.planDeliveryDate"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择计划交货日期">
</el-date-picker>
</el-form-item>
<el-form-item label="计划开始时间" prop="planBeginTime">
<el-date-picker clearable
v-model="form.planBeginTime"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择计划开始时间">
</el-date-picker>
</el-form-item>
<el-form-item label="计划结束时间" prop="planEndTime">
<el-date-picker clearable
v-model="form.planEndTime"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择计划结束时间">
</el-date-picker>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容"/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
@ -345,7 +412,7 @@
</el-dialog>
<!-- 添加销售订单信息对话框 -->
<el-dialog title="选择销售订单" :visible.sync="saleOrderOpen" append-to-body>
<el-dialog title="选择销售订单" :visible.sync="saleOrderOpen" append-to-body>
<add-SaleOrder @selection="handleSelection" ref="saleOrderRef"></add-SaleOrder>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitSaleOrderForm"> </el-button>
@ -353,6 +420,15 @@
</div>
</el-dialog>
<!-- 添加物料信息对话框 -->
<el-dialog title="选择物料信息" :visible.sync="materialOpen" append-to-body>
<add-bom @selection="handleSelection" ref="materialRef"></add-bom>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitMaterialForm"> </el-button>
<el-button @click="materialOpen = false"> </el-button>
</div>
</el-dialog>
</div>
</template>
@ -363,16 +439,19 @@ import {
delProductOrder,
addProductOrder,
updateProductOrder,
getOrderCode, productOrderLockInventory
getOrderCode, productOrderLockInventory, productOrderPublish, productOrderRecall
} from "@/api/mes/productOrder";
import addSaleOrder from '@//views/mes/productOrder/addSaleOrder.vue';
import {getMaterialVisionList} from "@//api/mes/materialBom";
import {findRouteList} from "@//api/mes/baseRoute";
import addBom from '@//views/mes/materialBom/addBom.vue';
export default {
name: "ProductOrder",
dicts: ['active_flag', 'plan_status', 'dispatch_type'],
components: {
'add-SaleOrder': addSaleOrder
'add-SaleOrder': addSaleOrder,
'add-bom': addBom
},
data() {
return {
@ -398,6 +477,8 @@ export default {
saleOrderOpen: false,
//
noOrderOpen: false,
//
materialOpen: false,
//
queryParams: {
pageNum: 1,
@ -433,62 +514,69 @@ export default {
//
rules: {
orderCode: [
{ required: true, message: "工单编号不能为空", trigger: "blur" }
{required: true, message: "工单编号不能为空", trigger: "blur"}
],
saleOrderId: [
{ required: true, message: "销售订单ID不能为空", trigger: "blur" }
{required: true, message: "销售订单ID不能为空", trigger: "blur"}
],
saleorderCode: [
{ required: true, message: "销售订单编号不能为空", trigger: "blur" }
{required: true, message: "销售订单编号不能为空", trigger: "blur"}
],
materialId: [
{ required: true, message: "物料ID不能为空", trigger: "blur" }
{required: true, message: "物料ID不能为空", trigger: "blur"}
],
materialBomId: [
{ required: true, message: "物料bomID不能为空", trigger: "blur" }
{required: true, message: "物料bomID不能为空", trigger: "blur"}
],
dispatchType: [
{ required: true, message: "派工类型不能为空", trigger: "change" }
{required: true, message: "派工类型不能为空", trigger: "change"}
],
dispatchId: [
{ required: true, message: "派工ID不能为空", trigger: "blur" }
{required: true, message: "派工ID不能为空", trigger: "blur"}
],
saleAmount: [
{required: true, message: "销售数量不能为空", trigger: "blur"},
{
validator: (rule, value, callback) => callback(Number.isInteger(Number(value)) && Number(value) >= 1 ? undefined : new Error("销售数量需要是大于等于1的整数")),
trigger: "blur"
}
],
planAmount: [
{ required: true, message: "计划数量不能为空", trigger: "blur" },
{required: true, message: "计划数量不能为空", trigger: "blur"},
{
validator: (rule, value, callback) => callback(Number(value) >= 1 ? undefined : new Error("计划数量需要大于等于1")),
validator: (rule, value, callback) => callback(Number.isInteger(Number(value)) && Number(value) >= 1 ? undefined : new Error("计划数量需要大于等于1的整数")),
trigger: "blur"
}
],
},
columns: [
{ key: 0, label: `主键标识`, visible: false },
{ key: 1, label: `工单编号`, visible: true },
{ key: 2, label: `销售订单ID`, visible: true },
{ key: 3, label: `销售订单编号`, visible: true },
{ key: 4, label: `销售订单行号`, visible: true },
{ key: 5, label: `项目编号`, visible: true },
{ key: 6, label: `物料ID`, visible: true },
{ key: 7, label: `物料bomID`, visible: true },
{ key: 8, label: `派工类型`, visible: true },
{ key: 9, label: `派工ID`, visible: true },
{ key: 10, label: `销售数量`, visible: true },
{ key: 11, label: `计划数量`, visible: true },
{ key: 12, label: `已派工数量`, visible: true },
{ key: 13, label: `完成数量`, visible: true },
{ key: 14, label: `发布时间`, visible: true },
{ key: 15, label: `计划开始时间`, visible: true },
{ key: 16, label: `计划结束时间`, visible: true },
{ key: 17, label: `开始时间`, visible: true },
{ key: 18, label: `完成时间`, visible: true },
{ key: 19, label: `工单状态`, visible: true },
{ key: 20, label: `库存锁定标识`, visible: true },
{ key: 21, label: `备注`, visible: true },
{ key: 22, label: `创建人`, visible: false },
{ key: 23, label: `创建时间`, visible: false },
{ key: 24, label: `更新人`, visible: false },
{ key: 25, label: `更新时间`, visible: false },
{ key: 26, label: `计划交货日期`, visible: true },
{key: 0, label: `主键标识`, visible: false},
{key: 1, label: `工单编号`, visible: true},
{key: 2, label: `销售订单ID`, visible: true},
{key: 3, label: `销售订单编号`, visible: true},
{key: 4, label: `销售订单行号`, visible: true},
{key: 5, label: `项目编号`, visible: true},
{key: 6, label: `物料ID`, visible: true},
{key: 7, label: `物料bomID`, visible: true},
{key: 8, label: `派工类型`, visible: true},
{key: 9, label: `派工ID`, visible: true},
{key: 10, label: `销售数量`, visible: true},
{key: 11, label: `计划数量`, visible: true},
{key: 12, label: `已派工数量`, visible: true},
{key: 13, label: `完成数量`, visible: true},
{key: 14, label: `发布时间`, visible: true},
{key: 15, label: `计划开始时间`, visible: true},
{key: 16, label: `计划结束时间`, visible: true},
{key: 17, label: `开始时间`, visible: true},
{key: 18, label: `完成时间`, visible: true},
{key: 19, label: `工单状态`, visible: true},
{key: 20, label: `库存锁定标识`, visible: true},
{key: 21, label: `备注`, visible: true},
{key: 22, label: `创建人`, visible: false},
{key: 23, label: `创建时间`, visible: false},
{key: 24, label: `更新人`, visible: false},
{key: 25, label: `更新时间`, visible: false},
{key: 26, label: `计划交货日期`, visible: true},
],
//BOM
materialBomList: [],
@ -515,6 +603,7 @@ export default {
//
cancel() {
this.open = false;
this.noOrderOpen = false;
this.reset();
},
//
@ -568,16 +657,32 @@ export default {
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.productOrderId)
this.single = selection.length!==1
this.single = selection.length !== 1
this.multiple = !selection.length
},
handleSelection(selection) {
this.ids = selection.map(item => item.productOrderId)
this.single = selection.length!==1
this.single = selection.length !== 1
this.multiple = !selection.length
},
/** 提交物料信息按钮 */
submitMaterialForm() {
let selectedRow = this.$refs.materialRef.selectedRow;
this.form.materialId = selectedRow.materialId;
this.form.materialName = selectedRow.materialName;
getMaterialVisionList(this.form.materialId).then(response => {
this.materialBomList = response.data
if (this.materialBomList.length !== 0){
this.form.materialBomId = this.materialBomList[0].materialBomId
} else {
this.form.materialBomId = null;
}
})
this.materialOpen = false;
},
/** 提交销售订单信息按钮 */
submitSaleOrderForm() {
let selectedRow = this.$refs.saleOrderRef.selectedRow;
this.form.saleOrderId = selectedRow.saleOrderId;
@ -593,7 +698,11 @@ export default {
this.form.saleOrderFlag = '1';
getMaterialVisionList(this.form.materialId).then(response => {
this.materialBomList = response.data
this.form.materialBomId = this.materialBomList[0].materialBomId
if (this.materialBomList.length !== 0){
this.form.materialBomId = this.materialBomList[0].materialBomId
} else {
this.form.materialBomId = null;
}
})
this.saleOrderOpen = false;
},
@ -607,10 +716,20 @@ export default {
this.open = true;
this.title = "添加生产工单";
},
/** 新增按钮操作 */
handleMaterialAdd() {
this.materialOpen = true;
},
/** 无订单新增按钮操作 */
handleNoOrderAdd() {
this.reset();
getOrderCode().then(response => {
this.form.orderCode = response.msg;
})
this.noOrderOpen = true;
this.form.saleOrderFlag = '0';
this.title = "添加生产工单";
},
/** 修改按钮操作 */
@ -623,6 +742,7 @@ export default {
this.title = "修改生产工单";
});
},
/** 锁库存 */
handleLockInventory(row) {
this.form.productOrderId = row.productOrderId;
@ -632,6 +752,31 @@ export default {
this.getList();
});
},
/** 发布 */
handlePublish(row) {
this.form.productOrderId = row.productOrderId;
this.form.orderStatus = row.orderStatus;
productOrderPublish(this.form).then(response => {
this.$modal.msgSuccess("发布成功");
this.getList();
});
},
/** 撤回 */
handleRecall(row) {
this.form.productOrderId = row.productOrderId;
productOrderRecall(this.form).then(response => {
this.$modal.msgSuccess("撤回成功");
this.getList();
});
},
/** 生产派工 */
handleDispatch(row) {
this.form.productOrderId = row.productOrderId;
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
@ -640,12 +785,14 @@ export default {
updateProductOrder(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.noOrderOpen = false;
this.getList();
});
} else {
addProductOrder(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.noOrderOpen = false;
this.getList();
});
}
@ -655,12 +802,13 @@ export default {
/** 删除按钮操作 */
handleDelete(row) {
const productOrderIds = row.productOrderId || this.ids;
this.$modal.confirm('是否确认删除生产工单编号为"' + productOrderIds + '"的数据项?').then(function() {
this.$modal.confirm('是否确认删除生产工单编号为"' + productOrderIds + '"的数据项?').then(function () {
return delProductOrder(productOrderIds);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
}).catch(() => {
});
},
/** 导出按钮操作 */
handleExport() {

Loading…
Cancel
Save