添加自动出入库逻辑
This commit is contained in:
parent
917680e1c6
commit
1af7bb7430
@ -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")
|
||||
|
@ -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;
|
||||
|
||||
}
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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,9 +213,7 @@ 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)){
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
materialMapper.insertBatch(materialDOList);
|
||||
storageMatMapper.insertBatch(storageMatDOS);
|
||||
storageMatMapper.insertBatch(outList);
|
||||
storageService.updateMatLogList(storageDO.getId(),2);
|
||||
storageService.updateMatLogList(out.getId(),2);
|
||||
|
||||
// materialMapper.insertBatch(materialDOList);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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: [{
|
||||
|
@ -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) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
|
||||
|
||||
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();
|
||||
}
|
||||
|
@ -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"/>
|
||||
|
@ -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;
|
||||
|
@ -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({
|
||||
|
Loading…
Reference in New Issue
Block a user