代码修改

This commit is contained in:
liuhanqing
2026-03-25 14:32:32 +08:00
parent f4e3d2c898
commit f76c277d79
28 changed files with 589 additions and 917 deletions

View File

@@ -9,6 +9,7 @@ import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.in.stockin.domain.InStockin; import com.ruoyi.in.stockin.domain.InStockin;
import com.ruoyi.in.stockin.domain.Material;
import com.ruoyi.in.stockin.domain.vo.InstockInVo; import com.ruoyi.in.stockin.domain.vo.InstockInVo;
import com.ruoyi.in.stockin.service.IInStockinService; import com.ruoyi.in.stockin.service.IInStockinService;
import com.ruoyi.in.stockinfinish.service.IInStockinFinishService; import com.ruoyi.in.stockinfinish.service.IInStockinFinishService;
@@ -17,6 +18,7 @@ import jakarta.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@@ -116,4 +118,25 @@ public class InStockinController extends BaseController
{ {
return inStockinService.productBack(list); return inStockinService.productBack(list);
} }
/**
* 导入物料数据
*/
@Log(title = "物料管理", businessType = BusinessType.IMPORT)
@PostMapping("/importData")
public AjaxResult importData(MultipartFile file) throws Exception {
ExcelUtil<Material> util = new ExcelUtil<>(Material.class);
List<Material> materialList = util.importExcel(file.getInputStream());
String message = inStockinService.importMaterial(materialList);
return AjaxResult.success(message);
}
/**
* 下载模板
*/
@PostMapping("/importTemplate")
public void importTemplate(HttpServletResponse response) {
ExcelUtil<Material> util = new ExcelUtil<>(Material.class);
util.importTemplateExcel(response, "物料数据");
}
} }

View File

@@ -104,6 +104,16 @@ public class InStockin extends BaseEntity
private String materialDesc; private String materialDesc;
private List<String> typeData; private List<String> typeData;
/*代号*/
private String spare9;
public String getSpare9() {
return spare9;
}
public void setSpare9(String spare9) {
this.spare9 = spare9;
}
public List<String> getTypeData() { public List<String> getTypeData() {
return typeData; return typeData;

View File

@@ -0,0 +1,82 @@
package com.ruoyi.in.stockin.domain;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
* 物料领用/来件对象(根据你的Excel字段生成)
*/
@Data
public class Material extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 主键ID */
private Long id;
/** 代号 */
@Excel(name = "代号")
private String code;
/** 名称 */
@Excel(name = "名称")
private String name;
/** 单重 */
@Excel(name = "单重")
private BigDecimal singleWeight;
/** 数量 */
@Excel(name = "数量")
private Integer quantity;
/** 实来数量 */
@Excel(name = "实来数量")
private Integer actualArriveQuantity;
/** 实领数量 */
@Excel(name = "实领数量")
private Integer actualReceiveQuantity;
/** 领件人 */
@Excel(name = "领件人")
private String receiver;
/** 领件日期 */
@Excel(name = "领件日期", dateFormat = "yyyy-MM-dd")
private Date receiveTime;
/** 存放地 */
@Excel(name = "存放地")
private String storageLocation;
/** 剩余数量 */
@Excel(name = "剩余数量")
private Integer remainQuantity;
/** 来件厂家 */
@Excel(name = "来件厂家")
private String supplier;
/** 来件日期 */
@Excel(name = "来件日期", dateFormat = "yyyy-MM-dd")
private Date arriveTime;
/** 备注 */
@Excel(name = "备注")
private String remark;
/** 路线 */
@Excel(name = "路线")
private String route;
/** 台次 */
@Excel(name = "台次")
private String tableNumber;
/** 项目名称 */
@Excel(name = "项目名称")
private String projectName;
}

View File

@@ -2,6 +2,7 @@ package com.ruoyi.in.stockin.service;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.in.stockin.domain.InStockin; import com.ruoyi.in.stockin.domain.InStockin;
import com.ruoyi.in.stockin.domain.Material;
import com.ruoyi.in.stockin.domain.vo.InstockInVo; import com.ruoyi.in.stockin.domain.vo.InstockInVo;
import com.ruoyi.search.ViewOutJobFlow.domain.ViewOutJobFlow; import com.ruoyi.search.ViewOutJobFlow.domain.ViewOutJobFlow;
@@ -75,4 +76,6 @@ public interface IInStockinService
public List<InStockin> selectStockinByDetail(String stockinDetailId); public List<InStockin> selectStockinByDetail(String stockinDetailId);
AjaxResult productBack(List<ViewOutJobFlow> list); AjaxResult productBack(List<ViewOutJobFlow> list);
String importMaterial(List<Material> materialList);
} }

View File

@@ -3,6 +3,8 @@ package com.ruoyi.in.stockin.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjUtil;
import com.ruoyi.bas.BasProduct.domain.BasProduct; import com.ruoyi.bas.BasProduct.domain.BasProduct;
import com.ruoyi.bas.basJobId.service.IBasJobIdService; import com.ruoyi.bas.basJobId.service.IBasJobIdService;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;
@@ -13,6 +15,7 @@ import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.in.bind.domain.InStockTraycodeBindMsg; import com.ruoyi.in.bind.domain.InStockTraycodeBindMsg;
import com.ruoyi.in.bind.mapper.InStockTraycodeBindMsgMapper; import com.ruoyi.in.bind.mapper.InStockTraycodeBindMsgMapper;
import com.ruoyi.in.stockin.domain.InStockin; import com.ruoyi.in.stockin.domain.InStockin;
import com.ruoyi.in.stockin.domain.Material;
import com.ruoyi.in.stockin.domain.vo.InstockInVo; import com.ruoyi.in.stockin.domain.vo.InstockInVo;
import com.ruoyi.in.stockin.mapper.InStockinMapper; import com.ruoyi.in.stockin.mapper.InStockinMapper;
import com.ruoyi.in.stockin.service.IInStockinService; import com.ruoyi.in.stockin.service.IInStockinService;
@@ -127,7 +130,7 @@ public class InStockinServiceImpl implements IInStockinService
} }
@Override @Override
@Transactional(rollbackFor = Exception.class) //@Transactional(rollbackFor = Exception.class)
public AjaxResult insertInStockin(InstockInVo inStockinVo) { public AjaxResult insertInStockin(InstockInVo inStockinVo) {
List<BasProduct> productVoList = inStockinVo.getProductVoList(); List<BasProduct> productVoList = inStockinVo.getProductVoList();
if (CollUtil.isEmpty(productVoList)){ if (CollUtil.isEmpty(productVoList)){
@@ -159,7 +162,6 @@ public class InStockinServiceImpl implements IInStockinService
inStockin.setWarehouseId(inStockinVo.getWarehouseId()); inStockin.setWarehouseId(inStockinVo.getWarehouseId());
inStockin.setStatus("1"); inStockin.setStatus("1");
inStockin.setStockSource(inStockinVo.getStockSource()); inStockin.setStockSource(inStockinVo.getStockSource());
//inStockin.setSpare1(inStockinVo.getProductType());
inStockin.setSpare5(inStockinVo.getRemark()); inStockin.setSpare5(inStockinVo.getRemark());
inStockinMapper.insertInStockin(inStockin); inStockinMapper.insertInStockin(inStockin);
for (int i = 1; i <= productVoList.size(); i++) { for (int i = 1; i <= productVoList.size(); i++) {
@@ -235,12 +237,9 @@ public class InStockinServiceImpl implements IInStockinService
if (CollUtil.isEmpty(oldBasStockList) && is4DigitNumber(inStockTraycodeBindMsg.getTrayCode())) { if (CollUtil.isEmpty(oldBasStockList) && is4DigitNumber(inStockTraycodeBindMsg.getTrayCode())) {
throw new RuntimeException(inStockTraycodeBindMsg.getTrayCode() + "尚未入库,查询不到库存"); throw new RuntimeException(inStockTraycodeBindMsg.getTrayCode() + "尚未入库,查询不到库存");
} }
//查询 合同号 产品号 代号 台次 物料编码 一致的老库存 进行数量合并 //查询 代号物料编码 一致的老库存 进行数量合并
Optional<BasStock> sameStock = oldBasStockList.stream().filter(x -> Optional<BasStock> sameStock = oldBasStockList.stream().filter(x ->
inStockinDetail.getSpare6().equals(x.getOrderId()) &&
inStockinDetail.getSpare7().equals(x.getPower()) &&
inStockinDetail.getSpare9().equals(x.getDistribution()) && inStockinDetail.getSpare9().equals(x.getDistribution()) &&
inStockinDetail.getSpare5().equals(x.getSpare5()) &&
inStockinDetail.getProductId().equals(x.getProductId()) inStockinDetail.getProductId().equals(x.getProductId())
).findFirst(); ).findFirst();
if (sameStock.isPresent()) { if (sameStock.isPresent()) {
@@ -275,7 +274,7 @@ public class InStockinServiceImpl implements IInStockinService
stock.setStockinDetailId(inStockinDetail.getStockinDetailId()); stock.setStockinDetailId(inStockinDetail.getStockinDetailId());
stock.setInType(old.getInType()); stock.setInType(old.getInType());
//stock.setLotNo(mydoJobDetail.getLotNo()); //stock.setLotNo(mydoJobDetail.getLotNo());
stock.setProductName(inStockinDetail.getProductName()); stock.setProductName(inStockinDetail.getSpare8());
//合同号 //合同号
stock.setOrderId(inStockinDetail.getSpare6()); stock.setOrderId(inStockinDetail.getSpare6());
//产品号 //产品号
@@ -286,6 +285,16 @@ public class InStockinServiceImpl implements IInStockinService
stock.setSpare5(inStockinDetail.getSpare5()); stock.setSpare5(inStockinDetail.getSpare5());
//部门 //部门
stock.setModel(SecurityUtils.getDeptId().toString()); stock.setModel(SecurityUtils.getDeptId().toString());
//存货名称
stock.setProductName(inStockinDetail.getSpare8());
//单重
stock.setNetWeight(inStockinDetail.getSpare4());
//路线
stock.setGrossWeight(inStockinDetail.getSpare3());
//供应商
stock.setPhase(inStockinDetail.getSupplierId());
stock.setRemark(inStockinDetail.getRemark());
basStockList.add(stock); basStockList.add(stock);
} }
} }
@@ -440,4 +449,49 @@ public class InStockinServiceImpl implements IInStockinService
} }
return AjaxResult.success(); return AjaxResult.success();
} }
@Override
public String importMaterial(List<Material> materialList) {
//未到货
List<Material> list1 = materialList.stream().filter(x -> ObjUtil.isNull(x.getActualArriveQuantity())).toList();
//生成入库单据
String warehouseId = null;
LoginUser loginUser = SecurityUtils.getLoginUser();
List<SysRole> roles = loginUser.getUser().getRoles();
if (CollUtil.isEmpty(roles)) {
//如果未设置角色 ,直接返回空列表
return "未设置角色";
}
//入库需要查看本部门任务
Optional<SysRole> first = roles.stream().filter(x -> "role1".equals(x.getRoleKey()) || "role3".equals(x.getRoleKey())).findFirst();
if (first.isPresent()) {
//二联合普通人员
warehouseId= "02";
}
Optional<SysRole> first1 = roles.stream().filter(x -> "role2".equals(x.getRoleKey()) || "role4".equals(x.getRoleKey())).findFirst();
if (first1.isPresent()) {
//三联合普通人员
warehouseId= "01";
}
for (Material material : list1) {
InstockInVo inStockinVo = new InstockInVo();
inStockinVo.setStockSource("1");
inStockinVo.setInType("1");
inStockinVo.setWarehouseId(warehouseId);
List<BasProduct> list = new ArrayList<>();
BasProduct basProduct = new BasProduct();
basProduct.setProductId(material.getCode());
basProduct.setSpare9(material.getCode());
basProduct.setSpare8(material.getName());
basProduct.setSpare4(Convert.toStr(material.getSingleWeight()));
basProduct.setQuantity(material.getQuantity());
basProduct.setSpare3(material.getRoute());
basProduct.setSpare5(material.getTableNumber());
basProduct.setSupplierId(material.getSupplier());
list.add(basProduct);
inStockinVo.setProductVoList(list);
insertInStockin(inStockinVo);
}
return "";
}
} }

View File

@@ -28,7 +28,7 @@ public class InStockinDetail extends BaseEntity
/** 子单ID */ /** 子单ID */
private String stockinDetailId; private String stockinDetailId;
/** 主单GUID */ /** 主单GUID inStockinDetail*/
@Excel(name = "主单GUID") @Excel(name = "主单GUID")
private String stockinGuid; private String stockinGuid;

