新增盘点模块相关接口

This commit is contained in:
2025-06-17 08:39:05 +08:00
parent 52ff615f29
commit f3752c7cbc
32 changed files with 853 additions and 2303 deletions

View File

@@ -0,0 +1,104 @@
package com.zg.project.Inventory.Task.controller;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.zg.framework.aspectj.lang.annotation.Log;
import com.zg.framework.aspectj.lang.enums.BusinessType;
import com.zg.project.Inventory.domain.entity.InventoryTask;
import com.zg.project.Inventory.Task.service.IInventoryTaskService;
import com.zg.framework.web.controller.BaseController;
import com.zg.framework.web.domain.AjaxResult;
import com.zg.common.utils.poi.ExcelUtil;
import com.zg.framework.web.page.TableDataInfo;
/**
* 盘点任务Controller
*
* @author zg
* @date 2025-06-16
*/
@RestController
@RequestMapping("/Inventory/task")
public class InventoryTaskController extends BaseController
{
@Autowired
private IInventoryTaskService inventoryTaskService;
/**
* 查询盘点任务列表
*/
@PreAuthorize("@ss.hasPermi('Inventory:task:list')")
@GetMapping("/list")
public TableDataInfo list(InventoryTask inventoryTask)
{
startPage();
List<InventoryTask> list = inventoryTaskService.selectInventoryTaskList(inventoryTask);
return getDataTable(list);
}
/**
* 导出盘点任务列表
*/
@PreAuthorize("@ss.hasPermi('Inventory:task:export')")
@Log(title = "盘点任务", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, InventoryTask inventoryTask)
{
List<InventoryTask> list = inventoryTaskService.selectInventoryTaskList(inventoryTask);
ExcelUtil<InventoryTask> util = new ExcelUtil<InventoryTask>(InventoryTask.class);
util.exportExcel(response, list, "盘点任务数据");
}
/**
* 获取盘点任务详细信息
*/
@PreAuthorize("@ss.hasPermi('Inventory:task:query')")
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id)
{
return success(inventoryTaskService.selectInventoryTaskById(id));
}
/**
* 新增盘点任务
*/
@PreAuthorize("@ss.hasPermi('Inventory:task:add')")
@Log(title = "盘点任务", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody InventoryTask inventoryTask)
{
return toAjax(inventoryTaskService.insertInventoryTask(inventoryTask));
}
/**
* 修改盘点任务
*/
@PreAuthorize("@ss.hasPermi('Inventory:task:edit')")
@Log(title = "盘点任务", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody InventoryTask inventoryTask)
{
return toAjax(inventoryTaskService.updateInventoryTask(inventoryTask));
}
/**
* 删除盘点任务
*/
@PreAuthorize("@ss.hasPermi('Inventory:task:remove')")
@Log(title = "盘点任务", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Long[] ids)
{
return toAjax(inventoryTaskService.deleteInventoryTaskByIds(ids));
}
}

View File

@@ -0,0 +1,61 @@
package com.zg.project.Inventory.Task.mapper;
import java.util.List;
import com.zg.project.Inventory.domain.entity.InventoryTask;
/**
* 盘点任务Mapper接口
*
* @author zg
* @date 2025-06-16
*/
public interface InventoryTaskMapper
{
/**
* 查询盘点任务
*
* @param id 盘点任务主键
* @return 盘点任务
*/
public InventoryTask selectInventoryTaskById(Long id);
/**
* 查询盘点任务列表
*
* @param inventoryTask 盘点任务
* @return 盘点任务集合
*/
public List<InventoryTask> selectInventoryTaskList(InventoryTask inventoryTask);
/**
* 新增盘点任务
*
* @param inventoryTask 盘点任务
* @return 结果
*/
public int insertInventoryTask(InventoryTask inventoryTask);
/**
* 修改盘点任务
*
* @param inventoryTask 盘点任务
* @return 结果
*/
public int updateInventoryTask(InventoryTask inventoryTask);
/**
* 删除盘点任务
*
* @param id 盘点任务主键
* @return 结果
*/
public int deleteInventoryTaskById(Long id);
/**
* 批量删除盘点任务
*
* @param ids 需要删除的数据主键集合
* @return 结果
*/
public int deleteInventoryTaskByIds(Long[] ids);
}

View File

@@ -0,0 +1,61 @@
package com.zg.project.Inventory.Task.service;
import java.util.List;
import com.zg.project.Inventory.domain.entity.InventoryTask;
/**
* 盘点任务Service接口
*
* @author zg
* @date 2025-06-16
*/
public interface IInventoryTaskService
{
/**
* 查询盘点任务
*
* @param id 盘点任务主键
* @return 盘点任务
*/
public InventoryTask selectInventoryTaskById(Long id);
/**
* 查询盘点任务列表
*
* @param inventoryTask 盘点任务
* @return 盘点任务集合
*/
public List<InventoryTask> selectInventoryTaskList(InventoryTask inventoryTask);
/**
* 新增盘点任务
*
* @param inventoryTask 盘点任务
* @return 结果
*/
public int insertInventoryTask(InventoryTask inventoryTask);
/**
* 修改盘点任务
*
* @param inventoryTask 盘点任务
* @return 结果
*/
public int updateInventoryTask(InventoryTask inventoryTask);
/**
* 批量删除盘点任务
*
* @param ids 需要删除的盘点任务主键集合
* @return 结果
*/
public int deleteInventoryTaskByIds(Long[] ids);
/**
* 删除盘点任务信息
*
* @param id 盘点任务主键
* @return 结果
*/
public int deleteInventoryTaskById(Long id);
}

View File

@@ -0,0 +1,93 @@
package com.zg.project.Inventory.Task.service.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.zg.project.Inventory.Task.mapper.InventoryTaskMapper;
import com.zg.project.Inventory.domain.entity.InventoryTask;
import com.zg.project.Inventory.Task.service.IInventoryTaskService;
/**
* 盘点任务Service业务层处理
*
* @author zg
* @date 2025-06-16
*/
@Service
public class InventoryTaskServiceImpl implements IInventoryTaskService
{
@Autowired
private InventoryTaskMapper inventoryTaskMapper;
/**
* 查询盘点任务
*
* @param id 盘点任务主键
* @return 盘点任务
*/
@Override
public InventoryTask selectInventoryTaskById(Long id)
{
return inventoryTaskMapper.selectInventoryTaskById(id);
}
/**
* 查询盘点任务列表
*
* @param inventoryTask 盘点任务
* @return 盘点任务
*/
@Override
public List<InventoryTask> selectInventoryTaskList(InventoryTask inventoryTask)
{
return inventoryTaskMapper.selectInventoryTaskList(inventoryTask);
}
/**
* 新增盘点任务
*
* @param inventoryTask 盘点任务
* @return 结果
*/
@Override
public int insertInventoryTask(InventoryTask inventoryTask)
{
return inventoryTaskMapper.insertInventoryTask(inventoryTask);
}
/**
* 修改盘点任务
*
* @param inventoryTask 盘点任务
* @return 结果
*/
@Override
public int updateInventoryTask(InventoryTask inventoryTask)
{
return inventoryTaskMapper.updateInventoryTask(inventoryTask);
}
/**
* 批量删除盘点任务
*
* @param ids 需要删除的盘点任务主键
* @return 结果
*/
@Override
public int deleteInventoryTaskByIds(Long[] ids)
{
return inventoryTaskMapper.deleteInventoryTaskByIds(ids);
}
/**
* 删除盘点任务信息
*
* @param id 盘点任务主键
* @return 结果
*/
@Override
public int deleteInventoryTaskById(Long id)
{
return inventoryTaskMapper.deleteInventoryTaskById(id);
}
}

