Browse Source

2024/09/10

master
qiezi 1 year ago
parent
commit
926120d777
  1. 12
      src/main/java/com/spring/modules/shipment/service/impl/ShipmentRollServiceImpl.java
  2. 292
      src/main/resources/mapper/material/ProductionStockMapper.xml

12
src/main/java/com/spring/modules/shipment/service/impl/ShipmentRollServiceImpl.java

@ -87,22 +87,26 @@ public class ShipmentRollServiceImpl extends ServiceImpl<ShipmentRollMapper, Shi
} }
} }
// 获取到 当前IFS出库单据的单号 // 获取到 当前IFS出库单据的单号
ShipmentDetail shipmentDetail = shipmentDetailService.lambdaQuery()
List<ShipmentDetail> shipmentDetail = shipmentDetailService.lambdaQuery()
.eq(ShipmentDetail::getShipmentId, shipmentRollVo.getShipmentId()) .eq(ShipmentDetail::getShipmentId, shipmentRollVo.getShipmentId())
.eq(ShipmentDetail::getPartNo, rollData.getPartNo()) .eq(ShipmentDetail::getPartNo, rollData.getPartNo())
.eq(ShipmentDetail::getSite, rollData.getSite()) .eq(ShipmentDetail::getSite, rollData.getSite())
.one();
if (Objects.isNull(shipmentDetail)) {
.list();
if (Objects.isNull(shipmentDetail) || shipmentDetail.isEmpty()) {
throw new RuntimeException("IFS出库单据明细不存在,请刷新后重试"); throw new RuntimeException("IFS出库单据明细不存在,请刷新后重试");
} }
// 获取当前物料所需数量 // 获取当前物料所需数量
BigDecimal saleQty = shipmentDetail.getSaleQty();
BigDecimal saleQty = BigDecimal.ZERO;
for (ShipmentDetail detail : shipmentDetail) {
saleQty = saleQty.add(detail.getSaleQty());
}
// 获得 箱子 卷数 // 获得 箱子 卷数
BigDecimal num = saleQty.divide(new BigDecimal(value), 0, RoundingMode.UP); BigDecimal num = saleQty.divide(new BigDecimal(value), 0, RoundingMode.UP);
// 获得该物料已经扫描多少卷 // 获得该物料已经扫描多少卷
Integer count = lambdaQuery() Integer count = lambdaQuery()
.eq(ShipmentRoll::getShipmentId, shipmentRollVo.getShipmentId()) .eq(ShipmentRoll::getShipmentId, shipmentRollVo.getShipmentId())
.eq(ShipmentRoll::getPartNo, rollData.getPartNo()) .eq(ShipmentRoll::getPartNo, rollData.getPartNo())
// .eq(ShipmentRoll::getBoxNo, shipmentRollVo.getBoxNo())
.eq(ShipmentRoll::getSite, shipmentRollVo.getSite()).count(); .eq(ShipmentRoll::getSite, shipmentRollVo.getSite()).count();
BigDecimal needNum = num.subtract(new BigDecimal(count)); BigDecimal needNum = num.subtract(new BigDecimal(count));
if (BigDecimal.ZERO.compareTo(needNum) == 0){ if (BigDecimal.ZERO.compareTo(needNum) == 0){

292
src/main/resources/mapper/material/ProductionStockMapper.xml

@ -2,11 +2,39 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.spring.modules.material.dao.ProductionStockMapper"> <mapper namespace="com.spring.modules.material.dao.ProductionStockMapper">
<select id="searchTransHeader" parameterType="TransHeaderData" resultType="TransHeaderData"> <select id="searchTransHeader" parameterType="TransHeaderData" resultType="TransHeaderData">
SELECT
TransNo,Site,WarehouseID,TransDate,TransType_DB transTypeDb,TransType,UserName,Receiver,TransYear,TransMonth,PartnerID,PartnerName,
PartnerType,AuthorizeFlag,AuthorizeDate,Authorizor,TransferFlag,TransferDate,TransferGuys,VoucherDate,ProjectID,
ProjectName,EnterDate,Remark,UseLocation,OrderRef1,LinkOrderFlag,DelAddID,Status,UserName EnterBy,dbo.get_user_display(UserName) enterName
,dbo.get_user_display(Receiver) ReceiverName
SELECT TransNo,
Site,
WarehouseID,
TransDate,
TransType_DB transTypeDb,
TransType,
UserName,
Receiver,
TransYear,
TransMonth,
PartnerID,
PartnerName,
PartnerType,
AuthorizeFlag,
AuthorizeDate,
Authorizor,
TransferFlag,
TransferDate,
TransferGuys,
VoucherDate,
ProjectID,
ProjectName,
EnterDate,
Remark,
UseLocation,
OrderRef1,
LinkOrderFlag,
DelAddID,
Status,
UserName EnterBy,
dbo.get_user_display(UserName) enterName
,
dbo.get_user_display(Receiver) ReceiverName
FROM TransHeader FROM TransHeader
<where> <where>
site = #{query.site} site = #{query.site}
@ -28,80 +56,169 @@
</select> </select>
<select id="searchTransDetail" parameterType="TransHeaderData" resultType="TransDetailData"> <select id="searchTransDetail" parameterType="TransHeaderData" resultType="TransDetailData">
SELECT
TransNo,Site,ItemNo,PartNo,LocationID,TransQty,Direction,BatchNo,OrderRef1,
OrderRef2,Remark,ManufactureDate,ExpiredDate,TransQty2,
wdr_no,enterDate,enterBy,dbo.get_part_desc(Site,PartNo) partDesc,dbo.get_user_display(enterBy) enterName
SELECT TransNo,
Site,
ItemNo,
PartNo,
LocationID,
TransQty,
Direction,
BatchNo,
OrderRef1,
OrderRef2,
Remark,
ManufactureDate,
ExpiredDate,
TransQty2,
wdr_no,
enterDate,
enterBy,
dbo.get_part_desc(Site, PartNo) partDesc,
dbo.get_user_display(enterBy) enterName
FROM TransDetail FROM TransDetail
where site=#{site} and TransNo=#{transNo}
where site = #{site}
and TransNo = #{transNo}
order by enterDate desc order by enterDate desc
</select> </select>
<select id="searchTransDetailSub" parameterType="TransHeaderData" resultType="TransDetailSubData"> <select id="searchTransDetailSub" parameterType="TransHeaderData" resultType="TransDetailSubData">
SELECT
a.TransNo,a.Site,a.SeqNo,a.itemNo,a.LocationID,a.BatchNo,a.BoxNo,a.RollNo,a.RollQty,a.orderRef1,a.orderRef2,
a.remark,b.EnterDate,b.enterBy,dbo.get_user_display(b.enterBy) enterName,b.ManufactureDate,b.ExpiredDate
FROM TransDetailsub a left join TransDetail b on a.Site=b.site and a.TransNo=b.TransNo and a.itemNo=b.ItemNo
where a.site=#{site} and a.TransNo=#{transNo}
SELECT a.TransNo,
a.Site,
a.SeqNo,
a.itemNo,
a.LocationID,
a.BatchNo,
a.BoxNo,
a.RollNo,
a.RollQty,
a.orderRef1,
a.orderRef2,
a.remark,
b.EnterDate,
b.enterBy,
dbo.get_user_display(b.enterBy) enterName,
b.ManufactureDate,
b.ExpiredDate
FROM TransDetailsub a
left join TransDetail b on a.Site = b.site and a.TransNo = b.TransNo and a.itemNo = b.ItemNo
where a.site = #{site}
and a.TransNo = #{transNo}
order by b.EnterDate desc order by b.EnterDate desc
</select> </select>
<select id="getWareHouseList" parameterType="WareHouseSearchOutData" resultType="WareHouseSearchOutData"> <select id="getWareHouseList" parameterType="WareHouseSearchOutData" resultType="WareHouseSearchOutData">
SELECT
site,warehouse_id wareHouseId,warehouse_name wareHouseName
SELECT site,
warehouse_id wareHouseId,
warehouse_name wareHouseName
FROM warehouse FROM warehouse
where site=#{site} and active='Y'
where site = #{site}
and active = 'Y'
</select> </select>
<select id="searchTransHeaderData" parameterType="TransHeaderData" resultType="TransHeaderData"> <select id="searchTransHeaderData" parameterType="TransHeaderData" resultType="TransHeaderData">
SELECT top 1
TransNo,Site,WarehouseID,TransDate,Receiver,PartnerID,PartnerName,
PartnerType,AuthorizeFlag,AuthorizeDate,Authorizor,TransferFlag,TransferDate,TransferGuys,VoucherDate,ProjectID,
ProjectName,EnterDate,Remark,UseLocation,OrderRef1,LinkOrderFlag,DelAddID,Status,dbo.get_user_display(Receiver) receiverName
SELECT top 1 TransNo,
Site,
WarehouseID,
TransDate,
Receiver,
PartnerID,
PartnerName,
PartnerType,
AuthorizeFlag,
AuthorizeDate,
Authorizor,
TransferFlag,
TransferDate,
TransferGuys,
VoucherDate,
ProjectID,
ProjectName,
EnterDate,
Remark,
UseLocation,
OrderRef1,
LinkOrderFlag,
DelAddID,
Status,
dbo.get_user_display(Receiver) receiverName
FROM TransHeader FROM TransHeader
where site=#{site} and TransNo=#{transNo}
where site = #{site}
and TransNo = #{transNo}
</select> </select>
<select id="searchTransDetailsubCachData" parameterType="TransHeaderData" resultType="TransDetailsubCachData"> <select id="searchTransDetailsubCachData" parameterType="TransHeaderData" resultType="TransDetailsubCachData">
SELECT
Site,TransNo,PartNo,RollNo,RollQty,BatchNo,wdrNo,LocationID,ManufactureDate,ExpiredDate,enterBy,enterDate
,id,dbo.get_part_desc(Site,PartNo) partDesc,dbo.get_user_display(enterBy) enterByName
SELECT Site
, TransNo
, PartNo
, RollNo
, RollQty
, BatchNo
, wdrNo
, LocationID
, ManufactureDate
, ExpiredDate
, enterBy
, enterDate
, id
, dbo.get_part_desc(Site, PartNo) partDesc
, dbo.get_user_display(enterBy) enterByName
FROM TransDetailsub_cach FROM TransDetailsub_cach
where site=#{site} and TransNo=#{transNo}
where site = #{site}
and TransNo = #{transNo}
</select> </select>
<insert id="saveIssureCach" parameterType="TransDetailsubCachData"> <insert id="saveIssureCach" parameterType="TransDetailsubCachData">
insert into TransDetailsub_cach(Site,TransNo,PartNo,RollNo,RollQty,BatchNo,wdrNo,LocationID,ManufactureDate,
insert into TransDetailsub_cach(Site, TransNo, PartNo, RollNo, RollQty, BatchNo, wdrNo, LocationID,
ManufactureDate,
ExpiredDate, enterBy, enterDate) ExpiredDate, enterBy, enterDate)
values(#{site},#{transNo},#{partNo},#{rollNo},#{rollQty},#{batchNo},#{wdrNo},#{locationID},#{manufactureDate},
values (#{site}, #{transNo}, #{partNo}, #{rollNo}, #{rollQty}, #{batchNo}, #{wdrNo}, #{locationID},
#{manufactureDate},
#{expiredDate}, #{enterBy}, GetDate()) #{expiredDate}, #{enterBy}, GetDate())
</insert> </insert>
<select id="getDetailDataByCach" resultType="TransDetailData"> <select id="getDetailDataByCach" resultType="TransDetailData">
SELECT
a.site,a.TransNo,a.PartNo,a.LocationID,sum(a.RollQty) as TransQty,'+' as Direction,a.BatchNo,b.OrderRef1,'N' as VitualPartFlag,a.ManufactureDate,a.ExpiredDate,
0 as StandCost,0 as ActualCost,0 as Price,0 as Freight,0 as Duty,sum(a.RollQty) as TransQty2,enterBy,wdrNo
FROM TransDetailsub_cach a left join TransHeader b on a.Site=b.Site and a.TransNo=b.transNo
WHERE a.site=#{site} and a.TransNo=#{transNo}
GROUP BY a.site,a.TransNo,a.PartNo,a.LocationID,a.BatchNo,b.OrderRef1,a.ManufactureDate,a.ExpiredDate,A.enterBy,a.wdrNo
SELECT a.site,
a.TransNo,
a.PartNo,
a.LocationID,
sum(a.RollQty) as TransQty,
'+' as Direction,
a.BatchNo,
b.OrderRef1,
'N' as VitualPartFlag,
a.ManufactureDate,
a.ExpiredDate,
0 as StandCost,
0 as ActualCost,
0 as Price,
0 as Freight,
0 as Duty,
sum(a.RollQty) as TransQty2,
enterBy,
wdrNo
FROM TransDetailsub_cach a
left join TransHeader b on a.Site = b.Site and a.TransNo = b.transNo
WHERE a.site = #{site}
and a.TransNo = #{transNo}
GROUP BY a.site, a.TransNo, a.PartNo, a.LocationID, a.BatchNo, b.OrderRef1, a.ManufactureDate, a.ExpiredDate,
A.enterBy, a.wdrNo
</select> </select>
<select id="getNextTransHeaderSeqNo" resultType="Double"> <select id="getNextTransHeaderSeqNo" resultType="Double">
select isnull(max(itemNo), 0) + 1 select isnull(max(itemNo), 0) + 1
from TransDetail where TransNo=#{transNo} and site=#{site}
from TransDetail
where TransNo = #{transNo}
and site = #{site}
</select> </select>
<insert id="saveTransDetailData" parameterType="TransDetailData"> <insert id="saveTransDetailData" parameterType="TransDetailData">
insert into TransDetail(TransNo, Site, ItemNo, PartNo, LocationID, TransQty, Direction, BatchNo, StandCost, insert into TransDetail(TransNo, Site, ItemNo, PartNo, LocationID, TransQty, Direction, BatchNo, StandCost,
ActualCost, Price, Freight, Duty, OrderRef1, VitualPartFlag, ManufactureDate, ActualCost, Price, Freight, Duty, OrderRef1, VitualPartFlag, ManufactureDate,
ExpiredDate, TransQty2, wdr_no, enterDate, enterBy) ExpiredDate, TransQty2, wdr_no, enterDate, enterBy)
values(#{transNo},#{site},#{itemNo,jdbcType=DOUBLE},#{partNo},#{locationID},#{transQty},#{direction},#{batchNo},#{standCost},
values (#{transNo}, #{site}, #{itemNo,jdbcType=DOUBLE}, #{partNo}, #{locationID}, #{transQty}, #{direction},
#{batchNo}, #{standCost},
#{actualCost}, #{price}, #{freight}, #{duty}, #{orderRef1}, #{vitualPartFlag}, #{manufactureDate}, #{actualCost}, #{price}, #{freight}, #{duty}, #{orderRef1}, #{vitualPartFlag}, #{manufactureDate},
#{expiredDate}, #{transQty2}, #{wdrNo}, GetDate(), #{enterBy}) #{expiredDate}, #{transQty2}, #{wdrNo}, GetDate(), #{enterBy})
</insert> </insert>
@ -111,43 +228,95 @@
insert into TransDetailsub insert into TransDetailsub
(TransNo, Site, SeqNo, itemNo, LocationID, BatchNo, BoxNo, RollNo, RollQty, orderRef1) VALUES (TransNo, Site, SeqNo, itemNo, LocationID, BatchNo, BoxNo, RollNo, RollQty, orderRef1) VALUES
<foreach collection="list" item="item" index="index" separator=","> <foreach collection="list" item="item" index="index" separator=",">
(#{item.transNo}, #{item.site}, #{item.seqNo}, #{item.itemNo}, #{item.locationID}, #{item.batchNo},#{item.boxNo,jdbcType=VARCHAR}, #{item.rollNo,jdbcType=VARCHAR}, #{item.rollQty}, #{item.orderRef1})
(#{item.transNo}, #{item.site}, #{item.seqNo}, #{item.itemNo}, #{item.locationID}, #{item.batchNo},
#{item.boxNo,jdbcType=VARCHAR}, #{item.rollNo,jdbcType=VARCHAR}, #{item.rollQty}, #{item.orderRef1})
</foreach> </foreach>
</insert> </insert>
<delete id="deleteTransCach"> <delete id="deleteTransCach">
delete from TransDetailsub_cach where TransNo=#{transNo} and site=#{site}
delete
from TransDetailsub_cach
where TransNo = #{transNo}
and site = #{site}
</delete> </delete>
<select id="deleteSubCach"> <select id="deleteSubCach">
delete from TransDetailsub_cach where id=#{id}
delete
from TransDetailsub_cach
where id = #{id}
</select> </select>
<delete id="deleteTransHeaderData"> <delete id="deleteTransHeaderData">
delete from transHeader where site=#{site} and transNo=#{transNo}
delete
from transHeader
where site = #{site}
and transNo = #{transNo}
</delete> </delete>
<update id="updateTransHeader"> <update id="updateTransHeader">
update transHeader set WarehouseID=#{warehouseID} ,PartnerID=#{partnerID},Receiver=#{receiver},orderRef1=#{orderRef1},transDate=#{transDate} where site=#{site} and transNo=#{transNo}
update transHeader
set WarehouseID=#{warehouseID},
PartnerID=#{partnerID},
Receiver=#{receiver},
orderRef1=#{orderRef1},
transDate=#{transDate}
where site = #{site}
and transNo = #{transNo}
</update> </update>
<select id="checkTransDetailSubIsScan" resultType="TransDetailSubData"> <select id="checkTransDetailSubIsScan" resultType="TransDetailSubData">
select site,transNo from TransDetailsub_cach where site=#{site} and RollNo=#{rollNo}
select site, transNo
from TransDetailsub_cach
where site = #{site}
and RollNo = #{rollNo}
</select> </select>
<select id="getFinalRoll" resultType="SoFinalRollOutData"> <select id="getFinalRoll" resultType="SoFinalRollOutData">
select id,site,order_no,part_no,seq_no,final_roll_no,roll_qty,status_code,status,created_by,created_date,label_date,manufacture_date,expired_date
from so_final_roll where site=#{site} and final_roll_no=#{rollNo}
select id,
site,
order_no,
part_no,
seq_no,
final_roll_no,
roll_qty,
status_code,
status,
created_by,
created_date,
label_date,
manufacture_date,
expired_date
from so_final_roll
where site = #{site}
and final_roll_no = #{rollNo}
</select> </select>
<update id="updateFinalRollStatus"> <update id="updateFinalRollStatus">
update so_final_roll set status_code=#{statusCode,jdbcType=INTEGER},status=#{status}
where site=#{site} and final_roll_no=#{rollNo}
update so_final_roll
set status_code=#{statusCode,jdbcType=INTEGER},
status=#{status}
where site = #{site}
and final_roll_no = #{rollNo}
</update> </update>
<select id="soFinalRollSearch" parameterType="SoFinalRollOutData" resultType="SoFinalRollOutData"> <select id="soFinalRollSearch" parameterType="SoFinalRollOutData" resultType="SoFinalRollOutData">
SELECT
id,site,order_no,part_no,seq_no,final_roll_no,roll_qty,status_code,status,created_by,created_date,label_date,fqc_date,
fqc_by,manufacture_date,rm_roll_no,dbo.get_part_desc(site,part_no) partDesc,dbo.get_user_display(created_by) createdByName
SELECT id,
site,
order_no,
part_no,
seq_no,
final_roll_no,
roll_qty,
status_code,
status,
created_by,
created_date,
label_date,
fqc_date,
fqc_by,
manufacture_date,
rm_roll_no,
dbo.get_part_desc(site, part_no) partDesc,
dbo.get_user_display(created_by) createdByName
FROM so_final_roll FROM so_final_roll
<where> <where>
site = #{query.site} site = #{query.site}
@ -173,11 +342,20 @@
AND #{query.endDate} >= manufacture_date AND #{query.endDate} >= manufacture_date
</if> </if>
</where> </where>
</select> </select>
<select id="getRollBySysBatch" resultType="SoFinalRollOutData"> <select id="getRollBySysBatch" resultType="SoFinalRollOutData">
select site,order_no,part_no,roll_qty,status_code,created_date,final_roll_no,manufacture_date,status from so_final_roll
where site=#{site} and system_batch_no=#{systemBatchNo}
select site,
order_no,
part_no,
roll_qty,
status_code,
created_date,
final_roll_no,
manufacture_date,
status
from so_final_roll
where site = #{site}
and system_batch_no = #{systemBatchNo}
</select> </select>
</mapper> </mapper>
Loading…
Cancel
Save