Browse Source

Merge remote-tracking branch 'origin/master'

zhanglei
ligaode 6 months ago
parent
commit
0d82b201aa
  1. 4
      yxt-as-ui/src/views/statement/business/businessDetail.vue
  2. 4
      yxt-as-ui/src/views/statement/business/serviceSummary.vue
  3. 112
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/report/BusDetailsQuery.java
  4. 131
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/report/BusDetailsVo.java
  5. 4
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/report/SummaryVo.java
  6. 6
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillMapper.java
  7. 311
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillMapper.xml
  8. 10
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillRest.java
  9. 149
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillService.java
  10. 4
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairinventorybill/AsBusrepairInventorybillService.java
  11. 8
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsSalesBillMapper.xml
  12. 12
      yxt-wms-biz/src/main/java/com/yxt/wms/apiadmin/inventroy/WmsInventoryRest.java
  13. 3
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryMapper.java
  14. 27
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryMapper.xml
  15. 69
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryService.java
  16. 40
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/report/DeadStockQuery.java
  17. 67
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/report/DeadStockVo.java

4
yxt-as-ui/src/views/statement/business/businessDetail.vue

@ -93,12 +93,12 @@
<el-table-column prop="name" label="名称" align="center" min-width="100" />
<el-table-column prop="billState" label="单据状态" align="center" width="100" />
<el-table-column prop="serviceType" label="工种" align="center" width="100" />
<el-table-column prop="billType" label="维修单类型" align="center" width="100" />
<el-table-column prop="billType" label="维修单类型" align="center" width="120" />
<el-table-column prop="subject" label="维修科目" align="center" width="100" />
<el-table-column prop="goodsSkuTitle" label="图号" align="center" width="100" />
<el-table-column prop="supplierName" label="供应商" align="center" min-width="100" />
<el-table-column prop="manufacturerName" label="厂家" align="center" min-width="100" />
<el-table-column prop="price" label="销售价/工时单价" align="center" width="100" />
<el-table-column prop="price" label="销售价/工时单价" align="center" width="140" />
<el-table-column prop="num" label="数量" align="center" width="100" />
<el-table-column prop="discount" label="折扣" align="center" width="100" />
<el-table-column prop="discountAmount" label="折后金额" align="center" width="100" />

4
yxt-as-ui/src/views/statement/business/serviceSummary.vue

@ -45,13 +45,13 @@
<el-table-column prop="name" label="名称" align="center" min-width="100" />
<el-table-column prop="billState" label="单据状态" align="center" width="100" />
<el-table-column prop="serviceType" label="工种" align="center" width="100" />
<el-table-column prop="billType" label="维修单类型" align="center" width="100" />
<el-table-column prop="billType" label="维修单类型" align="center" width="120" />
<el-table-column prop="subject" label="维修科目" align="center" width="100" />
<el-table-column prop="goodsSkuCode" label="图号" align="center" width="100" />
<el-table-column prop="supplierName" label="供应商" align="center" min-width="100" />
<el-table-column prop="manufacturerName" label="厂家" align="center" min-width="100" />
<el-table-column prop="num" label="数量" align="center" width="100" />
<el-table-column prop="discountAmount" label="折后金额合计" align="center" width="100" />
<el-table-column prop="discountAmount" label="折后金额合计" align="center" width="140" />
<el-table-column prop="costTotal" label="成本合计" align="center" width="100" />
<el-table-column prop="profit" label="利润" align="center" width="100" />
</el-table>

112
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/report/BusDetailsQuery.java

@ -0,0 +1,112 @@
package com.yxt.anrui.as.api.asbusrepairbill.report;
import com.yxt.common.core.query.Query;
import lombok.Data;
/**
* @author Fan
* @description
* @date 2024/11/7 15:32
*/
@Data
public class BusDetailsQuery implements Query {
private String orgPath;
private String userSid;
private String menuUrl;
/**
* 维修单号/销售单号
*/
private String billNo;
/**
* 单据状态
*/
private String billState;
/**
* 维修单类型
*/
private String billType;
/**
* 业务类型
*/
private String busType;
/**
* 开单时间结束
*/
private String createEndTime;
/**
* 开单时间开始
*/
private String createStartTime;
/**
* 客户
*/
private String customerName;
/**
* 门店
*/
private String deptName;
/**
* 图号
*/
private String goodsSkuCode;
/**
* 厂家
*/
private String manufacturerName;
/**
* 名称
*/
private String name;
/**
* 销售价/工时单价
*/
private String price;
/**
* 维修技师
*/
private String repairerName;
/**
* 工种
*/
private String serviceType;
/**
* 结算时间结束
*/
private String settleEndTime;
/**
* 结算时间开始
*/
private String settleStartTime;
/**
* 科目
*/
private String subject;
/**
* 供应商
*/
private String supplierName;
/**
* 分公司
*/
private String useOrgName;
/**
* 车牌号
*/
private String vehMark;
/**
* 车型
*/
private String vehModel;
/**
* 车架号
*/
private String vinNo;
/**
* 服务顾问
*/
private String waitorName;
}

131
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/report/BusDetailsVo.java

