项目初始化

This commit is contained in:
liuhanqing
2025-09-11 11:19:00 +08:00
parent 13df9e0355
commit d53f41223b
1194 changed files with 245831 additions and 34 deletions

View File

@@ -0,0 +1,20 @@
# 入库单据目录说明
## 目录用途
存放入库相关的业务代码和配置文件
## 主要功能
- 处理物料入库业务流程
- 管理入库单据信息
- 处理入库质检和验收
- 入库数据统计和分析
## 目录结构
```
in/
├── config/ # 入库配置文件
├── controller/ # 入库控制器
├── model/ # 入库数据模型
├── service/ # 入库业务逻辑
└── utils/ # 入库相关工具类
```

View File

@@ -0,0 +1,108 @@
package com.ruoyi.in.stockin.controller;
import cn.hutool.core.convert.Convert;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.in.stockin.domain.InStockin;
import com.ruoyi.in.stockin.service.IInStockinService;
import com.ruoyi.in.stockinfinish.service.IInStockinFinishService;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
/**
* 入库单据Controller
*
* @author ruoyi
* @date 2025-05-20
*/
@RestController
@RequestMapping("/in/stockIn")
public class InStockinController extends BaseController
{
@Autowired
private IInStockinService inStockinService;
@Autowired
private IInStockinFinishService inStockinFinishService;
/**
* 查询入库单据列表
*/
@PreAuthorize("@ss.hasPermi('in:stockIn:list')")
@GetMapping("/list")
public TableDataInfo list(InStockin inStockin)
{
startPage();
List<InStockin> list = new ArrayList<>();
if (Convert.toInt(inStockin.getStatus())<4){
list = inStockinService.selectInStockinList(inStockin);
}else {
list = inStockinFinishService.selectInStockinFinishListByInStockin(inStockin);
}
return getDataTable(list);
}
/**
* 导出入库单据列表
*/
@PreAuthorize("@ss.hasPermi('in:stockIn:export')")
@Log(title = "入库单据", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, InStockin inStockin)
{
List<InStockin> list = inStockinService.selectInStockinList(inStockin);
ExcelUtil<InStockin> util = new ExcelUtil<InStockin>(InStockin.class);
util.exportExcel(response, list, "入库单据数据");
}
/**
* 获取入库单据详细信息
*/
@PreAuthorize("@ss.hasPermi('in:stockIn:query')")
@GetMapping(value = "/{stockinGuid}")
public AjaxResult getInfo(@PathVariable("stockinGuid") String stockinGuid)
{
return success(inStockinService.selectInStockinByStockinGuid(stockinGuid));
}
/**
* 新增入库单据
*/
@PreAuthorize("@ss.hasPermi('in:stockIn:add')")
@Log(title = "入库单据", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody InStockin inStockin)
{
return toAjax(inStockinService.insertInStockin(inStockin));
}
/**
* 修改入库单据
*/
@PreAuthorize("@ss.hasPermi('in:stockIn:edit')")
@Log(title = "入库单据", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody InStockin inStockin)
{
return inStockinService.updateInStockin(inStockin);
}
/**
* 删除入库单据
*/
@PreAuthorize("@ss.hasPermi('in:stockIn:remove')")
@Log(title = "入库单据", businessType = BusinessType.DELETE)
@DeleteMapping("/{stockinGuids}")
public AjaxResult remove(@PathVariable String[] stockinGuids)
{
return toAjax(inStockinService.deleteInStockinByStockinGuids(stockinGuids));
}
}

View File

@@ -0,0 +1,378 @@
package com.ruoyi.in.stockin.domain;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import java.util.List;
/**
* 入库单据对象 in_stockin
*
* @author ruoyi
* @date 2025-05-20
*/
public class InStockin extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** GUID */
private String stockinGuid;
/** 入库订单ID */
@Excel(name = "入库订单ID")
private String stockinId;
/** 入库类型 */
@Excel(name = "入库类型")
private String inType;
/** 建立时间 */
@Excel(name = "建立时间")
private String createDate;
/** 创建人 */
private String createManId;
@Excel(name = "创建人")
private String createManName;
/** 单据状态 */
@Excel(name = "单据状态")
private String status;
/** 仓库ID */
@Excel(name = "仓库ID")
private String warehouseId;
@Excel(name = "仓库")
private String warehouseName;
/** 完成日期 */
@Excel(name = " 完成日期")
private String finishDate;
/** erp单号 */
@Excel(name = "erp单号")
private String erpBill;
/** 单据来源 */
@Excel(name = "单据来源")
private String stockSource;
/** 部门编码 */
@Excel(name = "部门编码")
private String departmentNo;
@Excel(name = "部门")
private String departmentName;
/** 客户编码 */
@Excel(name = "客户编码")
private String customerNo;
/** 班组编码 */
@Excel(name = "班组编码")
private String classNo;
/** 供应商编码 */
@Excel(name = "供应商编码")
private String supplierNo;
@Excel(name = "供应商")
private String supplierName;
/** 备用字段1 */
@Excel(name = "备用字段1")
private String spare1;
/** 备用字段2 */
@Excel(name = "备用字段2")
private String spare2;
/** 备用字段4 */
@Excel(name = "备用字段4")
private String spare4;
/** 备用字段3 */
@Excel(name = "备用字段3")
private String spare3;
/** 备用字段5 */
@Excel(name = "备用字段5")
private String spare5;
private String lotNo;
private String materialDesc;
private List<String> typeData;
public List<String> getTypeData() {
return typeData;
}
public void setTypeData(List<String> typeData) {
this.typeData = typeData;
}
public String getLotNo() {
return lotNo;
}
public void setLotNo(String lotNo) {
this.lotNo = lotNo;
}
public String getMaterialDesc() {
return materialDesc;
}
public void setMaterialDesc(String materialDesc) {
this.materialDesc = materialDesc;
}
public String getCreateManName() {
return createManName;
}
public void setCreateManName(String createManName) {
this.createManName = createManName;
}
public String getWarehouseName() {
return warehouseName;
}
public void setWarehouseName(String warehouseName) {
this.warehouseName = warehouseName;
}
public String getDepartmentName() {
return departmentName;
}
public void setDepartmentName(String departmentName) {
this.departmentName = departmentName;
}
public String getSupplierName() {
return supplierName;
}
public void setSupplierName(String supplierName) {
this.supplierName = supplierName;
}
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 setInType(String inType)
{
this.inType = inType;
}
public String getInType()
{
return inType;
}
public void setCreateDate(String createDate)
{
this.createDate = createDate;
}
public String getCreateDate()
{
return createDate;
}
public void setCreateManId(String createManId)
{
this.createManId = createManId;
}
public String getCreateManId()
{
return createManId;
}
public void setStatus(String status)
{
this.status = status;
}
public String getStatus()
{
return status;
}
public void setWarehouseId(String warehouseId)
{
this.warehouseId = warehouseId;
}
public String getWarehouseId()
{
return warehouseId;
}
public void setFinishDate(String finishDate)
{
this.finishDate = finishDate;
}
public String getFinishDate()
{
return finishDate;
}
public void setErpBill(String erpBill)
{
this.erpBill = erpBill;
}
public String getErpBill()
{
return erpBill;
}
public void setStockSource(String stockSource)
{
this.stockSource = stockSource;
}
public String getStockSource()
{
return stockSource;
}
public void setDepartmentNo(String departmentNo)
{
this.departmentNo = departmentNo;
}
public String getDepartmentNo()
{
return departmentNo;
}
public void setCustomerNo(String customerNo)
{
this.customerNo = customerNo;
}
public String getCustomerNo()
{
return customerNo;
}
public void setClassNo(String classNo)
{
this.classNo = classNo;
}
public String getClassNo()
{
return classNo;
}
public void setSupplierNo(String supplierNo)
{
this.supplierNo = supplierNo;
}
public String getSupplierNo()
{
return supplierNo;
}
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 setSpare4(String spare4)
{
this.spare4 = spare4;
}
public String getSpare4()
{
return spare4;
}
public void setSpare3(String spare3)
{
this.spare3 = spare3;
}
public String getSpare3()
{
return spare3;
}
public void setSpare5(String spare5)
{
this.spare5 = spare5;
}
public String getSpare5()
{
return spare5;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("stockinGuid", getStockinGuid())
.append("stockinId", getStockinId())
.append("inType", getInType())
.append("createDate", getCreateDate())
.append("createManId", getCreateManId())
.append("status", getStatus())
.append("warehouseId", getWarehouseId())
.append("finishDate", getFinishDate())
.append("erpBill", getErpBill())
.append("stockSource", getStockSource())
.append("departmentNo", getDepartmentNo())
.append("customerNo", getCustomerNo())
.append("classNo", getClassNo())
.append("supplierNo", getSupplierNo())
.append("spare1", getSpare1())
.append("spare2", getSpare2())
.append("spare4", getSpare4())
.append("spare3", getSpare3())
.append("spare5", getSpare5())
.toString();
}
}

