Merge remote-tracking branch 'origin/master'

This commit is contained in:
lsymicc
2025-05-22 15:41:22 +08:00
15 changed files with 565 additions and 883 deletions

View File

@@ -23,7 +23,7 @@ import com.ruoyi.common.core.page.TableDataInfo;
/**
* 入库单据Controller
*
*
* @author ruoyi
* @date 2025-05-20
*/
@@ -88,7 +88,7 @@ public class InStockinController extends BaseController
@PutMapping
public AjaxResult edit(@RequestBody InStockin inStockin)
{
return toAjax(inStockinService.updateInStockin(inStockin));
return inStockinService.updateInStockin(inStockin);
}
/**

View File

@@ -5,15 +5,15 @@ import com.ruoyi.in.stockin.domain.InStockin;
/**
* 入库单据Mapper接口
*
*
* @author ruoyi
* @date 2025-05-20
*/
public interface InStockinMapper
public interface InStockinMapper
{
/**
* 查询入库单据
*
*
* @param stockinGuid 入库单据主键
* @return 入库单据
*/
@@ -21,7 +21,7 @@ public interface InStockinMapper
/**
* 查询入库单据列表
*
*
* @param inStockin 入库单据
* @return 入库单据集合
*/
@@ -29,7 +29,7 @@ public interface InStockinMapper
/**
* 新增入库单据
*
*
* @param inStockin 入库单据
* @return 结果
*/
@@ -37,7 +37,7 @@ public interface InStockinMapper
/**
* 修改入库单据
*
*
* @param inStockin 入库单据
* @return 结果
*/
@@ -45,7 +45,7 @@ public interface InStockinMapper
/**
* 删除入库单据
*
*
* @param stockinGuid 入库单据主键
* @return 结果
*/
@@ -53,9 +53,11 @@ public interface InStockinMapper
/**
* 批量删除入库单据
*
*
* @param stockinGuids 需要删除的数据主键集合
* @return 结果
*/
public int deleteInStockinByStockinGuids(String[] stockinGuids);
void insertInStockinHistory(InStockin inStockin);
}

View File