@ -0,0 +1,131 @@
package com.yxt.anrui.as.api.asbusrepairbill.report;
import com.yxt.common.core.vo.Vo;
import lombok.Data;
/**
* @author Fan
* @description
* @date 2024/11/7 15:32
*/
@Data
public class BusDetailsVo implements Vo {
/**
* 维修单号/销售单号
*/
private String billNo;
/**
* 单据状态
*/
private String billState;
/**
* 维修单类型
*/
private String billType;
/**
* 业务类型
*/
private String busType;
/**
* 成本价
*/
private String cost;
/**
* 合计成本
*/
private String costTotal;
/**
* 开单时间
*/
private String createTime;
/**
* 客户
*/
private String customerName;
/**
* 门店
*/
private String deptName;
/**
* 折扣
*/
private String discount;
/**
* 折后金额
*/
private String discountAmount;
/**
* 派工时间
*/
private String dispatchTime;
/**
* 竣工时间
*/
private String finishTime;
/**
* 图号
*/
private String goodsSkuTitle;
/**
* 厂家
*/
private String manufacturerName;
/**
* 名称
*/
private String name;
/**
* 数量
*/
private String num;
/**
* 销售价/工时单价
*/
private String price;
/**
* 利润
*/
private String profit;
/**
* 维修技师
*/
private String repairerName;
/**
* 工种
*/
private String serviceType;
/**
* 结算时间
*/
private String settleTime;
/**
* 维修科目
*/
private String subject;
/**
* 供应商
*/
private String supplierName;
/**
* 分公司
*/
private String useOrgName;
/**
* 车牌号
*/
private String vehMark;
/**
* 车型
*/
private String vehModel;
/**
* 车架号
*/
private String vinNo;
/**
* 服务顾问
*/
private String waitorName;
}

4
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/report/SummaryVo.java

