Browse Source

2025-10-30

销售发货装箱增加托清单
master
fengyuan_yang 3 months ago
parent
commit
864c2aa719
  1. 102
      src/main/java/com/gaotao/modules/boxManage/controller/BoxForNotificationController.java
  2. 86
      src/main/java/com/gaotao/modules/boxManage/dao/BoxForNotificationMapper.java
  3. 60
      src/main/java/com/gaotao/modules/boxManage/data/SoReceivePalletBoxesData.java
  4. 12
      src/main/java/com/gaotao/modules/boxManage/data/SoReceivePalletsData.java
  5. 195
      src/main/java/com/gaotao/modules/boxManage/entity/SoReceivePalletsDto.java
  6. 56
      src/main/java/com/gaotao/modules/boxManage/service/BoxForNotificationService.java
  7. 118
      src/main/java/com/gaotao/modules/boxManage/service/impl/BoxForNotificationServiceImpl.java
  8. 134
      src/main/resources/mapper/boxManage/BoxForNotificationMapper.xml

102
src/main/java/com/gaotao/modules/boxManage/controller/BoxForNotificationController.java

@ -4,12 +4,15 @@ import com.gaotao.common.utils.R;
import com.gaotao.modules.boxManage.data.SoReceiveBoxRollsData;
import com.gaotao.modules.boxManage.data.SoReceiveBoxesData;
import com.gaotao.modules.boxManage.data.SoReceiveCasesData;
import com.gaotao.modules.boxManage.data.SoReceivePalletBoxesData;
import com.gaotao.modules.boxManage.data.SoReceivePalletsData;
import com.gaotao.modules.boxManage.service.BoxForNotificationService;
import com.gaotao.modules.outboundNotification.entity.vo.OutboundNotificationHeadVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
@RestController
@RequestMapping("/boxForNotification")
@ -184,4 +187,103 @@ public class BoxForNotificationController {
srmSupplierService.updateOrderStatus(data);
return R.ok();
}
// ==================== 托清单相关API ====================
/**
* 查询托清单列表
* @param data 查询条件
* @return R
*/
@PostMapping(value="/searchPalletList")
@ResponseBody
public R searchPalletList(@RequestBody SoReceivePalletsData data) {
List<SoReceivePalletsData> rows = srmSupplierService.searchSoReceivePalletsData(data);
return R.ok().put("rows", rows);
}
/**
* 新增托
* @param data 托数据
* @return R
*/
@PostMapping(value="/newPallet")
@ResponseBody
public R newPallet(@RequestBody SoReceivePalletsData data) {
String palletNo = srmSupplierService.newSoReceivePalletsData(data);
return R.ok().put("palletNo", palletNo);
}
/**
* 查询托明细
* @param data 查询条件
* @return R
*/
@PostMapping(value="/searchPalletDetail")
@ResponseBody
public R searchPalletDetail(@RequestBody SoReceivePalletsData data) {
List<SoReceivePalletBoxesData> rows = srmSupplierService.searchPalletBoxDetail(data);
SoReceivePalletsData row = srmSupplierService.searchPalletData(data);
return R.ok().put("rows", rows).put("row", row);
}
/**
* 删除托
* @param data 托数据
* @return R
*/
@PostMapping(value="/deletePallet")
@ResponseBody
public R deletePallet(@RequestBody SoReceivePalletsData data) {
srmSupplierService.deleteSoReceivePalletsData(data);
return R.ok();
}
/**
* 更新托状态封托/拆托
* @param data 托数据
* @return R
*/
@PostMapping(value="/updatePalletStatus")
@ResponseBody
public R updatePalletStatus(@RequestBody SoReceivePalletsData data) {
srmSupplierService.updatePalletStatus(data);
return R.ok();
}
/**
* 扫描装托扫描箱号
* @param params 包含托箱明细信息
* @return R
*/
@PostMapping(value="/scanPalletBox")
@ResponseBody
public R scanPalletBox(@RequestBody Map<String, Object> params) {
try {
SoReceivePalletBoxesData data = new SoReceivePalletBoxesData();
data.setSite((String) params.get("site"));
data.setBuNo((String) params.get("buNo"));
data.setPalletNo((String) params.get("palletNo"));
data.setBoxNo((String) params.get("boxNo"));
data.setReceivedBy((String) params.get("receivedBy"));
data.setBoxesQty(1); // 默认为1
srmSupplierService.scanPalletBox(data);
return R.ok().put("code", 0).put("msg", "装托成功");
} catch (Exception e) {
return R.error(e.getMessage());
}
}
/**
* 删除托中的箱
* @param data 托箱明细数据
* @return R
*/
@PostMapping(value="/deletePalletBox")
@ResponseBody
public R deletePalletBox(@RequestBody SoReceivePalletBoxesData data) {
srmSupplierService.deletePalletBox(data);
return R.ok();
}
}

