Browse Source

更改

master
ligaode 4 months ago
parent
commit
40f53bdf71
  1. 23
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/as/storechange/AppStoreChangeDto.java
  2. 4
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/as/storechange/AppStoreChangeFeign.java
  3. 8
      yxt-wms-biz/src/main/java/com/yxt/wms/apiadmin/inventroy/WmsH5Rest.java
  4. 31
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryMapper.java
  5. 143
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryMapper.xml
  6. 93
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryService.java
  7. 48
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/appH5/GoodsTwoListVo.java
  8. 28
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/appH5/GoodsTwoQuery.java
  9. 41
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/appH5/GoodsTwoVo.java

23
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/as/storechange/AppStoreChangeDto.java

@ -0,0 +1,23 @@
package com.yxt.anrui.terminal.api.as.storechange;
import com.yxt.anrui.terminal.api.as.firstshelves.AppFirstShelvesGoodsDto;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
public class AppStoreChangeDto implements Dto {
@ApiModelProperty("库存sid")
private String sid;
@ApiModelProperty("移位数量")
private String count;
@ApiModelProperty("移位仓库")
private String houseInfo2;
@ApiModelProperty("移位库位编码")
private String houseCode2;
@ApiModelProperty("移位仓库")
private String store;
}

4
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/as/storechange/AppStoreChangeFeign.java

@ -26,9 +26,9 @@ public interface AppStoreChangeFeign {
@ResponseBody @ResponseBody
public ResultBean<AppStoreChangeScanVo> scan(@RequestParam("content") String content, @RequestParam("type") String type, @RequestParam("orgPath") String orgPath, @RequestParam(value = "storeSid", required = false) String storeSid); public ResultBean<AppStoreChangeScanVo> scan(@RequestParam("content") String content, @RequestParam("type") String type, @RequestParam("orgPath") String orgPath, @RequestParam(value = "storeSid", required = false) String storeSid);
@ApiOperation("上架保存") @ApiOperation("保存")
@PostMapping("/save") @PostMapping("/save")
@ResponseBody @ResponseBody
public ResultBean save(@RequestBody AppFirstShelvesDto dto); public ResultBean save(@RequestBody AppStoreChangeDto dto);
} }

8
yxt-wms-biz/src/main/java/com/yxt/wms/apiadmin/inventroy/WmsH5Rest.java

