Browse Source

2025-12-16

生产领料任务通知功能重构
master
fengyuan_yang 3 months ago
parent
commit
307c528e59
  1. 9
      src/main/java/com/gaotao/modules/orderIssure/controller/IssureNotifyController.java
  2. 214
      src/main/java/com/gaotao/modules/orderIssure/entity/IssueNotifyReportData.java
  3. 8
      src/main/java/com/gaotao/modules/orderIssure/mapper/IssureNotifyMapper.java
  4. 7
      src/main/java/com/gaotao/modules/orderIssure/service/IssureNotifyService.java
  5. 7
      src/main/java/com/gaotao/modules/orderIssure/service/impl/IssureNotifyServiceImpl.java
  6. 62
      src/main/resources/mapper/orderIssure/IssureNotifyMapper.xml

9
src/main/java/com/gaotao/modules/orderIssure/controller/IssureNotifyController.java

@ -385,4 +385,13 @@ public class IssureNotifyController {
return R.ok().put("rows", list);
}
/**
* 生产领料任务通知报表查询
*/
@PostMapping("/searchIssueNotifyReport")
public R searchIssueNotifyReport(@RequestBody IssueNotifyReportData data) {
PageUtils page = issureNotifyService.searchIssueNotifyReport(data);
return R.ok().put("page", page);
}
}

214
src/main/java/com/gaotao/modules/orderIssure/entity/IssueNotifyReportData.java