View File

@@ -0,0 +1,66 @@
package com.ruoyi.in.stockin.mapper;
import com.ruoyi.in.stockin.domain.InStockin;
import java.util.List;
/**
* 入库单据Mapper接口
*
* @author ruoyi
* @date 2025-05-20
*/
public interface InStockinMapper
{
/**
* 查询入库单据
*
* @param stockinGuid 入库单据主键
* @return 入库单据
*/
public InStockin selectInStockinByStockinGuid(String stockinGuid);
/**
* 查询入库单据列表
*
* @param inStockin 入库单据
* @return 入库单据集合
*/
public List<InStockin> selectInStockinList(InStockin inStockin);
/**
* 新增入库单据
*
* @param inStockin 入库单据
* @return 结果
*/
public int insertInStockin(InStockin inStockin);
/**
* 修改入库单据
*
* @param inStockin 入库单据
* @return 结果
*/
public int updateInStockin(InStockin inStockin);
/**
* 删除入库单据
*
* @param stockinGuid 入库单据主键
* @return 结果
*/
public int deleteInStockinByStockinGuid(String stockinGuid);
/**
* 批量删除入库单据
*
* @param stockinGuids 需要删除的数据主键集合
* @return 结果
*/
public int deleteInStockinByStockinGuids(String[] stockinGuids);
void insertInStockinHistory(InStockin inStockin);
List<InStockin> selectStockinByDetail(String stockinDetailId);
}

View File

@@ -0,0 +1,65 @@
package com.ruoyi.in.stockin.service;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.in.stockin.domain.InStockin;
import java.util.List;
/**
* 入库单据Service接口
*
* @author ruoyi
* @date 2025-05-20
*/
public interface IInStockinService
{
/**
* 查询入库单据
*
* @param stockinGuid 入库单据主键
* @return 入库单据
*/
public InStockin selectInStockinByStockinGuid(String stockinGuid);
/**
* 查询入库单据列表
*
* @param inStockin 入库单据
* @return 入库单据集合
*/
public List<InStockin> selectInStockinList(InStockin inStockin);
/**
* 新增入库单据
*
* @param inStockin 入库单据
* @return 结果
*/
public int insertInStockin(InStockin inStockin);
/**
* 修改入库单据
*
* @param inStockin 入库单据
* @return 结果
*/
public AjaxResult updateInStockin(InStockin inStockin);
/**
* 批量删除入库单据
*
* @param stockinGuids 需要删除的入库单据主键集合
* @return 结果
*/
public int deleteInStockinByStockinGuids(String[] stockinGuids);
/**
* 删除入库单据信息
*
* @param stockinGuid 入库单据主键
* @return 结果
*/
public int deleteInStockinByStockinGuid(String stockinGuid);
public List<InStockin> selectStockinByDetail(String stockinDetailId);
}

View File

@@ -0,0 +1,160 @@
package com.ruoyi.in.stockin.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import com.ruoyi.common.annotation.DataScope;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.in.stockin.domain.InStockin;
import com.ruoyi.in.stockin.mapper.InStockinMapper;
import com.ruoyi.in.stockin.service.IInStockinService;
import com.ruoyi.in.stockindetail.domain.InStockinDetail;
import com.ruoyi.in.stockindetail.service.IInStockinDetailService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
* 入库单据Service业务层处理
*
* @author ruoyi
* @date 2025-05-20
*/
@Service
public class InStockinServiceImpl implements IInStockinService
{
@Autowired
private InStockinMapper inStockinMapper;
@Autowired
private IInStockinDetailService iInStockinDetailService;
/**
* 查询入库单据
*
* @param stockinGuid 入库单据主键
* @return 入库单据
*/
@Override
public InStockin selectInStockinByStockinGuid(String stockinGuid)
{
return inStockinMapper.selectInStockinByStockinGuid(stockinGuid);
}
/**
* 查询入库单据列表
*
* @param inStockin 入库单据
* @return 入库单据
*/
@Override
@DataScope(warehouseAlias = "is2")
public List<InStockin> selectInStockinList(InStockin inStockin)
{
return inStockinMapper.selectInStockinList(inStockin);
}
/**
* 新增入库单据
*
* @param inStockin 入库单据
* @return 结果
*/
@Override
public int insertInStockin(InStockin inStockin)
{
return inStockinMapper.insertInStockin(inStockin);
}
/**
* 修改入库单据
*
* @param inStockin 入库单据
* @return 结果
*/
@Override
@Transactional(rollbackFor = Exception.class)
public AjaxResult updateInStockin(InStockin inStockin)
{
InStockin old = selectInStockinByStockinGuid(inStockin.getStockinGuid());
inStockinMapper.updateInStockin(inStockin);
if ("5".equals(inStockin.getStatus())){
//作废
if (!"1".equals(old.getStatus())){
throw new RuntimeException("单据状态非未执行状态!");
}
inStockin.setFinishDate(DateUtil.formatDateTime(DateUtil.date()));
inStockinMapper.updateInStockin(inStockin);
//插入历史单据
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("扫码数量与实际入库数量不一致!");
}
}
inStockin.setFinishDate(DateUtil.formatDateTime(DateUtil.date()));
inStockinMapper.updateInStockin(inStockin);
insertInStockinHistory(inStockin);
}
return AjaxResult.success();
}
/**
* 插入入库单据 入库子单据历史
* 删除入库单据
* 删除入库单据子单据
* @param inStockin
*/
private void insertInStockinHistory(InStockin inStockin) {
inStockin = selectInStockinByStockinGuid(inStockin.getStockinGuid());
//插入历史单据
inStockinMapper.insertInStockinHistory(inStockin);
iInStockinDetailService.insertInStockinDetailHistory(inStockin);
inStockinMapper.deleteInStockinByStockinGuid(inStockin.getStockinGuid());
iInStockinDetailService.deleteInStockinDetailByStockinGuid(inStockin.getStockinGuid());
}
/**
* 批量删除入库单据
*
* @param stockinGuids 需要删除的入库单据主键
* @return 结果
*/
@Override
public int deleteInStockinByStockinGuids(String[] stockinGuids)
{
return inStockinMapper.deleteInStockinByStockinGuids(stockinGuids);
}
/**
* 删除入库单据信息
*
* @param stockinGuid 入库单据主键
* @return 结果
*/
@Override
public int deleteInStockinByStockinGuid(String stockinGuid)
{
return inStockinMapper.deleteInStockinByStockinGuid(stockinGuid);
}
@Override
public List<InStockin> selectStockinByDetail(String stockinDetailId) {
return inStockinMapper.selectStockinByDetail(stockinDetailId);
}
}