View File

@@ -1,116 +0,0 @@
package com.zg.project.Inventory.Visualization.controller;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.zg.project.Inventory.Visualization.domain.vo.OdtlVO;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.zg.framework.aspectj.lang.annotation.Log;
import com.zg.framework.aspectj.lang.enums.BusinessType;
import com.zg.project.Inventory.Visualization.domain.Odtl;
import com.zg.project.Inventory.Visualization.service.IOdtlService;
import com.zg.framework.web.controller.BaseController;
import com.zg.framework.web.domain.AjaxResult;
import com.zg.common.utils.poi.ExcelUtil;
import com.zg.framework.web.page.TableDataInfo;
/**
* 借料出库 明细Controller
*
* @author zg
* @date 2025-05-09
*/
@RestController
@RequestMapping("/Visual/odtl")
public class OdtlController extends BaseController
{
@Autowired
private IOdtlService odtlService;
/**
* 查询借料出库 明细列表
*/
@PreAuthorize("@ss.hasPermi('Visualization:odtl:list')")
@GetMapping("/list")
public TableDataInfo list(Odtl odtl)
{
startPage();
List<Odtl> list = odtlService.selectOdtlList(odtl);
return getDataTable(list);
}
/**
* 查询全部出入库明细
* @return
*/
@GetMapping("/odtlQueryAll")
public AjaxResult queryAll() {
List<OdtlVO> list = odtlService.queryAll();
return AjaxResult.success(list);
}
/**
* 导出借料出库 明细列表
*/
@PreAuthorize("@ss.hasPermi('Visualization:odtl:export')")
@Log(title = "借料出库 明细", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, Odtl odtl)
{
List<Odtl> list = odtlService.selectOdtlList(odtl);
ExcelUtil<Odtl> util = new ExcelUtil<Odtl>(Odtl.class);
util.exportExcel(response, list, "借料出库 明细数据");
}
/**
* 获取借料出库 明细详细信息
*/
@PreAuthorize("@ss.hasPermi('Visualization:odtl:query')")
@GetMapping(value = "/{Id}")
public AjaxResult getInfo(@PathVariable("Id") Long Id)
{
return success(odtlService.selectOdtlById(Id));
}
/**
* 新增借料出库 明细
*/
@PreAuthorize("@ss.hasPermi('Visualization:odtl:add')")
@Log(title = "借料出库 明细", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody Odtl odtl)
{
return toAjax(odtlService.insertOdtl(odtl));
}
/**
* 修改借料出库 明细
*/
@PreAuthorize("@ss.hasPermi('Visualization:odtl:edit')")
@Log(title = "借料出库 明细", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody Odtl odtl)
{
return toAjax(odtlService.updateOdtl(odtl));
}
/**
* 删除借料出库 明细
*/
@PreAuthorize("@ss.hasPermi('Visualization:odtl:remove')")
@Log(title = "借料出库 明细", businessType = BusinessType.DELETE)
@DeleteMapping("/{Ids}")
public AjaxResult remove(@PathVariable Long[] Ids)
{
return toAjax(odtlService.deleteOdtlByIds(Ids));
}
}

View File

@@ -1,116 +0,0 @@
package com.zg.project.Inventory.Visualization.controller;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletResponse;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.zg.framework.aspectj.lang.annotation.Log;
import com.zg.framework.aspectj.lang.enums.BusinessType;
import com.zg.project.Inventory.Visualization.domain.Pln;
import com.zg.project.Inventory.Visualization.service.IPlnService;
import com.zg.framework.web.controller.BaseController;
import com.zg.framework.web.domain.AjaxResult;
import com.zg.common.utils.poi.ExcelUtil;
import com.zg.framework.web.page.TableDataInfo;
/**
* 计划履约Controller
*
* @author zg
* @date 2025-05-09
*/
@RestController
@RequestMapping("/Visual/pln")
public class PlnController extends BaseController
{
@Autowired
private IPlnService plnService;
/**
* 查询计划履约列表
*/
@PreAuthorize("@ss.hasPermi('Visualization:pln:list')")
@GetMapping("/list")
public TableDataInfo list(Pln pln)
{
startPage();
List<Pln> list = plnService.selectPlnList(pln);
return getDataTable(list);
}
/**
* 查询所有供应计划
*/
@GetMapping("/plnQueryAll")
public AjaxResult queryAll() {
Map<String, Object> resultMap = plnService.getAll();
return AjaxResult.success(resultMap);
}
/**
* 导出计划履约列表
*/
@PreAuthorize("@ss.hasPermi('Visualization:pln:export')")
@Log(title = "计划履约", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, Pln pln)
{
List<Pln> list = plnService.selectPlnList(pln);
ExcelUtil<Pln> util = new ExcelUtil<Pln>(Pln.class);
util.exportExcel(response, list, "计划履约数据");
}
/**
* 获取计划履约详细信息
*/
@PreAuthorize("@ss.hasPermi('Visualization:pln:query')")
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id)
{
return success(plnService.selectPlnById(id));
}
/**
* 新增计划履约
*/
@PreAuthorize("@ss.hasPermi('Visualization:pln:add')")
@Log(title = "计划履约", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody Pln pln)
{
return toAjax(plnService.insertPln(pln));
}
/**
* 修改计划履约
*/
@PreAuthorize("@ss.hasPermi('Visualization:pln:edit')")
@Log(title = "计划履约", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody Pln pln)
{
return toAjax(plnService.updatePln(pln));
}
/**
* 删除计划履约
*/
@PreAuthorize("@ss.hasPermi('Visualization:pln:remove')")
@Log(title = "计划履约", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Long[] ids)
{
return toAjax(plnService.deletePlnByIds(ids));
}
}