86
src/main/java/com/gaotao/modules/boxManage/dao/BoxForNotificationMapper.java

@ -3,6 +3,8 @@ package com.gaotao.modules.boxManage.dao;
import com.gaotao.modules.boxManage.data.SoReceiveBoxRollsData;
import com.gaotao.modules.boxManage.data.SoReceiveBoxesData;
import com.gaotao.modules.boxManage.data.SoReceiveCasesData;
import com.gaotao.modules.boxManage.data.SoReceivePalletBoxesData;
import com.gaotao.modules.boxManage.data.SoReceivePalletsData;
import com.gaotao.modules.inventoryStock.entity.InventoryStock;
import com.gaotao.modules.outboundNotification.entity.OutboundNotificationDetailEntity;
import com.gaotao.modules.outboundNotification.entity.vo.OutboundNotificationHeadVo;
@ -66,4 +68,88 @@ public interface BoxForNotificationMapper {
* @param orderStatus 订单状态
*/
void updateOrderStatus(@Param("site") String site, @Param("buNo") String buNo, @Param("orderNo") String orderNo, @Param("orderStatus") String orderStatus);
// ==================== 托清单相关方法 ====================
/**
* 查询托清单列表
* @param data 查询条件
* @return 托清单列表
*/
List<SoReceivePalletsData> searchSoReceivePalletsData(SoReceivePalletsData data);
/**
* 新增托
* @param data 托数据
*/
void newSoReceivePalletsData(SoReceivePalletsData data);
/**
* 查询托明细列表
* @param data 查询条件
* @return 托明细列表
*/
List<SoReceivePalletBoxesData> searchPalletBoxDetail(SoReceivePalletsData data);
/**
* 查询托数据
* @param data 查询条件
* @return 托数据
*/
SoReceivePalletsData searchPalletData(SoReceivePalletsData data);
/**
* 删除托
* @param data 托数据
*/
void deleteSoReceivePalletsData(SoReceivePalletsData data);
/**
* 更新托状态
* @param data 托数据
*/
void updatePalletStatus(SoReceivePalletsData data);
/**
* 根据箱号查询箱信息用于装托扫描
* @param data 箱数据
* @return 箱信息
*/
SoReceiveBoxesData selectBoxByBoxNo(SoReceiveBoxesData data);
/**
* 装托添加箱到托
* @param data 托箱明细数据
*/
void addBoxToPallet(SoReceivePalletBoxesData data);
/**
* 拆托从托中删除箱
* @param data 托箱明细数据
*/
void deleteBoxFromPallet(SoReceivePalletBoxesData data);
/**
* 更新托的箱数量
* @param data 托数据
*/
void updatePalletBoxesQty(SoReceivePalletsData data);
/**
* 检查箱是否在托中
* @param site 站点
* @param buNo BU号
* @param boxNo 箱号
* @return 托箱明细列表
*/
List<SoReceivePalletBoxesData> checkBoxInPallet(@Param("site") String site, @Param("buNo") String buNo, @Param("boxNo") String boxNo);
/**
* 检查卷是否已装箱
* @param site 站点
* @param buNo BU号
* @param rollNo 卷号
* @return 箱卷明细列表
*/
List<SoReceiveBoxRollsData> checkRollInBox(@Param("site") String site, @Param("buNo") String buNo, @Param("rollNo") String rollNo);
}

60
src/main/java/com/gaotao/modules/boxManage/data/SoReceivePalletBoxesData.java