View File

@@ -0,0 +1,121 @@
package com.ruoyi.in.stockindetail.controller;
import cn.hutool.core.convert.Convert;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.in.stockindetail.domain.InStockinDetail;
import com.ruoyi.in.stockindetail.service.IInStockinDetailService;
import com.ruoyi.in.stockindetailfinish.service.IInStockinDetailFinishService;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* 入库单据子表Controller
*
* @author ruoyi
* @date 2025-05-20
*/
@RestController
@RequestMapping("/in/stockInDetail")
public class InStockinDetailController extends BaseController
{
@Autowired
private IInStockinDetailService inStockinDetailService;
@Autowired
private IInStockinDetailFinishService inStockinDetailFinishService;
/**
* 查询入库单据子表列表
*/
@PreAuthorize("@ss.hasPermi('in:stockInDetail:list')")
@GetMapping("/list")
public TableDataInfo list(InStockinDetail inStockinDetail)
{
startPage();
List<InStockinDetail> list = new ArrayList<>();
if (Convert.toInt(inStockinDetail.getStatus())<4){
list = inStockinDetailService.selectInStockinDetailList(inStockinDetail);
}else {
list = inStockinDetailFinishService.selectInStockinDetailList(inStockinDetail);
}
return getDataTable(list);
}
/**
* 导出入库单据子表列表
*/
@PreAuthorize("@ss.hasPermi('in:stockInDetail:export')")
@Log(title = "入库单据子表", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, InStockinDetail inStockinDetail)
{
List<InStockinDetail> list = inStockinDetailService.selectInStockinDetailList(inStockinDetail);
ExcelUtil<InStockinDetail> util = new ExcelUtil<InStockinDetail>(InStockinDetail.class);
util.exportExcel(response, list, "入库单据子表数据");
}
/**
* 获取入库单据子表详细信息
*/
@PreAuthorize("@ss.hasPermi('in:stockInDetail:query')")
@GetMapping(value = "/{stockinDetailId}")
public AjaxResult getInfo(@PathVariable("stockinDetailId") String stockinDetailId)
{
return success(inStockinDetailService.selectInStockinDetailByStockinDetailId(stockinDetailId));
}
/**
* 新增入库单据子表
*/
@PreAuthorize("@ss.hasPermi('in:stockInDetail:add')")
@Log(title = "入库单据子表", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody InStockinDetail inStockinDetail)
{
return toAjax(inStockinDetailService.insertInStockinDetail(inStockinDetail));
}
/**
* 修改入库单据子表
*/
@PreAuthorize("@ss.hasPermi('in:stockInDetail:edit')")
@Log(title = "入库单据子表", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody InStockinDetail inStockinDetail)
{
return toAjax(inStockinDetailService.updateInStockinDetail(inStockinDetail));
}
/**
* 删除入库单据子表
*/
@PreAuthorize("@ss.hasPermi('in:stockInDetail:remove')")
@Log(title = "入库单据子表", businessType = BusinessType.DELETE)
@DeleteMapping("/{stockinDetailIds}")
public AjaxResult remove(@PathVariable String[] stockinDetailIds)
{
return toAjax(inStockinDetailService.deleteInStockinDetailByStockinDetailIds(stockinDetailIds));
}
/**
* 打印条码
* @param param
* @return
*/
@PreAuthorize("@ss.hasPermi('in:stockIn:barcodePrinting')")
@Log(title = "入库单据", businessType = BusinessType.INSERT)
@PostMapping("barcodePrinting")
public AjaxResult barcodePrinting(@RequestBody Map<String,Object> param) {
return inStockinDetailService.barcodePrinting(param);
}
}

View File

@@ -0,0 +1,143 @@
package com.ruoyi.in.stockindetail.domain;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import com.ruoyi.common.domain.ExtraField;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
/**
* 入库单据子表对象 in_stockin_detail
*
* @author ruoyi
* @date 2025-05-20
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class InStockinDetail extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 子单ID */
private String stockinDetailId;
/** 主单GUID */
@Excel(name = "主单GUID")
private String stockinGuid;
/** 主单ID */
@Excel(name = "主单ID")
private String stockinId;
/** 批次号 */
@Excel(name = "批次号")
private String lotNo;
/** 物料ID */
@Excel(name = "物料ID")
private String productGuid;
/** 物料编码 */
@Excel(name = "物料编码")
private String productId;
/** 计划数量 */
@Excel(name = "计划数量")
private String quantity;
/** 计划数量(箱) */
@Excel(name = "计划数量(箱)")
private String quantityX;
/** 计划数量(件) */
@Excel(name = "计划数量(件)")
private String quantityJ;
/** 参考单价 */
@Excel(name = "参考单价")
private String price;
/** 品牌 */
@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;
/** 实际数量(箱) */
@Excel(name = "实际数量(箱)")
private String assignNumX;
/** 实际数量(件) */
@Excel(name = "实际数量(件)")
private String assignNumJ;
/** 入库日期 */
@Excel(name = "入库日期")
private String printDate;
/** 单据状态 */
@Excel(name = "单据状态")
private String stockStatus;
/** 供应商编码 */
@Excel(name = "供应商编码")
private String supplierId;
/** 客户编码 */
@Excel(name = "客户编码")
private String customerId;
/** 单位 */
@Excel(name = "单位")
private String unit;
/** 规格 */
@Excel(name = "规格")
private String spec;
/** 备用字段1 */
@Excel(name = "备用字段1")
private String spare1;
/** 备用字段2 */
@Excel(name = "备用字段2")
private String spare2;
/** 备用字段3 */
@Excel(name = "备用字段3")
private String spare3;
/** 备用字段4 */
@Excel(name = "备用字段4")
private String spare4;
/** 备用字段5 */
@Excel(name = "备用字段5")
private String spare5;
/** 备用字段6 */
@Excel(name = "备用字段6")
private String spare6;
private String status;
private ExtraField extraField;
private String warehouseName;
private String warehouseId;
}

