Merge remote-tracking branch 'origin/main'
This commit is contained in:
commit
92d4f9aade
@ -27,6 +27,7 @@ public class MaterialPageReqVO extends PageParam {
|
||||
@Schema(description = "物料名称", example = "李四")
|
||||
private String codeAndName;
|
||||
|
||||
private String inventoryName;
|
||||
@Schema(description = "品牌")
|
||||
private String brand;
|
||||
|
||||
|
@ -29,7 +29,7 @@ public class PurchaseOrderMakeDetailSaveReqVO {
|
||||
|
||||
@Schema(description = "规格型号")
|
||||
private String boomSpec;
|
||||
|
||||
private Long materialId;
|
||||
@Schema(description = "系统单位")
|
||||
private String boomUnit;
|
||||
|
||||
|
@ -100,6 +100,7 @@ public class PurchaseOrderMakeDetailDO extends BaseDO {
|
||||
* 物料需求计划id
|
||||
*/
|
||||
private Long projectMaterialPlanId;
|
||||
private Long materialId;
|
||||
/**
|
||||
* 物料需求计划子项目id
|
||||
*/
|
||||
|
@ -61,6 +61,13 @@ public interface MaterialMapper extends BaseMapperX<MaterialDO> {
|
||||
.eq(true,MaterialDO::getVirtualPart, YesOrNoEnum.N.name())
|
||||
.apply(!StringUtils.isEmpty(reqVO.getCodeAndName()), " (t.name like {0} or t.code like {0})", "%"+reqVO.getCodeAndName()+"%");
|
||||
|
||||
if (!StringUtils.isEmpty(reqVO.getInventoryName())) {
|
||||
query.and(qw ->
|
||||
qw.like("t.name", reqVO.getInventoryName())
|
||||
.or()
|
||||
.like("t.code", reqVO.getInventoryName())
|
||||
);
|
||||
}
|
||||
// if(!StringUtils.isEmpty(reqVO.getCodeAndName())){
|
||||
// query.like(MaterialDO::getName, reqVO.getCodeAndName()).or().like(MaterialDO::getCode, reqVO.getCodeAndName());
|
||||
//
|
||||
|
@ -121,13 +121,7 @@ public interface ProcessBomDetailMapper extends BaseMapperX<ProcessBomDetailDO>
|
||||
|
||||
.eq(reqVO.getBomStatus() != null, ProcessBomDO::getBomStatus, reqVO.getBomStatus())
|
||||
;
|
||||
if (!StringUtils.isEmpty(reqVO.getInventoryName())) {
|
||||
query.and(qw ->
|
||||
qw.like("t.material_name", reqVO.getInventoryName())
|
||||
.or()
|
||||
.like("t.material_code", reqVO.getInventoryName())
|
||||
);
|
||||
}
|
||||
|
||||
return selectPage(reqVO, query);
|
||||
}
|
||||
// default List<ProcessBomDetailDO> selectListByBomIdbyid(Long bomId,Long bomId) {
|
||||
|
@ -10,6 +10,7 @@ import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import com.chanko.yunxi.mes.module.heli.controller.admin.materialplanboom.vo.MaterialPlanBoomPageReqVO;
|
||||
import com.chanko.yunxi.mes.module.heli.controller.admin.purchaseordermake.vo.PartPurchaseOrderPageReqVO;
|
||||
import com.chanko.yunxi.mes.module.heli.controller.admin.purchaseordermake.vo.PartPurchaseOrderPageRespVO;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.material.MaterialDO;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplan.MaterialPlanDO;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplanboom.MaterialPlanBoomDO;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.procedure.ProcedureDO;
|
||||
@ -36,9 +37,10 @@ public interface PurchaseOrderMakeDetailMapper extends BaseMapperX<PurchaseOrder
|
||||
default PageResult<PurchaseOrderMakeDetailDO> selectPage(PurchaseOrderMakeDetailPageReqVO reqVO) {
|
||||
MPJLambdaWrapper<PurchaseOrderMakeDetailDO> query = new MPJLambdaWrapper<>();
|
||||
query.selectAll(PurchaseOrderMakeDetailDO.class)
|
||||
.select("b.material_name as boomName","b.material_code as boomCode","b.spec as boomSpec","b.unit as boomUnit")
|
||||
.select("b.material_name as boomName","m.code as boomCode","b.spec as boomSpec","b.unit as boomUnit")
|
||||
.select("pom.purchase_no as purchaseNo")
|
||||
.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(ProjectOrderDO.class,"po",ProjectOrderDO::getId, ProjectOrderSubDO::getProjectOrderId)
|
||||
.leftJoin(PurchaseOrderMakeDO.class,"pom",PurchaseOrderMakeDO::getId,PurchaseOrderMakeDetailDO::getPurchaseOrderId)
|
||||
|
@ -195,11 +195,12 @@ public class ProcessBomServiceImpl implements ProcessBomService {
|
||||
materialNameList.forEach((materialName, listTemp2) -> {
|
||||
if (listTemp2.size() > 1) {
|
||||
throw new RuntimeException("非标准件物料名称:" + materialName + "重复!");
|
||||
}else{
|
||||
if(listTemp2.get(0).getSpec() == null){
|
||||
throw new RuntimeException("非标准件:" + materialName + "规格为空!");
|
||||
}
|
||||
}
|
||||
// else{
|
||||
// if(listTemp2.get(0).getSpec() == null){
|
||||
// throw new RuntimeException("非标准件:" + materialName + "规格为空!");
|
||||
// }
|
||||
// }
|
||||
});
|
||||
});
|
||||
List<ProcessBomDetailDO> processBomDetailDOList = new ArrayList<>();
|
||||
@ -300,12 +301,18 @@ public class ProcessBomServiceImpl implements ProcessBomService {
|
||||
// processBomDetailDO.setMaterialId(materialDO.getId());//物料ID
|
||||
// processBomDetailDO.setMaterialCode(materialDO.getCode());//物料编码
|
||||
// processBomDetailDO.setMaterialName(materialDO.getName());//物料名称
|
||||
|
||||
|
||||
}else{
|
||||
|
||||
processBomDetailDO.setMaterialName(o.getMaterialName());
|
||||
}
|
||||
|
||||
processBomDetailDO.setSpec(o.getSpec());//规格
|
||||
|
||||
if (o.getSpec() == null || o.getSpec().trim().equals("")){
|
||||
processBomDetailDO.setSpec("A");//规格
|
||||
}else {
|
||||
processBomDetailDO.setSpec(o.getSpec());
|
||||
}
|
||||
processBomDetailDO.setUnit(o.getUnit());//单位
|
||||
processBomDetailDO.setBlueprintNo(o.getBlueprintNo());//图号
|
||||
try {
|
||||
|
@ -91,7 +91,7 @@ public class PurchaseOrderMakeDetailServiceImpl implements PurchaseOrderMakeDeta
|
||||
pd.setPurchaseOrderId(purchaseOrderNoDO.getId());
|
||||
pd.setBoomDetailId(pmd.getBoomDetailId());
|
||||
pd.setBoomName(pmd.getBoomName());
|
||||
pd.setMaterialId(pmd.getBoomDetailId());
|
||||
pd.setMaterialId(pmd.getMaterialId());
|
||||
pd.setBoomSpec(pmd.getBoomSpec());
|
||||
pd.setBoomUnit(pmd.getBoomUnit());
|
||||
pd.setComposition(pmd.getComposition());
|
||||
|
@ -84,12 +84,12 @@
|
||||
>
|
||||
<el-option
|
||||
v-for="item in scope.row.materialSelectList"
|
||||
:key="item.materialCode"
|
||||
:label="item.inventCode"
|
||||
:key="item.code"
|
||||
:label="item.code"
|
||||
:value="item"
|
||||
>
|
||||
<span style="float: left">{{ item.materialName }}</span>
|
||||
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.materialCode }}</span>
|
||||
<span style="float: left">{{ item.name }}</span>
|
||||
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.code }}</span>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</template>
|
||||
@ -145,7 +145,7 @@ import { getIntDictOptions, DICT_TYPE } from '@/utils/dict'
|
||||
import download from '@/utils/download'
|
||||
import * as purchaseOrderMakeDetailApi from '@/api/heli/purchaseordermakedetail'
|
||||
import { useCommonStateWithOut } from '@/store/modules/common'
|
||||
import * as bomApi from '@/api/heli/processbom'
|
||||
import * as matApi from '@/api/heli/material'
|
||||
import { useUserStore } from '@/store/modules/user'
|
||||
import matLog from './storageLog.vue'
|
||||
import * as supplierApi from '@/api/heli/supplier'
|
||||
@ -236,7 +236,7 @@ const remoteMethod = async (query, row) => {
|
||||
// 更新查询参数
|
||||
queryMaterialParams.inventoryName = query;
|
||||
// 调用API获取物料列表
|
||||
const data = await bomApi.detailpages(queryMaterialParams);
|
||||
const data = await matApi.getMaterialPage(queryMaterialParams);
|
||||
// 更新当前行的物料选择列表
|
||||
row.materialSelectList = data.list;
|
||||
} else {
|
||||
@ -252,7 +252,7 @@ const remoteMethod = async (query, row) => {
|
||||
}
|
||||
};
|
||||
const getMateriallist = async(row) =>{
|
||||
const data = await bomApi.detailpages(queryMaterialParams)
|
||||
const data = await matApi.getMaterialPage(queryMaterialParams)
|
||||
row.materialSelectList = data.list
|
||||
}
|
||||
|
||||
@ -287,10 +287,11 @@ const getMat = async (rowids,amount,ids) => {
|
||||
}
|
||||
const changeSupp = async(e,row) => {
|
||||
if(e){
|
||||
row.boomDetailId = e.id
|
||||
row.boomName = e.materialName;
|
||||
row.boomSpec = e.spec;
|
||||
row.boomUnit = e.unit
|
||||
row.materialId = e.id
|
||||
row.boomCode = e.code
|
||||
// row.boomName = e.materialName;
|
||||
// row.boomSpec = e.spec;
|
||||
// row.boomUnit = e.unit
|
||||
await updateRows(row)
|
||||
}
|
||||
}
|
||||
@ -311,6 +312,7 @@ const handleQuery = () => {
|
||||
getList()
|
||||
}
|
||||
const opearteForm = async(type) =>{
|
||||
loading.value = true;
|
||||
if(type == 1){
|
||||
router.push({ path: '/purchase/PurchaseOrder', query: { flush: 1 } })
|
||||
return;
|
||||
@ -324,10 +326,12 @@ const opearteForm = async(type) =>{
|
||||
var row = ids.value[i];
|
||||
if(row.orderStatus == 2){
|
||||
message.error('已生成采购订单!')
|
||||
loading.value = false
|
||||
return
|
||||
}
|
||||
if(!row.boomDetailId){
|
||||
message.error('零件编码不能为空!')
|
||||
loading.value = false
|
||||
return
|
||||
}
|
||||
if( !sets.has(row.supplierId) || sets == null ){
|
||||
@ -336,6 +340,7 @@ const opearteForm = async(type) =>{
|
||||
}
|
||||
if(sets != null && sets.size > 1){
|
||||
message.error('不同供应商,不能生成一个订单,请确认!');
|
||||
loading.value = false
|
||||
return
|
||||
}
|
||||
|
||||
@ -348,7 +353,9 @@ const opearteForm = async(type) =>{
|
||||
buyType:0
|
||||
}
|
||||
await purchaseOrderMakeDetailApi.updatePurchaseOrderDetail(form);
|
||||
message.success("生成成功,请刷新")
|
||||
loading.value = false
|
||||
message.success("生成成功")
|
||||
await getList();
|
||||
}
|
||||
}else{
|
||||
message.error("至少选择一项后进行操作!")
|
||||
|
@ -265,7 +265,7 @@ const changeDate = async(e,row) => {
|
||||
}
|
||||
}
|
||||
const serachLog = (row) => {
|
||||
matLogRef.value.open(row.id,row.matCode)
|
||||
matLogRef.value.open(row.id,row.matName)
|
||||
}
|
||||
/** 搜索按钮操作 */
|
||||
const handleQuery = () => {
|
||||
@ -274,29 +274,36 @@ const handleQuery = () => {
|
||||
}
|
||||
const opearteForm = async(type) =>{
|
||||
if(ids.value != null && ids.value.length > 0){
|
||||
loading.value = true
|
||||
if(type == 0){
|
||||
//送审
|
||||
var isError = false;
|
||||
var sets = new Set();
|
||||
for(var i = 0 ; i<ids.value.length ;i++){
|
||||
var row = ids.value[i];
|
||||
if(!row.purchaseAmount ){
|
||||
if(!row.purchaseAmount && row.purchaseAmount != 0){
|
||||
message.error('零件:'+row.matName+ '采购数量不能为空!')
|
||||
loading.value = false
|
||||
return
|
||||
} else if( row.purchaseAmount == 0){
|
||||
message.error('零件:'+row.matName+ '采购数量不能为0!')
|
||||
loading.value = false
|
||||
return
|
||||
} else if(!row.supplierId){
|
||||
message.error('零件:'+row.matName+ '供应商不能为空!')
|
||||
loading.value = false
|
||||
return
|
||||
} else if(!row.estimatedPrice){
|
||||
} else if(!row.estimatedPrice && row.estimatedPrice != 0){
|
||||
message.error('零件:'+row.matName+ '预估总价不能为空')
|
||||
loading.value = false
|
||||
return
|
||||
} else if( row.estimatedPrice == 0){
|
||||
message.error('零件:'+row.matName+ '预估总价不能为0!')
|
||||
loading.value = false
|
||||
return
|
||||
} else if(!row.arriveTime ){
|
||||
message.error('零件:'+row.matName+ '预计到货日期不能为空')
|
||||
loading.value = false
|
||||
return
|
||||
}
|
||||
if( !sets.has(row.projectId) || sets == null ){
|
||||
@ -305,6 +312,7 @@ const opearteForm = async(type) =>{
|
||||
}
|
||||
if(sets != null && sets.size > 1){
|
||||
message.error('不通项目不能同时生成采购单');
|
||||
loading.value = false
|
||||
return
|
||||
}
|
||||
|
||||
@ -316,14 +324,24 @@ const opearteForm = async(type) =>{
|
||||
materialPlanBoomDOList:ids.value,
|
||||
buyType:0
|
||||
}
|
||||
await materialPlanBoomApi.updateMaterialPlanBoom(form);
|
||||
message.success("送审成功")
|
||||
try{
|
||||
await materialPlanBoomApi.updateMaterialPlanBoom(form);
|
||||
message.success("送审成功")
|
||||
await getList()
|
||||
}catch(e){
|
||||
loading.value = false
|
||||
}finally{
|
||||
loading.value = false
|
||||
}
|
||||
|
||||
|
||||
}else{
|
||||
//去库存
|
||||
for(var i = 0 ; i<ids.value.length ;i++){
|
||||
var row = ids.value[i];
|
||||
if(!row.materialId){
|
||||
message.error('请先查询库存量后进行操作')
|
||||
loading.value = false
|
||||
return
|
||||
}
|
||||
}
|
||||
@ -337,9 +355,12 @@ const opearteForm = async(type) =>{
|
||||
}
|
||||
await materialPlanBoomApi.updateMaterialPlanBoom(form);
|
||||
message.success("去库存成功")
|
||||
await getList()
|
||||
loading.value = false
|
||||
}
|
||||
}else{
|
||||
message.error("至少选择一项后进行操作!")
|
||||
loading.value = false
|
||||
return ;
|
||||
}
|
||||
}
|
||||
|
@ -174,7 +174,7 @@ const open = async (rowids,matCode) => {
|
||||
clickItem.value = null;
|
||||
//multipleTableRef.value!.clearSelection()
|
||||
dialogVisible.value = true
|
||||
queryParams.matCode = matCode;
|
||||
queryParams.matName = matCode;
|
||||
rowid.value = rowids
|
||||
await getList();
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user