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. 57
      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);
}

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

@ -804,22 +804,29 @@
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.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