View File

@@ -0,0 +1,72 @@
package com.ruoyi.in.stockindetail.mapper;
import com.ruoyi.in.stockin.domain.InStockin;
import com.ruoyi.in.stockindetail.domain.InStockinDetail;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 入库单据子表Mapper接口
*
* @author ruoyi
* @date 2025-05-20
*/
public interface InStockinDetailMapper
{
/**
* 查询入库单据子表
*
* @param stockinDetailId 入库单据子表主键
* @return 入库单据子表
*/
public InStockinDetail selectInStockinDetailByStockinDetailId(String stockinDetailId);
/**
* 查询入库单据子表列表
*
* @param inStockinDetail 入库单据子表
* @return 入库单据子表集合
*/
public List<InStockinDetail> selectInStockinDetailList(InStockinDetail inStockinDetail);
/**
* 新增入库单据子表
*
* @param inStockinDetail 入库单据子表
* @return 结果
*/
public int insertInStockinDetail(InStockinDetail inStockinDetail);
/**
* 修改入库单据子表
*
* @param inStockinDetail 入库单据子表
* @return 结果
*/
public int updateInStockinDetail(InStockinDetail inStockinDetail);
/**
* 删除入库单据子表
*
* @param stockinDetailId 入库单据子表主键
* @return 结果
*/
public int deleteInStockinDetailByStockinDetailId(String stockinDetailId);
/**
* 批量删除入库单据子表
*
* @param stockinDetailIds 需要删除的数据主键集合
* @return 结果
*/
public int deleteInStockinDetailByStockinDetailIds(String[] stockinDetailIds);
void insertInStockinDetailList(@Param("list") List<InStockinDetail> inStockinDetailList);
void insertInStockinDetailHistory(InStockin inStockin);
void deleteInStockinDetailByStockinGuid(String stockinGuid);
InStockinDetail selectStockinByDetailById(InStockinDetail inStockinDetail);
}

View File

@@ -0,0 +1,84 @@
package com.ruoyi.in.stockindetail.service;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.in.stockin.domain.InStockin;
import com.ruoyi.in.stockindetail.domain.InStockinDetail;
import java.util.List;
import java.util.Map;
/**
* 入库单据子表Service接口
*
* @author ruoyi
* @date 2025-05-20
*/
public interface IInStockinDetailService
{
/**
* 查询入库单据子表
*
* @param stockinDetailId 入库单据子表主键
* @return 入库单据子表
*/
public InStockinDetail selectInStockinDetailByStockinDetailId(String stockinDetailId);
/**
* 查询入库单据子表列表
*
* @param inStockinDetail 入库单据子表
* @return 入库单据子表集合
*/
public List<InStockinDetail> selectInStockinDetailList(InStockinDetail inStockinDetail);
/**
* 新增入库单据子表
*
* @param inStockinDetail 入库单据子表
* @return 结果
*/
public int insertInStockinDetail(InStockinDetail inStockinDetail);
/**
* 修改入库单据子表
*
* @param inStockinDetail 入库单据子表
* @return 结果
*/
public int updateInStockinDetail(InStockinDetail inStockinDetail);
/**
* 批量删除入库单据子表
*
* @param stockinDetailIds 需要删除的入库单据子表主键集合
* @return 结果
*/
public int deleteInStockinDetailByStockinDetailIds(String[] stockinDetailIds);
/**
* 删除入库单据子表信息
*
* @param stockinDetailId 入库单据子表主键
* @return 结果
*/
public int deleteInStockinDetailByStockinDetailId(String stockinDetailId);
/**
* 批量插入入库子单
* @param inStockinDetailList
*/
void insertInStockinDetailList(List<InStockinDetail> inStockinDetailList);
/**
* 插入历史数据
* @param inStockin
*/
void insertInStockinDetailHistory(InStockin inStockin);
void deleteInStockinDetailByStockinGuid(String stockinGuid);
AjaxResult barcodePrinting(Map<String,Object> stockinDetailId);
public InStockinDetail selectStockinByDetailById(InStockinDetail inStockinDetail);
}

View File

@@ -0,0 +1,130 @@
package com.ruoyi.in.stockindetail.service.impl;
import com.ruoyi.common.annotation.DataScope;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.in.stockin.domain.InStockin;
import com.ruoyi.in.stockindetail.domain.InStockinDetail;
import com.ruoyi.in.stockindetail.mapper.InStockinDetailMapper;
import com.ruoyi.in.stockindetail.service.IInStockinDetailService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/**
* 入库单据子表Service业务层处理
*
* @author ruoyi
* @date 2025-05-20
*/
@Service
public class InStockinDetailServiceImpl implements IInStockinDetailService
{
@Autowired
private InStockinDetailMapper inStockinDetailMapper;
/**
* 查询入库单据子表
*
* @param stockinDetailId 入库单据子表主键
* @return 入库单据子表
*/
@Override
public InStockinDetail selectInStockinDetailByStockinDetailId(String stockinDetailId)
{
return inStockinDetailMapper.selectInStockinDetailByStockinDetailId(stockinDetailId);
}
/**
* 查询入库单据子表列表
*
* @param inStockinDetail 入库单据子表
* @return 入库单据子表
*/
@Override
public List<InStockinDetail> selectInStockinDetailList(InStockinDetail inStockinDetail)
{
/*for (InStockinDetail res : inStockinDetails) {
res.setExtraField(JSONUtil.toBean(res.getSpare1(), ExtraField.class));
}*/
return inStockinDetailMapper.selectInStockinDetailList(inStockinDetail);
}
/**
* 新增入库单据子表
*
* @param inStockinDetail 入库单据子表
* @return 结果
*/
@Override
public int insertInStockinDetail(InStockinDetail inStockinDetail)
{
return inStockinDetailMapper.insertInStockinDetail(inStockinDetail);
}
/**
* 修改入库单据子表
*
* @param inStockinDetail 入库单据子表
* @return 结果
*/
@Override
public int updateInStockinDetail(InStockinDetail inStockinDetail)
{
return inStockinDetailMapper.updateInStockinDetail(inStockinDetail);
}
/**
* 批量删除入库单据子表
*
* @param stockinDetailIds 需要删除的入库单据子表主键
* @return 结果
*/
@Override
public int deleteInStockinDetailByStockinDetailIds(String[] stockinDetailIds)
{
return inStockinDetailMapper.deleteInStockinDetailByStockinDetailIds(stockinDetailIds);
}
/**
* 删除入库单据子表信息
*
* @param stockinDetailId 入库单据子表主键
* @return 结果
*/
@Override
public int deleteInStockinDetailByStockinDetailId(String stockinDetailId)
{
return inStockinDetailMapper.deleteInStockinDetailByStockinDetailId(stockinDetailId);
}
@Override
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);
}
@Override
public AjaxResult barcodePrinting(Map<String,Object> map) {
//System.out.println(map);
return AjaxResult.success();
}
@Override
@DataScope(warehouseAlias = "ist")
public InStockinDetail selectStockinByDetailById(InStockinDetail inStockinDetail) {
return inStockinDetailMapper.selectStockinByDetailById(inStockinDetail);
}
}