View File

@@ -1,30 +0,0 @@
package com.zg.project.Inventory.Visualization.controller;
import com.zg.framework.web.controller.BaseController;
import com.zg.framework.web.domain.AjaxResult;
import com.zg.project.Inventory.AutoInventory.service.ISodService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
@RestController
@RequestMapping("/Visual")
public class SodController extends BaseController {
@Autowired
private ISodService sodService;
/**
* 查询当前库存情况
* @return
*/
@GetMapping("/sodQueryAll")
public AjaxResult queryAll() {
Map<String, Object> resultMap = sodService.getAll();
return AjaxResult.success(resultMap);
}
}

View File

@@ -1,188 +0,0 @@
package com.zg.project.Inventory.Visualization.domain;
import java.math.BigDecimal;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.zg.framework.aspectj.lang.annotation.Excel;
import com.zg.framework.web.domain.BaseEntity;
/**
* 借料出库 明细对象 odtl
*
* @author zg
* @date 2025-05-09
*/
public class Odtl extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** $column.columnComment */
private Long Id;
/** rdtl的id */
@Excel(name = "rdtl的id")
private Long rdid;
/** sod的id */
@Excel(name = "sod的id")
private Long sid;
/** 取货数量 */
@Excel(name = "取货数量")
private BigDecimal amt;
/** 取货位置 */
@Excel(name = "取货位置")
private String pcde;
/** 为出库单时1表示已出库;0表示入库 */
@Excel(name = "为出库单时1表示已出库;0表示入库")
private String ste;
/** RIFD编号 */
@Excel(name = "RIFD编号")
private String rfid;
/** wh_sod.id危化品库存id */
@Excel(name = "wh_sod.id危化品库存id")
private Long wsid;
/** 声光标签编码 */
@Excel(name = "声光标签编码")
private String vlid;
/** 1:还料 */
@Excel(name = "1:还料")
private Long flg;
/** ERP出库凭证 */
@Excel(name = "ERP出库凭证")
private String prf;
public void setId(Long Id)
{
this.Id = Id;
}
public Long getId()
{
return Id;
}
public void setRdid(Long rdid)
{
this.rdid = rdid;
}
public Long getRdid()
{
return rdid;
}
public void setSid(Long sid)
{
this.sid = sid;
}
public Long getSid()
{
return sid;
}
public void setAmt(BigDecimal amt)
{
this.amt = amt;
}
public BigDecimal getAmt()
{
return amt;
}
public void setPcde(String pcde)
{
this.pcde = pcde;
}
public String getPcde()
{
return pcde;
}
public void setSte(String ste)
{
this.ste = ste;
}
public String getSte()
{
return ste;
}
public void setRfid(String rfid)
{
this.rfid = rfid;
}
public String getRfid()
{
return rfid;
}
public void setWsid(Long wsid)
{
this.wsid = wsid;
}
public Long getWsid()
{
return wsid;
}
public void setVlid(String vlid)
{
this.vlid = vlid;
}
public String getVlid()
{
return vlid;
}
public void setFlg(Long flg)
{
this.flg = flg;
}
public Long getFlg()
{
return flg;
}
public void setPrf(String prf)
{
this.prf = prf;
}
public String getPrf()
{
return prf;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("Id", getId())
.append("rdid", getRdid())
.append("sid", getSid())
.append("amt", getAmt())
.append("pcde", getPcde())
.append("ste", getSte())
.append("rfid", getRfid())
.append("wsid", getWsid())
.append("vlid", getVlid())
.append("flg", getFlg())
.append("prf", getPrf())
.toString();
}
}

View File

