diff --git a/src/main/java/com/zg/framework/websocket/config/DeviceSessionCleaner.java b/src/main/java/com/zg/framework/websocket/config/DeviceSessionCleaner.java index 300488b..06ab03a 100644 --- a/src/main/java/com/zg/framework/websocket/config/DeviceSessionCleaner.java +++ b/src/main/java/com/zg/framework/websocket/config/DeviceSessionCleaner.java @@ -1,7 +1,7 @@ package com.zg.framework.websocket.config; -import com.zg.project.Inventory.AutoInventory.service.IRfidService; -import com.zg.project.Inventory.AutoInventory.utils.SpringContextUtils; +import com.zg.project.inventory.AutoInventory.service.IRfidService; +import com.zg.project.inventory.AutoInventory.utils.SpringContextUtils; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; diff --git a/src/main/java/com/zg/framework/websocket/config/WebSocketServer.java b/src/main/java/com/zg/framework/websocket/config/WebSocketServer.java index 45ed8ff..eb43aba 100644 --- a/src/main/java/com/zg/framework/websocket/config/WebSocketServer.java +++ b/src/main/java/com/zg/framework/websocket/config/WebSocketServer.java @@ -2,8 +2,8 @@ package com.zg.framework.websocket.config; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; -import com.zg.project.Inventory.AutoInventory.service.IRfidService; -import com.zg.project.Inventory.AutoInventory.utils.SpringContextUtils; +import com.zg.project.inventory.AutoInventory.service.IRfidService; +import com.zg.project.inventory.AutoInventory.utils.SpringContextUtils; import org.springframework.stereotype.Component; import javax.websocket.*; diff --git a/src/main/java/com/zg/project/information/controller/PcdeDetailController.java b/src/main/java/com/zg/project/information/controller/PcdeDetailController.java index 1d87e84..a69815f 100644 --- a/src/main/java/com/zg/project/information/controller/PcdeDetailController.java +++ b/src/main/java/com/zg/project/information/controller/PcdeDetailController.java @@ -42,6 +42,16 @@ public class PcdeDetailController extends BaseController return getDataTable(list); } + /** + * 根据小仓编码查询库位列表 + */ +// @PreAuthorize("@ss.hasPermi('information:pcdedetail:list')") + @GetMapping("/listByWarehouse/{warehouseCode}") + public AjaxResult listByWarehouse(@PathVariable("warehouseCode") String warehouseCode) + { + return success(pcdeDetailService.selectByWarehouseCode(warehouseCode)); + } + /** * 获取未被入库单据使用的库位列表 */ diff --git a/src/main/java/com/zg/project/information/controller/WarehouseInfoController.java b/src/main/java/com/zg/project/information/controller/WarehouseInfoController.java index f65affa..1212840 100644 --- a/src/main/java/com/zg/project/information/controller/WarehouseInfoController.java +++ b/src/main/java/com/zg/project/information/controller/WarehouseInfoController.java @@ -2,6 +2,8 @@ package com.zg.project.information.controller; import java.util.List; import javax.servlet.http.HttpServletResponse; + +import com.zg.project.information.domain.vo.WarehouseGroupVO; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -46,6 +48,15 @@ public class WarehouseInfoController extends BaseController return getDataTable(list); } +// @PreAuthorize("@ss.hasPermi('information:warehouseinfo:list')") + @GetMapping("/tree") + public AjaxResult tree() + { + List list = warehouseInfoService.selectWarehouseGroupList(); + return success(list); + } + + /** * 查询仓库信息列表 * @return diff --git a/src/main/java/com/zg/project/information/domain/PcdeDetail.java b/src/main/java/com/zg/project/information/domain/PcdeDetail.java index c802b2d..8987e64 100644 --- a/src/main/java/com/zg/project/information/domain/PcdeDetail.java +++ b/src/main/java/com/zg/project/information/domain/PcdeDetail.java @@ -1,6 +1,7 @@ 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; @@ -23,20 +24,28 @@ public class PcdeDetail extends BaseEntity { @Excel(name = "库位编号") private String pcode; - /** 所属场景 */ + /** 所属场景编号 */ @Excel(name = "所属场景编号") private String scene; - /** 所属场景名称 */ + /** 所属场景名称(冗余字段) */ @Excel(name = "所属场景名称") private String sceneName; - /** 所属仓库 */ - @Excel(name = "所属仓库") - private String warehouse; + /** 所属大仓编码 */ + @Excel(name = "所属大仓编码") + private String parentWarehouseCode; - /** 所属仓库名称 */ - @Excel(name = "所属仓库名称") + /** 所属大仓名称 */ + @Excel(name = "所属大仓名称") + private String parentWarehouseName; + + /** 所属小仓编码 */ + @Excel(name = "所属小仓编码") + private String warehouseCode; + + /** 所属小仓名称 */ + @Excel(name = "所属小仓名称") private String warehouseName; /** 编码后ID */ @@ -68,7 +77,7 @@ public class PcdeDetail extends BaseEntity { @JsonFormat(pattern = "yyyy-MM-dd") private Date updatedAt; - // Getter & Setter + // ==================== Getter & Setter ==================== public void setId(Long id) { this.id = id; @@ -102,12 +111,28 @@ public class PcdeDetail extends BaseEntity { return sceneName; } - public void setWarehouse(String warehouse) { - this.warehouse = warehouse; + public String getParentWarehouseCode() { + return parentWarehouseCode; } - public String getWarehouse() { - return warehouse; + public void setParentWarehouseCode(String parentWarehouseCode) { + this.parentWarehouseCode = parentWarehouseCode; + } + + public String getParentWarehouseName() { + return parentWarehouseName; + } + + public void setParentWarehouseName(String parentWarehouseName) { + this.parentWarehouseName = parentWarehouseName; + } + + public String getWarehouseCode() { + return warehouseCode; + } + + public void setWarehouseCode(String warehouseCode) { + this.warehouseCode = warehouseCode; } public void setWarehouseName(String warehouseName) { @@ -138,6 +163,7 @@ public class PcdeDetail extends BaseEntity { this.remark = remark; } + @Override public String getRemark() { return remark; } @@ -182,6 +208,8 @@ public class PcdeDetail extends BaseEntity { return updatedAt; } + // ==================== toString ==================== + @Override public String toString() { return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) @@ -189,7 +217,9 @@ public class PcdeDetail extends BaseEntity { .append("pcode", getPcode()) .append("scene", getScene()) .append("sceneName", getSceneName()) - .append("warehouse", getWarehouse()) + .append("parentWarehouseCode", getParentWarehouseCode()) + .append("parentWarehouseName", getParentWarehouseName()) + .append("warehouseCode", getWarehouseCode()) .append("warehouseName", getWarehouseName()) .append("encodedId", getEncodedId()) .append("tag", getTag()) diff --git a/src/main/java/com/zg/project/information/domain/vo/WarehouseChildVO.java b/src/main/java/com/zg/project/information/domain/vo/WarehouseChildVO.java new file mode 100644 index 0000000..fe06eb9 --- /dev/null +++ b/src/main/java/com/zg/project/information/domain/vo/WarehouseChildVO.java @@ -0,0 +1,48 @@ +package com.zg.project.information.domain.vo; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * 小仓 VO(子仓库节点) + */ +@Data +public class WarehouseChildVO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** 主键 ID */ + private Long id; + + /** 仓库编码(小仓编码) */ + private String warehouseCode; + + /** 仓库名称(小仓名称) */ + private String warehouseName; + + /** 仓库地址 */ + private String address; + + /** 所属大仓编码 */ + private String parentWarehouseCode; + + /** 所属大仓名称 */ + private String parentWarehouseName; + + /** 状态(1=启用,0=禁用) */ + private Integer status; + + /** 排序值 */ + private Integer sort; + + /** 备注 */ + private String remark; + + /** 创建时间(created_at) */ + private Date createdAt; + + /** 更新时间(updated_at) */ + private Date updatedAt; +} diff --git a/src/main/java/com/zg/project/information/domain/vo/WarehouseGroupVO.java b/src/main/java/com/zg/project/information/domain/vo/WarehouseGroupVO.java new file mode 100644 index 0000000..b653ada --- /dev/null +++ b/src/main/java/com/zg/project/information/domain/vo/WarehouseGroupVO.java @@ -0,0 +1,46 @@ +package com.zg.project.information.domain.vo; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +/** + * 大仓 VO(包含小仓列表) + */ +@Data +public class WarehouseGroupVO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** 主键 ID(大仓自身的 ID) */ + private Long id; + + /** 大仓编码(warehouse_code) */ + private String warehouseCode; + + /** 大仓名称(warehouse_name) */ + private String warehouseName; + + /** 大仓地址(address) */ + private String address; + + /** 状态(1=启用,0=禁用) */ + private Integer status; + + /** 排序值 */ + private Integer sort; + + /** 备注 */ + private String remark; + + /** 创建时间(created_at) */ + private Date createdAt; + + /** 更新时间(updated_at) */ + private Date updatedAt; + + /** 该大仓下的小仓列表 */ + private List children; +} diff --git a/src/main/java/com/zg/project/information/mapper/PcdeDetailMapper.java b/src/main/java/com/zg/project/information/mapper/PcdeDetailMapper.java index 86faf8d..60ef4da 100644 --- a/src/main/java/com/zg/project/information/mapper/PcdeDetailMapper.java +++ b/src/main/java/com/zg/project/information/mapper/PcdeDetailMapper.java @@ -81,4 +81,12 @@ public interface PcdeDetailMapper * @return */ int batchInsertIgnore(List slice); + + /** + * 根据小仓编码查询库位列表 + */ + List selectByWarehouseCode(String warehouseCode); + + String selectWarehouseCodeByPcode(String pcode); + } diff --git a/src/main/java/com/zg/project/information/service/IPcdeDetailService.java b/src/main/java/com/zg/project/information/service/IPcdeDetailService.java index 293eb1f..ffc189b 100644 --- a/src/main/java/com/zg/project/information/service/IPcdeDetailService.java +++ b/src/main/java/com/zg/project/information/service/IPcdeDetailService.java @@ -74,4 +74,9 @@ public interface IPcdeDetailService */ List getAllPcde(); + /** + * 根据小仓编码查询库位列表 + */ + List selectByWarehouseCode(String warehouseCode); + } diff --git a/src/main/java/com/zg/project/information/service/IWarehouseInfoService.java b/src/main/java/com/zg/project/information/service/IWarehouseInfoService.java index b9a4efc..a8bbb96 100644 --- a/src/main/java/com/zg/project/information/service/IWarehouseInfoService.java +++ b/src/main/java/com/zg/project/information/service/IWarehouseInfoService.java @@ -1,6 +1,7 @@ package com.zg.project.information.service; import com.zg.project.information.domain.WarehouseInfo; +import com.zg.project.information.domain.vo.WarehouseGroupVO; import java.util.List; @@ -59,4 +60,11 @@ public interface IWarehouseInfoService * @return 结果 */ public int deleteWarehouseInfoById(Long id); + + /** + * 查询仓库信息列表(包含小仓) + * + * @return + */ + List selectWarehouseGroupList(); } diff --git a/src/main/java/com/zg/project/information/service/impl/PcdeDetailServiceImpl.java b/src/main/java/com/zg/project/information/service/impl/PcdeDetailServiceImpl.java index f6a15af..4f001cc 100644 --- a/src/main/java/com/zg/project/information/service/impl/PcdeDetailServiceImpl.java +++ b/src/main/java/com/zg/project/information/service/impl/PcdeDetailServiceImpl.java @@ -230,4 +230,10 @@ public class PcdeDetailServiceImpl implements IPcdeDetailService return availableList; } + + @Override + public List selectByWarehouseCode(String warehouseCode) + { + return pcdeDetailMapper.selectByWarehouseCode(warehouseCode); + } } diff --git a/src/main/java/com/zg/project/information/service/impl/WarehouseInfoServiceImpl.java b/src/main/java/com/zg/project/information/service/impl/WarehouseInfoServiceImpl.java index 9921a34..0e6995c 100644 --- a/src/main/java/com/zg/project/information/service/impl/WarehouseInfoServiceImpl.java +++ b/src/main/java/com/zg/project/information/service/impl/WarehouseInfoServiceImpl.java @@ -1,6 +1,14 @@ package com.zg.project.information.service.impl; +import java.util.ArrayList; +import java.util.LinkedHashMap; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import com.zg.common.utils.StringUtils; +import com.zg.project.information.domain.vo.WarehouseChildVO; +import com.zg.project.information.domain.vo.WarehouseGroupVO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.zg.project.information.mapper.WarehouseInfoMapper; @@ -90,4 +98,61 @@ public class WarehouseInfoServiceImpl implements IWarehouseInfoService { return warehouseInfoMapper.deleteWarehouseInfoById(id); } + + /** + * ⭐ 查询大仓及其包含的小仓(嵌套结构) + */ + @Override + public List selectWarehouseGroupList() { + + // 1. 查询全部仓库 + List allList = warehouseInfoMapper.selectWarehouseInfoList(new WarehouseInfo()); + if (allList == null || allList.isEmpty()) { + return new ArrayList<>(); + } + + // 2. 按 parent_warehouse_code 分组(大仓 → 小仓) + Map groupMap = new LinkedHashMap<>(); + + for (WarehouseInfo w : allList) { + + // 所属大仓编码/名称 + String parentCode = w.getParentWarehouseCode(); + String parentName = w.getParentWarehouseName(); + + // 如果 parent_warehouse_code 为空,则自己就是一个大仓 + if (StringUtils.isBlank(parentCode)) { + parentCode = w.getWarehouseCode(); + parentName = w.getWarehouseName(); + } + + // 2.1 获取或创建大仓节点 + WarehouseGroupVO groupVO = groupMap.get(parentCode); + if (groupVO == null) { + groupVO = new WarehouseGroupVO(); + groupVO.setWarehouseCode(parentCode); + groupVO.setWarehouseName(parentName); + groupVO.setChildren(new ArrayList<>()); + groupMap.put(parentCode, groupVO); + } + + // 2.2 把当前仓库作为“小仓”加入 children + WarehouseChildVO childVO = new WarehouseChildVO(); + childVO.setId(w.getId()); + childVO.setWarehouseCode(w.getWarehouseCode()); + childVO.setWarehouseName(w.getWarehouseName()); + childVO.setAddress(w.getAddress()); + childVO.setParentWarehouseCode(w.getParentWarehouseCode()); + childVO.setParentWarehouseName(w.getParentWarehouseName()); + childVO.setRemark(w.getRemark()); + childVO.setCreatedAt(w.getCreatedAt()); + childVO.setUpdatedAt(w.getUpdatedAt()); + + groupVO.getChildren().add(childVO); + } + + // 3. 返回树结构 + return new ArrayList<>(groupMap.values()); + } + } diff --git a/src/main/java/com/zg/project/Inventory/AutoInventory/config/RfidProperties.java b/src/main/java/com/zg/project/inventory/AutoInventory/config/RfidProperties.java similarity index 84% rename from src/main/java/com/zg/project/Inventory/AutoInventory/config/RfidProperties.java rename to src/main/java/com/zg/project/inventory/AutoInventory/config/RfidProperties.java index bfdf8e0..0bc4d1f 100644 --- a/src/main/java/com/zg/project/Inventory/AutoInventory/config/RfidProperties.java +++ b/src/main/java/com/zg/project/inventory/AutoInventory/config/RfidProperties.java @@ -1,4 +1,4 @@ -package com.zg.project.Inventory.AutoInventory.config; +package com.zg.project.inventory.AutoInventory.config; import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; diff --git a/src/main/java/com/zg/project/Inventory/AutoInventory/controller/AutoInventoryController.java b/src/main/java/com/zg/project/inventory/AutoInventory/controller/AutoInventoryController.java similarity index 90% rename from src/main/java/com/zg/project/Inventory/AutoInventory/controller/AutoInventoryController.java rename to src/main/java/com/zg/project/inventory/AutoInventory/controller/AutoInventoryController.java index 485470a..7193d97 100644 --- a/src/main/java/com/zg/project/Inventory/AutoInventory/controller/AutoInventoryController.java +++ b/src/main/java/com/zg/project/inventory/AutoInventory/controller/AutoInventoryController.java @@ -1,12 +1,12 @@ -package com.zg.project.Inventory.AutoInventory.controller; +package com.zg.project.inventory.AutoInventory.controller; import com.zg.framework.web.controller.BaseController; import com.zg.framework.web.domain.AjaxResult; -import com.zg.project.Inventory.AutoInventory.service.InventoryMatchScanService; -import com.zg.project.Inventory.domain.dto.QueryDTO; -import com.zg.project.Inventory.domain.vo.ChartDataVO; -import com.zg.project.Inventory.AutoInventory.service.IRfidService; -import com.zg.project.Inventory.AutoInventory.service.ISodService; +import com.zg.project.inventory.AutoInventory.service.InventoryMatchScanService; +import com.zg.project.inventory.domain.dto.QueryDTO; +import com.zg.project.inventory.domain.vo.ChartDataVO; +import com.zg.project.inventory.AutoInventory.service.IRfidService; +import com.zg.project.inventory.AutoInventory.service.ISodService; import com.zg.project.wisdom.service.IRkInfoService; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; diff --git a/src/main/java/com/zg/project/Inventory/AutoInventory/controller/InventoryMatchScanController.java b/src/main/java/com/zg/project/inventory/AutoInventory/controller/InventoryMatchScanController.java similarity index 80% rename from src/main/java/com/zg/project/Inventory/AutoInventory/controller/InventoryMatchScanController.java rename to src/main/java/com/zg/project/inventory/AutoInventory/controller/InventoryMatchScanController.java index 19f4409..57df19e 100644 --- a/src/main/java/com/zg/project/Inventory/AutoInventory/controller/InventoryMatchScanController.java +++ b/src/main/java/com/zg/project/inventory/AutoInventory/controller/InventoryMatchScanController.java @@ -1,17 +1,14 @@ -package com.zg.project.Inventory.AutoInventory.controller; +package com.zg.project.inventory.AutoInventory.controller; import com.zg.common.utils.poi.ExcelUtil; import com.zg.framework.web.controller.BaseController; import com.zg.framework.web.domain.AjaxResult; import com.zg.framework.web.page.TableDataInfo; -import com.zg.project.Inventory.AutoInventory.service.InventoryMatchScanService; -import com.zg.project.Inventory.domain.dto.MatchScanPageDTO; -import com.zg.project.Inventory.domain.entity.InventoryMatchScan; -import com.zg.project.Inventory.domain.entity.InventoryTask; -import com.zg.project.Inventory.domain.vo.InventoryMatchScanSimpleVO; -import com.zg.project.Inventory.domain.vo.InventoryMatchScanVO; -import com.zg.project.Inventory.domain.vo.RkInfoMatchVO; -import com.zg.project.wisdom.domain.RkInfo; +import com.zg.project.inventory.AutoInventory.service.InventoryMatchScanService; +import com.zg.project.inventory.domain.dto.MatchScanPageDTO; +import com.zg.project.inventory.domain.entity.InventoryMatchScan; +import com.zg.project.inventory.domain.vo.InventoryMatchScanVO; +import com.zg.project.inventory.domain.vo.RkInfoMatchVO; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; diff --git a/src/main/java/com/zg/project/Inventory/AutoInventory/controller/PrintController.java b/src/main/java/com/zg/project/inventory/AutoInventory/controller/PrintController.java similarity index 99% rename from src/main/java/com/zg/project/Inventory/AutoInventory/controller/PrintController.java rename to src/main/java/com/zg/project/inventory/AutoInventory/controller/PrintController.java index eeb76de..7886813 100644 --- a/src/main/java/com/zg/project/Inventory/AutoInventory/controller/PrintController.java +++ b/src/main/java/com/zg/project/inventory/AutoInventory/controller/PrintController.java @@ -1,10 +1,9 @@ -package com.zg.project.Inventory.AutoInventory.controller; +package com.zg.project.inventory.AutoInventory.controller; import com.ZMPrinter.*; import com.ZMPrinter.LSF.LSFDecoder; import com.ZMPrinter.UsbUtility.UsbConnection; -import com.zg.project.Inventory.AutoInventory.domain.entity.PrintRfid; -import com.zg.project.Inventory.AutoInventory.mapper.PrintRfidMapper; +import com.zg.project.inventory.AutoInventory.mapper.PrintRfidMapper; import com.zg.project.information.domain.PcdeDetail; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; diff --git a/src/main/java/com/zg/project/Inventory/AutoInventory/controller/PrintRfidController.java b/src/main/java/com/zg/project/inventory/AutoInventory/controller/PrintRfidController.java similarity index 94% rename from src/main/java/com/zg/project/Inventory/AutoInventory/controller/PrintRfidController.java rename to src/main/java/com/zg/project/inventory/AutoInventory/controller/PrintRfidController.java index 82389b4..b3f956b 100644 --- a/src/main/java/com/zg/project/Inventory/AutoInventory/controller/PrintRfidController.java +++ b/src/main/java/com/zg/project/inventory/AutoInventory/controller/PrintRfidController.java @@ -1,4 +1,4 @@ -package com.zg.project.Inventory.AutoInventory.controller; +package com.zg.project.inventory.AutoInventory.controller; import java.util.List; import javax.servlet.http.HttpServletResponse; @@ -14,8 +14,8 @@ 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.AutoInventory.domain.entity.PrintRfid; -import com.zg.project.Inventory.AutoInventory.service.IPrintRfidService; +import com.zg.project.inventory.AutoInventory.domain.entity.PrintRfid; +import com.zg.project.inventory.AutoInventory.service.IPrintRfidService; import com.zg.framework.web.controller.BaseController; import com.zg.framework.web.domain.AjaxResult; import com.zg.common.utils.poi.ExcelUtil; diff --git a/src/main/java/com/zg/project/Inventory/AutoInventory/mapper/InventoryMatchScanMapper.java b/src/main/java/com/zg/project/inventory/AutoInventory/mapper/InventoryMatchScanMapper.java similarity index 68% rename from src/main/java/com/zg/project/Inventory/AutoInventory/mapper/InventoryMatchScanMapper.java rename to src/main/java/com/zg/project/inventory/AutoInventory/mapper/InventoryMatchScanMapper.java index 11f6f1d..2f1c08c 100644 --- a/src/main/java/com/zg/project/Inventory/AutoInventory/mapper/InventoryMatchScanMapper.java +++ b/src/main/java/com/zg/project/inventory/AutoInventory/mapper/InventoryMatchScanMapper.java @@ -1,11 +1,11 @@ -package com.zg.project.Inventory.AutoInventory.mapper; +package com.zg.project.inventory.AutoInventory.mapper; -import com.zg.project.Inventory.domain.dto.MatchScanPageDTO; -import com.zg.project.Inventory.domain.entity.InventoryMatchScan; -import com.zg.project.Inventory.domain.entity.Sod; -import com.zg.project.Inventory.domain.vo.InventoryMatchScanSimpleVO; -import com.zg.project.Inventory.domain.vo.InventoryMatchScanVO; -import com.zg.project.Inventory.domain.vo.RkInfoMatchVO; +import com.zg.project.inventory.domain.dto.MatchScanPageDTO; +import com.zg.project.inventory.domain.entity.InventoryMatchScan; +import com.zg.project.inventory.domain.entity.Sod; +import com.zg.project.inventory.domain.vo.InventoryMatchScanSimpleVO; +import com.zg.project.inventory.domain.vo.InventoryMatchScanVO; +import com.zg.project.inventory.domain.vo.RkInfoMatchVO; import org.apache.ibatis.annotations.Param; import java.util.List; diff --git a/src/main/java/com/zg/project/Inventory/AutoInventory/mapper/PrintRfidMapper.java b/src/main/java/com/zg/project/inventory/AutoInventory/mapper/PrintRfidMapper.java similarity index 90% rename from src/main/java/com/zg/project/Inventory/AutoInventory/mapper/PrintRfidMapper.java rename to src/main/java/com/zg/project/inventory/AutoInventory/mapper/PrintRfidMapper.java index 4e885d4..3049e37 100644 --- a/src/main/java/com/zg/project/Inventory/AutoInventory/mapper/PrintRfidMapper.java +++ b/src/main/java/com/zg/project/inventory/AutoInventory/mapper/PrintRfidMapper.java @@ -1,7 +1,7 @@ -package com.zg.project.Inventory.AutoInventory.mapper; +package com.zg.project.inventory.AutoInventory.mapper; import java.util.List; -import com.zg.project.Inventory.AutoInventory.domain.entity.PrintRfid; +import com.zg.project.inventory.AutoInventory.domain.entity.PrintRfid; /** * 打印rfidMapper接口 diff --git a/src/main/java/com/zg/project/Inventory/AutoInventory/mapper/SodMapper.java b/src/main/java/com/zg/project/inventory/AutoInventory/mapper/SodMapper.java similarity index 60% rename from src/main/java/com/zg/project/Inventory/AutoInventory/mapper/SodMapper.java rename to src/main/java/com/zg/project/inventory/AutoInventory/mapper/SodMapper.java index bc7bd3d..a79c3ce 100644 --- a/src/main/java/com/zg/project/Inventory/AutoInventory/mapper/SodMapper.java +++ b/src/main/java/com/zg/project/inventory/AutoInventory/mapper/SodMapper.java @@ -1,9 +1,8 @@ -package com.zg.project.Inventory.AutoInventory.mapper; +package com.zg.project.inventory.AutoInventory.mapper; -import com.zg.project.Inventory.domain.dto.QueryDTO; -import com.zg.project.Inventory.domain.entity.Sod; -import com.zg.project.Inventory.domain.vo.PcdeCntVO; -import com.zg.project.Inventory.domain.vo.SodVO; +import com.zg.project.inventory.domain.dto.QueryDTO; +import com.zg.project.inventory.domain.entity.Sod; +import com.zg.project.inventory.domain.vo.SodVO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; diff --git a/src/main/java/com/zg/project/Inventory/AutoInventory/service/IPrintRfidService.java b/src/main/java/com/zg/project/inventory/AutoInventory/service/IPrintRfidService.java similarity index 90% rename from src/main/java/com/zg/project/Inventory/AutoInventory/service/IPrintRfidService.java rename to src/main/java/com/zg/project/inventory/AutoInventory/service/IPrintRfidService.java index fdb71df..c121731 100644 --- a/src/main/java/com/zg/project/Inventory/AutoInventory/service/IPrintRfidService.java +++ b/src/main/java/com/zg/project/inventory/AutoInventory/service/IPrintRfidService.java @@ -1,7 +1,7 @@ -package com.zg.project.Inventory.AutoInventory.service; +package com.zg.project.inventory.AutoInventory.service; import java.util.List; -import com.zg.project.Inventory.AutoInventory.domain.entity.PrintRfid; +import com.zg.project.inventory.AutoInventory.domain.entity.PrintRfid; /** * 打印rfidService接口 diff --git a/src/main/java/com/zg/project/Inventory/AutoInventory/service/IRfidService.java b/src/main/java/com/zg/project/inventory/AutoInventory/service/IRfidService.java similarity index 89% rename from src/main/java/com/zg/project/Inventory/AutoInventory/service/IRfidService.java rename to src/main/java/com/zg/project/inventory/AutoInventory/service/IRfidService.java index 7d75e23..2c1682d 100644 --- a/src/main/java/com/zg/project/Inventory/AutoInventory/service/IRfidService.java +++ b/src/main/java/com/zg/project/inventory/AutoInventory/service/IRfidService.java @@ -1,4 +1,4 @@ -package com.zg.project.Inventory.AutoInventory.service; +package com.zg.project.inventory.AutoInventory.service; public interface IRfidService { diff --git a/src/main/java/com/zg/project/Inventory/AutoInventory/service/ISodService.java b/src/main/java/com/zg/project/inventory/AutoInventory/service/ISodService.java similarity index 51% rename from src/main/java/com/zg/project/Inventory/AutoInventory/service/ISodService.java rename to src/main/java/com/zg/project/inventory/AutoInventory/service/ISodService.java index 9087e9c..fced1b6 100644 --- a/src/main/java/com/zg/project/Inventory/AutoInventory/service/ISodService.java +++ b/src/main/java/com/zg/project/inventory/AutoInventory/service/ISodService.java @@ -1,8 +1,7 @@ -package com.zg.project.Inventory.AutoInventory.service; +package com.zg.project.inventory.AutoInventory.service; -import com.zg.project.Inventory.domain.dto.QueryDTO; -import com.zg.project.Inventory.domain.vo.ChartDataVO; -import com.zg.project.Inventory.domain.vo.SodVO; +import com.zg.project.inventory.domain.dto.QueryDTO; +import com.zg.project.inventory.domain.vo.SodVO; import java.util.List; import java.util.Map; diff --git a/src/main/java/com/zg/project/Inventory/AutoInventory/service/InventoryMatchScanService.java b/src/main/java/com/zg/project/inventory/AutoInventory/service/InventoryMatchScanService.java similarity index 50% rename from src/main/java/com/zg/project/Inventory/AutoInventory/service/InventoryMatchScanService.java rename to src/main/java/com/zg/project/inventory/AutoInventory/service/InventoryMatchScanService.java index cf774c3..1b90d34 100644 --- a/src/main/java/com/zg/project/Inventory/AutoInventory/service/InventoryMatchScanService.java +++ b/src/main/java/com/zg/project/inventory/AutoInventory/service/InventoryMatchScanService.java @@ -1,11 +1,9 @@ -package com.zg.project.Inventory.AutoInventory.service; +package com.zg.project.inventory.AutoInventory.service; -import com.zg.framework.web.page.TableDataInfo; -import com.zg.project.Inventory.domain.dto.MatchScanPageDTO; -import com.zg.project.Inventory.domain.entity.InventoryMatchScan; -import com.zg.project.Inventory.domain.vo.InventoryMatchScanSimpleVO; -import com.zg.project.Inventory.domain.vo.InventoryMatchScanVO; -import com.zg.project.Inventory.domain.vo.RkInfoMatchVO; +import com.zg.project.inventory.domain.dto.MatchScanPageDTO; +import com.zg.project.inventory.domain.entity.InventoryMatchScan; +import com.zg.project.inventory.domain.vo.InventoryMatchScanVO; +import com.zg.project.inventory.domain.vo.RkInfoMatchVO; import java.util.List; import java.util.Map; diff --git a/src/main/java/com/zg/project/Inventory/AutoInventory/service/impl/InventoryMatchScanServiceImpl.java b/src/main/java/com/zg/project/inventory/AutoInventory/service/impl/InventoryMatchScanServiceImpl.java similarity index 76% rename from src/main/java/com/zg/project/Inventory/AutoInventory/service/impl/InventoryMatchScanServiceImpl.java rename to src/main/java/com/zg/project/inventory/AutoInventory/service/impl/InventoryMatchScanServiceImpl.java index fd40a69..e074b10 100644 --- a/src/main/java/com/zg/project/Inventory/AutoInventory/service/impl/InventoryMatchScanServiceImpl.java +++ b/src/main/java/com/zg/project/inventory/AutoInventory/service/impl/InventoryMatchScanServiceImpl.java @@ -1,14 +1,12 @@ -package com.zg.project.Inventory.AutoInventory.service.impl; +package com.zg.project.inventory.AutoInventory.service.impl; -import com.zg.framework.web.page.TableDataInfo; -import com.zg.project.Inventory.Task.mapper.InventoryTaskMapper; -import com.zg.project.Inventory.domain.dto.MatchScanPageDTO; -import com.zg.project.Inventory.domain.entity.InventoryMatchScan; -import com.zg.project.Inventory.AutoInventory.mapper.InventoryMatchScanMapper; -import com.zg.project.Inventory.AutoInventory.service.InventoryMatchScanService; -import com.zg.project.Inventory.domain.vo.InventoryMatchScanSimpleVO; -import com.zg.project.Inventory.domain.vo.InventoryMatchScanVO; -import com.zg.project.Inventory.domain.vo.RkInfoMatchVO; +import com.zg.project.inventory.Task.mapper.InventoryTaskMapper; +import com.zg.project.inventory.domain.dto.MatchScanPageDTO; +import com.zg.project.inventory.domain.entity.InventoryMatchScan; +import com.zg.project.inventory.AutoInventory.mapper.InventoryMatchScanMapper; +import com.zg.project.inventory.AutoInventory.service.InventoryMatchScanService; +import com.zg.project.inventory.domain.vo.InventoryMatchScanVO; +import com.zg.project.inventory.domain.vo.RkInfoMatchVO; import com.zg.project.wisdom.mapper.RkInfoMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/src/main/java/com/zg/project/Inventory/AutoInventory/service/impl/PrintRfidServiceImpl.java b/src/main/java/com/zg/project/inventory/AutoInventory/service/impl/PrintRfidServiceImpl.java similarity index 87% rename from src/main/java/com/zg/project/Inventory/AutoInventory/service/impl/PrintRfidServiceImpl.java rename to src/main/java/com/zg/project/inventory/AutoInventory/service/impl/PrintRfidServiceImpl.java index c71873f..89355fe 100644 --- a/src/main/java/com/zg/project/Inventory/AutoInventory/service/impl/PrintRfidServiceImpl.java +++ b/src/main/java/com/zg/project/inventory/AutoInventory/service/impl/PrintRfidServiceImpl.java @@ -1,11 +1,11 @@ -package com.zg.project.Inventory.AutoInventory.service.impl; +package com.zg.project.inventory.AutoInventory.service.impl; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.zg.project.Inventory.AutoInventory.mapper.PrintRfidMapper; -import com.zg.project.Inventory.AutoInventory.domain.entity.PrintRfid; -import com.zg.project.Inventory.AutoInventory.service.IPrintRfidService; +import com.zg.project.inventory.AutoInventory.mapper.PrintRfidMapper; +import com.zg.project.inventory.AutoInventory.domain.entity.PrintRfid; +import com.zg.project.inventory.AutoInventory.service.IPrintRfidService; /** * 打印rfidService业务层处理 diff --git a/src/main/java/com/zg/project/Inventory/AutoInventory/service/impl/RfidServiceImpl.java b/src/main/java/com/zg/project/inventory/AutoInventory/service/impl/RfidServiceImpl.java similarity index 97% rename from src/main/java/com/zg/project/Inventory/AutoInventory/service/impl/RfidServiceImpl.java rename to src/main/java/com/zg/project/inventory/AutoInventory/service/impl/RfidServiceImpl.java index 66bf7ca..e9dd393 100644 --- a/src/main/java/com/zg/project/Inventory/AutoInventory/service/impl/RfidServiceImpl.java +++ b/src/main/java/com/zg/project/inventory/AutoInventory/service/impl/RfidServiceImpl.java @@ -1,4 +1,4 @@ -package com.zg.project.Inventory.AutoInventory.service.impl; +package com.zg.project.inventory.AutoInventory.service.impl; import com.rfidread.Enumeration.eReadType; import com.rfidread.Interface.IAsynchronousMessage; @@ -6,7 +6,7 @@ import com.rfidread.Models.GPI_Model; import com.rfidread.Models.Tag_Model; import com.rfidread.RFIDReader; import com.zg.framework.websocket.config.WebSocketServer; -import com.zg.project.Inventory.AutoInventory.service.IRfidService; +import com.zg.project.inventory.AutoInventory.service.IRfidService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; diff --git a/src/main/java/com/zg/project/Inventory/AutoInventory/service/impl/SodServiceImpl.java b/src/main/java/com/zg/project/inventory/AutoInventory/service/impl/SodServiceImpl.java similarity index 92% rename from src/main/java/com/zg/project/Inventory/AutoInventory/service/impl/SodServiceImpl.java rename to src/main/java/com/zg/project/inventory/AutoInventory/service/impl/SodServiceImpl.java index e3e367b..27dac22 100644 --- a/src/main/java/com/zg/project/Inventory/AutoInventory/service/impl/SodServiceImpl.java +++ b/src/main/java/com/zg/project/inventory/AutoInventory/service/impl/SodServiceImpl.java @@ -1,16 +1,14 @@ -package com.zg.project.Inventory.AutoInventory.service.impl; +package com.zg.project.inventory.AutoInventory.service.impl; import com.zg.common.utils.PageUtils; import com.zg.framework.web.page.TableDataInfo; -import com.zg.project.Inventory.domain.dto.QueryDTO; -import com.zg.project.Inventory.domain.entity.InventoryMatchScan; -import com.zg.project.Inventory.domain.entity.Sod; -import com.zg.project.Inventory.domain.vo.ChartDataVO; -import com.zg.project.Inventory.domain.vo.PcdeCntVO; -import com.zg.project.Inventory.domain.vo.SodVO; -import com.zg.project.Inventory.AutoInventory.mapper.InventoryMatchScanMapper; -import com.zg.project.Inventory.AutoInventory.mapper.SodMapper; -import com.zg.project.Inventory.AutoInventory.service.ISodService; +import com.zg.project.inventory.domain.dto.QueryDTO; +import com.zg.project.inventory.domain.entity.InventoryMatchScan; +import com.zg.project.inventory.domain.entity.Sod; +import com.zg.project.inventory.domain.vo.SodVO; +import com.zg.project.inventory.AutoInventory.mapper.InventoryMatchScanMapper; +import com.zg.project.inventory.AutoInventory.mapper.SodMapper; +import com.zg.project.inventory.AutoInventory.service.ISodService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; diff --git a/src/main/java/com/zg/project/Inventory/AutoInventory/utils/ManualPageUtils.java b/src/main/java/com/zg/project/inventory/AutoInventory/utils/ManualPageUtils.java similarity index 93% rename from src/main/java/com/zg/project/Inventory/AutoInventory/utils/ManualPageUtils.java rename to src/main/java/com/zg/project/inventory/AutoInventory/utils/ManualPageUtils.java index bea3805..a8f0d20 100644 --- a/src/main/java/com/zg/project/Inventory/AutoInventory/utils/ManualPageUtils.java +++ b/src/main/java/com/zg/project/inventory/AutoInventory/utils/ManualPageUtils.java @@ -1,4 +1,4 @@ -package com.zg.project.Inventory.AutoInventory.utils; +package com.zg.project.inventory.AutoInventory.utils; import java.util.Collections; import java.util.List; diff --git a/src/main/java/com/zg/project/Inventory/AutoInventory/utils/SpringContextUtils.java b/src/main/java/com/zg/project/inventory/AutoInventory/utils/SpringContextUtils.java similarity index 91% rename from src/main/java/com/zg/project/Inventory/AutoInventory/utils/SpringContextUtils.java rename to src/main/java/com/zg/project/inventory/AutoInventory/utils/SpringContextUtils.java index 75c15a0..f0f28be 100644 --- a/src/main/java/com/zg/project/Inventory/AutoInventory/utils/SpringContextUtils.java +++ b/src/main/java/com/zg/project/inventory/AutoInventory/utils/SpringContextUtils.java @@ -1,4 +1,4 @@ -package com.zg.project.Inventory.AutoInventory.utils; +package com.zg.project.inventory.AutoInventory.utils; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; diff --git a/src/main/java/com/zg/project/Inventory/HdInventory/HdInventoryController.java b/src/main/java/com/zg/project/inventory/HdInventory/HdInventoryController.java similarity index 82% rename from src/main/java/com/zg/project/Inventory/HdInventory/HdInventoryController.java rename to src/main/java/com/zg/project/inventory/HdInventory/HdInventoryController.java index c9c8712..3218bf7 100644 --- a/src/main/java/com/zg/project/Inventory/HdInventory/HdInventoryController.java +++ b/src/main/java/com/zg/project/inventory/HdInventory/HdInventoryController.java @@ -1,8 +1,7 @@ -package com.zg.project.Inventory.HdInventory; +package com.zg.project.inventory.HdInventory; import com.zg.framework.web.domain.AjaxResult; -import com.zg.project.Inventory.AutoInventory.service.ISodService; -import com.zg.project.Inventory.domain.dto.QueryDTO; +import com.zg.project.inventory.domain.dto.QueryDTO; import com.zg.project.wisdom.service.IRkInfoService; import io.swagger.annotations.ApiModelProperty; import org.springframework.beans.factory.annotation.Autowired; @@ -11,8 +10,6 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.util.Map; - @RestController @RequestMapping("/HdInventory") public class HdInventoryController { diff --git a/src/main/java/com/zg/project/Inventory/Task/controller/InventoryTaskController.java b/src/main/java/com/zg/project/inventory/Task/controller/InventoryTaskController.java similarity index 95% rename from src/main/java/com/zg/project/Inventory/Task/controller/InventoryTaskController.java rename to src/main/java/com/zg/project/inventory/Task/controller/InventoryTaskController.java index c926cf6..00e7373 100644 --- a/src/main/java/com/zg/project/Inventory/Task/controller/InventoryTaskController.java +++ b/src/main/java/com/zg/project/inventory/Task/controller/InventoryTaskController.java @@ -1,4 +1,4 @@ -package com.zg.project.Inventory.Task.controller; +package com.zg.project.inventory.Task.controller; import java.util.List; import javax.servlet.http.HttpServletResponse; @@ -14,8 +14,8 @@ 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.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; diff --git a/src/main/java/com/zg/project/Inventory/Task/controller/StatisticsController.java b/src/main/java/com/zg/project/inventory/Task/controller/StatisticsController.java similarity index 75% rename from src/main/java/com/zg/project/Inventory/Task/controller/StatisticsController.java rename to src/main/java/com/zg/project/inventory/Task/controller/StatisticsController.java index 622c4ac..0435620 100644 --- a/src/main/java/com/zg/project/Inventory/Task/controller/StatisticsController.java +++ b/src/main/java/com/zg/project/inventory/Task/controller/StatisticsController.java @@ -1,13 +1,10 @@ -package com.zg.project.Inventory.Task.controller; +package com.zg.project.inventory.Task.controller; -import com.zg.framework.aspectj.lang.annotation.Log; -import com.zg.framework.aspectj.lang.enums.BusinessType; import com.zg.framework.web.controller.BaseController; import com.zg.framework.web.domain.AjaxResult; -import com.zg.project.Inventory.Task.service.IInventoryTaskService; +import com.zg.project.inventory.Task.service.IInventoryTaskService; import com.zg.project.wisdom.service.IRkInfoService; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; @RestController diff --git a/src/main/java/com/zg/project/Inventory/Task/mapper/InventoryTaskMapper.java b/src/main/java/com/zg/project/inventory/Task/mapper/InventoryTaskMapper.java similarity index 94% rename from src/main/java/com/zg/project/Inventory/Task/mapper/InventoryTaskMapper.java rename to src/main/java/com/zg/project/inventory/Task/mapper/InventoryTaskMapper.java index b14edca..be328a5 100644 --- a/src/main/java/com/zg/project/Inventory/Task/mapper/InventoryTaskMapper.java +++ b/src/main/java/com/zg/project/inventory/Task/mapper/InventoryTaskMapper.java @@ -1,7 +1,7 @@ -package com.zg.project.Inventory.Task.mapper; +package com.zg.project.inventory.Task.mapper; import java.util.List; -import com.zg.project.Inventory.domain.entity.InventoryTask; +import com.zg.project.inventory.domain.entity.InventoryTask; import org.apache.ibatis.annotations.Param; /** diff --git a/src/main/java/com/zg/project/Inventory/Task/service/IInventoryTaskService.java b/src/main/java/com/zg/project/inventory/Task/service/IInventoryTaskService.java similarity index 93% rename from src/main/java/com/zg/project/Inventory/Task/service/IInventoryTaskService.java rename to src/main/java/com/zg/project/inventory/Task/service/IInventoryTaskService.java index a85056f..840bdea 100644 --- a/src/main/java/com/zg/project/Inventory/Task/service/IInventoryTaskService.java +++ b/src/main/java/com/zg/project/inventory/Task/service/IInventoryTaskService.java @@ -1,7 +1,7 @@ -package com.zg.project.Inventory.Task.service; +package com.zg.project.inventory.Task.service; import java.util.List; -import com.zg.project.Inventory.domain.entity.InventoryTask; +import com.zg.project.inventory.domain.entity.InventoryTask; /** * 盘点任务Service接口 diff --git a/src/main/java/com/zg/project/Inventory/Task/service/impl/InventoryTaskServiceImpl.java b/src/main/java/com/zg/project/inventory/Task/service/impl/InventoryTaskServiceImpl.java similarity index 91% rename from src/main/java/com/zg/project/Inventory/Task/service/impl/InventoryTaskServiceImpl.java rename to src/main/java/com/zg/project/inventory/Task/service/impl/InventoryTaskServiceImpl.java index 230d2fd..1e9b40a 100644 --- a/src/main/java/com/zg/project/Inventory/Task/service/impl/InventoryTaskServiceImpl.java +++ b/src/main/java/com/zg/project/inventory/Task/service/impl/InventoryTaskServiceImpl.java @@ -1,4 +1,4 @@ -package com.zg.project.Inventory.Task.service.impl; +package com.zg.project.inventory.Task.service.impl; import java.util.List; @@ -6,9 +6,9 @@ import com.zg.common.utils.DateUtils; import com.zg.common.utils.SecurityUtils; 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; +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业务层处理 diff --git a/src/main/java/com/zg/project/Inventory/domain/dto/ConnectDTO.java b/src/main/java/com/zg/project/inventory/domain/dto/ConnectDTO.java similarity index 91% rename from src/main/java/com/zg/project/Inventory/domain/dto/ConnectDTO.java rename to src/main/java/com/zg/project/inventory/domain/dto/ConnectDTO.java index 48aff8f..01f88c6 100644 --- a/src/main/java/com/zg/project/Inventory/domain/dto/ConnectDTO.java +++ b/src/main/java/com/zg/project/inventory/domain/dto/ConnectDTO.java @@ -1,4 +1,4 @@ -package com.zg.project.Inventory.domain.dto; +package com.zg.project.inventory.domain.dto; import lombok.Data; import io.swagger.annotations.ApiModel; diff --git a/src/main/java/com/zg/project/Inventory/domain/dto/MatchScanPageDTO.java b/src/main/java/com/zg/project/inventory/domain/dto/MatchScanPageDTO.java similarity index 95% rename from src/main/java/com/zg/project/Inventory/domain/dto/MatchScanPageDTO.java rename to src/main/java/com/zg/project/inventory/domain/dto/MatchScanPageDTO.java index 96eb537..7011435 100644 --- a/src/main/java/com/zg/project/Inventory/domain/dto/MatchScanPageDTO.java +++ b/src/main/java/com/zg/project/inventory/domain/dto/MatchScanPageDTO.java @@ -1,4 +1,4 @@ -package com.zg.project.Inventory.domain.dto; +package com.zg.project.inventory.domain.dto; import lombok.Data; diff --git a/src/main/java/com/zg/project/Inventory/domain/dto/QueryDTO.java b/src/main/java/com/zg/project/inventory/domain/dto/QueryDTO.java similarity index 96% rename from src/main/java/com/zg/project/Inventory/domain/dto/QueryDTO.java rename to src/main/java/com/zg/project/inventory/domain/dto/QueryDTO.java index fb2d100..4ad8c6b 100644 --- a/src/main/java/com/zg/project/Inventory/domain/dto/QueryDTO.java +++ b/src/main/java/com/zg/project/inventory/domain/dto/QueryDTO.java @@ -1,4 +1,4 @@ -package com.zg.project.Inventory.domain.dto; +package com.zg.project.inventory.domain.dto; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/src/main/java/com/zg/project/Inventory/domain/entity/InventoryMatchScan.java b/src/main/java/com/zg/project/inventory/domain/entity/InventoryMatchScan.java similarity index 96% rename from src/main/java/com/zg/project/Inventory/domain/entity/InventoryMatchScan.java rename to src/main/java/com/zg/project/inventory/domain/entity/InventoryMatchScan.java index 29373a8..7c451d5 100644 --- a/src/main/java/com/zg/project/Inventory/domain/entity/InventoryMatchScan.java +++ b/src/main/java/com/zg/project/inventory/domain/entity/InventoryMatchScan.java @@ -1,13 +1,10 @@ -package com.zg.project.Inventory.domain.entity; +package com.zg.project.inventory.domain.entity; -import com.fasterxml.jackson.annotation.JsonFormat; 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; - /** * 盘点匹配数据记录表 InventoryMatchScan * diff --git a/src/main/java/com/zg/project/Inventory/domain/entity/InventoryTask.java b/src/main/java/com/zg/project/inventory/domain/entity/InventoryTask.java similarity index 90% rename from src/main/java/com/zg/project/Inventory/domain/entity/InventoryTask.java rename to src/main/java/com/zg/project/inventory/domain/entity/InventoryTask.java index 5152f6f..70c31a7 100644 --- a/src/main/java/com/zg/project/Inventory/domain/entity/InventoryTask.java +++ b/src/main/java/com/zg/project/inventory/domain/entity/InventoryTask.java @@ -1,4 +1,4 @@ -package com.zg.project.Inventory.domain.entity; +package com.zg.project.inventory.domain.entity; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; @@ -21,12 +21,12 @@ public class InventoryTask extends BaseEntity { @Excel(name = "任务名称") private String taskName; - /** 仓库ID */ - @Excel(name = "仓库ID") - private String warehouseId; + /** 所属小仓编码(warehouse_code) */ + @Excel(name = "所属小仓编码") + private String warehouseCode; - /** 场景ID */ - @Excel(name = "场景ID") + /** 场景编码(scene_code) */ + @Excel(name = "场景编码") private String sceneId; /** 执行人用户ID */ @@ -68,7 +68,7 @@ public class InventoryTask extends BaseEntity { /** 执行人姓名(扩展字段) */ private String userName; - /** 仓库名称(扩展字段) */ + /** 小仓名称(扩展字段) */ private String warehouseName; /** 场景名称(扩展字段) */ @@ -82,8 +82,8 @@ public class InventoryTask extends BaseEntity { public String getTaskName() { return taskName; } public void setTaskName(String taskName) { this.taskName = taskName; } - public String getWarehouseId() { return warehouseId; } - public void setWarehouseId(String warehouseId) { this.warehouseId = warehouseId; } + public String getWarehouseCode() { return warehouseCode; } + public void setWarehouseCode(String warehouseCode) { this.warehouseCode = warehouseCode; } public String getSceneId() { return sceneId; } public void setSceneId(String sceneId) { this.sceneId = sceneId; } @@ -129,7 +129,7 @@ public class InventoryTask extends BaseEntity { return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) .append("id", getId()) .append("taskName", getTaskName()) - .append("warehouseId", getWarehouseId()) + .append("warehouseCode", getWarehouseCode()) .append("warehouseName", getWarehouseName()) .append("sceneId", getSceneId()) .append("sceneName", getSceneName()) diff --git a/src/main/java/com/zg/project/Inventory/domain/entity/PrintRfid.java b/src/main/java/com/zg/project/inventory/domain/entity/PrintRfid.java similarity index 96% rename from src/main/java/com/zg/project/Inventory/domain/entity/PrintRfid.java rename to src/main/java/com/zg/project/inventory/domain/entity/PrintRfid.java index 66491ff..6493040 100644 --- a/src/main/java/com/zg/project/Inventory/domain/entity/PrintRfid.java +++ b/src/main/java/com/zg/project/inventory/domain/entity/PrintRfid.java @@ -1,4 +1,4 @@ -package com.zg.project.Inventory.AutoInventory.domain.entity; +package com.zg.project.inventory.AutoInventory.domain.entity; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; diff --git a/src/main/java/com/zg/project/Inventory/domain/entity/Sod.java b/src/main/java/com/zg/project/inventory/domain/entity/Sod.java similarity index 99% rename from src/main/java/com/zg/project/Inventory/domain/entity/Sod.java rename to src/main/java/com/zg/project/inventory/domain/entity/Sod.java index 1d36aa7..4a5e7d1 100644 --- a/src/main/java/com/zg/project/Inventory/domain/entity/Sod.java +++ b/src/main/java/com/zg/project/inventory/domain/entity/Sod.java @@ -1,4 +1,4 @@ -package com.zg.project.Inventory.domain.entity; +package com.zg.project.inventory.domain.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; diff --git a/src/main/java/com/zg/project/Inventory/domain/vo/ChartDataVO.java b/src/main/java/com/zg/project/inventory/domain/vo/ChartDataVO.java similarity index 88% rename from src/main/java/com/zg/project/Inventory/domain/vo/ChartDataVO.java rename to src/main/java/com/zg/project/inventory/domain/vo/ChartDataVO.java index 7b6f6bf..e89b2ad 100644 --- a/src/main/java/com/zg/project/Inventory/domain/vo/ChartDataVO.java +++ b/src/main/java/com/zg/project/inventory/domain/vo/ChartDataVO.java @@ -1,4 +1,4 @@ -package com.zg.project.Inventory.domain.vo; +package com.zg.project.inventory.domain.vo; import lombok.AllArgsConstructor; import lombok.Data; diff --git a/src/main/java/com/zg/project/Inventory/domain/vo/InventoryMatchScanSimpleVO.java b/src/main/java/com/zg/project/inventory/domain/vo/InventoryMatchScanSimpleVO.java similarity index 88% rename from src/main/java/com/zg/project/Inventory/domain/vo/InventoryMatchScanSimpleVO.java rename to src/main/java/com/zg/project/inventory/domain/vo/InventoryMatchScanSimpleVO.java index 95146b3..6a2d5e0 100644 --- a/src/main/java/com/zg/project/Inventory/domain/vo/InventoryMatchScanSimpleVO.java +++ b/src/main/java/com/zg/project/inventory/domain/vo/InventoryMatchScanSimpleVO.java @@ -1,4 +1,4 @@ -package com.zg.project.Inventory.domain.vo; +package com.zg.project.inventory.domain.vo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; diff --git a/src/main/java/com/zg/project/Inventory/domain/vo/InventoryMatchScanVO.java b/src/main/java/com/zg/project/inventory/domain/vo/InventoryMatchScanVO.java similarity index 97% rename from src/main/java/com/zg/project/Inventory/domain/vo/InventoryMatchScanVO.java rename to src/main/java/com/zg/project/inventory/domain/vo/InventoryMatchScanVO.java index dd20d98..a84147f 100644 --- a/src/main/java/com/zg/project/Inventory/domain/vo/InventoryMatchScanVO.java +++ b/src/main/java/com/zg/project/inventory/domain/vo/InventoryMatchScanVO.java @@ -1,4 +1,4 @@ -package com.zg.project.Inventory.domain.vo; +package com.zg.project.inventory.domain.vo; import com.baomidou.mybatisplus.annotation.TableField; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/src/main/java/com/zg/project/Inventory/domain/vo/PcdeCntVO.java b/src/main/java/com/zg/project/inventory/domain/vo/PcdeCntVO.java similarity index 87% rename from src/main/java/com/zg/project/Inventory/domain/vo/PcdeCntVO.java rename to src/main/java/com/zg/project/inventory/domain/vo/PcdeCntVO.java index bb77145..16ba09f 100644 --- a/src/main/java/com/zg/project/Inventory/domain/vo/PcdeCntVO.java +++ b/src/main/java/com/zg/project/inventory/domain/vo/PcdeCntVO.java @@ -1,4 +1,4 @@ -package com.zg.project.Inventory.domain.vo; +package com.zg.project.inventory.domain.vo; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/src/main/java/com/zg/project/Inventory/domain/vo/PcdeCountVO.java b/src/main/java/com/zg/project/inventory/domain/vo/PcdeCountVO.java similarity index 71% rename from src/main/java/com/zg/project/Inventory/domain/vo/PcdeCountVO.java rename to src/main/java/com/zg/project/inventory/domain/vo/PcdeCountVO.java index 34e8c11..582a118 100644 --- a/src/main/java/com/zg/project/Inventory/domain/vo/PcdeCountVO.java +++ b/src/main/java/com/zg/project/inventory/domain/vo/PcdeCountVO.java @@ -1,4 +1,4 @@ -package com.zg.project.Inventory.domain.vo; +package com.zg.project.inventory.domain.vo; import lombok.Data; diff --git a/src/main/java/com/zg/project/Inventory/domain/vo/PcdeGroupCountVO.java b/src/main/java/com/zg/project/inventory/domain/vo/PcdeGroupCountVO.java similarity index 71% rename from src/main/java/com/zg/project/Inventory/domain/vo/PcdeGroupCountVO.java rename to src/main/java/com/zg/project/inventory/domain/vo/PcdeGroupCountVO.java index 1466ed7..fa62e66 100644 --- a/src/main/java/com/zg/project/Inventory/domain/vo/PcdeGroupCountVO.java +++ b/src/main/java/com/zg/project/inventory/domain/vo/PcdeGroupCountVO.java @@ -1,4 +1,4 @@ -package com.zg.project.Inventory.domain.vo; +package com.zg.project.inventory.domain.vo; import lombok.Data; diff --git a/src/main/java/com/zg/project/Inventory/domain/vo/RkInfoMatchVO.java b/src/main/java/com/zg/project/inventory/domain/vo/RkInfoMatchVO.java similarity index 85% rename from src/main/java/com/zg/project/Inventory/domain/vo/RkInfoMatchVO.java rename to src/main/java/com/zg/project/inventory/domain/vo/RkInfoMatchVO.java index 9d04d9e..af54537 100644 --- a/src/main/java/com/zg/project/Inventory/domain/vo/RkInfoMatchVO.java +++ b/src/main/java/com/zg/project/inventory/domain/vo/RkInfoMatchVO.java @@ -1,4 +1,4 @@ -package com.zg.project.Inventory.domain.vo; +package com.zg.project.inventory.domain.vo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; diff --git a/src/main/java/com/zg/project/Inventory/domain/vo/SodVO.java b/src/main/java/com/zg/project/inventory/domain/vo/SodVO.java similarity index 92% rename from src/main/java/com/zg/project/Inventory/domain/vo/SodVO.java rename to src/main/java/com/zg/project/inventory/domain/vo/SodVO.java index c21e4f0..d5362d4 100644 --- a/src/main/java/com/zg/project/Inventory/domain/vo/SodVO.java +++ b/src/main/java/com/zg/project/inventory/domain/vo/SodVO.java @@ -1,4 +1,4 @@ -package com.zg.project.Inventory.domain.vo; +package com.zg.project.inventory.domain.vo; import lombok.Data; diff --git a/src/main/java/com/zg/project/wisdom/controller/RkInfoController.java b/src/main/java/com/zg/project/wisdom/controller/RkInfoController.java index 38cf9d6..7a28529 100644 --- a/src/main/java/com/zg/project/wisdom/controller/RkInfoController.java +++ b/src/main/java/com/zg/project/wisdom/controller/RkInfoController.java @@ -46,12 +46,57 @@ public class RkInfoController extends BaseController */ // @PreAuthorize("@ss.hasPermi('wisdom:stock:list')") @PostMapping("/list") - public TableDataInfo list(@RequestBody RkInfoQueryDTO rkInfo) { - PageHelper.startPage(rkInfo.getPageNum(), rkInfo.getPageSize()); - List list = rkInfoService.selectRkInfoList(rkInfo); + public TableDataInfo list(@RequestBody RkInfoQueryDTO query) { + PageHelper.startPage( + query.getPageNum() == null ? 1 : query.getPageNum(), + query.getPageSize() == null ? 10 : query.getPageSize() + ); + + List list = rkInfoService.selectRkInfoList(query); return getDataTable(list); } + @PostMapping("/borrow/list") + public TableDataInfo borrowList(@RequestBody RkInfoQueryDTO query) { + + PageHelper.startPage( + query.getPageNum() == null ? 1 : query.getPageNum(), + query.getPageSize() == null ? 10 : query.getPageSize() + ); + + List list = rkInfoService.selectBorrowAndReturnList(query); + return getDataTable(list); + } + + + @PostMapping("/pageStatistics") + public Map pageStatistics(@RequestBody RkInfoQueryDTO dto) { + + // 使用 PageHelper 分页 + PageHelper.startPage(dto.getPageNum(), dto.getPageSize()); + List list = rkInfoService.selectAllRkInfo(dto); +// 统计金额 + Long sumMoney = rkInfoService.selectStatistics(dto); +// 统计库位 + Long pcdeCount = rkInfoService.selectPcde(dto); + Map dataInfo = new HashMap<>(); + dataInfo.put("dataList",getDataTable(list)); + dataInfo.put("sumMoney",sumMoney); + dataInfo.put("pcdeCount",pcdeCount); + return dataInfo; + + } + + /** + * 单据头信息:根据入库单号查询公共字段 + */ + @PreAuthorize("@ss.hasPermi('wisdom:stock:query')") + @GetMapping("/header/{billNo}") + public AjaxResult getHeaderByBillNo(@PathVariable String billNo) { + RkInfo header = rkInfoService.selectHeaderByBillNo(billNo); + return success(header); + } + @GetMapping("/pcode/{pcode}") public AjaxResult listRkInfoByPcode(@PathVariable String pcode) { List rows = rkInfoService.listRkInfoByPcode(pcode); @@ -230,7 +275,6 @@ public class RkInfoController extends BaseController */ @GetMapping("/delivery/list") public AjaxResult listDelivery(RkInfo query) { - // 保险起见,这里强制条件(也可以在 service 里写死) query.setIsChuku("1"); query.setIsDelivery("1"); List list = rkInfoService.selectDeliveryBillList(query); @@ -258,24 +302,6 @@ public class RkInfoController extends BaseController } - @PostMapping("/pageStatistics") - public Map pageStatistics(@RequestBody(required = false) RkInfoQueryDTO dto) { - - // 使用 PageHelper 分页 - PageHelper.startPage(dto.getPageNum(), dto.getPageSize()); - List list = rkInfoService.selectAllRkInfo(dto); -// 统计金额 - Long sumMoney = rkInfoService.selectStatistics(dto); -// 统计库位 - Long pcdeCount = rkInfoService.selectPcde(dto); - Map dataInfo = new HashMap<>(); - dataInfo.put("dataList",getDataTable(list)); - dataInfo.put("sumMoney",sumMoney); - dataInfo.put("pcdeCount",pcdeCount); - return dataInfo; - - } - // 根据玉田需求,新添加的接口 @PreAuthorize("@ss.hasPermi('wisdom:stock:edit')") @PostMapping("/editBill") diff --git a/src/main/java/com/zg/project/wisdom/domain/RkInfo.java b/src/main/java/com/zg/project/wisdom/domain/RkInfo.java index d7d63d5..8905c48 100644 --- a/src/main/java/com/zg/project/wisdom/domain/RkInfo.java +++ b/src/main/java/com/zg/project/wisdom/domain/RkInfo.java @@ -17,8 +17,7 @@ import com.zg.framework.web.domain.BaseEntity; * @author zg * @date 2025-05-28 */ -public class RkInfo extends BaseEntity -{ +public class RkInfo extends BaseEntity { private static final long serialVersionUID = 1L; /** 模糊搜索关键字(项目号、项目描述、物料号、物料描述、供应商编码、供应商名称,订单编号) */ @@ -48,7 +47,7 @@ public class RkInfo extends BaseEntity /** 物资类型 */ private String wlType; - /** 所属仓库 */ + /** 所属仓库(原始字段,表里存的仓库编码) */ private String cangku; /** 多状态查询:是否出库(如 0=入库, 1=出库 等) */ @@ -63,10 +62,34 @@ public class RkInfo extends BaseEntity @Excel(name = "物资类型名称") private String wlTypeName; - /** 所属仓库名称(联查显示用,导出专用) */ + /** 所属仓库名称(联查显示用,导出专用,对应 cangku) */ @Excel(name = "所属仓库名称") private String cangkuName; + /* ================== 新增:大仓 / 小仓信息(非 rk_info 表字段,联查 pcde_detail + warehouse_info) ================== */ + + /** 所属大仓编码 */ + @TableField(exist = false) + @Excel(name = "所属大仓编码") + private String parentWarehouseCode; + + /** 所属大仓名称 */ + @TableField(exist = false) + @Excel(name = "所属大仓名称") + private String parentWarehouseName; + + /** 所属小仓编码 */ + @TableField(exist = false) + @Excel(name = "所属小仓编码") + private String warehouseCode; + + /** 所属小仓名称 */ + @TableField(exist = false) + @Excel(name = "所属小仓名称") + private String warehouseName; + + /* =============================================================================================================== */ + /** 入库时间(用户操作入库的日期) */ @Excel(name = "入库时间", dateFormat = "yyyy-MM-dd HH:mm:ss") private Date rkTime; @@ -88,7 +111,7 @@ public class RkInfo extends BaseEntity /** 理货员名称(联查显示用,导出专用) */ private String lihuoYName; - /** 是否已出库(0未出库,1已出库) */ + /** 是否已出库(0已入库,1已出库,2待审批,3借料出库,4入库撤销,5出库撤销) */ @Excel(name = "是否已出库", readConverterExp = "0已入库,1已出库,2待审批,3借料出库,4入库撤销,5出库撤销") private String isChuku; @@ -100,7 +123,7 @@ public class RkInfo extends BaseEntity @Excel(name = "出库单据号") private String billNoCk; - /** 是否需要配送(0否 1是) */ + /** 是否需要配送(0否 1是 2配送中 3配送完成) */ @Excel(name = "是否需要配送", readConverterExp = "0=否,1=是,2=配送中,3=配送完成") private String isDelivery; @@ -170,11 +193,11 @@ public class RkInfo extends BaseEntity @Excel(name = "实际入库数量") private BigDecimal realQty; - /** 库位码 */ + /** 库位码(编码) */ @Excel(name = "库位码") private String pcode; - /** 库位主键ID */ + /** 库位主键ID(pcde_detail.id) */ @Excel(name = "库位主键ID") private String pcodeId; @@ -186,7 +209,7 @@ public class RkInfo extends BaseEntity @Excel(name = "实物ID") private String entityId; - /** 一货一图 - 货物照片URL */ + /** 一货一图 - 货物照片URL(非表字段) */ @TableField(exist = false) private String photoUrl; @@ -217,15 +240,15 @@ public class RkInfo extends BaseEntity @Excel(name = "是否移库过") private String hasMoved; - /** 是否借料(0否 1是) */ + /** 是否借料(0否 1是 2已归还) */ @Excel(name = "是否借料", readConverterExp = "0=否,1=是,2=已归还") private String isBorrowed; - /** 签字图片URL(image_type = 0) */ + /** 签字图片URL(image_type = sign,非表字段) */ @TableField(exist = false) private String signImageUrl; - /** 现场图片URL(image_type = 1) */ + /** 现场图片URL(image_type = photo,非表字段) */ @TableField(exist = false) private String scenePhotoUrl; @@ -233,20 +256,20 @@ public class RkInfo extends BaseEntity @TableField(exist = false) private String auditResult; - /** 开始时间 */ - @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + /** 开始时间(查询条件) */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date startTime; - /** 结束时间 */ - @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + /** 结束时间(查询条件) */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date endTime; - /** 领用开始时间 */ + /** 领用开始时间(查询条件) */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @TableField(exist = false) private Date lyStartTime; - /** 领用结束时间 */ + /** 领用结束时间(查询条件) */ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @TableField(exist = false) private Date lyEndTime; @@ -262,63 +285,67 @@ public class RkInfo extends BaseEntity /** 是否删除(0 表示正常,1 表示已删除) */ private String isDelete; - // Getter 和 Setter 方法 + /* ======================= Getter / Setter ======================= */ + public String getKeyword() { return keyword; } public void setKeyword(String keyword) { this.keyword = keyword; } + public Long getId() { return id; } public void setId(Long id) { this.id = id; } - public List getIds() { - return ids; - } + public List getIds() { return ids; } + public void setIds(List ids) { this.ids = ids; } - public void setIds(List ids) { - this.ids = ids; - } - public Long getGysJhId() { - return gysJhId; - } + public Long getGysJhId() { return gysJhId; } + public void setGysJhId(Long gysJhId) { this.gysJhId = gysJhId; } - public void setGysJhId(Long gysJhId) { - this.gysJhId = gysJhId; - } + public String getApproverId() { return approverId; } + public void setApproverId(String approverId) { this.approverId = approverId; } - public String getApproverId() { - return approverId; - } - - public void setApproverId(String approverId) { - this.approverId = approverId; - } public Long getStockAge() { return stockAge; } public void setStockAge(Long stockAge) { this.stockAge = stockAge; } + public String getRkType() { return rkType; } public void setRkType(String rkType) { this.rkType = rkType; } + public String getWlType() { return wlType; } public void setWlType(String wlType) { this.wlType = wlType; } + public String getCangku() { return cangku; } public void setCangku(String cangku) { this.cangku = cangku; } + + public List getIsChukuList() { return isChukuList; } + public void setIsChukuList(List isChukuList) { this.isChukuList = isChukuList; } + public String getRkTypeName() { return rkTypeName; } public void setRkTypeName(String rkTypeName) { this.rkTypeName = rkTypeName; } + public String getWlTypeName() { return wlTypeName; } public void setWlTypeName(String wlTypeName) { this.wlTypeName = wlTypeName; } + public String getCangkuName() { return cangkuName; } public void setCangkuName(String cangkuName) { this.cangkuName = cangkuName; } + + public String getParentWarehouseCode() { return parentWarehouseCode; } + public void setParentWarehouseCode(String parentWarehouseCode) { this.parentWarehouseCode = parentWarehouseCode; } + + public String getParentWarehouseName() { return parentWarehouseName; } + public void setParentWarehouseName(String parentWarehouseName) { this.parentWarehouseName = parentWarehouseName; } + + public String getWarehouseCode() { return warehouseCode; } + public void setWarehouseCode(String warehouseCode) { this.warehouseCode = warehouseCode; } + + public String getWarehouseName() { return warehouseName; } + public void setWarehouseName(String warehouseName) { this.warehouseName = warehouseName; } + public Date getRkTime() { return rkTime; } public void setRkTime(Date rkTime) { this.rkTime = rkTime; } - public Date getBorrowTime() { - return borrowTime; - } - public void setBorrowTime(Date borrowTime) { - this.borrowTime = borrowTime; - } - public Date getReturnTime() { - return returnTime; - } - public void setReturnTime(Date returnTime) { - this.returnTime = returnTime; - } + public Date getBorrowTime() { return borrowTime; } + public void setBorrowTime(Date borrowTime) { this.borrowTime = borrowTime; } + + public Date getReturnTime() { return returnTime; } + public void setReturnTime(Date returnTime) { this.returnTime = returnTime; } public String getLihuoY() { return lihuoY; } public void setLihuoY(String lihuoY) { this.lihuoY = lihuoY; } @@ -326,199 +353,158 @@ public class RkInfo extends BaseEntity public String getLihuoYName() { return lihuoYName; } public void setLihuoYName(String lihuoYName) { this.lihuoYName = lihuoYName; } - public List getIsChukuList() { - return isChukuList; - } - - public void setIsChukuList(List isChukuList) { - this.isChukuList = isChukuList; - } public String getIsChuku() { return isChuku; } public void setIsChuku(String isChuku) { this.isChuku = isChuku; } + public String getBillNo() { return billNo; } public void setBillNo(String billNo) { this.billNo = billNo; } + public String getBillNoCk() { return billNoCk; } public void setBillNoCk(String billNoCk) { this.billNoCk = billNoCk; } + + public String getIsDelivery() { return isDelivery; } + public void setIsDelivery(String isDelivery) { this.isDelivery = isDelivery; } + public String getXj() { return xj; } public void setXj(String xj) { this.xj = xj; } + public String getXmNo() { return xmNo; } public void setXmNo(String xmNo) { this.xmNo = xmNo; } + public String getXmMs() { return xmMs; } public void setXmMs(String xmMs) { this.xmMs = xmMs; } + + public String getXmNoCk() { return xmNoCk; } + public void setXmNoCk(String xmNoCk) { this.xmNoCk = xmNoCk; } + + public String getXmMsCk() { return xmMsCk; } + public void setXmMsCk(String xmMsCk) { this.xmMsCk = xmMsCk; } + public String getWlNo() { return wlNo; } public void setWlNo(String wlNo) { this.wlNo = wlNo; } + public String getWlMs() { return wlMs; } public void setWlMs(String wlMs) { this.wlMs = wlMs; } + public String getGysNo() { return gysNo; } public void setGysNo(String gysNo) { this.gysNo = gysNo; } + public String getGysMc() { return gysMc; } public void setGysMc(String gysMc) { this.gysMc = gysMc; } + public BigDecimal getJhAmt() { return jhAmt; } public void setJhAmt(BigDecimal jhAmt) { this.jhAmt = jhAmt; } + public BigDecimal getHtDj() { return htDj; } public void setHtDj(BigDecimal htDj) { this.htDj = htDj; } + public String getSapNo() { return sapNo; } public void setSapNo(String sapNo) { this.sapNo = sapNo; } + public String getXh() { return xh; } public void setXh(String xh) { this.xh = xh; } + public Long getJhQty() { return jhQty; } public void setJhQty(Long jhQty) { this.jhQty = jhQty; } + public Long getHtQty() { return htQty; } public void setHtQty(Long htQty) { this.htQty = htQty; } + public String getDw() { return dw; } public void setDw(String dw) { this.dw = dw; } + public BigDecimal getRealQty() { return realQty; } public void setRealQty(BigDecimal realQty) { this.realQty = realQty; } + public String getPcode() { return pcode; } public void setPcode(String pcode) { this.pcode = pcode; } + public String getPcodeId() { return pcodeId; } public void setPcodeId(String pcodeId) { this.pcodeId = pcodeId; } + public String getTrayCode() { return trayCode; } public void setTrayCode(String trayCode) { this.trayCode = trayCode; } + public String getEntityId() { return entityId; } public void setEntityId(String entityId) { this.entityId = entityId; } - public String getPhotoUrl() { - return photoUrl; - } - public void setPhotoUrl(String photoUrl) { - this.photoUrl = photoUrl; - } + public String getPhotoUrl() { return photoUrl; } + public void setPhotoUrl(String photoUrl) { this.photoUrl = photoUrl; } + public String getCkLihuoY() { return ckLihuoY; } public void setCkLihuoY(String ckLihuoY) { this.ckLihuoY = ckLihuoY; } + public String getCkType() { return ckType; } public void setCkType(String ckType) { this.ckType = ckType; } + public String getCkTypeName() { return ckTypeName; } public void setCkTypeName(String ckTypeName) { this.ckTypeName = ckTypeName; } + public String getTeamCode() { return teamCode; } public void setTeamCode(String teamCode) { this.teamCode = teamCode; } + public String getTeamName() { return teamName; } public void setTeamName(String teamName) { this.teamName = teamName; } + public Date getLyTime() { return lyTime; } public void setLyTime(Date lyTime) { this.lyTime = lyTime; } + public String getCkRemark() { return ckRemark; } public void setCkRemark(String ckRemark) { this.ckRemark = ckRemark; } + public String getStatus() { return status; } public void setStatus(String status) { this.status = status; } + public String getHasMoved() { return hasMoved; } public void setHasMoved(String hasMoved) { this.hasMoved = hasMoved; } - public String getXmNoCk() { - return xmNoCk; - } - public void setXmNoCk(String xmNoCk) { - this.xmNoCk = xmNoCk; - } + public String getIsBorrowed() { return isBorrowed; } + public void setIsBorrowed(String isBorrowed) { this.isBorrowed = isBorrowed; } - public String getXmMsCk() { - return xmMsCk; - } + public String getSignImageUrl() { return signImageUrl; } + public void setSignImageUrl(String signImageUrl) { this.signImageUrl = signImageUrl; } - public void setXmMsCk(String xmMsCk) { - this.xmMsCk = xmMsCk; - } + public String getScenePhotoUrl() { return scenePhotoUrl; } + public void setScenePhotoUrl(String scenePhotoUrl) { this.scenePhotoUrl = scenePhotoUrl; } - public Date getStartTime() { - return startTime; - } + public String getAuditResult() { return auditResult; } + public void setAuditResult(String auditResult) { this.auditResult = auditResult; } - public void setStartTime(Date startTime) { - this.startTime = startTime; - } + public Date getStartTime() { return startTime; } + public void setStartTime(Date startTime) { this.startTime = startTime; } - public Date getEndTime() { - return endTime; - } + public Date getEndTime() { return endTime; } + public void setEndTime(Date endTime) { this.endTime = endTime; } - public void setEndTime(Date endTime) { - this.endTime = endTime; - } + public Date getLyStartTime() { return lyStartTime; } + public void setLyStartTime(Date lyStartTime) { this.lyStartTime = lyStartTime; } - public Date getLyStartTime() { - return lyStartTime; - } + public Date getLyEndTime() { return lyEndTime; } + public void setLyEndTime(Date lyEndTime) { this.lyEndTime = lyEndTime; } - public void setLyStartTime(Date lyStartTime) { - this.lyStartTime = lyStartTime; - } + public String getFycde1() { return fycde1; } + public void setFycde1(String fycde1) { this.fycde1 = fycde1; } - public Date getLyEndTime() { - return lyEndTime; - } - - public void setLyEndTime(Date lyEndTime) { - this.lyEndTime = lyEndTime; - } - - public String getIsBorrowed() { - return isBorrowed; - } - - public void setIsBorrowed(String isBorrowed) { - this.isBorrowed = isBorrowed; - } - - public String getSignImageUrl() { - return signImageUrl; - } - - public void setSignImageUrl(String signImageUrl) { - this.signImageUrl = signImageUrl; - } - - public String getScenePhotoUrl() { - return scenePhotoUrl; - } - - public void setScenePhotoUrl(String scenePhotoUrl) { - this.scenePhotoUrl = scenePhotoUrl; - } - - public String getAuditResult() { - return auditResult; - } - - public void setAuditResult(String auditResult) { - this.auditResult = auditResult; - } - - public String getFycde1() { - return fycde1; - } - - public void setFycde1(String fycde1) { - this.fycde1 = fycde1; - } - - public String getFycde2() { - return fycde2; - } - - public void setFycde2(String fycde2) { - this.fycde2 = fycde2; - } + public String getFycde2() { return fycde2; } + public void setFycde2(String fycde2) { this.fycde2 = fycde2; } public String getIsDelete() { return isDelete; } public void setIsDelete(String isDelete) { this.isDelete = isDelete; } - - public String getIsDelivery() { - return isDelivery; - } - - public void setIsDelivery(String isDelivery) { - this.isDelivery = isDelivery; - } - @Override public String toString() { - return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) .append("id", getId()) .append("gysJhId", getGysJhId()) .append("approverId", getApproverId()) .append("rkType", getRkType()) .append("wlType", getWlType()) .append("cangku", getCangku()) + .append("cangkuName", getCangkuName()) + .append("parentWarehouseCode", getParentWarehouseCode()) + .append("parentWarehouseName", getParentWarehouseName()) + .append("warehouseCode", getWarehouseCode()) + .append("warehouseName", getWarehouseName()) .append("rkTime", getRkTime()) .append("borrowTime", getBorrowTime()) .append("returnTime", getReturnTime()) diff --git a/src/main/java/com/zg/project/wisdom/domain/dto/PcRkInfoBatchDTO.java b/src/main/java/com/zg/project/wisdom/domain/dto/PcRkInfoBatchDTO.java index 9bcad5c..1c2da5d 100644 --- a/src/main/java/com/zg/project/wisdom/domain/dto/PcRkInfoBatchDTO.java +++ b/src/main/java/com/zg/project/wisdom/domain/dto/PcRkInfoBatchDTO.java @@ -11,6 +11,7 @@ import java.util.List; @Data public class PcRkInfoBatchDTO { + /** 要追加到的入库单据号(必填) */ private String billNo; @@ -26,8 +27,17 @@ public class PcRkInfoBatchDTO { /** 理货员 */ private String lihuoY; - /** 所属仓库 */ - private String cangku; + /** 所属大仓编码(父仓,对应 warehouse_info.parent_warehouse_code)——只用于选择,不直接落库 */ + private String parentWarehouseCode; + + /** 所属大仓名称(冗余展示,可选) */ + private String parentWarehouseName; + + /** 所属小仓编码(真正落到 rk_info.cangku 的字段) */ + private String warehouseCode; + + /** 所属小仓名称(冗余展示,可选) */ + private String warehouseName; /** 入库记录列表(每条为完整入库项) */ private List rkList; @@ -35,8 +45,7 @@ public class PcRkInfoBatchDTO { /** 发起人签字图片 URL(单张) */ private String signatureUrl; - // zhangjinbo 根据玉田需求 添加入库时间 + // zhangjinbo 根据玉田需求 添加入库时间 private Date rkTime; - } diff --git a/src/main/java/com/zg/project/wisdom/domain/dto/RkInfoBatchDTO.java b/src/main/java/com/zg/project/wisdom/domain/dto/RkInfoBatchDTO.java index c2da9f5..90aad09 100644 --- a/src/main/java/com/zg/project/wisdom/domain/dto/RkInfoBatchDTO.java +++ b/src/main/java/com/zg/project/wisdom/domain/dto/RkInfoBatchDTO.java @@ -21,6 +21,19 @@ public class RkInfoBatchDTO { /** 所属仓库 */ private String cangku; + /** 大仓编码 */ + private String parentWarehouseCode; + + /** 大仓名称(前端展示用,不落表) */ + private String parentWarehouseName; + + /** 小仓编码(warehouse_info.warehouse_code)——真正落到 rk_info.cangku 的值 */ + private String warehouseCode; + + /** 小仓名称(前端展示用,不落表) */ + private String warehouseName; + + /** 入库物料列表 */ private List rkList; diff --git a/src/main/java/com/zg/project/wisdom/domain/dto/RkInfoQueryDTO.java b/src/main/java/com/zg/project/wisdom/domain/dto/RkInfoQueryDTO.java index fbc2849..8d16220 100644 --- a/src/main/java/com/zg/project/wisdom/domain/dto/RkInfoQueryDTO.java +++ b/src/main/java/com/zg/project/wisdom/domain/dto/RkInfoQueryDTO.java @@ -20,10 +20,10 @@ public class RkInfoQueryDTO extends RkInfo { private Integer pageSize; /** 开始时间 */ - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private Date statDate; /** 结束时间 */ - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private Date endDate; } diff --git a/src/main/java/com/zg/project/wisdom/mapper/RkInfoMapper.java b/src/main/java/com/zg/project/wisdom/mapper/RkInfoMapper.java index e5ea0e7..1397b8b 100644 --- a/src/main/java/com/zg/project/wisdom/mapper/RkInfoMapper.java +++ b/src/main/java/com/zg/project/wisdom/mapper/RkInfoMapper.java @@ -2,11 +2,10 @@ package com.zg.project.wisdom.mapper; import java.util.List; -import com.zg.project.Inventory.domain.vo.PcdeCntVO; -import com.zg.project.Inventory.domain.vo.RkInfoMatchVO; +import com.zg.project.inventory.domain.vo.PcdeCntVO; +import com.zg.project.inventory.domain.vo.RkInfoMatchVO; import com.zg.project.wisdom.domain.RkInfo; import com.zg.project.wisdom.domain.dto.RkInfoQueryDTO; -import com.zg.project.wisdom.domain.vo.PcodeQtyVO; import org.apache.ibatis.annotations.Param; /** @@ -245,4 +244,12 @@ public interface RkInfoMapper * 查询出库单据 */ List selectDeliveryCkList(@Param("q") RkInfo query); + + + /** + * 借料 / 还料专用列表查询 + */ + List selectBorrowAndReturnList(RkInfo rkInfo); + + RkInfo selectHeaderByBillNo(String billNo); } diff --git a/src/main/java/com/zg/project/wisdom/service/IRkInfoService.java b/src/main/java/com/zg/project/wisdom/service/IRkInfoService.java index 1020c9f..2fdf2e2 100644 --- a/src/main/java/com/zg/project/wisdom/service/IRkInfoService.java +++ b/src/main/java/com/zg/project/wisdom/service/IRkInfoService.java @@ -1,14 +1,12 @@ package com.zg.project.wisdom.service; import java.util.List; -import java.util.Map; -import com.zg.project.Inventory.domain.dto.QueryDTO; -import com.zg.project.Inventory.domain.vo.ChartDataVO; +import com.zg.project.inventory.domain.dto.QueryDTO; +import com.zg.project.inventory.domain.vo.ChartDataVO; import com.zg.project.wisdom.domain.RkInfo; import com.zg.project.wisdom.domain.dto.*; import com.zg.project.wisdom.domain.vo.DeliveryBillVO; -import com.zg.project.wisdom.domain.vo.PcodeQtyVO; /** * 库存单据主Service接口 @@ -187,4 +185,12 @@ public interface IRkInfoService * @return */ List selectDeliveryBillList(RkInfo query); + + List selectBorrowAndReturnList(RkInfoQueryDTO query); + + + /** + * 根据入库单号查询单据头公共信息 + */ + RkInfo selectHeaderByBillNo(String billNo); } diff --git a/src/main/java/com/zg/project/wisdom/service/impl/MoveRecordServiceImpl.java b/src/main/java/com/zg/project/wisdom/service/impl/MoveRecordServiceImpl.java index 1f62026..5ed0aa5 100644 --- a/src/main/java/com/zg/project/wisdom/service/impl/MoveRecordServiceImpl.java +++ b/src/main/java/com/zg/project/wisdom/service/impl/MoveRecordServiceImpl.java @@ -9,6 +9,8 @@ import com.zg.common.exception.ServiceException; import com.zg.common.utils.DateUtils; import com.zg.common.utils.EntityFillUtils; import com.zg.common.utils.SecurityUtils; +import com.zg.project.information.domain.PcdeDetail; +import com.zg.project.information.mapper.PcdeDetailMapper; import com.zg.project.wisdom.domain.RkInfo; import com.zg.project.wisdom.domain.dto.MoveRequestDTO; import com.zg.project.wisdom.domain.dto.MoveTargetItem; @@ -36,6 +38,8 @@ public class MoveRecordServiceImpl implements IMoveRecordService @Autowired private RkInfoMapper rkInfoMapper; + @Autowired + private PcdeDetailMapper pcdeDetailMapper; /** * 查询移库记录 * @@ -111,18 +115,32 @@ public class MoveRecordServiceImpl implements IMoveRecordService @Override @Transactional(rollbackFor = Exception.class) public void processMove(MoveRequestDTO dto) { - // 查询原始库存记录 + + // 0. 基本校验 + if (dto == null || dto.getFromRkId() == null) { + throw new ServiceException("原库存ID不能为空"); + } + if (dto.getTargets() == null || dto.getTargets().isEmpty()) { + throw new ServiceException("目标位置列表不能为空"); + } + + // 0.1 校验每个目标库位与仓库关系 + for (MoveTargetItem target : dto.getTargets()) { + validatePcodeWarehouseRelation(target.getToPcode(), target.getToCangku()); + } + + // 1. 查询原始库存记录 RkInfo original = rkInfoMapper.selectRkInfoById(dto.getFromRkId()); if (original == null || "1".equals(original.getIsDelete())) { throw new ServiceException("原库存不存在或已删除"); } - // 计算目标总数量 + // 2. 计算目标总数量 BigDecimal totalQty = dto.getTargets().stream() .map(MoveTargetItem::getRealQty) .reduce(BigDecimal.ZERO, BigDecimal::add); - // 原始库存数量 + // 3. 原始库存数量 BigDecimal realQty = original.getRealQty(); if (realQty == null) { throw new ServiceException("原库存数量为空,无法进行比较"); @@ -132,18 +150,20 @@ public class MoveRecordServiceImpl implements IMoveRecordService throw new ServiceException("拆分总数量不能大于原库存数量"); } - // 操作信息 + // 4. 操作信息 String username = dto.getMovedBy(); Date now = DateUtils.parseDate(dto.getMovedAt()); - // 情况一:整库移库(目标总数量 = 原库存,且仅一个目标) + // ===== 情况一:整库移库(目标总数量 = 原库存,且仅一个目标)===== if (dto.getTargets().size() == 1 && totalQty.compareTo(realQty) == 0) { MoveTargetItem target = dto.getTargets().get(0); + // 这里 info 用于记录移库前的快照 RkInfo info = new RkInfo(); BeanUtils.copyProperties(original, info); - original.setCangku(target.getToCangku()); + // 更新原库存到新位置 + original.setWarehouseCode(target.getToCangku()); original.setPcode(target.getToPcode()); original.setTrayCode(target.getToTrayCode()); original.setHasMoved("1"); @@ -151,17 +171,16 @@ public class MoveRecordServiceImpl implements IMoveRecordService original.setUpdateTime(now); rkInfoMapper.updateRkInfo(original); - // 记录移库日志 + // 记录移库日志(从 info → target) moveRecordMapper.insertMoveRecord(createMoveRecord(info, target, dto)); return; } - // 情况二 & 三:需要新建多条库存记录 + // ===== 情况二 & 三:需要新建多条库存记录 ===== List insertList = new ArrayList<>(); - // 情况三:部分移库(目标总量 < 原库存) + // 情况三:部分移库(目标总量 < 原库存) → 原库存数量减少 if (totalQty.compareTo(realQty) < 0) { - // 原库存数量减少 original.setRealQty(realQty.subtract(totalQty)); original.setUpdateBy(username); original.setUpdateTime(now); @@ -174,6 +193,7 @@ public class MoveRecordServiceImpl implements IMoveRecordService // 新增多条目标库存 for (MoveTargetItem target : dto.getTargets()) { RkInfo newInfo = new RkInfo(); + // 注意:这里以 original 为模板(注意上面是否已修改过数量) BeanUtils.copyProperties(original, newInfo, "id"); newInfo.setCangku(target.getToCangku()); @@ -189,7 +209,7 @@ public class MoveRecordServiceImpl implements IMoveRecordService insertList.add(newInfo); - // 移库记录 + // 移库记录:从原库存 original → 每个 target moveRecordMapper.insertMoveRecord(createMoveRecord(original, target, dto)); } @@ -198,6 +218,30 @@ public class MoveRecordServiceImpl implements IMoveRecordService } } + /** + * 校验库位与仓库(小仓)关系: + * - 库位必须存在 + * - 库位所属小仓 warehouse_code == 目标仓库编码 toCangku + */ + private void validatePcodeWarehouseRelation(String pcode, String warehouseCode) { + if (org.apache.commons.lang3.StringUtils.isBlank(pcode)) { + throw new ServiceException("目标库位不能为空"); + } + if (org.apache.commons.lang3.StringUtils.isBlank(warehouseCode)) { + throw new ServiceException("目标仓库不能为空"); + } + + PcdeDetail detail = pcdeDetailMapper.selectByPcode(pcode); + if (detail == null) { + throw new ServiceException("目标库位不存在:" + pcode); + } + + // + if (!warehouseCode.equals(detail.getWarehouseCode())) { + throw new ServiceException("目标库位【" + pcode + "】不属于仓库【" + warehouseCode + "】,请检查移库目标设置"); + } + } + /** * 构建移库记录对象 * diff --git a/src/main/java/com/zg/project/wisdom/service/impl/RkInfoServiceImpl.java b/src/main/java/com/zg/project/wisdom/service/impl/RkInfoServiceImpl.java index 7cbc31e..0161f25 100644 --- a/src/main/java/com/zg/project/wisdom/service/impl/RkInfoServiceImpl.java +++ b/src/main/java/com/zg/project/wisdom/service/impl/RkInfoServiceImpl.java @@ -12,12 +12,12 @@ import com.zg.common.exception.ServiceException; import com.zg.common.utils.DateUtils; import com.zg.common.utils.SecurityUtils; import com.zg.common.utils.StringUtils; -import com.zg.project.Inventory.AutoInventory.mapper.InventoryMatchScanMapper; -import com.zg.project.Inventory.Task.mapper.InventoryTaskMapper; -import com.zg.project.Inventory.domain.dto.QueryDTO; -import com.zg.project.Inventory.domain.entity.InventoryMatchScan; -import com.zg.project.Inventory.domain.vo.ChartDataVO; -import com.zg.project.Inventory.domain.vo.PcdeCntVO; +import com.zg.project.inventory.AutoInventory.mapper.InventoryMatchScanMapper; +import com.zg.project.inventory.Task.mapper.InventoryTaskMapper; +import com.zg.project.inventory.domain.dto.QueryDTO; +import com.zg.project.inventory.domain.entity.InventoryMatchScan; +import com.zg.project.inventory.domain.vo.ChartDataVO; +import com.zg.project.inventory.domain.vo.PcdeCntVO; import com.zg.project.information.mapper.PcdeDetailMapper; import com.zg.project.system.service.ISysConfigService; import com.zg.project.wisdom.domain.AuditSignature; @@ -133,6 +133,48 @@ public class RkInfoServiceImpl implements IRkInfoService return list; } + @Override + public List selectBorrowAndReturnList(RkInfoQueryDTO query) { + boolean needAudit = "1".equals(configService.selectConfigByKey("rk.audit.enabled")); + + List list = rkInfoMapper.selectBorrowAndReturnList(query); + LocalDate today = LocalDate.now(); + + for (RkInfo info : list) { + // 计算库龄:这里也可以按 rk_time 算,你之前逻辑一样就行 + if (info.getRkTime() != null) { + LocalDate rkDate = info.getRkTime().toInstant() + .atZone(ZoneId.systemDefault()) + .toLocalDate(); + long days = ChronoUnit.DAYS.between(rkDate, today); + info.setStockAge(days); + } + + // 查询现场图片 + 审核结果(同原 list) + AuditSignature signature = auditSignatureMapper.selectPhotoUrlByRkId(info.getId()); + if (signature != null) { + info.setScenePhotoUrl(signature.getSignUrl()); + info.setAuditResult(signature.getAuditResult()); + info.setApproverId(signature.getApproverId()); + } else { + info.setScenePhotoUrl(null); + info.setAuditResult(null); + info.setApproverId(null); + } + } + + if (needAudit) { + list = list.stream() + .filter(info -> + info.getApproverId() == null || + "1".equals(info.getAuditResult()) + ) + .collect(Collectors.toList()); + } + + return list; + } + @Override public List selectGroupedByBill(RkInfoQueryDTO query) { // 读取审核开关(1=开启;其它=关闭) @@ -141,17 +183,53 @@ public class RkInfoServiceImpl implements IRkInfoService return rkInfoMapper.selectGroupedByBill(query, needAudit ? 1 : 0); } + @Override + public RkInfo selectHeaderByBillNo(String billNo) { + if (StringUtils.isBlank(billNo)) { + return null; + } + return rkInfoMapper.selectHeaderByBillNo(billNo); + } + /** * 修改库存单据主 * * @param rkInfo 库存单据主 * @return 结果 */ - @Override public int updateRkInfo(RkInfo rkInfo) { + // 通用审计字段 rkInfo.setUpdateTime(DateUtils.getNowDate()); rkInfo.setUpdateBy(SecurityUtils.getUserId().toString()); + + // 小仓编码:优先用前端传来的 warehouseCode,没有的话用 cangku + String warehouseCode = rkInfo.getWarehouseCode(); + if (StringUtils.isBlank(warehouseCode)) { + warehouseCode = rkInfo.getCangku(); + } + + // 库位编码 + String pcode = rkInfo.getPcode(); + + // 只有当小仓 + 库位都有的时候才做这层校验 + if (StringUtils.isNotBlank(warehouseCode) && StringUtils.isNotBlank(pcode)) { + + // 临时组装一个 PcRkInfoBatchDTO,专门给 validateWarehouseAndPcode 用 + PcRkInfoBatchDTO tmpDto = new PcRkInfoBatchDTO(); + tmpDto.setWarehouseCode(warehouseCode); + + List rkList = new ArrayList<>(); + PcRkInfoItemDTO item = new PcRkInfoItemDTO(); + item.setPcode(pcode); + rkList.add(item); + + tmpDto.setRkList(rkList); + + validateWarehouseAndPcode(tmpDto); + } + + // ====== 校验通过再更新 ====== return rkInfoMapper.updateRkInfo(rkInfo); } @@ -276,6 +354,7 @@ public class RkInfoServiceImpl implements IRkInfoService @Override @Transactional(rollbackFor = Exception.class) public void batchInsert(PcRkInfoBatchDTO dto) { + String billNo = BillNoUtil.generateTodayBillNo("RK"); List list = dto.getRkList(); List rkInfos = new ArrayList<>(); @@ -285,7 +364,10 @@ public class RkInfoServiceImpl implements IRkInfoService String userId = SecurityUtils.getUserId().toString(); Date now = DateUtils.getNowDate(); - // ✅ 第1步:构建 gysJhId -> realQty 映射 + // 🚩 0. 校验库位是否属于当前小仓 + validateWarehouseAndPcode(dto); + + // ✅ 1. 供应计划扣减映射 Map realQtyMap = list.stream() .filter(item -> item.getGysJhId() != null && item.getRealQty() != null) .collect(Collectors.toMap( @@ -294,103 +376,113 @@ public class RkInfoServiceImpl implements IRkInfoService (a, b) -> b )); - // ✅ 第2-4步:若包含供应计划ID,则处理计划扣减与状态更新 + // ✅ 2-4. 供应计划扣减&状态更新(保留你原来的逻辑) if (!realQtyMap.isEmpty()) { - // ✅ 查询对应供应计划 List jhList = gysJhMapper.selectByIds(new ArrayList<>(realQtyMap.keySet())); Set idsToUpdateStatus = new HashSet<>(); - // ✅ 更新 jh_qty 和 status(根据是否开启审核判断逻辑) for (GysJh jh : jhList) { Long jhId = jh.getId(); BigDecimal planQty = BigDecimal.valueOf(jh.getJhQty()); BigDecimal realQty = realQtyMap.get(jhId); - if (realQty == null) continue; + if (realQty == null) { + continue; + } boolean isEqual = realQty.compareTo(planQty) == 0; if (!isEqual) { - // 实到数量小于计划数量,执行扣减 + 设为部分入库(2) + // 部分入库:扣减计划数量 gysJhMapper.decreaseJhQtyById(jhId, realQty); if (!needAudit) { gysJhMapper.updateStatusById(jhId, "2"); // 2 = 部分入库 } } else { - // 实到数量等于计划数量,状态设为全部入库(1),不做扣减 + // 全部入库:状态=1 if (!needAudit) { gysJhMapper.updateStatusById(jhId, "1"); // 1 = 全部入库 } } } - // ✅ 批量更新 status = 2 if (!idsToUpdateStatus.isEmpty()) { gysJhMapper.batchUpdateStatusByIds(idsToUpdateStatus); } } - // ✅ 第5步:构建 RkInfo 入库记录 + // ✅ 5. 构建 RkInfo 入库记录(注意:小仓 = dto.getWarehouseCode()) for (PcRkInfoItemDTO item : list) { RkInfo rk = new RkInfo(); + // 物料、项目、供应商、xj(县局)、数量等等从 item 拷贝 BeanUtils.copyProperties(item, rk); - String encodedId = pcdeDetailMapper.selectEncodedIdByPcode(item.getPcode()); - rk.setPcodeId(encodedId); + rk.setBillNo(billNo); rk.setRkType(dto.getRkType()); rk.setWlType(dto.getWlType()); rk.setLihuoY(dto.getLihuoY()); -// rk.setRkTime(now); - rk.setRkTime(dto.getRkTime()); //zhangjinbo 2025-11-03根据玉田需求进行修改 - rk.setCangku(dto.getCangku()); + + // 🚩 所属小仓:页面选的小仓编码 + rk.setCangku(dto.getWarehouseCode()); + + // 🚩 入库时间:页面传,若为空则使用当前时间 + rk.setRkTime(dto.getRkTime() != null ? dto.getRkTime() : DateUtils.getNowDate()); + + // 库位 encodedId + String encodedId = pcdeDetailMapper.selectEncodedIdByPcode(item.getPcode()); + rk.setPcodeId(encodedId); + rk.setCreateBy(userId); rk.setCreateTime(now); rk.setIsDelete("0"); + rk.setGysJhId(item.getGysJhId()); rk.setFycde1(item.getFycde1()); rk.setFycde2(item.getFycde2()); if (needAudit) { - rk.setStatus("0"); // 待审核 - rk.setIsChuku("2"); // 待入库 + rk.setStatus("0"); // 待审核 + rk.setIsChuku("2"); // 待入库(审核中) } else { - rk.setStatus("1"); // 审核通过 - rk.setIsChuku("0"); // 已入库 + rk.setStatus("1"); // 审核通过 + rk.setIsChuku("0"); // 已入库 } rkInfos.add(rk); } - // ✅ 第6步:保存入库记录 + // ✅ 6. 批量插入 rk_info rkInfoMapper.batchInsertRkInfo(rkInfos); - // ✅ 第7步:照片记录(审核开启时) - for (int i = 0; i < rkInfos.size(); i++) { - RkInfo rk = rkInfos.get(i); - PcRkInfoItemDTO item = list.get(i); + // ✅ 7. 一货一图(现场照片)记录(审核开启时) + if (needAudit) { + for (int i = 0; i < rkInfos.size(); i++) { + RkInfo rk = rkInfos.get(i); + PcRkInfoItemDTO item = list.get(i); - if (needAudit && StringUtils.isNotBlank(item.getPhotoUrl())) { - AuditSignature photo = new AuditSignature(); - photo.setRkId(rk.getId()); - photo.setBillNo(billNo); - photo.setBillType("0"); - photo.setAuditResult("2"); - photo.setSignerId(userId); - photo.setSignerRole("2"); - photo.setImageType("1"); - photo.setSignUrl(item.getPhotoUrl()); - photo.setSignTime(now); - photo.setPcode(item.getPcode()); - photo.setTrayCode(item.getTrayCode()); - photo.setApproverId(dto.getApproverId()); - photo.setIsCurrent("1"); - photo.setIsDelete("0"); - photo.setCreateBy(userId); - photo.setCreateTime(now); - records.add(photo); + if (StringUtils.isNotBlank(item.getPhotoUrl())) { + AuditSignature photo = new AuditSignature(); + photo.setRkId(rk.getId()); + photo.setBillNo(billNo); + photo.setBillType("0"); // 入库 + photo.setAuditResult("2"); // 待审核 + photo.setSignerId(userId); + photo.setSignerRole("2"); // 现场照片 + photo.setImageType("1"); // photo + photo.setSignUrl(item.getPhotoUrl()); + photo.setSignTime(now); + photo.setPcode(item.getPcode()); + photo.setTrayCode(item.getTrayCode()); + photo.setApproverId(dto.getApproverId()); + photo.setIsCurrent("1"); + photo.setIsDelete("0"); + photo.setCreateBy(userId); + photo.setCreateTime(now); + records.add(photo); + } } } - // ✅ 第8步:发起人签字记录(审核开启时) + // ✅ 8. 发起人签字记录(审核开启时) if (needAudit) { boolean hasOldSign = auditSignatureMapper.existsCurrentSigner(billNo, "0"); if (hasOldSign) { @@ -399,33 +491,132 @@ public class RkInfoServiceImpl implements IRkInfoService AuditSignature mainSign = new AuditSignature(); mainSign.setBillNo(billNo); - mainSign.setBillType("0"); + mainSign.setBillType("0"); // 入库 mainSign.setSignerId(userId); - mainSign.setSignerRole("0"); + mainSign.setSignerRole("0"); // 发起人 mainSign.setApproverId(dto.getApproverId()); mainSign.setSignUrl(dto.getSignatureUrl()); - mainSign.setImageType("0"); + mainSign.setImageType("0"); // sign mainSign.setSignTime(now); mainSign.setIsCurrent("1"); - mainSign.setAuditResult("2"); + mainSign.setAuditResult("2"); // 待审核 mainSign.setIsDelete("0"); mainSign.setCreateBy(userId); mainSign.setCreateTime(now); records.add(mainSign); + } + if (needAudit && !records.isEmpty()) { auditSignatureMapper.batchInsert(records); } } + /** + * 校验:前端传入的小仓编码与库位所属小仓是否一致 + * + * 规则: + * 1. dto.warehouseCode 不能为空 + * 2. 每一条 rkList 里的 pcode 不能为空 + * 3. 根据 pcode 查询 pcde_detail 表中的 warehouse_code + * - 如果查不到:提示“库位编码 xxx 不存在” + * - 如果与 dto.warehouseCode 不一致:提示“库位编码 xxx 不属于小仓 yyy” + */ + private void validateWarehouseAndPcode(PcRkInfoBatchDTO dto) { + String warehouseCode = dto.getWarehouseCode(); + if (StringUtils.isBlank(warehouseCode)) { + throw new ServiceException("所属小仓编码不能为空"); + } + + List rkList = dto.getRkList(); + if (rkList == null || rkList.isEmpty()) { + throw new ServiceException("入库明细不能为空"); + } + + for (PcRkInfoItemDTO item : rkList) { + String pcode = item.getPcode(); + if (StringUtils.isBlank(pcode)) { + throw new ServiceException("库位编码不能为空"); + } + + // 根据库位码查询所属小仓 + String dbWarehouseCode = pcdeDetailMapper.selectWarehouseCodeByPcode(pcode); + + if (StringUtils.isBlank(dbWarehouseCode)) { + throw new ServiceException("库位编码【" + pcode + "】不存在或未配置所属小仓"); + } + + if (!warehouseCode.equals(dbWarehouseCode)) { + throw new ServiceException("库位编码【" + pcode + "】不属于小仓【" + warehouseCode + "】,请检查入库数据"); + } + } + } + + + /** + * APP 入库校验: + * 校验:前端传入的小仓编码与库位所属小仓是否一致 + * + * 规则: + * 1. dto.warehouseCode 不能为空 + * 2. 每一条 rkList 不为空,且每个 scan 中的 pcode 不能为空 + * 3. 根据 pcode 查询 pcde_detail 表中的 warehouse_code + * - 如果查不到:提示“库位编码 xxx 不存在” + * - 如果与 dto.warehouseCode 不一致:提示“库位编码 xxx 不属于小仓 yyy” + */ + private void validateWarehouseAndPcode(RkInfoBatchDTO dto) { + // 1) 小仓编码必填 + String warehouseCode = dto.getWarehouseCode(); + if (StringUtils.isBlank(warehouseCode)) { + throw new ServiceException("所属小仓编码不能为空"); + } + + // 2) rkList 必须有数据 + List rkList = dto.getRkList(); + if (rkList == null || rkList.isEmpty()) { + throw new ServiceException("rkList 入库明细列表不能为空"); + } + + // 3) 遍历所有 item.scanList,逐个校验 pcode + for (RkInfoItemDTO item : rkList) { + + if (item.getScanList() == null || item.getScanList().isEmpty()) { + throw new ServiceException("物料【" + item.getWlNo() + "】未传入任何扫码明细(scanList 为空)"); + } + + for (RkInfoScanDTO scan : item.getScanList()) { + String pcode = scan.getPcode(); + if (StringUtils.isBlank(pcode)) { + throw new ServiceException("库位编码不能为空"); + } + + // 根据库位码查询所属小仓 + String dbWarehouseCode = pcdeDetailMapper.selectWarehouseCodeByPcode(pcode); + + if (StringUtils.isBlank(dbWarehouseCode)) { + throw new ServiceException("库位编码【" + pcode + "】不存在或未配置所属小仓"); + } + + if (!warehouseCode.equals(dbWarehouseCode)) { + throw new ServiceException("库位编码【" + pcode + "】不属于小仓【" + warehouseCode + "】,请检查入库数据"); + } + } + } + } + + // ================== APP 入库 ================== /** * 新增入库单据(APP) - * @param dto - * @return + * @param dto 入库批次 DTO + * @return 实际入库明细条数 */ @Override @Transactional(rollbackFor = Exception.class) public int batchInsertApp(RkInfoBatchDTO dto) { + + // ✅ 0. 小仓 + 库位一致性校验(统一用 warehouseCode) + validateWarehouseAndPcode(dto); + List saveList = new ArrayList<>(); String userId = SecurityUtils.getUserId().toString(); Date now = DateUtils.getNowDate(); @@ -440,27 +631,30 @@ public class RkInfoServiceImpl implements IRkInfoService // ✅ 第1步:构造 gysJhId → realQty 的映射(从 scanList 中提取) Map realQtyMap = new HashMap<>(); for (RkInfoItemDTO item : dto.getRkList()) { - if (item.getScanList() == null) continue; + if (item.getScanList() == null) { + continue; + } for (RkInfoScanDTO scan : item.getScanList()) { Long jhId = scan.getGysJhId(); BigDecimal realQty = scan.getRealQty(); if (jhId != null && realQty != null) { - realQtyMap.put(jhId, realQty); // ✅ 一物一图场景,每个 jhId 只有一条 scan 数据 + // 一物一图场景,每个 jhId 只有一条 scan 数据 + realQtyMap.put(jhId, realQty); } } } // ✅ 第2步:更新 gys_jh 的 jh_qty 与 status - Set idsToUpdateStatus = new HashSet<>(); - List allJhIds = new ArrayList<>(realQtyMap.keySet()); - - if (!allJhIds.isEmpty()) { + if (!realQtyMap.isEmpty()) { + List allJhIds = new ArrayList<>(realQtyMap.keySet()); List jhList = gysJhMapper.selectByIds(allJhIds); for (GysJh jh : jhList) { Long jhId = jh.getId(); BigDecimal planQty = BigDecimal.valueOf(jh.getJhQty()); BigDecimal realQty = realQtyMap.get(jhId); - if (realQty == null) continue; + if (realQty == null) { + continue; + } boolean isEqual = realQty.compareTo(planQty) == 0; @@ -479,21 +673,30 @@ public class RkInfoServiceImpl implements IRkInfoService } } - if (!idsToUpdateStatus.isEmpty()) { - gysJhMapper.batchUpdateStatusByIds(idsToUpdateStatus); + // ✅ 统一确定小仓编码:只允许从 warehouseCode 获取,不再兼容 cangku + String warehouseCode = dto.getWarehouseCode(); + if (StringUtils.isEmpty(warehouseCode)) { + throw new ServiceException("所属小仓编码不能为空"); } // ✅ 第3步:构建 RkInfo 入库实体 for (RkInfoItemDTO item : dto.getRkList()) { - if (item.getScanList() == null) continue; + if (item.getScanList() == null) { + continue; + } for (RkInfoScanDTO scan : item.getScanList()) { RkInfo entity = new RkInfo(); + entity.setRkType(dto.getRkType()); entity.setWlType(dto.getWlType()); - entity.setCangku(dto.getCangku()); + + // 🚩 仓库:rk_info.cangku 只存小仓编码(warehouse_code) + entity.setCangku(warehouseCode); + entity.setLihuoY(dto.getLihuoY()); entity.setBillNo(billNo); + entity.setXj(item.getXj()); entity.setXmMs(item.getXmMs()); entity.setXmNo(item.getXmNo()); @@ -507,6 +710,7 @@ public class RkInfoServiceImpl implements IRkInfoService entity.setWlMs(item.getWlMs()); entity.setGysNo(item.getGysNo()); entity.setGysMc(item.getGysMc()); + entity.setPcode(scan.getPcode()); entity.setPcodeId(CodeConvertUtil.stringToHex(scan.getPcode())); entity.setTrayCode(scan.getTrayCode()); @@ -514,6 +718,7 @@ public class RkInfoServiceImpl implements IRkInfoService entity.setEntityId(scan.getEntityId()); entity.setRemark(scan.getRemark()); entity.setGysJhId(scan.getGysJhId()); + entity.setIsDelete("0"); entity.setRkTime(now); entity.setCreateBy(userId); @@ -563,10 +768,12 @@ public class RkInfoServiceImpl implements IRkInfoService mainSign.setCreateTime(now); recordList.add(mainSign); - // 现场照片记录 + // 现场照片记录(一物一图,按 rkId 绑定) int index = 0; for (RkInfoItemDTO item : dto.getRkList()) { - if (item.getScanList() == null) continue; + if (item.getScanList() == null) { + continue; + } for (RkInfoScanDTO scan : item.getScanList()) { RkInfo rk = saveList.get(index++); if (StringUtils.isNotBlank(scan.getPhotoUrl())) { @@ -600,6 +807,7 @@ public class RkInfoServiceImpl implements IRkInfoService return saveList.size(); } + @Transactional public void deleteByBillNo(String billNo) { // 1. 查询 sap_no @@ -1044,7 +1252,7 @@ public class RkInfoServiceImpl implements IRkInfoService e.setBillNo(dto.getBillNo()); e.setRkType(dto.getRkType()); e.setWlType(dto.getWlType()); - e.setCangku(dto.getCangku()); + e.setWarehouseCode(dto.getWarehouseCode()); e.setLihuoY(dto.getLihuoY()); e.setRkTime(rkTime); diff --git a/src/main/resources/mybatis/Inventory/AutoInventory/InventoryMatchScanMapper.xml b/src/main/resources/mybatis/Inventory/AutoInventory/InventoryMatchScanMapper.xml index d03cac0..5d97545 100644 --- a/src/main/resources/mybatis/Inventory/AutoInventory/InventoryMatchScanMapper.xml +++ b/src/main/resources/mybatis/Inventory/AutoInventory/InventoryMatchScanMapper.xml @@ -2,7 +2,7 @@ - + INSERT INTO inventory_match_scan (task_id, device_id, pcode, tme, scan_type, status) @@ -12,17 +12,17 @@ - SELECT * FROM inventory_match_scan - SELECT * FROM inventory_match_scan i LEFT JOIN sod s ON i.pcde = s.fycde_1 WHERE s.rmn > 0 - SELECT s.pcde, COUNT(*) AS count @@ -43,7 +43,7 @@ GROUP BY s.pcde - SELECT task_name AS taskName, MAX(tme) AS tme, @@ -101,7 +101,7 @@ - SELECT i.id, i.device_id AS deviceId, @@ -133,8 +133,8 @@ + resultType="com.zg.project.inventory.domain.vo.RkInfoMatchVO"> SELECT i.pcode AS rkPcode, NULL AS realQty @@ -194,7 +194,7 @@ + - AND t.task_name LIKE concat('%', #{taskName}, '%') - AND t.warehouse_id = #{warehouseId} - AND t.scene_id = #{sceneId} - AND t.user_id = #{userId} - AND t.require_time = #{requireTime} - AND t.status = #{status} - AND t.task_type = #{taskType} - AND t.created_by = #{createdBy} - AND t.created_at = #{createdAt} - AND t.updated_by = #{updatedBy} - AND t.updated_at = #{updatedAt} - AND t.is_delete = #{isDelete} + + AND t.task_name LIKE concat('%', #{taskName}, '%') + + + AND t.warehouse_code = #{warehouseCode} + + + AND t.scene_id = #{sceneId} + + + AND t.user_id = #{userId} + + + AND t.require_time = #{requireTime} + + + AND t.status = #{status} + + + AND t.task_type = #{taskType} + + + AND t.created_by = #{createdBy} + + + AND t.created_at = #{createdAt} + + + AND t.updated_by = #{updatedBy} + + + AND t.updated_at = #{updatedAt} + + + AND t.is_delete = #{isDelete} + - order by t.created_at desc + ORDER BY t.created_at DESC + + + - SELECT scene_id FROM inventory_task WHERE id = #{taskId} @@ -100,60 +132,63 @@ LIMIT 1 + - insert into inventory_task + INSERT INTO inventory_task task_name, - warehouse_id, - scene_id, + warehouse_code, + scene_id, user_id, require_time, - status, + status, task_type, remark, - created_by, - created_at, - updated_by, - updated_at, - is_delete, + created_by, + created_at, + updated_by, + updated_at, + is_delete, - + #{taskName}, - #{warehouseId}, - #{sceneId}, + #{warehouseCode}, + #{sceneId}, #{userId}, #{requireTime}, - #{status}, + #{status}, #{taskType}, #{remark}, - #{createdBy}, - #{createdAt}, - #{updatedBy}, - #{updatedAt}, - #{isDelete}, + #{createdBy}, + #{createdAt}, + #{updatedBy}, + #{updatedAt}, + #{isDelete}, + - update inventory_task + UPDATE inventory_task task_name = #{taskName}, - warehouse_id = #{warehouseId}, - scene_id = #{sceneId}, + warehouse_code = #{warehouseCode}, + scene_id = #{sceneId}, user_id = #{userId}, require_time = #{requireTime}, - status = #{status}, + status = #{status}, task_type = #{taskType}, remark = #{remark}, - created_by = #{createdBy}, - created_at = #{createdAt}, - updated_by = #{updatedBy}, - updated_at = #{updatedAt}, - is_delete = #{isDelete}, + created_by = #{createdBy}, + created_at = #{createdAt}, + updated_by = #{updatedBy}, + updated_at = #{updatedAt}, + is_delete = #{isDelete}, - where id = #{id} + WHERE id = #{id} + UPDATE inventory_task SET status = #{status}, @@ -161,14 +196,16 @@ WHERE id = #{taskId} + - delete from inventory_task where id = #{id} + DELETE FROM inventory_task WHERE id = #{id} - delete from inventory_task where id in + DELETE FROM inventory_task WHERE id IN #{id} - \ No newline at end of file + + diff --git a/src/main/resources/mybatis/information/PcdeDetailMapper.xml b/src/main/resources/mybatis/information/PcdeDetailMapper.xml index 8e3ca54..e08a7aa 100644 --- a/src/main/resources/mybatis/information/PcdeDetailMapper.xml +++ b/src/main/resources/mybatis/information/PcdeDetailMapper.xml @@ -4,53 +4,96 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - select d.id, d.pcode, d.scene, m.scene_name, d.warehouse, w.warehouse_name, - d.encoded_id, d.tag, d.remark, d.is_delete, - d.created_by, d.created_at, d.updated_by, d.updated_at - from pcde_detail d - left join scene_mapping m on d.scene = m.scene_code - left join warehouse_info w on d.warehouse = w.warehouse_code + SELECT + d.id, + d.pcode, + d.scene, + m.scene_name, + d.parent_warehouse_code, + d.parent_warehouse_name, + d.warehouse_code, + d.warehouse_name, + d.encoded_id, + d.tag, + d.remark, + d.is_delete, + d.created_by, + d.created_at, + d.updated_by, + d.updated_at + FROM pcde_detail d + LEFT JOIN scene_mapping m ON d.scene = m.scene_code - - and d.pcode = #{pcode} - and d.scene = #{scene} + + AND d.pcode = #{pcode} + + + AND d.scene = #{scene} + + + + + AND d.parent_warehouse_code = #{parentWarehouseCode} + + + AND d.parent_warehouse_name LIKE concat('%', #{parentWarehouseName}, '%') + + + + AND d.warehouse_code = #{warehouseCode} + - and w.warehouse_name like concat('%', #{warehouseName}, '%') + AND d.warehouse_name LIKE concat('%', #{warehouseName}, '%') - - and d.warehouse = #{warehouse} + + AND d.encoded_id = #{encodedId} + + + AND d.tag = #{tag} + + + AND d.is_delete = #{isDelete} - - and d.encoded_id = #{encodedId} - and d.tag = #{tag} - and d.is_delete = #{isDelete} - @@ -60,39 +103,108 @@ #{val} - - - - where d.id = #{id} + WHERE d.id = #{id} - - select id, pcode, scene, warehouse, encoded_id, tag, is_delete, - created_by, created_at, updated_by, updated_at, remark - from pcde_detail - where pcode = #{pcode} + SELECT + id, + pcode, + scene, + parent_warehouse_code AS parentWarehouseCode, + parent_warehouse_name AS parentWarehouseName, + warehouse_code AS warehouseCode, + warehouse_name AS warehouseName, + encoded_id AS encodedId, + tag, + is_delete AS isDelete, + created_by AS createdBy, + created_at AS createdAt, + updated_by AS UpdatedBy, + updated_at AS updatedAt, + remark + FROM pcde_detail + WHERE pcode = #{pcode} AND is_delete = '0' - + SELECT encoded_id + FROM pcde_detail + WHERE pcode = #{pcode} AND is_delete = '0' - - insert into pcde_detail + + + + + + + + INSERT INTO pcde_detail pcode, scene, - warehouse, + + + parent_warehouse_code, + + + parent_warehouse_name, + + + warehouse_code, + + + warehouse_name, + + encoded_id, tag, remark, @@ -102,10 +214,23 @@ updated_by, updated_at, - + #{pcode}, #{scene}, - #{warehouse}, + + + #{parentWarehouseCode}, + + + #{parentWarehouseName}, + + + #{warehouseCode}, + + + #{warehouseName}, + + #{encodedId}, #{tag}, #{remark}, @@ -117,36 +242,85 @@ + - update pcde_detail + UPDATE pcde_detail - pcode = #{pcode}, - scene = #{scene}, - warehouse = #{warehouse}, - encoded_id = #{encodedId}, - tag = #{tag}, - remark = #{remark}, - is_delete = #{isDelete}, - created_by = #{createdBy}, - created_at = #{createdAt}, - updated_by = #{updatedBy}, - updated_at = #{updatedAt}, + + pcode = #{pcode}, + + + scene = #{scene}, + + + + parent_warehouse_code = #{parentWarehouseCode}, + + + parent_warehouse_name = #{parentWarehouseName}, + + + warehouse_code = #{warehouseCode}, + + + warehouse_name = #{warehouseName}, + + + + encoded_id = #{encodedId}, + + + tag = #{tag}, + + + remark = #{remark}, + + + is_delete = #{isDelete}, + + + created_by = #{createdBy}, + + + created_at = #{createdAt}, + + + updated_by = #{updatedBy}, + + + updated_at = #{updatedAt}, + - where id = #{id} + WHERE id = #{id} + INSERT IGNORE INTO pcde_detail - (pcode, scene, scene_name, warehouse, warehouse_name, - encoded_id, tag, remark, is_delete, - created_by, created_at, updated_by, updated_at) + (pcode, + scene, + scene_name, + parent_warehouse_code, + parent_warehouse_name, + warehouse_code, + warehouse_name, + encoded_id, + tag, + remark, + is_delete, + created_by, + created_at, + updated_by, + updated_at) VALUES ( #{item.pcode}, #{item.scene}, #{item.sceneName}, - #{item.warehouse}, + #{item.parentWarehouseCode}, + #{item.parentWarehouseName}, + #{item.warehouseCode}, #{item.warehouseName}, #{item.encodedId}, #{item.tag}, @@ -160,12 +334,16 @@ + - delete from pcde_detail where id = #{id} + DELETE FROM pcde_detail + WHERE id = #{id} + - delete from pcde_detail where id in + DELETE FROM pcde_detail + WHERE id IN #{id} diff --git a/src/main/resources/mybatis/wisdom/RkInfoMapper.xml b/src/main/resources/mybatis/wisdom/RkInfoMapper.xml index 1edf7e1..c8f9e36 100644 --- a/src/main/resources/mybatis/wisdom/RkInfoMapper.xml +++ b/src/main/resources/mybatis/wisdom/RkInfoMapper.xml @@ -18,6 +18,13 @@ + + + + + + + @@ -62,7 +69,7 @@ - + SELECT ri.id, @@ -70,7 +77,16 @@ ri.bill_no_ck, ri.rk_type, st.type_name AS rk_type_name, ri.wl_type, mt.type_name AS wl_type_name, - ri.cangku, wh.warehouse_name AS cangku_name, + + ri.cangku, + wh.warehouse_name AS cangku_name, + + -- 新增:大仓/小仓编码和名称 + wh.parent_warehouse_code AS parent_warehouse_code, + wh.parent_warehouse_name AS parent_warehouse_name, + wh.warehouse_code AS warehouse_code, + wh.warehouse_name AS warehouse_name, + ri.rk_time, ri.lihuo_y, ri.is_chuku, ri.is_borrowed, ri.is_delivery,ri.remark, ri.ck_lihuo_y, ri.ck_type, sot.type_name AS ck_type_name, ri.team_code, ct.team_name, @@ -148,7 +164,8 @@ #{item.xmNoCk}, #{item.xmMsCk}, #{item.xj}, #{item.sapNo}, #{item.gysNo}, #{item.gysMc}, #{item.jhQty}, #{item.htQty}, #{item.jhAmt}, #{item.htDj}, #{item.dw}, #{item.borrowTime}, #{item.returnTime}, #{item.status}, - #{item.pcode}, #{item.pcodeId}, #{item.trayCode}, #{item.realQty}, #{item.entityId}, #{item.fycde1}, #{item.fycde2}, + #{item.pcode}, #{item.pcodeId}, #{item.trayCode}, #{item.realQty}, #{item.entityId}, + #{item.fycde1}, #{item.fycde2}, #{item.remark}, #{item.isChuku}, #{item.isBorrowed}, #{item.gysJhId}, #{item.isDelete}, #{item.createBy}, #{item.createTime} ) @@ -219,36 +236,36 @@ AND ( - ri.xm_no like concat('%', #{keyword}, '%') - or ri.xm_ms like concat('%', #{keyword}, '%') - or ri.fycde_1 like concat('%', #{keyword}, '%') - or ri.fycde_2 like concat('%', #{keyword}, '%') - or ri.wl_no like concat('%', #{keyword}, '%') - or ri.wl_ms like concat('%', #{keyword}, '%') - or ri.gys_no like concat('%', #{keyword}, '%') - or ri.gys_mc like concat('%', #{keyword}, '%') - or ri.sap_no like concat('%', #{keyword}, '%') - or ri.bill_no like concat('%', #{keyword}, '%') - or ri.bill_no_ck like concat('%', #{keyword}, '%') - or ri.ck_type like concat('%', #{keyword}, '%') - or ri.pcode like concat('%', #{keyword}, '%') + ri.xm_no LIKE concat('%', #{keyword}, '%') + OR ri.xm_ms LIKE concat('%', #{keyword}, '%') + OR ri.fycde_1 LIKE concat('%', #{keyword}, '%') + OR ri.fycde_2 LIKE concat('%', #{keyword}, '%') + OR ri.wl_no LIKE concat('%', #{keyword}, '%') + OR ri.wl_ms LIKE concat('%', #{keyword}, '%') + OR ri.gys_no LIKE concat('%', #{keyword}, '%') + OR ri.gys_mc LIKE concat('%', #{keyword}, '%') + OR ri.sap_no LIKE concat('%', #{keyword}, '%') + OR ri.bill_no LIKE concat('%', #{keyword}, '%') + OR ri.bill_no_ck LIKE concat('%', #{keyword}, '%') + OR ri.ck_type LIKE concat('%', #{keyword}, '%') + OR ri.pcode LIKE concat('%', #{keyword}, '%') ) - AND ri.rk_type like concat('%', #{rkType}, '%') + AND ri.rk_type LIKE concat('%', #{rkType}, '%') - AND ri.wl_type like concat('%', #{wlType}, '%') + AND ri.wl_type LIKE concat('%', #{wlType}, '%') - AND ri.cangku like concat('%', #{cangku}, '%') + AND ri.cangku LIKE concat('%', #{cangku}, '%') - AND ri.fycde_1 like concat('%', #{fycde1}, '%') + AND ri.fycde_1 LIKE concat('%', #{fycde1}, '%') - AND ri.fycde_2 like concat('%', #{fycde2}, '%') + AND ri.fycde_2 LIKE concat('%', #{fycde2}, '%') @@ -258,55 +275,17 @@ - - - AND ri.is_borrowed = #{isBorrowed} + + = #{startTime} + ]]> + + + - - - - - = #{startTime} - ]]> - - - - - - - - - - = #{startTime} - ]]> - - - - - - - - - - = #{startTime} - ]]> - - - - - - - = #{lyStartTime} ]]> @@ -315,34 +294,34 @@ - AND ri.lihuo_y like concat('%', #{lihuoY}, '%') + AND ri.lihuo_y LIKE concat('%', #{lihuoY}, '%') - AND ri.xj like concat('%', #{xj}, '%') + AND ri.xj LIKE concat('%', #{xj}, '%') - AND ri.bill_no like concat('%', #{billNo}, '%') + AND ri.bill_no LIKE concat('%', #{billNo}, '%') - AND ri.bill_no_ck like concat('%', #{billNoCk}, '%') + AND ri.bill_no_ck LIKE concat('%', #{billNoCk}, '%') - AND ri.xm_no like concat('%', #{xmNo}, '%') + AND ri.xm_no LIKE concat('%', #{xmNo}, '%') - AND ri.xm_ms like concat('%', #{xmMs}, '%') + AND ri.xm_ms LIKE concat('%', #{xmMs}, '%') - AND ri.wl_no like concat('%', #{wlNo}, '%') + AND ri.wl_no LIKE concat('%', #{wlNo}, '%') - AND ri.wl_ms like concat('%', #{wlMs}, '%') + AND ri.wl_ms LIKE concat('%', #{wlMs}, '%') - AND ri.gys_no like concat('%', #{gysNo}, '%') + AND ri.gys_no LIKE concat('%', #{gysNo}, '%') - AND ri.gys_mc like concat('%', #{gysMc}, '%') + AND ri.gys_mc LIKE concat('%', #{gysMc}, '%') @@ -353,10 +332,10 @@ - AND ri.sap_no like concat('%', #{sapNo}, '%') + AND ri.sap_no LIKE concat('%', #{sapNo}, '%') - AND ri.xh like concat('%', #{xh}, '%') + AND ri.xh LIKE concat('%', #{xh}, '%') AND ri.jh_qty = #{jhQty} @@ -365,14 +344,14 @@ AND ri.ht_qty = #{htQty} - AND ri.dw like concat('%', #{dw}, '%') + AND ri.dw LIKE concat('%', #{dw}, '%') AND ri.real_qty = #{realQty} - AND ri.pcode like concat('%', #{pcode}, '%') + AND ri.pcode LIKE concat('%', #{pcode}, '%') AND ri.ly_time = #{lyTime} @@ -381,13 +360,13 @@ AND ri.return_time = #{returnTime} - AND ri.tray_code like concat('%', #{trayCode}, '%') + AND ri.tray_code LIKE concat('%', #{trayCode}, '%') - AND ri.entity_id like concat('%', #{entityId}, '%') + AND ri.entity_id LIKE concat('%', #{entityId}, '%') - AND ri.ck_type like concat('%', #{ckType}, '%') + AND ri.ck_type LIKE concat('%', #{ckType}, '%') @@ -402,8 +381,88 @@ ORDER BY ri.rk_time DESC + - - + - + - + - SELECT pcode AS pcde, COUNT(*) AS cnt FROM rk_info @@ -738,18 +797,25 @@ + + + UPDATE rk_info - rk_type = #{rkType}, - wl_type = #{wlType}, - cangku = #{cangku}, - rk_time = #{rkTime}, + + rk_type = #{rkType}, + + + wl_type = #{wlType}, + + + + cangku = #{warehouseCode}, + + + + rk_time = #{rkTime}, + WHERE bill_no = #{billNo} diff --git a/src/main/resources/mybatis/wisdom/WarehouseStatMapper.xml b/src/main/resources/mybatis/wisdom/WarehouseStatMapper.xml index 634f237..71edfa9 100644 --- a/src/main/resources/mybatis/wisdom/WarehouseStatMapper.xml +++ b/src/main/resources/mybatis/wisdom/WarehouseStatMapper.xml @@ -11,7 +11,8 @@