View File

@@ -0,0 +1,98 @@
package com.ruoyi.in.stockindetailfinish.controller;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.in.stockindetailfinish.domain.InStockinDetailFinish;
import com.ruoyi.in.stockindetailfinish.service.IInStockinDetailFinishService;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 历史入库单据子信息Controller
*
* @author ruoyi
* @date 2025-05-28
*/
@RestController
@RequestMapping("/in/stockinDetailFinish")
public class InStockinDetailFinishController extends BaseController
{
@Autowired
private IInStockinDetailFinishService inStockinDetailFinishService;
/**
* 查询历史入库单据子信息列表
*/
@PreAuthorize("@ss.hasPermi('in:stockinDetailFinish:list')")
@GetMapping("/list")
public TableDataInfo list(InStockinDetailFinish inStockinDetailFinish)
{
startPage();
List<InStockinDetailFinish> list = inStockinDetailFinishService.selectInStockinDetailFinishList(inStockinDetailFinish);
return getDataTable(list);
}
/**
* 导出历史入库单据子信息列表
*/
@PreAuthorize("@ss.hasPermi('in:stockinDetailFinish:export')")
@Log(title = "历史入库单据子信息", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, InStockinDetailFinish inStockinDetailFinish)
{
List<InStockinDetailFinish> list = inStockinDetailFinishService.selectInStockinDetailFinishList(inStockinDetailFinish);
ExcelUtil<InStockinDetailFinish> util = new ExcelUtil<InStockinDetailFinish>(InStockinDetailFinish.class);
util.exportExcel(response, list, "历史入库单据子信息数据");
}
/**
* 获取历史入库单据子信息详细信息
*/
@PreAuthorize("@ss.hasPermi('in:stockinDetailFinish:query')")
@GetMapping(value = "/{stockinDetailId}")
public AjaxResult getInfo(@PathVariable("stockinDetailId") String stockinDetailId)
{
return success(inStockinDetailFinishService.selectInStockinDetailFinishByStockinDetailId(stockinDetailId));
}
/**
* 新增历史入库单据子信息
*/
@PreAuthorize("@ss.hasPermi('in:stockinDetailFinish:add')")
@Log(title = "历史入库单据子信息", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody InStockinDetailFinish inStockinDetailFinish)
{
return toAjax(inStockinDetailFinishService.insertInStockinDetailFinish(inStockinDetailFinish));
}
/**
* 修改历史入库单据子信息
*/
@PreAuthorize("@ss.hasPermi('in:stockinDetailFinish:edit')")
@Log(title = "历史入库单据子信息", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody InStockinDetailFinish inStockinDetailFinish)
{
return toAjax(inStockinDetailFinishService.updateInStockinDetailFinish(inStockinDetailFinish));
}
/**
* 删除历史入库单据子信息
*/
@PreAuthorize("@ss.hasPermi('in:stockinDetailFinish:remove')")
@Log(title = "历史入库单据子信息", businessType = BusinessType.DELETE)
@DeleteMapping("/{stockinDetailIds}")
public AjaxResult remove(@PathVariable String[] stockinDetailIds)
{
return toAjax(inStockinDetailFinishService.deleteInStockinDetailFinishByStockinDetailIds(stockinDetailIds));
}
}

View File

@@ -0,0 +1,458 @@
package com.ruoyi.in.stockindetailfinish.domain;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
/**
* 历史入库单据子信息对象 in_stockin_detail_finish
*
* @author ruoyi
* @date 2025-05-28
*/
public class InStockinDetailFinish extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 子单ID */
private String stockinDetailId;
/** 主单GUID */
@Excel(name = "主单GUID")
private String stockinGuid;
/** 主单ID */
@Excel(name = "主单ID")
private String stockinId;
/** 批次号 */
@Excel(name = "批次号")
private String lotNo;
/** 物料ID */
@Excel(name = "物料ID")
private String productGuid;
/** 物料编码 */
@Excel(name = "物料编码")
private String productId;
/** 计划数量 */
@Excel(name = "计划数量")
private String quantity;
/** 计划数量(箱) */
@Excel(name = "计划数量(箱)")
private String quantityX;
/** 计划数量(件) */
@Excel(name = "计划数量(件)")
private String quantityJ;
/** 参考单价 */
@Excel(name = "参考单价")
private String price;
/** 品牌 */
@Excel(name = "品牌")
private String cargoNo;
/** 实际数量 */
@Excel(name = "实际数量")
private String assignNum;
/** 实际数量(箱) */
@Excel(name = "实际数量(箱)")
private String assignNumX;
/** 实际数量(件) */
@Excel(name = "实际数量(件)")
private String assignNumJ;
/** 入库日期 */
@Excel(name = "入库日期")
private String printDate;
/** 单据状态 */
@Excel(name = "单据状态")
private String stockStatus;
/** 供应商编码 */
@Excel(name = "供应商编码")
private String supplierId;
/** 客户编码 */
@Excel(name = "客户编码")
private String customerId;
/** 单位 */
@Excel(name = "单位")
private String unit;
/** 规格 */
@Excel(name = "规格")
private String spec;
/** 备用字段1 */
@Excel(name = "备用字段1")
private String spare1;
/** 备用字段2 */
@Excel(name = "备用字段2")
private String spare2;
/** 备用字段3 */
@Excel(name = "备用字段3")
private String spare3;
/** 备用字段4 */
@Excel(name = "备用字段4")
private String spare4;
/** 备用字段5 */
@Excel(name = "备用字段5")
private String spare5;
/** 备用字段6 */
@Excel(name = "备用字段6")
private String spare6;
/** 扫码数量 */
@Excel(name = "扫码数量")
private String scanNum;
/** 扫码数量(箱) */
@Excel(name = "扫码数量(箱)")
private String scanNumX;
/** 扫码数量(件) */
@Excel(name = "扫码数量(件)")
private String scanNumJ;
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;
}
public void setScanNum(String scanNum)
{
this.scanNum = scanNum;
}
public String getScanNum()
{
return scanNum;
}
public void setScanNumX(String scanNumX)
{
this.scanNumX = scanNumX;
}
public String getScanNumX()
{
return scanNumX;
}
public void setScanNumJ(String scanNumJ)
{
this.scanNumJ = scanNumJ;
}
public String getScanNumJ()
{
return scanNumJ;
}
@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())
.append("scanNum", getScanNum())
.append("scanNumX", getScanNumX())
.append("scanNumJ", getScanNumJ())
.toString();
}
}