@@ -1,19 +1,21 @@
package com.ruoyi.in.stockin.service;
import java.util.List;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.in.stockin.domain.InStockin;
/**
* 入库单据Service接口
*
*
* @author ruoyi
* @date 2025-05-20
*/
public interface IInStockinService
public interface IInStockinService
{
/**
* 查询入库单据
*
*
* @param stockinGuid 入库单据主键
* @return 入库单据
*/
@@ -21,7 +23,7 @@ public interface IInStockinService
/**
* 查询入库单据列表
*
*
* @param inStockin 入库单据
* @return 入库单据集合
*/
@@ -29,7 +31,7 @@ public interface IInStockinService
/**
* 新增入库单据
*
*
* @param inStockin 入库单据
* @return 结果
*/
@@ -37,15 +39,15 @@ public interface IInStockinService
/**
* 修改入库单据
*
*
* @param inStockin 入库单据
* @return 结果
*/
public int updateInStockin(InStockin inStockin);
public AjaxResult updateInStockin(InStockin inStockin);
/**
* 批量删除入库单据
*
*
* @param stockinGuids 需要删除的入库单据主键集合
* @return 结果
*/
@@ -53,7 +55,7 @@ public interface IInStockinService
/**
* 删除入库单据信息
*
*
* @param stockinGuid 入库单据主键
* @return 结果
*/

View File

@@ -1,27 +1,36 @@
package com.ruoyi.in.stockin.service.impl;
import java.util.List;
import cn.hutool.core.collection.CollUtil;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.in.stockindetail.domain.InStockinDetail;
import com.ruoyi.in.stockindetail.service.IInStockinDetailService;
import com.ruoyi.receive.stockindetail.domain.ReceiveStockinDetail;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.in.stockin.mapper.InStockinMapper;
import com.ruoyi.in.stockin.domain.InStockin;
import com.ruoyi.in.stockin.service.IInStockinService;
import org.springframework.transaction.annotation.Transactional;
/**
* 入库单据Service业务层处理
*
*
* @author ruoyi
* @date 2025-05-20
*/
@Service
public class InStockinServiceImpl implements IInStockinService
public class InStockinServiceImpl implements IInStockinService
{
@Autowired
private InStockinMapper inStockinMapper;
@Autowired
private IInStockinDetailService iInStockinDetailService;
/**
* 查询入库单据
*
*
* @param stockinGuid 入库单据主键
* @return 入库单据
*/
@@ -33,7 +42,7 @@ public class InStockinServiceImpl implements IInStockinService
/**
* 查询入库单据列表
*
*
* @param inStockin 入库单据
* @return 入库单据
*/
@@ -45,7 +54,7 @@ public class InStockinServiceImpl implements IInStockinService
/**
* 新增入库单据
*
*
* @param inStockin 入库单据
* @return 结果
*/
@@ -57,19 +66,65 @@ public class InStockinServiceImpl implements IInStockinService
/**
* 修改入库单据
*
*
* @param inStockin 入库单据
* @return 结果
*/
@Override
public int updateInStockin(InStockin inStockin)
@Transactional(rollbackFor = Exception.class)
public AjaxResult updateInStockin(InStockin inStockin)
{
return inStockinMapper.updateInStockin(inStockin);
InStockin old = selectInStockinByStockinGuid(inStockin.getStockinGuid());
inStockinMapper.updateInStockin(inStockin);
if ("5".equals(inStockin.getStatus())){
//作废
if (!"1".equals(old.getStatus())){
throw new RuntimeException("单据状态非未执行状态!");
}
//插入历史单据
insertInStockinHistory(inStockin);
}else if ("2".equals(inStockin.getStatus())){
//审核
if (!"1".equals(old.getStatus())){
throw new RuntimeException("单据状态非未执行状态!");
}
}else if ("4".equals(inStockin.getStatus())){
//确认
if (!"3".equals(old.getStatus())){
throw new RuntimeException("单据状态非正执行状态!");
}
//对比扫码数量 与实际入库数量是否一致
InStockinDetail inStockinDetailParam = new InStockinDetail();
inStockinDetailParam.setStockinGuid(inStockin.getStockinGuid());
List<InStockinDetail> list = iInStockinDetailService.selectInStockinDetailList(inStockinDetailParam);
if (CollUtil.isNotEmpty(list)){
boolean b = list.stream().allMatch(x -> x.getAssignNum().equals(x.getScanNum()));
if (!b){
throw new RuntimeException("扫码数量与实际入库数量不一致!");
}
}
insertInStockinHistory(inStockin);
}
return AjaxResult.success();
}
/**
* 插入入库单据 入库子单据历史
* 删除入库单据
* 删除入库单据子单据
* @param inStockin
*/
private void insertInStockinHistory(InStockin inStockin) {
//插入历史单据
inStockinMapper.insertInStockinHistory(inStockin);
iInStockinDetailService.insertInStockinDetailHistory(inStockin);
inStockinMapper.deleteInStockinByStockinGuid(inStockin.getStockinGuid());
iInStockinDetailService.deleteInStockinDetailByStockinGuid(inStockin.getStockinGuid());
}
/**
* 批量删除入库单据
*
*
* @param stockinGuids 需要删除的入库单据主键
* @return 结果
*/
@@ -81,7 +136,7 @@ public class InStockinServiceImpl implements IInStockinService
/**
* 删除入库单据信息
*
*
* @param stockinGuid 入库单据主键
* @return 结果
*/

View File

@@ -1,5 +1,9 @@
package com.ruoyi.in.stockindetail.domain;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
@@ -7,10 +11,14 @@ import com.ruoyi.common.core.domain.BaseEntity;
/**
* 入库单据子表对象 in_stockin_detail
*
*
* @author ruoyi
* @date 2025-05-20
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class InStockinDetail extends BaseEntity
{
private static final long serialVersionUID = 1L;
@@ -58,6 +66,13 @@ public class InStockinDetail extends BaseEntity
@Excel(name = "品牌")
private String cargoNo;
@Excel(name = "扫码数量")
private String scanNum;
@Excel(name = "扫码数量(箱)")
private String scanNumX;
@Excel(name = "扫码数量(件)")
private String scanNumJ;
/** 实际数量 */
@Excel(name = "实际数量")
private String assignNum;
@@ -118,296 +133,4 @@ public class InStockinDetail extends BaseEntity
@Excel(name = "备用字段6")
private String spare6;
public void setStockinDetailId(String stockinDetailId)
{
this.stockinDetailId = stockinDetailId;
}
public String getStockinDetailId()
{
return stockinDetailId;
}
public void setStockinGuid(String stockinGuid)
{
this.stockinGuid = stockinGuid;
}
public String getStockinGuid()
{
return stockinGuid;
}
public void setStockinId(String stockinId)
{
this.stockinId = stockinId;
}
public String getStockinId()
{
return stockinId;
}
public void setLotNo(String lotNo)
{
this.lotNo = lotNo;
}
public String getLotNo()
{
return lotNo;
}
public void setProductGuid(String productGuid)
{
this.productGuid = productGuid;
}
public String getProductGuid()
{
return productGuid;
}
public void setProductId(String productId)
{
this.productId = productId;
}
public String getProductId()
{
return productId;
}
public void setQuantity(String quantity)
{
this.quantity = quantity;
}
public String getQuantity()
{
return quantity;
}
public void setQuantityX(String quantityX)
{
this.quantityX = quantityX;
}
public String getQuantityX()
{
return quantityX;
}
public void setQuantityJ(String quantityJ)
{
this.quantityJ = quantityJ;
}
public String getQuantityJ()
{
return quantityJ;
}
public void setPrice(String price)
{
this.price = price;
}
public String getPrice()
{
return price;
}
public void setCargoNo(String cargoNo)
{
this.cargoNo = cargoNo;
}
public String getCargoNo()
{
return cargoNo;
}
public void setAssignNum(String assignNum)
{
this.assignNum = assignNum;
}
public String getAssignNum()
{
return assignNum;
}
public void setAssignNumX(String assignNumX)
{
this.assignNumX = assignNumX;
}
public String getAssignNumX()
{
return assignNumX;
}
public void setAssignNumJ(String assignNumJ)
{
this.assignNumJ = assignNumJ;
}
public String getAssignNumJ()
{
return assignNumJ;
}
public void setPrintDate(String printDate)
{
this.printDate = printDate;
}
public String getPrintDate()
{
return printDate;
}
public void setStockStatus(String stockStatus)
{
this.stockStatus = stockStatus;
}
public String getStockStatus()
{
return stockStatus;
}
public void setSupplierId(String supplierId)
{
this.supplierId = supplierId;
}
public String getSupplierId()
{
return supplierId;
}
public void setCustomerId(String customerId)
{
this.customerId = customerId;
}
public String getCustomerId()
{
return customerId;
}
public void setUnit(String unit)
{
this.unit = unit;
}
public String getUnit()
{
return unit;
}
public void setSpec(String spec)
{
this.spec = spec;
}
public String getSpec()
{
return spec;
}
public void setSpare1(String spare1)
{
this.spare1 = spare1;
}
public String getSpare1()
{
return spare1;
}
public void setSpare2(String spare2)
{
this.spare2 = spare2;
}
public String getSpare2()
{
return spare2;
}
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;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("stockinDetailId", getStockinDetailId())
.append("stockinGuid", getStockinGuid())
.append("stockinId", getStockinId())
.append("lotNo", getLotNo())
.append("productGuid", getProductGuid())
.append("productId", getProductId())
.append("quantity", getQuantity())
.append("quantityX", getQuantityX())
.append("quantityJ", getQuantityJ())
.append("price", getPrice())
.append("cargoNo", getCargoNo())
.append("remark", getRemark())
.append("assignNum", getAssignNum())
.append("assignNumX", getAssignNumX())
.append("assignNumJ", getAssignNumJ())
.append("printDate", getPrintDate())
.append("stockStatus", getStockStatus())
.append("supplierId", getSupplierId())
.append("customerId", getCustomerId())
.append("unit", getUnit())
.append("spec", getSpec())
.append("spare1", getSpare1())
.append("spare2", getSpare2())
.append("spare3", getSpare3())
.append("spare4", getSpare4())
.append("spare5", getSpare5())
.append("spare6", getSpare6())
.toString();
}
}