@@ -1,712 +0,0 @@
package com.zg.project.Inventory.Visualization.domain;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.zg.framework.aspectj.lang.annotation.Excel;
import com.zg.framework.web.domain.BaseEntity;
/**
* 计划履约对象 pln
*
* @author zg
* @date 2025-05-09
*/
public class Pln extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** $column.columnComment */
private Long id;
/** 工厂代码 */
@Excel(name = "工厂代码")
private String gcdm;
/** 工厂描述 */
@Excel(name = "工厂描述")
private String gcms;
/** 招标批次 */
@Excel(name = "招标批次")
private String zbpc;
/** 招标批次名称 */
@Excel(name = "招标批次名称")
private String zbpcmc;
/** 生效日期 */
@Excel(name = "生效日期")
private String sxrq;
/** 签订日期 */
@Excel(name = "签订日期")
private String qdrq;
/** 合同编号(电子商务) */
@Excel(name = "合同编号", readConverterExp = "电=子商务")
private String htbh;
/** 供应计划编号 */
@Excel(name = "供应计划编号")
private String gyjhbh;
/** 工程编号(项目定义号) */
@Excel(name = "工程编号", readConverterExp = "项=目定义号")
private String gcbh;
/** 工程名称(项目描述) */
@Excel(name = "工程名称", readConverterExp = "项=目描述")
private String xmms;
/** 供应商编码 */
@Excel(name = "供应商编码")
private String gysbm;
/** 供应商名称 */
@Excel(name = "供应商名称")
private String gysmc;
/** 采购订单号 */
@Excel(name = "采购订单号")
private String cgddh;
/** 采购订单行项目号 */
@Excel(name = "采购订单行项目号")
private String hxmh;
/** 合同交货期 */
@Excel(name = "合同交货期")
private String htjhq;
/** 确定交货期 */
@Excel(name = "确定交货期")
private String qdjhq;
/** 实际交货期 */
@Excel(name = "实际交货期")
private String sjjhq;
/** 物料号 */
@Excel(name = "物料号")
private String wlh;
/** 物料描述 */
@Excel(name = "物料描述")
private String wlms;
/** 计量单位 */
@Excel(name = "计量单位")
private String jldw;
/** 合同数量 */
@Excel(name = "合同数量")
private String htsl;
/** 计划交货数量 */
@Excel(name = "计划交货数量")
private String jhjhsl;
/** 计划交货批次 */
@Excel(name = "计划交货批次")
private String jhjhpc;
/** 计划交货金额(含税) */
@Excel(name = "计划交货金额", readConverterExp = "含=税")
private String jhjhje;
/** 实际交货数量 */
@Excel(name = "实际交货数量")
private String sjjhsl;
/** 供应计划状态 */
@Excel(name = "供应计划状态")
private String gyjhzt;
/** 采购凭证类型 */
@Excel(name = "采购凭证类型")
private String cgpzlx;
/** 采购申请计划交货日期 */
@Excel(name = "采购申请计划交货日期")
private String jhjhrq;
/** 交货地点 */
@Excel(name = "交货地点")
private String jhdd;
/** 交货联系人 */
@Excel(name = "交货联系人")
private String jhlxr;
/** 联系方式 */
@Excel(name = "联系方式")
private String lxfs;
/** 传ECP标识 */
@Excel(name = "传ECP标识")
private String ecp;
/** 项目单位 */
@Excel(name = "项目单位")
private String xmdw;
/** 用于订单排序,数字越大,排序越靠前 */
@Excel(name = "用于订单排序,数字越大,排序越靠前")
private Long odr;
/** 采购订单行号 */
@Excel(name = "采购订单行号")
private String rcde;
/** 采购凭证 */
@Excel(name = "采购凭证")
private String cgpz;
/** 已入库-初始值 */
@Excel(name = "已入库-初始值")
private Long yrk;
/** 已出库-初始值 */
@Excel(name = "已出库-初始值")
private Long yck;
/** 状态0正常1关闭提醒 */
@Excel(name = "状态0正常1关闭提醒")
private Long ste;
/** 施工队 */
@Excel(name = "施工队")
private String tem;
/** 导入时间 */
@Excel(name = "导入时间")
private String intme;
/** 最后一次更新时间 */
@Excel(name = "最后一次更新时间")
private String updtme;
/** $column.columnComment */
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long rAmt;
/** $column.columnComment */
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long cAmt;
/** $column.columnComment */
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private String crtim;
public void setId(Long id)
{
this.id = id;
}
public Long getId()
{
return id;
}
public void setGcdm(String gcdm)
{
this.gcdm = gcdm;
}
public String getGcdm()
{
return gcdm;
}
public void setGcms(String gcms)
{
this.gcms = gcms;
}
public String getGcms()
{
return gcms;
}
public void setZbpc(String zbpc)
{
this.zbpc = zbpc;
}
public String getZbpc()
{
return zbpc;
}
public void setZbpcmc(String zbpcmc)
{
this.zbpcmc = zbpcmc;
}
public String getZbpcmc()
{
return zbpcmc;
}
public void setSxrq(String sxrq)
{
this.sxrq = sxrq;
}
public String getSxrq()
{
return sxrq;
}
public void setQdrq(String qdrq)
{
this.qdrq = qdrq;
}
public String getQdrq()
{
return qdrq;
}
public void setHtbh(String htbh)
{
this.htbh = htbh;
}
public String getHtbh()
{
return htbh;
}
public void setGyjhbh(String gyjhbh)
{
this.gyjhbh = gyjhbh;
}
public String getGyjhbh()
{
return gyjhbh;
}
public void setGcbh(String gcbh)
{
this.gcbh = gcbh;
}
public String getGcbh()
{
return gcbh;
}
public void setXmms(String xmms)
{
this.xmms = xmms;
}
public String getXmms()
{
return xmms;
}
public void setGysbm(String gysbm)
{
this.gysbm = gysbm;
}
public String getGysbm()
{
return gysbm;
}
public void setGysmc(String gysmc)
{
this.gysmc = gysmc;
}
public String getGysmc()
{
return gysmc;
}
public void setCgddh(String cgddh)
{
this.cgddh = cgddh;
}
public String getCgddh()
{
return cgddh;
}
public void setHxmh(String hxmh)
{
this.hxmh = hxmh;
}
public String getHxmh()
{
return hxmh;
}
public void setHtjhq(String htjhq)
{
this.htjhq = htjhq;
}
public String getHtjhq()
{
return htjhq;
}
public void setQdjhq(String qdjhq)
{
this.qdjhq = qdjhq;
}
public String getQdjhq()
{
return qdjhq;
}
public void setSjjhq(String sjjhq)
{
this.sjjhq = sjjhq;
}
public String getSjjhq()
{
return sjjhq;
}
public void setWlh(String wlh)
{
this.wlh = wlh;
}
public String getWlh()
{
return wlh;
}
public void setWlms(String wlms)
{
this.wlms = wlms;
}
public String getWlms()
{
return wlms;
}
public void setJldw(String jldw)
{
this.jldw = jldw;
}
public String getJldw()
{
return jldw;
}
public void setHtsl(String htsl)
{
this.htsl = htsl;
}
public String getHtsl()
{
return htsl;
}
public void setJhjhsl(String jhjhsl)
{
this.jhjhsl = jhjhsl;
}
public String getJhjhsl()
{
return jhjhsl;
}
public void setJhjhpc(String jhjhpc)
{
this.jhjhpc = jhjhpc;
}
public String getJhjhpc()
{
return jhjhpc;
}
public void setJhjhje(String jhjhje)
{
this.jhjhje = jhjhje;
}
public String getJhjhje()
{
return jhjhje;
}
public void setSjjhsl(String sjjhsl)
{
this.sjjhsl = sjjhsl;
}
public String getSjjhsl()
{
return sjjhsl;
}
public void setGyjhzt(String gyjhzt)
{
this.gyjhzt = gyjhzt;
}
public String getGyjhzt()
{
return gyjhzt;
}
public void setCgpzlx(String cgpzlx)
{
this.cgpzlx = cgpzlx;
}
public String getCgpzlx()
{
return cgpzlx;
}
public void setJhjhrq(String jhjhrq)
{
this.jhjhrq = jhjhrq;
}
public String getJhjhrq()
{
return jhjhrq;
}
public void setJhdd(String jhdd)
{
this.jhdd = jhdd;
}
public String getJhdd()
{
return jhdd;
}
public void setJhlxr(String jhlxr)
{
this.jhlxr = jhlxr;
}
public String getJhlxr()
{
return jhlxr;
}
public void setLxfs(String lxfs)
{
this.lxfs = lxfs;
}
public String getLxfs()
{
return lxfs;
}
public void setEcp(String ecp)
{
this.ecp = ecp;
}
public String getEcp()
{
return ecp;
}
public void setXmdw(String xmdw)
{
this.xmdw = xmdw;
}
public String getXmdw()
{
return xmdw;
}
public void setOdr(Long odr)
{
this.odr = odr;
}
public Long getOdr()
{
return odr;
}
public void setRcde(String rcde)
{
this.rcde = rcde;
}
public String getRcde()
{
return rcde;
}
public void setCgpz(String cgpz)
{
this.cgpz = cgpz;
}
public String getCgpz()
{
return cgpz;
}
public void setYrk(Long yrk)
{
this.yrk = yrk;
}
public Long getYrk()
{
return yrk;
}
public void setYck(Long yck)
{
this.yck = yck;
}
public Long getYck()
{
return yck;
}
public void setSte(Long ste)
{
this.ste = ste;
}
public Long getSte()
{
return ste;
}
public void setTem(String tem)
{
this.tem = tem;
}
public String getTem()
{
return tem;
}
public void setIntme(String intme)
{
this.intme = intme;
}
public String getIntme()
{
return intme;
}
public void setUpdtme(String updtme)
{
this.updtme = updtme;
}
public String getUpdtme()
{
return updtme;
}
public void setrAmt(Long rAmt)
{
this.rAmt = rAmt;
}
public Long getrAmt()
{
return rAmt;
}
public void setcAmt(Long cAmt)
{
this.cAmt = cAmt;
}
public Long getcAmt()
{
return cAmt;
}
public void setCrtim(String crtim)
{
this.crtim = crtim;
}
public String getCrtim()
{
return crtim;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("gcdm", getGcdm())
.append("gcms", getGcms())
.append("zbpc", getZbpc())
.append("zbpcmc", getZbpcmc())
.append("sxrq", getSxrq())
.append("qdrq", getQdrq())
.append("htbh", getHtbh())
.append("gyjhbh", getGyjhbh())
.append("gcbh", getGcbh())
.append("xmms", getXmms())
.append("gysbm", getGysbm())
.append("gysmc", getGysmc())
.append("cgddh", getCgddh())
.append("hxmh", getHxmh())
.append("htjhq", getHtjhq())
.append("qdjhq", getQdjhq())
.append("sjjhq", getSjjhq())
.append("wlh", getWlh())
.append("wlms", getWlms())
.append("jldw", getJldw())
.append("htsl", getHtsl())
.append("jhjhsl", getJhjhsl())
.append("jhjhpc", getJhjhpc())
.append("jhjhje", getJhjhje())
.append("sjjhsl", getSjjhsl())
.append("gyjhzt", getGyjhzt())
.append("cgpzlx", getCgpzlx())
.append("jhjhrq", getJhjhrq())
.append("jhdd", getJhdd())
.append("jhlxr", getJhlxr())
.append("lxfs", getLxfs())
.append("ecp", getEcp())
.append("xmdw", getXmdw())
.append("odr", getOdr())
.append("rcde", getRcde())
.append("cgpz", getCgpz())
.append("yrk", getYrk())
.append("yck", getYck())
.append("ste", getSte())
.append("tem", getTem())
.append("intme", getIntme())
.append("updtme", getUpdtme())
.append("rAmt", getrAmt())
.append("cAmt", getcAmt())
.append("crtim", getCrtim())
.toString();
}
}