View File

@@ -0,0 +1,65 @@
package com.ruoyi.in.stockindetailfinish.mapper;
import com.ruoyi.in.stockindetail.domain.InStockinDetail;
import com.ruoyi.in.stockindetailfinish.domain.InStockinDetailFinish;
import java.util.List;
/**
* 历史入库单据子信息Mapper接口
*
* @author ruoyi
* @date 2025-05-28
*/
public interface InStockinDetailFinishMapper
{
/**
* 查询历史入库单据子信息
*
* @param stockinDetailId 历史入库单据子信息主键
* @return 历史入库单据子信息
*/
public InStockinDetailFinish selectInStockinDetailFinishByStockinDetailId(String stockinDetailId);
/**
* 查询历史入库单据子信息列表
*
* @param inStockinDetailFinish 历史入库单据子信息
* @return 历史入库单据子信息集合
*/
public List<InStockinDetailFinish> selectInStockinDetailFinishList(InStockinDetailFinish inStockinDetailFinish);
/**
* 新增历史入库单据子信息
*
* @param inStockinDetailFinish 历史入库单据子信息
* @return 结果
*/
public int insertInStockinDetailFinish(InStockinDetailFinish inStockinDetailFinish);
/**
* 修改历史入库单据子信息
*
* @param inStockinDetailFinish 历史入库单据子信息
* @return 结果
*/
public int updateInStockinDetailFinish(InStockinDetailFinish inStockinDetailFinish);
/**
* 删除历史入库单据子信息
*
* @param stockinDetailId 历史入库单据子信息主键
* @return 结果
*/
public int deleteInStockinDetailFinishByStockinDetailId(String stockinDetailId);
/**
* 批量删除历史入库单据子信息
*
* @param stockinDetailIds 需要删除的数据主键集合
* @return 结果
*/
public int deleteInStockinDetailFinishByStockinDetailIds(String[] stockinDetailIds);
List<InStockinDetail> selectInStockinDetailFinishListByInStockinDetail(InStockinDetail inStockinDetail);
}

View File

@@ -0,0 +1,65 @@
package com.ruoyi.in.stockindetailfinish.service;
import com.ruoyi.in.stockindetail.domain.InStockinDetail;
import com.ruoyi.in.stockindetailfinish.domain.InStockinDetailFinish;
import java.util.List;
/**
* 历史入库单据子信息Service接口
*
* @author ruoyi
* @date 2025-05-28
*/
public interface IInStockinDetailFinishService
{
/**
* 查询历史入库单据子信息
*
* @param stockinDetailId 历史入库单据子信息主键
* @return 历史入库单据子信息
*/
public InStockinDetailFinish selectInStockinDetailFinishByStockinDetailId(String stockinDetailId);
/**
* 查询历史入库单据子信息列表
*
* @param inStockinDetailFinish 历史入库单据子信息
* @return 历史入库单据子信息集合
*/
public List<InStockinDetailFinish> selectInStockinDetailFinishList(InStockinDetailFinish inStockinDetailFinish);
/**
* 新增历史入库单据子信息
*
* @param inStockinDetailFinish 历史入库单据子信息
* @return 结果
*/
public int insertInStockinDetailFinish(InStockinDetailFinish inStockinDetailFinish);
/**
* 修改历史入库单据子信息
*
* @param inStockinDetailFinish 历史入库单据子信息
* @return 结果
*/
public int updateInStockinDetailFinish(InStockinDetailFinish inStockinDetailFinish);
/**
* 批量删除历史入库单据子信息
*
* @param stockinDetailIds 需要删除的历史入库单据子信息主键集合
* @return 结果
*/
public int deleteInStockinDetailFinishByStockinDetailIds(String[] stockinDetailIds);
/**
* 删除历史入库单据子信息信息
*
* @param stockinDetailId 历史入库单据子信息主键
* @return 结果
*/
public int deleteInStockinDetailFinishByStockinDetailId(String stockinDetailId);
List<InStockinDetail> selectInStockinDetailList(InStockinDetail inStockinDetail);
}

View File

@@ -0,0 +1,102 @@
package com.ruoyi.in.stockindetailfinish.service.impl;
import com.ruoyi.in.stockindetail.domain.InStockinDetail;
import com.ruoyi.in.stockindetailfinish.domain.InStockinDetailFinish;
import com.ruoyi.in.stockindetailfinish.mapper.InStockinDetailFinishMapper;
import com.ruoyi.in.stockindetailfinish.service.IInStockinDetailFinishService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 历史入库单据子信息Service业务层处理
*
* @author ruoyi
* @date 2025-05-28
*/
@Service
public class InStockinDetailFinishServiceImpl implements IInStockinDetailFinishService
{
@Autowired
private InStockinDetailFinishMapper inStockinDetailFinishMapper;
/**
* 查询历史入库单据子信息
*
* @param stockinDetailId 历史入库单据子信息主键
* @return 历史入库单据子信息
*/
@Override
public InStockinDetailFinish selectInStockinDetailFinishByStockinDetailId(String stockinDetailId)
{
return inStockinDetailFinishMapper.selectInStockinDetailFinishByStockinDetailId(stockinDetailId);
}
/**
* 查询历史入库单据子信息列表
*
* @param inStockinDetailFinish 历史入库单据子信息
* @return 历史入库单据子信息
*/
@Override
public List<InStockinDetailFinish> selectInStockinDetailFinishList(InStockinDetailFinish inStockinDetailFinish)
{
return inStockinDetailFinishMapper.selectInStockinDetailFinishList(inStockinDetailFinish);
}
/**
* 新增历史入库单据子信息
*
* @param inStockinDetailFinish 历史入库单据子信息
* @return 结果
*/
@Override
public int insertInStockinDetailFinish(InStockinDetailFinish inStockinDetailFinish)
{
return inStockinDetailFinishMapper.insertInStockinDetailFinish(inStockinDetailFinish);
}
/**
* 修改历史入库单据子信息
*
* @param inStockinDetailFinish 历史入库单据子信息
* @return 结果
*/
@Override
public int updateInStockinDetailFinish(InStockinDetailFinish inStockinDetailFinish)
{
return inStockinDetailFinishMapper.updateInStockinDetailFinish(inStockinDetailFinish);
}
/**
* 批量删除历史入库单据子信息
*
* @param stockinDetailIds 需要删除的历史入库单据子信息主键
* @return 结果
*/
@Override
public int deleteInStockinDetailFinishByStockinDetailIds(String[] stockinDetailIds)
{
return inStockinDetailFinishMapper.deleteInStockinDetailFinishByStockinDetailIds(stockinDetailIds);
}
/**
* 删除历史入库单据子信息信息
*
* @param stockinDetailId 历史入库单据子信息主键
* @return 结果
*/
@Override
public int deleteInStockinDetailFinishByStockinDetailId(String stockinDetailId)
{
return inStockinDetailFinishMapper.deleteInStockinDetailFinishByStockinDetailId(stockinDetailId);
}
@Override
public List<InStockinDetail> selectInStockinDetailList(InStockinDetail inStockinDetail) {
return inStockinDetailFinishMapper.selectInStockinDetailFinishListByInStockinDetail(inStockinDetail);
}
}