View File

@@ -1,6 +1,8 @@
package com.ruoyi.in.stockindetail.mapper;
import java.util.List;
import com.ruoyi.in.stockin.domain.InStockin;
import com.ruoyi.in.stockindetail.domain.InStockinDetail;
import org.apache.ibatis.annotations.Param;
@@ -61,4 +63,8 @@ public interface InStockinDetailMapper
public int deleteInStockinDetailByStockinDetailIds(String[] stockinDetailIds);
void insertInStockinDetailList(@Param("list") List<InStockinDetail> inStockinDetailList);
void insertInStockinDetailHistory(InStockin inStockin);
void deleteInStockinDetailByStockinGuid(String stockinGuid);
}

View File

@@ -1,6 +1,8 @@
package com.ruoyi.in.stockindetail.service;
import java.util.List;
import com.ruoyi.in.stockin.domain.InStockin;
import com.ruoyi.in.stockindetail.domain.InStockinDetail;
/**
@@ -64,4 +66,12 @@ public interface IInStockinDetailService
* @param inStockinDetailList
*/
void insertInStockinDetailList(List<InStockinDetail> inStockinDetailList);
/**
* 插入历史数据
* @param inStockin
*/
void insertInStockinDetailHistory(InStockin inStockin);
void deleteInStockinDetailByStockinGuid(String stockinGuid);
}

View File

@@ -1,6 +1,8 @@
package com.ruoyi.in.stockindetail.service.impl;
import java.util.List;
import com.ruoyi.in.stockin.domain.InStockin;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.in.stockindetail.mapper.InStockinDetailMapper;
@@ -95,4 +97,14 @@ public class InStockinDetailServiceImpl implements IInStockinDetailService
public void insertInStockinDetailList(List<InStockinDetail> inStockinDetailList) {
inStockinDetailMapper.insertInStockinDetailList(inStockinDetailList);
}
@Override
public void insertInStockinDetailHistory(InStockin inStockin) {
inStockinDetailMapper.insertInStockinDetailHistory(inStockin);
}
@Override
public void deleteInStockinDetailByStockinGuid(String stockinGuid) {
inStockinDetailMapper.deleteInStockinDetailByStockinGuid(stockinGuid);
}
}

View File

@@ -262,6 +262,8 @@ public class ReceiveStockinServiceImpl implements IReceiveStockinService
inStockinDetail.setStockinDetailId(inStockin.getStockinId()+"-"+i++);
inStockinDetail.setStockinId(inStockin.getStockinId());
inStockinDetail.setStockStatus("0");
inStockinDetail.setAssignNum("0");
inStockinDetail.setScanNum("0");
inStockinDetailList.add(inStockinDetail);
}
return inStockinDetailList;

View File