View File

@@ -1,20 +0,0 @@
package com.zg.project.Inventory.Visualization.domain.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
@Data
public class QueryDTO {
@ApiModelProperty("页码从1开始")
@Min(value = 1, message = "页码最小为1")
private Integer pageNum = 1;
@ApiModelProperty("每页条数")
@Min(value = 1, message = "每页条数最小为1")
@Max(value = 100, message = "每页条数最大为100")
private Integer pageSize = 10;
}

View File

@@ -1,55 +0,0 @@
package com.zg.project.Inventory.Visualization.domain.vo;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class OdtlVO {
// odtl 表字段
private String aamt;
private String bcde;
private Long sid;
// rdtl 表字段
private String mid;
private String berpid;
private String bdesPro;
private String bprf;
private String mrk;
private Integer ste;
private String prc;
private String bth;
private String bgys;
private String fycde1;
private String fycde2;
// rcp 表字段
private Long rid;
private String cerpid;
private String cdesPro;
private Integer bnum;
private String tpe;
private String usr;
private String nme;
private String tme;
private String cde;
private String tnme;
private String ptme;
private String tpnme;
private String cgy;
private String wtpe;
private String wh;
private String ctme;
// mtd 表字段
private String desMat;
private String unt;
// sod 表字段
private String smid;
private String sbnum;
private String spcde;
private String egys;
private String smrk;
}

View File

@@ -1,65 +0,0 @@
package com.zg.project.Inventory.Visualization.mapper;
import java.util.List;
import com.zg.project.Inventory.Visualization.domain.Odtl;
import com.zg.project.Inventory.Visualization.domain.vo.OdtlVO;
/**
* 借料出库 明细Mapper接口
*
* @author zg
* @date 2025-05-09
*/
public interface OdtlMapper
{
/**
* 查询借料出库 明细
*
* @param Id 借料出库 明细主键
* @return 借料出库 明细
*/
public Odtl selectOdtlById(Long Id);
/**
* 查询借料出库 明细列表
*
* @param odtl 借料出库 明细
* @return 借料出库 明细集合
*/
public List<Odtl> selectOdtlList(Odtl odtl);
/**
* 新增借料出库 明细
*
* @param odtl 借料出库 明细
* @return 结果
*/
public int insertOdtl(Odtl odtl);
/**
* 修改借料出库 明细
*
* @param odtl 借料出库 明细
* @return 结果
*/
public int updateOdtl(Odtl odtl);
/**
* 删除借料出库 明细
*
* @param Id 借料出库 明细主键
* @return 结果
*/
public int deleteOdtlById(Long Id);
/**
* 批量删除借料出库 明细
*
* @param Ids 需要删除的数据主键集合
* @return 结果
*/
public int deleteOdtlByIds(Long[] Ids);
List<OdtlVO> queryAll();
}

View File

@@ -1,64 +0,0 @@
package com.zg.project.Inventory.Visualization.mapper;
import java.util.List;
import com.zg.project.Inventory.Visualization.domain.Pln;
/**
* 计划履约Mapper接口
*
* @author zg
* @date 2025-05-09
*/
public interface PlnMapper
{
/**
* 查询计划履约
*
* @param id 计划履约主键
* @return 计划履约
*/
public Pln selectPlnById(Long id);
/**
* 查询计划履约列表
*
* @param pln 计划履约
* @return 计划履约集合
*/
public List<Pln> selectPlnList(Pln pln);
/**
* 新增计划履约
*
* @param pln 计划履约
* @return 结果
*/
public int insertPln(Pln pln);
/**
* 修改计划履约
*
* @param pln 计划履约
* @return 结果
*/
public int updatePln(Pln pln);
/**
* 删除计划履约
*
* @param id 计划履约主键
* @return 结果
*/
public int deletePlnById(Long id);
/**
* 批量删除计划履约
*
* @param ids 需要删除的数据主键集合
* @return 结果
*/
public int deletePlnByIds(Long[] ids);
List<Pln> getAll();
}

View File

