Browse Source

2026-07-31

优化
master
fengyuan_yang 2 months ago
parent
commit
fbeebfb3ab
  1. 6
      src/main/java/com/gaotao/modules/schedule/controller/ScheduleController.java
  2. 9
      src/main/java/com/gaotao/modules/schedule/data/OrderBomData.java
  3. 2
      src/main/java/com/gaotao/modules/schedule/mapper/ScheduleMapper.java
  4. 2
      src/main/java/com/gaotao/modules/schedule/service/ScheduleService.java
  5. 4
      src/main/java/com/gaotao/modules/schedule/service/impl/ScheduleServiceImpl.java
  6. 87
      src/main/resources/mapper/schedule/ScheduleMapper.xml

6
src/main/java/com/gaotao/modules/schedule/controller/ScheduleController.java

@ -2247,6 +2247,7 @@ public class ScheduleController extends AbstractController {
String rollNo = (String) params.get("rollNo");
String status = (String) params.get("status");
String consumedFlag = (String) params.get("consumedFlag");
Integer itemNo = (Integer) params.get("itemNo");
if (site == null || site.isEmpty()) {
return R.error("站点不能为空").put("code", 400);
@ -2257,9 +2258,12 @@ public class ScheduleController extends AbstractController {
if (partNo == null || partNo.isEmpty()) {
return R.error("物料编码不能为空").put("code", 400);
}
if (itemNo == null) {
return R.error("序号不能为空").put("code", 400);
}
PageUtils pageUtils = scheduleService.getMaterialRecordList(site, orderNo, partNo, page, limit,
transactionId, documentType, rollNo, status, consumedFlag);
transactionId, documentType, rollNo, status, consumedFlag, itemNo);
return R.ok()
.put("code", 0)
.put("msg", "success")

9
src/main/java/com/gaotao/modules/schedule/data/OrderBomData.java

@ -23,6 +23,7 @@ public class OrderBomData extends BaseData {
private Float qtyFixedScrapt;
private Float scraptFactor;
private String remark;
private String issueMethod;
private Float qtyRequired;
private Float qtyIssue;
private Date issueDate;
@ -131,6 +132,14 @@ public class OrderBomData extends BaseData {
this.remark = remark;
}
public String getIssueMethod() {
return issueMethod;
}
public void setIssueMethod(String issueMethod) {
this.issueMethod = issueMethod;
}
public Float getQtyRequired() {
return qtyRequired;
}

2
src/main/java/com/gaotao/modules/schedule/mapper/ScheduleMapper.java

@ -817,7 +817,7 @@ public interface ScheduleMapper {
*/
List<Map<String, Object>> getMaterialRecordList(@Param("site") String site, @Param("orderNo") String orderNo, @Param("partNo") String partNo,
@Param("transactionId") String transactionId, @Param("documentType") String documentType,
@Param("rollNo") String rollNo, @Param("status") String status, @Param("consumedFlag") String consumedFlag);
@Param("rollNo") String rollNo, @Param("status") String status, @Param("consumedFlag") String consumedFlag, @Param("itemNo") Integer itemNo);
/**
* 调用存储过程 sfdcRollsOpsReportExecute

2
src/main/java/com/gaotao/modules/schedule/service/ScheduleService.java

@ -1368,7 +1368,7 @@ public interface ScheduleService {
* @return 领料记录分页数据
*/
PageUtils getMaterialRecordList(String site, String orderNo, String partNo, int page, int limit,
String transactionId, String documentType, String rollNo, String status, String consumedFlag);
String transactionId, String documentType, String rollNo, String status, String consumedFlag, Integer itemNo);
/**
* @description: 打开材料卷重新激活已完成的材料

4
src/main/java/com/gaotao/modules/schedule/service/impl/ScheduleServiceImpl.java

@ -6769,9 +6769,9 @@ public class ScheduleServiceImpl implements ScheduleService {
@Override
public PageUtils getMaterialRecordList(String site, String orderNo, String partNo, int page, int limit,
String transactionId, String documentType, String rollNo, String status, String consumedFlag) {
String transactionId, String documentType, String rollNo, String status, String consumedFlag, Integer itemNo) {
com.github.pagehelper.Page<Map<String, Object>> pageInfo = com.github.pagehelper.PageHelper.startPage(page, limit);
List<Map<String, Object>> list = scheduleMapper.getMaterialRecordList(site, orderNo, partNo, transactionId, documentType, rollNo, status, consumedFlag);
List<Map<String, Object>> list = scheduleMapper.getMaterialRecordList(site, orderNo, partNo, transactionId, documentType, rollNo, status, consumedFlag, itemNo);
return new PageUtils(list, (int)pageInfo.getTotal(), limit, page);
}

87
src/main/resources/mapper/schedule/ScheduleMapper.xml

@ -793,33 +793,40 @@
<!--查询工单的bom信息-->
<select id="getOrderBomByCon" parameterType="SearchScheduleData" resultType="OrderBomData">
SELECT
vss.Site site,
vss.OrderNo orderNo,
vss.ItemNo itemNo,
vss.ComponentPartNo componentPartNo,
P.PartDescription partDesc,
P.Spec partSpec,
U.UMName partUm,
vss.QtyAssembly qtyAssembly,
vss.QtyFixedScrapt qtyFixedScrapt,
vss.ScraptFactor scraptFactor,
vss.Remark remark,
vss.QtyRequired qtyRequired,
vss.QtyIssue qtyIssue,
vss.IssueDate issueDate,
vss.QtyReserved qtyReserved,
vss.MatGroup matGroup,
vss.RMType_DB rmTypeDb,
ISNULL(vss.qtyReturn, 0) as qtyReturn,
CAST (
ROUND(CASE WHEN ISNULL(vss.QtyIssue, 0) > ISNULL(vss.qtyRequired, 0) THEN
ISNULL(vss.QtyIssue, 0) - ISNULL(vss.qtyRequired, 0) ELSE 0 END, 6) AS DECIMAL (18, 6)
) AS theoryQtyReturn
FROM dbo.view_SAP_SOBOM vss
vss.Site site,
vss.OrderNo orderNo,
vss.ItemNo itemNo,
vss.ComponentPartNo componentPartNo,
P.PartDescription partDesc,
P.Spec partSpec,
U.UMName partUm,
vss.QtyAssembly qtyAssembly,
vss.QtyFixedScrapt qtyFixedScrapt,
vss.ScraptFactor scraptFactor,
vss.Remark remark,
vss.IssueDate issueDate,
vss.QtyReserved qtyReserved,
vss.MatGroup matGroup,
vss.RMType_DB rmTypeDb,
vss.issue_method issueMethod,
vss.QtyRequired qtyRequired,
SUM(CASE WHEN L.document_type ='生产领料' THEN ISNULL(L.roll_qty,0) ELSE 0 END ) qtyIssue,
SUM(CASE WHEN L.document_type ='生产退仓' THEN ISNULL(L.roll_qty,0) ELSE 0 END ) qtyReturn ,
CASE
WHEN (SUM(CASE WHEN L.document_type = '生产领料' THEN ISNULL(L.roll_qty, 0) ELSE 0 END)
- SUM(CASE WHEN L.document_type = '生产退仓' THEN ISNULL(L.roll_qty, 0) ELSE 0 END))
- ISNULL(vss.QtyRequired, 0) <![CDATA[<]]> 0
THEN 0
ELSE (SUM(CASE WHEN L.document_type = '生产领料' THEN ISNULL(L.roll_qty, 0) ELSE 0 END)
- SUM(CASE WHEN L.document_type = '生产退仓' THEN ISNULL(L.roll_qty, 0) ELSE 0 END))
- ISNULL(vss.QtyRequired, 0)
END AS qtyShouldReturn
FROM ShopOrder S
INNER JOIN SOBOM vss ON vss.Site = S.site and S.OrderNo = vss.OrderNo
LEFT JOIN Part P ON vss.Site = P.Site AND vss.ComponentPartNo = P.PartNo
LEFT JOIN UM U ON P.Site = U.Site AND P.UMID = U.UMID
LEFT JOIN StockTransactionLog L ON vss.Site = L.site AND vss.OrderNo = L.order_no AND vss.ItemNo = L.bom_item_no AND L.document_type IN ('生产领料','生产退仓')
<where>
vss.Site = P.Site AND vss.ComponentPartNo = P.PartNo
<if test="site != null and site != ''">
AND vss.Site = #{site}
</if>
@ -827,6 +834,8 @@
AND vss.OrderNo = #{orderNo}
</if>
</where>
GROUP BY vss.Site, vss.OrderNo, vss.ItemNo, vss.ComponentPartNo, P.PartDescription, P.Spec, U.UMName, vss.QtyAssembly, vss.QtyFixedScrapt,
vss.ScraptFactor, vss.Remark, vss.QtyRequired, vss.IssueDate, vss.QtyReserved, vss.MatGroup, vss.RMType_DB , vss.issue_method
ORDER BY vss.ItemNo ASC
</select>
@ -2100,7 +2109,6 @@
<!-- 获取领料记录 -->
<select id="getMaterialRecordList" resultType="java.util.Map">
select * from (
select
A.site,
A.bu_no as buNo,
@ -2116,39 +2124,22 @@
A.transaction_date as transactionDate
from StockTransactionLog A WITH(NOLOCK)
INNER JOIN inventory_stock B WITH(NOLOCK) ON A.site = B.site AND A.roll_no = B.roll_no
where A.site =#{site} and A.order_no = #{orderNo} AND a.part_no = #{partNo} and a.document_type in ('生产领料','生产退仓')
UNION ALL
SELECT
A.site,
A.bu_no buNo,
A.orderref1 as transactionId,
A.orderref0 as documentType,
A.orderref1 as documentNo,
A.roll_no rollNo,
A.status, --标签状态
(CASE WHEN a.consumed_flag = 'Y' THEN '已消耗' ELSE '未使用' END) consumedFlag , --是否使用
a.qty_on_hand as rollQty,
a.batch_no batchNo,
create_by as transactionBy ,
latest_in_date as transactionDate
FROM inventory_stock A WITH(NOLOCK)
WHERE A.site =#{site} and A.orderref1 = #{orderNo} AND A.part_no = #{partNo} and a.orderref0 ='生产退仓' AND a.status = '待入'
) T
where A.site =#{site} and A.order_no = #{orderNo} AND a.bom_item_no = #{itemNo} and a.document_type in ('生产领料','生产退仓')
<where>
<if test="transactionId != null and transactionId != ''">
and T.transactionId like concat('%', #{transactionId}, '%')
and A.transactionId like concat('%', #{transactionId}, '%')
</if>
<if test="documentType != null and documentType != ''">
and T.documentType = #{documentType}
and A.documentType = #{documentType}
</if>
<if test="rollNo != null and rollNo != ''">
and T.rollNo like concat('%', #{rollNo}, '%')
and A.rollNo like concat('%', #{rollNo}, '%')
</if>
<if test="status != null and status != ''">
and T.status = #{status}
and A.status = #{status}
</if>
<if test="consumedFlag != null and consumedFlag != ''">
and T.consumedFlag = #{consumedFlag}
and A.consumedFlag = #{consumedFlag}
</if>
</where>
</select>

Loading…
Cancel
Save