@ -23,6 +23,10 @@ public class SummaryVo implements Vo {
* 业务类型
*/
private String busType;
/**
* 科目
*/
private String subject;
/**
* 成本合计
*/

6
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillMapper.java

@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.anrui.as.api.asbusrepairbill.*;
import com.yxt.anrui.as.api.asbusrepairbill.app.*;
import com.yxt.anrui.as.api.asbusrepairbill.report.BusDetailsVo;
import com.yxt.anrui.as.api.asbusrepairbill.report.SummaryVo;
import com.yxt.anrui.as.api.asbusrepairinventorybilldetail.SitemsVo;
import com.yxt.common.core.result.ResultBean;
import org.apache.ibatis.annotations.Mapper;
@ -65,4 +67,8 @@ public interface AsBusrepairBillMapper extends BaseMapper<AsBusrepairBill> {
ResultBean updateOldIsReclaim(String billNo);
String selLastTaxRateByUseOrgSid(@Param("createOrgSid") String createOrgSid);
IPage<SummaryVo> Summary(IPage<AsBusrepairBill> page,@Param(Constants.WRAPPER) QueryWrapper<AsBusrepairBill> qw);
IPage<BusDetailsVo> busDetailsList(IPage<AsBusrepairBill> page, @Param(Constants.WRAPPER) QueryWrapper<AsBusrepairBill> qw);
}

311
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillMapper.xml

@ -340,4 +340,315 @@
WHERE s.useOrgSid LIKE concat('%', #{createOrgSid}, '%')
AND S.parameterNo = 'SHXSZDSL'
</select>
<select id="Summary" resultType="com.yxt.anrui.as.api.asbusrepairbill.report.SummaryVo">
SELECT * FROM
(SELECT
a.orgSidPath,
a.`deptName`,
a.`useOrgName`,
d.billBusTypeValue busType,
d.goodsSpuName `name`,
a.nodeName billState,
'' serviceType,
a.billType,
a.`subject`,
d.goodsSkuCode,
d.supplierName,
d.manufacturerName,
date_format ( a.createTime, '%Y-%m-%d' ) createTime,
date_format ( a.settleTime, '%Y-%m-%d' ) settleTime,
(IFNULL(SUM(d.count),0) - (SELECT IFNULL(SUM(de.count),0) FROM as_busrepair_inventorybill_detail as de LEFT JOIN as_busrepair_inventorybill as be ON de.billSid = be.sid WHERE de.inventorySid = d.inventorySid AND be.sourceBillSid = a.sid AND b.busTypeKey = '1') ) as num,
(IFNULL(SUM(d.amount),0) - (SELECT IFNULL(SUM(de.amount),0) FROM as_busrepair_inventorybill_detail as de LEFT JOIN as_busrepair_inventorybill as be ON de.billSid = be.sid WHERE de.inventorySid = d.inventorySid AND be.sourceBillSid = a.sid AND b.busTypeKey = '1') ) as discountAmount,
(IFNULL(SUM(d.costTotal),0) - (SELECT IFNULL(SUM(de.costTotal),0) FROM as_busrepair_inventorybill_detail as de LEFT JOIN as_busrepair_inventorybill as be ON de.billSid = be.sid WHERE de.inventorySid = d.inventorySid AND be.sourceBillSid = a.sid AND b.busTypeKey = '1') ) as costTotal,
((IFNULL(SUM(d.amount),0) - (SELECT IFNULL(SUM(de.amount),0) FROM as_busrepair_inventorybill_detail as de LEFT JOIN as_busrepair_inventorybill as be ON de.billSid = be.sid WHERE de.inventorySid = d.inventorySid AND be.sourceBillSid = a.sid AND b.busTypeKey = '1') ) - (IFNULL(SUM(d.costTotal),0) - (SELECT IFNULL(SUM(de.costTotal),0) FROM as_busrepair_inventorybill_detail as de LEFT JOIN as_busrepair_inventorybill as be ON de.billSid = be.sid WHERE de.inventorySid = d.inventorySid AND be.sourceBillSid = a.sid AND b.busTypeKey = '1') ) ) as profit
FROM
as_busrepair_inventorybill_detail AS d
LEFT JOIN as_busrepair_inventorybill AS b ON d.billSid = b.sid
LEFT JOIN as_busrepair_bill AS a ON b.sourceBillSid = a.sid
LEFT JOIN yxt_wms.wms_inventory AS i ON d.inventorySid = i.sid
WHERE b.busTypeKey = '0'
GROUP BY
a.sid,date_format ( a.createTime, '%Y-%m-%d' ),date_format ( a.settleTime, '%Y-%m-%d' ),a.useOrgSid,d.inventorySid,a.billType,a.`subject`,d.billBusTypeValue,a.nodeCode
UNION ALL
SELECT
a.orgSidPath,
a.`deptName`,
a.`useOrgName`,
s.billBusTypeValue busType,
s.serviceItem `name`,
a.nodeName billState,
s.serviceType,
a.billType,
a.`subject`,
'' goodsSkuCode,
'' supplierName,
'' manufacturerName,
date_format ( a.createTime, '%Y-%m-%d' ) createTime,
date_format ( a.settleTime, '%Y-%m-%d' ) settleTime,
IFNULL(SUM(s.hours),0) as num,
IFNULL(SUM(s.amount),0) as discountAmount,
IFNULL(SUM(s.costTotal),0) as costTotal,
(IFNULL(SUM(s.amount),0) - IFNULL(SUM(s.costTotal),0)) as profit
FROM as_busrepair_bill_sitem as s LEFT JOIN as_busrepair_bill as a ON s.billSid = a.sid
GROUP BY
a.sid,date_format ( a.createTime, '%Y-%m-%d' ),date_format ( a.settleTime, '%Y-%m-%d' ),a.useOrgSid,a.billType,a.`subject`,s.billBusTypeValue,a.nodeCode
UNION ALL
SELECT
a.orgSidPath,
a.`deptName`,
a.`useOrgName`,
s.billBusTypeValue busType,
s.attachItem `name`,
a.nodeName billState,
'' serviceType,
a.billType,
a.`subject`,
'' goodsSkuCode,
'' supplierName,
'' manufacturerName,
date_format ( a.createTime, '%Y-%m-%d' ) createTime,
date_format ( a.settleTime, '%Y-%m-%d' ) settleTime,
COUNT(*) as num,
IFNULL(SUM(s.price),0) as discountAmount,
IFNULL(SUM(s.costTotal),0) as costTotal,
(IFNULL(SUM(s.price),0) - IFNULL(SUM(s.costTotal),0)) as profit
FROM as_busrepair_bill_aitem as s LEFT JOIN as_busrepair_bill as a ON s.billSid = a.sid
GROUP BY
a.sid,date_format ( a.createTime, '%Y-%m-%d' ),date_format ( a.settleTime, '%Y-%m-%d' ),a.useOrgSid,a.billType,a.`subject`,s.billBusTypeValue,a.nodeCode
UNION ALL
SELECT
a.orgSidPath,
a.`deptName`,
a.`useOrgName`,
s.billBusTypeValue busType,
s.attachItem `name`,
a.nodeName billState,
'' serviceType,
a.billType,
a.`subject`,
'' goodsSkuCode,
'' supplierName,
'' manufacturerName,
date_format ( a.createTime, '%Y-%m-%d' ) createTime,
date_format ( a.settleTime, '%Y-%m-%d' ) settleTime,
IFNULL(SUM(s.count),0) as num,
IFNULL(SUM(s.price),0) as discountAmount,
IFNULL(SUM(s.costTotal),0) as costTotal,
(IFNULL(SUM(s.price),0) - IFNULL(SUM(s.costTotal),0)) as profit
FROM as_busrepair_bill_aitemspec as s LEFT JOIN as_busrepair_bill as a ON s.billSid = a.sid
GROUP BY
a.sid,s.attachItem,date_format ( a.createTime, '%Y-%m-%d' ),date_format ( a.settleTime, '%Y-%m-%d' ),a.useOrgSid,a.billType,a.`subject`,s.billBusTypeValue,a.nodeCode
UNION ALL
SELECT
s.orgSidPath,
a.`deptName`,
s.`name` `useOrgName`,
d.billBusTypeValue busType,
d.goodsSpuName `name`,
IF(a.settleTime = '', '新建',
IF(a.settleTime is null, '新建', '已结算')) AS `billState`,
'' serviceType,
'' billType,
'' `subject`,
d.goodsSkuCode,
d.supplierName,
d.manufacturerName,
date_format ( a.createTime, '%Y-%m-%d' ) createTime,
date_format ( a.settleTime, '%Y-%m-%d' ) settleTime,
(IFNULL(SUM(d.count),0)) as num,
(IFNULL(SUM(d.amount),0)) as discountAmount,
(IFNULL(SUM(d.costTotal),0)) as costTotal,
((IFNULL(SUM(d.amount),0)) - (IFNULL(SUM(d.costTotal),0)) ) as profit
FROM
yxt_sms.sms_sales_bill_detail AS d
LEFT JOIN yxt_sms.sms_sales_bill AS a ON d.billSid = a.sid
LEFT JOIN anrui_portal.sys_organization AS s ON a.deptSid = s.sid
GROUP BY
a.sid,date_format ( a.createTime, '%Y-%m-%d' ),date_format ( a.settleTime, '%Y-%m-%d' ),a.useOrgSid,d.billBusTypeValue) as m
<where>
${ew.sqlSegment}
</where>
</select>
<select id="busDetailsList" resultType="com.yxt.anrui.as.api.asbusrepairbill.report.BusDetailsVo">
SELECT * FROM
(SELECT
a.orgSidPath,
a.`deptName`,
a.`useOrgName`,
d.billBusTypeValue busType,
d.goodsSpuName `name`,
a.nodeName billState,
'' serviceType,
a.billType,
a.`subject`,
d.goodsSkuCode,
d.supplierName,
d.manufacturerName,
d.price,
(IFNULL(SUM(d.count),0) - (SELECT IFNULL(SUM(de.count),0) FROM as_busrepair_inventorybill_detail as de LEFT JOIN as_busrepair_inventorybill as be ON de.billSid = be.sid WHERE de.inventorySid = d.inventorySid AND be.sourceBillSid = a.sid AND b.busTypeKey = '1') ) as num,
d.discount,
(IFNULL(SUM(d.amount),0) - (SELECT IFNULL(SUM(de.amount),0) FROM as_busrepair_inventorybill_detail as de LEFT JOIN as_busrepair_inventorybill as be ON de.billSid = be.sid WHERE de.inventorySid = d.inventorySid AND be.sourceBillSid = a.sid AND b.busTypeKey = '1') ) as discountAmount,
d.cost,
(IFNULL(SUM(d.costTotal),0) - (SELECT IFNULL(SUM(de.costTotal),0) FROM as_busrepair_inventorybill_detail as de LEFT JOIN as_busrepair_inventorybill as be ON de.billSid = be.sid WHERE de.inventorySid = d.inventorySid AND be.sourceBillSid = a.sid AND b.busTypeKey = '1') ) as costTotal,
((IFNULL(SUM(d.amount),0) - (SELECT IFNULL(SUM(de.amount),0) FROM as_busrepair_inventorybill_detail as de LEFT JOIN as_busrepair_inventorybill as be ON de.billSid = be.sid WHERE de.inventorySid = d.inventorySid AND be.sourceBillSid = a.sid AND b.busTypeKey = '1') ) - (IFNULL(SUM(d.costTotal),0) - (SELECT IFNULL(SUM(de.costTotal),0) FROM as_busrepair_inventorybill_detail as de LEFT JOIN as_busrepair_inventorybill as be ON de.billSid = be.sid WHERE de.inventorySid = d.inventorySid AND be.sourceBillSid = a.sid AND b.busTypeKey = '1') ) ) as profit,
a.billNo,
date_format ( a.createTime, '%Y-%m-%d' ) createTime,
a.dispatchTime,
a.finishTime,
date_format ( a.settleTime, '%Y-%m-%d' ) settleTime,
a.waitorName,
'' repairerName,
a.customerName,
v.vinNo,
v.vehMark,
v.vehModel
FROM
as_busrepair_inventorybill_detail AS d
LEFT JOIN as_busrepair_inventorybill AS b ON d.billSid = b.sid
LEFT JOIN as_busrepair_bill AS a ON b.sourceBillSid = a.sid
LEFT JOIN as_busrepair_bill_vech AS v ON v.billSid = a.sid
WHERE b.busTypeKey = '0'
GROUP BY a.sid,d.inventorySid
UNION ALL
SELECT
a.orgSidPath,
a.`deptName`,
a.`useOrgName`,
d.billBusTypeValue busType,
d.serviceItem `name`,
a.nodeName billState,
d.serviceType,
a.billType,
a.`subject`,
'' goodsSkuCode,
'' supplierName,
'' manufacturerName,
IFNULL(d.price,0) price,
IFNULL(d.hours,0) num,
IFNULL(d.discount,0) discount,
IFNULL(d.amount,0)as discountAmount,
IFNULL(d.cost,0)as cost,
IFNULL(d.costTotal,0)as costTotal,
((IFNULL(d.amount,0)) - (IFNULL(d.costTotal,0))) as profit,
a.billNo,
date_format ( a.createTime, '%Y-%m-%d' ) createTime,
a.dispatchTime,
a.finishTime,
date_format ( a.settleTime, '%Y-%m-%d' ) settleTime,
a.waitorName,
(SELECT GROUP_CONCAT( r.repairerName SEPARATOR ',' ) FROM as_busrepair_bill_sitem_repairer as r WHERE r.billSid = a.sid and r.repairitemSid = d.serviceItemSid) as repairerName,
a.customerName,
v.vinNo,
v.vehMark,
v.vehModel
FROM as_busrepair_bill_sitem as d
LEFT JOIN as_busrepair_bill as a ON d.billSid = a.sid
LEFT JOIN as_busrepair_bill_vech as v ON v.billSid = a.sid
UNION ALL
SELECT
a.orgSidPath,
a.`deptName`,
a.`useOrgName`,
d.billBusTypeValue busType,
d.attachItem `name`,
a.nodeName billState,
'' serviceType,
a.billType,
a.`subject`,
'' goodsSkuCode,
'' supplierName,
'' manufacturerName,
IFNULL(d.price,0) price,
'1' num,
'' discount,
IFNULL(d.price,0) as discountAmount,
IFNULL(d.cost,0)as cost,
IFNULL(d.costTotal,0)as costTotal,
((IFNULL(d.price,0)) - (IFNULL(d.costTotal,0))) as profit,
a.billNo,
date_format ( a.createTime, '%Y-%m-%d' ) createTime,
a.dispatchTime,
a.finishTime,
date_format ( a.settleTime, '%Y-%m-%d' ) settleTime,
a.waitorName,
'' repairerName,
a.customerName,
v.vinNo,
v.vehMark,
v.vehModel
FROM as_busrepair_bill_aitem as d LEFT JOIN as_busrepair_bill as a ON d.billSid = a.sid LEFT JOIN as_busrepair_bill_vech as v ON v.billSid = a.sid
UNION ALL
SELECT
a.orgSidPath,
a.`deptName`,
a.`useOrgName`,
d.billBusTypeValue busType,
d.attachItem `name`,
a.nodeName billState,
'' serviceType,
a.billType,
a.`subject`,
'' goodsSkuCode,
'' supplierName,
'' manufacturerName,
IFNULL(d.price,0) price,
'1' num,
'' discount,
IFNULL(d.price,0) as discountAmount,
IFNULL(d.cost,0)as cost,
IFNULL(d.costTotal,0)as costTotal,
((IFNULL(d.price,0)) - (IFNULL(d.costTotal,0))) as profit,
a.billNo,
date_format ( a.createTime, '%Y-%m-%d' ) createTime,
a.dispatchTime,
a.finishTime,
date_format ( a.settleTime, '%Y-%m-%d' ) settleTime,
a.waitorName,
'' repairerName,
a.customerName,
v.vinNo,
v.vehMark,
v.vehModel
FROM as_busrepair_bill_aitemspec as d LEFT JOIN as_busrepair_bill as a ON d.billSid = a.sid LEFT JOIN as_busrepair_bill_vech as v ON v.billSid = a.sid
UNION ALL
SELECT
s.orgSidPath,
a.`deptName`,
s.`name` `useOrgName`,
d.billBusTypeValue busType,
d.goodsSpuName `name`,
IF(a.settleTime = '', '新建',
IF(a.settleTime is null, '新建', '已结算')) AS `billState`,
'' serviceType,
'' billType,
'' `subject`,
d.goodsSkuCode,
d.supplierName,
d.manufacturerName,
IFNULL(d.price,0) price,
IFNULL(d.count,0) as num,
IFNULL(d.discount,0) discount,
IFNULL(d.amount,0) as discountAmount,
IFNULL(d.cost,0) cost,
IFNULL(d.costTotal,0) as costTotal,
((IFNULL(d.amount,0)) - (IFNULL(d.costTotal,0)) ) as profit,
a.billNo,
date_format ( a.createTime, '%Y-%m-%d' ) createTime,
date_format ( a.settleTime, '%Y-%m-%d' ) settleTime,
'' dispatchTime,
'' finishTime,
a.salesName waitorName,
'' repairerName,
a.customerName,
a.vinNo,
a.vehMark,
'' vehModel
FROM
yxt_sms.sms_sales_bill_detail AS d
LEFT JOIN yxt_sms.sms_sales_bill AS a ON d.billSid = a.sid
LEFT JOIN anrui_portal.sys_organization AS s ON a.deptSid = s.sid ) m
<where>
${ew.sqlSegment}
</where>
</select>
</mapper>

10
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillRest.java

@ -2,6 +2,8 @@ package com.yxt.anrui.as.biz.asbusrepairbill;
import com.yxt.anrui.as.api.asbusrepairbill.*;
import com.yxt.anrui.as.api.asbusrepairbill.app.*;
import com.yxt.anrui.as.api.asbusrepairbill.report.BusDetailsQuery;
import com.yxt.anrui.as.api.asbusrepairbill.report.BusDetailsVo;
import com.yxt.anrui.as.api.asbusrepairbill.report.SummaryQuery;
import com.yxt.anrui.as.api.asbusrepairbill.report.SummaryVo;
import com.yxt.anrui.as.api.asbusrepairbillinvoice.AsBusrepairBillInvoice;
@ -308,5 +310,13 @@ public class AsBusrepairBillRest {
return rb.success().setData(pv);
}
@PostMapping("/busDetailsList")
@ApiOperation("业务汇总")
ResultBean<PagerVo<BusDetailsVo>> busDetailsList(@RequestBody PagerQuery<BusDetailsQuery> pagerQuery) {
ResultBean<PagerVo<BusDetailsVo>> rb = ResultBean.fireFail();
PagerVo<BusDetailsVo> pv = asBusrepairBillService.busDetailsList(pagerQuery);
return rb.success().setData(pv);
}
}

149
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillService.java

@ -9,6 +9,8 @@ import com.yxt.anrui.as.api.asappendix.AsAppendix;
import com.yxt.anrui.as.api.asbillsettelapply.AsBillSettelApplyDto;
import com.yxt.anrui.as.api.asbusrepairbill.*;
import com.yxt.anrui.as.api.asbusrepairbill.app.*;
import com.yxt.anrui.as.api.asbusrepairbill.report.BusDetailsQuery;
import com.yxt.anrui.as.api.asbusrepairbill.report.BusDetailsVo;
import com.yxt.anrui.as.api.asbusrepairbill.report.SummaryQuery;
import com.yxt.anrui.as.api.asbusrepairbill.report.SummaryVo;
import com.yxt.anrui.as.api.asbusrepairbillaitem.AsBusrepairBillAitem;
@ -1494,7 +1496,7 @@ public class AsBusrepairBillService extends MybatisBaseService<AsBusrepairBillMa
weight = new BigDecimal(w);
}
sum = sum.add(weight);
map.put(rSid,weight);
map.put(rSid, weight);
}
if (sum.compareTo(BigDecimal.ZERO) > 0) {
if (map.size() > 0) {
@ -2557,6 +2559,7 @@ public class AsBusrepairBillService extends MybatisBaseService<AsBusrepairBillMa
PrivilegeQuery privilegeQuery = new PrivilegeQuery();
privilegeQuery.setOrgPath(query.getOrgPath());
privilegeQuery.setUserSid(query.getUserSid());
privilegeQuery.setMenuUrl(query.getMenuUrl());
ResultBean<String> defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery);
if (StringUtils.isNotBlank(defaultIdReltBean.getData())) {
//数据权限ID(1集团、2事业部、3分公司、4部门、5个人)
@ -2569,18 +2572,18 @@ public class AsBusrepairBillService extends MybatisBaseService<AsBusrepairBillMa
String orgLevelKey = defaultIdReltBean.getData();
if ("1".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i1);
qw.like("s.orgSidPath", orgSidPath);
qw.like("m.orgSidPath", orgSidPath);
} else if ("2".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i2);
qw.like("s.orgSidPath", orgSidPath);
qw.like("m.orgSidPath", orgSidPath);
} else if ("3".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i3);
qw.like("s.orgSidPath", orgSidPath);
qw.like("m.orgSidPath", orgSidPath);
} else if ("4".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i4);
qw.like("s.orgSidPath", orgSidPath);
qw.like("m.orgSidPath", orgSidPath);
} else if ("5".equals(orgLevelKey)) {
qw.eq("a.createBySid", query.getUserSid());
// qw.eq("a.createBySid", query.getUserSid());
} else {
PagerVo<SummaryVo> p = new PagerVo<>();
return p;
@ -2589,10 +2592,134 @@ public class AsBusrepairBillService extends MybatisBaseService<AsBusrepairBillMa
PagerVo<SummaryVo> p = new PagerVo<>();
return p;
}
// IPage<AsBusrepairBill> page = PagerUtil.queryToPage(pq);
// IPage<SummaryVo> pagging = baseMapper.Summary(page, qw);
// PagerVo<SummaryVo> p = PagerUtil.pageToVo(pagging, null);
// return p;
return null;
if (StringUtils.isNotBlank(query.getDateType())) {
String dateType = query.getDateType();
if (dateType.equals("1")) {
//本日
qw.apply("m.settleTime = CURDATE()");
} else if (dateType.equals("2")) {
//本月
qw.apply("m.settleTime >= date_add(curdate(), interval - day(curdate()) + 1 day) AND m.settleTime <= last_day(curdate())");
} else if (dateType.equals("3")) {
//本年
qw.apply("m.settleTime >= date_sub(curdate(), interval dayofyear(curdate())-1 day) AND m.settleTime <= concat(year(curdate()),'-12-31')");
}
}
//开单开始时间
qw.apply(StringUtils.isNotBlank(query.getCreateStartTime()), "date_format (m.createTime,'%Y-%m-%d') >= date_format('" + query.getCreateStartTime() + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(query.getCreateEndTime()), "date_format (m.createTime,'%Y-%m-%d') <= date_format('" + query.getCreateEndTime() + "','%Y-%m-%d')"
);
//结算时间
qw.apply(StringUtils.isNotBlank(query.getSettleStartTime()), "date_format (m.settleTime,'%Y-%m-%d') >= date_format('" + query.getSettleStartTime() + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(query.getSettleEndTime()), "date_format (m.settleTime,'%Y-%m-%d') <= date_format('" + query.getSettleEndTime() + "','%Y-%m-%d')"
);
IPage<AsBusrepairBill> page = PagerUtil.queryToPage(pq);
IPage<SummaryVo> pagging = baseMapper.Summary(page, qw);
PagerVo<SummaryVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public PagerVo<BusDetailsVo> busDetailsList(PagerQuery<BusDetailsQuery> pq) {
BusDetailsQuery query = pq.getParams();
QueryWrapper<AsBusrepairBill> qw = new QueryWrapper<>();
PrivilegeQuery privilegeQuery = new PrivilegeQuery();
privilegeQuery.setOrgPath(query.getOrgPath());
privilegeQuery.setUserSid(query.getUserSid());
privilegeQuery.setMenuUrl(query.getMenuUrl());
ResultBean<String> defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery);
if (StringUtils.isNotBlank(defaultIdReltBean.getData())) {
//数据权限ID(1集团、2事业部、3分公司、4部门、5个人)
String orgSidPath = query.getOrgPath();
orgSidPath = orgSidPath + "/";
int i1 = orgSidPath.indexOf("/");
int i2 = orgSidPath.indexOf("/", i1 + 1);
int i3 = orgSidPath.indexOf("/", i2 + 1);
int i4 = orgSidPath.indexOf("/", i3 + 1);
String orgLevelKey = defaultIdReltBean.getData();
if ("1".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i1);
qw.like("m.orgSidPath", orgSidPath);
} else if ("2".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i2);
qw.like("m.orgSidPath", orgSidPath);
} else if ("3".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i3);
qw.like("m.orgSidPath", orgSidPath);
} else if ("4".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i4);
qw.like("m.orgSidPath", orgSidPath);
} else if ("5".equals(orgLevelKey)) {
// qw.eq("a.createBySid", query.getUserSid());
} else {
PagerVo<BusDetailsVo> p = new PagerVo<>();
return p;
}
} else {
PagerVo<BusDetailsVo> p = new PagerVo<>();
return p;
}
if (StringUtils.isNotBlank(query.getBillNo())) {
qw.like("m.billNo",query.getBillNo());
}
if (StringUtils.isNotBlank(query.getBillState())) {
qw.eq("m.billState",query.getBillState());
}
if (StringUtils.isNotBlank(query.getBillType())) {
qw.eq("m.billType",query.getBillType());
}
//开单开始时间
qw.apply(StringUtils.isNotBlank(query.getCreateStartTime()), "date_format (m.createTime,'%Y-%m-%d') >= date_format('" + query.getCreateStartTime() + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(query.getCreateEndTime()), "date_format (m.createTime,'%Y-%m-%d') <= date_format('" + query.getCreateEndTime() + "','%Y-%m-%d')"
);
if (StringUtils.isNotBlank(query.getCustomerName())) {
qw.like("m.customerName",query.getCustomerName());
}
if (StringUtils.isNotBlank(query.getDeptName())) {
qw.like("m.deptName",query.getDeptName());
}
if (StringUtils.isNotBlank(query.getGoodsSkuCode())) {
qw.like("m.goodsSkuCode",query.getGoodsSkuCode());
}
if (StringUtils.isNotBlank(query.getManufacturerName())) {
qw.like("m.manufacturerName",query.getManufacturerName());
}
if (StringUtils.isNotBlank(query.getName())) {
qw.like("m.name",query.getName());
}
if (StringUtils.isNotBlank(query.getPrice())) {
qw.like("m.price",query.getPrice());
}
if (StringUtils.isNotBlank(query.getRepairerName())) {
qw.like("m.repairerName",query.getRepairerName());
}
if (StringUtils.isNotBlank(query.getServiceType())) {
qw.like("m.serviceType",query.getServiceType());
}
//结算时间
qw.apply(StringUtils.isNotBlank(query.getSettleStartTime()), "date_format (m.settleTime,'%Y-%m-%d') >= date_format('" + query.getSettleStartTime() + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(query.getSettleEndTime()), "date_format (m.settleTime,'%Y-%m-%d') <= date_format('" + query.getSettleEndTime() + "','%Y-%m-%d')"
);
if (StringUtils.isNotBlank(query.getSubject())) {
qw.like("m.subject",query.getSubject());
}
if (StringUtils.isNotBlank(query.getSupplierName())) {
qw.like("m.supplierName",query.getSupplierName());
}
if (StringUtils.isNotBlank(query.getUseOrgName())) {
qw.like("m.useOrgName",query.getUseOrgName());
}
if (StringUtils.isNotBlank(query.getVehMark())) {
qw.like("m.vehMark",query.getVehMark());
}
if (StringUtils.isNotBlank(query.getVinNo())) {
qw.like("m.vinNo",query.getVinNo());
}
if (StringUtils.isNotBlank(query.getWaitorName())) {
qw.like("m.waitorName",query.getWaitorName());
}
IPage<AsBusrepairBill> page = PagerUtil.queryToPage(pq);
IPage<BusDetailsVo> pagging = baseMapper.busDetailsList(page, qw);
PagerVo<BusDetailsVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
}