@@ -1,65 +0,0 @@
package com.zg.project.Inventory.Visualization.service;
import java.util.List;
import com.zg.project.Inventory.Visualization.domain.Odtl;
import com.zg.project.Inventory.Visualization.domain.vo.OdtlVO;
/**
* 借料出库 明细Service接口
*
* @author zg
* @date 2025-05-09
*/
public interface IOdtlService
{
/**
* 查询借料出库 明细
*
* @param Id 借料出库 明细主键
* @return 借料出库 明细
*/
public Odtl selectOdtlById(Long Id);
/**
* 查询借料出库 明细列表
*
* @param odtl 借料出库 明细
* @return 借料出库 明细集合
*/
public List<Odtl> selectOdtlList(Odtl odtl);
/**
* 新增借料出库 明细
*
* @param odtl 借料出库 明细
* @return 结果
*/
public int insertOdtl(Odtl odtl);
/**
* 修改借料出库 明细
*
* @param odtl 借料出库 明细
* @return 结果
*/
public int updateOdtl(Odtl odtl);
/**
* 批量删除借料出库 明细
*
* @param Ids 需要删除的借料出库 明细主键集合
* @return 结果
*/
public int deleteOdtlByIds(Long[] Ids);
/**
* 删除借料出库 明细信息
*
* @param Id 借料出库 明细主键
* @return 结果
*/
public int deleteOdtlById(Long Id);
List<OdtlVO> queryAll();
}

View File

@@ -1,66 +0,0 @@
package com.zg.project.Inventory.Visualization.service;
import java.util.List;
import java.util.Map;
import com.zg.project.Inventory.Visualization.domain.Pln;
/**
* 计划履约Service接口
*
* @author zg
* @date 2025-05-09
*/
public interface IPlnService
{
/**
* 查询计划履约
*
* @param id 计划履约主键
* @return 计划履约
*/
public Pln selectPlnById(Long id);
/**
* 查询计划履约列表
*
* @param pln 计划履约
* @return 计划履约集合
*/
public List<Pln> selectPlnList(Pln pln);
/**
* 新增计划履约
*
* @param pln 计划履约
* @return 结果
*/
public int insertPln(Pln pln);
/**
* 修改计划履约
*
* @param pln 计划履约
* @return 结果
*/
public int updatePln(Pln pln);
/**
* 批量删除计划履约
*
* @param ids 需要删除的计划履约主键集合
* @return 结果
*/
public int deletePlnByIds(Long[] ids);
/**
* 删除计划履约信息
*
* @param id 计划履约主键
* @return 结果
*/
public int deletePlnById(Long id);
Map<String, Object> getAll();
}

View File

@@ -1,100 +0,0 @@
package com.zg.project.Inventory.Visualization.service.impl;
import java.util.List;
import com.zg.project.Inventory.Visualization.domain.vo.OdtlVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.zg.project.Inventory.Visualization.mapper.OdtlMapper;
import com.zg.project.Inventory.Visualization.domain.Odtl;
import com.zg.project.Inventory.Visualization.service.IOdtlService;
/**
* 借料出库 明细Service业务层处理
*
* @author zg
* @date 2025-05-09
*/
@Service
public class OdtlServiceImpl implements IOdtlService
{
@Autowired
private OdtlMapper odtlMapper;
/**
* 查询借料出库 明细
*
* @param Id 借料出库 明细主键
* @return 借料出库 明细
*/
@Override
public Odtl selectOdtlById(Long Id)
{
return odtlMapper.selectOdtlById(Id);
}
/**
* 查询借料出库 明细列表
*
* @param odtl 借料出库 明细
* @return 借料出库 明细
*/
@Override
public List<Odtl> selectOdtlList(Odtl odtl)
{
return odtlMapper.selectOdtlList(odtl);
}
/**
* 新增借料出库 明细
*
* @param odtl 借料出库 明细
* @return 结果
*/
@Override
public int insertOdtl(Odtl odtl)
{
return odtlMapper.insertOdtl(odtl);
}
/**
* 修改借料出库 明细
*
* @param odtl 借料出库 明细
* @return 结果
*/
@Override
public int updateOdtl(Odtl odtl)
{
return odtlMapper.updateOdtl(odtl);
}
/**
* 批量删除借料出库 明细
*
* @param Ids 需要删除的借料出库 明细主键
* @return 结果
*/
@Override
public int deleteOdtlByIds(Long[] Ids)
{
return odtlMapper.deleteOdtlByIds(Ids);
}
/**
* 删除借料出库 明细信息
*
* @param Id 借料出库 明细主键
* @return 结果
*/
@Override
public int deleteOdtlById(Long Id)
{
return odtlMapper.deleteOdtlById(Id);
}
@Override
public List<OdtlVO> queryAll() {
return odtlMapper.queryAll();
}
}

View File

@@ -1,137 +0,0 @@
package com.zg.project.Inventory.Visualization.service.impl;
import java.util.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.zg.project.Inventory.Visualization.mapper.PlnMapper;
import com.zg.project.Inventory.Visualization.domain.Pln;
import com.zg.project.Inventory.Visualization.service.IPlnService;
/**
* 计划履约Service业务层处理
*
* @author zg
* @date 2025-05-09
*/
@Service
public class PlnServiceImpl implements IPlnService
{
@Autowired
private PlnMapper plnMapper;
/**
* 查询计划履约
*
* @param id 计划履约主键
* @return 计划履约
*/
@Override
public Pln selectPlnById(Long id)
{
return plnMapper.selectPlnById(id);
}
/**
* 查询计划履约列表
*
* @param pln 计划履约
* @return 计划履约
*/
@Override
public List<Pln> selectPlnList(Pln pln)
{
return plnMapper.selectPlnList(pln);
}
/**
* 新增计划履约
*
* @param pln 计划履约
* @return 结果
*/
@Override
public int insertPln(Pln pln)
{
return plnMapper.insertPln(pln);
}
/**
* 修改计划履约
*
* @param pln 计划履约
* @return 结果
*/
@Override
public int updatePln(Pln pln)
{
return plnMapper.updatePln(pln);
}
/**
* 批量删除计划履约
*
* @param ids 需要删除的计划履约主键
* @return 结果
*/
@Override
public int deletePlnByIds(Long[] ids)
{
return plnMapper.deletePlnByIds(ids);
}
/**
* 删除计划履约信息
*
* @param id 计划履约主键
* @return 结果
*/
@Override
public int deletePlnById(Long id)
{
return plnMapper.deletePlnById(id);
}
@Override
public Map<String, Object> getAll() {
List<Pln> list = plnMapper.getAll();
Map<String, Object> result = new HashMap<>();
// 用来存储每月统计信息的列表
List<Map<String, Object>> monthStatsList = new ArrayList<>();
Map<String, Map<String, Object>> monthTempMap = new LinkedHashMap<>();
for (Pln p : list) {
String month = p.getIntme() != null && p.getIntme().length() >= 7 ? p.getIntme().substring(0, 7) : "未知";
Map<String, Object> m = monthTempMap.computeIfAbsent(month, k -> {
Map<String, Object> map = new HashMap<>();
map.put("month", k);
map.put("count", 0);
map.put("htsl", 0.0);
map.put("jhjhsl", 0.0);
map.put("jhjhje", 0.0);
return map;
});
m.put("count", (int) m.get("count") + 1);
m.put("htsl", (double) m.get("htsl") + toDouble(p.getHtsl()));
m.put("jhjhsl", (double) m.get("jhjhsl") + toDouble(p.getJhjhsl()));
m.put("jhjhje", (double) m.get("jhjhje") + toDouble(p.getJhjhje()));
}
// 转成 list 结构返回
monthStatsList.addAll(monthTempMap.values());
result.put("monthStats", monthStatsList);
return result;
}
private double toDouble(String val) {
try {
return val == null ? 0.0 : Double.parseDouble(val.trim());
} catch (Exception e) {
return 0.0;
}
}
}

