采购订单添加应收
This commit is contained in:
parent
cdbc8fdb2a
commit
e7ac6592f1
@ -70,17 +70,17 @@ public class OrderYsDO extends BaseDO {
|
|||||||
private BigDecimal amount;
|
private BigDecimal amount;
|
||||||
|
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private BigDecimal shouFuKuanBiLi;
|
private BigDecimal shouFuKuan;
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private BigDecimal twoFuKuanBiLi;
|
private BigDecimal twoFuKuan;
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private BigDecimal threeFuKuanBiLi;
|
private BigDecimal threeFuKuan;
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private BigDecimal fourFuKuanBiLi;
|
private BigDecimal fourFuKuan;
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private BigDecimal fiveFuKuanBiLi;
|
private BigDecimal fiveFuKuan;
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private BigDecimal sixFuKuanBiLi;
|
private BigDecimal sixFuKuan;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -50,8 +50,8 @@ public interface OrderYsMapper extends BaseMapperX<OrderYsDO> {
|
|||||||
MPJLambdaWrapper<OrderYsDO> query = new MPJLambdaWrapper<>();
|
MPJLambdaWrapper<OrderYsDO> query = new MPJLambdaWrapper<>();
|
||||||
query.selectAll(OrderYsDO.class)
|
query.selectAll(OrderYsDO.class)
|
||||||
.select("sum(i.amount) as amount")
|
.select("sum(i.amount) as amount")
|
||||||
.select("p.shou_Fu_Kuan_Bi_Li as shouFuKuanBiLi","p.two_Fu_Kuan_Bi_Li as twoFuKuanBiLi","p.three_Fu_Kuan_Bi_Li as threeFuKuanBiLi")
|
.select("p.shou_Fu_Kuan as shouFuKuan","p.two_Fu_Kuan as twoFuKuan","p.three_Fu_Kuan as threeFuKuan")
|
||||||
.select("p.four_Fu_Kuan_Bi_Li as fourFuKuanBiLi","p.five_Fu_Kuan_Bi_Li as fiveFuKuanBiLi","p.six_Fu_Kuan_Bi_Li as sixFuKuanBiLi")
|
.select("p.four_Fu_Kuan as fourFuKuan","p.five_Fu_Kuan as fiveFuKuan","p.six_Fu_Kuan as sixFuKuan")
|
||||||
.leftJoin(
|
.leftJoin(
|
||||||
"finance_invoice i ON i.order_code = t.code AND i.business_type = 'FINANCE_MAKE_INVOICE' AND i.status !='3'")
|
"finance_invoice i ON i.order_code = t.code AND i.business_type = 'FINANCE_MAKE_INVOICE' AND i.status !='3'")
|
||||||
.leftJoin(ProjectOrderDO.class, "p", ProjectOrderDO::getCode, OrderYsDO::getCode)
|
.leftJoin(ProjectOrderDO.class, "p", ProjectOrderDO::getCode, OrderYsDO::getCode)
|
||||||
|
@ -100,8 +100,8 @@ public interface PurchaseOrderMakeMapper extends BaseMapperX<PurchaseOrderMakeDO
|
|||||||
wrapper.selectAll(PurchaseOrderMakeDO.class)
|
wrapper.selectAll(PurchaseOrderMakeDO.class)
|
||||||
.select(
|
.select(
|
||||||
"CASE " +
|
"CASE " +
|
||||||
"WHEN a.goods_type = 1 THEN '物料' " +
|
"WHEN t.goods_type = 1 THEN '物料' " +
|
||||||
"WHEN a.goods_type = 2 THEN '加工件' " +
|
"WHEN t.goods_type = 2 THEN '加工件' " +
|
||||||
"ELSE '其他' " +
|
"ELSE '其他' " +
|
||||||
"END AS purchaseOrderType"
|
"END AS purchaseOrderType"
|
||||||
)
|
)
|
||||||
|
@ -150,8 +150,9 @@ public interface PurchaseOrderMakeDetailMapper extends BaseMapperX<PurchaseOrder
|
|||||||
query.selectAll(PurchaseOrderMakeDetailDO.class)
|
query.selectAll(PurchaseOrderMakeDetailDO.class)
|
||||||
.select("p.name as procedureName,s.name as supplierName")
|
.select("p.name as procedureName,s.name as supplierName")
|
||||||
.leftJoin(ProcedureDO.class,"p", ProcedureDO::getId, PurchaseOrderMakeDetailDO::getProcedureId)
|
.leftJoin(ProcedureDO.class,"p", ProcedureDO::getId, PurchaseOrderMakeDetailDO::getProcedureId)
|
||||||
.leftJoin(SupplierDO.class,"s", SupplierDO::getId, PurchaseOrderMakeDetailDO::getSupplierId);
|
.leftJoin(SupplierDO.class,"s", SupplierDO::getId, PurchaseOrderMakeDetailDO::getSupplierId)
|
||||||
|
.disableSubLogicDel();
|
||||||
query.eq(PurchaseOrderMakeDetailDO::getPurchaseOrderId,id);
|
query.eq(PurchaseOrderMakeDetailDO::getPurchaseOrderId,id);
|
||||||
return selectJoinList(PurchaseOrderMakeDetailDO.class, query);
|
return selectList(query);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,6 +10,7 @@ import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
|
|||||||
import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils;
|
import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils;
|
||||||
import com.chanko.yunxi.mes.framework.mybatis.core.query.QueryWrapperX;
|
import com.chanko.yunxi.mes.framework.mybatis.core.query.QueryWrapperX;
|
||||||
import com.chanko.yunxi.mes.framework.security.core.util.SecurityFrameworkUtils;
|
import com.chanko.yunxi.mes.framework.security.core.util.SecurityFrameworkUtils;
|
||||||
|
import com.chanko.yunxi.mes.module.heli.controller.admin.orderyf.vo.OrderYfSaveReqVO;
|
||||||
import com.chanko.yunxi.mes.module.heli.controller.admin.purchaseordermake.vo.Log;
|
import com.chanko.yunxi.mes.module.heli.controller.admin.purchaseordermake.vo.Log;
|
||||||
import com.chanko.yunxi.mes.module.heli.controller.admin.purchaseordermake.vo.PartPurchaseOrderPageReqVO;
|
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.controller.admin.purchaseordermake.vo.PartPurchaseOrderPageRespVO;
|
||||||
@ -23,6 +24,7 @@ import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseordermakedetail.P
|
|||||||
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.dataobject.supplier.SupplierDO;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.mysql.materialplanboom.MaterialPlanBoomMapper;
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.materialplanboom.MaterialPlanBoomMapper;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.mysql.plan.PlanMapper;
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.plan.PlanMapper;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.mysql.plansub.PlanSubMapper;
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.plansub.PlanSubMapper;
|
||||||
@ -30,7 +32,10 @@ import com.chanko.yunxi.mes.module.heli.dal.mysql.purchaseordermake.PurchaseOrde
|
|||||||
import com.chanko.yunxi.mes.module.heli.dal.mysql.purchaseordermakedetail.PurchaseOrderMakeDetailMapper;
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.purchaseordermakedetail.PurchaseOrderMakeDetailMapper;
|
||||||
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;
|
||||||
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.supplier.SupplierMapper;
|
||||||
|
import com.chanko.yunxi.mes.module.heli.service.orderyf.OrderYfService;
|
||||||
import com.chanko.yunxi.mes.module.heli.service.serialnumber.SerialNumberService;
|
import com.chanko.yunxi.mes.module.heli.service.serialnumber.SerialNumberService;
|
||||||
|
import com.chanko.yunxi.mes.module.heli.service.supplier.SupplierService;
|
||||||
import com.chanko.yunxi.mes.module.system.dal.dataobject.user.AdminUserDO;
|
import com.chanko.yunxi.mes.module.system.dal.dataobject.user.AdminUserDO;
|
||||||
import com.chanko.yunxi.mes.module.system.service.user.AdminUserService;
|
import com.chanko.yunxi.mes.module.system.service.user.AdminUserService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@ -74,6 +79,10 @@ public class PartPurchaseOrderServiceImpl implements PartPurchaseOrderService{
|
|||||||
private PlanSubMapper planSubMapper;
|
private PlanSubMapper planSubMapper;
|
||||||
@Autowired
|
@Autowired
|
||||||
private AdminUserService adminUserService;
|
private AdminUserService adminUserService;
|
||||||
|
@Autowired
|
||||||
|
private OrderYfService orderYfService;
|
||||||
|
@Autowired
|
||||||
|
private SupplierMapper supplierMapper;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PageResult<PartPurchaseOrderPageRespVO> getPartPurchaseOrderPage(PartPurchaseOrderPageReqVO pageReqVO) {
|
public PageResult<PartPurchaseOrderPageRespVO> getPartPurchaseOrderPage(PartPurchaseOrderPageReqVO pageReqVO) {
|
||||||
@ -83,24 +92,36 @@ public class PartPurchaseOrderServiceImpl implements PartPurchaseOrderService{
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean submit(List<PartPurchaseOrderPageRespVO> list) {
|
public boolean submit(List<PartPurchaseOrderPageRespVO> list) {
|
||||||
|
PurchaseOrderNoDO purchaseOrderNoDO = new PurchaseOrderNoDO();
|
||||||
|
// 返回
|
||||||
|
// 月度流水号
|
||||||
|
SerialNumberDO serialNumberDO = new SerialNumberDO();
|
||||||
|
serialNumberDO = serialNumberService.getSerialNumber(PURCHASE_ORDER.name(), new SimpleDateFormat("yyyyMMdd").format(new Date()));
|
||||||
|
serialNumberDO.setSerialNumber(serialNumberDO.getSerialNumber()+1);
|
||||||
|
// 回写序列记录
|
||||||
|
serialNumberService.updateSerialNumber(serialNumberDO);
|
||||||
|
|
||||||
|
purchaseOrderNoDO.setPurchaseNo(PURCHASE_ORDER.getCode(serialNumberDO.getSerialNumber().toString()));
|
||||||
|
purchaseOrderNoDO.setPurchaseType(1);
|
||||||
|
purchaseOrderNoDO.setGoodsType(2);
|
||||||
|
purchaseOrderNoDO.setSupplierId(list.get(0).getSupplierId());
|
||||||
|
purchaseOrderNoDO.setOrdDate(new Date());
|
||||||
|
purchaseOrderNoMapper.insert(purchaseOrderNoDO);
|
||||||
|
long purchaseOrderId = purchaseOrderNoDO.getId();
|
||||||
|
OrderYfSaveReqVO orderYfVO = new OrderYfSaveReqVO();
|
||||||
|
orderYfVO.setCgOrderNum(purchaseOrderNoDO.getPurchaseNo());
|
||||||
|
SupplierDO supplierDO = supplierMapper.selectById(list.get(0).getSupplierId());
|
||||||
|
if (ObjectUtil.isNotEmpty(supplierDO)){
|
||||||
|
orderYfVO.setCgGysname(supplierDO.getName());
|
||||||
|
}
|
||||||
|
BigDecimal sum = list.stream()
|
||||||
|
.filter(Objects::nonNull) // 过滤掉空对象
|
||||||
|
.map(PartPurchaseOrderPageRespVO::getEstimatedPrice)
|
||||||
|
.filter(Objects::nonNull) // 过滤掉空值
|
||||||
|
.reduce(BigDecimal.ZERO, BigDecimal::add); // 累加求和
|
||||||
|
orderYfVO.setCgYf(sum);
|
||||||
|
orderYfService.createCg(orderYfVO);
|
||||||
list.forEach(detailDO -> {
|
list.forEach(detailDO -> {
|
||||||
PurchaseOrderNoDO purchaseOrderNoDO = new PurchaseOrderNoDO();
|
|
||||||
// 返回
|
|
||||||
// 月度流水号
|
|
||||||
SerialNumberDO serialNumberDO = new SerialNumberDO();
|
|
||||||
serialNumberDO = serialNumberService.getSerialNumber(PURCHASE_ORDER.name(), new SimpleDateFormat("yyyyMMdd").format(new Date()));
|
|
||||||
serialNumberDO.setSerialNumber(serialNumberDO.getSerialNumber()+1);
|
|
||||||
// 回写序列记录
|
|
||||||
serialNumberService.updateSerialNumber(serialNumberDO);
|
|
||||||
|
|
||||||
purchaseOrderNoDO.setPurchaseNo(PURCHASE_ORDER.getCode(serialNumberDO.getSerialNumber().toString()));
|
|
||||||
purchaseOrderNoDO.setPurchaseType(1);
|
|
||||||
purchaseOrderNoDO.setGoodsType(2);
|
|
||||||
purchaseOrderNoDO.setSupplierId(detailDO.getSupplierId());
|
|
||||||
purchaseOrderNoDO.setOrdDate(new Date());
|
|
||||||
purchaseOrderNoMapper.insert(purchaseOrderNoDO);
|
|
||||||
long purchaseOrderId = purchaseOrderNoDO.getId();
|
|
||||||
|
|
||||||
// PurchaseOrderNoDetailDO purchaseOrderNoDetailDO = new PurchaseOrderNoDetailDO();
|
// PurchaseOrderNoDetailDO purchaseOrderNoDetailDO = new PurchaseOrderNoDetailDO();
|
||||||
// purchaseOrderNoDetailDO.setPurchaseOrderId(purchaseOrderId);
|
// purchaseOrderNoDetailDO.setPurchaseOrderId(purchaseOrderId);
|
||||||
// purchaseOrderNoDetailDO.setBoomDetailId(detailDO.getBoomDetailId());
|
// purchaseOrderNoDetailDO.setBoomDetailId(detailDO.getBoomDetailId());
|
||||||
@ -309,6 +330,7 @@ public class PartPurchaseOrderServiceImpl implements PartPurchaseOrderService{
|
|||||||
logList.add(log);
|
logList.add(log);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
orderMakeDO.setLogList(logList);
|
||||||
return CommonResult.success(orderMakeDO);
|
return CommonResult.success(orderMakeDO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
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 cn.hutool.core.util.ObjectUtil;
|
||||||
|
import com.chanko.yunxi.mes.module.heli.controller.admin.orderyf.vo.OrderYfSaveReqVO;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.composition.CompositionDO;
|
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.purchaseorder.PurchaseOrderDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseorder.PurchaseOrderDO;
|
||||||
@ -8,11 +10,14 @@ import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseordermake.Purchas
|
|||||||
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.dataobject.supplier.SupplierDO;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.mysql.composition.CompositionMapper;
|
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.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;
|
||||||
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.supplier.SupplierMapper;
|
||||||
|
import com.chanko.yunxi.mes.module.heli.service.orderyf.OrderYfService;
|
||||||
import com.chanko.yunxi.mes.module.heli.service.serialnumber.SerialNumberService;
|
import com.chanko.yunxi.mes.module.heli.service.serialnumber.SerialNumberService;
|
||||||
import org.checkerframework.checker.units.qual.A;
|
import org.checkerframework.checker.units.qual.A;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@ -20,6 +25,7 @@ import javax.annotation.Resource;
|
|||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
@ -61,6 +67,11 @@ public class PurchaseOrderMakeDetailServiceImpl implements PurchaseOrderMakeDeta
|
|||||||
private MaterialMapper materialMapper;
|
private MaterialMapper materialMapper;
|
||||||
@Resource
|
@Resource
|
||||||
private CompositionMapper compositionMapper;
|
private CompositionMapper compositionMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private OrderYfService orderYfService;
|
||||||
|
@Resource
|
||||||
|
private SupplierMapper supplierMapper;
|
||||||
@Override
|
@Override
|
||||||
public Long createPurchaseOrderMakeDetail(PurchaseOrderMakeDetailSaveReqVO createReqVO) {
|
public Long createPurchaseOrderMakeDetail(PurchaseOrderMakeDetailSaveReqVO createReqVO) {
|
||||||
// 插入
|
// 插入
|
||||||
@ -90,6 +101,19 @@ public class PurchaseOrderMakeDetailServiceImpl implements PurchaseOrderMakeDeta
|
|||||||
purchaseOrderNoDO.setSupplierId(updateList.get(0).getSupplierId());
|
purchaseOrderNoDO.setSupplierId(updateList.get(0).getSupplierId());
|
||||||
purchaseOrderNoDO.setOrdDate(new Date());
|
purchaseOrderNoDO.setOrdDate(new Date());
|
||||||
purchaseOrderNoMapper.insert(purchaseOrderNoDO);
|
purchaseOrderNoMapper.insert(purchaseOrderNoDO);
|
||||||
|
OrderYfSaveReqVO orderYfVO = new OrderYfSaveReqVO();
|
||||||
|
orderYfVO.setCgOrderNum(code);
|
||||||
|
SupplierDO supplierDO = supplierMapper.selectById(updateList.get(0).getSupplierId());
|
||||||
|
if (ObjectUtil.isNotEmpty(supplierDO)){
|
||||||
|
orderYfVO.setCgGysname(supplierDO.getName());
|
||||||
|
}
|
||||||
|
BigDecimal sum = updateList.stream()
|
||||||
|
.filter(Objects::nonNull) // 过滤掉空对象
|
||||||
|
.map(PurchaseOrderMakeDetailDO::getEstimatedPrice)
|
||||||
|
.filter(Objects::nonNull) // 过滤掉空值
|
||||||
|
.reduce(BigDecimal.ZERO, BigDecimal::add); // 累加求和
|
||||||
|
orderYfVO.setCgYf(sum);
|
||||||
|
orderYfService.createCg(orderYfVO);
|
||||||
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, MaterialDO> insertMaterialMap = new HashMap<>();
|
||||||
|
@ -60,3 +60,10 @@ export const getDetail = async (params) => {
|
|||||||
export const createPurchaseOrderMakeAndDetail = async (data) => {
|
export const createPurchaseOrderMakeAndDetail = async (data) => {
|
||||||
return await request.post({ url: `/heli/purchase-order-make/createPurchaseOrderMakeAndDetail`, data })
|
return await request.post({ url: `/heli/purchase-order-make/createPurchaseOrderMakeAndDetail`, data })
|
||||||
}
|
}
|
||||||
|
export const review = async (params) => {
|
||||||
|
return await request.get({ url: `/heli/purchase-order-make/review`, params })
|
||||||
|
}
|
||||||
|
|
||||||
|
export const obtainReviewDetails = async (id:number) => {
|
||||||
|
return await request.get({ url: `/heli/purchase-order-make/obtainReviewDetails?id=` +id })
|
||||||
|
}
|
||||||
|
@ -68,33 +68,41 @@
|
|||||||
<el-table-column label="子项目编码" align="center" prop="projectSubCode" min-width="150" />
|
<el-table-column label="子项目编码" align="center" prop="projectSubCode" min-width="150" />
|
||||||
<el-table-column label="物料编码" align="center" min-width="180" >
|
<el-table-column label="物料编码" align="center" min-width="180" >
|
||||||
<template #header><span class="hl-table_header">*</span>物料编码</template>
|
<template #header><span class="hl-table_header">*</span>物料编码</template>
|
||||||
|
<!-- <template #default="scope">-->
|
||||||
|
<!-- <el-select-->
|
||||||
|
<!-- v-model="scope.row.boomCode"-->
|
||||||
|
<!-- placeholder="请输入物料编码或名称"-->
|
||||||
|
<!-- :remote-method="e => remoteMethod(e,scope.row)"-->
|
||||||
|
<!-- remote-show-suffix-->
|
||||||
|
<!-- remote-->
|
||||||
|
<!-- @click="remoteMethod(scope.row.boomCode,scope.row)"-->
|
||||||
|
<!-- :disabled="scope.row.orderStatus == 2"-->
|
||||||
|
<!-- clearable-->
|
||||||
|
<!-- reserve-keyword-->
|
||||||
|
<!-- filterable-->
|
||||||
|
<!-- @change="e => changeSupp(e,scope.row)"-->
|
||||||
|
<!-- :loading="meterialLoading"-->
|
||||||
|
<!-- class="!w-150px"-->
|
||||||
|
<!-- >-->
|
||||||
|
<!-- <el-option-->
|
||||||
|
<!-- v-for="item in scope.row.materialSelectList"-->
|
||||||
|
<!-- :key="item.code"-->
|
||||||
|
<!-- :label="item.code"-->
|
||||||
|
<!-- :value="item"-->
|
||||||
|
<!-- >-->
|
||||||
|
<!-- <span style="float: left">{{ item.name }}</span>-->
|
||||||
|
<!-- <span style="float: right; color: #8492a6; font-size: 13px">{{ item.code }}</span>-->
|
||||||
|
<!-- </el-option>-->
|
||||||
|
<!-- </el-select>-->
|
||||||
|
<!--</template>-->
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-select
|
<el-input v-model="scope.row.boomCode" disabled>
|
||||||
v-model="scope.row.boomCode"
|
<template #suffix>
|
||||||
placeholder="请输入物料编码或名称"
|
<Icon @click="serachLog(scope.row)" icon="ep:search" color="primary"/>
|
||||||
:remote-method="e => remoteMethod(e,scope.row)"
|
</template>
|
||||||
remote-show-suffix
|
</el-input>
|
||||||
remote
|
|
||||||
@click="remoteMethod(scope.row.boomCode,scope.row)"
|
|
||||||
:disabled="scope.row.orderStatus == 2"
|
|
||||||
clearable
|
|
||||||
reserve-keyword
|
|
||||||
filterable
|
|
||||||
@change="e => changeSupp(e,scope.row)"
|
|
||||||
:loading="meterialLoading"
|
|
||||||
class="!w-150px"
|
|
||||||
>
|
|
||||||
<el-option
|
|
||||||
v-for="item in scope.row.materialSelectList"
|
|
||||||
:key="item.code"
|
|
||||||
:label="item.code"
|
|
||||||
:value="item"
|
|
||||||
>
|
|
||||||
<span style="float: left">{{ item.name }}</span>
|
|
||||||
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.code }}</span>
|
|
||||||
</el-option>
|
|
||||||
</el-select>
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="标准件名称" align="center" prop="boomName" min-width="150" />
|
<el-table-column label="标准件名称" align="center" prop="boomName" min-width="150" />
|
||||||
<el-table-column label="规格型号" align="center" prop="boomSpec" min-width="150" />
|
<el-table-column label="规格型号" align="center" prop="boomSpec" min-width="150" />
|
||||||
@ -150,12 +158,9 @@ import * as purchaseOrderMakeDetailApi from '@/api/heli/purchaseordermakedetail'
|
|||||||
import { useCommonStateWithOut } from '@/store/modules/common'
|
import { useCommonStateWithOut } from '@/store/modules/common'
|
||||||
import * as matApi from '@/api/heli/material'
|
import * as matApi from '@/api/heli/material'
|
||||||
import { useUserStore } from '@/store/modules/user'
|
import { useUserStore } from '@/store/modules/user'
|
||||||
import matLog from './storageLog.vue'
|
import matLog from './storageLogs.vue'
|
||||||
import * as supplierApi from '@/api/heli/supplier'
|
import * as supplierApi from '@/api/heli/supplier'
|
||||||
import UserSelect from "@/views/heli/materialplan/userSelectNew.vue";
|
|
||||||
import {inject, ref} from "vue";
|
import {inject, ref} from "vue";
|
||||||
import { update } from 'lodash-es'
|
|
||||||
import { Hash } from 'crypto'
|
|
||||||
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
|
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
|
||||||
const userStore = useUserStore()
|
const userStore = useUserStore()
|
||||||
const username = userStore.getUser.nickname
|
const username = userStore.getUser.nickname
|
||||||
@ -170,7 +175,6 @@ import {
|
|||||||
formatDate, dateFormatter2
|
formatDate, dateFormatter2
|
||||||
} from "@/utils/formatTime";
|
} from "@/utils/formatTime";
|
||||||
const meterialLoading = ref(false)
|
const meterialLoading = ref(false)
|
||||||
const matLogRef = ref()
|
|
||||||
const loading = ref(true) // 列表的加载中
|
const loading = ref(true) // 列表的加载中
|
||||||
const list = ref([]) // 列表的数据
|
const list = ref([]) // 列表的数据
|
||||||
const total = ref(0) // 列表的总页数
|
const total = ref(0) // 列表的总页数
|
||||||
@ -200,6 +204,7 @@ const queryParams1 = reactive({
|
|||||||
})
|
})
|
||||||
const queryFormRef = ref() // 搜索的表单
|
const queryFormRef = ref() // 搜索的表单
|
||||||
const exportLoading = ref(false) // 导出的加载中
|
const exportLoading = ref(false) // 导出的加载中
|
||||||
|
const matLogRef = ref()
|
||||||
|
|
||||||
/** 查询列表 */
|
/** 查询列表 */
|
||||||
const getList = async () => {
|
const getList = async () => {
|
||||||
@ -207,7 +212,7 @@ const getList = async () => {
|
|||||||
try {
|
try {
|
||||||
multipleTable.value.clearSelection();
|
multipleTable.value.clearSelection();
|
||||||
const data = await purchaseOrderMakeDetailApi.page(queryParams)
|
const data = await purchaseOrderMakeDetailApi.page(queryParams)
|
||||||
|
|
||||||
list.value = data.list
|
list.value = data.list
|
||||||
for (const row of list.value ) {
|
for (const row of list.value ) {
|
||||||
// 如果boomCode不为空,则调用remoteMethod进行查询
|
// 如果boomCode不为空,则调用remoteMethod进行查询
|
||||||
@ -262,7 +267,9 @@ const getMateriallist = async(row) =>{
|
|||||||
const data = await matApi.getMaterialPage(queryMaterialParams)
|
const data = await matApi.getMaterialPage(queryMaterialParams)
|
||||||
row.materialSelectList = data.list
|
row.materialSelectList = data.list
|
||||||
}
|
}
|
||||||
|
const serachLog = (row) => {
|
||||||
|
matLogRef.value.open(row.id)
|
||||||
|
}
|
||||||
const handleSelectionChange = (selection) => {
|
const handleSelectionChange = (selection) => {
|
||||||
ids.value = selection;
|
ids.value = selection;
|
||||||
}
|
}
|
||||||
@ -283,13 +290,13 @@ const handleExportDetail = async () => {
|
|||||||
exportLoading.value = false
|
exportLoading.value = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const getMat = async (rowids,amount,ids) => {
|
const getMat = async (rowids,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].boomCode = 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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -315,14 +322,14 @@ const changeDate = async(e,row) => {
|
|||||||
await updateRow(5,row)
|
await updateRow(5,row)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const serachLog = (row) => {
|
// const serachLog = (row) => {
|
||||||
matLogRef.value.open(row.id,row.matCode)
|
// matLogRef.value.open(row.id,row.matCode)
|
||||||
}
|
// }
|
||||||
/** 搜索按钮操作 */
|
/** 搜索按钮操作 */
|
||||||
const handleQuery = () => {
|
const handleQuery = () => {
|
||||||
queryParams.pageNo = 1
|
queryParams.pageNo = 1
|
||||||
getList()
|
getList()
|
||||||
|
|
||||||
}
|
}
|
||||||
const opearteForm = async(type) =>{
|
const opearteForm = async(type) =>{
|
||||||
loading.value = true;
|
loading.value = true;
|
||||||
|
@ -0,0 +1,175 @@
|
|||||||
|
<template>
|
||||||
|
<Dialog title="实时库存" v-model="dialogVisible" width="80%">
|
||||||
|
<el-card class="hl-card">
|
||||||
|
|
||||||
|
<ContentWrap class="borderxx">
|
||||||
|
<el-form class="-mb-15px" :model="queryParams" ref="queryFormRef" :inline="true" label-width="120px">
|
||||||
|
<el-form-item label="物料名称" prop="matName" >
|
||||||
|
<el-input v-model="queryParams.name" placeholder="物料名称" clearable @keyup.enter="handleQuery" class="!w-240px" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="规格型号" prop="matName" >
|
||||||
|
<el-input v-model="queryParams.spec" placeholder="规格型号" clearable @keyup.enter="handleQuery" class="!w-240px" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="物料简称" prop="shortName" >
|
||||||
|
<el-input v-model="queryParams.shortName" placeholder="物料简称" clearable @keyup.enter="handleQuery" class="!w-240px" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item >
|
||||||
|
<el-button @click="handleQuery" type="primary">
|
||||||
|
<Icon icon="ep:search" class="mr-5px" /> 搜索
|
||||||
|
</el-button>
|
||||||
|
<el-button @click="resetQuery">
|
||||||
|
<Icon icon="ep:refresh" class="mr-5px" /> 重置
|
||||||
|
</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</ContentWrap>
|
||||||
|
|
||||||
|
<!-- 列表 -->
|
||||||
|
<ContentWrap>
|
||||||
|
<el-table ref="multipleTableRef" v-loading="loading" :data="list" :stripe="true" @row-click="clickRow" @selection-change="handleCurrentChange" :show-overflow-tooltip="true" class="hl-table">
|
||||||
|
<el-table-column
|
||||||
|
type="selection"
|
||||||
|
width="55"/>
|
||||||
|
<el-table-column type="index" width="100" fixed label="序号" align="center" />
|
||||||
|
<el-table-column label="物料编码" align="center" prop="code" fixed min-width="120" />
|
||||||
|
<el-table-column label="物料名称" align="center" prop="name" fixed min-width="120"/>
|
||||||
|
<el-table-column label="物料类型" align="center" prop="materialType" min-width="120">
|
||||||
|
<template #default="scope">
|
||||||
|
<dict-tag :type="DICT_TYPE.HELI_MATERIAL_TYPE" :value="scope.row.materialType" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="物料简称" align="center" prop="shortName" min-width="120"/>
|
||||||
|
<el-table-column label="规格/型号" align="center" prop="spec" min-width="120"/>
|
||||||
|
</el-table>
|
||||||
|
<!-- 分页 -->
|
||||||
|
<Pagination
|
||||||
|
:total="total" v-model:page="queryParams.pageNo" v-model:limit="queryParams.pageSize"
|
||||||
|
@pagination="getList" />
|
||||||
|
</ContentWrap>
|
||||||
|
</el-card>
|
||||||
|
<template #footer>
|
||||||
|
<span class="dialog-footer">
|
||||||
|
<el-button @click="dialogVisible = false">取消</el-button>
|
||||||
|
<el-button type="primary" @click="success">
|
||||||
|
确认
|
||||||
|
</el-button>
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
|
</Dialog>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
import {DICT_TYPE} from "@/utils/dict";
|
||||||
|
import * as MaterialApi from "@/api/heli/material";
|
||||||
|
defineOptions({ name: 'StorageLog' })
|
||||||
|
const printref = ref()
|
||||||
|
const whList = ref([])
|
||||||
|
const rgList = ref([])
|
||||||
|
const pnList = ref([])
|
||||||
|
const dialogVisible = ref(false)
|
||||||
|
|
||||||
|
|
||||||
|
const message = useMessage() // 消息弹窗
|
||||||
|
const { t } = useI18n() // 国际化
|
||||||
|
|
||||||
|
|
||||||
|
const loading = ref(true) // 列表的加载中
|
||||||
|
const list = ref([]) // 列表的数据
|
||||||
|
const total = ref(0) // 列表的总页数
|
||||||
|
const queryParams = reactive({
|
||||||
|
pageNo: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
code: undefined,
|
||||||
|
name: undefined,
|
||||||
|
matType: undefined,
|
||||||
|
lotNo: undefined,
|
||||||
|
whId: undefined,
|
||||||
|
rgId:undefined,
|
||||||
|
pnId: undefined,
|
||||||
|
headerNo: undefined,
|
||||||
|
spec:undefined,
|
||||||
|
materialType:undefined,
|
||||||
|
status:1,
|
||||||
|
shortName:undefined
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
const queryFormRef = ref() // 搜索的表单
|
||||||
|
|
||||||
|
const currentRow = ref()
|
||||||
|
const multipleTableRef = ref()
|
||||||
|
/** 查询列表 */
|
||||||
|
const getList = async () => {
|
||||||
|
loading.value = true
|
||||||
|
try {
|
||||||
|
const data = await MaterialApi.getbzjList(queryParams) ;
|
||||||
|
list.value = data.list
|
||||||
|
total.value = data.total
|
||||||
|
} finally {
|
||||||
|
loading.value = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const clickItem = ref([])
|
||||||
|
const handleCurrentChange = (val) => {
|
||||||
|
clickItem.value = val;
|
||||||
|
if(val.length > 1){
|
||||||
|
multipleTableRef.value!.clearSelection()
|
||||||
|
multipleTableRef.value!.toggleRowSelection(val.pop())
|
||||||
|
}
|
||||||
|
};
|
||||||
|
const clickRow = (row) => {
|
||||||
|
if (clickItem.value==null){
|
||||||
|
clickItem.value = [];
|
||||||
|
|
||||||
|
}
|
||||||
|
// 单选选中行
|
||||||
|
if ( clickItem.value[0] == row) {
|
||||||
|
// 取消
|
||||||
|
clickItem.value = [];
|
||||||
|
multipleTableRef.value!.clearSelection()
|
||||||
|
} else {
|
||||||
|
// 选择
|
||||||
|
clickItem.value.push(row);
|
||||||
|
multipleTableRef.value!.clearSelection()
|
||||||
|
multipleTableRef.value!.toggleRowSelection(row, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/** 搜索按钮操作 */
|
||||||
|
const handleQuery = () => {
|
||||||
|
queryParams.pageNo = 1
|
||||||
|
getList()
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 重置按钮操作 */
|
||||||
|
const resetQuery = () => {
|
||||||
|
queryFormRef.value.resetFields()
|
||||||
|
handleQuery()
|
||||||
|
}
|
||||||
|
|
||||||
|
const rowid = ref()
|
||||||
|
const open = async (rowids) => {
|
||||||
|
clickItem.value = null;
|
||||||
|
//multipleTableRef.value!.clearSelection()
|
||||||
|
dialogVisible.value = true
|
||||||
|
// queryParams.matName = matCode;
|
||||||
|
rowid.value = rowids
|
||||||
|
console.log(rowids)
|
||||||
|
console.log(rowid.value)
|
||||||
|
await getList();
|
||||||
|
|
||||||
|
}
|
||||||
|
defineExpose({ open }) // 提供 open 方法,用于打开弹窗
|
||||||
|
const emit = defineEmits(['success'])
|
||||||
|
// emit('success', multipleSelection.value)
|
||||||
|
const success = () => {
|
||||||
|
dialogVisible.value = false;
|
||||||
|
emit('success', rowid.value, clickItem.value[0].id, clickItem.value[0].code)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 初始化 **/
|
||||||
|
onMounted(async () => {
|
||||||
|
|
||||||
|
await getList()
|
||||||
|
})
|
||||||
|
</script>
|
@ -63,6 +63,8 @@
|
|||||||
size="large">批 准</el-button>
|
size="large">批 准</el-button>
|
||||||
<el-button @click="reject" v-if="formData.status == 1" size="large" type="danger">驳 回</el-button>
|
<el-button @click="reject" v-if="formData.status == 1" size="large" type="danger">驳 回</el-button>
|
||||||
<el-button @click="cancel" size="large">取 消</el-button>
|
<el-button @click="cancel" size="large">取 消</el-button>
|
||||||
|
<!-- <el-button @click="test" size="large">测试</el-button>-->
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
<template v-if="formData.type === 'detail'">
|
<template v-if="formData.type === 'detail'">
|
||||||
<el-button @click="cancel" size="large">取 消</el-button>
|
<el-button @click="cancel" size="large">取 消</el-button>
|
||||||
@ -159,6 +161,14 @@ const reject = async() => {
|
|||||||
|
|
||||||
const cancel = async () => {
|
const cancel = async () => {
|
||||||
router.push({ path: '/purchase/PurchaseOrderMake'});
|
router.push({ path: '/purchase/PurchaseOrderMake'});
|
||||||
|
tagsViewStore.delVisitedView(router.currentRoute.value)
|
||||||
|
|
||||||
|
}
|
||||||
|
const test = async () => {
|
||||||
|
const data = await PartPurchaseOrderApi.obtainReviewDetails(query.id)
|
||||||
|
console.log(data)
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const userList = ref<UserApi.UserVO[]>([]) // 用户列表
|
const userList = ref<UserApi.UserVO[]>([]) // 用户列表
|
||||||
|
Loading…
Reference in New Issue
Block a user