@ -0,0 +1,60 @@
package com.gaotao.modules.boxManage.data;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.apache.ibatis.type.Alias;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
@Data
@Alias("SoReceivePalletBoxesData")
public class SoReceivePalletBoxesData {
/**
* 主键ID
*/
private Integer id;
/**
* 序号
*/
private Integer orderId;
/**
* 仓库ID
*/
private String site;
/**
* 事业部编号
*/
private String buNo;
/**
* 托盘号
*/
private String palletNo;
/**
* 箱号
*/
private String boxNo;
/**
* 箱数量
*/
private Integer boxesQty;
/**
* 装托人
*/
private String receivedBy;
/**
* 装托时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
private Date receivedDate;
}

12
src/main/java/com/gaotao/modules/boxManage/data/SoReceivePalletsData.java

@ -0,0 +1,12 @@
package com.gaotao.modules.boxManage.data;
import com.gaotao.modules.boxManage.entity.SoReceivePalletsDto;
import lombok.Data;
import org.apache.ibatis.type.Alias;
@Data
@Alias("SoReceivePalletsData")
public class SoReceivePalletsData extends SoReceivePalletsDto {
private Integer flag;
}

195
src/main/java/com/gaotao/modules/boxManage/entity/SoReceivePalletsDto.java

@ -0,0 +1,195 @@
package com.gaotao.modules.boxManage.entity;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
public class SoReceivePalletsDto {
/**
* 主键ID
*/
private Integer id;
/**
* 仓库ID
*/
private String site;
/**
* 事业部编号
*/
private String buNo;
/**
* 托盘号
*/
private String palletNo;
/**
* 销售发货单号
*/
private String orderNo;
/**
* 状态未封托/已封托
*/
private String status;
/**
* 箱数量
*/
private Integer boxesQty;
/**
* 托盘类型
*/
private String palletType;
/**
* 是否在库
*/
private String cInStockFlag;
/**
* 创建时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
private Date createdDate;
/**
* 创建人
*/
private String createdBy;
/**
* 更新时间
*/
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
private Date updateDate;
/**
* 更新人
*/
private String updateBy;
/**
* 版本号
*/
private Integer version;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getSite() {
return site;
}
public void setSite(String site) {
this.site = site;
}
public String getBuNo() {
return buNo;
}
public void setBuNo(String buNo) {
this.buNo = buNo;
}
public String getPalletNo() {
return palletNo;
}
public void setPalletNo(String palletNo) {
this.palletNo = palletNo;
}
public String getOrderNo() {
return orderNo;
}
public void setOrderNo(String orderNo) {
this.orderNo = orderNo;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public Integer getBoxesQty() {
return boxesQty;
}
public void setBoxesQty(Integer boxesQty) {
this.boxesQty = boxesQty;
}
public String getPalletType() {
return palletType;
}
public void setPalletType(String palletType) {
this.palletType = palletType;
}
public String getcInStockFlag() {
return cInStockFlag;
}
public void setcInStockFlag(String cInStockFlag) {
this.cInStockFlag = cInStockFlag;
}
public Date getCreatedDate() {
return createdDate;
}
public void setCreatedDate(Date createdDate) {
this.createdDate = createdDate;
}
public String getCreatedBy() {
return createdBy;
}
public void setCreatedBy(String createdBy) {
this.createdBy = createdBy;
}
public Date getUpdateDate() {
return updateDate;
}
public void setUpdateDate(Date updateDate) {
this.updateDate = updateDate;
}
public String getUpdateBy() {
return updateBy;
}
public void setUpdateBy(String updateBy) {
this.updateBy = updateBy;
}
public Integer getVersion() {
return version;
}
public void setVersion(Integer version) {
this.version = version;
}
}

56
src/main/java/com/gaotao/modules/boxManage/service/BoxForNotificationService.java

@ -3,6 +3,8 @@ package com.gaotao.modules.boxManage.service;
import com.gaotao.modules.boxManage.data.SoReceiveBoxRollsData;
import com.gaotao.modules.boxManage.data.SoReceiveBoxesData;
import com.gaotao.modules.boxManage.data.SoReceiveCasesData;
import com.gaotao.modules.boxManage.data.SoReceivePalletBoxesData;
import com.gaotao.modules.boxManage.data.SoReceivePalletsData;
import com.gaotao.modules.outboundNotification.entity.vo.OutboundNotificationHeadVo;
import java.util.List;
@ -43,4 +45,58 @@ public interface BoxForNotificationService {
* @param data 包含 site, buNo, orderNo
*/
void updateOrderStatus(OutboundNotificationHeadVo data);
// ==================== 托清单相关方法 ====================
/**
* 查询托清单列表
* @param data 查询条件
* @return 托清单列表
*/
List<SoReceivePalletsData> searchSoReceivePalletsData(SoReceivePalletsData data);
/**
* 新增托
* @param data 托数据
* @return 托盘号
*/
String newSoReceivePalletsData(SoReceivePalletsData data);
/**
* 查询托明细列表
* @param data 查询条件
* @return 托明细列表
*/
List<SoReceivePalletBoxesData> searchPalletBoxDetail(SoReceivePalletsData data);
/**
* 查询托数据
* @param data 查询条件
* @return 托数据
*/
SoReceivePalletsData searchPalletData(SoReceivePalletsData data);
/**
* 删除托
* @param data 托数据
*/
void deleteSoReceivePalletsData(SoReceivePalletsData data);
/**
* 更新托状态
* @param data 托数据
*/
void updatePalletStatus(SoReceivePalletsData data);
/**
* 扫描装托扫描箱号
* @param data 托箱明细数据
*/
void scanPalletBox(SoReceivePalletBoxesData data);
/**
* 删除托中的箱
* @param data 托箱明细数据
*/
void deletePalletBox(SoReceivePalletBoxesData data);
}

118
src/main/java/com/gaotao/modules/boxManage/service/impl/BoxForNotificationServiceImpl.java

@ -4,6 +4,8 @@ import com.gaotao.modules.boxManage.dao.BoxForNotificationMapper;
import com.gaotao.modules.boxManage.data.SoReceiveBoxRollsData;
import com.gaotao.modules.boxManage.data.SoReceiveBoxesData;
import com.gaotao.modules.boxManage.data.SoReceiveCasesData;
import com.gaotao.modules.boxManage.data.SoReceivePalletBoxesData;
import com.gaotao.modules.boxManage.data.SoReceivePalletsData;
import com.gaotao.modules.boxManage.service.BoxForNotificationService;
import com.gaotao.modules.outboundNotification.entity.OutboundNotificationDetailEntity;
import com.gaotao.modules.outboundNotification.entity.vo.OutboundNotificationHeadVo;
@ -59,6 +61,17 @@ public class BoxForNotificationServiceImpl implements BoxForNotificationService
if(!checkData.isEmpty()){
throw new RuntimeException("箱内有卷无法删除!");
}
// 检查箱是否已经在托中
List<SoReceivePalletBoxesData> palletBoxList = boxForNotificationMapper.checkBoxInPallet(
data.getSite(),
data.getBuNo(),
data.getBoxNo()
);
if(palletBoxList != null && !palletBoxList.isEmpty()){
throw new RuntimeException("箱已在托中,无法删除!");
}
boxForNotificationMapper.deleteSoReceiveBoxesData(data);
}
@ -250,6 +263,16 @@ public class BoxForNotificationServiceImpl implements BoxForNotificationService
.orElse(null);
if (caseData != null) {
// 检查卷是否已经装箱
List<SoReceiveBoxRollsData> boxRollList = boxForNotificationMapper.checkRollInBox(
data.getSite(),
data.getBuNo(),
caseData.getRollNo()
);
if(boxRollList != null && !boxRollList.isEmpty()){
throw new RuntimeException("卷已装箱,无法删除!");
}
// 恢复库存的原始上级标签 ori_parent_roll_no ori_parent_roll_type 的值赋回给 parent_roll_no parent_roll_type
boxForNotificationMapper.restoreStockParentRollType(
caseData.getRollNo(),
@ -359,4 +382,99 @@ public class BoxForNotificationServiceImpl implements BoxForNotificationService
// 更新订单状态为"待出库"
boxForNotificationMapper.updateOrderStatus(data.getSite(), data.getBuNo(), data.getOrderNo(), "待出库");
}
// ==================== 托清单相关方法实现 ====================
@Override
public List<SoReceivePalletsData> searchSoReceivePalletsData(SoReceivePalletsData data) {
return boxForNotificationMapper.searchSoReceivePalletsData(data);
}
@Override
@Transactional
public String newSoReceivePalletsData(SoReceivePalletsData inData) {
// 获取托盘号
TransNoControl transNo = transNoService.getTransNo(inData.getSite(), "PALLET", inData.getBuNo());
if (transNo == null) {
throw new RuntimeException("托盘号生成失败,请联系管理员!");
}
inData.setPalletNo(transNo.getNewTransNo());
boxForNotificationMapper.newSoReceivePalletsData(inData);
return transNo.getNewTransNo();
}
@Override
public List<SoReceivePalletBoxesData> searchPalletBoxDetail(SoReceivePalletsData inData) {
return boxForNotificationMapper.searchPalletBoxDetail(inData);
}
@Override
public SoReceivePalletsData searchPalletData(SoReceivePalletsData inData) {
return boxForNotificationMapper.searchPalletData(inData);
}
@Override
@Transactional
public void deleteSoReceivePalletsData(SoReceivePalletsData inData) {
// 1. 先删除托明细表中的数据
SoReceivePalletBoxesData palletBoxData = new SoReceivePalletBoxesData();
palletBoxData.setSite(inData.getSite());
palletBoxData.setBuNo(inData.getBuNo());
palletBoxData.setPalletNo(inData.getPalletNo());
boxForNotificationMapper.deleteBoxFromPallet(palletBoxData);
// 2. 再删除托主表数据
boxForNotificationMapper.deleteSoReceivePalletsData(inData);
}
@Override
@Transactional
public void updatePalletStatus(SoReceivePalletsData inData) {
boxForNotificationMapper.updatePalletStatus(inData);
}
@Override
@Transactional
public void scanPalletBox(SoReceivePalletBoxesData inData) {
// 1. 验证箱号是否存在不校验状态
SoReceiveBoxesData boxData = new SoReceiveBoxesData();
boxData.setSite(inData.getSite());
boxData.setBuNo(inData.getBuNo());
boxData.setBoxNo(inData.getBoxNo());
SoReceiveBoxesData boxInfo = boxForNotificationMapper.selectBoxByBoxNo(boxData);
if (boxInfo == null) {
throw new RuntimeException("箱号不存在!");
}
// 2. 校验箱内是否有卷空箱不允许装托
List<SoReceiveBoxRollsData> boxRolls = boxForNotificationMapper.searchBoxRollDetail(boxData);
if (boxRolls == null || boxRolls.isEmpty()) {
throw new RuntimeException("箱内没有卷,不允许装托!");
}
// 3. 添加箱到托
boxForNotificationMapper.addBoxToPallet(inData);
// 4. 更新托的箱数量
SoReceivePalletsData palletData = new SoReceivePalletsData();
palletData.setSite(inData.getSite());
palletData.setBuNo(inData.getBuNo());
palletData.setPalletNo(inData.getPalletNo());
boxForNotificationMapper.updatePalletBoxesQty(palletData);
}
@Override
@Transactional
public void deletePalletBox(SoReceivePalletBoxesData inData) {
// 1. 删除箱
boxForNotificationMapper.deleteBoxFromPallet(inData);
// 2. 更新托的箱数量
SoReceivePalletsData palletData = new SoReceivePalletsData();
palletData.setSite(inData.getSite());
palletData.setBuNo(inData.getBuNo());
palletData.setPalletNo(inData.getPalletNo());
boxForNotificationMapper.updatePalletBoxesQty(palletData);
}
}