View File

@@ -0,0 +1,218 @@
package com.zg.project.Inventory.domain.entity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.zg.framework.aspectj.lang.annotation.Excel;
import com.zg.framework.web.domain.BaseEntity;
/**
* 盘点任务对象 inventory_task
*
* @author zg
* @date 2025-06-16
*/
public class InventoryTask extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 主键ID */
private Long id;
/** 任务名称 */
@Excel(name = "任务名称")
private String taskName;
/** 仓库ID */
@Excel(name = "仓库ID")
private String warehouseId;
/** 场景ID */
@Excel(name = "场景ID")
private String sceneId;
/** 执行人用户ID */
@Excel(name = "执行人用户ID")
private Long userId;
/** 要求完成时间 */
@Excel(name = "要求完成时间")
private String requireTime;
/** 任务状态0待执行1已完成2已超时 */
@Excel(name = "任务状态", readConverterExp = "0=待执行1已完成2已超时")
private String status;
/** 任务类型0手持盘点1自动盘点 */
@Excel(name = "任务类型", readConverterExp = "0=手持盘点1自动盘点")
private String taskType;
/** 创建人 */
@Excel(name = "创建人")
private String createdBy;
/** 创建时间 */
@Excel(name = "创建时间")
private String createdAt;
/** 修改人 */
@Excel(name = "修改人")
private String updatedBy;
/** 修改时间 */
@Excel(name = "修改时间")
private String updatedAt;
/** 逻辑删除标志0正常 1删除 */
@Excel(name = "逻辑删除标志", readConverterExp = "0=正常,1=删除")
private String isDelete;
public void setId(Long id)
{
this.id = id;
}
public Long getId()
{
return id;
}
public void setTaskName(String taskName)
{
this.taskName = taskName;
}
public String getTaskName()
{
return taskName;
}
public void setWarehouseId(String warehouseId)
{
this.warehouseId = warehouseId;
}
public String getWarehouseId()
{
return warehouseId;
}
public void setSceneId(String sceneId)
{
this.sceneId = sceneId;
}
public String getSceneId()
{
return sceneId;
}
public void setUserId(Long userId)
{
this.userId = userId;
}
public Long getUserId()
{
return userId;
}
public void setRequireTime(String requireTime)
{
this.requireTime = requireTime;
}
public String getRequireTime()
{
return requireTime;
}
public void setStatus(String status)
{
this.status = status;
}
public String getStatus()
{
return status;
}
public void setTaskType(String taskType)
{
this.taskType = taskType;
}
public String getTaskType()
{
return taskType;
}
public void setCreatedBy(String createdBy)
{
this.createdBy = createdBy;
}
public String getCreatedBy()
{
return createdBy;
}
public void setCreatedAt(String createdAt)
{
this.createdAt = createdAt;
}
public String getCreatedAt()
{
return createdAt;
}
public void setUpdatedBy(String updatedBy)
{
this.updatedBy = updatedBy;
}
public String getUpdatedBy()
{
return updatedBy;
}
public void setUpdatedAt(String updatedAt)
{
this.updatedAt = updatedAt;
}
public String getUpdatedAt()
{
return updatedAt;
}
public void setIsDelete(String isDelete)
{
this.isDelete = isDelete;
}
public String getIsDelete()
{
return isDelete;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("taskName", getTaskName())
.append("warehouseId", getWarehouseId())
.append("sceneId", getSceneId())
.append("userId", getUserId())
.append("requireTime", getRequireTime())
.append("status", getStatus())
.append("taskType", getTaskType())
.append("remark", getRemark())
.append("createdBy", getCreatedBy())
.append("createdAt", getCreatedAt())
.append("updatedBy", getUpdatedBy())
.append("updatedAt", getUpdatedAt())
.append("isDelete", getIsDelete())
.toString();
}
}

View File