View File

@@ -494,7 +494,6 @@ public class MydoJobServiceImpl implements IMydoJobService {
stock.setStockStatus("1"); stock.setStockStatus("1");
stock.setOutQuantity("0"); stock.setOutQuantity("0");
stock.setProductStatus(productStatus); stock.setProductStatus(productStatus);
stock.setLotNo(mydoJobDetail.getLotNo());
stock.setInDate(DateUtil.formatDateTime(new Date())); stock.setInDate(DateUtil.formatDateTime(new Date()));
stock.setProductGuid(mydoJobDetail.getProductGuid()); stock.setProductGuid(mydoJobDetail.getProductGuid());
stock.setQuantity(mydoJobDetail.getInQuantity()); stock.setQuantity(mydoJobDetail.getInQuantity());
@@ -506,20 +505,14 @@ public class MydoJobServiceImpl implements IMydoJobService {
stock.setStockinDetailId(mydoJobDetail.getInOrOutDId()); stock.setStockinDetailId(mydoJobDetail.getInOrOutDId());
stock.setInType(mydoJob.getInOrOut()); stock.setInType(mydoJob.getInOrOut());
stock.setLotNo(mydoJobDetail.getLotNo()); stock.setLotNo(mydoJobDetail.getLotNo());
stock.setProductName(mydoJobDetail.getProductName()); stock.setProductName(mydoJobDetail.getSpare1());
stock.setSpare1(mydoJobDetail.getSpare1());
stock.setSpare3(mydoJobDetail.getSpare3());
stock.setSpare4(mydoJobDetail.getSpare4());
stock.setSpare5(mydoJobDetail.getSpare5());
stock.setSpare6(mydoJobDetail.getPrintDate());
stock.setSpare8(mydoJobDetail.getSpare8());
stock.setVoltage(mydoJobDetail.getSpare2());
stock.setPower(mydoJobDetail.getSpare7());
stock.setPhase(mydoJobDetail.getSupplierId());
stock.setDistribution(mydoJobDetail.getSpare9());
stock.setInClassId(mydoJobDetail.getUnit());
stock.setOrderId(mydoJobDetail.getSpare6()); stock.setOrderId(mydoJobDetail.getSpare6());
//stock.setNetWeight(mydoJob.getLineId()); stock.setPower(mydoJobDetail.getSpare7());
stock.setDistribution(mydoJobDetail.getSpare9());
stock.setSpare5(mydoJobDetail.getSpare5());
stock.setNetWeight(mydoJobDetail.getSpare2());
stock.setGrossWeight(mydoJobDetail.getSpare3());
stock.setPhase(mydoJobDetail.getSupplierId());
return stock; return stock;
} }

View File

@@ -137,8 +137,8 @@ public class OutStockoutController extends BaseController {
@Log(title = "出库主单状态改变", businessType = BusinessType.OTHER) @Log(title = "出库主单状态改变", businessType = BusinessType.OTHER)
@RequestMapping("/changeStatus") @RequestMapping("/changeStatus")
@ResponseBody @ResponseBody
public String changeStatus(@RequestParam("stockoutIds") String[] stockoutIds, @RequestParam("status") String status,@RequestParam("newStatus")String newStatus,@RequestParam(value = "exitId",required = false)String exitId) { public String changeStatus(@RequestParam("stockoutIds") String[] stockoutIds, @RequestParam("status") String status,@RequestParam("newStatus")String newStatus,@RequestParam(value = "exitId",required = false)String exitId,@RequestParam(value = "pickUser",required = false)String pickUser) {
String s = outStockoutService.updateOutStockoutStatus(stockoutIds, status, newStatus,exitId); String s = outStockoutService.updateOutStockoutStatus(stockoutIds, status, newStatus,exitId,pickUser);
return s; return s;
} }

View File

@@ -67,7 +67,7 @@ public interface IOutStockoutService
*/ */
public String saveBill(OutStockoutVo outStockoutVo); public String saveBill(OutStockoutVo outStockoutVo);
public String updateOutStockoutStatus(String[] stockoutIds, String status,String newStatus,String exitId); public String updateOutStockoutStatus(String[] stockoutIds, String status,String newStatus,String exitId,String pickUser);
AjaxResult autoAllot(String stockoutId); AjaxResult autoAllot(String stockoutId);

View File

@@ -129,13 +129,11 @@ public class OutStockoutServiceImpl implements IOutStockoutService {
outStockout.setStockoutId(stockOutId); outStockout.setStockoutId(stockOutId);
outStockout.setStockoutGuid(UUID.randomUUID().toString()); outStockout.setStockoutGuid(UUID.randomUUID().toString());
outStockout.setCreateDate(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); outStockout.setCreateDate(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
String username = SecurityContextHolder.getContext().getAuthentication().getName();
outStockout.setCreateManId(username);
outStockout.setStatus("1"); outStockout.setStatus("1");
outStockout.setStockoutSource(outStockoutVo.getOutStockout().getStockoutSource()); outStockout.setStockoutSource(outStockoutVo.getOutStockout().getStockoutSource());
try { try {
if ("1".equals(outStockoutVo.getOutStockout().getStockoutSource())) { if ("1".equals(outStockoutVo.getOutStockout().getStockoutSource())) {
outStockout.setCreateManId(com.ruoyi.common.core.text.Convert.toStr(SecurityUtils.getUserId())); outStockout.setCreateManId(Convert.toStr(SecurityUtils.getUserId()));
outStockout.setDepartmentNo(Convert.toStr(SecurityUtils.getDeptId())); outStockout.setDepartmentNo(Convert.toStr(SecurityUtils.getDeptId()));
} else if ("2".equals(outStockoutVo.getOutStockout().getStockoutSource())) { } else if ("2".equals(outStockoutVo.getOutStockout().getStockoutSource())) {
outStockout.setCreateManId("1"); outStockout.setCreateManId("1");
@@ -164,7 +162,7 @@ public class OutStockoutServiceImpl implements IOutStockoutService {
} }
@Override @Override
public String updateOutStockoutStatus(String[] stockoutIds, String status, String newStatus, String exitId) { public String updateOutStockoutStatus(String[] stockoutIds, String status, String newStatus, String exitId,String pickUser) {
HashMap<String, String> map = new HashMap<>(); HashMap<String, String> map = new HashMap<>();
StringBuilder stringBuilder = new StringBuilder(); StringBuilder stringBuilder = new StringBuilder();
for (String stockoutId : stockoutIds) { for (String stockoutId : stockoutIds) {
@@ -173,6 +171,7 @@ public class OutStockoutServiceImpl implements IOutStockoutService {
map.put("newStatus", newStatus); map.put("newStatus", newStatus);
map.put("exitId", exitId); map.put("exitId", exitId);
map.put("userName", SecurityUtils.getUsername()); map.put("userName", SecurityUtils.getUsername());
map.put("pickUser", pickUser);
outStockoutMapper.updateOutStockoutStatus(map); outStockoutMapper.updateOutStockoutStatus(map);
stringBuilder.append(",").append(map.get("v_resultString")); stringBuilder.append(",").append(map.get("v_resultString"));
} }

View File

@@ -153,11 +153,11 @@ public class OutStockoutDetail
/** 净重 */ /** 净重 */
@Excel(name = "净重") @Excel(name = "净重")
private BigDecimal netWeight; private String netWeight;
/** 毛重 */ /** 毛重 */
@Excel(name = "毛重") @Excel(name = "毛重")
private BigDecimal grossWeight; private String grossWeight;
/** 分销 */ /** 分销 */
@Excel(name = "分销") @Excel(name = "分销")
@@ -313,19 +313,19 @@ public class OutStockoutDetail
this.phase = phase; this.phase = phase;
} }
public BigDecimal getNetWeight() { public String getNetWeight() {
return netWeight; return netWeight;
} }
public void setNetWeight(BigDecimal netWeight) { public void setNetWeight(String netWeight) {
this.netWeight = netWeight; this.netWeight = netWeight;
} }
public BigDecimal getGrossWeight() { public String getGrossWeight() {
return grossWeight; return grossWeight;
} }
public void setGrossWeight(BigDecimal grossWeight) { public void setGrossWeight(String grossWeight) {
this.grossWeight = grossWeight; this.grossWeight = grossWeight;
} }

View File

@@ -25,7 +25,7 @@ import com.ruoyi.common.core.page.TableDataInfo;
* 库存物资Controller * 库存物资Controller
* *
* @author ruoyi * @author ruoyi
* @date 2025-09-12 * @date 2026-03-25
*/ */
@RestController @RestController
@RequestMapping("/out/productAndStock") @RequestMapping("/out/productAndStock")
@@ -45,17 +45,6 @@ public class ViewProductAndStockController extends BaseController
List<ViewProductAndStock> list = viewProductAndStockService.selectViewProductAndStockList(viewProductAndStock); List<ViewProductAndStock> list = viewProductAndStockService.selectViewProductAndStockList(viewProductAndStock);
return getDataTable(list); return getDataTable(list);
} }
/**
* 查询库存物资列表
*/
@PreAuthorize("@ss.hasPermi('out:productAndStock:list')")
@GetMapping("/pd/list")
public TableDataInfo pdList(ViewProductAndStock viewProductAndStock)
{
startPage();
List<ViewProductAndStock> list = viewProductAndStockService.selectViewProductAndStockPdList(viewProductAndStock);
return getDataTable(list);
}
/** /**
* 导出库存物资列表 * 导出库存物资列表

View File

@@ -9,143 +9,63 @@ import com.ruoyi.common.core.domain.BaseEntity;
* 库存物资对象 view_product_and_stock * 库存物资对象 view_product_and_stock
* *
* @author ruoyi * @author ruoyi
* @date 2025-10-21 * @date 2026-03-25
*/ */
public class ViewProductAndStock public class ViewProductAndStock extends BaseEntity
{ {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** 序号 */ /** id */
@Excel(name = "序号") @Excel(name = "id")
private Long onlyIdentity; private Long onlyIdentity;
/** 物料编码 */ /** 物料编码 */
@Excel(name = "物料编码") @Excel(name = "物料编码")
private String productId; private String productId;
/** 批次 */
@Excel(name = "批次")
private String lotNo;
/** 物料名称 */ /** 物料名称 */
@Excel(name = "物料名称") @Excel(name = "物料名称")
private String productName; private String productName;
/** 库存数量 */ /** 数量 */
@Excel(name = "库存数量") @Excel(name = "数量")
private String quantity; private String quantity;
/** 仓库 */ /** 仓库id */
@Excel(name = "仓库") @Excel(name = "仓库id")
private String warehouseId; private String warehouseId;
/** 来源 */
@Excel(name = "来源")
private String spare1;
/** 套账 */
@Excel(name = "套账")
private String spare3;
/** 用途 */
@Excel(name = "用途")
private String spare4;
/** 台次 */
@Excel(name = "台次")
private String spare5;
/** 入库单价 */
@Excel(name = "入库单价")
private String spare6;
/** 状态 */
@Excel(name = "状态")
private String voltage;
/** 件次 */
@Excel(name = "件次")
private String power;
/** 供应商 */
// @Excel(name = "供应商")
private String phase;
private String supplierName;
/** 管理号 */
@Excel(name = "管理号")
private String distribution;
/** 合同号 */ /** 合同号 */
@Excel(name = "合同号") @Excel(name = "合同号")
private String orderId; private String orderId;
/** 质量等级 */ /** 产品号 */
@Excel(name = "质量等级") @Excel(name = "产品号")
private String spare8; private String power;
/** 单价 */ /** 代号 */
@Excel(name = "单价") @Excel(name = "代号")
private String price; private String distribution;
/** 图号 */ /** 台次 */
@Excel(name = "图号") @Excel(name = "台次")
private String cargoNo; private String spare5;
/** 物料状态 */ /** 单重 */
@Excel(name = "物料状态") @Excel(name = "单重")
private String productStatus; private String netWeight;
/** 常用编码 */ /** 路线 */
@Excel(name = "常用编码") @Excel(name = "路线")
private String parentId; private String grossWeight;
/** 启用标识 */ /** 供应商 */
@Excel(name = "启用标识") @Excel(name = "供应商")
private String spare7; private String phase;
@Excel(name = "创建时间") /** 部门 */
private String createTime; @Excel(name = "部门")
private String model;
/** 创建用户 */
@Excel(name = "创建用户")
private String createSys;
/** 规格型号 */
@Excel(name = "规格型号")
private String spec;
/** 单位 */
@Excel(name = "单位")
private String unit;
@Excel(name = "仓库")
private String warehouseName;
public String getWarehouseName() {
return warehouseName;
}
public void setWarehouseName(String warehouseName) {
this.warehouseName = warehouseName;
}
public String getSupplierName() {
return supplierName;
}
public void setSupplierName(String supplierName) {
this.supplierName = supplierName;
}
public String getCreateTime() {
return createTime;
}
public void setCreateTime(String createTime) {
this.createTime = createTime;
}
public void setOnlyIdentity(Long onlyIdentity) public void setOnlyIdentity(Long onlyIdentity)
{ {
@@ -167,16 +87,6 @@ public class ViewProductAndStock
return productId; return productId;
} }
public void setLotNo(String lotNo)
{
this.lotNo = lotNo;
}
public String getLotNo()
{
return lotNo;
}
public void setProductName(String productName) public void setProductName(String productName)
{ {
this.productName = productName; this.productName = productName;
@@ -207,64 +117,14 @@ public class ViewProductAndStock
return warehouseId; return warehouseId;
} }
public void setSpare1(String spare1) public void setOrderId(String orderId)
{ {
this.spare1 = spare1; this.orderId = orderId;
} }
public String getSpare1() public String getOrderId()
{ {
return spare1; return orderId;
}
public void setSpare3(String spare3)
{
this.spare3 = spare3;
}
public String getSpare3()
{
return spare3;
}
public void setSpare4(String spare4)
{
this.spare4 = spare4;
}
public String getSpare4()
{
return spare4;
}
public void setSpare5(String spare5)
{
this.spare5 = spare5;
}
public String getSpare5()
{
return spare5;
}
public void setSpare6(String spare6)
{
this.spare6 = spare6;
}
public String getSpare6()
{
return spare6;
}
public void setVoltage(String voltage)
{
this.voltage = voltage;
}
public String getVoltage()
{
return voltage;
} }
public void setPower(String power) public void setPower(String power)
@@ -277,16 +137,6 @@ public class ViewProductAndStock
return power; return power;
} }
public void setPhase(String phase)
{
this.phase = phase;
}
public String getPhase()
{
return phase;
}
public void setDistribution(String distribution) public void setDistribution(String distribution)
{ {
this.distribution = distribution; this.distribution = distribution;
@@ -297,104 +147,54 @@ public class ViewProductAndStock
return distribution; return distribution;
} }
public void setOrderId(String orderId) public void setSpare5(String spare5)
{ {
this.orderId = orderId; this.spare5 = spare5;
} }
public String getOrderId() public String getSpare5()
{ {
return orderId; return spare5;
} }
public void setSpare8(String spare8) public void setNetWeight(String netWeight)
{ {
this.spare8 = spare8; this.netWeight = netWeight;
} }
public String getSpare8() public String getNetWeight()
{ {
return spare8; return netWeight;
} }
public void setPrice(String price) public void setGrossWeight(String grossWeight)
{ {
this.price = price; this.grossWeight = grossWeight;
} }
public String getPrice() public String getGrossWeight()
{ {
return price; return grossWeight;
} }
public void setCargoNo(String cargoNo) public void setPhase(String phase)
{ {
this.cargoNo = cargoNo; this.phase = phase;
} }
public String getCargoNo() public String getPhase()
{ {
return cargoNo; return phase;
} }
public void setProductStatus(String productStatus) public void setModel(String model)
{ {
this.productStatus = productStatus; this.model = model;
} }
public String getProductStatus() public String getModel()
{ {
return productStatus; return model;
}
public void setParentId(String parentId)
{
this.parentId = parentId;
}
public String getParentId()
{
return parentId;
}
public void setSpare7(String spare7)
{
this.spare7 = spare7;
}
public String getSpare7()
{
return spare7;
}
public void setCreateSys(String createSys)
{
this.createSys = createSys;
}
public String getCreateSys()
{
return createSys;
}
public void setSpec(String spec)
{
this.spec = spec;
}
public String getSpec()
{
return spec;
}
public void setUnit(String unit)
{
this.unit = unit;
}
public String getUnit()
{
return unit;
} }
@Override @Override
@@ -402,30 +202,17 @@ public class ViewProductAndStock
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("onlyIdentity", getOnlyIdentity()) .append("onlyIdentity", getOnlyIdentity())
.append("productId", getProductId()) .append("productId", getProductId())
.append("lotNo", getLotNo())
.append("productName", getProductName()) .append("productName", getProductName())
.append("quantity", getQuantity()) .append("quantity", getQuantity())
.append("warehouseId", getWarehouseId()) .append("warehouseId", getWarehouseId())
.append("spare1", getSpare1())
.append("spare3", getSpare3())
.append("spare4", getSpare4())
.append("spare5", getSpare5())
.append("spare6", getSpare6())
.append("voltage", getVoltage())
.append("power", getPower())
.append("phase", getPhase())
.append("distribution", getDistribution())
.append("orderId", getOrderId()) .append("orderId", getOrderId())
.append("spare8", getSpare8()) .append("power", getPower())
.append("price", getPrice()) .append("distribution", getDistribution())
.append("cargoNo", getCargoNo()) .append("spare5", getSpare5())
.append("productStatus", getProductStatus()) .append("netWeight", getNetWeight())
.append("parentId", getParentId()) .append("grossWeight", getGrossWeight())
.append("spare7", getSpare7()) .append("phase", getPhase())
.append("createTime", getCreateTime()) .append("model", getModel())
.append("createSys", getCreateSys())
.append("spec", getSpec())
.append("unit", getUnit())
.toString(); .toString();
} }
} }

View File

@@ -7,7 +7,7 @@ import com.ruoyi.out.productAndStock.domain.ViewProductAndStock;
* 库存物资Mapper接口 * 库存物资Mapper接口
* *
* @author ruoyi * @author ruoyi
* @date 2025-09-12 * @date 2026-03-25
*/ */
public interface ViewProductAndStockMapper public interface ViewProductAndStockMapper
{ {
@@ -58,6 +58,4 @@ public interface ViewProductAndStockMapper
* @return 结果 * @return 结果
*/ */
public int deleteViewProductAndStockByOnlyIdentitys(Long[] onlyIdentitys); public int deleteViewProductAndStockByOnlyIdentitys(Long[] onlyIdentitys);
List<ViewProductAndStock> selectViewProductAndStockPdList(ViewProductAndStock viewProductAndStock);
} }

View File

@@ -7,7 +7,7 @@ import com.ruoyi.out.productAndStock.domain.ViewProductAndStock;
* 库存物资Service接口 * 库存物资Service接口
* *
* @author ruoyi * @author ruoyi
* @date 2025-09-12 * @date 2026-03-25
*/ */
public interface IViewProductAndStockService public interface IViewProductAndStockService
{ {
@@ -58,6 +58,4 @@ public interface IViewProductAndStockService
* @return 结果 * @return 结果
*/ */
public int deleteViewProductAndStockByOnlyIdentity(Long onlyIdentity); public int deleteViewProductAndStockByOnlyIdentity(Long onlyIdentity);
List<ViewProductAndStock> selectViewProductAndStockPdList(ViewProductAndStock viewProductAndStock);
} }

View File

@@ -11,7 +11,7 @@ import com.ruoyi.out.productAndStock.service.IViewProductAndStockService;
* 库存物资Service业务层处理 * 库存物资Service业务层处理
* *
* @author ruoyi * @author ruoyi
* @date 2025-09-12 * @date 2026-03-25
*/ */
@Service @Service
public class ViewProductAndStockServiceImpl implements IViewProductAndStockService public class ViewProductAndStockServiceImpl implements IViewProductAndStockService
@@ -90,10 +90,4 @@ public class ViewProductAndStockServiceImpl implements IViewProductAndStockServi
{ {
return viewProductAndStockMapper.deleteViewProductAndStockByOnlyIdentity(onlyIdentity); return viewProductAndStockMapper.deleteViewProductAndStockByOnlyIdentity(onlyIdentity);
} }
@Override
public List<ViewProductAndStock> selectViewProductAndStockPdList(ViewProductAndStock viewProductAndStock) {
return viewProductAndStockMapper.selectViewProductAndStockPdList(viewProductAndStock);
}
} }