4
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairinventorybill/AsBusrepairInventorybillService.java

@ -354,8 +354,8 @@ public class AsBusrepairInventorybillService extends MybatisBaseService<AsBusrep
detail.setGoodsDetailsPrice(new BigDecimal(sDto.getPrice()));
}
detail.setIsEnable(isEnable);
detail.setBillBusTypeKey("维修用料");
detail.setBillBusTypeValue("001");
detail.setBillBusTypeKey("001");
detail.setBillBusTypeValue("维修用料");
asBusrepairInventorybillDetailService.insert(detail);
WmsUpdateCountQuery countQuery = new WmsUpdateCountQuery();
countQuery.setSid(sDto.getInventorySid());

8
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsSalesBillMapper.xml

@ -102,7 +102,7 @@
<select id="listPageSalesGoods" resultType="com.yxt.sms.biz.smssalesbill.SmsWmsInventorySalesVo">
SELECT
i.sid inventorySid,
s.price,
e.salesPrice price,
i.goodsSpuSid,
i.goodsSkuSid,
i.goodsSpuName,
@ -111,8 +111,8 @@
i.unit,
i.count as currentCount,
i.goodsID,
s.supplierName as billObjName,
s.supplierSid as billObjSid,
i.supplierName as billObjName,
i.supplierSid as billObjSid,
i.warehouseSid,
i.warehouseName,
wa.sid as areaSid,
@ -124,8 +124,8 @@
i.manufacturerName
FROM
yxt_wms.wms_inventory as i
LEFT JOIN sms_goods AS s ON s.goodsID = i.goodsID
LEFT JOIN yxt_wms.wms_warehouse_area as wa ON wa.warehouseSid = i.warehouseSid
LEFT JOIN yxt_base.base_goods_sku_extend as e ON e.goodsSkuSid = i.goodsSkuSid
<where>${ew.sqlSegment}</where>
</select>
<select id="selectBySid" resultType="java.lang.Integer">

