添加自动出入库逻辑

This commit is contained in:
z 2025-07-01 15:12:14 +08:00
parent 917680e1c6
commit 1af7bb7430
12 changed files with 240 additions and 102 deletions

View File

@ -66,9 +66,8 @@ public class OrderYsController {
@Operation(summary = "获得应收记录")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('heli:order-ys:query')")
public CommonResult<OrderYsRespVO> getOrderYs(@RequestParam("id") Integer id) {
OrderYsDO orderYs = orderYsService.getOrderYs(id);
return success(BeanUtils.toBean(orderYs, OrderYsRespVO.class));
public CommonResult<OrderYsDO> getOrderYs(@RequestParam("id") Integer id) {
return success(orderYsService.getOrderYs(id));
}
@GetMapping("/page")

View File

@ -59,14 +59,14 @@ public class OrderYsRespVO {
@ExcelProperty("备注")
private String rem;
private BigDecimal shouFuKuanBiLi;
private BigDecimal shouFuKuan;
private BigDecimal twoFuKuanBiLi;
private BigDecimal twoFuKuan;
private BigDecimal threeFuKuanBiLi;
private BigDecimal threeFuKuan;
private BigDecimal fourFuKuanBiLi;
private BigDecimal fiveFuKuanBiLi;
private BigDecimal sixFuKuanBiLi;
private BigDecimal fourFuKuan;
private BigDecimal fiveFuKuan;
private BigDecimal sixFuKuan;
}

View File

@ -171,4 +171,8 @@ public class PartPurchaseOrderPageRespVO extends BaseDO {
* 单据状态,0 待送审1已送审2已审核3已打回 默认是1
*/
private Integer status;
private String isFoam;
private Long projectId;
private Long projectPlanId;
private String customerId;
}

View File

@ -92,6 +92,7 @@ public interface PurchaseOrderMakeDetailMapper extends BaseMapperX<PurchaseOrder
.disableLogicDel()
.disableSubLogicDel()
.eq(PurchaseOrderMakeDO::getGoodsType, 2)
.eq(PurchaseOrderMakeDetailDO::getDeleted, 0)
.eq(Objects.nonNull(pageReqVO.getPurchaseOrderId()), PurchaseOrderMakeDO::getId, pageReqVO.getPurchaseOrderId())
.eq(StringUtils.isNotBlank(pageReqVO.getContractNo()), PurchaseOrderMakeDO::getContractNo, pageReqVO.getContractNo())
.eq(Objects.nonNull(pageReqVO.getDocumentStatus()), PurchaseOrderMakeDO::getStatus, pageReqVO.getDocumentStatus())
@ -103,8 +104,6 @@ public interface PurchaseOrderMakeDetailMapper extends BaseMapperX<PurchaseOrder
.like(Objects.nonNull(pageReqVO.getOwnerName()), AdminUserDO::getNickname, pageReqVO.getOwnerName())
.like(Objects.nonNull(pageReqVO.getSupplierName()), SupplierDO::getName, pageReqVO.getSupplierName());
String sqlStr= query.getTargetSql();
PageResult<PartPurchaseOrderPageRespVO> pageResult = selectJoinPage(pageReqVO, PartPurchaseOrderPageRespVO.class, query);
return pageResult;
}

View File

@ -134,14 +134,25 @@ public class PartPurchaseOrderServiceImpl implements PartPurchaseOrderService{
purchaseOrderNoDetailDO.setUpdateTime(null);
purchaseOrderNoDetailDO.setPurchaseOrderId(purchaseOrderId);
purchaseOrderNoDetailDO.setPurchaseRemAmount(detailDO.getPurchaseAmount());
PurchaseOrderMakeDetailDO orderMakeDetailDO = purchaseOrderMakeDetailMapper.selectById(detailDO.getId());
if (ObjectUtil.isNotEmpty(orderMakeDetailDO)){
PurchaseOrderMakeDO orderMakeDO = purchaseOrderMakeMapper.selectById(orderMakeDetailDO.getPurchaseOrderId());
if (ObjectUtil.isNotEmpty(orderMakeDO)){
purchaseOrderNoDetailDO.setProjectId(orderMakeDO.getProjectId());
purchaseOrderNoDetailDO.setProjectPlanId(orderMakeDO.getProjectPlanId());
purchaseOrderNoDetailDO.setCustomerId(orderMakeDO.getCustomerId());
}
}
purchaseOrderNoDetailMapper.insert(purchaseOrderNoDetailDO);
long purchaseOrderDetailId = purchaseOrderNoDetailDO.getId();
PurchaseOrderMakeDetailDO purchaseOrderMakeDetailDO = new PurchaseOrderMakeDetailDO();
purchaseOrderMakeDetailDO.setId(detailDO.getId());
purchaseOrderMakeDetailDO.setOrderStatus(2);
purchaseOrderMakeDetailDO.setPurchaseOrderNoId(purchaseOrderId);
purchaseOrderMakeDetailDO.setPurchaseOrderNoDetailId(purchaseOrderDetailId);
purchaseOrderMakeDetailDO.setPurchaseNo(purchaseOrderNoDO.getPurchaseNo());
purchaseOrderMakeDetailMapper.updateById(purchaseOrderMakeDetailDO);
});
@ -165,10 +176,12 @@ public class PartPurchaseOrderServiceImpl implements PartPurchaseOrderService{
List<MaterialPlanBoomDO> materialPlanBoomDOs= materialPlanBoomMapper.selectList("project_purchase_order_make_id", id);
materialPlanBoomDOs.forEach(materialPlanBoomDO -> {
MaterialPlanBoomDO materialPlanBoom = new MaterialPlanBoomDO();
materialPlanBoom.setId(materialPlanBoomDO.getId());
materialPlanBoom.setMplanStatus(2);
materialPlanBoomMapper.updateById(materialPlanBoom);
UpdateWrapper<MaterialPlanBoomDO> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("id", materialPlanBoomDO.getId())
.set("mplan_status", 2)
.set("rej_remark", null);
materialPlanBoomMapper.update(updateWrapper);
});
return true;
}
@ -181,11 +194,9 @@ public class PartPurchaseOrderServiceImpl implements PartPurchaseOrderService{
purchaseOrderMakeMapper.updateById(purchaseOrderMakeDO);
purchaseOrderMakeMapper.deleteById(purchaseOrderMakeDO);
List<PurchaseOrderMakeDetailDO> list= purchaseOrderMakeDetailMapper.selectList("purchase_order_id", updateReqVO.getId());
list.forEach(detailDO -> {
purchaseOrderNoDetailMapper.deleteById(detailDO);
});
LambdaUpdateWrapper<PurchaseOrderMakeDetailDO> wrapper = new LambdaUpdateWrapper<>();
wrapper.eq(PurchaseOrderMakeDetailDO::getPurchaseOrderId, updateReqVO.getId());
purchaseOrderMakeDetailMapper.delete(wrapper);
List<MaterialPlanBoomDO> materialPlanBoomDOs= materialPlanBoomMapper.selectList("project_purchase_order_make_id", updateReqVO.getId());
materialPlanBoomDOs.forEach(materialPlanBoom -> {
UpdateWrapper<MaterialPlanBoomDO> updateWrapper = new UpdateWrapper<>();
@ -357,13 +368,13 @@ public class PartPurchaseOrderServiceImpl implements PartPurchaseOrderService{
purchaseOrderMakeDetailDO.setTheWeight(updateReqVO.getTheWeight());
purchaseOrderMakeDetailDO.setDuEmpId(updateReqVO.getDuEmpId());
purchaseOrderMakeDetailDO.setIsFoam(updateReqVO.getIsFoam());
purchaseOrderMakeDetailDO.setPurchaseNo(purchaseOrderMakeDOPurchaseNo);
purchaseOrderMakeDetailMapper.insert(purchaseOrderMakeDetailDO);
long purchaseOrderMakeDetailId = purchaseOrderMakeDetailDO.getId();
MaterialPlanBoomDO materialPlanBoomDO = new MaterialPlanBoomDO();
materialPlanBoomDO.setId(updateReqVO.getId());
materialPlanBoomDO.setMplanStatus(1);
materialPlanBoomDO.setRejRemark("");
materialPlanBoomDO.setProjectPurchaseOrderMakeId(purchaseOrderMakeId);
materialPlanBoomDO.setPurchaseNo(purchaseOrderMakeDOPurchaseNo);
materialPlanBoomDO.setProjectPurchaseOrderMakeDetailId(purchaseOrderMakeDetailId);

View File

@ -10,19 +10,29 @@ import com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplandetail.Materi
import com.chanko.yunxi.mes.module.heli.dal.dataobject.procedure.ProcedureDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.processbom.ProcessBomDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.processbom.ProcessBomDetailDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.serialnumber.SerialNumberDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storage.StorageDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagemat.StorageMatDO;
import com.chanko.yunxi.mes.module.heli.dal.mysql.material.MaterialMapper;
import com.chanko.yunxi.mes.module.heli.dal.mysql.materialplan.MaterialPlanMapper;
import com.chanko.yunxi.mes.module.heli.dal.mysql.materialplanboom.MaterialPlanBoomMapper;
import com.chanko.yunxi.mes.module.heli.dal.mysql.materialplandetail.MaterialPlanDetailMapper;
import com.chanko.yunxi.mes.module.heli.dal.mysql.processbom.ProcessBomDetailMapper;
import com.chanko.yunxi.mes.module.heli.dal.mysql.processbom.ProcessBomMapper;
import com.chanko.yunxi.mes.module.heli.dal.mysql.storage.StorageMapper;
import com.chanko.yunxi.mes.module.heli.dal.mysql.storagemat.StorageMatMapper;
import com.chanko.yunxi.mes.module.heli.enums.CodeEnum;
import com.chanko.yunxi.mes.module.heli.service.procedure.ProcedureService;
import com.chanko.yunxi.mes.module.heli.service.serialnumber.SerialNumberService;
import com.chanko.yunxi.mes.module.heli.service.storage.StorageService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.*;
import com.chanko.yunxi.mes.module.heli.controller.admin.purchaseordernodetail.vo.*;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseordernodetail.PurchaseOrderNoDetailDO;
@ -34,6 +44,9 @@ import com.chanko.yunxi.mes.module.heli.dal.mysql.purchaseordernodetail.Purchase
import static com.chanko.yunxi.mes.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.chanko.yunxi.mes.framework.common.pojo.CommonResult.success;
import static com.chanko.yunxi.mes.framework.security.core.util.SecurityFrameworkUtils.getLoginUser;
import static com.chanko.yunxi.mes.module.heli.enums.CodeEnum.STOCK_IN;
import static com.chanko.yunxi.mes.module.heli.enums.CodeEnum.STOCK_OUT;
import static com.chanko.yunxi.mes.module.heli.enums.ErrorCodeConstants.*;
/**
@ -57,6 +70,16 @@ public class PurchaseOrderNoDetailServiceImpl implements PurchaseOrderNoDetailSe
private MaterialMapper materialMapper;
@Resource
private ProcessBomMapper pocessBomMapper;
@Resource
private SerialNumberService serialNumberService;
@Resource
private StorageMapper storageMapper;
@Resource
private StorageMatMapper storageMatMapper;
@Resource
private StorageService storageService;
@Override
public Long createPurchaseOrderNoDetail(PurchaseOrderNoDetailSaveReqVO createReqVO) {
@ -124,6 +147,36 @@ public class PurchaseOrderNoDetailServiceImpl implements PurchaseOrderNoDetailSe
@Transactional
public CommonResult<Boolean> receiveGoods(List<PurchaseOrderNoDetailDO> list) {
List<MaterialDO> materialDOList=new ArrayList<MaterialDO>();
//自动生成入库单
StorageDO storageDO = new StorageDO();
storageDO.setStockType(1);
// 月度流水号
SerialNumberDO serialNumberDO = serialNumberService.getSerialNumber(CodeEnum.STOCK_IN.name(), new SimpleDateFormat("yyyyMMdd").format(new Date()));
serialNumberDO.setSerialNumber(serialNumberDO.getSerialNumber()+1);
// 入库前缀
storageDO.setStockNo(STOCK_IN.getCode(serialNumberDO.getSerialNumber().toString()));
serialNumberService.updateSerialNumber(serialNumberDO);
storageDO.setStatus(2);
storageDO.setKeeper(getLoginUser().getId());
storageDO.setKeeperTime(LocalDateTime.now());
storageMapper.insert(storageDO);
//自动生成出库单
StorageDO out = new StorageDO();
out.setStockType(2);
// 月度流水号
SerialNumberDO serialNumber = serialNumberService.getSerialNumber(CodeEnum.STOCK_OUT.name(), new SimpleDateFormat("yyyyMMdd").format(new Date()));
serialNumber.setSerialNumber(serialNumber.getSerialNumber()+1);
// 出库前缀
out.setStockNo(STOCK_OUT.getCode(serialNumber.getSerialNumber().toString()));
serialNumberService.updateSerialNumber(serialNumber);
out.setStatus(2);
out.setOutbound(getLoginUser().getId());
out.setOutboundTime(LocalDateTime.now());
storageMapper.insert(out);
//入库物料集合
ArrayList<StorageMatDO> storageMatDOS = new ArrayList<>();
//出库库物料集合
ArrayList<StorageMatDO> outList = new ArrayList<>();
for (PurchaseOrderNoDetailDO detailDO : list) {
PurchaseOrderNoDetailDO byId = purchaseOrderNoDetailMapper.selectById(detailDO.getId());
if (ObjectUtil.isNotEmpty(byId)){
@ -134,6 +187,16 @@ public class PurchaseOrderNoDetailServiceImpl implements PurchaseOrderNoDetailSe
}
byId.setPurchaseRemAmount(byId.getPurchaseRemAmount().subtract(detailDO.getPurchaseRemAmounts()));
purchaseOrderNoDetailMapper.updateById(byId);
StorageMatDO storageMatDO = new StorageMatDO();
StorageMatDO outMat = new StorageMatDO();
storageMatDO.setStockId(storageDO.getId());
storageMatDO.setStorageOkQty(detailDO.getPurchaseRemAmounts());
storageMatDO.setProjectNo(byId.getProjectPlanSubId().toString());
storageMatDO.setProjectSubName(byId.getName());
outMat.setStockId(out.getId());
outMat.setStorageOkQty(detailDO.getPurchaseRemAmounts());
outMat.setProjectNo(byId.getProjectPlanSubId().toString());
outMat.setProjectSubName(byId.getName());
ProcessBomDetailDO bomDetailDO = processBomDetailMapper.selectById(detailDO.getBoomDetailId());
if (ObjectUtil.isNotEmpty(bomDetailDO)){
String bomCode="";
@ -150,10 +213,8 @@ public class PurchaseOrderNoDetailServiceImpl implements PurchaseOrderNoDetailSe
}
}
if (ObjectUtil.isNotEmpty(bomDetailDO.getBlueprintNo())){
if (ObjectUtil.isNotEmpty(processBomDO.getBlueprintNo())){
blueprintNo=bomDetailDO.getBlueprintNo();
}
}
MaterialPlanBoomDO boomDO = materialPlanBoomMapper.selectById(detailDO.getProjectMaterialPlanBoomId());
if (ObjectUtil.isNotEmpty(boomDO)){
ProcedureDO procedure = procedureService.getProcedure(boomDO.getProcedureId());
@ -170,13 +231,25 @@ public class PurchaseOrderNoDetailServiceImpl implements PurchaseOrderNoDetailSe
materialDO.setVirtualPart("Y");
MaterialDO material = materialMapper.selectMaterial(code);
if (ObjectUtil.isEmpty(material)){
materialDOList.add(materialDO);
// materialDOList.add(materialDO);
materialMapper.insert(materialDO);
storageMatDO.setMatId(materialDO.getId());
outMat.setMatId(materialDO.getId());
}else {
storageMatDO.setMatId(material.getId());
outMat.setMatId(material.getId());
}
}
storageMatDOS.add(storageMatDO);
outList.add(outMat);
}
}
storageMatMapper.insertBatch(storageMatDOS);
storageMatMapper.insertBatch(outList);
storageService.updateMatLogList(storageDO.getId(),2);
storageService.updateMatLogList(out.getId(),2);
}
}
}
}
materialMapper.insertBatch(materialDOList);
// materialMapper.insertBatch(materialDOList);
return success(true);
}

View File

@ -8,11 +8,17 @@ import com.chanko.yunxi.mes.module.heli.controller.admin.storageindetail.vo.Stor
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.serialnumber.SerialNumberDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storage.StorageDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storageindetail.StorageInDetailDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagemat.StorageMatDO;
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.storage.StorageMapper;
import com.chanko.yunxi.mes.module.heli.dal.mysql.storageindetail.StorageInDetailMapper;
import com.chanko.yunxi.mes.module.heli.dal.mysql.storagemat.StorageMatMapper;
import com.chanko.yunxi.mes.module.heli.enums.CodeEnum;
import com.chanko.yunxi.mes.module.heli.service.serialnumber.SerialNumberService;
import com.chanko.yunxi.mes.module.heli.service.storage.StorageService;
import com.sun.corba.se.spi.ior.IdentifiableFactory;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@ -22,6 +28,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
@ -34,8 +41,8 @@ import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils;
import com.chanko.yunxi.mes.module.heli.dal.mysql.storagein.StorageInMapper;
import static com.chanko.yunxi.mes.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.chanko.yunxi.mes.module.heli.enums.CodeEnum.PURCHASE_ORDER;
import static com.chanko.yunxi.mes.module.heli.enums.CodeEnum.STOCK_IN;
import static com.chanko.yunxi.mes.framework.security.core.util.SecurityFrameworkUtils.getLoginUser;
import static com.chanko.yunxi.mes.module.heli.enums.CodeEnum.*;
import static com.chanko.yunxi.mes.module.heli.enums.ErrorCodeConstants.*;
/**
@ -57,6 +64,12 @@ public class StorageInServiceImpl implements StorageInService {
private SerialNumberService serialNumberService;
@Resource
private PurchaseOrderNoMapper purchaseOrderNoMapper;
@Resource
private StorageMapper storageMapper;
@Resource
private StorageMatMapper storageMatMapper;
@Resource
private StorageService storageService;
@Override
public Long createStorageIn(StorageInSaveReqVO createReqVO) {
// 插入
@ -185,6 +198,10 @@ public class StorageInServiceImpl implements StorageInService {
}
StorageInDO storageInDO = new StorageInDO();
//入库物料集合
ArrayList<StorageMatDO> storageMatDOS = new ArrayList<>();
//出库库物料集合
ArrayList<StorageMatDO> outList = new ArrayList<>();
// 月度流水号
SerialNumberDO serialNumberDO = new SerialNumberDO();
serialNumberDO = serialNumberService.getSerialNumber(PURCHASE_ORDER.name(), new SimpleDateFormat("yyyyMMdd").format(new Date()));
@ -195,8 +212,54 @@ public class StorageInServiceImpl implements StorageInService {
storageInDO.setIsPrint("N");
storageInDO.setOrdDate(new Date());
storageInMapper.insert(storageInDO);
// 回写序列记录
serialNumberService.updateSerialNumber(serialNumberDO);
//自动生成入库单
StorageDO storageDO = new StorageDO();
storageDO.setStockType(1);
// 月度流水号
SerialNumberDO serialNumberDO1 = serialNumberService.getSerialNumber(CodeEnum.STOCK_IN.name(), new SimpleDateFormat("yyyyMMdd").format(new Date()));
serialNumberDO1.setSerialNumber(serialNumberDO1.getSerialNumber()+1);
// 入库前缀
storageDO.setStockNo(STOCK_IN.getCode(serialNumberDO1.getSerialNumber().toString()));
serialNumberService.updateSerialNumber(serialNumberDO1);
storageDO.setStatus(2);
storageDO.setKeeper(getLoginUser().getId());
storageDO.setKeeperTime(LocalDateTime.now());
storageMapper.insert(storageDO);
//自动生成出库单
StorageDO out = new StorageDO();
out.setStockType(2);
// 月度流水号
SerialNumberDO serialNumber = serialNumberService.getSerialNumber(CodeEnum.STOCK_OUT.name(), new SimpleDateFormat("yyyyMMdd").format(new Date()));
serialNumber.setSerialNumber(serialNumber.getSerialNumber()+1);
// 出库前缀
out.setStockNo(STOCK_OUT.getCode(serialNumber.getSerialNumber().toString()));
serialNumberService.updateSerialNumber(serialNumber);
out.setStatus(2);
out.setOutbound(getLoginUser().getId());
out.setOutboundTime(LocalDateTime.now());
storageMapper.insert(out);
List<StorageInDetailDO> storageInDetailDOList = new ArrayList<>();
for (PurchaseOrderNoDetailDO orderNoDetailDO : list) {
//入库明细
StorageMatDO storageMatDO = new StorageMatDO();
storageMatDO.setStockId(storageDO.getId());
storageMatDO.setStorageOkQty(orderNoDetailDO.getPurchaseRemAmounts());
storageMatDO.setProjectNo(ObjectUtil.isEmpty(orderNoDetailDO.getProjectPlanSubId())?null:orderNoDetailDO.getProjectPlanSubId().toString());
storageMatDO.setProjectSubName(orderNoDetailDO.getName());
storageMatDO.setMatId(orderNoDetailDO.getMaterialId());
storageMatDOS.add(storageMatDO);
//出库明细
StorageMatDO outMat = new StorageMatDO();
outMat.setStockId(out.getId());
outMat.setStorageOkQty(orderNoDetailDO.getPurchaseRemAmounts());
outMat.setProjectNo(ObjectUtil.isEmpty(orderNoDetailDO.getProjectPlanSubId())?null:orderNoDetailDO.getProjectPlanSubId().toString());
outMat.setProjectSubName(orderNoDetailDO.getName());
outMat.setMatId(orderNoDetailDO.getMaterialId());
outList.add(outMat);
StorageInDetailDO storageInDetailDO = new StorageInDetailDO();
storageInDetailDO.setStorageNoId(storageInDO.getId());
storageInDetailDO.setProjectSubCode(orderNoDetailDO.getProjectSubCode());
@ -250,8 +313,10 @@ public class StorageInServiceImpl implements StorageInService {
storageInDetailDOList.add(storageInDetailDO);
}
storageInDetailMapper.insertBatch(storageInDetailDOList);
// 回写序列记录
serialNumberService.updateSerialNumber(serialNumberDO);
storageMatMapper.insertBatch(storageMatDOS);
storageMatMapper.insertBatch(outList);
storageService.updateMatLogList(storageDO.getId(),2);
storageService.updateMatLogList(out.getId(),2);
return CommonResult.success(true);
}

View File

@ -78,35 +78,35 @@
>
<el-row>
<el-col :span="8">
<el-form-item label="首付款" prop="shouFuKuanBiLi" >
<el-input v-model="formData.shouFuKuanBiLi" placeholder="请输入应收金额" disabled />
<el-form-item label="首付款" prop="shouFuKuan" >
<el-input v-model="formData.shouFuKuan" placeholder="请输入" disabled />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="第二笔款" prop="twoFuKuanBiLi" >
<el-input v-model="formData.twoFuKuanBiLi" placeholder="请输入应收金额" disabled />
<el-form-item label="第二笔款" prop="twoFuKuan" >
<el-input v-model="formData.twoFuKuan" placeholder="请输入" disabled />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="第三笔款" prop="threeFuKuanBiLi" >
<el-input v-model="formData.threeFuKuanBiLi" placeholder="请输入应收金额" disabled />
<el-form-item label="第三笔款" prop="threeFuKuan" >
<el-input v-model="formData.threeFuKuan" placeholder="请输入" disabled />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="第四笔款" prop="fourFuKuanBiLi" >
<el-input v-model="formData.fourFuKuanBiLi" placeholder="请输入应收金额" disabled />
<el-form-item label="第四笔款" prop="fourFuKuan" >
<el-input v-model="formData.fourFuKuan" placeholder="请输入" disabled />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="第五笔款" prop="fiveFuKuanBiLi" >
<el-input v-model="formData.fiveFuKuanBiLi" placeholder="请输入应收金额" disabled />
<el-form-item label="第五笔款" prop="fiveFuKuan" >
<el-input v-model="formData.fiveFuKuan" placeholder="请输入" disabled />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="第六笔款" prop="sixFuKuanBiLi" >
<el-input v-model="formData.sixFuKuanBiLi" placeholder="请输入应收金额" disabled />
<el-form-item label="第六笔款" prop="sixFuKuan" >
<el-input v-model="formData.sixFuKuan" placeholder="请输入" disabled />
</el-form-item>
</el-col>
</el-row>
@ -209,12 +209,12 @@ const formData = ref({
orderYsDetails: [],
rem: undefined,
amount:undefined,
shouFuKuanBiLi:undefined,
twoFuKuanBiLi:undefined,
threeFuKuanBiLi:undefined,
fourFuKuanBiLi:undefined,
fiveFuKuanBiLi:undefined,
sixFuKuanBiLi:undefined
shouFuKuan:undefined,
twoFuKuan:undefined,
threeFuKuan:undefined,
fourFuKuan:undefined,
fiveFuKuan:undefined,
sixFuKuan:undefined
})
// const subFormRules = reactive({
// paymentDate: [{

View File

@ -145,6 +145,7 @@
}}
</template>
</el-table-column>
<el-table-column label="打回原因" align="center" prop="rejRemark" min-width="120" />
<el-table-column label="采购单号" align="center" prop="purchaseNo" min-width="120" />
</el-table>
<!-- 分页 -->
@ -161,21 +162,15 @@
import { getIntDictOptions, DICT_TYPE } from '@/utils/dict'
import download from '@/utils/download'
import { useCommonStateWithOut } from '@/store/modules/common'
import UserSelect from "@/views/heli/materialplan/userSelectNew.vue";
import {inject, ref} from "vue";
import * as MaterialPlanApi from "@/api/heli/materialplan";
import * as MaterialPlanBoomApi from "@/api/heli/materialplanboom";
import * as PartPurchaseOrderApi from "@/api/heli/partpurchaseorder";
import {ElTable} from "element-plus";
import {useUserStore} from "@/store/modules/user";
import {dateFormatter1} from "@/utils/formatTime";
import {getPartPurchasePages} from "@/api/heli/materialplan";
import SupplierSelect from "@/views/heli/hlvuestyle/supplierSelect.vue";
import {getMaterialPlanBoom} from "@/api/heli/materialplanboom";
import {createPurchaseOrderMake} from "@/api/heli/partpurchaseorder";
const formLoading = ref(false) // 12
defineOptions({ name: 'standard' })
const userStore = useUserStore()
const username = userStore.getUser.nickname
const reload: any = inject('reload')
@ -215,8 +210,16 @@ const exportLoading = ref(false) // 导出的加载中
const getList = async () => {
loading.value = true
try {
list.value=[]
const data = await MaterialPlanApi.getPartPurchasePages(queryParams)
list.value = data.list
list.value.forEach(item=> {
if(item.isFoams == 'Y'){
item.isFoams = true
}else{
item.isFoams = false
}
})
total.value = data.total
} finally {
loading.value = false
@ -237,22 +240,16 @@ const handleExportDetail = async () => {
}
}
const handleOutsourcingChange= async (row: any) => {
console.log(1)
if(row.isFoams == false){
row.isFoam = 'N'
console.log(2)
}else{
console.log(3)
row.isFoam = 'Y'
console.log(row.isFoam)
}
}
const handleSelectionChange = (val) => {
// multipleTable.value.clearSelection()
multipleTable.value=val
console.log( val)
console.log( multipleTable.value)
}
/** 搜索按钮操作 */
const handleQuery = () => {
@ -267,14 +264,6 @@ const handleSelectedUser = (currentIndex, newValue: any) => {
list.value[currentIndex].supplierIds = newValue?.id
}
const singleSubmission= (val) =>{
multipleTable.value=[]
multipleTable.value.push(val)
submitForm();
}
const routerToPurchaseOrderNo=()=>{
router.push({ path: '/purchase/purchaseorderno'});
}
const singleSubmissions=()=>{
submitForm();
}

View File

@ -42,6 +42,11 @@
<el-table-column prop="projectSubCode" min-width="200" label="子项目编码" align="center"/>
<el-table-column prop="boomName" min-width="200" label="物料名称" align="center"/>
<el-table-column prop="procedureName" min-width="120" label="工序" align="center"/>
<el-table-column prop="isFoam" min-width="120" label="是否泡沫" align="center">
<template #default="scope">
{{ scope.row.isFoam=='Y'?"是":"否"}}
</template>
</el-table-column>
<el-table-column prop="composition" min-width="120" label="材质" align="center"/>
<el-table-column prop="boomAmount" min-width="100" label="需求数量" align="center"/>
<el-table-column prop="purchaseAmount" min-width="100" label="采购数量" align="center"/>

View File

@ -215,20 +215,13 @@ const submitForm = async () => {
}
// // 3.
// for (const item of list) {
// if (item.projectMaterialPlanNo) {
// message.error(`${item.procedureName} ${item.materialName} ,`);
// return;
// }
// if (!item.boomArriveDate) { // boomArriveDate
// message.error(`${item.procedureName} ${item.materialName} ,`);
// return;
// }
// if (!item.duEmpId) {
// message.error(`${item.procedureName} ${item.materialName} ,`);
// return;
// }
// }
for (const item of list) {
if (item.orderStatus==2) {
message.error(`工序${item.procedureName}中零件 ${item.boomName} 已生成采购订单,请确认`);
return;
}
}
// 4. Element Plus
formLoading.value = true;

View File

@ -81,6 +81,7 @@
<el-button @click="receiveGoods()" type="primary" size="large" >收货</el-button>
<el-button @click="isPrint()" type="primary" size="large" :loading="printLoading">打印</el-button>
<el-button @click="deleteForm()" type="danger" size="large" >删除</el-button>
<el-button @click="cancel" size="large"> </el-button>
</div>
</el-card>
@ -260,12 +261,11 @@ const handleSelectionChange = (val) => {
multipleTable.value=val
}
const closeForm = async () => {
const cancel = async () => {
router.push({ path: '/purchase/purchaseorderno' })
tagsViewStore.delVisitedView(router.currentRoute.value)
}
const userList = ref<UserApi.UserVO[]>([]) //
const queryParams = reactive({