View File

@@ -85,8 +85,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="materialDesc !=null and materialDesc!=''"> <if test="materialDesc !=null and materialDesc!=''">
and is2.stockin_id in ( and is2.stockin_id in (
select distinct stockin_id from in_stockin_detail isd select distinct stockin_id from in_stockin_detail isd
left join bas_product bp on isd.product_id = bp.product_id where isd.spare8 like concat('%',#{materialDesc},'%')
where bp.product_name like concat('%',#{materialDesc},'%') )
</if>
<if test="spare9 !=null and spare9!=''">
and is2.stockin_id in (
select stockin_id from in_stockin_detail isd
where isd.spare9 like concat('%',#{spare9},'%')
) )
</if> </if>
<if test="lotNo !=null and lotNo!=''"> <if test="lotNo !=null and lotNo!=''">

View File

@@ -40,7 +40,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
left join out_stockout_detail d on d.stockout_id = o.stockout_id left join out_stockout_detail d on d.stockout_id = o.stockout_id
left join bas_customer bc on bc.customer_no = d.out_id left join bas_customer bc on bc.customer_no = d.out_id
left join bas_warehouse bw on bw.warehouse_id = d.warehouse_id left join bas_warehouse bw on bw.warehouse_id = d.warehouse_id
left join bas_supplier bs on bs.supplier_no = d.supplier_id
left join bas_product bp on bp.product_id = d.product_id left join bas_product bp on bp.product_id = d.product_id
left join sys_user su on su.user_id = o.create_man_id left join sys_user su on su.user_id = o.create_man_id
<where> <where>
@@ -157,6 +156,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
#{newStatus,mode=IN,jdbcType=VARCHAR}, #{newStatus,mode=IN,jdbcType=VARCHAR},
#{exitId,mode=IN,jdbcType=VARCHAR}, #{exitId,mode=IN,jdbcType=VARCHAR},
#{userName,mode=IN,jdbcType=VARCHAR}, #{userName,mode=IN,jdbcType=VARCHAR},
#{pickUser,mode=IN,jdbcType=VARCHAR},
#{v_result,mode=OUT,jdbcType=VARCHAR}, #{v_result,mode=OUT,jdbcType=VARCHAR},
#{v_resultString,mode=OUT,jdbcType=VARCHAR} #{v_resultString,mode=OUT,jdbcType=VARCHAR}
) )

View File

@@ -7,36 +7,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<resultMap type="ViewProductAndStock" id="ViewProductAndStockResult"> <resultMap type="ViewProductAndStock" id="ViewProductAndStockResult">
<result property="onlyIdentity" column="only_identity" /> <result property="onlyIdentity" column="only_identity" />
<result property="productId" column="product_id" /> <result property="productId" column="product_id" />
<result property="lotNo" column="lot_no" />
<result property="productName" column="product_name" /> <result property="productName" column="product_name" />
<result property="quantity" column="quantity" /> <result property="quantity" column="quantity" />
<result property="warehouseId" column="warehouse_id" /> <result property="warehouseId" column="warehouse_id" />
<result property="spare1" column="spare1" />
<result property="spare3" column="spare3" />
<result property="spare4" column="spare4" />
<result property="spare5" column="spare5" />
<result property="spare6" column="spare6" />
<result property="voltage" column="voltage" />
<result property="power" column="power" />
<result property="phase" column="phase" />
<result property="distribution" column="distribution" />
<result property="orderId" column="order_id" /> <result property="orderId" column="order_id" />
<result property="spare8" column="spare8" /> <result property="power" column="power" />
<result property="price" column="price" /> <result property="distribution" column="distribution" />
<result property="cargoNo" column="cargo_no" /> <result property="spare5" column="spare5" />
<result property="productStatus" column="product_status" /> <result property="netWeight" column="net_weight" />
<result property="parentId" column="parent_id" /> <result property="grossWeight" column="gross_weight" />
<result property="spare7" column="spare7" /> <result property="phase" column="phase" />
<result property="createTime" column="create_time" /> <result property="model" column="model" />
<result property="createSys" column="create_sys" />
<result property="spec" column="spec" />
<result property="unit" column="unit" />
<result property="supplierName" column="supplier_name" />
<result property="warehouseName" column="warehouse_name" />
</resultMap> </resultMap>
<sql id="selectViewProductAndStockVo"> <sql id="selectViewProductAndStockVo">
select only_identity, product_id, lot_no, product_name, quantity, warehouse_id, spare1, spare3, spare4, spare5, spare6, voltage, power, phase, distribution, order_id, spare8, price, cargo_no, product_status, parent_id, spare7, create_time, create_sys, spec, unit,supplier_name,warehouse_name from view_product_and_stock select only_identity, product_id, product_name, quantity, warehouse_id, order_id, power, distribution, spare5, net_weight, gross_weight, phase, model from view_product_and_stock
</sql> </sql>
<select id="selectViewProductAndStockList" parameterType="ViewProductAndStock" resultMap="ViewProductAndStockResult"> <select id="selectViewProductAndStockList" parameterType="ViewProductAndStock" resultMap="ViewProductAndStockResult">
@@ -44,30 +29,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<where> <where>
<if test="onlyIdentity != null "> and only_identity = #{onlyIdentity}</if> <if test="onlyIdentity != null "> and only_identity = #{onlyIdentity}</if>
<if test="productId != null and productId != ''"> and product_id like concat('%', #{productId}, '%')</if> <if test="productId != null and productId != ''"> and product_id like concat('%', #{productId}, '%')</if>
<if test="lotNo != null and lotNo != ''"> and lot_no = #{lotNo}</if>
<if test="productName != null and productName != ''"> and product_name like concat('%', #{productName}, '%')</if> <if test="productName != null and productName != ''"> and product_name like concat('%', #{productName}, '%')</if>
<if test="quantity != null and quantity != ''"> and quantity = #{quantity}</if> <if test="quantity != null and quantity != ''"> and quantity = #{quantity}</if>
<if test="warehouseId != null and warehouseId != ''"> and warehouse_id = #{warehouseId}</if> <if test="warehouseId != null and warehouseId != ''"> and warehouse_id = #{warehouseId}</if>
<if test="spare1 != null and spare1 != ''"> and spare1 = #{spare1}</if>
<if test="spare3 != null and spare3 != ''"> and spare3 = #{spare3}</if>
<if test="spare4 != null and spare4 != ''"> and spare4 = #{spare4}</if>
<if test="spare5 != null and spare5 != ''"> and spare5 like concat('%',#{spare5}, '%')</if>
<if test="spare6 != null and spare6 != ''"> and spare6 = #{spare6}</if>
<if test="voltage != null and voltage != ''"> and voltage = #{voltage}</if>
<if test="power != null and power != ''"> and power like concat('%',#{power}, '%')</if>
<if test="phase != null and phase != ''"> and phase like concat('%',#{phase}, '%')</if>
<if test="distribution != null and distribution != ''"> and distribution like concat('%', #{distribution}, '%')</if>
<if test="orderId != null and orderId != ''"> and order_id like concat('%', #{orderId}, '%')</if> <if test="orderId != null and orderId != ''"> and order_id like concat('%', #{orderId}, '%')</if>
<if test="spare8 != null and spare8 != ''"> and spare8 = #{spare8}</if> <if test="power != null and power != ''"> and power = #{power}</if>
<if test="price != null and price != ''"> and price = #{price}</if> <if test="distribution != null and distribution != ''"> and distribution like concat('%', #{distribution}, '%')</if>
<if test="cargoNo != null and cargoNo != ''"> and cargo_no like concat('%', #{cargoNo}, '%')</if> <if test="spare5 != null and spare5 != ''"> and spare5 = #{spare5}</if>
<if test="productStatus != null and productStatus != ''"> and product_status = #{productStatus}</if> <if test="netWeight != null and netWeight != ''"> and net_weight = #{netWeight}</if>
<if test="parentId != null and parentId != ''"> and parent_id = #{parentId}</if> <if test="grossWeight != null and grossWeight != ''"> and gross_weight = #{grossWeight}</if>
<if test="spare7 != null and spare7 != ''"> and spare7 = #{spare7}</if> <if test="phase != null and phase != ''"> and phase = #{phase}</if>
<if test="createSys != null and createSys != ''"> and create_sys like concat('%', #{createSys}, '%')</if> <if test="model != null and model != ''"> and model = #{model}</if>
<if test="spec != null and spec != ''"> and spec like concat('%', #{spec}, '%')</if>
<if test="unit != null and unit != ''"> and unit like concat('%', #{unit}, '%')</if>
</where> </where>
</select> </select>
@@ -81,60 +53,32 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<trim prefix="(" suffix=")" suffixOverrides=","> <trim prefix="(" suffix=")" suffixOverrides=",">
<if test="onlyIdentity != null">only_identity,</if> <if test="onlyIdentity != null">only_identity,</if>
<if test="productId != null">product_id,</if> <if test="productId != null">product_id,</if>
<if test="lotNo != null">lot_no,</if>
<if test="productName != null">product_name,</if> <if test="productName != null">product_name,</if>
<if test="quantity != null">quantity,</if> <if test="quantity != null">quantity,</if>
<if test="warehouseId != null">warehouse_id,</if> <if test="warehouseId != null">warehouse_id,</if>
<if test="spare1 != null">spare1,</if>
<if test="spare3 != null">spare3,</if>
<if test="spare4 != null">spare4,</if>
<if test="spare5 != null">spare5,</if>
<if test="spare6 != null">spare6,</if>
<if test="voltage != null">voltage,</if>
<if test="power != null">power,</if>
<if test="phase != null">phase,</if>
<if test="distribution != null">distribution,</if>
<if test="orderId != null">order_id,</if> <if test="orderId != null">order_id,</if>
<if test="spare8 != null">spare8,</if> <if test="power != null">power,</if>
<if test="price != null">price,</if> <if test="distribution != null">distribution,</if>
<if test="cargoNo != null">cargo_no,</if> <if test="spare5 != null">spare5,</if>
<if test="productStatus != null">product_status,</if> <if test="netWeight != null">net_weight,</if>
<if test="parentId != null">parent_id,</if> <if test="grossWeight != null">gross_weight,</if>
<if test="spare7 != null">spare7,</if> <if test="phase != null">phase,</if>
<if test="createTime != null">create_time,</if> <if test="model != null">model,</if>
<if test="createSys != null">create_sys,</if>
<if test="spec != null">spec,</if>
<if test="unit != null">unit,</if>
<if test="supplierName != null">supplier_name,</if>
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="onlyIdentity != null">#{onlyIdentity},</if> <if test="onlyIdentity != null">#{onlyIdentity},</if>
<if test="productId != null">#{productId},</if> <if test="productId != null">#{productId},</if>
<if test="lotNo != null">#{lotNo},</if>
<if test="productName != null">#{productName},</if> <if test="productName != null">#{productName},</if>
<if test="quantity != null">#{quantity},</if> <if test="quantity != null">#{quantity},</if>
<if test="warehouseId != null">#{warehouseId},</if> <if test="warehouseId != null">#{warehouseId},</if>
<if test="spare1 != null">#{spare1},</if>
<if test="spare3 != null">#{spare3},</if>
<if test="spare4 != null">#{spare4},</if>
<if test="spare5 != null">#{spare5},</if>
<if test="spare6 != null">#{spare6},</if>
<if test="voltage != null">#{voltage},</if>
<if test="power != null">#{power},</if>
<if test="phase != null">#{phase},</if>
<if test="distribution != null">#{distribution},</if>
<if test="orderId != null">#{orderId},</if> <if test="orderId != null">#{orderId},</if>
<if test="spare8 != null">#{spare8},</if> <if test="power != null">#{power},</if>
<if test="price != null">#{price},</if> <if test="distribution != null">#{distribution},</if>
<if test="cargoNo != null">#{cargoNo},</if> <if test="spare5 != null">#{spare5},</if>
<if test="productStatus != null">#{productStatus},</if> <if test="netWeight != null">#{netWeight},</if>
<if test="parentId != null">#{parentId},</if> <if test="grossWeight != null">#{grossWeight},</if>
<if test="spare7 != null">#{spare7},</if> <if test="phase != null">#{phase},</if>
<if test="createTime != null">#{createTime},</if> <if test="model != null">#{model},</if>
<if test="createSys != null">#{createSys},</if>
<if test="spec != null">#{spec},</if>
<if test="unit != null">#{unit},</if>
<if test="supplierName != null">#{supplierName},</if>
</trim> </trim>
</insert> </insert>
@@ -142,31 +86,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
update view_product_and_stock update view_product_and_stock
<trim prefix="SET" suffixOverrides=","> <trim prefix="SET" suffixOverrides=",">
<if test="productId != null">product_id = #{productId},</if> <if test="productId != null">product_id = #{productId},</if>
<if test="lotNo != null">lot_no = #{lotNo},</if>
<if test="productName != null">product_name = #{productName},</if> <if test="productName != null">product_name = #{productName},</if>
<if test="quantity != null">quantity = #{quantity},</if> <if test="quantity != null">quantity = #{quantity},</if>
<if test="warehouseId != null">warehouse_id = #{warehouseId},</if> <if test="warehouseId != null">warehouse_id = #{warehouseId},</if>
<if test="spare1 != null">spare1 = #{spare1},</if>
<if test="spare3 != null">spare3 = #{spare3},</if>
<if test="spare4 != null">spare4 = #{spare4},</if>
<if test="spare5 != null">spare5 = #{spare5},</if>
<if test="spare6 != null">spare6 = #{spare6},</if>
<if test="voltage != null">voltage = #{voltage},</if>
<if test="power != null">power = #{power},</if>
<if test="phase != null">phase = #{phase},</if>
<if test="distribution != null">distribution = #{distribution},</if>
<if test="orderId != null">order_id = #{orderId},</if> <if test="orderId != null">order_id = #{orderId},</if>
<if test="spare8 != null">spare8 = #{spare8},</if> <if test="power != null">power = #{power},</if>
<if test="price != null">price = #{price},</if> <if test="distribution != null">distribution = #{distribution},</if>
<if test="cargoNo != null">cargo_no = #{cargoNo},</if> <if test="spare5 != null">spare5 = #{spare5},</if>
<if test="productStatus != null">product_status = #{productStatus},</if> <if test="netWeight != null">net_weight = #{netWeight},</if>
<if test="parentId != null">parent_id = #{parentId},</if> <if test="grossWeight != null">gross_weight = #{grossWeight},</if>
<if test="spare7 != null">spare7 = #{spare7},</if> <if test="phase != null">phase = #{phase},</if>
<if test="createTime != null">create_time = #{createTime},</if> <if test="model != null">model = #{model},</if>
<if test="createSys != null">create_sys = #{createSys},</if>
<if test="spec != null">spec = #{spec},</if>
<if test="unit != null">unit = #{unit},</if>
<if test="supplierName != null">supplier_name = #{supplierName},</if>
</trim> </trim>
where only_identity = #{onlyIdentity} where only_identity = #{onlyIdentity}
</update> </update>

View File

@@ -67,29 +67,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
bs.cargo_space_id, --库位编码 bs.cargo_space_id, --库位编码
bs.tray_code, --托盘 bs.tray_code, --托盘
bs.product_id, --产品编码 bs.product_id, --产品编码
bp.product_name,--产品名称 bs.product_name,--产品名称
bp.spec, -- 规格
bs.quantity, -- 数量 bs.quantity, -- 数量
bs.spare6, -- 金额 bs.spare6, -- 金额
bp.price, --单价
bp.spare1 as productType, --产品状态
bp.unit, -- 单位
bp.cargo_no, --图号
bs.order_id, --合同号 bs.order_id, --合同号
bs.spare5, --台次 bs.spare5, --台次
bs.power, --件次 bs.power, --件次
bs.spare8, --质量 bs.spare8, --质量
bp.parent_id, --常用编码
bs.stockin_id, --入库单号 bs.stockin_id, --入库单号
bs2.supplier_name, --供应商名称 bs.phase as supplier_name, --供应商名称
bs2.supplier_no, --供应商编号
bw.warehouse_id, --仓库编码 bw.warehouse_id, --仓库编码
bw.warehouse_name, --仓库名称 bw.warehouse_name, --仓库名称
bs.in_date, --入库时间 bs.in_date, --入库时间
bs.stacking_id, --出库时间 bs.stacking_id, --出库时间
bs.spare7, --盘点标识 bs.spare7, --盘点标识
bs.back_date, --盘点时间 bs.back_date, --盘点时间
bp.remark, --备注
bs.stock_id, --库存编码 bs.stock_id, --库存编码
bs.stock_status, --库存状态 bs.stock_status, --库存状态
bs.lot_no, --批次号 bs.lot_no, --批次号
@@ -98,13 +90,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
bs.spare1, --用途 bs.spare1, --用途
bs.distribution, --用途 bs.distribution, --用途
bs.model, --用途 bs.model, --用途
bcs.the_type as net_weight, --重量 bs.net_weight , --重量
bs.stockin_detail_id --入库子单 bs.stockin_detail_id, --入库子单
bs.gross_weight--路线
from bas_stock bs from bas_stock bs
left join bas_product bp on bs.product_id = bp.product_id
left join bas_warehouse bw on bs.warehouse_id = bw.warehouse_id left join bas_warehouse bw on bs.warehouse_id = bw.warehouse_id
left join bas_cargo_space bcs on bs.cargo_space_id = bcs.cargo_space_id left join bas_cargo_space bcs on bs.cargo_space_id = bcs.cargo_space_id
left join bas_supplier bs2 on bs.phase = bs2.supplier_no
</sql> </sql>
<select id="selectBasStockList" parameterType="BasStock" resultMap="BasStockResult"> <select id="selectBasStockList" parameterType="BasStock" resultMap="BasStockResult">
@@ -151,14 +142,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="theFloor != null and theFloor != ''"> and bcs.the_floor = #{theFloor}</if> <if test="theFloor != null and theFloor != ''"> and bcs.the_floor = #{theFloor}</if>
<if test="thePlatoon != null and thePlatoon != ''"> and bcs.the_platoon = #{thePlatoon}</if> <if test="thePlatoon != null and thePlatoon != ''"> and bcs.the_platoon = #{thePlatoon}</if>
<if test="theColumn != null and theColumn != ''"> and bcs.the_column = #{theColumn}</if> <if test="theColumn != null and theColumn != ''"> and bcs.the_column = #{theColumn}</if>
<if test="spec != null and spec != ''"> and bp.spec = #{spec}</if>
<if test="parentId != null and parentId != ''"> and bp.parent_id = #{parentId}</if>
<if test="supplierId != null and supplierId != ''"> and bs2.supplier_no = #{supplierId}</if> <if test="supplierId != null and supplierId != ''"> and bs2.supplier_no = #{supplierId}</if>
<if test="supplierName != null and supplierName != ''"> and bs2.supplier_name = #{supplierName}</if> <if test="supplierName != null and supplierName != ''"> and bs2.supplier_name = #{supplierName}</if>
<if test="price != null and price != ''"> and bp.price = #{price}</if>
<if test="inDateStart != null and inDateStart != ''"> and bs.in_date &gt;= #{inDateStart}</if> <if test="inDateStart != null and inDateStart != ''"> and bs.in_date &gt;= #{inDateStart}</if>
<if test="inDateEnd != null and inDateEnd != ''"> and bs.in_date &lt;= #{inDateEnd}</if> <if test="inDateEnd != null and inDateEnd != ''"> and bs.in_date &lt;= #{inDateEnd}</if>
<if test="productType != null and productType != ''"> and bp.spare1 = #{productType}</if>
</where> </where>

View File

@@ -76,4 +76,21 @@ export function productBack(data) {
}) })
} }
// 导入数据
export function importData(data) {
return request({
url: '/in/stockIn/importData',
method: 'post',
data: data
})
}
// 下载导入模板
export function importTemplate() {
return request({
url: '/in/stockIn/importTemplate',
method: 'get'
})
}

View File

@@ -53,6 +53,9 @@ export function getOutStockoutDetail(query) {
if (params.exitId) { if (params.exitId) {
searchParams.append('exitId', params.exitId); searchParams.append('exitId', params.exitId);
} }
if (params.pickUser) {
searchParams.append('pickUser', params.pickUser);
}
return request({ return request({
url: '/out/outStockout/changeStatus?' + searchParams.toString(), url: '/out/outStockout/changeStatus?' + searchParams.toString(),
method: 'get' method: 'get'

View File

@@ -73,6 +73,26 @@ export function delManagement(stockId) {
method: 'delete' method: 'delete'
}) })
} }
// 模拟生成出库任务
export function createOutboundTask(data) {
return request({
url: '/stock/management/createOutboundTask',
method: 'post',
data: data
})
}
// 模拟导出个人出库Excel
export function exportPersonalOutbound(data) {
return request({
url: '/stock/management/exportPersonalOutbound',
method: 'post',
data: data,
responseType: 'blob'
})
}
//重置盘点记录 //重置盘点记录
export function resetPdRecord() { export function resetPdRecord() {
return request({ return request({

View File

@@ -9,6 +9,9 @@
<el-form-item label="物料名称" prop="materialDesc"> <el-form-item label="物料名称" prop="materialDesc">
<el-input v-model="queryParams.materialDesc" placeholder="请输入物料名称" clearable @keyup.enter.native="handleQuery" /> <el-input v-model="queryParams.materialDesc" placeholder="请输入物料名称" clearable @keyup.enter.native="handleQuery" />
</el-form-item> </el-form-item>
<el-form-item label="代号" prop="spare9">
<el-input v-model="queryParams.spare9" placeholder="请输入代号" clearable @keyup.enter.native="handleQuery" />
</el-form-item>
<el-form-item label="入库类型" prop="inType"> <el-form-item label="入库类型" prop="inType">
<el-select v-model="queryParams.inType" placeholder="请选择入库类型" clearable> <el-select v-model="queryParams.inType" placeholder="请选择入库类型" clearable>
<el-option v-for="dict in dict.type.in_bill_type" :key="dict.value" :label="dict.label" :value="dict.value" /> <el-option v-for="dict in dict.type.in_bill_type" :key="dict.value" :label="dict.label" :value="dict.value" />
@@ -35,6 +38,7 @@
<el-button type="primary" plain icon="el-icon-plus" size="mini" :disabled="single" @click="handleReview" v-hasPermi="['in:stockIn:edit']">单据审核</el-button> <el-button type="primary" plain icon="el-icon-plus" size="mini" :disabled="single" @click="handleReview" v-hasPermi="['in:stockIn:edit']">单据审核</el-button>
<el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleConfirmation" v-hasPermi="['in:stockIn:edit']">单据确认</el-button> <el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleConfirmation" v-hasPermi="['in:stockIn:edit']">单据确认</el-button>
<el-button type="info" plain icon="el-icon-download" size="mini" :disabled="detailMultiple" @click="handleBarcodePrinting" v-hasPermi="['in:stockIn:barcodePrinting']">打印条码</el-button> <el-button type="info" plain icon="el-icon-download" size="mini" :disabled="detailMultiple" @click="handleBarcodePrinting" v-hasPermi="['in:stockIn:barcodePrinting']">打印条码</el-button>
<el-button type="text" icon="el-icon-upload2" @click="handleImport">导入</el-button>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList" style="margin-left: 10px;"></right-toolbar> <right-toolbar :showSearch.sync="showSearch" @queryTable="getList" style="margin-left: 10px;"></right-toolbar>
</div> </div>
</div> </div>
@@ -42,7 +46,7 @@
<el-table v-loading="loading" :data="stockInList" @selection-change="handleSelectionChange" <el-table v-loading="loading" :data="stockInList" @selection-change="handleSelectionChange"
@row-click="handleRowClick" max-height="300" border highlight-current-row :row-class-name="tableRowClassName"> @row-click="handleRowClick" max-height="300" border highlight-current-row :row-class-name="tableRowClassName">
<el-table-column type="selection" width="55" align="center"/> <el-table-column type="selection" width="55" align="center"/>
<el-table-column label="入库订单" align="left" prop="stockinId" width="150"/> <el-table-column label="入库订单" align="left" prop="stockinId" width="160"/>
<el-table-column label="入库类型" align="left" prop="inType"> <el-table-column label="入库类型" align="left" prop="inType">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.in_bill_type" :value="scope.row.inType"/> <dict-tag :options="dict.type.in_bill_type" :value="scope.row.inType"/>
@@ -79,11 +83,13 @@
<div style="float: right; display: flex; align-items: center;"> <div style="float: right; display: flex; align-items: center;">
<el-button type="primary" size="mini" icon="el-icon-check" @click="handleBatchSave" v-hasPermi="['in:stockIn:edit']">保存子单明细</el-button> <el-button type="primary" size="mini" icon="el-icon-check" @click="handleBatchSave" v-hasPermi="['in:stockIn:edit']">保存子单明细</el-button>
<div style="width: 1px; height: 20px; background: #eee; margin: 0 15px;"></div> <div style="width: 1px; height: 20px; background: #eee; margin: 0 15px;"></div>
<el-input v-model="batchTrayCode" placeholder="批量条码" size="mini" style="width: 120px; margin-right: 5px;" clearable /> <el-input v-model="batchTrayCode" placeholder="条码 或 条码=位置" size="mini" style="width: 150px; margin-right: 5px;" clearable />
<el-button type="warning" size="mini" icon="el-icon-copy-document" @click="handleBatchFillTrayCode">批量填充</el-button> <el-button type="warning" size="mini" icon="el-icon-copy-document" @click="handleBatchFillTrayCode">批量填充</el-button>
</div> </div>
</div> </div>
<el-table <el-table
v-loading="detailLoading" v-loading="detailLoading"
:data="stockInDetailList" :data="stockInDetailList"
@@ -131,8 +137,10 @@
<el-table-column label="产品号" align="left" prop="spare7" width="160"/> <el-table-column label="产品号" align="left" prop="spare7" width="160"/>
<el-table-column label="代号" align="left" prop="spare9" width="160"/> <el-table-column label="代号" align="left" prop="spare9" width="160"/>
<el-table-column label="台次" align="left" prop="spare5" /> <el-table-column label="台次" align="left" prop="spare5" />
<el-table-column label="物料编码" align="left" prop="productId" /> <el-table-column label="供应商" align="left" prop="supplierId" />
<el-table-column label="物料名称" align="left" prop="productName" show-overflow-tooltip/> <el-table-column label="路线" align="left" prop="spare3" />
<!-- <el-table-column label="物料编码" align="left" prop="productId" width="160"/>-->
<el-table-column label="物料名称" align="left" prop="spare8" show-overflow-tooltip/>
<el-table-column label="计划数量" align="center" prop="quantity" width="100"/> <el-table-column label="计划数量" align="center" prop="quantity" width="100"/>
<el-table-column label="实际数量" align="center" width="100"> <el-table-column label="实际数量" align="center" width="100">
<template slot-scope="scope"> <template slot-scope="scope">
@@ -161,6 +169,11 @@
<el-tag v-else size="mini" type="info" effect="plain">未分配托盘</el-tag> <el-tag v-else size="mini" type="info" effect="plain">未分配托盘</el-tag>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="备注" align="center" prop="remark">
<template slot-scope="scope">
<el-input v-model="scope.row.remark" placeholder="请输入备注" size="mini" clearable />
</template>
</el-table-column>
</el-table> </el-table>
<pagination <pagination
@@ -215,11 +228,42 @@
</div> </div>
</div> </div>
</vue-easy-print> </vue-easy-print>
<!-- 入库导入对话框 -->
<el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
<el-upload
ref="upload"
:limit="1"
accept=".xlsx, .xls"
:headers="upload.headers"
:action="upload.url + '?updateSupport=' + upload.updateSupport"
:disabled="upload.isUploading"
:on-progress="handleFileUploadProgress"
:on-success="handleFileSuccess"
:auto-upload="false"
drag
>
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
<div class="el-upload__tip text-center" slot="tip">
<div class="el-upload__tip" slot="tip">
<el-checkbox v-model="upload.updateSupport" :true-label="1" :false-label="0" /> 是否更新已经存在的单据数据
</div>
<span>仅允许导入xls、xlsx格式文件。</span>
<el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;" @click="importTemplate">下载模板</el-link>
</div>
</el-upload>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitFileForm">确 定</el-button>
<el-button @click="upload.open = false">取 消</el-button>
</div>
</el-dialog>
</div> </div>
</template> </template>
<script> <script>
import {confirmationStockIn, invalidatedStockIn, listStockIn, reviewStockIn} from "@/api/in/stockIn" import {confirmationStockIn, invalidatedStockIn, listStockIn, reviewStockIn} from "@/api/in/stockIn"
import { getToken } from "@/utils/auth";
import {listStockInDetail, updateStockInDetailBatch} from "@/api/in/stockInDetail" import {listStockInDetail, updateStockInDetailBatch} from "@/api/in/stockInDetail"
import {listWarehouse} from "@/api/bas/warehouse"; import {listWarehouse} from "@/api/bas/warehouse";
import vueEasyPrint from 'vue-easy-print' import vueEasyPrint from 'vue-easy-print'
@@ -231,7 +275,7 @@ export default {
dicts: ['bill_resource','product_type', 'in_bill_status', 'in_bill_type','bill_resource','product_type','origin_type','account_type','turnover_type','purpose_type','quality_type'], dicts: ['bill_resource','product_type', 'in_bill_status', 'in_bill_type','bill_resource','product_type','origin_type','account_type','turnover_type','purpose_type','quality_type'],
components: { components: {
vueEasyPrint, vueEasyPrint,
VueQr VueQr,
}, },
data() { data() {
return { return {
@@ -289,6 +333,21 @@ export default {
title: "", title: "",
// 是否显示弹出层 // 是否显示弹出层
open: false, open: false,
// 入库导入参数
upload: {
// 是否显示弹出层(入库导入)
open: false,
// 弹出层标题(入库导入)
title: "",
// 是否禁用上传
isUploading: false,
// 是否更新已经存在的用户数据
updateSupport: 0,
// 设置上传的请求头部
headers: { Authorization: "Bearer " + getToken() },
// 上传的地址
url: process.env.VUE_APP_BASE_API + "/in/stockIn/importData"
},
// 批量填充托盘条码 // 批量填充托盘条码
batchTrayCode: '', batchTrayCode: '',
// 查询参数 // 查询参数
@@ -334,6 +393,32 @@ export default {
this.getWarehouseList() this.getWarehouseList()
}, },
methods: { methods: {
/** 导入按钮操作 */
handleImport() {
this.upload.title = "入库导入";
this.upload.open = true;
},
/** 下载模板操作 */
importTemplate() {
this.download('in/stockIn/importTemplate', {
}, `stock_in_template_${new Date().getTime()}.xlsx`)
},
// 文件上传中处理
handleFileUploadProgress(event, file, fileList) {
this.upload.isUploading = true;
},
// 文件上传成功处理
handleFileSuccess(response, file, fileList) {
this.upload.open = false;
this.upload.isUploading = false;
this.$refs.upload.clearFiles();
this.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + response.msg + "</div>", "导入结果", { dangerouslyUseHTMLString: true });
this.getList();
},
// 提交上传文件
submitFileForm() {
this.$refs.upload.submit();
},
/** 获取仓库列表 */ /** 获取仓库列表 */
getWarehouseList() { getWarehouseList() {
listWarehouse(this.queryWarehouseParams).then(response => { listWarehouse(this.queryWarehouseParams).then(response => {
@@ -527,13 +612,23 @@ export default {
/** 批量填充托盘条码 */ /** 批量填充托盘条码 */
handleBatchFillTrayCode() { handleBatchFillTrayCode() {
if (!this.batchTrayCode) { if (!this.batchTrayCode) {
this.$modal.msgWarning("请输入批量托盘条码"); this.$modal.msgWarning("请输入批量填充内容(格式:1003 或 1003=A1)");
return; return;
} }
if (this.stockInDetailListSelected.length === 0) { if (this.stockInDetailListSelected.length === 0) {
this.$modal.msgWarning("请选择要填充的子单据"); this.$modal.msgWarning("请选择要填充的子单据");
return; return;
} }
// 解析输入:1003=A1 或 1003
let trayCode = this.batchTrayCode;
let location = '';
if (this.batchTrayCode.includes('=')) {
const parts = this.batchTrayCode.split('=');
trayCode = parts[0].trim();
location = parts[1] ? parts[1].trim() : '';
}
// 批量填充逻辑:为每个选中行添加或设置一个托盘,数量默认为计划数量或剩余数量 // 批量填充逻辑:为每个选中行添加或设置一个托盘,数量默认为计划数量或剩余数量
this.stockInDetailList.forEach((item, index) => { this.stockInDetailList.forEach((item, index) => {
if (this.stockInDetailListSelected.some(selected => selected.stockinDetailId === item.stockinDetailId)) { if (this.stockInDetailListSelected.some(selected => selected.stockinDetailId === item.stockinDetailId)) {
@@ -543,15 +638,18 @@ export default {
} }
const remain = Math.max(0, (item.quantity || 0) - (item.assignNum || 0)); const remain = Math.max(0, (item.quantity || 0) - (item.assignNum || 0));
// 查找是否已有该托盘,没有则添加,有则更新数量 // 查找是否已有该托盘,没有则添加,有则更新数量
const existingTray = item.trayList.find(t => t.trayCode === this.batchTrayCode); const existingTray = item.trayList.find(t => t.trayCode === trayCode);
if (!existingTray) { if (!existingTray) {
item.trayList.push({ item.trayList.push({
trayCode: this.batchTrayCode, trayCode: trayCode,
quantity: remain, // 默认填入剩余计划数量 quantity: remain, // 默认填入剩余计划数量
location: '' location: location
}); });
} else { } else {
existingTray.quantity = (existingTray.quantity || 0) + remain; existingTray.quantity = (existingTray.quantity || 0) + remain;
if (location) {
existingTray.location = location; // 如果输入了位置,则更新
}
} }
this.calculateAssignNum(item); this.calculateAssignNum(item);
} }

View File

@@ -177,38 +177,8 @@
<el-table-column label="代号" align="left" prop="spare9" width="160"/> <el-table-column label="代号" align="left" prop="spare9" width="160"/>
<el-table-column label="台次" align="left" prop="spare5" /> <el-table-column label="台次" align="left" prop="spare5" />
<el-table-column label="物料编码" align="left" prop="productId" /> <el-table-column label="物料编码" align="left" prop="productId" />
<el-table-column label="物料名称" align="left" prop="productName" /> <el-table-column label="物料名称" align="left" prop="spare1" />
<!-- <el-table-column label="供应商" align="left" prop="supplierName" />-->
<el-table-column label="出库数量" align="right" prop="outQuantity" /> <!-- 出库数量 --> <el-table-column label="出库数量" align="right" prop="outQuantity" /> <!-- 出库数量 -->
<!-- <el-table-column label="批号" align="left" prop="lotNo" />-->
<!-- <el-table-column label="单价" align="left" prop="printDate" />-->
<!-- <el-table-column label="来源" align="left" prop="spare1" >&lt;!&ndash;来源&ndash;&gt;
<template slot-scope="scope">
<dict-tag :options="dict.type.origin_type" :value="scope.row.spare1"/>
</template>
</el-table-column>
<el-table-column label="状态" align="left" prop="spare2" >&lt;!&ndash;用途&ndash;&gt;
<template slot-scope="scope">
<dict-tag :options="dict.type.turnover_type" :value="scope.row.spare2"/>
</template>
</el-table-column>
<el-table-column label="套账" align="left" prop="spare3" >&lt;!&ndash;用途&ndash;&gt;
<template slot-scope="scope">
<dict-tag :options="dict.type.account_type" :value="scope.row.spare3"/>
</template>
</el-table-column>
<el-table-column label="用途" align="left" prop="spare4" >&lt;!&ndash;用途&ndash;&gt;
<template slot-scope="scope">
<dict-tag :options="dict.type.purpose_type" :value="scope.row.spare4"/>
</template>
</el-table-column>-->
<!-- <el-table-column label="质量等级" align="left" prop="spare8" >&lt;!&ndash;用途&ndash;&gt;
<template slot-scope="scope">
<dict-tag :options="dict.type.quality_type" :value="scope.row.spare8"/>
</template>
</el-table-column>-->
</el-table> </el-table>
<pagination <pagination

View File

@@ -22,7 +22,7 @@
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="'备注'" prop="remark"><!--客户--> <el-form-item :label="'备注'" prop="remark">
<el-input <el-input
v-model="formData.remark" v-model="formData.remark"
:placeholder="'请输入备注'" :placeholder="'请输入备注'"
@@ -43,78 +43,22 @@
<!-- 物资明细表格 --> <!-- 物资明细表格 -->
<el-table v-loading="loading" :data="materialList"> <el-table v-loading="loading" :data="materialList">
<!-- <el-table-column label="仓库编码" align="center" prop="warehouseId" />-->
<el-table-column label="仓库" align="center" prop="warehouseName" /> <el-table-column label="仓库" align="center" prop="warehouseName" />
<el-table-column label="合同号" align="center" prop="cargoNo" width="160"/> <el-table-column label="合同号" align="center" prop="orderId" width="160"/>
<el-table-column label="产品号" align="center" prop="phase" width="160"/> <el-table-column label="产品号" align="center" prop="power" width="160"/>
<el-table-column label="代号" align="center" prop="fid" width="160"/> <el-table-column label="代号" align="center" prop="distribution" width="160"/>
<el-table-column label="台次" align="center" prop="power" width="160"/> <el-table-column label="台次" align="center" prop="spec" width="160"/>
<el-table-column label="物料编码" align="center" prop="productId" /><!--物资编号--> <el-table-column label="物料编码" align="center" prop="productId" />
<el-table-column label="物料名称" align="center" prop="productName" /><!--物资名称--> <el-table-column label="物料名称" align="center" prop="productName" />
<!-- <el-table-column label="批次" align="center" prop="lotNo" />--> <el-table-column label="单重" align="center" prop="netWeight" />
<!-- <el-table-column label="规格型号" align="center" prop="productSpec" />--> <el-table-column label="路线" align="center" prop="grossWeight" />
<!-- <el-table-column label="供应商" align="center" prop="supplierName" />--> <el-table-column label="供应商" align="center" prop="phase" />
<!-- <el-table-column label="客户编码" align="center" prop="outId" />--> <el-table-column label="部门" align="center" prop="model" />
<!-- <el-table-column label="客户名称" align="center" prop="customerName" width="230">--> <el-table-column label="数量" align="center" prop="quantity" width="150">
<!-- <template slot-scope="scope">-->
<!-- <el-input-->
<!-- v-model="scope.row.customerName"-->
<!-- placeholder="点击选择客户"-->
<!-- readonly-->
<!-- size="mini"-->
<!-- @focus="openRowCustomerSelector(scope.row)"-->
<!-- />-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column :label="'数量'" align="center" prop="quantity" width="150"><!--数量-->
<template slot-scope="scope"> <template slot-scope="scope">
<el-input-number v-model="scope.row.quantity" :min="1" size="mini" @change="handleQuantityChange(scope.row)" /> <el-input-number v-model="scope.row.quantity" :min="1" size="mini" @change="handleQuantityChange(scope.row)" />
</template> </template>
</el-table-column> </el-table-column>
<!-- <el-table-column label="状态" align="center" prop="spec">
<template slot-scope="scope">
<dict-tag :options="dict.type.turnover_type" :value="scope.row.spec"/>
</template>
</el-table-column>
<el-table-column label="来源" align="center" prop="unit" >
<template slot-scope="scope">
<dict-tag :options="dict.type.origin_type" :value="scope.row.unit"/>
</template>
</el-table-column>-->
<!-- <el-table-column label="入库单价" align="center" prop="price" />-->
<!-- <el-table-column label="产品质量" align="center" prop="voltage" >
<template slot-scope="scope">
<dict-tag :options="dict.type.quality_type" :value="scope.row.voltage"/>
</template>
</el-table-column>-->
<!-- <el-table-column label="用途" align="center" prop="model" >
<template slot-scope="scope">
<dict-tag :options="dict.type.purpose_type" :value="scope.row.model"/>
</template>
</el-table-column>
<el-table-column label="套账" align="center" prop="entryid" >
<template slot-scope="scope">
<dict-tag :options="dict.type.account_type" :value="scope.row.entryid"/>
</template>
</el-table-column>
<el-table-column label="单位" align="center" prop="productUnit" />
<el-table-column label="图号" align="center" prop="productDrawNo" />-->
<!-- <el-table-column label="物料状态" align="center" prop="productStatus" >
<template slot-scope="scope">
<dict-tag :options="dict.type.product_type" :value="scope.row.productStatus"/>
</template>
</el-table-column>-->
<!-- <el-table-column label="常用编码" align="center" prop="parentId" />
<el-table-column label="是否启用" align="center" prop="isUsed" >
<template slot-scope="scope">
<dict-tag :options="dict.type.sys_yes_no" :value="scope.row.isUsed"/>
</template>
</el-table-column>
<el-table-column label="创建时间" align="center" prop="createTime" />
<el-table-column label="创建用户" align="center" prop="createSys" />-->
<el-table-column :label="'操作'" align="center" class-name="small-padding fixed-width"><!--操作--> <el-table-column :label="'操作'" align="center" class-name="small-padding fixed-width"><!--操作-->
<template slot-scope="scope"> <template slot-scope="scope">
@@ -124,7 +68,7 @@
</el-table> </el-table>
<!-- 选择物资弹窗 --> <!-- 选择物资弹窗 -->
<el-dialog :title="'选择物资'" :visible.sync="materialDialog" width="1700px" append-to-body><!--选择物资--> <el-dialog :title="'选择物资'" :visible.sync="materialDialog" width="80%" custom-class="material-dialog" append-to-body><!--选择物资-->
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="68px"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="68px">
<el-form-item label="合同号" prop="orderId"> <el-form-item label="合同号" prop="orderId">
@@ -159,14 +103,6 @@
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<!-- <el-form-item label="物料编码" prop="productId">&lt;!&ndash;物资编码&ndash;&gt;
<el-input
v-model="queryParams.productId"
:placeholder="'请输入物料编码'"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>-->
<el-form-item label="物料名称" prop="productName"><!--物资名称--> <el-form-item label="物料名称" prop="productName"><!--物资名称-->
<el-input <el-input
v-model="queryParams.productName" v-model="queryParams.productName"
@@ -175,15 +111,6 @@
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="规格型号" prop="spec">
<el-input
v-model="queryParams.spec"
placeholder="请输入规格型号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">{{'搜索'}}<!--搜索--></el-button> <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">{{'搜索'}}<!--搜索--></el-button>
@@ -193,65 +120,19 @@
<el-table v-loading="materialLoading" :data="materialOptions" @selection-change="handleSelectionChange"> <el-table v-loading="materialLoading" :data="materialOptions" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column label="序号" align="center" prop="onlyIdentity" /> <el-table-column label="id" align="center" prop="onlyIdentity" />
<el-table-column label="仓库编码" align="center" prop="warehouseId" /> <el-table-column label="物料编码" align="center" prop="productId" />
<el-table-column label="仓库" align="center" prop="warehouseName" /> <el-table-column label="物料名称" align="center" prop="productName" />
<el-table-column label="数量" align="center" prop="quantity" />
<el-table-column label="仓库id" align="center" prop="warehouseId" />
<el-table-column label="合同号" align="center" prop="orderId" /> <el-table-column label="合同号" align="center" prop="orderId" />
<el-table-column label="产品号" align="center" prop="power" /> <el-table-column label="产品号" align="center" prop="power" />
<el-table-column label="代号" align="center" prop="distribution" /> <el-table-column label="代号" align="center" prop="distribution" />
<el-table-column label="台次" align="center" prop="spare5" /> <el-table-column label="台次" align="center" prop="spare5" />
<el-table-column label="单重" align="center" prop="netWeight" />
<el-table-column label="物料编码" align="center" prop="productId" /> <el-table-column label="路线" align="center" prop="grossWeight" />
<!-- <el-table-column label="批次" align="center" prop="lotNo" />--> <el-table-column label="供应商" align="center" prop="phase" />
<el-table-column label="物料名称" align="center" prop="productName" /> <el-table-column label="部门" align="center" prop="model" />
<el-table-column label="规格型号" align="center" prop="spec" />
<!-- <el-table-column label="图号" align="center" prop="cargoNo" />-->
<el-table-column label="库存数量" align="center" prop="quantity" />
<!-- <el-table-column label="来源" align="center" prop="spare1">
<template slot-scope="scope">
<dict-tag :options="dict.type.origin_type" :value="scope.row.spare1"/>
</template>
</el-table-column>
<el-table-column label="套账" align="center" prop="spare3">
<template slot-scope="scope">
<dict-tag :options="dict.type.account_type" :value="scope.row.spare3"/>
</template>
</el-table-column>
<el-table-column label="用途" align="center" prop="spare4">
<template slot-scope="scope">
<dict-tag :options="dict.type.purpose_type" :value="scope.row.spare4"/>
</template>
</el-table-column>-->
<!-- <el-table-column label="入库单价" align="center" prop="spare6" />-->
<!-- <el-table-column label="状态" align="center" prop="voltage">
<template slot-scope="scope">
<dict-tag :options="dict.type.turnover_type" :value="scope.row.voltage"/>
</template>
</el-table-column>-->
<!-- <el-table-column label="供应商" align="center" prop="phase" />-->
<!-- <el-table-column label="供应商" align="center" prop="supplierName" />-->
<!-- <el-table-column label="质量等级" align="center" prop="spare8">
<template slot-scope="scope">
<dict-tag :options="dict.type.quality_type" :value="scope.row.spare8"/>
</template>
</el-table-column>
<el-table-column label="单价" align="center" prop="price" />
<el-table-column label="物料状态" align="center" prop="productStatus">
<template slot-scope="scope">
<dict-tag :options="dict.type.product_type" :value="scope.row.productStatus"/>
</template>
</el-table-column>
<el-table-column label="常用编码" align="center" prop="parentId" />
<el-table-column label="启用标识" align="center" prop="spare7">
<template slot-scope="scope">
<dict-tag :options="dict.type.sys_yes_no" :value="scope.row.spare7"/>
</template>
</el-table-column>-->
<!-- <el-table-column label="创建用户" align="center" prop="createSys" />-->
<!-- <el-table-column label="单位" align="center" prop="unit" />-->
</el-table> </el-table>
<pagination <pagination
@@ -268,104 +149,6 @@
</div> </div>
</el-dialog> </el-dialog>
<!-- 选择客户弹窗 -->
<el-dialog :title="'客户管理'" :visible.sync="customerDialog" width="800px" append-to-body>
<el-form :model="customerQueryParams" ref="customerQueryForm" size="small" :inline="true" label-width="100px">
<el-form-item :label="'客户编号'" prop="customerNo"><!--客户编号-->
<el-input
v-model="customerQueryParams.customerNo"
:placeholder="'请输入客户编号'"
clearable
@keyup.enter.native="handleCustomerQuery"
/>
</el-form-item>
<el-form-item :label="'客户名称'" prop="customerName"><!--客户名称-->
<el-input
v-model="customerQueryParams.customerName"
:placeholder="'请输入客户名称'"
clearable
@keyup.enter.native="handleCustomerQuery"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleCustomerQuery">搜索<!--搜索--></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetCustomerQuery">重置<!--重置--></el-button>
</el-form-item>
</el-form>
<el-table ref="customerTable" v-loading="customerLoading" :data="customerList" @row-click="handleCustomerRowClick" highlight-current-row>
<el-table-column :label="'客户编号'" align="left" prop="customerNo" /><!--客户编号-->
<el-table-column :label="'客户名称'" align="left" prop="customerName" /><!--客户名称-->
<!-- <el-table-column :label="$t('basCustomer.simpleName')" align="left" prop="simpleName" />客户简称 -->
<el-table-column :label="'是否可用'" align="left" prop="useable">
<template slot-scope="scope">
<dict-tag :options="dict.type.is_available" :value="scope.row.useable"/>
</template>
</el-table-column><!--是否可用-->
</el-table>
<pagination
v-show="customerTotal > 0"
:total="customerTotal"
:page.sync="customerQueryParams.pageNum"
:limit.sync="customerQueryParams.pageSize"
@pagination="getCustomerList"
/>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="confirmSelectCustomer">确定<!--确 定--></el-button>
<el-button @click="cancelSelectCustomer">取消<!--取 消--></el-button>
</div>
</el-dialog>
<!-- 选择供应商弹窗 -->
<el-dialog :title="'选择供应商'" :visible.sync="supplierDialog" width="800px" append-to-body>
<el-form :model="supplierQueryParams" ref="supplierQueryForm" size="small" :inline="true" label-width="100px">
<el-form-item :label="'供应商编号'" prop="supplierNo">
<el-input
v-model="supplierQueryParams.supplierNo"
:placeholder="'请输入供应商编号'"
clearable
@keyup.enter.native="handleSupplierQuery"
/>
</el-form-item>
<el-form-item :label="'供应商名称'" prop="supplierName">
<el-input
v-model="supplierQueryParams.supplierName"
:placeholder="'请输入供应商名称'"
clearable
@keyup.enter.native="handleSupplierQuery"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleSupplierQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetSupplierQuery">重置</el-button>
</el-form-item>
</el-form>
<el-table ref="supplierTable" v-loading="supplierLoading" :data="supplierList" @row-click="handleSupplierRowClick" highlight-current-row>
<el-table-column :label="'供应商编号'" align="left" prop="supplierNo" />
<el-table-column :label="'供应商名称'" align="left" prop="supplierName" />
<el-table-column :label="'是否可用'" align="left" prop="useable">
<template slot-scope="scope">
<dict-tag :options="dict.type.is_available" :value="scope.row.useable"/>
</template>
</el-table-column>
</el-table>
<pagination
v-show="supplierTotal > 0"
:total="supplierTotal"
:page.sync="supplierQueryParams.pageNum"
:limit.sync="supplierQueryParams.pageSize"
@pagination="getSupplierListForDialog"
/>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="confirmSelectSupplier">确定</el-button>
<el-button @click="cancelSelectSupplier">取消</el-button>
</div>
</el-dialog>
</div> </div>
</template> </template>
@@ -642,36 +425,21 @@ export default {
this.materialList = this.materialList.concat( this.materialList = this.materialList.concat(
newMaterials.map(item => ({ newMaterials.map(item => ({
onlyIdentity: item.onlyIdentity,
productId: item.productId, productId: item.productId,
productName: item.productName, productName: item.productName,
quantity: item.quantity, quantity: item.quantity,
quantityOrignal: item.quantity, quantityOrignal: item.quantity,
spec: item.voltage,
supplierId: item.phase,
supplierName: item.supplierName,
phase: item.power,
fid: item.distribution,
cargoNo: item.orderId,
entryid: item.spare3,
unit: item.spare1,
model: item.spare4,
price:item.spare6,
power:item.spare5,
warehouseId: item.warehouseId, warehouseId: item.warehouseId,
warehouseName: item.warehouseName, warehouseName: item.warehouseName,
lotNo: item.lotNo, orderId: item.orderId,
voltage:item.spare8, power: item.power,
onlyIdentity: item.onlyIdentity, distribution: item.distribution,
productPrice:item.price, spec: item.spare5,
productSpec:item.spec, netWeight: item.netWeight,
productUnit:item.unit, grossWeight: item.grossWeight,
productDrawNo:item.cargoNo, phase: item.phase,
productStatus:item.productStatus, model: item.model,
parentId: item.parentId,
isUsed:item.spare7,
createTime: item.createTime,
createSys:item.createSys
})) }))
); );
@@ -759,4 +527,14 @@ export default {
width: auto; width: auto;
min-width: fit-content; min-width: fit-content;
} }
.material-dialog {
height: 50vh;
overflow: hidden;
display: flex;
flex-direction: column;
}
.material-dialog >>> .el-dialog__body {
flex: 1;
overflow-y: auto;
}
</style> </style>

View File

@@ -152,11 +152,15 @@
<dict-tag :options="dict.type.bill_resource" :value="scope.row.stockoutSource"/> <dict-tag :options="dict.type.bill_resource" :value="scope.row.stockoutSource"/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="上位单号" align="left" prop="erpStockoutId" width="150"/><!--入库订单-->
<!-- <el-table-column :label="'出口'" align="left" prop="exitId" />-->
<!-- <el-table-column :label="'客户编码'" align="left" prop="customerNo" />&lt;!&ndash; 客户编码 &ndash;&gt;-->
<!-- <el-table-column label="客户名称" align="left" prop="customerName" />-->
<el-table-column label="建单人" align="left" prop="createManName" /> <!-- 建单人 --> <el-table-column label="建单人" align="left" prop="createManName" /> <!-- 建单人 -->
<el-table-column label="上位单号" align="left" prop="erpStockoutId" width="150"/><!--入库订单-->
<el-table-column label="出口" align="left" prop="exitId" ><!--出口-->
<template slot-scope="scope">
<dict-tag :options="dict.type.exit_type" :value="scope.row.exitId"/>
</template>
</el-table-column>
<el-table-column label="领料人" align="left" prop="classNowId" />
<!-- <el-table-column label="客户名称" align="left" prop="customerName" />-->
<el-table-column label="创建时间" align="left" prop="createDate" width="160"/><!-- 创建时间 --> <el-table-column label="创建时间" align="left" prop="createDate" width="160"/><!-- 创建时间 -->
<el-table-column label="开始时间" align="left" prop="startDate" width="160"/><!-- 开始时间 --> <el-table-column label="开始时间" align="left" prop="startDate" width="160"/><!-- 开始时间 -->
<el-table-column label="确认时间" align="left" prop="finishDate" width="160"/> <!-- 确认时间 --> <el-table-column label="确认时间" align="left" prop="finishDate" width="160"/> <!-- 确认时间 -->
@@ -176,88 +180,31 @@
<el-table v-loading="detailLoading" :data="outStockDetailList" style="margin-top: 20px;" @selection-change="handleDetailSelectionChange"> <el-table v-loading="detailLoading" :data="outStockDetailList" style="margin-top: 20px;" @selection-change="handleDetailSelectionChange">
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column :label="'出库子单编号'" align="center" prop="stockoutDetailId" width="160" /> <!-- 出库子单编号 --> <el-table-column :label="'出库子单编号'" align="center" prop="stockoutDetailId" width="160" /> <!-- 出库子单编号 -->
<!-- <el-table-column label="仓库" align="center" prop="warehouseId" > <el-table-column label="合同号" align="center" prop="orderId" width="160"/>
<template slot-scope="scope"> <el-table-column label="产品号" align="center" prop="power" width="160"/>
<dict-tag :options="dict.type.warehouse" :value="scope.row.warehouseId"/> <el-table-column label="代号" align="center" prop="distribution" width="160"/>
</template> <el-table-column label="台次" align="center" prop="spec" width="160"/>
</el-table-column>--> <el-table-column label="单重" align="center" prop="netWeight" />
<el-table-column label="合同号" align="center" prop="cargoNo" width="160"/> <el-table-column label="路线" align="center" prop="grossWeight" width="160"/>
<el-table-column label="产品号" align="center" prop="phase" width="160"/> <el-table-column label="供应商" align="center" prop="phase" width="160"/>
<el-table-column label="代号" align="center" prop="fid" width="160"/> <el-table-column label="物料编码" align="center" prop="productId" />
<el-table-column label="台次" align="center" prop="power" width="160"/>
<el-table-column label="物料编码" align="center" prop="productId" /> <!-- 物资编码 -->
<el-table-column label="物料名称" align="center" prop="productName" /> <el-table-column label="物料名称" align="center" prop="productName" />
<!-- <el-table-column :label="'批次'" align="center" prop="lotNo"/>--> <el-table-column label="计划数量" align="center" prop="quantity" />
<!-- <el-table-column label="规格型号" align="center" prop="productSpec" />--> <el-table-column label="分配数量" align="center" prop="allotQuantity" />
<!-- <el-table-column label="供应商" align="center" prop="supplierName" />--> <el-table-column label="实际数量" align="center" prop="assignNum" />
<!-- <el-table-column label="客户" align="center" prop="customerName" />-->
<el-table-column label="计划数量" align="center" prop="quantity" /> <!-- 计划数量 -->
<el-table-column label="分配数量" align="center" prop="allotQuantity" /> <!-- 分配数量 -->
<el-table-column label="实际数量" align="center" prop="assignNum" /> <!-- 实际数量 -->
<!-- <el-table-column label="回传状态" align="center" prop="swStatus" >
<template slot-scope="scope">
<dict-tag :options="dict.type.sw_status" :value="scope.row.swStatus"/>
</template>
</el-table-column>-->
<!-- <el-table-column :label="'入库单价'" align="center" prop="price"/>-->
<!-- <el-table-column :label="'来源'" align="center" prop="unit">
<template slot-scope="scope">
<dict-tag :options="dict.type.origin_type" :value="scope.row.unit"/>
</template>
</el-table-column>
<el-table-column :label="'状态'" align="center" prop="spec">
<template slot-scope="scope">
<dict-tag :options="dict.type.turnover_type" :value="scope.row.spec"/>
</template>
</el-table-column>-->
<!-- <el-table-column label="产品质量" align="center" prop="voltage" >
<template slot-scope="scope">
<dict-tag :options="dict.type.quality_type" :value="scope.row.voltage"/>
</template>
</el-table-column>-->
<!-- <el-table-column label="分销" align="center" prop="distribution" />-->
<!-- <el-table-column label="用途" align="center" prop="model" >
<template slot-scope="scope">
<dict-tag :options="dict.type.purpose_type" :value="scope.row.model"/>
</template>
</el-table-column>
<el-table-column label="套账" align="center" prop="entryid" >
<template slot-scope="scope">
<dict-tag :options="dict.type.account_type" :value="scope.row.entryid"/>
</template>
</el-table-column>-->
<!-- <el-table-column label="单位" align="center" prop="productUnit" />-->
<!-- <el-table-column label="图号" align="center" prop="productDrawNo" />-->
<!-- <el-table-column label="物料状态" align="center" prop="productStatus" >
<template slot-scope="scope">
<dict-tag :options="dict.type.product_type" :value="scope.row.productStatus"/>
</template>
</el-table-column>
<el-table-column label="常用编码" align="center" prop="parentId" />
<el-table-column label="是否启用" align="center" prop="isUsed" >
<template slot-scope="scope">
<dict-tag :options="dict.type.sys_yes_no" :value="scope.row.isUsed"/>
</template>
</el-table-column>-->
<!-- <el-table-column label="创建时间" align="center" prop="createTime" />
<el-table-column label="创建用户" align="center" prop="createSys" />-->
</el-table> </el-table>
<!-- <pagination-->
<!-- v-show="detailTotal>0"-->
<!-- :total="detailTotal"-->
<!-- :page.sync="detailQueryParams.pageNum"-->
<!-- :limit.sync="detailQueryParams.pageSize"-->
<!-- @pagination="getDetailList"-->
<!-- />-->
<!-- 审核弹窗 --> <!-- 审核弹窗 -->
<el-dialog :title="'审核'" :visible.sync="auditDialogVisible" width="400px" append-to-body> <el-dialog :title="'审核'" :visible.sync="auditDialogVisible" width="400px" append-to-body>
<el-form ref="auditForm" :model="auditForm" :rules="auditRules" label-width="80px"> <el-form ref="auditForm" :model="auditForm" :rules="auditRules" label-width="80px">
<el-form-item label="领料人" prop="pickUser">
<el-input
v-model="auditForm.pickUser"
placeholder="请输入领料人"
clearable
/>
</el-form-item>
<el-form-item :label="'选择出口'" prop="exitId"> <el-form-item :label="'选择出口'" prop="exitId">
<el-select v-model="auditForm.exitId" :placeholder="'请选择出口'" clearable> <el-select v-model="auditForm.exitId" :placeholder="'请选择出口'" clearable>
<el-option <el-option
@@ -401,7 +348,7 @@ import {listWarehouse} from "@/api/bas/warehouse";
export default { export default {
name: "OutStockWithDetail", name: "OutStockWithDetail",
dicts: ['bill_resource','sw_status','out_bill_type', 'out_bill_status', 'product_type', 'quality_type', 'turnover_type', 'sys_yes_no','account_type','origin_type','purpose_type','warehouse'], dicts: ['bill_resource','out_bill_type', 'out_bill_status','exit_type'],
data() { data() {
return { return {
// 遮罩层 // 遮罩层
@@ -428,7 +375,8 @@ export default {
auditDialogVisible: false, auditDialogVisible: false,
// 审核表单数据 // 审核表单数据
auditForm: { auditForm: {
exitId: null exitId: null,
pickUser:null
}, },
// 库存明细弹窗显示状态 // 库存明细弹窗显示状态
stockDialogVisible: false, stockDialogVisible: false,
@@ -448,8 +396,8 @@ export default {
}, },
// 出口选项 // 出口选项
exitOptions: [ exitOptions: [
{ exitId: '1', exitName: '北端'}, { exitId: '1', exitName: '入库端'},
{ exitId: '2', exitName: '南端'}, { exitId: '2', exitName: '出库端'},
], ],
@@ -624,6 +572,7 @@ export default {
this.auditDialogVisible = true this.auditDialogVisible = true
this.auditForm.exitId = null this.auditForm.exitId = null
this.auditForm.pickUser = null
return return
} }
@@ -726,7 +675,8 @@ export default {
stockoutIds: this.selectedRows.map(row => row.stockoutId), stockoutIds: this.selectedRows.map(row => row.stockoutId),
status: this.selectedRows[0].status, status: this.selectedRows[0].status,
newStatus: this.currentAuditStatus, newStatus: this.currentAuditStatus,
exitId: this.auditForm.exitId exitId: this.auditForm.exitId,
pickUser: this.auditForm.pickUser
} }
// console.log("单据状态修改(含出口信息):", params) // console.log("单据状态修改(含出口信息):", params)

View File

@@ -194,35 +194,19 @@
<el-table v-loading="detailLoading" :data="detailList" @selection-change="handleSelectionChange" max-height="650"> <el-table v-loading="detailLoading" :data="detailList" @selection-change="handleSelectionChange" max-height="650">
<el-table-column type="selection" align="center" /> <el-table-column type="selection" align="center" />
<!-- <el-table-column label="仓库名称" align="center" prop="warehouseName"/>-->
<el-table-column label="库存编码" align="center" prop="stockId" width="160"/> <el-table-column label="库存编码" align="center" prop="stockId" width="160"/>
<!-- <el-table-column label="库位" align="center" prop="cargoSpaceId" width="160"/>-->
<!-- <el-table-column label="托盘" align="center" prop="trayCode" width="160"/>-->
<el-table-column label="合同号" align="center" prop="orderId" width="160"/> <el-table-column label="合同号" align="center" prop="orderId" width="160"/>
<el-table-column label="产品号" align="center" prop="power" width="160"/> <el-table-column label="产品号" align="center" prop="power" width="160"/>
<el-table-column label="代号" align="center" prop="distribution" width="160"/> <el-table-column label="代号" align="center" prop="distribution" width="160"/>
<el-table-column label="台次" align="center" prop="spare5"/> <el-table-column label="台次" align="center" prop="spare5"/>
<el-table-column label="物料编码" align="center" prop="productId"/> <el-table-column label="单重" align="center" prop="netWeight"/>
<el-table-column label="物料名称" align="center" prop="productName" width="160" /> <el-table-column label="路线" align="center" prop="grossWeight" width="160" show-overflow-tooltip />
<!-- <el-table-column label="规格" align="center" prop="spec" width="160"/>--> <el-table-column label="物料名称" align="center" prop="productName" width="160" show-overflow-tooltip />
<el-table-column label="库存状态" align="center" prop="stockStatus" >
<template slot-scope="scope">
<dict-tag :options="dict.type.stock_status" :value="scope.row.stockStatus"/>
</template>
</el-table-column>
<el-table-column label="数量" align="center" prop="quantity"/> <el-table-column label="数量" align="center" prop="quantity"/>
<!-- <el-table-column label="重量" align="center" prop="netWeight" width="160"/>-->
<!-- <el-table-column label="入库单号" align="center" prop="stockinId" width="160"/>-->
<el-table-column label="首次入库时间" align="center" prop="inDate" width="160"/> <el-table-column label="首次入库时间" align="center" prop="inDate" width="160"/>
<el-table-column label="最后出库时间" align="center" prop="stackingId" width="160"/> <el-table-column label="最后出库时间" align="center" prop="stackingId" width="160"/>
<!-- <el-table-column label="盘点标识" align="center" prop="spare7">
<template slot-scope="scope">
<dict-tag :options="dict.type.check_flag" :value="scope.row.spare7"/>
</template>
</el-table-column>-->
<!-- <el-table-column label="盘点时间" align="center" prop="backDate" width="160"/>-->
<el-table-column label="备注" align="center" prop="remark"/> <el-table-column label="备注" align="center" prop="remark"/>
<el-table-column width=120 label="操作" align="center" class-name="small-padding fixed-width"> <!-- 操作 --> <!-- <el-table-column width=120 label="操作" align="center" class-name="small-padding fixed-width"> &lt;!&ndash; 操作 &ndash;&gt;
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
size="mini" size="mini"
@@ -230,16 +214,16 @@
icon="el-icon-edit" icon="el-icon-edit"
@click="handleUpdate(scope.row)" @click="handleUpdate(scope.row)"
v-hasPermi="['stock:management:edit']" v-hasPermi="['stock:management:edit']"
>修改 <!-- 修改 --></el-button> >修改 &lt;!&ndash; 修改 &ndash;&gt;</el-button>
<el-button <el-button
size="mini" size="mini"
type="text" type="text"
icon="el-icon-delete" icon="el-icon-delete"
@click="handleDelete(scope.row)" @click="handleDelete(scope.row)"
v-hasPermi="['stock:management:remove']" v-hasPermi="['stock:management:remove']"
>删除 <!-- 删除 --></el-button> >删除 &lt;!&ndash; 删除 &ndash;&gt;</el-button>
</template> </template>
</el-table-column> </el-table-column>-->
</el-table> </el-table>
<pagination <pagination