12
yxt-wms-biz/src/main/java/com/yxt/wms/apiadmin/inventroy/WmsInventoryRest.java

@ -14,6 +14,8 @@ import com.yxt.wms.biz.inventory.wmsinventory.WmsInventoryBillUseOrgSidVo;
import com.yxt.wms.biz.inventory.wmsinventory.appInventory.InventorySearchQuery;
import com.yxt.wms.biz.inventory.wmsinventory.appInventory.OldStorageVo;
import com.yxt.wms.biz.inventory.wmsinventory.appInventory.StorageVo;
import com.yxt.wms.biz.inventory.wmsinventory.report.DeadStockQuery;
import com.yxt.wms.biz.inventory.wmsinventory.report.DeadStockVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
@ -39,6 +41,7 @@ public class WmsInventoryRest {
HttpServletResponse response;
@ApiOperation("根据goodsID获取数据")
@GetMapping("/getListByGoodsID")
public ResultBean<List<WmsInventory>> getListByGoodsID(@RequestParam("goodsID") String goodsID) {
@ -258,4 +261,13 @@ public class WmsInventoryRest {
PagerVo<OldStorageVo> pv = wmsInventoryService.appOldStorage(pq);
return rb.success().setData(pv);
}
//----------------------------- 报表 -----------------------------
@ApiOperation("滞销品查询")
@PostMapping("/deadStockList")
public ResultBean<PagerVo<DeadStockVo>> deadStockList(@RequestBody PagerQuery<DeadStockQuery> pq) {
ResultBean<PagerVo<DeadStockVo>> rb = ResultBean.fireFail();
PagerVo<DeadStockVo> pv = wmsInventoryService.deadStockList(pq);
return rb.success().setData(pv);
}
}

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

@ -10,6 +10,7 @@ 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.OldStorageListVo;
import com.yxt.wms.biz.inventory.wmsinventory.appInventory.StorageListVo;
import com.yxt.wms.biz.inventory.wmsinventory.report.DeadStockVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -88,4 +89,6 @@ public interface WmsInventoryMapper extends BaseMapper<WmsInventory> {
List<WmsInventory> selJJByDeptSid(String deptSid);
WmsInventory selbyGoodsId(@Param("goodsID") String goodsID);
IPage<DeadStockVo> deadStockList(IPage<WmsInventory> page,@Param(Constants.WRAPPER) QueryWrapper<WmsInventory> qw);
}

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

@ -647,4 +647,31 @@
${ew.sqlSegment}
</where>
</select>
<select id="deadStockList" resultType="com.yxt.wms.biz.inventory.wmsinventory.report.DeadStockVo">
SELECT * FROM
(SELECT
s.orgSidPath,
so.`name` useOrgName,
s.`name` deptName,
i.goodsSpuName,
i.goodsSkuCode,
i.manufacturerName,
i.supplierName,
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,
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,
FORMAT((SUM(IFNULL(i.cost,0) * IFNULL(i.count,0))/IFNULL(SUM(count),0)),2) avgPrice
FROM
wms_inventory as i
LEFT JOIN anrui_portal.sys_organization as s ON i.useOrgSid = s.sid
LEFT JOIN anrui_portal.sys_organization as so ON i.createOrgSid = so.sid
WHERE i.count > 0
GROUP BY i.goodsSkuSid,i.goodsSkuCode,i.useOrgSid,i.manufacturerSid,i.supplierSid) m
<where>
${ew.sqlSegment}
</where>
</select>
</mapper>

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

@ -17,6 +17,8 @@ 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.report.DeadStockQuery;
import com.yxt.wms.biz.inventory.wmsinventory.report.DeadStockVo;
import com.yxt.wms.biz.inventory.wmsinventorybill.WmsInventoryBill;
import com.yxt.wms.biz.inventory.wmsinventorybill.WmsInventoryBillService;
import com.yxt.wms.biz.inventory.wmsshelfbill.WmsShelfBill;
@ -1000,4 +1002,71 @@ public class WmsInventoryService extends MybatisBaseService<WmsInventoryMapper,
public WmsInventory selbyGoodsId(String goodsID) {
return baseMapper.selbyGoodsId(goodsID);
}
public PagerVo<DeadStockVo> deadStockList(PagerQuery<DeadStockQuery> pq) {
DeadStockQuery query = pq.getParams();
QueryWrapper<WmsInventory> qw = new QueryWrapper<>();
PrivilegeQuery privilegeQuery = new PrivilegeQuery();
privilegeQuery.setOrgPath(query.getOrgPath());
privilegeQuery.setMenuUrl(query.getMenuUrl());
privilegeQuery.setUserSid(query.getUserSid());
ResultBean<String> defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery);
if (StringUtils.isNotBlank(query.getMenuUrl())) {
if (StringUtils.isNotBlank(defaultIdReltBean.getData())) {
//数据权限ID(1集团、2事业部、3分公司、4部门、5个人)
String orgSidPath = query.getOrgPath();
orgSidPath = orgSidPath + "/";
int i1 = orgSidPath.indexOf("/");
int i2 = orgSidPath.indexOf("/", i1 + 1);
int i3 = orgSidPath.indexOf("/", i2 + 1);
int i4 = orgSidPath.indexOf("/", i3 + 1);
String orgLevelKey = defaultIdReltBean.getData();
if ("1".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i1);
qw.like("m.orgSidPath", orgSidPath);
} else if ("2".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i2);
qw.like("m.orgSidPath", orgSidPath);
} else if ("3".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i3);
qw.like("m.orgSidPath", orgSidPath);
} else if ("4".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i4);
qw.like("m.orgSidPath", orgSidPath);
} else if ("5".equals(orgLevelKey)) {
// qw.eq("wsb.createBySid", query.getUserSid());
} else {
PagerVo<DeadStockVo> p = new PagerVo<>();
return p;
}
} else {
PagerVo<DeadStockVo> p = new PagerVo<>();
return p;
}
}
//ToDo:添加查询条件
if (StringUtils.isNotBlank(query.getDeptName())) {
qw.like("m.deptName", query.getDeptName());
}
if (StringUtils.isNotBlank(query.getGoodsSkuCode())) {
qw.like("m.goodsSkuCode", query.getGoodsSkuCode());
}
if (StringUtils.isNotBlank(query.getGoodsSpuName())) {
qw.like("m.goodsSpuName", query.getGoodsSpuName());
}
if (StringUtils.isNotBlank(query.getManufacturerName())) {
qw.like("m.manufacturerName", query.getManufacturerName());
}
if (StringUtils.isNotBlank(query.getUseOrgName())) {
qw.like("m.useOrgName", query.getUseOrgName());
}
if (StringUtils.isNotBlank(query.getSupplierName())) {
qw.like("m.supplierName", query.getSupplierName());
}
IPage<WmsInventory> page = PagerUtil.queryToPage(pq);
IPage<DeadStockVo> pagging = baseMapper.deadStockList(page, qw);
PagerVo<DeadStockVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
}