View File

@@ -0,0 +1,98 @@
package com.ruoyi.in.stockinfinish.controller;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.in.stockinfinish.domain.InStockinFinish;
import com.ruoyi.in.stockinfinish.service.IInStockinFinishService;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 历史入库单据主信息Controller
*
* @author ruoyi
* @date 2025-05-28
*/
@RestController
@RequestMapping("/in/stockinFinish")
public class InStockinFinishController extends BaseController
{
@Autowired
private IInStockinFinishService inStockinFinishService;
/**
* 查询历史入库单据主信息列表
*/
@PreAuthorize("@ss.hasPermi('in:stockinFinish:list')")
@GetMapping("/list")
public TableDataInfo list(InStockinFinish inStockinFinish)
{
startPage();
List<InStockinFinish> list = inStockinFinishService.selectInStockinFinishList(inStockinFinish);
return getDataTable(list);
}
/**
* 导出历史入库单据主信息列表
*/
@PreAuthorize("@ss.hasPermi('in:stockinFinish:export')")
@Log(title = "历史入库单据主信息", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, InStockinFinish inStockinFinish)
{
List<InStockinFinish> list = inStockinFinishService.selectInStockinFinishList(inStockinFinish);
ExcelUtil<InStockinFinish> util = new ExcelUtil<InStockinFinish>(InStockinFinish.class);
util.exportExcel(response, list, "历史入库单据主信息数据");
}
/**
* 获取历史入库单据主信息详细信息
*/
@PreAuthorize("@ss.hasPermi('in:stockinFinish:query')")
@GetMapping(value = "/{stockinGuid}")
public AjaxResult getInfo(@PathVariable("stockinGuid") String stockinGuid)
{
return success(inStockinFinishService.selectInStockinFinishByStockinGuid(stockinGuid));
}
/**
* 新增历史入库单据主信息
*/
@PreAuthorize("@ss.hasPermi('in:stockinFinish:add')")
@Log(title = "历史入库单据主信息", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody InStockinFinish inStockinFinish)
{
return toAjax(inStockinFinishService.insertInStockinFinish(inStockinFinish));
}
/**
* 修改历史入库单据主信息
*/
@PreAuthorize("@ss.hasPermi('in:stockinFinish:edit')")
@Log(title = "历史入库单据主信息", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody InStockinFinish inStockinFinish)
{
return toAjax(inStockinFinishService.updateInStockinFinish(inStockinFinish));
}
/**
* 删除历史入库单据主信息
*/
@PreAuthorize("@ss.hasPermi('in:stockinFinish:remove')")
@Log(title = "历史入库单据主信息", businessType = BusinessType.DELETE)
@DeleteMapping("/{stockinGuids}")
public AjaxResult remove(@PathVariable String[] stockinGuids)
{
return toAjax(inStockinFinishService.deleteInStockinFinishByStockinGuids(stockinGuids));
}
}

View File

@@ -0,0 +1,307 @@
package com.ruoyi.in.stockinfinish.domain;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
/**
* 历史入库单据主信息对象 in_stockin_finish
*
* @author ruoyi
* @date 2025-05-28
*/
public class InStockinFinish extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** GUID */
private String stockinGuid;
/** 入库订单ID */
@Excel(name = "入库订单ID")
private String stockinId;
/** 入库类型 */
@Excel(name = "入库类型")
private String inType;
/** 建立时间 */
@Excel(name = "建立时间")
private String createDate;
/** 创建人 */
@Excel(name = "创建人")
private String createManId;
/** 单据状态 */
@Excel(name = "单据状态")
private String status;
/** 仓库ID */
@Excel(name = "仓库ID")
private String warehouseId;
/** 完成日期 */
@Excel(name = " 完成日期")
private String finishDate;
/** erp单号 */
@Excel(name = "erp单号")
private String erpBill;
/** 单据来源 */
@Excel(name = "单据来源")
private String stockSource;
/** 部门编码 */
@Excel(name = "部门编码")
private String departmentNo;
/** 客户编码 */
@Excel(name = "客户编码")
private String customerNo;
/** 班组编码 */
@Excel(name = "班组编码")
private String classNo;
/** 供应商编码 */
@Excel(name = "供应商编码")
private String supplierNo;
/** 备用字段1 */
@Excel(name = "备用字段1")
private String spare1;
/** 备用字段2 */
@Excel(name = "备用字段2")
private String spare2;
/** 备用字段3 */
@Excel(name = "备用字段3")
private String spare3;
/** 备用字段4 */
@Excel(name = "备用字段4")
private String spare4;
/** 备用字段5 */
@Excel(name = "备用字段5")
private String spare5;
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 setInType(String inType)
{
this.inType = inType;
}
public String getInType()
{
return inType;
}
public void setCreateDate(String createDate)
{
this.createDate = createDate;
}
public String getCreateDate()
{
return createDate;
}
public void setCreateManId(String createManId)
{
this.createManId = createManId;
}
public String getCreateManId()
{
return createManId;
}
public void setStatus(String status)
{
this.status = status;
}
public String getStatus()
{
return status;
}
public void setWarehouseId(String warehouseId)
{
this.warehouseId = warehouseId;
}
public String getWarehouseId()
{
return warehouseId;
}
public void setFinishDate(String finishDate)
{
this.finishDate = finishDate;
}
public String getFinishDate()
{
return finishDate;
}
public void setErpBill(String erpBill)
{
this.erpBill = erpBill;
}
public String getErpBill()
{
return erpBill;
}
public void setStockSource(String stockSource)
{
this.stockSource = stockSource;
}
public String getStockSource()
{
return stockSource;
}
public void setDepartmentNo(String departmentNo)
{
this.departmentNo = departmentNo;
}
public String getDepartmentNo()
{
return departmentNo;
}
public void setCustomerNo(String customerNo)
{
this.customerNo = customerNo;
}
public String getCustomerNo()
{
return customerNo;
}
public void setClassNo(String classNo)
{
this.classNo = classNo;
}
public String getClassNo()
{
return classNo;
}
public void setSupplierNo(String supplierNo)
{
this.supplierNo = supplierNo;
}
public String getSupplierNo()
{
return supplierNo;
}
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;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("stockinGuid", getStockinGuid())
.append("stockinId", getStockinId())
.append("inType", getInType())
.append("createDate", getCreateDate())
.append("createManId", getCreateManId())
.append("status", getStatus())
.append("warehouseId", getWarehouseId())
.append("finishDate", getFinishDate())
.append("erpBill", getErpBill())
.append("stockSource", getStockSource())
.append("departmentNo", getDepartmentNo())
.append("customerNo", getCustomerNo())
.append("classNo", getClassNo())
.append("supplierNo", getSupplierNo())
.append("spare1", getSpare1())
.append("spare2", getSpare2())
.append("spare3", getSpare3())
.append("spare4", getSpare4())
.append("spare5", getSpare5())
.toString();
}
}