@ -5,6 +5,8 @@ import com.yxt.common.core.result.ResultBean;
import com.yxt.wms.biz.inventory.wmsgoodstag.app.AppTagInit; import com.yxt.wms.biz.inventory.wmsgoodstag.app.AppTagInit;
import com.yxt.wms.biz.inventory.wmsinventory.WmsInventoryService; import com.yxt.wms.biz.inventory.wmsinventory.WmsInventoryService;
import com.yxt.wms.biz.inventory.wmsinventory.appH5.GoodsTagH5Vo; import com.yxt.wms.biz.inventory.wmsinventory.appH5.GoodsTagH5Vo;
import com.yxt.wms.biz.inventory.wmsinventory.appH5.GoodsTwoQuery;
import com.yxt.wms.biz.inventory.wmsinventory.appH5.GoodsTwoVo;
import com.yxt.wms.biz.inventory.wmsinventory.appH5.HouseRackH5Vo; import com.yxt.wms.biz.inventory.wmsinventory.appH5.HouseRackH5Vo;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
@ -52,9 +54,9 @@ public class WmsH5Rest {
@GetMapping("goods2") @GetMapping("goods2")
@ApiOperation("扫描商品标签看详情") @ApiOperation("扫描商品标签看详情")
ResultBean<GoodsTagH5Vo> goods2(@RequestParam("sid") String sid) { ResultBean<GoodsTwoVo> goods2(@RequestBody GoodsTwoQuery query) {
ResultBean<GoodsTagH5Vo> rb = ResultBean.fireFail(); ResultBean rb = ResultBean.fireFail();
GoodsTagH5Vo vo = wmsInventoryService.scanGoodsTag(sid); GoodsTwoVo vo = wmsInventoryService.goods2(query);
if (null == vo) { if (null == vo) {
return rb.fail().setMsg("商品不存在"); return rb.fail().setMsg("商品不存在");
} }

31
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryMapper.java

@ -44,9 +44,9 @@ public interface WmsInventoryMapper extends BaseMapper<WmsInventory> {
IPage<WmsInventorySalesVo> listPageSales(IPage<WmsInventory> page, @Param(Constants.WRAPPER) QueryWrapper<WmsInventory> qw); IPage<WmsInventorySalesVo> listPageSales(IPage<WmsInventory> page, @Param(Constants.WRAPPER) QueryWrapper<WmsInventory> qw);
IPage<WmsInventoryPackageVo> getPackageGoodsVo(IPage<WmsInventory> page,@Param(Constants.WRAPPER) QueryWrapper<WmsInventory> qw); IPage<WmsInventoryPackageVo> getPackageGoodsVo(IPage<WmsInventory> page, @Param(Constants.WRAPPER) QueryWrapper<WmsInventory> qw);
IPage<WmsInventoryAgeVo> inventoryAgeList(IPage<WmsInventory> page,@Param(Constants.WRAPPER) QueryWrapper<WmsInventory> qw); IPage<WmsInventoryAgeVo> inventoryAgeList(IPage<WmsInventory> page, @Param(Constants.WRAPPER) QueryWrapper<WmsInventory> qw);
List<WmsInventoryAgeExportVo> ageExportExcel(@Param(Constants.WRAPPER) QueryWrapper<WmsInventory> qw); List<WmsInventoryAgeExportVo> ageExportExcel(@Param(Constants.WRAPPER) QueryWrapper<WmsInventory> qw);
@ -72,13 +72,13 @@ public interface WmsInventoryMapper extends BaseMapper<WmsInventory> {
List<WmsInventory> selByDeptSid(String deptSid); List<WmsInventory> selByDeptSid(String deptSid);
List<WmsInventory> selByDeptSidAndRackSid(@Param("deptSid") String deptSid,@Param("rackSids") List<String> rackSids); List<WmsInventory> selByDeptSidAndRackSid(@Param("deptSid") String deptSid, @Param("rackSids") List<String> rackSids);
IPage<WmsInventoryBillUseOrgSidVo> selInvenGoodsByUseOrgSid(IPage<WmsInventory> page,@Param(Constants.WRAPPER) QueryWrapper<WmsInventory> qw); IPage<WmsInventoryBillUseOrgSidVo> selInvenGoodsByUseOrgSid(IPage<WmsInventory> page, @Param(Constants.WRAPPER) QueryWrapper<WmsInventory> qw);
IPage<WmsInventoryReturnFactSelectList> returnFactGoodsListPage(IPage<WmsInventory> page, @Param(Constants.WRAPPER) QueryWrapper<WmsInventory> qw); IPage<WmsInventoryReturnFactSelectList> returnFactGoodsListPage(IPage<WmsInventory> page, @Param(Constants.WRAPPER) QueryWrapper<WmsInventory> qw);
List<WmsInventoryReturnFactSelectList> selBillNoAndCode(@Param("sourceBillNo") String sourceBillNo,@Param("goodsSkuCode") String goodsSkuCode,@Param("deptSid") String deptSid); List<WmsInventoryReturnFactSelectList> selBillNoAndCode(@Param("sourceBillNo") String sourceBillNo, @Param("goodsSkuCode") String goodsSkuCode, @Param("deptSid") String deptSid);
IPage<FittingsInventoryVo> fittingsInventory(IPage<WmsInventory> page, @Param(Constants.WRAPPER) QueryWrapper<WmsInventory> qw); IPage<FittingsInventoryVo> fittingsInventory(IPage<WmsInventory> page, @Param(Constants.WRAPPER) QueryWrapper<WmsInventory> qw);
@ -86,32 +86,37 @@ public interface WmsInventoryMapper extends BaseMapper<WmsInventory> {
List<OldStorageListVo> appOldStorage(@Param(Constants.WRAPPER) QueryWrapper<WmsInventory> qw); List<OldStorageListVo> appOldStorage(@Param(Constants.WRAPPER) QueryWrapper<WmsInventory> qw);
List<WmsInventory> selJJByDeptSidAndRackSid(@Param("deptSid") String deptSid,@Param("rackSids") List<String> rackSids); List<WmsInventory> selJJByDeptSidAndRackSid(@Param("deptSid") String deptSid, @Param("rackSids") List<String> rackSids);
List<WmsInventory> selJJByDeptSid(String deptSid); List<WmsInventory> selJJByDeptSid(String deptSid);
WmsInventory selbyGoodsId(@Param("goodsID") String goodsID); WmsInventory selbyGoodsId(@Param("goodsID") String goodsID);
IPage<DeadStockVo> deadStockList(IPage<WmsInventory> page,@Param(Constants.WRAPPER) QueryWrapper<WmsInventory> qw); IPage<DeadStockVo> deadStockList(IPage<WmsInventory> page, @Param(Constants.WRAPPER) QueryWrapper<WmsInventory> qw);
String selByGoodsIdAndRackSid(@Param("goodsID") String goodsID,@Param("warehouseRackSid") String warehouseRackSid); String selByGoodsIdAndRackSid(@Param("goodsID") String goodsID, @Param("warehouseRackSid") String warehouseRackSid);
BigDecimal compute(String skuSid); BigDecimal compute(String skuSid);
List<WmsInventory> selCJByDeptSidAndRackSid(@Param("deptSid") String deptSid,@Param("rackSids") List<String> rackSids); List<WmsInventory> selCJByDeptSidAndRackSid(@Param("deptSid") String deptSid, @Param("rackSids") List<String> rackSids);
List<WmsInventory> selCJByDeptSid(String deptSid); List<WmsInventory> selCJByDeptSid(String deptSid);
IPage<InventoryStockListVo> inventoryStockList(IPage<WmsInventory> page, @Param(Constants.WRAPPER)QueryWrapper<WmsInventory> qw); IPage<InventoryStockListVo> inventoryStockList(IPage<WmsInventory> page, @Param(Constants.WRAPPER) QueryWrapper<WmsInventory> qw);
List<WmsInventory> selOaInventoryList(@Param("useOrgSid")String useOrgSid, @Param("warehouseTypeValue")String warehouseTypeValue); List<WmsInventory> selOaInventoryList(@Param("useOrgSid") String useOrgSid, @Param("warehouseTypeValue") String warehouseTypeValue);
@Select("select count from wms_inventory where goodsID = #{goodsID}") @Select("select count from wms_inventory where goodsID = #{goodsID}")
String selCountByGoodsID(String goodsID); String selCountByGoodsID(String goodsID);
@Select("select * from wms_inventory where goodsID = #{goodsID} and useOrgSid = #{useOrgSid}") @Select("select * from wms_inventory where goodsID = #{goodsID} and useOrgSid = #{useOrgSid}")
List<WmsInventory> selByGoodsIDAndUseOrgSid(@Param("goodID") String goodID,@Param("useOrgSid") String useOrgSid); List<WmsInventory> selByGoodsIDAndUseOrgSid(@Param("goodID") String goodID, @Param("useOrgSid") String useOrgSid);
@Select("select * from wms_inventory where goodsID = #{goodsID} and useOrgSid = #{useOrgSid} and warehouseSid = #{warehouseSid}") @Select("select * from wms_inventory where goodsID = #{goodsID} and useOrgSid = #{useOrgSid} and warehouseSid = #{warehouseSid}")
List<WmsInventory> selByGoodsIDAndUseOrgSidAndWarehouseSid(@Param("goodID") String goodID,@Param("useOrgSid") String useOrgSid,@Param("warehouseSid") String warehouseSid); List<WmsInventory> selByGoodsIDAndUseOrgSidAndWarehouseSid(@Param("goodID") String goodID, @Param("useOrgSid") String useOrgSid, @Param("warehouseSid") String warehouseSid);
@Select("select * from wms_inventory where goodsSpuSid = #{spuSid} and useOrgSid = #{useOrgSid}")
List<WmsInventory> selBySpuSidAndUseOrgSid(@Param("spuSid") String spuSid, @Param("useOrgSid") String useOrgSid);
List<WmsInventory> selBySpuSidAndUseOrgSidWarehouseSid(@Param("spuSid") String spuSid, @Param("useOrgSid") String useOrgSid, @Param("warehouseSid") String warehouseSid, @Param("sids") List<String> sids);
} }

143
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryMapper.xml

@ -209,7 +209,9 @@
DATEDIFF(NOW(), w.firstInDate) as age DATEDIFF(NOW(), w.firstInDate) as age
FROM wms_inventory as w, FROM wms_inventory as w,
( SELECT @rank := 0 ) t ( SELECT @rank := 0 ) t
<where>${ew.sqlSegment}</where> <where>
${ew.sqlSegment}
</where>
</select> </select>
<select id="selectInvenBySkuSid" resultType="com.yxt.wms.biz.inventory.wmsinventory.WmsGoodsInventoryVo"> <select id="selectInvenBySkuSid" resultType="com.yxt.wms.biz.inventory.wmsinventory.WmsGoodsInventoryVo">
@ -323,56 +325,50 @@
</where> </where>
</select> </select>
<select id="getListByGoodsID" resultType="com.yxt.wms.biz.inventory.wmsinventory.WmsInventory"> <select id="getListByGoodsID" resultType="com.yxt.wms.biz.inventory.wmsinventory.WmsInventory">
select * from wms_inventory wi where wi.goodsID =#{goodsID} and wi.count > 0 select *
from wms_inventory wi
where wi.goodsID = #{goodsID}
and wi.count > 0
</select> </select>
<select id="selGoodsListForScanRackTag" <select id="selGoodsListForScanRackTag"
resultType="com.yxt.wms.biz.inventory.wmsinventory.appH5.HouseRackListVo"> resultType="com.yxt.wms.biz.inventory.wmsinventory.appH5.HouseRackListVo">
SELECT SELECT wi.goodsID,
wi.goodsID,
b.supplierName provider, b.supplierName provider,
wi.goodsSpuName goodsName, wi.goodsSpuName goodsName,
wi.goodsSkuCode numId, wi.goodsSkuCode numId,
wi.count num, wi.count num,
CONCAT( ( date_format ( wi.firstInDate, '%Y-%m-%d' )), ' (库龄)',( DATEDIFF( NOW(), wi.firstInDate )), '天' ) inboundTime CONCAT((date_format(wi.firstInDate, '%Y-%m-%d')), ' (库龄)', (DATEDIFF(NOW(), wi.firstInDate)),
FROM '天') inboundTime
wms_inventory AS wi FROM wms_inventory AS wi
LEFT JOIN wms_goods_tag AS t ON wi.goodsID = t.goodsID LEFT JOIN wms_goods_tag AS t ON wi.goodsID = t.goodsID
LEFT JOIN wms_receipt_bill AS b ON t.billSid = b.sid LEFT JOIN wms_receipt_bill AS b ON t.billSid = b.sid
WHERE WHERE wi.warehouseRackSid = #{houseRackSid}
wi.warehouseRackSid = #{houseRackSid}
</select> </select>
<select id="selGoodsH5Vo" resultType="com.yxt.wms.biz.inventory.wmsinventory.appH5.GoodsTagH5Vo"> <select id="selGoodsH5Vo" resultType="com.yxt.wms.biz.inventory.wmsinventory.appH5.GoodsTagH5Vo">
SELECT SELECT wi.goodsID,
wi.goodsID,
b.supplierName provider, b.supplierName provider,
wi.goodsSpuName goodsName, wi.goodsSpuName goodsName,
wi.goodsSkuCode numId, wi.goodsSkuCode numId,
wi.unit, wi.unit,
wi.goodsSkuOwnSpec, wi.goodsSkuOwnSpec,
CONCAT( ( date_format ( wi.firstInDate, '%Y-%m-%d' )), ' (库龄)',( DATEDIFF( NOW(), wi.firstInDate )), '天' ) inboundTime CONCAT((date_format(wi.firstInDate, '%Y-%m-%d')), ' (库龄)', (DATEDIFF(NOW(), wi.firstInDate)),
FROM '天') inboundTime
wms_inventory AS wi FROM wms_inventory AS wi
LEFT JOIN wms_goods_tag AS t ON wi.goodsID = t.goodsID LEFT JOIN wms_goods_tag AS t ON wi.goodsID = t.goodsID
LEFT JOIN wms_receipt_bill AS b ON t.billSid = b.sid LEFT JOIN wms_receipt_bill AS b ON t.billSid = b.sid
WHERE WHERE wi.goodsID = #{goodsID}
wi.goodsID = #{goodsID} ORDER BY wi.firstInDate ASC LIMIT 1
ORDER BY
wi.firstInDate ASC
LIMIT 1
</select> </select>
<select id="selGoodsListForScanGoodsTag" <select id="selGoodsListForScanGoodsTag"
resultType="com.yxt.wms.biz.inventory.wmsinventory.appH5.GoodsListTagH5Vo"> resultType="com.yxt.wms.biz.inventory.wmsinventory.appH5.GoodsListTagH5Vo">
SELECT SELECT wi.count num,
wi.count num,
r.rackCode houseAddress, r.rackCode houseAddress,
CONCAT( i.warehouseName, '-', a.areaName ) houseName CONCAT(i.warehouseName, '-', a.areaName) houseName
FROM FROM wms_inventory AS wi
wms_inventory AS wi
LEFT JOIN wms_warehouse_info AS i ON wi.warehouseSid = i.sid LEFT JOIN wms_warehouse_info AS i ON wi.warehouseSid = i.sid
LEFT JOIN wms_warehouse_rack AS r ON wi.warehouseRackSid = r.sid LEFT JOIN wms_warehouse_rack AS r ON wi.warehouseRackSid = r.sid
LEFT JOIN wms_warehouse_area AS a ON r.locationSid = a.sid LEFT JOIN wms_warehouse_area AS a ON r.locationSid = a.sid
WHERE WHERE wi.goodsID = #{goodsID}
wi.goodsID = #{goodsID}
</select> </select>
<select id="selByDeptSid" resultType="com.yxt.wms.biz.inventory.wmsinventory.WmsInventory"> <select id="selByDeptSid" resultType="com.yxt.wms.biz.inventory.wmsinventory.WmsInventory">
@ -383,7 +379,8 @@
WHERE wi.count > 0 WHERE wi.count > 0
AND wwi.useOrgSid = #{deptSid} AND wwi.useOrgSid = #{deptSid}
AND wwi.warehouseTypeKey = '01' AND wwi.warehouseTypeKey = '01'
AND RIGHT(wi.goodsID,2) != '-O' AND RIGHT (wi.goodsID
, 2) != '-O'
</select> </select>
<select id="selByDeptSidAndRackSid" resultType="com.yxt.wms.biz.inventory.wmsinventory.WmsInventory"> <select id="selByDeptSidAndRackSid" resultType="com.yxt.wms.biz.inventory.wmsinventory.WmsInventory">
@ -564,8 +561,7 @@
</select> </select>
<select id="selBillNoAndCode" resultType="com.yxt.wms.biz.inventory.wmsinventory.WmsInventoryReturnFactSelectList"> <select id="selBillNoAndCode" resultType="com.yxt.wms.biz.inventory.wmsinventory.WmsInventoryReturnFactSelectList">
SELECT SELECT wi.goodsID,
wi.goodsID,
wi.goodsSpuSid, wi.goodsSpuSid,
wi.goodsSpuName, wi.goodsSpuName,
wi.goodsSkuSid, wi.goodsSkuSid,
@ -582,8 +578,7 @@
wi.warehouseRackSid, wi.warehouseRackSid,
wr.rackName AS warehouseRackName, wr.rackName AS warehouseRackName,
wi.count wi.count
FROM FROM wms_inventory wi
wms_inventory wi
LEFT JOIN wms_warehouse_rack wr LEFT JOIN wms_warehouse_rack wr
ON wi.warehouseRackSid = wr.sid ON wi.warehouseRackSid = wr.sid
LEFT JOIN wms_warehouse_area wa LEFT JOIN wms_warehouse_area wa
@ -624,10 +619,13 @@
WHERE wi.count > 0 WHERE wi.count > 0
AND wwi.useOrgSid = #{deptSid} AND wwi.useOrgSid = #{deptSid}
AND wwi.warehouseTypeKey = '02' AND wwi.warehouseTypeKey = '02'
AND RIGHT(wi.goodsID,2) = '-O' AND RIGHT (wi.goodsID
, 2) = '-O'
</select> </select>
<select id="selbyGoodsId" resultType="com.yxt.wms.biz.inventory.wmsinventory.WmsInventory"> <select id="selbyGoodsId" resultType="com.yxt.wms.biz.inventory.wmsinventory.WmsInventory">
SELECT * FROM wms_inventory WHERE goodsID =#{goodsID} SELECT *
FROM wms_inventory
WHERE goodsID = #{goodsID}
</select> </select>
<select id="otherOutGoodsListPage" <select id="otherOutGoodsListPage"
@ -665,10 +663,21 @@
i.manufacturerName, i.manufacturerName,
i.supplierName, i.supplierName,
IFNULL(SUM(count),0) count, IFNULL(SUM(count),0) count,
DATEDIFF(NOW(),(SELECT MIN(wi.firstInDate) FROM wms_inventory as wi WHERE wi.count > 0 and wi.useOrgSid = i.useOrgSid and wi.goodsSkuCode = i.goodsSkuCode and wi.manufacturerSid = i.manufacturerSid and wi.supplierSid = i.supplierSid)) inventoryAge, DATEDIFF(NOW(),(SELECT MIN(wi.firstInDate) FROM wms_inventory as wi WHERE wi.count > 0 and wi.useOrgSid =
date_format ((SELECT MAX(r.createTime) FROM wms_inventory_record as r LEFT JOIN wms_inventory as wi on r.inventorySid = wi.sid WHERE wi.useOrgSid = i.useOrgSid and wi.goodsSkuCode = i.goodsSkuCode and wi.manufacturerSid = i.manufacturerSid and wi.supplierSid = i.supplierSid and r.busTypeValue = '销售出库'),'%Y-%m-%d') salesTime, i.useOrgSid and wi.goodsSkuCode = i.goodsSkuCode and wi.manufacturerSid = i.manufacturerSid and wi.supplierSid =
DATEDIFF(NOW(),(date_format ((SELECT MAX(r.createTime) FROM wms_inventory_record as r LEFT JOIN wms_inventory as wi on r.inventorySid = wi.sid WHERE wi.useOrgSid = i.useOrgSid and wi.goodsSkuCode = i.goodsSkuCode and wi.manufacturerSid = i.manufacturerSid and wi.supplierSid = i.supplierSid and r.busTypeValue = '销售出库'),'%Y-%m-%d'))) noSalesDays, i.supplierSid)) inventoryAge,
date_format ((SELECT MAX(r.createTime) FROM wms_inventory_record as r LEFT JOIN wms_inventory as wi on r.inventorySid = wi.sid WHERE wi.useOrgSid = i.useOrgSid and wi.goodsSkuCode = i.goodsSkuCode and wi.manufacturerSid = i.manufacturerSid and wi.supplierSid = i.supplierSid and r.billType = '1'),'%Y-%m-%d') storageTime, date_format ((SELECT MAX(r.createTime) FROM wms_inventory_record as r LEFT JOIN wms_inventory as wi on
r.inventorySid = wi.sid WHERE wi.useOrgSid = i.useOrgSid and wi.goodsSkuCode = i.goodsSkuCode and
wi.manufacturerSid = i.manufacturerSid and wi.supplierSid = i.supplierSid and r.busTypeValue =
'销售出库'),'%Y-%m-%d') salesTime,
DATEDIFF(NOW(),(date_format ((SELECT MAX(r.createTime) FROM wms_inventory_record as r LEFT JOIN wms_inventory as
wi on r.inventorySid = wi.sid WHERE wi.useOrgSid = i.useOrgSid and wi.goodsSkuCode = i.goodsSkuCode and
wi.manufacturerSid = i.manufacturerSid and wi.supplierSid = i.supplierSid and r.busTypeValue =
'销售出库'),'%Y-%m-%d'))) noSalesDays,
date_format ((SELECT MAX(r.createTime) FROM wms_inventory_record as r LEFT JOIN wms_inventory as wi on
r.inventorySid = wi.sid WHERE wi.useOrgSid = i.useOrgSid and wi.goodsSkuCode = i.goodsSkuCode and
wi.manufacturerSid = i.manufacturerSid and wi.supplierSid = i.supplierSid and r.billType = '1'),'%Y-%m-%d')
storageTime,
SUM(IFNULL(i.cost,0) * IFNULL(i.count,0)) totalCost, SUM(IFNULL(i.cost,0) * IFNULL(i.count,0)) totalCost,
FORMAT((SUM(IFNULL(i.cost,0) * IFNULL(i.count,0))/IFNULL(SUM(count),0)),2) avgPrice FORMAT((SUM(IFNULL(i.cost,0) * IFNULL(i.count,0))/IFNULL(SUM(count),0)),2) avgPrice
FROM FROM
@ -683,21 +692,17 @@
</select> </select>
<select id="selByGoodsIdAndRackSid" resultType="java.lang.String"> <select id="selByGoodsIdAndRackSid" resultType="java.lang.String">
SELECT SELECT sid
sid FROM wms_inventory
FROM
wms_inventory
WHERE goodsID = #{goodsID} WHERE goodsID = #{goodsID}
AND warehouseRackSid = #{warehouseRackSid} AND warehouseRackSid = #{warehouseRackSid}
</select> </select>
<select id="compute" resultType="java.math.BigDecimal"> <select id="compute" resultType="java.math.BigDecimal">
SELECT SELECT IFNULL(SUM(COUNT * cost) / SUM(COUNT), 0) AS total
IFNULL(SUM(COUNT * cost) / SUM(COUNT), 0) AS total FROM wms_inventory
FROM
wms_inventory
WHERE goodsSkuSid = #{skuSid} WHERE goodsSkuSid = #{skuSid}
AND COUNT> 0 AND COUNT > 0
</select> </select>
<select id="selCJByDeptSidAndRackSid" resultType="com.yxt.wms.biz.inventory.wmsinventory.WmsInventory"> <select id="selCJByDeptSidAndRackSid" resultType="com.yxt.wms.biz.inventory.wmsinventory.WmsInventory">
@ -744,10 +749,21 @@
i.warehouseRackCode, i.warehouseRackCode,
i.manufacturerName, i.manufacturerName,
i.supplierName, i.supplierName,
(SELECT MIN(wi.firstInDate) FROM wms_inventory as wi WHERE wi.count > 0 and wi.useOrgSid = i.useOrgSid and wi.goodsSkuCode = i.goodsSkuCode and wi.manufacturerSid = i.manufacturerSid and wi.supplierSid = i.supplierSid AND wi.warehouseRackCode = i.warehouseRackCode) firstInDate, (SELECT MIN(wi.firstInDate) FROM wms_inventory as wi WHERE wi.count > 0 and wi.useOrgSid = i.useOrgSid and
date_format ((SELECT MAX(r.createTime) FROM wms_inventory_record as r LEFT JOIN wms_inventory as wi on r.inventorySid = wi.sid WHERE wi.useOrgSid = i.useOrgSid AND wi.warehouseRackCode = i.warehouseRackCode and wi.goodsSkuCode = i.goodsSkuCode and wi.manufacturerSid = i.manufacturerSid and wi.supplierSid = i.supplierSid and r.billType = '1'),'%Y-%m-%d') storageTime, -- 最近一次入库时间 wi.goodsSkuCode = i.goodsSkuCode and wi.manufacturerSid = i.manufacturerSid and wi.supplierSid = i.supplierSid
date_format ((SELECT MAX(r.createTime) FROM wms_inventory_record as r LEFT JOIN wms_inventory as wi on r.inventorySid = wi.sid WHERE wi.useOrgSid = i.useOrgSid AND wi.warehouseRackCode = i.warehouseRackCode and wi.goodsSkuCode = i.goodsSkuCode and wi.manufacturerSid = i.manufacturerSid and wi.supplierSid = i.supplierSid and r.busTypeValue = '销售出库'),'%Y-%m-%d') salesTime, -- 最近一次销售日期 AND wi.warehouseRackCode = i.warehouseRackCode) firstInDate,
DATEDIFF(NOW(),date_format ((SELECT MAX(r.createTime) FROM wms_inventory_record as r LEFT JOIN wms_inventory as wi on r.inventorySid = wi.sid WHERE wi.useOrgSid = i.useOrgSid AND wi.warehouseRackCode = i.warehouseRackCode and wi.goodsSkuCode = i.goodsSkuCode and wi.manufacturerSid = i.manufacturerSid and wi.supplierSid = i.supplierSid and r.billType = '1'),'%Y-%m-%d')) inventoryAge, date_format ((SELECT MAX(r.createTime) FROM wms_inventory_record as r LEFT JOIN wms_inventory as wi on
r.inventorySid = wi.sid WHERE wi.useOrgSid = i.useOrgSid AND wi.warehouseRackCode = i.warehouseRackCode and
wi.goodsSkuCode = i.goodsSkuCode and wi.manufacturerSid = i.manufacturerSid and wi.supplierSid = i.supplierSid
and r.billType = '1'),'%Y-%m-%d') storageTime, -- 最近一次入库时间
date_format ((SELECT MAX(r.createTime) FROM wms_inventory_record as r LEFT JOIN wms_inventory as wi on
r.inventorySid = wi.sid WHERE wi.useOrgSid = i.useOrgSid AND wi.warehouseRackCode = i.warehouseRackCode and
wi.goodsSkuCode = i.goodsSkuCode and wi.manufacturerSid = i.manufacturerSid and wi.supplierSid = i.supplierSid
and r.busTypeValue = '销售出库'),'%Y-%m-%d') salesTime, -- 最近一次销售日期
DATEDIFF(NOW(),date_format ((SELECT MAX(r.createTime) FROM wms_inventory_record as r LEFT JOIN wms_inventory as
wi on r.inventorySid = wi.sid WHERE wi.useOrgSid = i.useOrgSid AND wi.warehouseRackCode = i.warehouseRackCode
and wi.goodsSkuCode = i.goodsSkuCode and wi.manufacturerSid = i.manufacturerSid and wi.supplierSid =
i.supplierSid and r.billType = '1'),'%Y-%m-%d')) inventoryAge,
i.manufactorBillNo, i.manufactorBillNo,
pb.payTypeValue procurementMethod, pb.payTypeValue procurementMethod,
pb.purchaseTypeValue, pb.purchaseTypeValue,
@ -760,14 +776,35 @@
LEFT JOIN wms_warehouse_area as wa ON wa.sid = ra.locationSid LEFT JOIN wms_warehouse_area as wa ON wa.sid = ra.locationSid
LEFT JOIN yxt_pms.pms_purchase_bill as pb ON pb.manufacturersOrderNumber = i.manufactorBillNo LEFT JOIN yxt_pms.pms_purchase_bill as pb ON pb.manufacturersOrderNumber = i.manufactorBillNo
WHERE i.count > 0 WHERE i.count > 0
GROUP BY i.goodsID,i.goodsSkuSid,i.goodsSkuCode,i.useOrgSid,i.manufacturerSid,i.supplierSid,i.warehouseRackCode,i.manufactorBillNo) m GROUP BY
i.goodsID,i.goodsSkuSid,i.goodsSkuCode,i.useOrgSid,i.manufacturerSid,i.supplierSid,i.warehouseRackCode,i.manufactorBillNo)
m
<where> <where>
${ew.sqlSegment} ${ew.sqlSegment}
</where> </where>
</select> </select>
<select id="selOaInventoryList" resultType="com.yxt.wms.biz.inventory.wmsinventory.WmsInventory"> <select id="selOaInventoryList" resultType="com.yxt.wms.biz.inventory.wmsinventory.WmsInventory">
select wi.* from wms_inventory as wi select wi.*
from wms_inventory as wi
LEFT JOIN wms_warehouse_info wwi on wi.warehouseSid = wwi.sid LEFT JOIN wms_warehouse_info wwi on wi.warehouseSid = wwi.sid
where wi.count > 0 and wi.useOrgSid =#{useOrgSid} and wwi.warehouseTypeValue =#{warehouseTypeValue} where wi.count > 0
and wi.useOrgSid = #{useOrgSid}
and wwi.warehouseTypeValue = #{warehouseTypeValue}
</select>
<select id="selBySpuSidAndUseOrgSidWarehouseSid" resultType="com.yxt.wms.biz.inventory.wmsinventory.WmsInventory">
SELECT
*
FROM
wms_inventory
WHERE goodsSpuSid = #{spuSid}
AND useOrgSid = #{useOrgSid}
AND warehouseSid = #{warehouseSid}
<if test="sids != null and sids.size() != 0">
AND sid NOT IN
<foreach collection="sids" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
</if>
</select> </select>
</mapper> </mapper>

93
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryService.java

@ -2,6 +2,7 @@ package com.yxt.wms.biz.inventory.wmsinventory;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.service.MybatisBaseService; import com.yxt.common.base.service.MybatisBaseService;
@ -12,10 +13,7 @@ import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo; import com.yxt.common.core.vo.PagerVo;
import com.yxt.wms.biz.base.wmswarehouserack.WmsHouseInfoVo; import com.yxt.wms.biz.base.wmswarehouserack.WmsHouseInfoVo;
import com.yxt.wms.biz.base.wmswarehouserack.WmsWarehouseRackService; import com.yxt.wms.biz.base.wmswarehouserack.WmsWarehouseRackService;
import com.yxt.wms.biz.inventory.wmsinventory.appH5.GoodsListTagH5Vo; import com.yxt.wms.biz.inventory.wmsinventory.appH5.*;
import com.yxt.wms.biz.inventory.wmsinventory.appH5.GoodsTagH5Vo;
import com.yxt.wms.biz.inventory.wmsinventory.appH5.HouseRackH5Vo;
import com.yxt.wms.biz.inventory.wmsinventory.appH5.HouseRackListVo;
import com.yxt.wms.biz.inventory.wmsinventory.appInventory.*; import com.yxt.wms.biz.inventory.wmsinventory.appInventory.*;
import com.yxt.wms.biz.inventory.wmsinventory.report.DeadStockQuery; import com.yxt.wms.biz.inventory.wmsinventory.report.DeadStockQuery;
import com.yxt.wms.biz.inventory.wmsinventory.report.DeadStockVo; import com.yxt.wms.biz.inventory.wmsinventory.report.DeadStockVo;
@ -59,6 +57,7 @@ public class WmsInventoryService extends MybatisBaseService<WmsInventoryMapper,
private SysUserFeign sysUserFeign; private SysUserFeign sysUserFeign;
@Autowired @Autowired
private BaseGoodsSkuExtendFeign baseGoodsSkuExtendFeign; private BaseGoodsSkuExtendFeign baseGoodsSkuExtendFeign;
public PagerVo<WmsInventoryVo> listPage(PagerQuery<WmsInventoryQuery> pq) { public PagerVo<WmsInventoryVo> listPage(PagerQuery<WmsInventoryQuery> pq) {
WmsInventoryQuery query = pq.getParams(); WmsInventoryQuery query = pq.getParams();
QueryWrapper<WmsInventory> qw = new QueryWrapper<>(); QueryWrapper<WmsInventory> qw = new QueryWrapper<>();
@ -739,6 +738,72 @@ public class WmsInventoryService extends MybatisBaseService<WmsInventoryMapper,
return vo; return vo;
} }
public GoodsTwoVo goods2(GoodsTwoQuery query) {
GoodsTwoVo goodsTwoVo = new GoodsTwoVo();
String deptSid = "";
List<String> split = Arrays.asList(query.getOrgPath().split("/"));
if (split.size() > 1) {
//获取本级sid获取本级部门信息
SysOrganizationVo sysOrganization1 = sysOrganizationFeign.fetchBySid(split.get(split.size() - 1)).getData();
deptSid = sysOrganization1.getSid();
} else {
SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(split.get(0)).getData();
deptSid = sysOrganization.getSid();
}
if (StringUtils.isBlank(query.getStoreSid())) {
List<WmsInventory> wmsInventoryList = baseMapper.selBySpuSidAndUseOrgSid(query.getSid(), deptSid);
goodsTwoVo.setGoodsName(wmsInventoryList.get(0).getGoodsSkuTitle());
goodsTwoVo.setNumId(wmsInventoryList.get(0).getGoodsSkuCode());
goodsTwoVo.setProvider(wmsInventoryList.get(0).getSupplierName());
goodsTwoVo.setInboundTime(DateUtil.formatDate(wmsInventoryList.get(0).getFirstInDate()));
goodsTwoVo.setGoodsSkuOwnSpec(wmsInventoryList.get(0).getGoodsSkuOwnSpec());
goodsTwoVo.setUnit(wmsInventoryList.get(0).getUnit());
List<GoodsTwoListVo> list = new ArrayList<>();
for (WmsInventory wmsInventory : wmsInventoryList) {
GoodsTwoListVo goodsTwoListVo = new GoodsTwoListVo();
goodsTwoListVo.setSid(wmsInventory.getSid());
goodsTwoListVo.setGoodsName(wmsInventory.getGoodsSkuTitle());
goodsTwoListVo.setNumId(wmsInventory.getGoodsSkuCode());
goodsTwoListVo.setStore(wmsInventory.getWarehouseName());
goodsTwoListVo.setStoreSid(wmsInventory.getWarehouseSid());
goodsTwoListVo.setCount(wmsInventory.getCount().toString());
goodsTwoListVo.setMaxCount(wmsInventory.getCount().toString());
goodsTwoListVo.setHouseInfo("保内-" + wmsInventory.getWarehouseName() + " " + wmsInventory.getWarehouseRackCode());
if (wmsInventory.getCount().compareTo(BigDecimal.ONE) == 0) {
goodsTwoListVo.setForbid(true);
}
list.add(goodsTwoListVo);
}
goodsTwoVo.setList(list);
return goodsTwoVo;
}
List<WmsInventory> wmsInventoryList = baseMapper.selBySpuSidAndUseOrgSidWarehouseSid(query.getSid(), deptSid, query.getStoreSid(), query.getSids());
goodsTwoVo.setGoodsName(wmsInventoryList.get(0).getGoodsSkuTitle());
goodsTwoVo.setNumId(wmsInventoryList.get(0).getGoodsSkuCode());
goodsTwoVo.setProvider(wmsInventoryList.get(0).getSupplierName());
goodsTwoVo.setInboundTime(DateUtil.formatDate(wmsInventoryList.get(0).getFirstInDate()));
goodsTwoVo.setGoodsSkuOwnSpec(wmsInventoryList.get(0).getGoodsSkuOwnSpec());
goodsTwoVo.setUnit(wmsInventoryList.get(0).getUnit());
List<GoodsTwoListVo> list = new ArrayList<>();
for (WmsInventory wmsInventory : wmsInventoryList) {
GoodsTwoListVo goodsTwoListVo = new GoodsTwoListVo();
goodsTwoListVo.setSid(wmsInventory.getSid());
goodsTwoListVo.setGoodsName(wmsInventory.getGoodsSkuTitle());
goodsTwoListVo.setNumId(wmsInventory.getGoodsSkuCode());
goodsTwoListVo.setStore(wmsInventory.getWarehouseName());
goodsTwoListVo.setStoreSid(wmsInventory.getWarehouseSid());
goodsTwoListVo.setCount(wmsInventory.getCount().toString());
goodsTwoListVo.setMaxCount(wmsInventory.getCount().toString());
goodsTwoListVo.setHouseInfo("保内-" + wmsInventory.getWarehouseName() + " " + wmsInventory.getWarehouseRackCode());
if (wmsInventory.getCount().compareTo(BigDecimal.ONE) == 0) {
goodsTwoListVo.setForbid(true);
}
list.add(goodsTwoListVo);
}
goodsTwoVo.setList(list);
return goodsTwoVo;
}
public List<WmsInventory> selByDeptSid(String deptSid) { public List<WmsInventory> selByDeptSid(String deptSid) {
return baseMapper.selByDeptSid(deptSid); return baseMapper.selByDeptSid(deptSid);
} }
@ -1300,7 +1365,7 @@ public class WmsInventoryService extends MybatisBaseService<WmsInventoryMapper,
useOrgSid = sysOrganization.getSid(); useOrgSid = sysOrganization.getSid();
} }
} }
List<WmsInventory> inventories = baseMapper.selOaInventoryList(useOrgSid,warehouseTypeValue); List<WmsInventory> inventories = baseMapper.selOaInventoryList(useOrgSid, warehouseTypeValue);
if (!inventories.isEmpty()) { if (!inventories.isEmpty()) {
for (WmsInventory d : inventories) { for (WmsInventory d : inventories) {
FormCommon f = new FormCommon(); FormCommon f = new FormCommon();
@ -1308,26 +1373,26 @@ public class WmsInventoryService extends MybatisBaseService<WmsInventoryMapper,
f.setDictValue(d.getGoodsSpuName()); f.setDictValue(d.getGoodsSpuName());
Map<String, Object> extra = new HashMap<>(); Map<String, Object> extra = new HashMap<>();
if (null != d.getCount()) { if (null != d.getCount()) {
extra.put("count",d.getCount().toString()); extra.put("count", d.getCount().toString());
} }
if (StringUtils.isNotBlank(d.getGoodsSkuOwnSpec())) { if (StringUtils.isNotBlank(d.getGoodsSkuOwnSpec())) {
extra.put("goodsSkuOwnSpec",d.getGoodsSkuOwnSpec()); extra.put("goodsSkuOwnSpec", d.getGoodsSkuOwnSpec());
} }
if (StringUtils.isNotBlank(d.getGoodsSkuSid())) { if (StringUtils.isNotBlank(d.getGoodsSkuSid())) {
extra.put("goodsSkuSid",d.getGoodsSkuSid()); extra.put("goodsSkuSid", d.getGoodsSkuSid());
} }
if (StringUtils.isNotBlank(d.getGoodsSpuSid())) { if (StringUtils.isNotBlank(d.getGoodsSpuSid())) {
extra.put("goodsSpuSid",d.getGoodsSpuSid()); extra.put("goodsSpuSid", d.getGoodsSpuSid());
} }
if (StringUtils.isNotBlank(d.getUnit())) { if (StringUtils.isNotBlank(d.getUnit())) {
extra.put("unit",d.getUnit()); extra.put("unit", d.getUnit());
} }
if (warehouseTypeValue.equals("招待库")) { if (warehouseTypeValue.equals("招待库")) {
String price = baseGoodsSkuExtendFeign.selSalesPrice(d.getGoodsSkuSid()).getData(); String price = baseGoodsSkuExtendFeign.selSalesPrice(d.getGoodsSkuSid()).getData();
if (StringUtils.isNotBlank(price)) { if (StringUtils.isNotBlank(price)) {
extra.put("price",price); extra.put("price", price);
} else { } else {
extra.put("price",""); extra.put("price", "");
} }
} }
f.setExtra(extra); f.setExtra(extra);
@ -1345,13 +1410,13 @@ public class WmsInventoryService extends MybatisBaseService<WmsInventoryMapper,
public ResultBean<List<WmsInventory>> selByGoodsIDAndUseOrgSid(String goodID, String useOrgSid) { public ResultBean<List<WmsInventory>> selByGoodsIDAndUseOrgSid(String goodID, String useOrgSid) {
ResultBean rb = ResultBean.fireFail(); ResultBean rb = ResultBean.fireFail();
List<WmsInventory> wmsInventoryList = baseMapper.selByGoodsIDAndUseOrgSid(goodID,useOrgSid); List<WmsInventory> wmsInventoryList = baseMapper.selByGoodsIDAndUseOrgSid(goodID, useOrgSid);
return rb.success().setData(wmsInventoryList); return rb.success().setData(wmsInventoryList);
} }
public ResultBean<List<WmsInventory>> selByGoodsIDAndUseOrgSidAndWarehouseSid(String goodID, String useOrgSid, String warehouseSid) { public ResultBean<List<WmsInventory>> selByGoodsIDAndUseOrgSidAndWarehouseSid(String goodID, String useOrgSid, String warehouseSid) {
ResultBean rb = ResultBean.fireFail(); ResultBean rb = ResultBean.fireFail();
List<WmsInventory> wmsInventoryList = baseMapper.selByGoodsIDAndUseOrgSidAndWarehouseSid(goodID,useOrgSid,warehouseSid); List<WmsInventory> wmsInventoryList = baseMapper.selByGoodsIDAndUseOrgSidAndWarehouseSid(goodID, useOrgSid, warehouseSid);
return rb.success().setData(wmsInventoryList); return rb.success().setData(wmsInventoryList);
} }
} }

48
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/appH5/GoodsTwoListVo.java

@ -0,0 +1,48 @@
package com.yxt.wms.biz.inventory.wmsinventory.appH5;
import lombok.Data;
import java.util.List;
/**
* @author Fan
* @description
* @date 2024/6/26 10:40
*/
@Data
public class GoodsTwoListVo {
private String sid;
/**
* 商品名称
*/
private String goodsName;
/**
* 图号
*/
private String numId;
/**
* 仓库
*/
private String store;
/**
* 仓库sid
*/
private String storeSid;
/**
* 可调数量
*/
private String count;
/**
* 最大可调数量
*/
private String maxCount;
/**
* 格式例保内-仓库 库位编码
*/
private String houseInfo;
/**
* 是否禁止修改(maxCount=1 true)
*/
private Boolean forbid = false;
}

28
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/appH5/GoodsTwoQuery.java

@ -0,0 +1,28 @@
package com.yxt.wms.biz.inventory.wmsinventory.appH5;
import lombok.Data;
import java.util.List;
/**
* @author Fan
* @description
* @date 2024/6/26 10:40
*/
@Data
public class GoodsTwoQuery {
private String orgPath;
/**
* 商品sid
*/
private String sid;
/**
* 需要去重的库存sid
*/
private List<String> sids;
/**
* 仓库sid
*/
private String storeSid;
}

41
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/appH5/GoodsTwoVo.java

@ -0,0 +1,41 @@
package com.yxt.wms.biz.inventory.wmsinventory.appH5;
import lombok.Data;
import java.util.List;
/**
* @author Fan
* @description
* @date 2024/6/26 10:40
*/
@Data
public class GoodsTwoVo {
/**
* 商品名称
*/
private String goodsName;
/**
* 图号
*/
private String numId;
/**
* 供应商
*/
private String provider;
/**
* 首次入库日期
*/
private String inboundTime;
/**
* 规格
*/
private String goodsSkuOwnSpec;
/**
* 计量单位
*/
private String unit;
private List<GoodsTwoListVo> list;
}
Loading…
Cancel
Save