调整部分数据不再写入数据库
This commit is contained in:
parent
a9b5cc21a7
commit
9284906254
@ -103,6 +103,7 @@ public interface ErrorCodeConstants {
|
|||||||
ErrorCode PURCHASE_ORDER_MAKE_DETAIL_NOT_EXISTS = new ErrorCode(1_008_008, "采购单明细不存在");
|
ErrorCode PURCHASE_ORDER_MAKE_DETAIL_NOT_EXISTS = new ErrorCode(1_008_008, "采购单明细不存在");
|
||||||
ErrorCode PURCHASE_ORDER_MAKE_DETAIL_IS_EXISTS = new ErrorCode(1_008_009, "存在物料清单已生成采购订单,请刷新界面!");
|
ErrorCode PURCHASE_ORDER_MAKE_DETAIL_IS_EXISTS = new ErrorCode(1_008_009, "存在物料清单已生成采购订单,请刷新界面!");
|
||||||
ErrorCode PURCHASE_ORDER_MAKE_DETAIL_IS_STORAGE = new ErrorCode(1_008_010, "存在物料清单已转库存,请刷新界面!");
|
ErrorCode PURCHASE_ORDER_MAKE_DETAIL_IS_STORAGE = new ErrorCode(1_008_010, "存在物料清单已转库存,请刷新界面!");
|
||||||
|
ErrorCode PURCHASE_ORDER_MAKE_DETAIL_MATERIAL_NOT_EXISTS = new ErrorCode(1_008_011, "物料数据不能为空,请选择物料后重试!");
|
||||||
/************生产管理***********/
|
/************生产管理***********/
|
||||||
ErrorCode TASK_DISPATCH_NOT_EXISTS = new ErrorCode(1_009_001, "派工单不存在");
|
ErrorCode TASK_DISPATCH_NOT_EXISTS = new ErrorCode(1_009_001, "派工单不存在");
|
||||||
ErrorCode TASK_REPORT_NOT_EXISTS = new ErrorCode(1_009_002, "任务报工不存在");
|
ErrorCode TASK_REPORT_NOT_EXISTS = new ErrorCode(1_009_002, "任务报工不存在");
|
||||||
|
@ -90,6 +90,8 @@ public class MaterialDO extends TenantBaseDO {
|
|||||||
* 材质id
|
* 材质id
|
||||||
*/
|
*/
|
||||||
private Long compositionId;
|
private Long compositionId;
|
||||||
|
@TableField(exist = false)
|
||||||
|
private String compositionName;
|
||||||
/**
|
/**
|
||||||
* 销项税率或进项税率 (%)
|
* 销项税率或进项税率 (%)
|
||||||
*/
|
*/
|
||||||
|
@ -86,6 +86,7 @@ public class MaterialPlanBoomDO extends BaseDO {
|
|||||||
/**
|
/**
|
||||||
* 物料id
|
* 物料id
|
||||||
*/
|
*/
|
||||||
|
@TableField(exist = false)
|
||||||
private Long materialId;
|
private Long materialId;
|
||||||
/**
|
/**
|
||||||
* 零件重量
|
* 零件重量
|
||||||
|
@ -154,6 +154,7 @@ public class PurchaseOrderMakeDetailDO extends BaseDO {
|
|||||||
/**
|
/**
|
||||||
* 物料id
|
* 物料id
|
||||||
*/
|
*/
|
||||||
|
@TableField(exist = false)
|
||||||
private Long materialId;
|
private Long materialId;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|||||||
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
|
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
|
||||||
import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX;
|
import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX;
|
||||||
import com.chanko.yunxi.mes.module.heli.controller.admin.material.vo.MaterialPageReqVO;
|
import com.chanko.yunxi.mes.module.heli.controller.admin.material.vo.MaterialPageReqVO;
|
||||||
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.composition.CompositionDO;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.material.MaterialDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.material.MaterialDO;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.pn.PnDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.pn.PnDO;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.supplier.SupplierDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.supplier.SupplierDO;
|
||||||
@ -31,6 +32,15 @@ public interface MaterialMapper extends BaseMapperX<MaterialDO> {
|
|||||||
query.eq(code != null, MaterialDO::getCode, code);
|
query.eq(code != null, MaterialDO::getCode, code);
|
||||||
return selectOne( query);
|
return selectOne( query);
|
||||||
}
|
}
|
||||||
|
//材质为空时查不出来数据注释
|
||||||
|
// default MaterialDO selectById(Long id) {
|
||||||
|
// MPJLambdaWrapper<MaterialDO> query = new MPJLambdaWrapper<>();
|
||||||
|
// query.selectAll(MaterialDO.class)
|
||||||
|
// .select("c.name as compositionName")
|
||||||
|
// .leftJoin(CompositionDO.class,"c",CompositionDO::getId,MaterialDO::getCompositionId);
|
||||||
|
// query.eq(MaterialDO::getId, id);
|
||||||
|
// return selectOne( query);
|
||||||
|
// }
|
||||||
|
|
||||||
default MaterialDO selectMaterial(String code) {
|
default MaterialDO selectMaterial(String code) {
|
||||||
MPJLambdaWrapper<MaterialDO> query = new MPJLambdaWrapper<>();
|
MPJLambdaWrapper<MaterialDO> query = new MPJLambdaWrapper<>();
|
||||||
|
@ -38,10 +38,9 @@ public interface PurchaseOrderMakeDetailMapper extends BaseMapperX<PurchaseOrder
|
|||||||
default PageResult<PurchaseOrderMakeDetailDO> selectPage(PurchaseOrderMakeDetailPageReqVO reqVO) {
|
default PageResult<PurchaseOrderMakeDetailDO> selectPage(PurchaseOrderMakeDetailPageReqVO reqVO) {
|
||||||
MPJLambdaWrapper<PurchaseOrderMakeDetailDO> query = new MPJLambdaWrapper<>();
|
MPJLambdaWrapper<PurchaseOrderMakeDetailDO> query = new MPJLambdaWrapper<>();
|
||||||
query.selectAll(PurchaseOrderMakeDetailDO.class)
|
query.selectAll(PurchaseOrderMakeDetailDO.class)
|
||||||
.select("b.material_name as boomName","m.code as boomCode","b.spec as boomSpec","b.unit as boomUnit")
|
.select("b.material_name as boomName","b.spec as boomSpec","b.unit as boomUnit")
|
||||||
// .select("pom.purchase_no as purchaseNo")
|
// .select("pom.purchase_no as purchaseNo")
|
||||||
.leftJoin(ProcessBomDetailDO.class,"b",ProcessBomDetailDO::getId,PurchaseOrderMakeDetailDO::getBoomDetailId)
|
.leftJoin(ProcessBomDetailDO.class,"b",ProcessBomDetailDO::getId,PurchaseOrderMakeDetailDO::getBoomDetailId)
|
||||||
.leftJoin(MaterialDO.class,"m",MaterialDO::getId,PurchaseOrderMakeDetailDO::getMaterialId)
|
|
||||||
.leftJoin(ProjectOrderSubDO.class,"pos",ProjectOrderSubDO::getId,PurchaseOrderMakeDetailDO::getProjectPlanSubId)
|
.leftJoin(ProjectOrderSubDO.class,"pos",ProjectOrderSubDO::getId,PurchaseOrderMakeDetailDO::getProjectPlanSubId)
|
||||||
.leftJoin(ProjectOrderDO.class,"po",ProjectOrderDO::getId, ProjectOrderSubDO::getProjectOrderId)
|
.leftJoin(ProjectOrderDO.class,"po",ProjectOrderDO::getId, ProjectOrderSubDO::getProjectOrderId)
|
||||||
.leftJoin(PurchaseOrderMakeDO.class,"pom",PurchaseOrderMakeDO::getId,PurchaseOrderMakeDetailDO::getPurchaseOrderId)
|
.leftJoin(PurchaseOrderMakeDO.class,"pom",PurchaseOrderMakeDO::getId,PurchaseOrderMakeDetailDO::getPurchaseOrderId)
|
||||||
|
@ -403,7 +403,7 @@ public class ProcessBomServiceImpl implements ProcessBomService {
|
|||||||
//不论怎么样,都要校验这次的数据它图号是否唯一、非标准件的名称是否重复,规格是否为空
|
//不论怎么样,都要校验这次的数据它图号是否唯一、非标准件的名称是否重复,规格是否为空
|
||||||
if (CollUtil.isNotEmpty(processBomDetails)){
|
if (CollUtil.isNotEmpty(processBomDetails)){
|
||||||
//校验这次的数据它图号是否唯一
|
//校验这次的数据它图号是否唯一
|
||||||
Map<String, List<ProcessBomDetailDO>> groupedByBluePrintfNo = processBomDetails.stream().collect(Collectors.groupingBy(vo -> vo.getBlueprintNo() == null ? "NULL" : vo.getBlueprintNo()));
|
Map<String, List<ProcessBomDetailDO>> groupedByBluePrintfNo = processBomDetails.stream().filter(e -> e.getDeleted() == false).collect(Collectors.groupingBy(vo -> vo.getBlueprintNo() == null ? "NULL" : vo.getBlueprintNo()));
|
||||||
groupedByBluePrintfNo.forEach((printNo,list)->{
|
groupedByBluePrintfNo.forEach((printNo,list)->{
|
||||||
if (printNo.equals("NULL")){
|
if (printNo.equals("NULL")){
|
||||||
throw exception(PROCESS_BOM_DETAIL_BLUE_PRINT_NO_NOT_EXISTS);
|
throw exception(PROCESS_BOM_DETAIL_BLUE_PRINT_NO_NOT_EXISTS);
|
||||||
@ -439,6 +439,14 @@ public class ProcessBomServiceImpl implements ProcessBomService {
|
|||||||
// processBomDetail.setMaterialCode("");
|
// processBomDetail.setMaterialCode("");
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
|
}else {
|
||||||
|
if(operateTypeEnum == OperateTypeEnum.SUBMIT){
|
||||||
|
if (processBomDetail.getSpec() == null){
|
||||||
|
throw exception(new ErrorCode(1_006_9998,processBomDetail.getMaterialName()+"规格型号不能为空,请确认!"));
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,11 +1,15 @@
|
|||||||
package com.chanko.yunxi.mes.module.heli.service.purchaseordermakedetail;
|
package com.chanko.yunxi.mes.module.heli.service.purchaseordermakedetail;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.composition.CompositionDO;
|
||||||
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.material.MaterialDO;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseorder.PurchaseOrderDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseorder.PurchaseOrderDO;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseordermake.PurchaseOrderMakeDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseordermake.PurchaseOrderMakeDO;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseorderno.PurchaseOrderNoDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseorderno.PurchaseOrderNoDO;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseordernodetail.PurchaseOrderNoDetailDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseordernodetail.PurchaseOrderNoDetailDO;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.serialnumber.SerialNumberDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.serialnumber.SerialNumberDO;
|
||||||
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.composition.CompositionMapper;
|
||||||
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.material.MaterialMapper;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.mysql.purchaseordermake.PurchaseOrderMakeMapper;
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.purchaseordermake.PurchaseOrderMakeMapper;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.mysql.purchaseorderno.PurchaseOrderNoMapper;
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.purchaseorderno.PurchaseOrderNoMapper;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.mysql.purchaseordernodetail.PurchaseOrderNoDetailMapper;
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.purchaseordernodetail.PurchaseOrderNoDetailMapper;
|
||||||
@ -53,7 +57,10 @@ public class PurchaseOrderMakeDetailServiceImpl implements PurchaseOrderMakeDeta
|
|||||||
private PurchaseOrderNoDetailMapper purchaseOrderNoDetailMapper;
|
private PurchaseOrderNoDetailMapper purchaseOrderNoDetailMapper;
|
||||||
@Resource
|
@Resource
|
||||||
private PurchaseOrderMakeMapper purchaseOrderMakeMapper;
|
private PurchaseOrderMakeMapper purchaseOrderMakeMapper;
|
||||||
|
@Resource
|
||||||
|
private MaterialMapper materialMapper;
|
||||||
|
@Resource
|
||||||
|
private CompositionMapper compositionMapper;
|
||||||
@Override
|
@Override
|
||||||
public Long createPurchaseOrderMakeDetail(PurchaseOrderMakeDetailSaveReqVO createReqVO) {
|
public Long createPurchaseOrderMakeDetail(PurchaseOrderMakeDetailSaveReqVO createReqVO) {
|
||||||
// 插入
|
// 插入
|
||||||
@ -84,16 +91,39 @@ public class PurchaseOrderMakeDetailServiceImpl implements PurchaseOrderMakeDeta
|
|||||||
purchaseOrderNoMapper.insert(purchaseOrderNoDO);
|
purchaseOrderNoMapper.insert(purchaseOrderNoDO);
|
||||||
List<PurchaseOrderNoDetailDO> insertList =new ArrayList<>();
|
List<PurchaseOrderNoDetailDO> insertList =new ArrayList<>();
|
||||||
HashMap<Long,PurchaseOrderMakeDO> insertMap = new HashMap<>();
|
HashMap<Long,PurchaseOrderMakeDO> insertMap = new HashMap<>();
|
||||||
|
HashMap<Long, MaterialDO> insertMaterialMap = new HashMap<>();
|
||||||
|
HashMap<Long ,CompositionDO> compositionDOHashMap = new HashMap<>();
|
||||||
for (PurchaseOrderMakeDetailDO pmd : updateList) {
|
for (PurchaseOrderMakeDetailDO pmd : updateList) {
|
||||||
|
|
||||||
PurchaseOrderNoDetailDO pd = new PurchaseOrderNoDetailDO();
|
PurchaseOrderNoDetailDO pd = new PurchaseOrderNoDetailDO();
|
||||||
pd.setMakeDetailId(pmd.getId());
|
pd.setMakeDetailId(pmd.getId());
|
||||||
pd.setPurchaseOrderId(purchaseOrderNoDO.getId());
|
pd.setPurchaseOrderId(purchaseOrderNoDO.getId());
|
||||||
pd.setBoomDetailId(pmd.getBoomDetailId());
|
pd.setBoomDetailId(pmd.getBoomDetailId());
|
||||||
pd.setBoomName(pmd.getBoomName());
|
if (pd.getMakeDetailId() != null) {
|
||||||
pd.setBoomSpec(pmd.getBoomSpec());
|
MaterialDO materialDO = insertMaterialMap.get(pmd.getMaterialId());
|
||||||
pd.setBoomUnit(pmd.getBoomUnit());
|
|
||||||
pd.setComposition(pmd.getComposition());
|
if (materialDO == null) {
|
||||||
|
materialDO = materialMapper.selectById(pmd.getMaterialId());
|
||||||
|
insertMaterialMap.put(pd.getMakeDetailId(), materialDO);
|
||||||
|
}
|
||||||
|
if (materialDO.getCompositionId() != null) {
|
||||||
|
CompositionDO compositionDO = compositionDOHashMap.get(materialDO.getCompositionId());
|
||||||
|
if (compositionDO == null) {
|
||||||
|
compositionDO = compositionMapper.selectById(materialDO.getCompositionId());
|
||||||
|
compositionDOHashMap.put(materialDO.getCompositionId(), compositionDO);
|
||||||
|
}
|
||||||
|
pd.setComposition(compositionDO == null ?"":compositionDO.getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
pd.setBoomName(materialDO.getName());
|
||||||
|
pd.setMaterialId(materialDO.getId());
|
||||||
|
pd.setBoomSpec(materialDO.getSpec());
|
||||||
|
pd.setBoomUnit(materialDO.getUnit());
|
||||||
|
|
||||||
|
}else {
|
||||||
|
throw exception(PURCHASE_ORDER_MAKE_DETAIL_MATERIAL_NOT_EXISTS);
|
||||||
|
}
|
||||||
|
|
||||||
pd.setPurchaseAmount(pmd.getPurchaseAmount());
|
pd.setPurchaseAmount(pmd.getPurchaseAmount());
|
||||||
pd.setEstimatedPrice(pmd.getEstimatedPrice());
|
pd.setEstimatedPrice(pmd.getEstimatedPrice());
|
||||||
pd.setArriveTime(pmd.getArriveTime());
|
pd.setArriveTime(pmd.getArriveTime());
|
||||||
@ -143,12 +173,12 @@ public class PurchaseOrderMakeDetailServiceImpl implements PurchaseOrderMakeDeta
|
|||||||
validatePurchaseOrderMakeDetailExists(updateReqVO.getId());
|
validatePurchaseOrderMakeDetailExists(updateReqVO.getId());
|
||||||
// 更新
|
// 更新
|
||||||
PurchaseOrderMakeDetailDO updateObj = BeanUtils.toBean(updateReqVO, PurchaseOrderMakeDetailDO.class);
|
PurchaseOrderMakeDetailDO updateObj = BeanUtils.toBean(updateReqVO, PurchaseOrderMakeDetailDO.class);
|
||||||
if (updateObj.getMaterialId() == null){
|
// if (updateObj.getMaterialId() == null){
|
||||||
purchaseOrderMakeDetailMapper.clearMaterialId(updateObj.getId());
|
// purchaseOrderMakeDetailMapper.clearMaterialId(updateObj.getId());
|
||||||
|
// purchaseOrderMakeDetailMapper.updateById(updateObj);
|
||||||
|
// }else {
|
||||||
purchaseOrderMakeDetailMapper.updateById(updateObj);
|
purchaseOrderMakeDetailMapper.updateById(updateObj);
|
||||||
}else {
|
// }
|
||||||
purchaseOrderMakeDetailMapper.updateById(updateObj);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -11,6 +11,7 @@ export interface MaterialPlanBoomVO {
|
|||||||
purchaseAmount:number
|
purchaseAmount:number
|
||||||
estimatedPrice:number
|
estimatedPrice:number
|
||||||
arriveTime:Date
|
arriveTime:Date
|
||||||
|
projectPurchaseOrderMakeDetailId:number
|
||||||
supplierId:number
|
supplierId:number
|
||||||
materialPlanBoomDOList:Array<MaterialPlanBoomVO>
|
materialPlanBoomDOList:Array<MaterialPlanBoomVO>
|
||||||
}
|
}
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
<el-input v-model="queryParams.projectCode" placeholder="请输入项目编号" clearable @keyup.enter="handleQuery" class="!w-240px" />
|
<el-input v-model="queryParams.projectCode" placeholder="请输入项目编号" clearable @keyup.enter="handleQuery" class="!w-240px" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="采购状态" prop="orderStatus">
|
<el-form-item label="采购状态" prop="orderStatus">
|
||||||
<el-select v-model="queryParams.orderStatus" placeholder="请选择标准件状态" class="!w-240px">
|
<el-select clearable v-model="queryParams.orderStatus" placeholder="请选择采购状态" class="!w-240px">
|
||||||
<el-option v-for="dict in getIntDictOptions(DICT_TYPE.HELI_PURCHASE_STATUS)" :key="dict.value" :label="dict.label" :value="dict.value" />
|
<el-option v-for="dict in getIntDictOptions(DICT_TYPE.HELI_PURCHASE_STATUS)" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -75,6 +75,7 @@
|
|||||||
:remote-method="e => remoteMethod(e,scope.row)"
|
:remote-method="e => remoteMethod(e,scope.row)"
|
||||||
remote-show-suffix
|
remote-show-suffix
|
||||||
remote
|
remote
|
||||||
|
@click="remoteMethod(scope.row.boomCode,scope.row)"
|
||||||
:disabled="scope.row.orderStatus == 2"
|
:disabled="scope.row.orderStatus == 2"
|
||||||
clearable
|
clearable
|
||||||
reserve-keyword
|
reserve-keyword
|
||||||
@ -107,6 +108,7 @@
|
|||||||
v-model="scope.row.supplierId"
|
v-model="scope.row.supplierId"
|
||||||
size="large"
|
size="large"
|
||||||
disabled
|
disabled
|
||||||
|
filterable
|
||||||
style="width: 165 px"
|
style="width: 165 px"
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
@ -295,7 +297,7 @@ const changeSupp = async(e,row) => {
|
|||||||
// row.boomName = e.materialName;
|
// row.boomName = e.materialName;
|
||||||
// row.boomSpec = e.spec;
|
// row.boomSpec = e.spec;
|
||||||
// row.boomUnit = e.unit
|
// row.boomUnit = e.unit
|
||||||
await updateRows(row)
|
// await updateRows(row)
|
||||||
}else{
|
}else{
|
||||||
row.materialId = null;
|
row.materialId = null;
|
||||||
await updateRows(row)
|
await updateRows(row)
|
||||||
@ -320,7 +322,7 @@ const handleQuery = () => {
|
|||||||
const opearteForm = async(type) =>{
|
const opearteForm = async(type) =>{
|
||||||
loading.value = true;
|
loading.value = true;
|
||||||
if(type == 1){
|
if(type == 1){
|
||||||
router.push({ path: '/purchase/PurchaseOrder', query: { flush: 1 } })
|
router.push({ path: '/purchase/purchaseordernomanagement', query: { flush: 1 } })
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(ids.value != null && ids.value.length > 0){
|
if(ids.value != null && ids.value.length > 0){
|
||||||
@ -472,8 +474,8 @@ const handleExport = async () => {
|
|||||||
await message.exportConfirm()
|
await message.exportConfirm()
|
||||||
// 发起导出
|
// 发起导出
|
||||||
exportLoading.value = true
|
exportLoading.value = true
|
||||||
const data = await ProcessBomApi.exportProcessBom(queryParams)
|
// const data = await ProcessBomApi.exportProcessBom(queryParams)
|
||||||
download.excel(data, '工艺bom.xls')
|
// download.excel(data, '工艺bom.xls')
|
||||||
} catch {
|
} catch {
|
||||||
} finally {
|
} finally {
|
||||||
exportLoading.value = false
|
exportLoading.value = false
|
||||||
|
@ -28,7 +28,7 @@
|
|||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="采购状态" prop="mplanStatus">
|
<el-form-item label="采购状态" prop="mplanStatus">
|
||||||
<el-select v-model="queryParams.mplanStatus" placeholder="请选择标准件状态" class="!w-240px">
|
<el-select @change="e => clearItem(e)" v-model="queryParams.mplanStatus" placeholder="请选择标准件状态" class="!w-240px">
|
||||||
<el-option v-for="dict in getIntDictOptions(DICT_TYPE.HELI_STANDARD_BUY_TYPE)" :key="dict.value" :label="dict.label" :value="dict.value" />
|
<el-option v-for="dict in getIntDictOptions(DICT_TYPE.HELI_STANDARD_BUY_TYPE)" :key="dict.value" :label="dict.label" :value="dict.value" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -91,12 +91,6 @@
|
|||||||
<dict-tag :type="DICT_TYPE.HELI_MATERIAL_UNIT" :value="scope.row.matUnit" />
|
<dict-tag :type="DICT_TYPE.HELI_MATERIAL_UNIT" :value="scope.row.matUnit" />
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column align="center" prop="purchaseAmount" min-width="180" >
|
|
||||||
<template #header><span class="hl-table_header">*</span>采购数量</template>
|
|
||||||
<template #default="scope">
|
|
||||||
<el-input-number @blur="updateRow(1,scope.row)" v-model="scope.row.purchaseAmount" :precision="2" :step="0.01" />
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
<el-table-column label="物料编码" align="center" prop="matCode" min-width="180" >
|
<el-table-column label="物料编码" align="center" prop="matCode" min-width="180" >
|
||||||
|
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
@ -115,6 +109,7 @@
|
|||||||
v-model="scope.row.supplierId"
|
v-model="scope.row.supplierId"
|
||||||
size="large"
|
size="large"
|
||||||
clearable
|
clearable
|
||||||
|
filterable
|
||||||
@change="e => changeSupp(e,scope.row)"
|
@change="e => changeSupp(e,scope.row)"
|
||||||
style="width: 165 px"
|
style="width: 165 px"
|
||||||
>
|
>
|
||||||
@ -127,6 +122,12 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column align="center" prop="purchaseAmount" min-width="180" >
|
||||||
|
<template #header><span class="hl-table_header">*</span>采购数量</template>
|
||||||
|
<template #default="scope">
|
||||||
|
<el-input-number :disabled="scope.row.stat" @blur="updateRow(1,scope.row)" v-model="scope.row.purchaseAmount" :precision="2" :step="0.01" />
|
||||||
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column align="center" prop="estimatedPrice" min-width="180" >
|
<el-table-column align="center" prop="estimatedPrice" min-width="180" >
|
||||||
<template #header><span class="hl-table_header">*</span>预估总价</template>
|
<template #header><span class="hl-table_header">*</span>预估总价</template>
|
||||||
@ -134,7 +135,7 @@
|
|||||||
<el-input-number @blur="updateRow(3,scope.row)" v-model="scope.row.estimatedPrice" :precision="2" :step="0.01" />
|
<el-input-number @blur="updateRow(3,scope.row)" v-model="scope.row.estimatedPrice" :precision="2" :step="0.01" />
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column min-width="200px" align="center" fixed="right">
|
<el-table-column min-width="200px" align="center" >
|
||||||
<template #header><span class="hl-table_header">*</span>预计到货日期</template>
|
<template #header><span class="hl-table_header">*</span>预计到货日期</template>
|
||||||
<template #default="{ row, $index }">
|
<template #default="{ row, $index }">
|
||||||
<el-form-item :prop="`${$index}.arriveTime`" class="mb-0px!" >
|
<el-form-item :prop="`${$index}.arriveTime`" class="mb-0px!" >
|
||||||
@ -142,8 +143,13 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="状态" align="center" prop="mplanStatusName" min-width="80" />
|
|
||||||
<el-table-column label="采购单号" align="center" prop="purchaseNo" min-width="180" fixed="right"/>
|
<el-table-column label="采购单号" align="center" prop="purchaseNo" min-width="180" />
|
||||||
|
<el-table-column label="状态" align="center" prop="mplanStatus" min-width="90" >
|
||||||
|
<template #default="scope">
|
||||||
|
<dict-tag :type="DICT_TYPE.HELI_PROJECT_MATERIAL_PLAN_BOOM_STATUS" :value="scope.row.mplanStatus" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
<!-- 分页 -->
|
<!-- 分页 -->
|
||||||
<Pagination :total="total" v-model:page="queryParams.pageNo" v-model:limit="queryParams.pageSize" @pagination="getList" />
|
<Pagination :total="total" v-model:page="queryParams.pageNo" v-model:limit="queryParams.pageSize" @pagination="getList" />
|
||||||
@ -230,9 +236,10 @@ const getRowKeys=(row)=>{
|
|||||||
|
|
||||||
const handleSelectionChange = (selection) => {
|
const handleSelectionChange = (selection) => {
|
||||||
ids.value = selection;
|
ids.value = selection;
|
||||||
console.log(ids.value)
|
|
||||||
}
|
}
|
||||||
|
const clearItem = () =>{
|
||||||
|
multipleTable.value.clearSelection();
|
||||||
|
}
|
||||||
/** 导出按钮操作 */
|
/** 导出按钮操作 */
|
||||||
const handleExportDetail = async () => {
|
const handleExportDetail = async () => {
|
||||||
try {
|
try {
|
||||||
@ -247,13 +254,14 @@ const handleExportDetail = async () => {
|
|||||||
exportLoading.value = false
|
exportLoading.value = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const getMat = async (rowids,amount,ids) => {
|
const getMat = async (rowids,amount,ids,matCodes) => {
|
||||||
//formData.value.boomItemDOList = arrBoom
|
//formData.value.boomItemDOList = arrBoom
|
||||||
for(var i = 0 ; i < list.value.length ; i ++){
|
for(var i = 0 ; i < list.value.length ; i ++){
|
||||||
if(list.value[i].id == rowids){
|
if(list.value[i].id == rowids){
|
||||||
list.value[i].matRest = amount
|
list.value[i].matRest = amount
|
||||||
|
list.value[i].matCode = matCodes
|
||||||
list.value[i].materialId = ids
|
list.value[i].materialId = ids
|
||||||
await updateRow(2,list.value[i]);
|
// await updateRow(2,list.value[i]);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -332,23 +340,24 @@ const opearteForm = async(type) =>{
|
|||||||
await materialPlanBoomApi.updateMaterialPlanBoom(form);
|
await materialPlanBoomApi.updateMaterialPlanBoom(form);
|
||||||
message.success("送审成功")
|
message.success("送审成功")
|
||||||
await getList()
|
await getList()
|
||||||
}catch(e){
|
}catch{
|
||||||
loading.value = false
|
loading.value = false
|
||||||
}finally{
|
}finally{
|
||||||
loading.value = false
|
loading.value = false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}else{
|
}else{
|
||||||
//去库存
|
//去库存
|
||||||
for(var i = 0 ; i<ids.value.length ;i++){
|
// for(var i = 0 ; i<ids.value.length ;i++){
|
||||||
var row = ids.value[i];
|
// var row = ids.value[i];
|
||||||
if(!row.materialId){
|
// if(!row.materialId){
|
||||||
message.error('请先查询库存量后进行操作')
|
// message.error('请先查询库存量后进行操作')
|
||||||
loading.value = false
|
// loading.value = false
|
||||||
return
|
// return
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
console.log(ids.value)
|
||||||
var form = {
|
var form = {
|
||||||
id:1,
|
id:1,
|
||||||
projectMaterialPlanId:1,
|
projectMaterialPlanId:1,
|
||||||
@ -361,13 +370,13 @@ const opearteForm = async(type) =>{
|
|||||||
await materialPlanBoomApi.updateMaterialPlanBoom(form);
|
await materialPlanBoomApi.updateMaterialPlanBoom(form);
|
||||||
message.success("去库存成功")
|
message.success("去库存成功")
|
||||||
await getList()
|
await getList()
|
||||||
}catch(e){
|
}catch{
|
||||||
loading.value = false
|
loading.value = false
|
||||||
}finally{
|
}finally{
|
||||||
loading.value = false
|
loading.value = false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
message.error("至少选择一项后进行操作!")
|
message.error("至少选择一项后进行操作!")
|
||||||
@ -478,8 +487,8 @@ const handleExport = async () => {
|
|||||||
await message.exportConfirm()
|
await message.exportConfirm()
|
||||||
// 发起导出
|
// 发起导出
|
||||||
exportLoading.value = true
|
exportLoading.value = true
|
||||||
const data = await ProcessBomApi.exportProcessBom(queryParams)
|
// const data = await ProcessBomApi.exportProcessBom(queryParams)
|
||||||
download.excel(data, '工艺bom.xls')
|
// download.excel(data, '工艺bom.xls')
|
||||||
} catch {
|
} catch {
|
||||||
} finally {
|
} finally {
|
||||||
exportLoading.value = false
|
exportLoading.value = false
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
<el-form-item label="物料名称" prop="matName" >
|
<el-form-item label="物料名称" prop="matName" >
|
||||||
<el-input v-model="queryParams.matName" placeholder="物料名称" clearable @keyup.enter="handleQuery" class="!w-240px" />
|
<el-input v-model="queryParams.matName" placeholder="物料名称" clearable @keyup.enter="handleQuery" class="!w-240px" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
|
|
||||||
<el-form-item >
|
<el-form-item >
|
||||||
<el-button @click="handleQuery" type="primary">
|
<el-button @click="handleQuery" type="primary">
|
||||||
@ -162,7 +162,7 @@ const emit = defineEmits(['success'])
|
|||||||
// emit('success', multipleSelection.value)
|
// emit('success', multipleSelection.value)
|
||||||
const success = () =>{
|
const success = () =>{
|
||||||
dialogVisible.value = false;
|
dialogVisible.value = false;
|
||||||
emit('success',rowid.value,clickItem.value.storageOkQty,clickItem.value.id)
|
emit('success',rowid.value,clickItem.value.storageOkQty,clickItem.value.id,clickItem.value.matCode)
|
||||||
}
|
}
|
||||||
const handleRg = async (rgid) => {
|
const handleRg = async (rgid) => {
|
||||||
pnCurrentList.value =[]
|
pnCurrentList.value =[]
|
||||||
|
@ -167,7 +167,7 @@
|
|||||||
<el-table-column label="规格型号" prop="spec" min-width="140">
|
<el-table-column label="规格型号" prop="spec" min-width="140">
|
||||||
<template #default="{ row, $index }">
|
<template #default="{ row, $index }">
|
||||||
<span v-if="row.type == '2'" v-html="row.spec"></span>
|
<span v-if="row.type == '2'" v-html="row.spec"></span>
|
||||||
<el-form-item v-else :prop="`${$index}.spec`" :rules="subFormRules.spec" class="mb-0px!">
|
<el-form-item v-else :prop="`${$index}.spec`" class="mb-0px!">
|
||||||
<el-input :disabled="getDisable(row.bomEditStatus)" v-model="row.spec" />
|
<el-input :disabled="getDisable(row.bomEditStatus)" v-model="row.spec" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</template>
|
</template>
|
||||||
|
Loading…
Reference in New Issue
Block a user