生产:
1、增加无采购订单新增原材料条码的功能
master
xs 1 year ago
parent 5c2aea11c3
commit 7a212ed527

@ -120,7 +120,7 @@ public class MesConstants {
public static final String MES_PRODUCT_ORDER_INTERNAL = "2";//对内生产 public static final String MES_PRODUCT_ORDER_INTERNAL = "2";//对内生产
/**物料信息绑定标识,是否需要采购订单明细绑定销售订单*/ /**物料信息常备物料标识,是否需要采购订单明细绑定销售订单*/
public static final String MES_MATERIAL_BIND_FLAG_YES = "1";//是 public static final String MES_MATERIAL_BIND_FLAG_YES = "1";//是
public static final String MES_MATERIAL_BIND_FLAG_NO = "0";//否 public static final String MES_MATERIAL_BIND_FLAG_NO = "0";//否

@ -7,6 +7,7 @@ import com.hw.common.core.constant.MesConstants;
import com.hw.common.security.annotation.InnerAuth; import com.hw.common.security.annotation.InnerAuth;
import com.hw.common.security.utils.SecurityUtils; import com.hw.common.security.utils.SecurityUtils;
import com.hw.mes.api.domain.MesBaseBarcodeInfo; import com.hw.mes.api.domain.MesBaseBarcodeInfo;
import com.hw.mes.api.domain.MesBaseMaterialInfo;
import com.hw.mes.service.IMesBaseMaterialInfoService; import com.hw.mes.service.IMesBaseMaterialInfoService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
@ -148,7 +149,7 @@ public class MesBaseBarcodeInfoController extends BaseController
/** /**
* *
*/ */
@RequiresPermissions("mes:barcode:add") @RequiresPermissions("mes:barcode:internalAdd")
@Log(title = "条码信息", businessType = BusinessType.INSERT) @Log(title = "条码信息", businessType = BusinessType.INSERT)
@PostMapping(value="/addInternalBarcode") @PostMapping(value="/addInternalBarcode")
public AjaxResult addInternalBarcode(@RequestBody MesBaseBarcodeInfo mesBaseBarcodeInfo) public AjaxResult addInternalBarcode(@RequestBody MesBaseBarcodeInfo mesBaseBarcodeInfo)
@ -242,4 +243,20 @@ public class MesBaseBarcodeInfoController extends BaseController
return toAjax(mesBaseBarcodeInfoService.insertMesBaseBarcodeInfo(mesBaseBarcodeInfo)); return toAjax(mesBaseBarcodeInfoService.insertMesBaseBarcodeInfo(mesBaseBarcodeInfo));
} }
/**
*
*/
@RequiresPermissions("mes:barcode:internalAdd")
@Log(title = "条码信息", businessType = BusinessType.INSERT)
@PostMapping(value="/addNoPurchaseBarcode")
public AjaxResult addNoPurchaseBarcode(@RequestBody MesBaseBarcodeInfo mesBaseBarcodeInfo)
{
return toAjax(mesBaseBarcodeInfoService.generateNoPurchaseRawBarcode(mesBaseBarcodeInfo));
}
} }

@ -99,5 +99,11 @@ public interface MesBaseBarcodeInfoMapper
public MesBaseBarcodeInfo selectMesBaseBarcodeInfoJoinByBarcodeId(Long barcodeId); public MesBaseBarcodeInfo selectMesBaseBarcodeInfoJoinByBarcodeId(Long barcodeId);
/**
*
* @param mesBaseBarcodeInfos
* @return
*/
public int batchMesBaseBarcodeInfo(List<MesBaseBarcodeInfo> mesBaseBarcodeInfos);
} }

@ -76,4 +76,14 @@ public interface MesProductPlanDetailMapper
* @return * @return
*/ */
public MesProductPlanDetail selectNewestMesProductPlanDetailJoin(MesProductPlanDetail mesProductPlanDetail); public MesProductPlanDetail selectNewestMesProductPlanDetailJoin(MesProductPlanDetail mesProductPlanDetail);
/**
*
*
* @param planDetailCode
* @return
*/
public MesProductPlanDetail selectMesProductPlanDetailByPlanDetailCode(String planDetailCode);
} }