40
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/report/DeadStockQuery.java

@ -0,0 +1,40 @@
package com.yxt.wms.biz.inventory.wmsinventory.report;
import com.yxt.common.core.query.Query;
import lombok.Data;
/**
* @author Fan
* @description
* @date 2024/11/7 16:45
*/
@Data
public class DeadStockQuery implements Query {
/**
* 部门
*/
private String deptName;
/**
* 图号
*/
private String goodsSkuCode;
/**
* 商品名称
*/
private String goodsSpuName;
/**
* 厂家
*/
private String manufacturerName;
private String menuUrl;
private String orgPath;
/**
* 供应商
*/
private String supplierName;
/**
* 分公司
*/
private String useOrgName;
private String userSid;
}

67
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/report/DeadStockVo.java

@ -0,0 +1,67 @@
package com.yxt.wms.biz.inventory.wmsinventory.report;
import com.yxt.common.core.vo.Vo;
import lombok.Data;
/**
* @author Fan
* @description
* @date 2024/11/7 16:45
*/
@Data
public class DeadStockVo implements Vo {
/**
* 平均成本单价
*/
private String avgPrice;
/**
* 库存数量
*/
private String count;
/**
* 门店
*/
private String deptName;
/**
* 图号
*/
private String goodsSkuCode;
/**
* 商品名称
*/
private String goodsSpuName;
/**
* 最长库龄
*/
private String inventoryAge;
/**
* 厂家
*/
private String manufacturerName;
/**
* 未销售天数
*/
private String noSalesDays;
/**
* 最近一次销售时间
*/
private String salesTime;
/**
* 最近一次入库时间
*/
private String storageTime;
/**
* 供应商
*/
private String supplierName;
/**
* 成本合计
*/
private String totalCost;
/**
* 分公司
*/
private String useOrgName;
}
Loading…
Cancel
Save