134
src/main/resources/mapper/boxManage/BoxForNotificationMapper.xml

@ -183,7 +183,7 @@
c.batch_no,
c.location_id
from so_receive_boxes a
left join so_receive_box_rolls b on a.site = b.site and a.box_no = b.box_no and a.bu_no = b.bu_no
INNER join so_receive_box_rolls b on a.site = b.site and a.box_no = b.box_no and a.bu_no = b.bu_no
left join inventory_stock c on b.site = c.site and b.final_roll_no = c.roll_no and b.bu_no = c.bu_no
where a.site = #{site} and a.order_no = #{orderNo} and a.bu_no = #{buNo}
</select>
@ -406,4 +406,136 @@
AND bu_no = #{buNo}
AND order_no = #{orderNo}
</update>
<!-- ==================== 托清单相关SQL ==================== -->
<!-- 查询托清单列表 -->
<select id="searchSoReceivePalletsData" resultType="SoReceivePalletsData">
SELECT
s.id,
s.site,
s.bu_no as buNo,
s.pallet_no as palletNo,
s.order_no as orderNo,
s.status,
s.boxes_qty as boxesQty,
s.pallet_type as palletType,
s.c_in_stock_flag as cInStockFlag,
s.created_date as createdDate,
s.created_by as createdBy,
s.update_date as updateDate,
s.update_by as updateBy,
s.version
FROM so_receive_pallets s
WHERE s.site = #{site}
AND s.bu_no = #{buNo}
AND s.order_no = #{orderNo}
ORDER BY s.created_date DESC
</select>
<!-- 新增托 -->
<insert id="newSoReceivePalletsData">
INSERT INTO so_receive_pallets
(site, pallet_no, order_no, [status], boxes_qty, pallet_type, c_in_stock_flag, created_date, created_by,
version, bu_no)
VALUES
(#{site}, #{palletNo}, #{orderNo}, #{status}, #{boxesQty}, #{palletType}, 'Y', GETDATE(), #{createdBy},
0, #{buNo})
</insert>
<!-- 查询托明细列表 -->
<select id="searchPalletBoxDetail" resultType="SoReceivePalletBoxesData">
SELECT ROW_NUMBER() OVER (ORDER BY a.received_date) orderId,
a.id, a.site, a.bu_no, a.pallet_no, a.box_no, a.boxes_qty, a.received_by, a.received_date
FROM so_receive_pallet_boxes a
WHERE a.site = #{site}
AND a.pallet_no = #{palletNo}
AND a.bu_no = #{buNo}
ORDER BY a.received_date DESC
</select>
<!-- 查询托数据 -->
<select id="searchPalletData" resultType="SoReceivePalletsData">
SELECT a.id, a.site, a.bu_no, a.pallet_no, a.order_no, [status], boxes_qty, pallet_type, c_in_stock_flag,
created_date, created_by, version
FROM so_receive_pallets a
WHERE a.site = #{site}
AND a.pallet_no = #{palletNo}
AND a.bu_no = #{buNo}
</select>
<!-- 删除托 -->
<delete id="deleteSoReceivePalletsData">
DELETE FROM so_receive_pallets
WHERE id = #{id}
</delete>
<!-- 更新托状态 -->
<update id="updatePalletStatus">
UPDATE so_receive_pallets
SET [status] = #{status}
WHERE id = #{id}
</update>
<!-- 根据箱号查询箱信息(用于装托扫描) -->
<select id="selectBoxByBoxNo" resultType="SoReceiveBoxesData">
SELECT a.id, a.site, a.bu_no, a.box_no as boxNo, a.order_no as orderNo, a.[status], a.rolls_qty as rollsQty,
a.box_type as boxType, a.WareHouseID as wareHouseID
FROM so_receive_boxes a
WHERE a.site = #{site}
AND a.box_no = #{boxNo}
AND a.bu_no = #{buNo}
</select>
<!-- 装托:添加箱到托 -->
<insert id="addBoxToPallet">
INSERT INTO so_receive_pallet_boxes
(site, bu_no, pallet_no, box_no, boxes_qty, received_by, received_date)
VALUES
(#{site}, #{buNo}, #{palletNo}, #{boxNo}, #{boxesQty}, #{receivedBy}, GETDATE())
</insert>
<!-- 拆托:从托中删除箱 -->
<delete id="deleteBoxFromPallet">
DELETE FROM so_receive_pallet_boxes
WHERE site = #{site}
AND bu_no = #{buNo}
AND pallet_no = #{palletNo}
<if test="boxNo != null and boxNo != ''">
AND box_no = #{boxNo}
</if>
</delete>
<!-- 更新托的箱数量 -->
<update id="updatePalletBoxesQty">
UPDATE so_receive_pallets
SET boxes_qty = (
SELECT COUNT(*)
FROM so_receive_pallet_boxes
WHERE site = #{site}
AND bu_no = #{buNo}
AND pallet_no = #{palletNo}
)
WHERE site = #{site}
AND bu_no = #{buNo}
AND pallet_no = #{palletNo}
</update>
<!-- 检查箱是否在托中 -->
<select id="checkBoxInPallet" resultType="SoReceivePalletBoxesData">
SELECT id, site, bu_no, pallet_no, box_no, boxes_qty, received_by, received_date
FROM so_receive_pallet_boxes
WHERE site = #{site}
AND bu_no = #{buNo}
AND box_no = #{boxNo}
</select>
<!-- 检查卷是否已装箱 -->
<select id="checkRollInBox" resultType="SoReceiveBoxRollsData">
SELECT id, site, bu_no, box_no, final_roll_no, roll_qty, received_by, received_date, WareHouseID, part_no
FROM so_receive_box_rolls
WHERE site = #{site}
AND bu_no = #{buNo}
AND final_roll_no = #{rollNo}
</select>
</mapper>
Loading…
Cancel
Save