@ -47,6 +47,12 @@ public interface IMesBaseBarcodeInfoService
*/ */
public int insertMesBaseBarcodeInfo(MesBaseBarcodeInfo mesBaseBarcodeInfo); public int insertMesBaseBarcodeInfo(MesBaseBarcodeInfo mesBaseBarcodeInfo);
/**
*
* @param mesBaseBarcodeInfo
*/
public int generateNoPurchaseRawBarcode(MesBaseBarcodeInfo mesBaseBarcodeInfo);
/** /**
* *
* *

@ -65,6 +65,9 @@ public class MesBaseBarcodeInfoServiceImpl implements IMesBaseBarcodeInfoService
@Autowired @Autowired
private MesProductPlanMapper mesProductPlanMapper; private MesProductPlanMapper mesProductPlanMapper;
@Autowired
private MesProductPlanDetailMapper mesProductPlanDetailMapper;
/** /**
* *
* *
@ -140,12 +143,12 @@ public class MesBaseBarcodeInfoServiceImpl implements IMesBaseBarcodeInfoService
} }
if (mesBaseMaterialInfo.getBindFlag() == null) { if (mesBaseMaterialInfo.getBindFlag() == null) {
throw new ServiceException("请先设置此物料信息[物料编码:" + mesBaseBarcodeInfo.getMaterialCode() throw new ServiceException("请先设置此物料信息[物料编码:" + mesBaseBarcodeInfo.getMaterialCode()
+ ",物料名称:" + mesBaseBarcodeInfo.getMaterialName() + "]的绑定标识"); + ",物料名称:" + mesBaseBarcodeInfo.getMaterialName() + "]的常备物料标识");
} }
//如果物料信息需要绑定,则判断是否有绑定的信息 //如果物料信息为非常备物料,则判断是否有绑定的信息
BigDecimal barcodeAmount = mesBaseBarcodeInfo.getBarcodeAmount(); BigDecimal barcodeAmount = mesBaseBarcodeInfo.getBarcodeAmount();
if (mesBaseMaterialInfo.getBindFlag().equals(MesConstants.MES_MATERIAL_BIND_FLAG_YES)) { if (mesBaseMaterialInfo.getBindFlag().equals(MesConstants.MES_MATERIAL_BIND_FLAG_NO)) {
MesOrderBind queryOrderBind = new MesOrderBind(); MesOrderBind queryOrderBind = new MesOrderBind();
queryOrderBind.setPurchaseOrderId(purchaseOrderId); queryOrderBind.setPurchaseOrderId(purchaseOrderId);
List<MesOrderBind> mesOrderBinds = mesOrderBindMapper.selectMesOrderBindList(queryOrderBind); List<MesOrderBind> mesOrderBinds = mesOrderBindMapper.selectMesOrderBindList(queryOrderBind);
@ -187,6 +190,32 @@ public class MesBaseBarcodeInfoServiceImpl implements IMesBaseBarcodeInfoService
} }
/**
*
* @param mesBaseBarcodeInfo
*/
@Override
public int generateNoPurchaseRawBarcode(MesBaseBarcodeInfo mesBaseBarcodeInfo) {
Date currentDate = new Date();
String userName = SecurityUtils.getUsername();
BigDecimal barcodeAmount = mesBaseBarcodeInfo.getBarcodeAmount();
List<MesBaseBarcodeInfo> toInsertedBarcodeInfos = new ArrayList<>();
MesBaseBarcodeInfo toInsertedBarcodeInfo;
String batchCode = Seq.getId(Seq.mesBatchCodeSeqType, Seq.mesBatchCodeCode);
for (long i = 0; i < barcodeAmount.intValue(); i++) {
// 生成数量条的不同条码内容
toInsertedBarcodeInfo = getInsertedBarcodeInfo(mesBaseBarcodeInfo, batchCode, userName, currentDate);
toInsertedBarcodeInfo.setSafeFlag(MesConstants.MES_ORDER_BIND_SAFE_FLAG_YES);
toInsertedBarcodeInfos.add(toInsertedBarcodeInfo);
}
return mesBaseBarcodeInfoMapper.batchMesBaseBarcodeInfo(toInsertedBarcodeInfos);
}
public void generateProductBarcode(MesBaseBarcodeInfo mesBaseBarcodeInfo) { public void generateProductBarcode(MesBaseBarcodeInfo mesBaseBarcodeInfo) {
String planCode = mesBaseBarcodeInfo.getPlanCode(); String planCode = mesBaseBarcodeInfo.getPlanCode();
String planDetailCode = mesBaseBarcodeInfo.getPlanDetailCode(); String planDetailCode = mesBaseBarcodeInfo.getPlanDetailCode();
@ -199,11 +228,22 @@ public class MesBaseBarcodeInfoServiceImpl implements IMesBaseBarcodeInfoService
throw new ServiceException("此计划明细已经生成条码,不能重复生成"); throw new ServiceException("此计划明细已经生成条码,不能重复生成");
} }
MesProductPlanDetail mesProductPlanDetail = mesProductPlanDetailMapper.selectMesProductPlanDetailByPlanDetailCode(planDetailCode);
if (mesProductPlanDetail == null) {
throw new ServiceException("此生产任务明细不存在");
}
if (!mesProductPlanDetail.getPlanDetailStatus().equals(MesConstants.MES_PRODUCT_PLAN_DETAIL_STATUS_FINISH) &&
!mesProductPlanDetail.getPlanDetailStatus().equals(MesConstants.MES_PRODUCT_PLAN_DETAIL_STATUS_ABNORMAL_FINISH)) {
throw new ServiceException("此生产任务明细还未完成,不能打印条码");
}
MesProductPlan productPlan = mesProductPlanMapper.selectOnlyMesProductPlanByPlanCode(planCode); MesProductPlan productPlan = mesProductPlanMapper.selectOnlyMesProductPlanByPlanCode(planCode);
if(productPlan == null){ if (productPlan == null) {
throw new ServiceException("此生产任务不存在"); throw new ServiceException("此生产任务不存在");
} }
Date currentDate = new Date(); Date currentDate = new Date();
String barcode = Seq.getId(Seq.mesCompBarcodeSeqType, Seq.mesCompBarcodeCode); String barcode = Seq.getId(Seq.mesCompBarcodeSeqType, Seq.mesCompBarcodeCode);
mesBaseBarcodeInfo.setBatchCode(barcode);// 成品的批次代码 == 条码内容 mesBaseBarcodeInfo.setBatchCode(barcode);// 成品的批次代码 == 条码内容

@ -354,6 +354,11 @@ public class MesProductPlanServiceImpl implements IMesProductPlanService {
} }
} }
String barcodeType = baseBarcodeInfo.getBarcodeType();
if(!barcodeType.equals(MesConstants.MES_BARCODE_TYPE_RAW)){
throw new ServiceException("此条码为非原材料条码");
}
String userName = SecurityUtils.getUsername(); String userName = SecurityUtils.getUsername();
Date currentDate = new Date(); Date currentDate = new Date();
MesMaterialCheckResult mesMaterialCheckResult = mesMaterialCheckResultMapper. MesMaterialCheckResult mesMaterialCheckResult = mesMaterialCheckResultMapper.

@ -348,4 +348,14 @@
left join qms_check_result qcr on bbi.batch_code = qcr.material_batch left join qms_check_result qcr on bbi.batch_code = qcr.material_batch
where bbi.barcode_id = #{barcodeId} where bbi.barcode_id = #{barcodeId}
</select> </select>
<insert id="batchMesBaseBarcodeInfo">
INSERT INTO mes_base_barcode_info (batch_flag,barcode_type,barcode_info,batch_code,material_id,manufacturer_id,amount,purchase_order_id,po_no,production_date,accepted_date,last_outstock_date,plan_code,plan_detail_code,safe_flag,sale_order_id,saleorder_code,project_no,serial_number,remark,bind_status,update_by,update_time) VALUES
<foreach item="item" index="index" collection="list" separator=",">
( #{item.batchFlag}, #{item.barcodeType}, #{item.barcodeInfo}, #{item.batchCode}, #{item.materialId}, #{item.manufacturerId}, #{item.amount}, #{item.purchaseOrderId}, #{item.poNo}, #{item.productionDate}, #{item.acceptedDate}, #{item.lastOutstockDate}, #{item.planCode},#{item.planDetailCode}, #{item.safeFlag},#{item.saleOrderId}, #{item.saleorderCode},#{item.projectNo}, #{item.serialNumber},#{item.remark}, #{item.bindStatus},#{item.updateBy}, #{item.updateTime})
</foreach>
</insert>
</mapper> </mapper>

@ -149,4 +149,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</where> </where>
order by mppd.plan_detail_id desc limit 1 order by mppd.plan_detail_id desc limit 1
</select> </select>
<select id="selectMesProductPlanDetailByPlanDetailCode" parameterType="String" resultMap="MesProductPlanDetailResult">
<include refid="selectMesProductPlanDetailVo"/>
where plan_detail_code = #{planDetailCode}
</select>
</mapper> </mapper>

@ -127,3 +127,14 @@ export function addProductBarcode(data) {
data: data data: data
}) })
} }
// 无采购订单新增原材料条码信息
export function addNoPurchaseBarcode(data) {
return request({
url: '/mes/barcode/addNoPurchaseBarcode',
method: 'post',
data: data
})
}