@@ -1,20 +1,20 @@
package com.zg.project.information.domain;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.zg.framework.aspectj.lang.annotation.Excel;
import com.zg.framework.web.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import java.util.Date;
/**
* 出库类型对象 stock_out_type
*
*
* @author zg
* @date 2025-06-09
*/
public class StockOutType extends BaseEntity
{
public class StockOutType extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 主键ID */
@@ -22,19 +22,19 @@ public class StockOutType extends BaseEntity
/** 出库类型名称 */
@Excel(name = "出库类型名称")
private String ckTypeName;
private String typeName;
/** 出库类型编号 */
@Excel(name = "出库类型编号")
private String ckTypeCode;
private String typeCode;
/** 创建人 */
@Excel(name = "创建人")
private String createdBy;
/** 创建时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date createdAt;
/** 修改人 */
@@ -42,105 +42,84 @@ public class StockOutType extends BaseEntity
private String updatedBy;
/** 修改时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "修改时间", width = 30, dateFormat = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "修改时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date updatedAt;
/** 是否删除0正常 1删除 */
@Excel(name = "是否删除", readConverterExp = "0=正常,1=删除")
private String isDelete;
public void setId(Long id)
{
// ===== Getter / Setter =====
public void setId(Long id) {
this.id = id;
}
public Long getId()
{
public Long getId() {
return id;
}
public void setCkTypeName(String ckTypeName)
{
this.ckTypeName = ckTypeName;
public void setTypeName(String typeName) {
this.typeName = typeName;
}
public String getTypeName() {
return typeName;
}
public String getCkTypeName()
{
return ckTypeName;
public void setTypeCode(String typeCode) {
this.typeCode = typeCode;
}
public String getTypeCode() {
return typeCode;
}
public void setCkTypeCode(String ckTypeCode)
{
this.ckTypeCode = ckTypeCode;
}
public String getCkTypeCode()
{
return ckTypeCode;
}
public void setCreatedBy(String createdBy)
{
public void setCreatedBy(String createdBy) {
this.createdBy = createdBy;
}
public String getCreatedBy()
{
public String getCreatedBy() {
return createdBy;
}
public void setCreatedAt(Date createdAt)
{
public void setCreatedAt(Date createdAt) {
this.createdAt = createdAt;
}
public Date getCreatedAt()
{
public Date getCreatedAt() {
return createdAt;
}
public void setUpdatedBy(String updatedBy)
{
public void setUpdatedBy(String updatedBy) {
this.updatedBy = updatedBy;
}
public String getUpdatedBy()
{
public String getUpdatedBy() {
return updatedBy;
}
public void setUpdatedAt(Date updatedAt)
{
public void setUpdatedAt(Date updatedAt) {
this.updatedAt = updatedAt;
}
public Date getUpdatedAt()
{
public Date getUpdatedAt() {
return updatedAt;
}
public void setIsDelete(String isDelete)
{
public void setIsDelete(String isDelete) {
this.isDelete = isDelete;
}
public String getIsDelete()
{
public String getIsDelete() {
return isDelete;
}
// ===== toString =====
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("ckTypeName", getCkTypeName())
.append("ckTypeCode", getCkTypeCode())
.append("createdBy", getCreatedBy())
.append("createdAt", getCreatedAt())
.append("updatedBy", getUpdatedBy())
.append("updatedAt", getUpdatedAt())
.append("isDelete", getIsDelete())
.toString();
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("typeName", getTypeName())
.append("typeCode", getTypeCode())
.append("createdBy", getCreatedBy())
.append("createdAt", getCreatedAt())
.append("updatedBy", getUpdatedBy())
.append("updatedAt", getUpdatedAt())
.append("isDelete", getIsDelete())
.toString();
}
}

View File

@@ -78,7 +78,7 @@ public class RkInfoController extends BaseController
}
/**
* 新增库存单据主
* 入库操作
*/
@PostMapping("/add")
@PreAuthorize("@ss.hasPermi('wisdom:stock:add')")
@@ -124,6 +124,25 @@ public class RkInfoController extends BaseController
return AjaxResult.success(result);
}
/**
* 撤销出库
* @param
* @return
*/
@PutMapping("/deleteByCkBillNo")
@PreAuthorize("@ss.hasPermi('wisdom:stock:deleteByBillNo')")
public AjaxResult deleteByCkBillNo(@RequestBody Map<String, String> body) {
String billNoCk = body.get("billNoCk");
if (billNoCk == null || billNoCk.trim().isEmpty()) {
return AjaxResult.error("参数错误缺少出库单据号billNoCk");
}
int result = rkInfoService.deleteByCkBillNo(billNoCk);
return result > 0
? AjaxResult.success("出库单据: " + billNoCk + " 撤销成功")
: AjaxResult.error("撤销失败,出库单据: " + billNoCk + " 不存在或已处理");
}
/**
* 出库操作
* @param

View File

@@ -26,4 +26,5 @@ public class StockOutDTO {
/** 出库列表 */
private List<StockOutItemDTO> ckList;
}

View File

@@ -105,4 +105,17 @@ public interface RkInfoMapper
* @param update
*/
void updateById(RkInfo update);
/**
* 根据出库单据号查询订单编号
* @param billNo
* @return
*/
List<String> selectSapNoByCkBillNo(String billNo);
/**
* 撤销出库
* @param billNoCk
*/
int cancelStockOut(String billNoCk);
}

View File

@@ -96,4 +96,10 @@ public interface IRkInfoService
* @return
*/
int batchOutStock(StockOutDTO dto);
/**
* 撤销出库
* @param
*/
int deleteByCkBillNo(String billNoCk);
}

View File

@@ -131,7 +131,7 @@ public class RkInfoServiceImpl implements IRkInfoService
}
// // ✅ 生成统一单据号
// String billNo = BillNoUtil.generateTodayBillNo("RK");
String billNo = BillNoUtil.generateTodayBillNo("RK");
//
// // ✅ 插入单据主表
// RkBill bill = new RkBill();
@@ -156,7 +156,7 @@ public class RkInfoServiceImpl implements IRkInfoService
entity.setCangku(dto.getCangku());
entity.setLihuoY(dto.getLihuoY());
// entity.setBillNo(billNo);
entity.setBillNo(billNo);
entity.setXj(item.getXj());
entity.setXmNo(item.getXmNo());
@@ -316,6 +316,17 @@ public class RkInfoServiceImpl implements IRkInfoService
rkInfoMapper.deleteByBillNo(billNo);
}
/**
* 撤销出库
* @param
*/
@Override
public int deleteByCkBillNo(String billNoCk) {
return rkInfoMapper.cancelStockOut(billNoCk);
}
/**
* 统计过期库存
* @return
@@ -338,6 +349,7 @@ public class RkInfoServiceImpl implements IRkInfoService
@Override
@Transactional(rollbackFor = Exception.class)
public int batchOutStock(StockOutDTO dto) {
if (dto.getCkList() == null || dto.getCkList().isEmpty()) {
throw new ServiceException("出库数据不能为空");
}
@@ -349,26 +361,25 @@ public class RkInfoServiceImpl implements IRkInfoService
String billNo = BillNoUtil.generateTodayBillNo("CK");
// Step 2: 构造出库主单 rk_bill
RkBill bill = new RkBill();
bill.setBillNo(billNo);
bill.setCkType(dto.getCkType());
bill.setCkTime(dto.getLyTime());
bill.setCkLihuoY(dto.getCkLihuoY());
bill.setTeamCode(dto.getTeamCode());
bill.setIsChuku("1");
bill.setIsDelete("0");
bill.setCreateBy(username);
bill.setCreateTime(now);
bill.setUpdateBy(username);
bill.setUpdateTime(now);
rkBillMapper.insertRkBill(bill);
// RkBill bill = new RkBill();
// bill.setBillNo(billNo);
// bill.setCkType(dto.getCkType());
// bill.setCkTime(dto.getLyTime());
// bill.setCkLihuoY(dto.getCkLihuoY());
// bill.setTeamCode(dto.getTeamCode());
// bill.setIsChuku("1");
// bill.setIsDelete("0");
// bill.setCreateBy(username);
// bill.setCreateTime(now);
// bill.setUpdateBy(username);
// bill.setUpdateTime(now);
//
// rkBillMapper.insertRkBill(bill);
// Step 3: 批量更新 rk_info出库状态 + 单号 + 单据ID
for (StockOutItemDTO item : dto.getCkList()) {
RkInfo update = new RkInfo();
update.setId(item.getId());
update.setBillNoCk(bill.getBillNo());
update.setBillNoCk(billNo);
update.setIsChuku("1");
update.setCkType(dto.getCkType());