@ -0,0 +1,214 @@
package com.gaotao.modules.orderIssure.entity;
import java.math.BigDecimal;
/**
* 生产领料任务通知报表数据实体
*/
public class IssueNotifyReportData {
// 分页参数
private Integer page;
private Integer limit;
// 查询条件
private String site;
private String userName;
private String notifyNo;
private String startDate;
private String endDate;
private String status;
private String soOrderNo;
private String bomItemNo;
private String componentPartNo;
private String partDescription;
private String spec;
private String workCenterNo;
private java.util.List<String> workCenterNoList;
// 列表数据
private String notifyDate;
private String umName;
private BigDecimal componentScrap;
private BigDecimal firstInspectionQty;
private BigDecimal standardDosage;
private BigDecimal qtyToIssue;
private BigDecimal actualOutQty;
public Integer getPage() {
return page;
}
public void setPage(Integer page) {
this.page = page;
}
public Integer getLimit() {
return limit;
}
public void setLimit(Integer limit) {
this.limit = limit;
}
public String getSite() {
return site;
}
public void setSite(String site) {
this.site = site;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getNotifyNo() {
return notifyNo;
}
public void setNotifyNo(String notifyNo) {
this.notifyNo = notifyNo;
}
public String getStartDate() {
return startDate;
}
public void setStartDate(String startDate) {
this.startDate = startDate;
}
public String getEndDate() {
return endDate;
}
public void setEndDate(String endDate) {
this.endDate = endDate;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getSoOrderNo() {
return soOrderNo;
}
public void setSoOrderNo(String soOrderNo) {
this.soOrderNo = soOrderNo;
}
public String getBomItemNo() {
return bomItemNo;
}
public void setBomItemNo(String bomItemNo) {
this.bomItemNo = bomItemNo;
}
public String getComponentPartNo() {
return componentPartNo;
}
public void setComponentPartNo(String componentPartNo) {
this.componentPartNo = componentPartNo;
}
public String getPartDescription() {
return partDescription;
}
public void setPartDescription(String partDescription) {
this.partDescription = partDescription;
}
public String getSpec() {
return spec;
}
public void setSpec(String spec) {
this.spec = spec;
}
public String getWorkCenterNo() {
return workCenterNo;
}
public void setWorkCenterNo(String workCenterNo) {
this.workCenterNo = workCenterNo;
}
public java.util.List<String> getWorkCenterNoList() {
return workCenterNoList;
}
public void setWorkCenterNoList(java.util.List<String> workCenterNoList) {
this.workCenterNoList = workCenterNoList;
}
public String getNotifyDate() {
return notifyDate;
}
public void setNotifyDate(String notifyDate) {
this.notifyDate = notifyDate;
}
public String getUmName() {
return umName;
}
public void setUmName(String umName) {
this.umName = umName;
}
public BigDecimal getComponentScrap() {
return componentScrap;
}
public void setComponentScrap(BigDecimal componentScrap) {
this.componentScrap = componentScrap;
}
public BigDecimal getFirstInspectionQty() {
return firstInspectionQty;
}
public void setFirstInspectionQty(BigDecimal firstInspectionQty) {
this.firstInspectionQty = firstInspectionQty;
}
public BigDecimal getStandardDosage() {
return standardDosage;
}
public void setStandardDosage(BigDecimal standardDosage) {
this.standardDosage = standardDosage;
}
public BigDecimal getQtyToIssue() {
return qtyToIssue;
}
public void setQtyToIssue(BigDecimal qtyToIssue) {
this.qtyToIssue = qtyToIssue;
}
public BigDecimal getActualOutQty() {
return actualOutQty;
}
public void setActualOutQty(BigDecimal actualOutQty) {
this.actualOutQty = actualOutQty;
}
}

8
src/main/java/com/gaotao/modules/orderIssure/mapper/IssureNotifyMapper.java

@ -187,4 +187,12 @@ public interface IssureNotifyMapper extends BaseMapper<SOIssueNotifyHeader> {
void deleteNotifyMaterial2(SOIssueNotifyOrderMaterialListData data);
List<WorkCenterData> getWorkCenterList(BuData data);
/**
* 生产领料任务通知报表查询
* @param page 分页对象
* @param data 查询条件
* @return 分页数据
*/
IPage<IssueNotifyReportData> searchIssueNotifyReport(Page<IssueNotifyReportData> page, @Param("query") IssueNotifyReportData data);
}

7
src/main/java/com/gaotao/modules/orderIssure/service/IssureNotifyService.java

@ -160,4 +160,11 @@ public interface IssureNotifyService {
List<BomAlternativePartsData> getBomAlternativeParts(BomAlternativePartsData data);
List<WorkCenterData> getWorkCenterList(BuData data);
/**
* 生产领料任务通知报表查询
* @param data 查询条件
* @return 分页数据
*/
PageUtils searchIssueNotifyReport(IssueNotifyReportData data);
}

7
src/main/java/com/gaotao/modules/orderIssure/service/impl/IssureNotifyServiceImpl.java

@ -543,4 +543,11 @@ public class IssureNotifyServiceImpl implements IssureNotifyService {
return issureNotifyMapper.getBomAlternativeParts(data);
}
@Override
public PageUtils searchIssueNotifyReport(IssueNotifyReportData data) {
IPage<IssueNotifyReportData> resultList = issureNotifyMapper.searchIssueNotifyReport(
new Page<IssueNotifyReportData>(data.getPage(), data.getLimit()), data);
return new PageUtils(resultList);
}
}

62
src/main/resources/mapper/orderIssure/IssureNotifyMapper.xml

@ -652,4 +652,66 @@
from WorkCenter
where site = #{site} and bu_no = #{buNo}
</select>
<!-- 生产领料任务通知报表查询 -->
<select id="searchIssueNotifyReport" parameterType="com.gaotao.modules.orderIssure.entity.IssueNotifyReportData" resultType="com.gaotao.modules.orderIssure.entity.IssueNotifyReportData">
SELECT
A.NotifyNo AS notifyNo,
CONVERT(VARCHAR(10), A.NotifyDate, 23) AS notifyDate,
A.Status AS status,
B.SOOrderNo AS soOrderNo,
C.BOMItemNo AS bomItemNo,
C.ComponentPartNo AS componentPartNo,
P.PartDescription AS partDescription,
P.Spec AS spec,
U.UMName AS umName,
C.component_scrap AS componentScrap,
C.first_inspection_qty AS firstInspectionQty,
C.standard_dosage AS standardDosage,
C.QtyToIssue AS qtyToIssue,
ISNULL(C.actual_out_qty, 0) AS actualOutQty,
A.work_center_no AS workCenterNo
FROM SOIssueNotifyHeader A
INNER JOIN SOIssueNotifyOrderList B ON A.Site = B.Site AND A.NotifyNo = B.NotifyNo
INNER JOIN SOIssueNotifyOrderMaterialList C ON B.Site = C.Site AND B.NotifyNo = C.NotifyNo AND B.ItemNo = C.ItemNo
INNER JOIN Part P ON C.Site = P.Site AND C.ComponentPartNo = P.PartNo
INNER JOIN UM U ON U.Site = P.Site AND U.UMID = P.UMID
<where>
A.site IN (SELECT site FROM AccessSite WHERE userID = #{query.userName})
<if test="query.notifyNo != null and query.notifyNo != ''">
AND A.NotifyNo LIKE '%' + #{query.notifyNo} + '%'
</if>
<if test="query.startDate != null and query.startDate != ''">
AND A.NotifyDate >= #{query.startDate}
</if>
<if test="query.endDate != null and query.endDate != ''">
AND A.NotifyDate &lt;= #{query.endDate} + ' 23:59:59'
</if>
<if test="query.status != null and query.status != ''">
AND A.Status = #{query.status}
</if>
<if test="query.soOrderNo != null and query.soOrderNo != ''">
AND B.SOOrderNo LIKE '%' + #{query.soOrderNo} + '%'
</if>
<if test="query.bomItemNo != null and query.bomItemNo != ''">
AND C.BOMItemNo = #{query.bomItemNo}
</if>
<if test="query.componentPartNo != null and query.componentPartNo != ''">
AND C.ComponentPartNo LIKE '%' + #{query.componentPartNo} + '%'
</if>
<if test="query.partDescription != null and query.partDescription != ''">
AND P.PartDescription LIKE '%' + #{query.partDescription} + '%'
</if>
<if test="query.spec != null and query.spec != ''">
AND P.Spec LIKE '%' + #{query.spec} + '%'
</if>
<if test="query.workCenterNoList != null and query.workCenterNoList.size() > 0">
AND A.work_center_no IN
<foreach collection="query.workCenterNoList" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
</where>
ORDER BY A.NotifyNo, B.SOOrderNo, C.BOMItemNo
</select>
</mapper>
Loading…
Cancel
Save