@ -208,7 +208,7 @@
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button> <el-button type="primary" @click="submitForm"> </el-button>
<el-busubmittton @click="cancel"> </el-busubmittton> <el-button @click="cancel"> </el-button>
</div> </div>
</el-dialog> </el-dialog>
@ -341,11 +341,12 @@ export default {
batchPrintBtnDisabled: false, batchPrintBtnDisabled: false,
}; };
}, },
created() { mounted() {
this.addBarcodeBtnVisible = false; this.addBarcodeBtnVisible = false;
this.getData(); this.getData();
this.getList(); this.getList();
}, },
props: { props: {
defineData: { defineData: {
type: Object, type: Object,

@ -57,23 +57,22 @@
icon="el-icon-plus" icon="el-icon-plus"
size="mini" size="mini"
@click="handleInternalAdd" @click="handleInternalAdd"
v-hasPermi="['mes:barcode:add']" v-hasPermi="['mes:barcode:internalAdd']"
>生产新增 >生产新增
</el-button> </el-button>
</el-col> </el-col>
<!-- <el-col :span="1.5">--> <el-col :span="1.5">
<!-- <el-button--> <el-button
<!-- type="success"--> type="primary"
<!-- plain--> plain
<!-- icon="el-icon-edit"--> icon="el-icon-plus"
<!-- size="mini"--> size="mini"
<!-- :disabled="single"--> @click="handleNoPurchaseAdd"
<!-- @click="handleUpdate"--> v-hasPermi="['mes:barcode:noPurchaseAdd']"
<!-- v-hasPermi="['mes:barcode:edit']"--> >无采购订单新增
<!-- >修改--> </el-button>
<!-- </el-button>--> </el-col>
<!-- </el-col>-->
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
@ -347,7 +346,7 @@
<!-- 添加采购订单对话框 --> <!-- 添加采购订单对话框 -->
<el-dialog title="选择采购订单信息" :visible.sync="purchaseOrderOpen" append-to-body> <el-dialog title="选择采购订单信息" :visible.sync="purchaseOrderOpen" append-to-body>
<add-purchaseOrder @selection="handleSelection" ref="purchaseOrderRef"></add-purchaseOrder> <add-purchaseOrder ref="purchaseOrderRef" v-if="purchaseOrderOpen"></add-purchaseOrder>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitPurchaseOrderForm"> </el-button> <el-button type="primary" @click="submitPurchaseOrderForm"> </el-button>
<el-button @click="purchaseOrderOpen = false"> </el-button> <el-button @click="purchaseOrderOpen = false"> </el-button>
@ -402,6 +401,98 @@
<el-button @click="cancelInternal"> </el-button> <el-button @click="cancelInternal"> </el-button>
</div> </div>
</el-dialog> </el-dialog>
<!-- 无采购订单的原材料条码信息对话框 -->
<el-dialog :title="title" :visible.sync="noPurchaseOpen" width="500px" append-to-body>
<el-form ref="noPurchaseForm" :model="noPurchaseForm" :rules="noPurchaseRules" label-width="100px">
<el-form-item label="物料ID" prop="materialId" v-if="false">
<el-input v-model="noPurchaseForm.materialId" placeholder="请输入物料ID"/>
</el-form-item>
<el-form-item label="物料编码" prop="materialCode">
<el-input v-model="noPurchaseForm.materialCode" suffix-icon="el-icon-search" readonly @click.native="handleSelectMaterial" />
</el-form-item>
<el-form-item label="物料名称" prop="materialName">
<el-input v-model="noPurchaseForm.materialName" readonly/>
</el-form-item>
<el-form-item label="批次标识" prop="batchFlag">
<el-radio-group v-model="noPurchaseForm.batchFlag" disabled>
<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>
<!-- <el-form-item label="供应商ID" prop="manufacturerId">-->
<!-- <el-input v-model="form.manufacturerId" placeholder="请输入供应商ID" />-->
<!-- </el-form-item>-->
<el-form-item prop="amount" v-if="batchVisible">
<span slot="label">
<el-tooltip content="每个物料条码中包含的数量一袋螺丝有60个" placement="top">
<i class="el-icon-question"></i>
</el-tooltip>
批次数量
</span>
<el-input v-model="noPurchaseForm.amount" placeholder="请在物料信息中维护" disabled/>
</el-form-item>
<el-form-item prop="barcodeAmount">
<span slot="label">
<el-tooltip content="需要打印条码的数量如果需要贴10个条码则需要生成10个" placement="top">
<i class="el-icon-question"></i>
</el-tooltip>
条码数量
</span>
<el-input v-model="noPurchaseForm.barcodeAmount"/>
</el-form-item>
<el-form-item label="生产日期" prop="productionDate">
<el-date-picker clearable
v-model="noPurchaseForm.productionDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择生产日期">
</el-date-picker>
</el-form-item>
<el-form-item label="最晚出库日期" prop="lastOutstockDate">
<el-date-picker clearable
v-model="noPurchaseForm.lastOutstockDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择最晚出库日期">
</el-date-picker>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="noPurchaseForm.remark" type="textarea" placeholder="请输入内容"/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitNoPurchaseAddForm"> </el-button>
<el-button @click="cancelInternal"> </el-button>
</div>
</el-dialog>
<!-- 选择物料对话框 -->
<el-dialog title="选择物料信息" :visible.sync="selectMaterialVisible" append-to-body>
<select-material ref="selectMaterialRef" v-if="selectMaterialVisible"></select-material>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitSelectMaterialForm"> </el-button>
<el-button @click="selectMaterialVisible = false"> </el-button>
</div>
</el-dialog>
</div> </div>
</template> </template>
@ -409,15 +500,17 @@
import { import {
listBarcode, getBarcode, delBarcode, addBarcode, updateBarcode, listBarcode, getBarcode, delBarcode, addBarcode, updateBarcode,
printBarcodes, getMaterialInfoByErpId, selectProductBarcodeInfoByBarcodeInfo, printBarcodes, getMaterialInfoByErpId, selectProductBarcodeInfoByBarcodeInfo,
addInternalBarcode, regenerateBarcode addInternalBarcode, regenerateBarcode,addNoPurchaseBarcode
} from "@/api/mes/barcode"; } from "@/api/mes/barcode";
import addPurchaseOrder from '@//views/mes/purchaseOrder/addPurchaseOrder.vue'; import addPurchaseOrder from '@//views/mes/purchaseOrder/addPurchaseOrder.vue';
import selectMaterial from '@//views/mes/materialinfo/selectMaterial.vue';
export default { export default {
name: "Barcode", name: "Barcode",
dicts: ['bind_status', 'active_flag', 'barcode_type', 'mes_safe_flag', 'mes_print_flag'], dicts: ['bind_status', 'active_flag', 'barcode_type', 'mes_safe_flag', 'mes_print_flag'],
components: { components: {
'add-purchaseOrder': addPurchaseOrder 'add-purchaseOrder': addPurchaseOrder,
'select-material': selectMaterial
}, },
data() { data() {
return { return {
@ -440,6 +533,9 @@ export default {
barcodeList: [], barcodeList: [],
// //
purchaseOrderOpen: false, purchaseOrderOpen: false,
//
selectMaterialVisible:false,
// //
title: "", title: "",
// //
@ -489,6 +585,9 @@ export default {
amount: [ amount: [
{required: true, message: "批次数量不能为空", trigger: "change"} {required: true, message: "批次数量不能为空", trigger: "change"}
], ],
barcodeAmount: [
{required: true, message: "条码数量不能为空", trigger: "change"}
],
barcodeType: [ barcodeType: [
{required: true, message: "条码类型不能为空", trigger: "change"} {required: true, message: "条码类型不能为空", trigger: "change"}
], ],
@ -553,6 +652,25 @@ export default {
], ],
}, },
noPurchaseOpen: false,
//
noPurchaseForm: {},
//
noPurchaseRules: {
batchFlag: [
{required: true, message: "批次标识不能为空", trigger: "blur"}
],
amount: [
{required: true, message: "批次数量不能为空", trigger: "change"}
],
barcodeAmount: [
{required: true, message: "条码数量不能为空", trigger: "change"}
],
materialCode: [
{required: true, message: "物料不能为空", trigger: "blur"}
],
},
batchPrintBtnDisabled: false batchPrintBtnDisabled: false
}; };
}, },
@ -821,6 +939,10 @@ export default {
}, },
selectProductBarcodeInfoByBarcodeInfo() { selectProductBarcodeInfoByBarcodeInfo() {
if(this.internalForm.productBarcode == null || this.internalForm.productBarcode === ''){
return;
}
selectProductBarcodeInfoByBarcodeInfo(this.internalForm.productBarcode).then(response => { selectProductBarcodeInfoByBarcodeInfo(this.internalForm.productBarcode).then(response => {
if (response.data == null) { if (response.data == null) {
this.$modal.msgError("成品信息不存在"); this.$modal.msgError("成品信息不存在");
@ -859,6 +981,90 @@ export default {
this.resetInternal(); this.resetInternal();
}, },
//
resetNoPurchase() {
this.noPurchaseForm = {
barcodeId: null,
printTime: null,
printPerson: null,
batchFlag: null,
barcodeType: '1',
barcodeInfo: null,
batchCode: null,
palletInfoCode: null,
materialId: null,
manufacturerId: null,
amount: null,
barcodeAmount: null,
machineName: null,
printNumber: null,
poNo: null,
productionDate: null,
acceptedDate: null,
lastOutstockDate: null,
planCode: null,
planDetailCode: null,
saleOrderId: null,
saleorderCode: null,
projectNo: null,
serialNumber: null,
remark: null,
bindStatus: null,
bindBy: null,
bindTime: null,
updateBy: null,
updateTime: null
};
this.resetForm("noPurchaseForm");
},
/** 无采购订单新增按钮操作 */
handleNoPurchaseAdd() {
this.reset();
this.noPurchaseOpen = true;
this.title = "添加原材料条码信息";
},
handleSelectMaterial(){
this.selectMaterialVisible = true;
},
/** 提交选择物料按钮 */
submitSelectMaterialForm() {
let selectedRow = this.$refs.selectMaterialRef.selectedRow;
this.noPurchaseForm.barcodeType = '1';//1,2,3,4
this.noPurchaseForm.materialId = selectedRow.materialId;
this.noPurchaseForm.materialCode = selectedRow.materialCode;
this.noPurchaseForm.materialName = selectedRow.materialName;
this.noPurchaseForm.batchFlag = selectedRow.batchFlag;
if (this.noPurchaseForm.batchFlag === "0") {
this.batchVisible = false;
} else {
this.noPurchaseForm.amount = selectedRow.batchAmount;
this.batchVisible = true;
}
this.selectMaterialVisible = false;
},
/** 无采购订单新增提交按钮 */
submitNoPurchaseAddForm() {
this.$refs["noPurchaseForm"].validate(valid => {
if (valid) {
addNoPurchaseBarcode(this.noPurchaseForm).then(response => {
this.$modal.msgSuccess("新增成功");
this.noPurchaseOpen = false;
this.getList();
});
}
});
},
} }
}; };
</script> </script>

@ -0,0 +1,187 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="物料编码" prop="materialCode">
<el-input
v-model="queryParams.materialCode"
placeholder="请输入物料编码"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="物料名称" prop="materialName">
<el-input
v-model="queryParams.materialName"
placeholder="请输入物料名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="物料类型" prop="materialTypeId">
<el-input
v-model="queryParams.materialTypeId"
placeholder="请输入物料类型"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="批次标识" prop="batchFlag">
<el-select v-model="queryParams.batchFlag" 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>
</el-form-item>
</el-form>
<el-table v-loading="loading" :data="materialinfoList" @selection-change="handleSelectionChange"
@row-click="handleRowClick"
highlight-current-row>
<el-table-column type="selection" width="55" align="center" v-if="false" />
<el-table-column label="物料ID" align="center" prop="materialId" v-if="false"/>
<el-table-column label="物料编码" align="center" prop="materialCode"/>
<el-table-column label="物料名称" align="center" prop="materialName"/>
<el-table-column label="物料大类" align="center" prop="materialCategories">
<template slot-scope="scope">
<dict-tag :options="dict.type.material_categories" :value="scope.row.materialCategories"/>
</template>
</el-table-column>
<el-table-column label="物料类型" align="center" prop="materialTypeName"/>
<el-table-column label="常备物料" align="center" prop="bindFlag">
<template slot-scope="scope">
<dict-tag :options="dict.type.mes_material_bind_flag" :value="scope.row.bindFlag"/>
</template>
</el-table-column>
<el-table-column label="批次标识" align="center" prop="batchFlag">
<template slot-scope="scope">
<dict-tag :options="dict.type.active_flag" :value="scope.row.batchFlag"/>
</template>
</el-table-column>
<el-table-column label="批次数量" align="center" prop="batchAmount"/>
<el-table-column label="物料规格" align="center" prop="materialSpec"/>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</div>
</template>
<script>
import {
listMaterialinfo,
} from "@/api/mes/materialinfo";
export default {
name: "Materialinfo",
dicts: ['active_flag', 'material_categories','mes_material_bind_flag'],
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
baseMaterialTypeOptions: [],
//
materialinfoList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
erpId: null,
materialCode: null,
oldMaterialCode: null,
materialName: null,
materialCategories: null,
materialSubclass: null,
materialTypeId: null,
batchFlag: null,
materialUnitId: null,
materialUnit: null,
materialMatkl: null,
materialSpec: null,
netWeight: null,
grossWeight: null,
factoryId: null,
createOrgId: null,
useOrgId: null,
prodlineId: null,
activeFlag: null,
deletedFlag: null,
approveDate: null,
erpModifyDate: null
},
};
},
created() {
this.getList();
},
methods: {
/** 查询物料信息列表 */
getList() {
this.loading = true;
listMaterialinfo(this.queryParams).then(response => {
this.materialinfoList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.materialId)
this.single = selection.length !== 1
this.multiple = !selection.length
},
//
handleRowClick(row) {
this.selectedRow = row
},
}
};
</script>
Loading…
Cancel
Save