View File

@@ -0,0 +1,65 @@
package com.ruoyi.in.stockinfinish.mapper;
import com.ruoyi.in.stockin.domain.InStockin;
import com.ruoyi.in.stockinfinish.domain.InStockinFinish;
import java.util.List;
/**
* 历史入库单据主信息Mapper接口
*
* @author ruoyi
* @date 2025-05-28
*/
public interface InStockinFinishMapper
{
/**
* 查询历史入库单据主信息
*
* @param stockinGuid 历史入库单据主信息主键
* @return 历史入库单据主信息
*/
public InStockinFinish selectInStockinFinishByStockinGuid(String stockinGuid);
/**
* 查询历史入库单据主信息列表
*
* @param inStockinFinish 历史入库单据主信息
* @return 历史入库单据主信息集合
*/
public List<InStockinFinish> selectInStockinFinishList(InStockinFinish inStockinFinish);
/**
* 新增历史入库单据主信息
*
* @param inStockinFinish 历史入库单据主信息
* @return 结果
*/
public int insertInStockinFinish(InStockinFinish inStockinFinish);
/**
* 修改历史入库单据主信息
*
* @param inStockinFinish 历史入库单据主信息
* @return 结果
*/
public int updateInStockinFinish(InStockinFinish inStockinFinish);
/**
* 删除历史入库单据主信息
*
* @param stockinGuid 历史入库单据主信息主键
* @return 结果
*/
public int deleteInStockinFinishByStockinGuid(String stockinGuid);
/**
* 批量删除历史入库单据主信息
*
* @param stockinGuids 需要删除的数据主键集合
* @return 结果
*/
public int deleteInStockinFinishByStockinGuids(String[] stockinGuids);
List<InStockin> selectInStockinFinishListByInStockin(InStockin inStockin);
}

View File

@@ -0,0 +1,65 @@
package com.ruoyi.in.stockinfinish.service;
import com.ruoyi.in.stockin.domain.InStockin;
import com.ruoyi.in.stockinfinish.domain.InStockinFinish;
import java.util.List;
/**
* 历史入库单据主信息Service接口
*
* @author ruoyi
* @date 2025-05-28
*/
public interface IInStockinFinishService
{
/**
* 查询历史入库单据主信息
*
* @param stockinGuid 历史入库单据主信息主键
* @return 历史入库单据主信息
*/
public InStockinFinish selectInStockinFinishByStockinGuid(String stockinGuid);
/**
* 查询历史入库单据主信息列表
*
* @param inStockinFinish 历史入库单据主信息
* @return 历史入库单据主信息集合
*/
public List<InStockinFinish> selectInStockinFinishList(InStockinFinish inStockinFinish);
/**
* 新增历史入库单据主信息
*
* @param inStockinFinish 历史入库单据主信息
* @return 结果
*/
public int insertInStockinFinish(InStockinFinish inStockinFinish);
/**
* 修改历史入库单据主信息
*
* @param inStockinFinish 历史入库单据主信息
* @return 结果
*/
public int updateInStockinFinish(InStockinFinish inStockinFinish);
/**
* 批量删除历史入库单据主信息
*
* @param stockinGuids 需要删除的历史入库单据主信息主键集合
* @return 结果
*/
public int deleteInStockinFinishByStockinGuids(String[] stockinGuids);
/**
* 删除历史入库单据主信息信息
*
* @param stockinGuid 历史入库单据主信息主键
* @return 结果
*/
public int deleteInStockinFinishByStockinGuid(String stockinGuid);
List<InStockin> selectInStockinFinishListByInStockin(InStockin inStockin);
}

View File

@@ -0,0 +1,102 @@
package com.ruoyi.in.stockinfinish.service.impl;
import com.ruoyi.common.annotation.DataScope;
import com.ruoyi.in.stockin.domain.InStockin;
import com.ruoyi.in.stockinfinish.domain.InStockinFinish;
import com.ruoyi.in.stockinfinish.mapper.InStockinFinishMapper;
import com.ruoyi.in.stockinfinish.service.IInStockinFinishService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 历史入库单据主信息Service业务层处理
*
* @author ruoyi
* @date 2025-05-28
*/
@Service
public class InStockinFinishServiceImpl implements IInStockinFinishService
{
@Autowired
private InStockinFinishMapper inStockinFinishMapper;
/**
* 查询历史入库单据主信息
*
* @param stockinGuid 历史入库单据主信息主键
* @return 历史入库单据主信息
*/
@Override
public InStockinFinish selectInStockinFinishByStockinGuid(String stockinGuid)
{
return inStockinFinishMapper.selectInStockinFinishByStockinGuid(stockinGuid);
}
/**
* 查询历史入库单据主信息列表
*
* @param inStockinFinish 历史入库单据主信息
* @return 历史入库单据主信息
*/
@Override
public List<InStockinFinish> selectInStockinFinishList(InStockinFinish inStockinFinish)
{
return inStockinFinishMapper.selectInStockinFinishList(inStockinFinish);
}
/**
* 新增历史入库单据主信息
*
* @param inStockinFinish 历史入库单据主信息
* @return 结果
*/
@Override
public int insertInStockinFinish(InStockinFinish inStockinFinish)
{
return inStockinFinishMapper.insertInStockinFinish(inStockinFinish);
}
/**
* 修改历史入库单据主信息
*
* @param inStockinFinish 历史入库单据主信息
* @return 结果
*/
@Override
public int updateInStockinFinish(InStockinFinish inStockinFinish)
{
return inStockinFinishMapper.updateInStockinFinish(inStockinFinish);
}
/**
* 批量删除历史入库单据主信息
*
* @param stockinGuids 需要删除的历史入库单据主信息主键
* @return 结果
*/
@Override
public int deleteInStockinFinishByStockinGuids(String[] stockinGuids)
{
return inStockinFinishMapper.deleteInStockinFinishByStockinGuids(stockinGuids);
}
/**
* 删除历史入库单据主信息信息
*
* @param stockinGuid 历史入库单据主信息主键
* @return 结果
*/
@Override
public int deleteInStockinFinishByStockinGuid(String stockinGuid)
{
return inStockinFinishMapper.deleteInStockinFinishByStockinGuid(stockinGuid);
}
@Override
@DataScope(warehouseAlias = "is2")
public List<InStockin> selectInStockinFinishListByInStockin(InStockin inStockin) {
return inStockinFinishMapper.selectInStockinFinishListByInStockin(inStockin);
}
}