@@ -1,5 +1,9 @@
package com.ruoyi.receive.stockindetail.domain;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
@@ -7,10 +11,14 @@ import com.ruoyi.common.core.domain.BaseEntity;
/**
* 收货单据子单对象 receive_stockin_detail
*
*
* @author ruoyi
* @date 2025-05-20
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class ReceiveStockinDetail extends BaseEntity
{
private static final long serialVersionUID = 1L;
@@ -118,296 +126,5 @@ public class ReceiveStockinDetail extends BaseEntity
@Excel(name = "备用字段6")
private String spare6;
public void setStockinDetailId(String stockinDetailId)
{
this.stockinDetailId = stockinDetailId;
}
public String getStockinDetailId()
{
return stockinDetailId;
}
public void setStockinGuid(String stockinGuid)
{
this.stockinGuid = stockinGuid;
}
public String getStockinGuid()
{
return stockinGuid;
}
public void setStockinId(String stockinId)
{
this.stockinId = stockinId;
}
public String getStockinId()
{
return stockinId;
}
public void setLotNo(String lotNo)
{
this.lotNo = lotNo;
}
public String getLotNo()
{
return lotNo;
}
public void setProductGuid(String productGuid)
{
this.productGuid = productGuid;
}
public String getProductGuid()
{
return productGuid;
}
public void setProductId(String productId)
{
this.productId = productId;
}
public String getProductId()
{
return productId;
}
public void setQuantity(String quantity)
{
this.quantity = quantity;
}
public String getQuantity()
{
return quantity;
}
public void setQuantityX(String quantityX)
{
this.quantityX = quantityX;
}
public String getQuantityX()
{
return quantityX;
}
public void setQuantityJ(String quantityJ)
{
this.quantityJ = quantityJ;
}
public String getQuantityJ()
{
return quantityJ;
}
public void setPrice(String price)
{
this.price = price;
}
public String getPrice()
{
return price;
}
public void setCargoNo(String cargoNo)
{
this.cargoNo = cargoNo;
}
public String getCargoNo()
{
return cargoNo;
}
public void setAssignNum(String assignNum)
{
this.assignNum = assignNum;
}
public String getAssignNum()
{
return assignNum;
}
public void setAssignNumX(String assignNumX)
{
this.assignNumX = assignNumX;
}
public String getAssignNumX()
{
return assignNumX;
}
public void setAssignNumJ(String assignNumJ)
{
this.assignNumJ = assignNumJ;
}
public String getAssignNumJ()
{
return assignNumJ;
}
public void setPrintDate(String printDate)
{
this.printDate = printDate;
}
public String getPrintDate()
{
return printDate;
}
public void setStockStatus(String stockStatus)
{
this.stockStatus = stockStatus;
}
public String getStockStatus()
{
return stockStatus;
}
public void setSupplierId(String supplierId)
{
this.supplierId = supplierId;
}
public String getSupplierId()
{
return supplierId;
}
public void setCustomerId(String customerId)
{
this.customerId = customerId;
}
public String getCustomerId()
{
return customerId;
}
public void setUnit(String unit)
{
this.unit = unit;
}
public String getUnit()
{
return unit;
}
public void setSpec(String spec)
{
this.spec = spec;
}
public String getSpec()
{
return spec;
}
public void setSpare1(String spare1)
{
this.spare1 = spare1;
}
public String getSpare1()
{
return spare1;
}
public void setSpare2(String spare2)
{
this.spare2 = spare2;
}
public String getSpare2()
{
return spare2;
}
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;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("stockinDetailId", getStockinDetailId())
.append("stockinGuid", getStockinGuid())
.append("stockinId", getStockinId())
.append("lotNo", getLotNo())
.append("productGuid", getProductGuid())
.append("productId", getProductId())
.append("quantity", getQuantity())
.append("quantityX", getQuantityX())
.append("quantityJ", getQuantityJ())
.append("price", getPrice())
.append("cargoNo", getCargoNo())
.append("remark", getRemark())
.append("assignNum", getAssignNum())
.append("assignNumX", getAssignNumX())
.append("assignNumJ", getAssignNumJ())
.append("printDate", getPrintDate())
.append("stockStatus", getStockStatus())
.append("supplierId", getSupplierId())
.append("customerId", getCustomerId())
.append("unit", getUnit())
.append("spec", getSpec())
.append("spare1", getSpare1())
.append("spare2", getSpare2())
.append("spare3", getSpare3())
.append("spare4", getSpare4())
.append("spare5", getSpare5())
.append("spare6", getSpare6())
.toString();
}
}

View File

@@ -32,10 +32,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="spare4" column="spare4" />
<result property="spare5" column="spare5" />
<result property="spare6" column="spare6" />
<result property="scanNum" column="scan_num" />
<result property="scanNumX" column="scan_num_x" />
<result property="scanNumJ" column="scan_num_j" />
</resultMap>
<sql id="selectInStockinDetailVo">
select stockin_detail_id, stockin_guid, stockin_id, lot_no, product_guid, product_id, quantity, quantity_x, quantity_j, price, cargo_no, remark, assign_num, assign_num_x, assign_num_j, print_date, stock_status, supplier_id, customer_id, unit, spec, spare1, spare2, spare3, spare4, spare5, spare6 from in_stockin_detail
select stockin_detail_id, stockin_guid, stockin_id, lot_no, product_guid, product_id, quantity, quantity_x, quantity_j, price, cargo_no, remark, assign_num, assign_num_x, assign_num_j, print_date, stock_status, supplier_id, customer_id, unit, spec, spare1, spare2, spare3, spare4, spare5, spare6, scan_num, scan_num_x, scan_num_j from in_stockin_detail
</sql>
<select id="selectInStockinDetailList" parameterType="InStockinDetail" resultMap="InStockinDetailResult">
@@ -66,6 +69,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="spare4 != null and spare4 != ''"> and spare4 = #{spare4}</if>
<if test="spare5 != null and spare5 != ''"> and spare5 = #{spare5}</if>
<if test="spare6 != null and spare6 != ''"> and spare6 = #{spare6}</if>
<if test="scanNum != null and scanNum != ''"> and scan_num = #{scanNum}</if>
<if test="scanNumX != null and scanNumX != ''"> and scan_num_x = #{scanNumX}</if>
<if test="scanNumJ != null and scanNumJ != ''"> and scan_num_j = #{scanNumJ}</if>
</where>
</select>
@@ -104,6 +110,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="spare4 != null">spare4,</if>
<if test="spare5 != null">spare5,</if>
<if test="spare6 != null">spare6,</if>
<if test="scanNum != null">scan_num,</if>
<if test="scanNumX != null">scan_num_x,</if>
<if test="scanNumJ != null">scan_num_j,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="stockinDetailId != null">#{stockinDetailId},</if>
@@ -133,6 +142,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="spare4 != null">#{spare4},</if>
<if test="spare5 != null">#{spare5},</if>
<if test="spare6 != null">#{spare6},</if>
<if test="scanNum != null">#{scanNum},</if>
<if test="scanNumX != null">#{scanNumX},</if>
<if test="scanNumJ != null">#{scanNumJ},</if>
</trim>
</insert>
<insert id="insertInStockinDetailList">
@@ -166,6 +178,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="list[0].spare4 != null">spare4,</if>
<if test="list[0].spare5 != null">spare5,</if>
<if test="list[0].spare6 != null">spare6,</if>
<if test="list[0].scanNum != null">scan_num,</if>
<if test="list[0].scanNumX != null">scan_num_x,</if>
<if test="list[0].scanNumJ != null">scan_num_j,</if>
</trim>
<!-- values 部分:遍历列表插入多行 -->
@@ -199,9 +214,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="item.spare4 != null">#{item.spare4},</if>
<if test="item.spare5 != null">#{item.spare5},</if>
<if test="item.spare6 != null">#{item.spare6},</if>
<if test="item.scanNum != null">#{item.scanNum},</if>
<if test="item.scanNumX != null">#{item.scanNumX},</if>
<if test="item.scanNumJ != null">#{item.scanNumJ},</if>
</trim>
</foreach>
</insert>
<insert id="insertInStockinDetailHistory">
insert into in_stockin_detail_finish
select * from in_stockin_detail where stockin_guid = #{stockinGuid}
</insert>
<update id="updateInStockinDetail" parameterType="InStockinDetail">
update in_stockin_detail
@@ -232,6 +254,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="spare4 != null">spare4 = #{spare4},</if>
<if test="spare5 != null">spare5 = #{spare5},</if>
<if test="spare6 != null">spare6 = #{spare6},</if>
<if test="scanNum != null">scan_num = #{scanNum},</if>
<if test="scanNumX != null">scan_num_x = #{scanNumX},</if>
<if test="scanNumJ != null">scan_num_j = #{scanNumJ},</if>
</trim>
where stockin_detail_id = #{stockinDetailId}
</update>
@@ -246,4 +271,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
#{stockinDetailId}
</foreach>
</delete>
<delete id="deleteInStockinDetailByStockinGuid">
delete from in_stockin_detail where stockin_guid = #{stockinGuid}
</delete>
</mapper>

View File

@@ -3,7 +3,7 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.in.stockin.mapper.InStockinMapper">
<resultMap type="InStockin" id="InStockinResult">
<result property="stockinGuid" column="stockin_guid" />
<result property="stockinId" column="stockin_id" />
@@ -32,7 +32,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectInStockinList" parameterType="InStockin" resultMap="InStockinResult">
<include refid="selectInStockinVo"/>
<where>
<where>
<if test="stockinId != null and stockinId != ''"> and stockin_id = #{stockinId}</if>
<if test="inType != null and inType != ''"> and in_type = #{inType}</if>
<if test="createDate != null and createDate != ''"> and create_date = #{createDate}</if>
@@ -53,7 +53,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="spare5 != null and spare5 != ''"> and spare5 = #{spare5}</if>
</where>
</select>
<select id="selectInStockinByStockinGuid" parameterType="String" resultMap="InStockinResult">
<include refid="selectInStockinVo"/>
where stockin_guid = #{stockinGuid}
@@ -104,6 +104,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="spare5 != null">#{spare5},</if>
</trim>
</insert>
<insert id="insertInStockinHistory">
insert into in_stockin_finish
select * from in_stockin where stockin_guid = #{stockinGuid}
</insert>
<update id="updateInStockin" parameterType="InStockin">
update in_stockin
@@ -135,9 +139,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</delete>
<delete id="deleteInStockinByStockinGuids" parameterType="String">
delete from in_stockin where stockin_guid in
delete from in_stockin where stockin_guid in
<foreach item="stockinGuid" collection="array" open="(" separator="," close=")">
#{stockinGuid}
</foreach>
</delete>
</mapper>
</mapper>

View File

@@ -42,3 +42,29 @@ export function delStockIn(stockinGuid) {
method: 'delete'
})
}
// 作废入库单据
export function invalidatedStockIn(data) {
return request({
url: '/in/stockIn',
method: 'put',
data: data
})
}
// 审核入库单据
export function reviewStockIn(data) {
return request({
url: '/in/stockIn',
method: 'put',
data: data
})
}
// 确认入库单据
export function confirmationStockIn(data) {
return request({
url: '/in/stockIn',
method: 'put',
data: data
})
}

View File

@@ -9,140 +9,140 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<!-- <el-form-item label="入库类型" prop="inType">
<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-select>
</el-form-item>
<el-form-item label="建立时间" prop="createDate">
<el-input
v-model="queryParams.createDate"
placeholder="请输入建立时间"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="创建人" prop="createManId">
<el-input
v-model="queryParams.createManId"
placeholder="请输入创建人"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="单据状态" prop="status">
<el-select v-model="queryParams.status" placeholder="请选择单据状态" clearable>
<el-option
v-for="dict in dict.type.in_bill_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="仓库ID" prop="warehouseId">
<el-input
v-model="queryParams.warehouseId"
placeholder="请输入仓库ID"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label=" 完成日期" prop="finishDate">
<el-input
v-model="queryParams.finishDate"
placeholder="请输入 完成日期"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="erp单号" prop="erpBill">
<el-input
v-model="queryParams.erpBill"
placeholder="请输入erp单号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="单据来源" prop="stockSource">
<el-select v-model="queryParams.stockSource" placeholder="请选择单据来源" clearable>
<el-option
v-for="dict in dict.type.bill_resource"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="客户编码" prop="customerNo">
<el-input
v-model="queryParams.customerNo"
placeholder="请输入客户编码"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="班组编码" prop="classNo">
<el-input
v-model="queryParams.classNo"
placeholder="请输入班组编码"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="供应商编码" prop="supplierNo">
<el-input
v-model="queryParams.supplierNo"
placeholder="请输入供应商编码"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>-->
<!-- <el-form-item label="备用字段1" prop="spare1">
<el-input
v-model="queryParams.spare1"
placeholder="请输入备用字段1"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="备用字段2" prop="spare2">
<el-input
v-model="queryParams.spare2"
placeholder="请输入备用字段2"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="备用字段4" prop="spare4">
<el-input
v-model="queryParams.spare4"
placeholder="请输入备用字段4"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="备用字段3" prop="spare3">
<el-input
v-model="queryParams.spare3"
placeholder="请输入备用字段3"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="备用字段5" prop="spare5">
<el-input
v-model="queryParams.spare5"
placeholder="请输入备用字段5"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>-->
<!-- <el-form-item label="入库类型" prop="inType">
<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-select>
</el-form-item>
<el-form-item label="建立时间" prop="createDate">
<el-input
v-model="queryParams.createDate"
placeholder="请输入建立时间"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="创建人" prop="createManId">
<el-input
v-model="queryParams.createManId"
placeholder="请输入创建人"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="单据状态" prop="status">
<el-select v-model="queryParams.status" placeholder="请选择单据状态" clearable>
<el-option
v-for="dict in dict.type.in_bill_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="仓库ID" prop="warehouseId">
<el-input
v-model="queryParams.warehouseId"
placeholder="请输入仓库ID"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label=" 完成日期" prop="finishDate">
<el-input
v-model="queryParams.finishDate"
placeholder="请输入 完成日期"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="erp单号" prop="erpBill">
<el-input
v-model="queryParams.erpBill"
placeholder="请输入erp单号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="单据来源" prop="stockSource">
<el-select v-model="queryParams.stockSource" placeholder="请选择单据来源" clearable>
<el-option
v-for="dict in dict.type.bill_resource"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="客户编码" prop="customerNo">
<el-input
v-model="queryParams.customerNo"
placeholder="请输入客户编码"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="班组编码" prop="classNo">
<el-input
v-model="queryParams.classNo"
placeholder="请输入班组编码"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="供应商编码" prop="supplierNo">
<el-input
v-model="queryParams.supplierNo"
placeholder="请输入供应商编码"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>-->
<!-- <el-form-item label="备用字段1" prop="spare1">
<el-input
v-model="queryParams.spare1"
placeholder="请输入备用字段1"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="备用字段2" prop="spare2">
<el-input
v-model="queryParams.spare2"
placeholder="请输入备用字段2"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="备用字段4" prop="spare4">
<el-input
v-model="queryParams.spare4"
placeholder="请输入备用字段4"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="备用字段3" prop="spare3">
<el-input
v-model="queryParams.spare3"
placeholder="请输入备用字段3"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="备用字段5" prop="spare5">
<el-input
v-model="queryParams.spare5"
placeholder="请输入备用字段5"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>-->
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@@ -150,15 +150,29 @@
</el-form>
<el-row :gutter="10" class="mb8">
<!-- <el-col :span="1.5">
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="single"
@click="handleInvalidated"
v-hasPermi="['in:stockIn:edit']"
>单据作废
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['in:stockIn:add']"
>新增</el-button>
:disabled="single"
@click="handleReview"
v-hasPermi="['in:stockIn:edit']"
>单据审核
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
@@ -167,21 +181,11 @@
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
@click="handleConfirmation"
v-hasPermi="['in:stockIn:edit']"
>修改</el-button>
>单据确认
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['in:stockIn:remove']"
>删除</el-button>
</el-col>-->
<el-col :span="1.5">
<el-button
type="warning"
@@ -190,62 +194,75 @@
size="mini"
@click="handleExport"
v-hasPermi="['in:stockIn:export']"
>导出</el-button>
>单据导出
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="info"
plain
icon="el-icon-download"
size="mini"
@click="handleBarcodePrinting"
v-hasPermi="['in:stockIn:barcodePrinting']"
>打印条码
</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="stockInList" @selection-change="handleSelectionChange" @row-click="handleRowClick">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="GUID" align="center" prop="stockinGuid" v-if="false" />
<el-table-column label="入库订单ID" align="center" prop="stockinId" />
<el-table v-loading="loading" :data="stockInList" @selection-change="handleSelectionChange"
@row-click="handleRowClick">
<el-table-column type="selection" width="55" align="center"/>
<el-table-column label="GUID" align="center" prop="stockinGuid" v-if="false"/>
<el-table-column label="入库订单ID" align="center" prop="stockinId"/>
<el-table-column label="入库类型" align="center" prop="inType">
<template slot-scope="scope">
<dict-tag :options="dict.type.in_bill_type" :value="scope.row.inType"/>
</template>
</el-table-column>
<el-table-column label="建立时间" align="center" prop="createDate" />
<el-table-column label="创建人" align="center" prop="createManId" />
<el-table-column label="建立时间" align="center" prop="createDate"/>
<el-table-column label="创建人" align="center" prop="createManId"/>
<el-table-column label="单据状态" align="center" prop="status">
<template slot-scope="scope">
<dict-tag :options="dict.type.in_bill_status" :value="scope.row.status"/>
</template>
</el-table-column>
<el-table-column label="仓库ID" align="center" prop="warehouseId" />
<el-table-column label=" 完成日期" align="center" prop="finishDate" />
<el-table-column label="erp单号" align="center" prop="erpBill" />
<el-table-column label="仓库ID" align="center" prop="warehouseId"/>
<el-table-column label=" 完成日期" align="center" prop="finishDate"/>
<el-table-column label="erp单号" align="center" prop="erpBill"/>
<el-table-column label="单据来源" align="center" prop="stockSource">
<template slot-scope="scope">
<dict-tag :options="dict.type.bill_resource" :value="scope.row.stockSource"/>
</template>
</el-table-column>
<el-table-column label="部门编码" align="center" prop="departmentNo" />
<!-- <el-table-column label="客户编码" align="center" prop="customerNo" />-->
<el-table-column label="班组编码" align="center" prop="classNo" />
<el-table-column label="供应商编码" align="center" prop="supplierNo" />
<!-- <el-table-column label="备用字段1" align="center" prop="spare1" />
<el-table-column label="备用字段2" align="center" prop="spare2" />
<el-table-column label="备用字段4" align="center" prop="spare4" />
<el-table-column label="备用字段3" align="center" prop="spare3" />
<el-table-column label="备用字段5" align="center" prop="spare5" />-->
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['in:stockIn:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['in:stockIn:remove']"
>删除</el-button>
</template>
</el-table-column>-->
<el-table-column label="部门编码" align="center" prop="departmentNo"/>
<!-- <el-table-column label="客户编码" align="center" prop="customerNo" />-->
<el-table-column label="班组编码" align="center" prop="classNo"/>
<el-table-column label="供应商编码" align="center" prop="supplierNo"/>
<!-- <el-table-column label="备用字段1" align="center" prop="spare1" />
<el-table-column label="备用字段2" align="center" prop="spare2" />
<el-table-column label="备用字段4" align="center" prop="spare4" />
<el-table-column label="备用字段3" align="center" prop="spare3" />
<el-table-column label="备用字段5" align="center" prop="spare5" />-->
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['in:stockIn:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['in:stockIn:remove']"
>删除</el-button>
</template>
</el-table-column>-->
</el-table>
<pagination
@@ -256,67 +273,79 @@
@pagination="getList"
/>
<el-table v-loading="detailLoading" :data="stockInDetailList" @selection-change="handleSelectionChange" >
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="子单ID" align="center" prop="stockinDetailId" />
<!-- <el-table-column label="主单GUID" align="center" prop="stockinGuid" />-->
<el-table-column label="主单ID" align="center" prop="stockinId" />
<el-table-column label="批次号" align="center" prop="lotNo" />
<el-table-column label="物料ID" align="center" prop="productGuid" />
<el-table-column label="物料编码" align="center" prop="productId" />
<el-table-column label="计划数量" align="center" prop="quantity" />
<el-table-column label="计划数量(箱)" align="center" prop="quantityX" />
<el-table-column label="计划数量(件)" align="center" prop="quantityJ" />
<el-table-column label="参考单价" align="center" prop="price" />
<el-table-column label="品牌" align="center" prop="cargoNo" />
<el-table-column label="描述" align="center" prop="remark" />
<el-table-column label="实际数量" align="center" prop="assignNum" />
<el-table-column label="实际数量(箱)" align="center" prop="assignNumX" />
<el-table-column label="实际数量(件)" align="center" prop="assignNumJ" />
<el-table-column label="入库日期" align="center" prop="printDate" />
<el-table-column label="单据状态" align="center" prop="stockStatus" />
<!-- <el-table-column label="供应商编码" align="center" prop="supplierId" />
<el-table-column label="客户编码" align="center" prop="customerId" />-->
<el-table-column label="单位" align="center" prop="unit" />
<el-table-column label="规格" align="center" prop="spec" />
<!-- <el-table-column label="备用字段1" align="center" prop="spare1" />
<el-table-column label="备用字段2" align="center" prop="spare2" />
<el-table-column label="备用字段3" align="center" prop="spare3" />
<el-table-column label="备用字段4" align="center" prop="spare4" />
<el-table-column label="备用字段5" align="center" prop="spare5" />
<el-table-column label="备用字段6" align="center" prop="spare6" />-->
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['in:stockInDetail:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['in:stockInDetail:remove']"
>删除</el-button>
</template>
</el-table-column>-->
<el-table v-loading="detailLoading" :data="stockInDetailList">
<!-- <el-table-column type="selection" width="55" align="center" />-->
<el-table-column label="子单ID" align="center" prop="stockinDetailId"/>
<!-- <el-table-column label="主单GUID" align="center" prop="stockinGuid" />-->
<el-table-column label="主单ID" align="center" prop="stockinId"/>
<el-table-column label="批次号" align="center" prop="lotNo"/>
<el-table-column label="物料ID" align="center" prop="productGuid"/>
<el-table-column label="物料编码" align="center" prop="productId"/>
<!-- <el-table-column label="计划数量(箱)" align="center" prop="quantityX" />
<el-table-column label="计划数量(件)" align="center" prop="quantityJ" />-->
<el-table-column label="参考单价" align="center" prop="price"/>
<el-table-column label="品牌" align="center" prop="cargoNo"/>
<el-table-column label="描述" align="center" prop="remark"/>
<!-- <el-table-column label="实际数量(箱)" align="center" prop="assignNumX" />
<el-table-column label="实际数量(件)" align="center" prop="assignNumJ" />-->
<el-table-column label="入库日期" align="center" prop="printDate"/>
<!-- <el-table-column label="单据状态" align="center" prop="stockStatus" />-->
<!-- <el-table-column label="供应商编码" align="center" prop="supplierId" />
<el-table-column label="客户编码" align="center" prop="customerId" />-->
<el-table-column label="单位" align="center" prop="unit"/>
<el-table-column label="规格" align="center" prop="spec"/>
<el-table-column label="计划数量" align="center" prop="quantity"/>
<el-table-column label="扫码数量" align="center" prop="scanNum"/>
<el-table-column label="实际数量" align="center" prop="assignNum"/>
<!-- <el-table-column label="备用字段1" align="center" prop="spare1" />
<el-table-column label="备用字段2" align="center" prop="spare2" />
<el-table-column label="备用字段3" align="center" prop="spare3" />
<el-table-column label="备用字段4" align="center" prop="spare4" />
<el-table-column label="备用字段5" align="center" prop="spare5" />
<el-table-column label="备用字段6" align="center" prop="spare6" />-->
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['in:stockInDetail:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['in:stockInDetail:remove']"
>删除</el-button>
</template>
</el-table-column>-->
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
v-show="detailTotal>0"
:total="detailTotal"
:page.sync="queryDetailParams.pageNum"
:limit.sync="queryDetailParams.pageSize"
@pagination="getDetailList"
/>
</div>
</template>
<script>
import { listStockIn, getStockIn, delStockIn, addStockIn, updateStockIn } from "@/api/in/stockIn"
import { listStockInDetail } from "@/api/in/stockInDetail"
import {
listStockIn,
getStockIn,
delStockIn,
addStockIn,
updateStockIn,
invalidatedStockIn,
reviewStockIn,
confirmationStockIn
} from "@/api/in/stockIn"
import {listStockInDetail, barcodePrinting} from "@/api/in/stockInDetail"
export default {
@@ -329,6 +358,8 @@ export default {
detailLoading: true,
// 选中数组
ids: [],
// 主表选中的数据
stockInListSelected: [],
// 非单个禁用
single: true,
// 非多个禁用
@@ -337,11 +368,11 @@ export default {
showSearch: true,
// 总条数
total: 0,
detailTotal:0,
detailTotal: 0,
// 入库单据表格数据
stockInList: [],
// 入库单据子表表格数据
stockInDetailList:[],
stockInDetailList: [],
// 弹出层标题
title: "",
// 是否显示弹出层
@@ -369,26 +400,26 @@ export default {
spare3: null,
spare5: null
},
queryDetailParams:{
queryDetailParams: {
pageNum: 1,
pageSize: 10,
stockinId:null
stockinId: null
},
// 表单参数
form: {},
// 表单校验
rules: {
stockinId: [
{ required: true, message: "入库订单ID不能为空", trigger: "blur" }
{required: true, message: "入库订单ID不能为空", trigger: "blur"}
],
inType: [
{ required: true, message: "入库类型不能为空", trigger: "change" }
{required: true, message: "入库类型不能为空", trigger: "change"}
],
createDate: [
{ required: true, message: "建立时间不能为空", trigger: "blur" }
{required: true, message: "建立时间不能为空", trigger: "blur"}
],
status: [
{ required: true, message: "单据状态不能为空", trigger: "change" }
{required: true, message: "单据状态不能为空", trigger: "change"}
],
}
}
@@ -405,10 +436,10 @@ export default {
this.total = response.total
this.loading = false
var length = this.stockInList.length;
if (length > 0){
if (length > 0) {
var data = this.stockInList.at(0);
this.getDetailList(data.stockinId);
}else {
} else {
console.log("没有数据")
this.stockInDetailList = []
this.detailLoading = false
@@ -458,7 +489,8 @@ export default {
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.stockinGuid)
this.single = selection.length!==1
this.stockInListSelected = selection
this.single = selection.length !== 1
this.multiple = !selection.length
},
/** 新增按钮操作 */
@@ -477,6 +509,67 @@ export default {
this.title = "修改入库单据"
})
},
/** 作废单据按钮操作 */
handleInvalidated(row){
let stockIn = this.stockInListSelected[0];
if (stockIn.status === "1") {
console.log(1)
let data = {
"stockinGuid": stockIn.stockinGuid,
"status":"5"
}
invalidatedStockIn(data).then(response => {
this.$modal.msgSuccess("作废成功")
this.getList()
})
}else {
this.$modal.msgError("操作失败")
}
},
/** 审核单据按钮操作 */
handleReview(row){
let stockIn = this.stockInListSelected[0];
if (stockIn.status === "2") {
this.$modal.msgError("单据已审核,请勿重复审核")
return
}
if (stockIn.status === "1") {
let data = {
"stockinGuid": stockIn.stockinGuid,
"status":"2"
}
reviewStockIn(data).then(response => {
this.$modal.msgSuccess("审核成功")
this.getList()
})
}else {
this.$modal.msgError("操作失败")
}
},
/**确认单据按钮操作 */
handleConfirmation(row){
let stockIn = this.stockInListSelected[0];
if (stockIn.status === "3"){
let data = {
"stockinGuid": stockIn.stockinGuid,
"status":"4"
}
confirmationStockIn(data).then(response => {
this.$modal.msgSuccess("确认成功")
this.getList()
})
}else {
this.$modal.msgError("操作失败")
}
},
/** 打印条码按钮操作 */
handleBarcodePrinting(row){
barcodePrinting(row.stockinGuid).then(response => {
this.$modal.msgSuccess("打印成功")
this.getList()
})
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
@@ -500,12 +593,14 @@ export default {
/** 删除按钮操作 */
handleDelete(row) {
const stockinGuids = row.stockinGuid || this.ids
this.$modal.confirm('是否确认删除入库单据编号为"' + stockinGuids + '"的数据项?').then(function() {
this.$modal.confirm('是否确认删除入库单据编号为"' + stockinGuids + '"的数据项?').then(function () {
return delStockIn(stockinGuids)
}).then(() => {
this.getList()
this.$modal.msgSuccess("删除成功")
}).catch(() => {})
}).catch(() => {
this.$modal.msgSuccess("删除失败")
})
},
/** 导出按钮操作 */
handleExport() {
@@ -522,7 +617,7 @@ export default {
this.detailLoading = false;
});
},
handleRowClick(selection){
handleRowClick(selection) {
this.detailLoading = true;
this.queryDetailParams.stockinId = selection.stockinId;
listStockInDetail(this.queryDetailParams).then(response => {

View File

@@ -200,13 +200,13 @@
<!-- <el-table-column label="备用字段5" align="center" prop="spare5" />
<el-table-column label="备用字段4" align="center" prop="spare4" />
<el-table-column label="备用字段3" align="center" prop="spare3" />-->
<el-table-column label=" 完成日期" align="center" prop="finishDate"/>
<!-- <el-table-column label=" 完成日期" align="center" prop="finishDate"/>-->
<!-- <el-table-column label="备用字段2" align="center" prop="spare2" />
<el-table-column label="备用字段1" align="center" prop="spare1" />-->
<el-table-column label="erp单号" align="center" prop="erpBill"/>
<el-table-column label="单据来源" align="center" prop="stockSource"/>
<el-table-column label="部门编码" align="center" prop="departmentNo"/>
<el-table-column label="客户编码" align="center" prop="customerNo"/>
<!-- <el-table-column label="客户编码" align="center" prop="customerNo"/>-->
<el-table-column label="班组编码" align="center" prop="classNo"/>
<el-table-column label="供应商编码" align="center" prop="supplierNo"/>
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
@@ -288,10 +288,10 @@
<!-- <el-table-column label="实际数量" align="center" prop="assignNum" />
<el-table-column label="实际数量(箱)" align="center" prop="assignNumX" />
<el-table-column label="实际数量(件)" align="center" prop="assignNumJ" />-->
<el-table-column label="入库日期" align="center" prop="printDate"/>
<!-- <el-table-column label="入库日期" align="center" prop="printDate"/>-->
<el-table-column label="单据状态" align="center" prop="stockStatus"/>
<el-table-column label="供应商编码" align="center" prop="supplierId"/>
<el-table-column label="客户编码" align="center" prop="customerId"/>
<!-- <el-table-column label="供应商编码" align="center" prop="supplierId"/>-->
<!-- <el-table-column label="客户编码" align="center" prop="customerId"/>-->
<el-table-column label="单位" align="center" prop="unit"/>
<el-table-column label="规格" align="center" prop="spec"/>
<!-- <el-table-column label="备用字段1" align="center" prop="spare1" />
@@ -553,7 +553,7 @@ export default {
let data = {
stockinGuidList: stockinGuid
}
console.log(data)
//console.log(data)
createStockin(data).then(response => {
this.getList()
})
@@ -643,7 +643,7 @@ export default {
list: selectedDetails,
stockinId: selectedDetails[0].stockinId
};
console.log(data);
//console.log(data);
qualityInspection(data).then(response => {
this.getDetailList(data.stockinId)
this.$modal.msgSuccess("质检成功");