12 changed files with 833 additions and 0 deletions
-
46src/main/java/com/gaotao/modules/report/controller/InboundNotificationReportController.java
-
46src/main/java/com/gaotao/modules/report/controller/OutboundNotificationReportController.java
-
47src/main/java/com/gaotao/modules/report/dao/InboundNotificationReportMapper.java
-
47src/main/java/com/gaotao/modules/report/dao/OutboundNotificationReportMapper.java
-
84src/main/java/com/gaotao/modules/report/entity/InboundNotificationReportData.java
-
87src/main/java/com/gaotao/modules/report/entity/OutboundNotificationReportData.java
-
29src/main/java/com/gaotao/modules/report/service/InboundNotificationReportService.java
-
29src/main/java/com/gaotao/modules/report/service/OutboundNotificationReportService.java
-
45src/main/java/com/gaotao/modules/report/service/impl/InboundNotificationReportServiceImpl.java
-
45src/main/java/com/gaotao/modules/report/service/impl/OutboundNotificationReportServiceImpl.java
-
154src/main/resources/mapper/report/InboundNotificationReportMapper.xml
-
174src/main/resources/mapper/report/OutboundNotificationReportMapper.xml
@ -0,0 +1,46 @@ |
|||
package com.gaotao.modules.report.controller; |
|||
|
|||
import com.gaotao.common.utils.PageUtils; |
|||
import com.gaotao.common.utils.R; |
|||
import com.gaotao.modules.report.entity.InboundNotificationReportData; |
|||
import com.gaotao.modules.report.service.InboundNotificationReportService; |
|||
import com.gaotao.modules.sys.controller.AbstractController; |
|||
import com.gaotao.modules.sys.entity.SysUserEntity; |
|||
import org.apache.shiro.SecurityUtils; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 收货入库任务报表控制器 |
|||
* @author system |
|||
* @date 2026/01/09 |
|||
*/ |
|||
@RestController |
|||
@RequestMapping("/report/inboundNotificationReport") |
|||
public class InboundNotificationReportController extends AbstractController { |
|||
|
|||
@Autowired |
|||
private InboundNotificationReportService inboundNotificationReportService; |
|||
|
|||
/** |
|||
* 查询收货入库任务报表数据(分页) |
|||
*/ |
|||
@PostMapping("/list") |
|||
public R list(@RequestBody InboundNotificationReportData params) { |
|||
String userName = ((SysUserEntity) SecurityUtils.getSubject().getPrincipal()).getUsername(); |
|||
PageUtils page = inboundNotificationReportService.searchInboundNotificationReport(params, userName); |
|||
return R.ok().put("page", page); |
|||
} |
|||
|
|||
/** |
|||
* 获取用户可访问的site列表 |
|||
*/ |
|||
@GetMapping("/getSiteList") |
|||
public R getSiteList() { |
|||
String userName = ((SysUserEntity) SecurityUtils.getSubject().getPrincipal()).getUsername(); |
|||
List<String> siteList = inboundNotificationReportService.getAccessSiteList(userName); |
|||
return R.ok().put("siteList", siteList); |
|||
} |
|||
} |
|||
@ -0,0 +1,46 @@ |
|||
package com.gaotao.modules.report.controller; |
|||
|
|||
import com.gaotao.common.utils.PageUtils; |
|||
import com.gaotao.common.utils.R; |
|||
import com.gaotao.modules.report.entity.OutboundNotificationReportData; |
|||
import com.gaotao.modules.report.service.OutboundNotificationReportService; |
|||
import com.gaotao.modules.sys.controller.AbstractController; |
|||
import com.gaotao.modules.sys.entity.SysUserEntity; |
|||
import org.apache.shiro.SecurityUtils; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 拣货出库任务报表控制器 |
|||
* @author system |
|||
* @date 2026/01/09 |
|||
*/ |
|||
@RestController |
|||
@RequestMapping("/report/outboundNotificationReport") |
|||
public class OutboundNotificationReportController extends AbstractController { |
|||
|
|||
@Autowired |
|||
private OutboundNotificationReportService outboundNotificationReportService; |
|||
|
|||
/** |
|||
* 查询拣货出库任务报表数据(分页) |
|||
*/ |
|||
@PostMapping("/list") |
|||
public R list(@RequestBody OutboundNotificationReportData params) { |
|||
String userName = ((SysUserEntity) SecurityUtils.getSubject().getPrincipal()).getUsername(); |
|||
PageUtils page = outboundNotificationReportService.searchOutboundNotificationReport(params, userName); |
|||
return R.ok().put("page", page); |
|||
} |
|||
|
|||
/** |
|||
* 获取用户可访问的site列表 |
|||
*/ |
|||
@GetMapping("/getSiteList") |
|||
public R getSiteList() { |
|||
String userName = ((SysUserEntity) SecurityUtils.getSubject().getPrincipal()).getUsername(); |
|||
List<String> siteList = outboundNotificationReportService.getAccessSiteList(userName); |
|||
return R.ok().put("siteList", siteList); |
|||
} |
|||
} |
|||
@ -0,0 +1,47 @@ |
|||
package com.gaotao.modules.report.dao; |
|||
|
|||
import com.gaotao.modules.report.entity.InboundNotificationReportData; |
|||
import org.apache.ibatis.annotations.Mapper; |
|||
import org.apache.ibatis.annotations.Param; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 收货入库任务报表Mapper |
|||
* @author system |
|||
* @date 2026/01/09 |
|||
*/ |
|||
@Mapper |
|||
public interface InboundNotificationReportMapper { |
|||
|
|||
/** |
|||
* 查询收货入库任务报表数据(分页) |
|||
* @param query 查询条件 |
|||
* @param userName 用户名 |
|||
* @param offset 偏移量 |
|||
* @param limit 每页数量 |
|||
* @return 报表数据列表 |
|||
*/ |
|||
List<InboundNotificationReportData> searchInboundNotificationReport( |
|||
@Param("query") InboundNotificationReportData query, |
|||
@Param("userName") String userName, |
|||
@Param("offset") int offset, |
|||
@Param("limit") int limit); |
|||
|
|||
/** |
|||
* 查询收货入库任务报表数据总数 |
|||
* @param query 查询条件 |
|||
* @param userName 用户名 |
|||
* @return 总数 |
|||
*/ |
|||
int countInboundNotificationReport( |
|||
@Param("query") InboundNotificationReportData query, |
|||
@Param("userName") String userName); |
|||
|
|||
/** |
|||
* 获取用户可访问的site列表 |
|||
* @param userName 用户名 |
|||
* @return site列表 |
|||
*/ |
|||
List<String> getAccessSiteList(@Param("userName") String userName); |
|||
} |
|||
@ -0,0 +1,47 @@ |
|||
package com.gaotao.modules.report.dao; |
|||
|
|||
import com.gaotao.modules.report.entity.OutboundNotificationReportData; |
|||
import org.apache.ibatis.annotations.Mapper; |
|||
import org.apache.ibatis.annotations.Param; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 拣货出库任务报表Mapper |
|||
* @author system |
|||
* @date 2026/01/09 |
|||
*/ |
|||
@Mapper |
|||
public interface OutboundNotificationReportMapper { |
|||
|
|||
/** |
|||
* 查询拣货出库任务报表数据(分页) |
|||
* @param query 查询条件 |
|||
* @param userName 用户名 |
|||
* @param offset 偏移量 |
|||
* @param limit 每页数量 |
|||
* @return 报表数据列表 |
|||
*/ |
|||
List<OutboundNotificationReportData> searchOutboundNotificationReport( |
|||
@Param("query") OutboundNotificationReportData query, |
|||
@Param("userName") String userName, |
|||
@Param("offset") int offset, |
|||
@Param("limit") int limit); |
|||
|
|||
/** |
|||
* 查询拣货出库任务报表数据总数 |
|||
* @param query 查询条件 |
|||
* @param userName 用户名 |
|||
* @return 总数 |
|||
*/ |
|||
int countOutboundNotificationReport( |
|||
@Param("query") OutboundNotificationReportData query, |
|||
@Param("userName") String userName); |
|||
|
|||
/** |
|||
* 获取用户可访问的site列表 |
|||
* @param userName 用户名 |
|||
* @return site列表 |
|||
*/ |
|||
List<String> getAccessSiteList(@Param("userName") String userName); |
|||
} |
|||
@ -0,0 +1,84 @@ |
|||
package com.gaotao.modules.report.entity; |
|||
|
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import lombok.Data; |
|||
import org.springframework.format.annotation.DateTimeFormat; |
|||
|
|||
import java.util.Date; |
|||
|
|||
/** |
|||
* 收货入库任务报表数据实体 |
|||
* @author system |
|||
* @date 2026/01/09 |
|||
*/ |
|||
@Data |
|||
public class InboundNotificationReportData { |
|||
|
|||
// 分页参数 |
|||
private Integer page; |
|||
private Integer limit; |
|||
|
|||
// 查询条件 |
|||
private String site; |
|||
private String orderNo; |
|||
private String orderType; |
|||
private String orderStatus; |
|||
private String completionRate; // 完成率 |
|||
private String supplierId; |
|||
private String supplierName; |
|||
private String partNo; |
|||
private String partDesc; |
|||
private String queryRelatedOrderNo; // 查询条件:关联单号 |
|||
private String queryRelatedOrderLineNo; // 查询条件:关联单行号 |
|||
|
|||
@DateTimeFormat(pattern = "yyyy-MM-dd") |
|||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") |
|||
private Date startDate; |
|||
|
|||
@DateTimeFormat(pattern = "yyyy-MM-dd") |
|||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") |
|||
private Date endDate; |
|||
|
|||
// 主表字段 |
|||
private String buNo; |
|||
private String buDesc; |
|||
private String relatedOrderNo; |
|||
private String relatedOrderLineNo; |
|||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") |
|||
private Date requiredInboundDate; |
|||
private String remarks; |
|||
private String erpOrderNo; |
|||
private String erpOrderLineNo; |
|||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") |
|||
private Date erpOrderDate; |
|||
private String createdBy; |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
|||
private Date createdDate; |
|||
private String updatedBy; |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
|||
private Date updatedDate; |
|||
private String assignedBy; |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
|||
private Date assignedDate; |
|||
private String closedBy; |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
|||
private Date closedDate; |
|||
private String closeFlag; |
|||
private String inWarehouse; |
|||
private String inWarehouseName; |
|||
|
|||
// 明细表字段 |
|||
private String detailPartNo; |
|||
private String detailPartDesc; |
|||
private String unit; |
|||
private String umName; |
|||
private Double requiredQty; |
|||
private Double orderQty; |
|||
private Double actualInQty; |
|||
private String detailInWarehouse; |
|||
private String detailInWarehouseName; |
|||
private String inBatchNo; |
|||
private String detailRelatedOrderNo; |
|||
private String detailRelatedOrderLineNo; |
|||
private String rollNo; |
|||
} |
|||
@ -0,0 +1,87 @@ |
|||
package com.gaotao.modules.report.entity; |
|||
|
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import lombok.Data; |
|||
import org.springframework.format.annotation.DateTimeFormat; |
|||
|
|||
import java.util.Date; |
|||
|
|||
/** |
|||
* 拣货出库任务报表数据实体 |
|||
* @author system |
|||
* @date 2026/01/09 |
|||
*/ |
|||
@Data |
|||
public class OutboundNotificationReportData { |
|||
|
|||
// 分页参数 |
|||
private Integer page; |
|||
private Integer limit; |
|||
|
|||
// 查询条件 |
|||
private String site; |
|||
private String orderNo; |
|||
private String orderType; |
|||
private String orderStatus; |
|||
private String completionRate; // 完成率 |
|||
private String customerId; |
|||
private String customerName; |
|||
private String partNo; |
|||
private String partDesc; |
|||
private String queryRelatedOrderNo; // 查询条件:关联单号 |
|||
private String queryRelatedOrderLineNo; // 查询条件:关联单行号 |
|||
private String queryOutBatchNo; // 查询条件:合约号码 |
|||
|
|||
@DateTimeFormat(pattern = "yyyy-MM-dd") |
|||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") |
|||
private Date startDate; |
|||
|
|||
@DateTimeFormat(pattern = "yyyy-MM-dd") |
|||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") |
|||
private Date endDate; |
|||
|
|||
// 主表字段 |
|||
private String buNo; |
|||
private String buDesc; |
|||
private String customerAbb; |
|||
private String relatedOrderNo; |
|||
private String relatedOrderLineNo; |
|||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") |
|||
private Date requiredOutboundDate; |
|||
private String remarks; |
|||
private String erpOrderNo; |
|||
private String erpOrderLineNo; |
|||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") |
|||
private Date erpOrderDate; |
|||
private String createdBy; |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
|||
private Date createdDate; |
|||
private String updatedBy; |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
|||
private Date updatedDate; |
|||
private String assignedBy; |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
|||
private Date assignedDate; |
|||
private String closedBy; |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
|||
private Date closedDate; |
|||
private String closeFlag; |
|||
private String outWarehouse; |
|||
private String outWarehouseName; |
|||
private String customerOrderNo; |
|||
|
|||
// 明细表字段 |
|||
private String detailPartNo; |
|||
private String detailPartDesc; |
|||
private String unit; |
|||
private String umName; |
|||
private Double requiredQty; |
|||
private Double orderQty; |
|||
private Double actualOutQty; |
|||
private String detailOutWarehouse; |
|||
private String detailOutWarehouseName; |
|||
private String outBatchNo; |
|||
private String detailRelatedOrderNo; |
|||
private String detailRelatedOrderLineNo; |
|||
private String inspectionFlag; |
|||
} |
|||
@ -0,0 +1,29 @@ |
|||
package com.gaotao.modules.report.service; |
|||
|
|||
import com.gaotao.common.utils.PageUtils; |
|||
import com.gaotao.modules.report.entity.InboundNotificationReportData; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 收货入库任务报表服务接口 |
|||
* @author system |
|||
* @date 2026/01/09 |
|||
*/ |
|||
public interface InboundNotificationReportService { |
|||
|
|||
/** |
|||
* 查询收货入库任务报表数据(分页) |
|||
* @param query 查询条件 |
|||
* @param userName 用户名 |
|||
* @return 分页数据 |
|||
*/ |
|||
PageUtils searchInboundNotificationReport(InboundNotificationReportData query, String userName); |
|||
|
|||
/** |
|||
* 获取用户可访问的site列表 |
|||
* @param userName 用户名 |
|||
* @return site列表 |
|||
*/ |
|||
List<String> getAccessSiteList(String userName); |
|||
} |
|||
@ -0,0 +1,29 @@ |
|||
package com.gaotao.modules.report.service; |
|||
|
|||
import com.gaotao.common.utils.PageUtils; |
|||
import com.gaotao.modules.report.entity.OutboundNotificationReportData; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 拣货出库任务报表服务接口 |
|||
* @author system |
|||
* @date 2026/01/09 |
|||
*/ |
|||
public interface OutboundNotificationReportService { |
|||
|
|||
/** |
|||
* 查询拣货出库任务报表数据(分页) |
|||
* @param query 查询条件 |
|||
* @param userName 用户名 |
|||
* @return 分页数据 |
|||
*/ |
|||
PageUtils searchOutboundNotificationReport(OutboundNotificationReportData query, String userName); |
|||
|
|||
/** |
|||
* 获取用户可访问的site列表 |
|||
* @param userName 用户名 |
|||
* @return site列表 |
|||
*/ |
|||
List<String> getAccessSiteList(String userName); |
|||
} |
|||
@ -0,0 +1,45 @@ |
|||
package com.gaotao.modules.report.service.impl; |
|||
|
|||
import com.gaotao.common.utils.PageUtils; |
|||
import com.gaotao.modules.report.dao.InboundNotificationReportMapper; |
|||
import com.gaotao.modules.report.entity.InboundNotificationReportData; |
|||
import com.gaotao.modules.report.service.InboundNotificationReportService; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 收货入库任务报表服务实现 |
|||
* @author system |
|||
* @date 2026/01/09 |
|||
*/ |
|||
@Service |
|||
public class InboundNotificationReportServiceImpl implements InboundNotificationReportService { |
|||
|
|||
@Autowired |
|||
private InboundNotificationReportMapper inboundNotificationReportMapper; |
|||
|
|||
@Override |
|||
public PageUtils searchInboundNotificationReport(InboundNotificationReportData query, String userName) { |
|||
// 默认分页参数 |
|||
int page = query.getPage() != null ? query.getPage() : 1; |
|||
int limit = query.getLimit() != null ? query.getLimit() : 50; |
|||
int offset = (page - 1) * limit; |
|||
|
|||
// 查询数据 |
|||
List<InboundNotificationReportData> list = inboundNotificationReportMapper.searchInboundNotificationReport( |
|||
query, userName, offset, limit); |
|||
|
|||
// 查询总数 |
|||
int total = inboundNotificationReportMapper.countInboundNotificationReport(query, userName); |
|||
|
|||
// 构建分页结果 |
|||
return new PageUtils(list, total, limit, page); |
|||
} |
|||
|
|||
@Override |
|||
public List<String> getAccessSiteList(String userName) { |
|||
return inboundNotificationReportMapper.getAccessSiteList(userName); |
|||
} |
|||
} |
|||
@ -0,0 +1,45 @@ |
|||
package com.gaotao.modules.report.service.impl; |
|||
|
|||
import com.gaotao.common.utils.PageUtils; |
|||
import com.gaotao.modules.report.dao.OutboundNotificationReportMapper; |
|||
import com.gaotao.modules.report.entity.OutboundNotificationReportData; |
|||
import com.gaotao.modules.report.service.OutboundNotificationReportService; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 拣货出库任务报表服务实现 |
|||
* @author system |
|||
* @date 2026/01/09 |
|||
*/ |
|||
@Service |
|||
public class OutboundNotificationReportServiceImpl implements OutboundNotificationReportService { |
|||
|
|||
@Autowired |
|||
private OutboundNotificationReportMapper outboundNotificationReportMapper; |
|||
|
|||
@Override |
|||
public PageUtils searchOutboundNotificationReport(OutboundNotificationReportData query, String userName) { |
|||
// 默认分页参数 |
|||
int page = query.getPage() != null ? query.getPage() : 1; |
|||
int limit = query.getLimit() != null ? query.getLimit() : 50; |
|||
int offset = (page - 1) * limit; |
|||
|
|||
// 查询数据 |
|||
List<OutboundNotificationReportData> list = outboundNotificationReportMapper.searchOutboundNotificationReport( |
|||
query, userName, offset, limit); |
|||
|
|||
// 查询总数 |
|||
int total = outboundNotificationReportMapper.countOutboundNotificationReport(query, userName); |
|||
|
|||
// 构建分页结果 |
|||
return new PageUtils(list, total, limit, page); |
|||
} |
|||
|
|||
@Override |
|||
public List<String> getAccessSiteList(String userName) { |
|||
return outboundNotificationReportMapper.getAccessSiteList(userName); |
|||
} |
|||
} |
|||
@ -0,0 +1,154 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
|||
|
|||
<mapper namespace="com.gaotao.modules.report.dao.InboundNotificationReportMapper"> |
|||
|
|||
<!-- 查询收货入库任务报表数据(分页) --> |
|||
<select id="searchInboundNotificationReport" resultType="com.gaotao.modules.report.entity.InboundNotificationReportData"> |
|||
SELECT |
|||
h.site, |
|||
h.bu_no AS buNo, |
|||
h.order_no AS orderNo, |
|||
h.order_type AS orderType, |
|||
h.order_status AS orderStatus, |
|||
CASE |
|||
WHEN ISNULL(d.required_qty, 0) = 0 THEN '0%' |
|||
ELSE CONCAT(CAST(ROUND(ISNULL(d.actual_in_qty, 0) * 100.0 / d.required_qty, 1) AS VARCHAR), '%') |
|||
END AS completionRate, |
|||
h.supplier_id AS supplierId, |
|||
s.SupplierName AS supplierName, |
|||
h.related_order_no AS relatedOrderNo, |
|||
h.related_order_line_no AS relatedOrderLineNo, |
|||
h.required_inbound_date AS requiredInboundDate, |
|||
h.remarks, |
|||
h.erp_order_no AS erpOrderNo, |
|||
h.erp_order_line_no AS erpOrderLineNo, |
|||
h.erp_order_date AS erpOrderDate, |
|||
h.created_by AS createdBy, |
|||
h.created_date AS createdDate, |
|||
h.updated_by AS updatedBy, |
|||
h.updated_date AS updatedDate, |
|||
h.assigned_by AS assignedBy, |
|||
h.assigned_date AS assignedDate, |
|||
h.closed_by AS closedBy, |
|||
h.closed_date AS closedDate, |
|||
h.close_flag AS closeFlag, |
|||
h.in_warehouse AS inWarehouse, |
|||
wh.WareHouseName AS inWarehouseName, |
|||
d.part_no AS detailPartNo, |
|||
d.part_desc AS detailPartDesc, |
|||
d.unit, |
|||
um.umName, |
|||
d.required_qty AS requiredQty, |
|||
d.order_qty AS orderQty, |
|||
d.actual_in_qty AS actualInQty, |
|||
d.in_warehouse AS detailInWarehouse, |
|||
dwh.WareHouseName AS detailInWarehouseName, |
|||
d.in_batch_no AS inBatchNo, |
|||
d.related_order_no AS detailRelatedOrderNo, |
|||
d.related_order_line_no AS detailRelatedOrderLineNo, |
|||
d.roll_no AS rollNo |
|||
FROM inbound_notification_head h WITH(NOLOCK) |
|||
LEFT JOIN Supplier s WITH(NOLOCK) ON h.site = s.site AND h.supplier_id = s.SupplierID |
|||
LEFT JOIN WareHouse wh WITH(NOLOCK) ON h.site = wh.site AND h.bu_no = wh.bu_no AND h.in_warehouse = wh.WareHouseID |
|||
LEFT JOIN inbound_notification_detail d WITH(NOLOCK) ON h.site = d.site AND h.bu_no = d.bu_no AND h.order_no = d.order_no |
|||
LEFT JOIN WareHouse dwh WITH(NOLOCK) ON d.site = dwh.site AND d.bu_no = dwh.bu_no AND d.in_warehouse = dwh.WareHouseID |
|||
LEFT JOIN um WITH(NOLOCK) ON d.site = um.site AND d.unit = um.UMID |
|||
<where> |
|||
h.site IN (SELECT site FROM AccessSite WHERE UPPER(userID) = UPPER(#{userName})) |
|||
AND h.bu_no IN (SELECT bu_no FROM AccessBu WHERE UPPER(username) = UPPER(#{userName})) |
|||
<if test="query.site != null and query.site != ''"> |
|||
AND h.site = #{query.site} |
|||
</if> |
|||
<if test="query.orderNo != null and query.orderNo != ''"> |
|||
AND h.order_no LIKE '%' + #{query.orderNo} + '%' |
|||
</if> |
|||
<if test="query.orderType != null and query.orderType != ''"> |
|||
AND h.order_type = #{query.orderType} |
|||
</if> |
|||
<if test="query.orderStatus != null and query.orderStatus != ''"> |
|||
AND h.order_status = #{query.orderStatus} |
|||
</if> |
|||
<if test="query.supplierId != null and query.supplierId != ''"> |
|||
AND h.supplier_id LIKE '%' + #{query.supplierId} + '%' |
|||
</if> |
|||
<if test="query.supplierName != null and query.supplierName != ''"> |
|||
AND s.SupplierName LIKE '%' + #{query.supplierName} + '%' |
|||
</if> |
|||
<if test="query.partNo != null and query.partNo != ''"> |
|||
AND d.part_no LIKE '%' + #{query.partNo} + '%' |
|||
</if> |
|||
<if test="query.partDesc != null and query.partDesc != ''"> |
|||
AND d.part_desc LIKE '%' + #{query.partDesc} + '%' |
|||
</if> |
|||
<if test="query.startDate != null"> |
|||
AND h.required_inbound_date >= #{query.startDate} |
|||
</if> |
|||
<if test="query.endDate != null"> |
|||
AND h.required_inbound_date <= #{query.endDate} |
|||
</if> |
|||
<if test="query.queryRelatedOrderNo != null and query.queryRelatedOrderNo != ''"> |
|||
AND d.related_order_no LIKE '%' + #{query.queryRelatedOrderNo} + '%' |
|||
</if> |
|||
<if test="query.queryRelatedOrderLineNo != null and query.queryRelatedOrderLineNo != ''"> |
|||
AND d.related_order_line_no LIKE '%' + #{query.queryRelatedOrderLineNo} + '%' |
|||
</if> |
|||
</where> |
|||
ORDER BY h.created_date DESC, h.order_no, d.part_no |
|||
OFFSET #{offset} ROWS FETCH NEXT #{limit} ROWS ONLY |
|||
</select> |
|||
|
|||
<!-- 查询收货入库任务报表数据总数 --> |
|||
<select id="countInboundNotificationReport" resultType="int"> |
|||
SELECT COUNT(1) |
|||
FROM inbound_notification_head h WITH(NOLOCK) |
|||
LEFT JOIN Supplier s WITH(NOLOCK) ON h.site = s.site AND h.supplier_id = s.SupplierID |
|||
LEFT JOIN inbound_notification_detail d WITH(NOLOCK) ON h.site = d.site AND h.bu_no = d.bu_no AND h.order_no = d.order_no |
|||
<where> |
|||
h.site IN (SELECT site FROM AccessSite WHERE UPPER(userID) = UPPER(#{userName})) |
|||
AND h.bu_no IN (SELECT bu_no FROM AccessBu WHERE UPPER(username) = UPPER(#{userName})) |
|||
<if test="query.site != null and query.site != ''"> |
|||
AND h.site = #{query.site} |
|||
</if> |
|||
<if test="query.orderNo != null and query.orderNo != ''"> |
|||
AND h.order_no LIKE '%' + #{query.orderNo} + '%' |
|||
</if> |
|||
<if test="query.orderType != null and query.orderType != ''"> |
|||
AND h.order_type = #{query.orderType} |
|||
</if> |
|||
<if test="query.orderStatus != null and query.orderStatus != ''"> |
|||
AND h.order_status = #{query.orderStatus} |
|||
</if> |
|||
<if test="query.supplierId != null and query.supplierId != ''"> |
|||
AND h.supplier_id LIKE '%' + #{query.supplierId} + '%' |
|||
</if> |
|||
<if test="query.supplierName != null and query.supplierName != ''"> |
|||
AND s.SupplierName LIKE '%' + #{query.supplierName} + '%' |
|||
</if> |
|||
<if test="query.partNo != null and query.partNo != ''"> |
|||
AND d.part_no LIKE '%' + #{query.partNo} + '%' |
|||
</if> |
|||
<if test="query.partDesc != null and query.partDesc != ''"> |
|||
AND d.part_desc LIKE '%' + #{query.partDesc} + '%' |
|||
</if> |
|||
<if test="query.startDate != null"> |
|||
AND h.required_inbound_date >= #{query.startDate} |
|||
</if> |
|||
<if test="query.endDate != null"> |
|||
AND h.required_inbound_date <= #{query.endDate} |
|||
</if> |
|||
<if test="query.queryRelatedOrderNo != null and query.queryRelatedOrderNo != ''"> |
|||
AND d.related_order_no LIKE '%' + #{query.queryRelatedOrderNo} + '%' |
|||
</if> |
|||
<if test="query.queryRelatedOrderLineNo != null and query.queryRelatedOrderLineNo != ''"> |
|||
AND d.related_order_line_no LIKE '%' + #{query.queryRelatedOrderLineNo} + '%' |
|||
</if> |
|||
</where> |
|||
</select> |
|||
|
|||
<!-- 获取用户可访问的site列表 --> |
|||
<select id="getAccessSiteList" resultType="java.lang.String"> |
|||
SELECT site FROM AccessSite WHERE UPPER(userID) = UPPER(#{userName}) ORDER BY site |
|||
</select> |
|||
|
|||
</mapper> |
|||
@ -0,0 +1,174 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
|||
|
|||
<mapper namespace="com.gaotao.modules.report.dao.OutboundNotificationReportMapper"> |
|||
|
|||
<!-- 查询拣货出库任务报表数据(分页) --> |
|||
<select id="searchOutboundNotificationReport" resultType="com.gaotao.modules.report.entity.OutboundNotificationReportData"> |
|||
SELECT |
|||
h.site, |
|||
h.bu_no AS buNo, |
|||
h.order_no AS orderNo, |
|||
h.order_type AS orderType, |
|||
h.order_status AS orderStatus, |
|||
CASE |
|||
WHEN ISNULL(d.required_qty, 0) = 0 THEN '0%' |
|||
ELSE CONCAT(CAST(ROUND(ISNULL(d.actual_out_qty, 0) * 100.0 / d.required_qty, 1) AS VARCHAR), '%') |
|||
END AS completionRate, |
|||
COALESCE(NULLIF(LTRIM(RTRIM(h.customer_id)), ''), sup.SupplierID) AS customerId, |
|||
COALESCE( |
|||
NULLIF(LTRIM(RTRIM(c.customerName)), ''), |
|||
NULLIF(LTRIM(RTRIM(sup.SupplierName)), ''), |
|||
'' |
|||
) AS customerName, |
|||
COALESCE(c.CustomerAbb, '') AS customerAbb, |
|||
h.related_order_no AS relatedOrderNo, |
|||
h.related_order_line_no AS relatedOrderLineNo, |
|||
h.required_outbound_date AS requiredOutboundDate, |
|||
h.remarks, |
|||
h.erp_order_no AS erpOrderNo, |
|||
h.erp_order_line_no AS erpOrderLineNo, |
|||
h.erp_order_date AS erpOrderDate, |
|||
h.created_by AS createdBy, |
|||
h.created_date AS createdDate, |
|||
h.updated_by AS updatedBy, |
|||
h.updated_date AS updatedDate, |
|||
h.assigned_by AS assignedBy, |
|||
h.assigned_date AS assignedDate, |
|||
h.closed_by AS closedBy, |
|||
h.closed_date AS closedDate, |
|||
h.close_flag AS closeFlag, |
|||
h.out_warehouse AS outWarehouse, |
|||
wh.WareHouseName AS outWarehouseName, |
|||
h.customer_order_no AS customerOrderNo, |
|||
d.part_no AS detailPartNo, |
|||
d.part_desc AS detailPartDesc, |
|||
d.unit, |
|||
um.umName, |
|||
d.required_qty AS requiredQty, |
|||
d.order_qty AS orderQty, |
|||
d.actual_out_qty AS actualOutQty, |
|||
d.out_warehouse AS detailOutWarehouse, |
|||
dwh.WareHouseName AS detailOutWarehouseName, |
|||
d.out_batch_no AS outBatchNo, |
|||
d.related_order_no AS detailRelatedOrderNo, |
|||
d.related_order_line_no AS detailRelatedOrderLineNo, |
|||
d.inspection_flag AS inspectionFlag |
|||
FROM outbound_notification_head h WITH(NOLOCK) |
|||
LEFT JOIN Customer c WITH(NOLOCK) ON h.site = c.site AND LTRIM(RTRIM(h.customer_id)) = c.CustomerID |
|||
LEFT JOIN Supplier sup WITH(NOLOCK) ON h.site = sup.site AND (NULLIF(LTRIM(RTRIM(h.customer_id)), '') IS NULL OR c.CustomerID IS NULL) AND LTRIM(RTRIM(h.customer_id)) = sup.SupplierID |
|||
LEFT JOIN WareHouse wh WITH(NOLOCK) ON h.site = wh.site AND h.bu_no = wh.bu_no AND h.out_warehouse = wh.WareHouseID |
|||
LEFT JOIN outbound_notification_detail d WITH(NOLOCK) ON h.site = d.site AND h.bu_no = d.bu_no AND h.order_no = d.order_no |
|||
LEFT JOIN WareHouse dwh WITH(NOLOCK) ON d.site = dwh.site AND d.bu_no = dwh.bu_no AND d.out_warehouse = dwh.WareHouseID |
|||
LEFT JOIN um WITH(NOLOCK) ON d.site = um.site AND d.unit = um.UMID |
|||
<where> |
|||
h.site IN (SELECT site FROM AccessSite WHERE UPPER(userID) = UPPER(#{userName})) |
|||
AND h.bu_no IN (SELECT bu_no FROM AccessBu WHERE UPPER(username) = UPPER(#{userName})) |
|||
<if test="query.site != null and query.site != ''"> |
|||
AND h.site = #{query.site} |
|||
</if> |
|||
<if test="query.orderNo != null and query.orderNo != ''"> |
|||
AND h.order_no LIKE '%' + #{query.orderNo} + '%' |
|||
</if> |
|||
<if test="query.orderType != null and query.orderType != ''"> |
|||
AND h.order_type = #{query.orderType} |
|||
</if> |
|||
<if test="query.orderStatus != null and query.orderStatus != ''"> |
|||
AND h.order_status = #{query.orderStatus} |
|||
</if> |
|||
<if test="query.customerId != null and query.customerId != ''"> |
|||
AND h.customer_id LIKE '%' + #{query.customerId} + '%' |
|||
</if> |
|||
<if test="query.customerName != null and query.customerName != ''"> |
|||
AND ( |
|||
c.customerName LIKE '%' + #{query.customerName} + '%' |
|||
OR sup.SupplierName LIKE '%' + #{query.customerName} + '%' |
|||
) |
|||
</if> |
|||
<if test="query.partNo != null and query.partNo != ''"> |
|||
AND d.part_no LIKE '%' + #{query.partNo} + '%' |
|||
</if> |
|||
<if test="query.partDesc != null and query.partDesc != ''"> |
|||
AND d.part_desc LIKE '%' + #{query.partDesc} + '%' |
|||
</if> |
|||
<if test="query.startDate != null"> |
|||
AND h.required_outbound_date >= #{query.startDate} |
|||
</if> |
|||
<if test="query.endDate != null"> |
|||
AND h.required_outbound_date <= #{query.endDate} |
|||
</if> |
|||
<if test="query.queryRelatedOrderNo != null and query.queryRelatedOrderNo != ''"> |
|||
AND d.related_order_no LIKE '%' + #{query.queryRelatedOrderNo} + '%' |
|||
</if> |
|||
<if test="query.queryRelatedOrderLineNo != null and query.queryRelatedOrderLineNo != ''"> |
|||
AND d.related_order_line_no LIKE '%' + #{query.queryRelatedOrderLineNo} + '%' |
|||
</if> |
|||
<if test="query.queryOutBatchNo != null and query.queryOutBatchNo != ''"> |
|||
AND d.out_batch_no LIKE '%' + #{query.queryOutBatchNo} + '%' |
|||
</if> |
|||
</where> |
|||
ORDER BY h.created_date DESC, h.order_no, d.part_no |
|||
OFFSET #{offset} ROWS FETCH NEXT #{limit} ROWS ONLY |
|||
</select> |
|||
|
|||
<!-- 查询拣货出库任务报表数据总数 --> |
|||
<select id="countOutboundNotificationReport" resultType="int"> |
|||
SELECT COUNT(1) |
|||
FROM outbound_notification_head h WITH(NOLOCK) |
|||
LEFT JOIN Customer c WITH(NOLOCK) ON h.site = c.site AND LTRIM(RTRIM(h.customer_id)) = c.CustomerID |
|||
LEFT JOIN Supplier sup WITH(NOLOCK) ON h.site = sup.site AND (NULLIF(LTRIM(RTRIM(h.customer_id)), '') IS NULL OR c.CustomerID IS NULL) AND LTRIM(RTRIM(h.customer_id)) = sup.SupplierID |
|||
LEFT JOIN outbound_notification_detail d WITH(NOLOCK) ON h.site = d.site AND h.bu_no = d.bu_no AND h.order_no = d.order_no |
|||
<where> |
|||
h.site IN (SELECT site FROM AccessSite WHERE UPPER(userID) = UPPER(#{userName})) |
|||
AND h.bu_no IN (SELECT bu_no FROM AccessBu WHERE UPPER(username) = UPPER(#{userName})) |
|||
<if test="query.site != null and query.site != ''"> |
|||
AND h.site = #{query.site} |
|||
</if> |
|||
<if test="query.orderNo != null and query.orderNo != ''"> |
|||
AND h.order_no LIKE '%' + #{query.orderNo} + '%' |
|||
</if> |
|||
<if test="query.orderType != null and query.orderType != ''"> |
|||
AND h.order_type = #{query.orderType} |
|||
</if> |
|||
<if test="query.orderStatus != null and query.orderStatus != ''"> |
|||
AND h.order_status = #{query.orderStatus} |
|||
</if> |
|||
<if test="query.customerId != null and query.customerId != ''"> |
|||
AND h.customer_id LIKE '%' + #{query.customerId} + '%' |
|||
</if> |
|||
<if test="query.customerName != null and query.customerName != ''"> |
|||
AND ( |
|||
c.customerName LIKE '%' + #{query.customerName} + '%' |
|||
OR sup.SupplierName LIKE '%' + #{query.customerName} + '%' |
|||
) |
|||
</if> |
|||
<if test="query.partNo != null and query.partNo != ''"> |
|||
AND d.part_no LIKE '%' + #{query.partNo} + '%' |
|||
</if> |
|||
<if test="query.partDesc != null and query.partDesc != ''"> |
|||
AND d.part_desc LIKE '%' + #{query.partDesc} + '%' |
|||
</if> |
|||
<if test="query.startDate != null"> |
|||
AND h.required_outbound_date >= #{query.startDate} |
|||
</if> |
|||
<if test="query.endDate != null"> |
|||
AND h.required_outbound_date <= #{query.endDate} |
|||
</if> |
|||
<if test="query.queryRelatedOrderNo != null and query.queryRelatedOrderNo != ''"> |
|||
AND d.related_order_no LIKE '%' + #{query.queryRelatedOrderNo} + '%' |
|||
</if> |
|||
<if test="query.queryRelatedOrderLineNo != null and query.queryRelatedOrderLineNo != ''"> |
|||
AND d.related_order_line_no LIKE '%' + #{query.queryRelatedOrderLineNo} + '%' |
|||
</if> |
|||
<if test="query.queryOutBatchNo != null and query.queryOutBatchNo != ''"> |
|||
AND d.out_batch_no LIKE '%' + #{query.queryOutBatchNo} + '%' |
|||
</if> |
|||
</where> |
|||
</select> |
|||
|
|||
<!-- 获取用户可访问的site列表 --> |
|||
<select id="getAccessSiteList" resultType="java.lang.String"> |
|||
SELECT site FROM AccessSite WHERE UPPER(userID) = UPPER(#{userName}) ORDER BY site |
|||
</select> |
|||
|
|||
</mapper> |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue