Merge remote-tracking branch 'origin/main'

This commit is contained in:
lsymicc
2025-12-08 15:28:32 +08:00
35 changed files with 1678 additions and 1395 deletions

View File

@@ -28,6 +28,7 @@ public interface IToErpService {
String login();
AjaxResult callErp(ReceiveOutStockConfirm receiveOutStockConfirm);
AjaxResult receiveOutStockList();

View File

@@ -38,6 +38,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.TimeUnit;
@@ -130,10 +131,10 @@ public class ToErpServiceImpl implements IToErpService {
AspResponse responseBean = JSONUtil.toBean(body, AspResponse.class);
for (List<String> row : responseBean.getBody().getSource().getTable().getRows()) {
BasProduct product = new BasProduct();
product.setProductGuid(row.get(0));
product.setProductId(row.get(0));
product.setProductGuid(row.get(2));
product.setProductId(row.get(2));
product.setProductName(row.get(1));
product.setCargoNo(row.get(2));
product.setCargoNo(row.get(0));
product.setSpec(row.get(3));
product.setUnit(row.get(4));
product.setSpare1(row.get(5));
@@ -283,9 +284,12 @@ public class ToErpServiceImpl implements IToErpService {
outStockout.setWarehouseId(Convert.toStr(row.get(2)));
outStockout.setErpStockoutId(Convert.toStr(row.get(0)));
outStockout.setStockoutGuid(stockOutId);
outStockout.setCreateDate(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
outStockout.setCreateDate(Convert.toStr(row.get(3)));
outStockout.setOutType("1");
outStockout.setStatus("1");
outStockout.setFID(Convert.toStr(row.get(1)));
outStockout.setStockoutSource("2");
outStockout.setCustomerNo(Convert.toStr(row.get(24)));
ErpOutStock erpOutStock1 = erpOutStockService.selectErpOutStockByStockoutId(erpOutStock.getStockoutId());
OutStockout outStockout1 = outStockoutService.selectOutStockoutByStockoutGuid(outStockout.getStockoutGuid());
if (ObjUtil.isNotNull(erpOutStock1)){
@@ -346,6 +350,8 @@ public class ToErpServiceImpl implements IToErpService {
outStockoutDetail.setQuantity(detail.getQuantity());
outStockoutDetail.setProductName(detail.getProductName());
outStockoutDetail.setFid(Convert.toStr(detail.getId()));
outStockoutDetail.setAssignNum(BigDecimal.valueOf(0));
outStockoutDetail.setAllotQuantity(BigDecimal.valueOf(0));
ErpOutStockDetail erpOutStockDetail1 = erpOutStockDetailService.selectErpOutStockDetailById(detail.getId());
OutStockoutDetail outStockoutDetail1 = outStockoutDetailService.selectOutStockoutDetailByStockoutDetailId(outStockoutDetail.getStockoutDetailId());
if (ObjUtil.isNotNull(erpOutStockDetail1)){

View File

@@ -107,6 +107,18 @@ public class KpiController extends BaseController {
return success(kpiService.getRoadways(warehouseId));
}
/**
* 获取货位楼层数据
*
* @param warehouseId 仓库ID
* @return 货位楼层数据
*/
@GetMapping("/getFloors")
public AjaxResult getFloors(@RequestParam("warehouseId") String warehouseId){
return success(kpiService.getFloors(warehouseId));
}
/**
* 获取货位排数据
*
@@ -116,23 +128,22 @@ public class KpiController extends BaseController {
*/
@GetMapping("/getPlatoons")
public AjaxResult getPlatoons(@RequestParam("warehouseId") String warehouseId,
@RequestParam("roadwayId") String roadwayId){
return success(kpiService.getPlatoons(warehouseId,roadwayId));
@RequestParam("theFloor") String theFloor){
return success(kpiService.getPlatoons(warehouseId,theFloor));
}
/**
* 获取库存平面图
*
* @param warehouseId 仓库ID
* @param roadwayId 巷道ID
* @param thePlatoon 排
* @param theFloor 层数
* @return 库存平面图数据
*/
@GetMapping("/getChartData")
public AjaxResult getChartData(@RequestParam("warehouseId") String warehouseId,
@RequestParam("roadwayId") String roadwayId,
@RequestParam("thePlatoon") String thePlatoon){
return success(kpiService.getChartData(warehouseId,roadwayId,thePlatoon));
@RequestParam("theFloor") String theFloor
){
return success(kpiService.getChartData(warehouseId,theFloor));
}
/**

View File

@@ -40,7 +40,7 @@ public interface KpiService {
Map<String, Object> getPlatoons(String warehouseId, String roadwayId);
Map<String,Object> getChartData(String warehouseId, String roadwayId, String thePlatoon);
Map<String,Object> getChartData(String warehouseId, String theFloor);
Map<String,Object> getChartMag(String warehouseId, String theColumn, String theFloor, String thePlatoon);
@@ -48,4 +48,6 @@ public interface KpiService {
// 新增:根据仓库和巷道统计各状态货位数量
Map<String, Object> getSpaceStatusCounts(String warehouseId, String roadwayId);
Map<String, Object> getFloors(String warehouseId);
}

View File

@@ -33,7 +33,7 @@ public class KpiServiceImpl implements KpiService
@Autowired
private BasCargoSpaceMapper basCargoSpaceMapper;
@Autowired
private BasStockMapper basStockMapper;
/**
@@ -53,7 +53,7 @@ public class KpiServiceImpl implements KpiService
Map<String, Integer> roadwayCount = new HashMap<>();
for (MydoJob job : list) {
// 检查入库作业标识是否小于10
// 检查入库作业标识是否小于20
if (job.getInOrOut() == null || Integer.parseInt(job.getInOrOut()) >= 20) {
continue;
}
@@ -317,6 +317,36 @@ public class KpiServiceImpl implements KpiService
return res;
}
@Override
public Map<String, Object> getFloors(String warehouseId) {
Map<String, Object> response = new HashMap<>();
// 查询指定仓库和巷道的排号信息
BasCargoSpace queryParams = new BasCargoSpace();
queryParams.setWarehouseId(warehouseId);
List<BasCargoSpace> list = basCargoSpaceMapper.selectBasCargoSpaceList(queryParams);
// 使用TreeSet去重并排序排号
Set<Long> platoonSet = new TreeSet<>();
for (BasCargoSpace space : list) {
if (space.getTheFloor() != null) {
platoonSet.add(space.getTheFloor());
}
}
// 转换为前端下拉框所需的格式
List<Map<String, String>> platoons = new ArrayList<>();
for (Long platoon : platoonSet) {
Map<String, String> platoonMap = new HashMap<>();
platoonMap.put("value", platoon.toString());
platoonMap.put("label", platoon + "层");
platoons.add(platoonMap);
}
response.put("data", platoons);
return response;
}
@Override
public Map<String, Object> getRoadways(String warehouseId){
Map<String, Object> response = new HashMap<>();
@@ -348,13 +378,13 @@ public class KpiServiceImpl implements KpiService
}
@Override
public Map<String,Object> getPlatoons(String warehouseId, String roadwayId){
public Map<String,Object> getPlatoons(String warehouseId, String theFloor){
Map<String, Object> response = new HashMap<>();
// 查询指定仓库和巷道的排号信息
BasCargoSpace queryParams = new BasCargoSpace();
queryParams.setWarehouseId(warehouseId);
queryParams.setRoadwayId(roadwayId);
queryParams.setTheFloor(Long.valueOf(theFloor));
List<BasCargoSpace> list = basCargoSpaceMapper.selectBasCargoSpaceList(queryParams);
// 使用TreeSet去重并排序排号
@@ -379,14 +409,11 @@ public class KpiServiceImpl implements KpiService
}
@Override
public Map<String,Object> getChartData(String warehouseId, String roadwayId, String thePlatoon) {
public Map<String,Object> getChartData(String warehouseId, String theFloor) {
// 查询指定仓库、巷道和排号的货位信息
BasCargoSpace queryParams = new BasCargoSpace();
queryParams.setWarehouseId(warehouseId);
queryParams.setRoadwayId(roadwayId);
if (thePlatoon != null) {
queryParams.setThePlatoon(Long.parseLong(thePlatoon));
}
queryParams.setTheFloor(Long.valueOf(theFloor));
List<BasCargoSpace> list = basCargoSpaceMapper.selectBasCargoSpaceList(queryParams);
// 用于存储不同状态的货位坐标
@@ -405,11 +432,11 @@ public class KpiServiceImpl implements KpiService
for (BasCargoSpace space : list) {
// 收集列和层信息
columnSet.add(space.getTheColumn());
floorSet.add(space.getTheFloor());
floorSet.add(space.getThePlatoon());
// 根据状态分类处理
if (space.getStatus() != null) {
String coordinate = "[" + space.getTheColumn() + "," + space.getTheFloor() + "," + space.getStatus() + "],";
String coordinate = "[" + space.getTheColumn() + "," + space.getThePlatoon() + "," + space.getStatus() + "],";
switch (Integer.parseInt(space.getStatus())) {
case 1: empty += coordinate; break;
case 2: full += coordinate; break;
@@ -424,15 +451,19 @@ public class KpiServiceImpl implements KpiService
// 构建列和层的标签
StringBuilder columnLabels = new StringBuilder();
for (Long col : columnSet) {
columnLabels.append("'").append(col).append(MessageUtils.message("kpi.spacePlan.column")).append("',");
columnLabels.append("'").append(col).append("列").append("',");
}
String column = "[" + columnLabels.toString() + "]";
String column = "[" + columnLabels + "]";
StringBuilder floorLabels = new StringBuilder();
for (Long floor : floorSet) {
floorLabels.append("'").append(floor).append(MessageUtils.message("kpi.spacePlan.floor")).append("',");
if (floor==7){
floorLabels.append("'").append(6).append("排").append("',");
}
floorLabels.append("'").append(floor).append("排").append("',");
}
String floor = "[" + floorLabels.toString() + "]";
//floorLabels.append("6排");
String floor = "[" + floorLabels + "]";
// 返回结果
Map<String, Object> map = new HashMap<>();
@@ -469,7 +500,7 @@ public class KpiServiceImpl implements KpiService
info.append("货位名称:").append(space.getCargoSpaceName()).append("<br>");
info.append("是否锁定:").append("Y".equals(space.getLocked()) ? "是" : "否").append("<br>");
info.append("托盘条码:").append(space.getTrayCode() != null ? space.getTrayCode() : "无").append("<br>");
// 根据cargoSpaceId查询BasStock表,获取productId和productName
BasStock stockQuery = new BasStock();
stockQuery.setCargoSpaceId(space.getCargoSpaceId());
@@ -489,7 +520,7 @@ public class KpiServiceImpl implements KpiService
}
@Override
public AjaxResult getInAnalysisByData(String warehouseId, String startTime, String endTime,String inOut) {
public AjaxResult getInAnalysisByData(String warehouseId, String startTime, String endTime, String inOut) {
Map<String,Object> res = new HashMap<>();
MydoJob mydoJobParam = new MydoJob();
mydoJobParam.setWarehouseId(warehouseId);
@@ -497,47 +528,92 @@ public class KpiServiceImpl implements KpiService
mydoJobParam.setCreateLeftTime(startTime);
mydoJobParam.setCreateRightTime(endTime);
mydoJobParam.setInOut(inOut);
List<DateTime> datesBetween = DateUtil.rangeToList(DateUtil.parseDate(startTime), DateUtil.parseDate(endTime), DateField.DAY_OF_MONTH);
List<MydoJob> list = mydoJobFinishMapper.selectMydoJobFinishListByMydoJob(mydoJobParam);
// 获取所有巷道ID(1和2)
List<String> roadwayIds = Arrays.asList("1", "2");
// 收集所有涉及的楼层
Set<Long> floorSet = new HashSet<>();
Map<String, BasCargoSpace> cargoSpaceCache = new HashMap<>();
// 遍历作业记录,收集涉及的货位ID并查询对应楼层
for (MydoJob job : list) {
if (job.getCargoSpaceId() != null) {
// 检查缓存中是否有该货位信息
if (!cargoSpaceCache.containsKey(job.getCargoSpaceId())) {
// 使用现有的查询方法查询货位信息
BasCargoSpace queryParam = new BasCargoSpace();
queryParam.setCargoSpaceId(job.getCargoSpaceId());
List<BasCargoSpace> cargoSpaces = basCargoSpaceMapper.selectBasCargoSpaceList(queryParam);
if (!cargoSpaces.isEmpty()) {
BasCargoSpace cargoSpace = cargoSpaces.get(0);
cargoSpaceCache.put(job.getCargoSpaceId(), cargoSpace);
if (cargoSpace.getTheFloor() != null) {
floorSet.add(cargoSpace.getTheFloor());
}
}
} else {
BasCargoSpace cachedSpace = cargoSpaceCache.get(job.getCargoSpaceId());
if (cachedSpace.getTheFloor() != null) {
floorSet.add(cachedSpace.getTheFloor());
}
}
}
}
// 将楼层排序
List<Long> floors = new ArrayList<>(floorSet);
Collections.sort(floors);
// 生成日期范围
List<DateTime> datesBetween = DateUtil.rangeToList(DateUtil.parseDate(startTime), DateUtil.parseDate(endTime), DateField.DAY_OF_MONTH);
List<String> xAxis = new ArrayList<>();
List<Map<String, Object>> series = new ArrayList<>();
// 为每个巷道创建一个系列
for (String roadwayId : roadwayIds) {
// 为每个楼层创建一个系列
for (Long floor : floors) {
Map<String, Object> seriesItem = new HashMap<>();
seriesItem.put("name", roadwayId + "号巷道");
seriesItem.put("name", floor + "层");
seriesItem.put("type", "line");
List<Long> data = new ArrayList<>();
seriesItem.put("data", data);
series.add(seriesItem);
}
// 按日期统计每个巷道的数量
// 按日期统计每个楼层的数量
for (DateTime dateTime : datesBetween) {
xAxis.add(DateUtil.format(dateTime, "yyyy-MM-dd"));
// 统计每个巷道在当天的数量
for (int i = 0; i < roadwayIds.size(); i++) {
String roadwayId = roadwayIds.get(i);
long count = list.stream()
.filter(mydoJob -> roadwayId.equals(mydoJob.getRoadwayId())
&& DateUtil.isIn(mydoJob.getCreateTime(), DateUtil.beginOfDay(dateTime), DateUtil.endOfDay(dateTime)))
.count();
// 统计每个楼层在当天的数量
for (int i = 0; i < floors.size(); i++) {
Long floor = floors.get(i);
long count = 0;
// 遍历作业记录,统计该楼层在当天的作业数量
for (MydoJob job : list) {
if (DateUtil.isIn(job.getCreateTime(), DateUtil.beginOfDay(dateTime), DateUtil.endOfDay(dateTime))) {
// 查找该作业对应的货位是否属于当前楼层
if (job.getCargoSpaceId() != null && cargoSpaceCache.containsKey(job.getCargoSpaceId())) {
BasCargoSpace space = cargoSpaceCache.get(job.getCargoSpaceId());
if (space.getTheFloor() != null && space.getTheFloor().equals(floor)) {
count++;
}
}
}
}
@SuppressWarnings("unchecked")
List<Long> data = (List<Long>) series.get(i).get("data");
data.add(count);
}
}
res.put("xAxis", xAxis);
res.put("series", series);
return AjaxResult.success(res);
}
}

View File

@@ -40,10 +40,10 @@ public class OutStockoutController extends BaseController {
public TableDataInfo list(OutStockout outStockout) {
startPage();
List<OutStockout> list = new ArrayList<>();
if(Integer.parseInt(outStockout.getStatus())<4){
list =outStockoutService.selectOutStockoutList(outStockout);
}else{
list=outStockoutFinishService.selectOutStockoutFinishListByOutStockout(outStockout);
if (Integer.parseInt(outStockout.getStatus()) < 4) {
list = outStockoutService.selectOutStockoutList(outStockout);
} else {
list = outStockoutFinishService.selectOutStockoutFinishListByOutStockout(outStockout);
}
return getDataTable(list);
}

View File

@@ -94,8 +94,17 @@ public class OutStockout extends BaseEntity
private String remark;
private String theme;
private List<String> typeData;
public String getTheme() {
return theme;
}
public void setTheme(String theme) {
this.theme = theme;
}
public String getSupplierName() {
return supplierName;

View File

@@ -135,7 +135,7 @@ public class OutStockoutServiceImpl implements IOutStockoutService
String username = SecurityContextHolder.getContext().getAuthentication().getName();
outStockout.setCreateManId(username);
outStockout.setStatus("1");
outStockout.setStockoutSource("0");
outStockout.setStockoutSource("1");
// outStockout.setWarehouseId("01");
for (int i = 0; i < detailList.size(); i++) {
OutStockoutDetail outStockoutDetail = detailList.get(i);
@@ -155,7 +155,7 @@ public class OutStockoutServiceImpl implements IOutStockoutService
public String updateOutStockoutStatus(String[] stockoutIds, String status, String newStatus,String exitId) {
HashMap<String, String> map = new HashMap<>();
StringBuilder stringBuilder = new StringBuilder();
if (status.equals("4")){
if ("4".equals(status)){
for(String stockoutId:stockoutIds){
ReceiveOutStockConfirm receiveOutStockConfirm = new ReceiveOutStockConfirm();
OutStockout outStockout = selectOutStockoutByStockoutGuid(stockoutId);

View File

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

View File

@@ -9,135 +9,29 @@ import com.ruoyi.common.core.domain.BaseEntity;
* 库存物资对象 view_product_and_stock
*
* @author ruoyi
* @date 2025-10-21
* @date 2025-12-08
*/
public class ViewProductAndStock
public class ViewProductAndStock extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 序号 */
@Excel(name = "序号")
/** 唯一id */
@Excel(name = "唯一id")
private Long onlyIdentity;
/** 物料编码 */
@Excel(name = "物料编码")
/** 产品编码 */
@Excel(name = "产品编码")
private String productId;
/** 批次 */
@Excel(name = "批次")
private String lotNo;
/** 物料名称 */
@Excel(name = "物料名称")
/** 产品名称 */
@Excel(name = "产品名称")
private String productName;
/** 库存数量 */
@Excel(name = "库存数量")
private String quantity;
/** 仓库 */
@Excel(name = "仓库")
private String warehouseId;
/** 来源 */
@Excel(name = "来源")
private String spare1;
/** 套账 */
@Excel(name = "套账")
private String spare3;
/** 用途 */
@Excel(name = "用途")
private String spare4;
/** 台次 */
@Excel(name = "台次")
private String spare5;
/** 入库单价 */
@Excel(name = "入库单价")
private String spare6;
/** 状态 */
@Excel(name = "状态")
private String voltage;
/** 件次 */
@Excel(name = "件次")
private String power;
/** 供应商 */
// @Excel(name = "供应商")
private String phase;
private String supplierName;
/** 管理号 */
@Excel(name = "管理号")
private String distribution;
/** 合同号 */
@Excel(name = "合同号")
private String orderId;
/** 质量等级 */
@Excel(name = "质量等级")
private String spare8;
/** 单价 */
@Excel(name = "单价")
private String price;
/** 图号 */
@Excel(name = "图号")
private String cargoNo;
/** 物料状态 */
@Excel(name = "物料状态")
private String productStatus;
/** 常用编码 */
@Excel(name = "常用编码")
private String parentId;
/** 启用标识 */
@Excel(name = "启用标识")
private String spare7;
@Excel(name = "创建时间")
private String createTime;
/** 创建用户 */
@Excel(name = "创建用户")
private String createSys;
/** 规格型号 */
@Excel(name = "规格型号")
private String spec;
/** 单位 */
@Excel(name = "单位")
private String unit;
public String getSupplierName() {
return supplierName;
}
public void setSupplierName(String supplierName) {
this.supplierName = supplierName;
}
public String getCreateTime() {
return createTime;
}
public void setCreateTime(String createTime) {
this.createTime = createTime;
}
public void setOnlyIdentity(Long onlyIdentity)
public void setOnlyIdentity(Long onlyIdentity)
{
this.onlyIdentity = onlyIdentity;
}
@@ -157,16 +51,6 @@ public class ViewProductAndStock
return productId;
}
public void setLotNo(String lotNo)
{
this.lotNo = lotNo;
}
public String getLotNo()
{
return lotNo;
}
public void setProductName(String productName)
{
this.productName = productName;
@@ -187,235 +71,13 @@ public class ViewProductAndStock
return quantity;
}
public void setWarehouseId(String warehouseId)
{
this.warehouseId = warehouseId;
}
public String getWarehouseId()
{
return warehouseId;
}
public void setSpare1(String spare1)
{
this.spare1 = spare1;
}
public String getSpare1()
{
return spare1;
}
public void setSpare3(String spare3)
{
this.spare3 = spare3;
}
public String getSpare3()
{
return spare3;
}
public void setSpare4(String spare4)
{
this.spare4 = spare4;
}
public String getSpare4()
{
return spare4;
}
public void setSpare5(String spare5)
{
this.spare5 = spare5;
}
public String getSpare5()
{
return spare5;
}
public void setSpare6(String spare6)
{
this.spare6 = spare6;
}
public String getSpare6()
{
return spare6;
}
public void setVoltage(String voltage)
{
this.voltage = voltage;
}
public String getVoltage()
{
return voltage;
}
public void setPower(String power)
{
this.power = power;
}
public String getPower()
{
return power;
}
public void setPhase(String phase)
{
this.phase = phase;
}
public String getPhase()
{
return phase;
}
public void setDistribution(String distribution)
{
this.distribution = distribution;
}
public String getDistribution()
{
return distribution;
}
public void setOrderId(String orderId)
{
this.orderId = orderId;
}
public String getOrderId()
{
return orderId;
}
public void setSpare8(String spare8)
{
this.spare8 = spare8;
}
public String getSpare8()
{
return spare8;
}
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 setProductStatus(String productStatus)
{
this.productStatus = productStatus;
}
public String getProductStatus()
{
return productStatus;
}
public void setParentId(String parentId)
{
this.parentId = parentId;
}
public String getParentId()
{
return parentId;
}
public void setSpare7(String spare7)
{
this.spare7 = spare7;
}
public String getSpare7()
{
return spare7;
}
public void setCreateSys(String createSys)
{
this.createSys = createSys;
}
public String getCreateSys()
{
return createSys;
}
public void setSpec(String spec)
{
this.spec = spec;
}
public String getSpec()
{
return spec;
}
public void setUnit(String unit)
{
this.unit = unit;
}
public String getUnit()
{
return unit;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("onlyIdentity", getOnlyIdentity())
.append("productId", getProductId())
.append("lotNo", getLotNo())
.append("productName", getProductName())
.append("quantity", getQuantity())
.append("warehouseId", getWarehouseId())
.append("spare1", getSpare1())
.append("spare3", getSpare3())
.append("spare4", getSpare4())
.append("spare5", getSpare5())
.append("spare6", getSpare6())
.append("voltage", getVoltage())
.append("power", getPower())
.append("phase", getPhase())
.append("distribution", getDistribution())
.append("orderId", getOrderId())
.append("spare8", getSpare8())
.append("price", getPrice())
.append("cargoNo", getCargoNo())
.append("productStatus", getProductStatus())
.append("parentId", getParentId())
.append("spare7", getSpare7())
.append("createTime", getCreateTime())
.append("createSys", getCreateSys())
.append("spec", getSpec())
.append("unit", getUnit())
.toString();
}
}

View File

@@ -5,15 +5,15 @@ import com.ruoyi.out.productAndStock.domain.ViewProductAndStock;
/**
* 库存物资Mapper接口
*
*
* @author ruoyi
* @date 2025-09-12
* @date 2025-12-08
*/
public interface ViewProductAndStockMapper
public interface ViewProductAndStockMapper
{
/**
* 查询库存物资
*
*
* @param onlyIdentity 库存物资主键
* @return 库存物资
*/
@@ -21,7 +21,7 @@ public interface ViewProductAndStockMapper
/**
* 查询库存物资列表
*
*
* @param viewProductAndStock 库存物资
* @return 库存物资集合
*/
@@ -29,7 +29,7 @@ public interface ViewProductAndStockMapper
/**
* 新增库存物资
*
*
* @param viewProductAndStock 库存物资
* @return 结果
*/
@@ -37,7 +37,7 @@ public interface ViewProductAndStockMapper
/**
* 修改库存物资
*
*
* @param viewProductAndStock 库存物资
* @return 结果
*/
@@ -45,7 +45,7 @@ public interface ViewProductAndStockMapper
/**
* 删除库存物资
*
*
* @param onlyIdentity 库存物资主键
* @return 结果
*/
@@ -53,11 +53,9 @@ public interface ViewProductAndStockMapper
/**
* 批量删除库存物资
*
*
* @param onlyIdentitys 需要删除的数据主键集合
* @return 结果
*/
public int deleteViewProductAndStockByOnlyIdentitys(Long[] onlyIdentitys);
List<ViewProductAndStock> selectViewProductAndStockPdList(ViewProductAndStock viewProductAndStock);
}

View File

@@ -5,15 +5,15 @@ import com.ruoyi.out.productAndStock.domain.ViewProductAndStock;
/**
* 库存物资Service接口
*
*
* @author ruoyi
* @date 2025-09-12
* @date 2025-12-08
*/
public interface IViewProductAndStockService
public interface IViewProductAndStockService
{
/**
* 查询库存物资
*
*
* @param onlyIdentity 库存物资主键
* @return 库存物资
*/
@@ -21,7 +21,7 @@ public interface IViewProductAndStockService
/**
* 查询库存物资列表
*
*
* @param viewProductAndStock 库存物资
* @return 库存物资集合
*/
@@ -29,7 +29,7 @@ public interface IViewProductAndStockService
/**
* 新增库存物资
*
*
* @param viewProductAndStock 库存物资
* @return 结果
*/
@@ -37,7 +37,7 @@ public interface IViewProductAndStockService
/**
* 修改库存物资
*
*
* @param viewProductAndStock 库存物资
* @return 结果
*/
@@ -45,7 +45,7 @@ public interface IViewProductAndStockService
/**
* 批量删除库存物资
*
*
* @param onlyIdentitys 需要删除的库存物资主键集合
* @return 结果
*/
@@ -53,11 +53,9 @@ public interface IViewProductAndStockService
/**
* 删除库存物资信息
*
*
* @param onlyIdentity 库存物资主键
* @return 结果
*/
public int deleteViewProductAndStockByOnlyIdentity(Long onlyIdentity);
List<ViewProductAndStock> selectViewProductAndStockPdList(ViewProductAndStock viewProductAndStock);
}

View File

@@ -9,19 +9,19 @@ import com.ruoyi.out.productAndStock.service.IViewProductAndStockService;
/**
* 库存物资Service业务层处理
*
*
* @author ruoyi
* @date 2025-09-12
* @date 2025-12-08
*/
@Service
public class ViewProductAndStockServiceImpl implements IViewProductAndStockService
public class ViewProductAndStockServiceImpl implements IViewProductAndStockService
{
@Autowired
private ViewProductAndStockMapper viewProductAndStockMapper;
/**
* 查询库存物资
*
*
* @param onlyIdentity 库存物资主键
* @return 库存物资
*/
@@ -33,7 +33,7 @@ public class ViewProductAndStockServiceImpl implements IViewProductAndStockServi
/**
* 查询库存物资列表
*
*
* @param viewProductAndStock 库存物资
* @return 库存物资
*/
@@ -45,7 +45,7 @@ public class ViewProductAndStockServiceImpl implements IViewProductAndStockServi
/**
* 新增库存物资
*
*
* @param viewProductAndStock 库存物资
* @return 结果
*/
@@ -57,7 +57,7 @@ public class ViewProductAndStockServiceImpl implements IViewProductAndStockServi
/**
* 修改库存物资
*
*
* @param viewProductAndStock 库存物资
* @return 结果
*/
@@ -69,7 +69,7 @@ public class ViewProductAndStockServiceImpl implements IViewProductAndStockServi
/**
* 批量删除库存物资
*
*
* @param onlyIdentitys 需要删除的库存物资主键
* @return 结果
*/
@@ -81,7 +81,7 @@ public class ViewProductAndStockServiceImpl implements IViewProductAndStockServi
/**
* 删除库存物资信息
*
*
* @param onlyIdentity 库存物资主键
* @return 结果
*/
@@ -90,10 +90,4 @@ public class ViewProductAndStockServiceImpl implements IViewProductAndStockServi
{
return viewProductAndStockMapper.deleteViewProductAndStockByOnlyIdentity(onlyIdentity);
}
@Override
public List<ViewProductAndStock> selectViewProductAndStockPdList(ViewProductAndStock viewProductAndStock) {
return viewProductAndStockMapper.selectViewProductAndStockPdList(viewProductAndStock);
}
}

View File

@@ -90,6 +90,15 @@ public class BasStockFreezeRecord extends BaseEntity
/** 物料guid */
// @Excel(name = "${stock.Freeze.productGuid}")
private String productGuid;
/** 单位名称 */
@Excel(name = "单位名称")
private String unitName;
/** 产品型号 */
@Excel(name = "产品型号")
private String productModel;
// 创建时间
@Excel(name = "操作时间", dateFormat = "yyyy-MM-dd HH:mm:ss", width = 30)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")

View File

@@ -101,6 +101,14 @@ public class BasStockMaintainRecord extends BaseEntity
// @Excel(name = "${stock.Maintain.barCodeQuantity}")
private String barCodeQuantity;
/** 单位名称 */
@Excel(name = "单位名称")
private String unitName;
/** 产品型号 */
@Excel(name = "产品型号")
private String productModel;
/** 物料guid */
// @Excel(name = "${stock.Maintain.productGuid}")
private String productGuid;

View File

@@ -81,8 +81,7 @@ public class BasStock extends BaseEntity {
private String spare8;
private String voltage;
@Excel(name = "件次",sort=18)
private String power;
private String phase;
private String netWeight;
private String grossWeight;
@@ -217,4 +216,112 @@ public class BasStock extends BaseEntity {
private String cargoNo;
@Excel(name = "备注",sort=31)
private String remark;
private String power;
/** 产品型号 */
@Excel(name = "产品型号")
private String productModel;
// ---------- 产品明细 pd_ 字段 (来自产品明细 JSON) ----------
/** 入库明细ID */
private String pdDetailId;
/** 产品名称(明细) */
private String pdProductName;
/** 型号(明细) */
private String pdModel;
/** 单位(明细) */
private String pdUnit;
/** 单价(明细) */
private String pdUnitPrice;
/** 辅助单位(明细) */
private String pdAuxUnit;
/** 产品属性1(明细) */
private String pdAttr1;
/** 产品属性2(明细) */
private String pdAttr2;
/** 数量(明细) */
private String pdQuantity;
/** 入库数(明细) */
private String pdInQty;
/** 辅助数量(明细) */
private String pdAuxQuantity;
/** 总价(明细) */
private String pdTotalPrice;
/** 成本单价(明细) */
private String pdCostUnitPrice;
/** 总价2(明细) */
private String pdTotalPrice2;
/** 核算成本总价(明细) */
private String pdAccountCostTotal;
/** 核算数量(明细) */
private String pdAccountQuantity;
/** 核算状态(明细) */
private String pdAccountStatus;
/** 批号(明细) */
private String pdBatchNo;
/** 序列号(明细) */
private String pdSerialNo;
/** 生产日期(明细) */
private String pdProdDate;
/** 有效日期(明细) */
private String pdValidDate;
/** 到货日期(明细) */
private String pdArrivalDate;
/** 备注(明细) */
private String pdRemark;
/** 自定义字段1(明细) */
private String pdCustom1;
/** 自定义字段2(明细) */
private String pdCustom2;
/** 自定义字段3(明细) */
private String pdCustom3;
/** 自定义字段4(明细) */
private String pdCustom4;
/** 自定义字段5(明细) */
private String pdCustom5;
/** 自定义字段6(明细) */
private String pdCustom6;
/** 装卸工(明细) */
private String pdLoader;
// ---------- SQL 脚本中新增的其他字段 ----------
/** 集合数据(JSON/序列化) */
private String Rows;
/** 入库主题 */
private String Title;
/** 入库id */
private String Kuin;
/** 入库状态 */
private String Complete1;
/** 申请人 */
private String Cateid;
/** 申请日期 */
private String Date3;
/** 确认日期 */
private String Date5;
/** 审批人 */
private String Catein;
/** 审批意见 */
private String Intro2;
/** 入库备注 */
private String Intro;
/** 关联其他单据id */
private String Caigou;
/** 添加时间 */
private String Date7;
/** 库管id */
private String Kg;
/** 入库类别 */
private String Sort1;
/** 入库编号 */
private String Rkbh;
/** 审批状态 */
private String Status;
/** 产品明细(JSON/集合) */
private String KuinList;
/** 客户名称 */
private String sysIcusIInheritIdIidI413;
/** 磅单编号 */
private String sysIcusIInheritIdIidI414;
/** 入库车号 */
private String sysIcusIInheritIdIidI415;
}