diff --git a/doc/设计文档/数据库设计/mes-wm.sql b/doc/设计文档/数据库设计/mes-wm.sql index 3b93235..c82d145 100644 --- a/doc/设计文档/数据库设计/mes-wm.sql +++ b/doc/设计文档/数据库设计/mes-wm.sql @@ -879,7 +879,7 @@ drop table if exists wm_package; create table wm_package ( package_id bigint(20) not null auto_increment comment '装箱单ID', parent_id bigint(20) not null default 0 comment '父箱ID', - ancestors varchar(255) not null comment '所有父节点ID', + ancestors varchar(255) not null default 0 comment '所有父节点ID', package_code varchar(64) comment '装箱单编号', barcode_id bigint(20) comment '条码ID', barcode_content varchar(255) comment '条码内容', diff --git a/ktg-mes/src/main/java/com/ktg/mes/wm/controller/WmPackageController.java b/ktg-mes/src/main/java/com/ktg/mes/wm/controller/WmPackageController.java index 47b7e7f..1a17681 100644 --- a/ktg-mes/src/main/java/com/ktg/mes/wm/controller/WmPackageController.java +++ b/ktg-mes/src/main/java/com/ktg/mes/wm/controller/WmPackageController.java @@ -4,6 +4,7 @@ import java.util.List; import javax.servlet.http.HttpServletResponse; import com.ktg.common.constant.UserConstants; +import com.ktg.common.utils.StringUtils; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -82,6 +83,13 @@ public class WmPackageController extends BaseController if(UserConstants.NOT_UNIQUE.equals(wmPackageService.checkPackgeCodeUnique(wmPackage))){ return AjaxResult.error("装箱单编号已存在!"); } + if(wmPackage.getParentId() !=null){ + WmPackage parentPackage = wmPackageService.selectWmPackageByPackageId(wmPackage.getParentId()); + if(StringUtils.isNotNull(parentPackage)){ + wmPackage.setAncestors(parentPackage.getAncestors()+","+parentPackage.getPackageId()); + } + } + return toAjax(wmPackageService.insertWmPackage(wmPackage)); } @@ -99,6 +107,34 @@ public class WmPackageController extends BaseController return toAjax(wmPackageService.updateWmPackage(wmPackage)); } + /** + * 添加子箱 + */ + @PreAuthorize("@ss.hasPermi('mes:wm:package:edit')") + @Log(title = "装箱单", businessType = BusinessType.UPDATE) + @PutMapping("/addsub") + public AjaxResult addSubPackage(@RequestBody WmPackage wmPackage){ + //不能添加自己 + if(wmPackage.getPackageId().longValue() == wmPackage.getParentId().longValue()){ + return AjaxResult.error("不能添加自己为子箱!"); + } + + //已经有父箱的不能再次添加 + WmPackage subPackage = wmPackageService.selectWmPackageByPackageId(wmPackage.getPackageId()); + if(!"0".equals(subPackage.getAncestors())){ + return AjaxResult.error("当前子箱已经有外箱包装!"); + } + + //更新当前子箱的父箱列表 + WmPackage parentPackage = wmPackageService.selectWmPackageByPackageId(wmPackage.getParentId()); + if(StringUtils.isNotNull(parentPackage)){ + wmPackage.setAncestors(parentPackage.getAncestors()+","+parentPackage.getPackageId()); + } + + return toAjax(wmPackageService.updateWmPackage(wmPackage)); + } + + /** * 删除装箱单 */ diff --git a/ktg-mes/src/main/java/com/ktg/mes/wm/controller/WmPackageLineController.java b/ktg-mes/src/main/java/com/ktg/mes/wm/controller/WmPackageLineController.java new file mode 100644 index 0000000..304e144 --- /dev/null +++ b/ktg-mes/src/main/java/com/ktg/mes/wm/controller/WmPackageLineController.java @@ -0,0 +1,104 @@ +package com.ktg.mes.wm.controller; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ktg.common.annotation.Log; +import com.ktg.common.core.controller.BaseController; +import com.ktg.common.core.domain.AjaxResult; +import com.ktg.common.enums.BusinessType; +import com.ktg.mes.wm.domain.WmPackageLine; +import com.ktg.mes.wm.service.IWmPackageLineService; +import com.ktg.common.utils.poi.ExcelUtil; +import com.ktg.common.core.page.TableDataInfo; + +/** + * 装箱明细Controller + * + * @author yinjinlu + * @date 2022-10-11 + */ +@RestController +@RequestMapping("/mes/wm/packageline") +public class WmPackageLineController extends BaseController +{ + @Autowired + private IWmPackageLineService wmPackageLineService; + + /** + * 查询装箱明细列表 + */ + @PreAuthorize("@ss.hasPermi('mes:wm:packageline:list')") + @GetMapping("/list") + public TableDataInfo list(WmPackageLine wmPackageLine) + { + startPage(); + List list = wmPackageLineService.selectWmPackageLineList(wmPackageLine); + return getDataTable(list); + } + + /** + * 导出装箱明细列表 + */ + @PreAuthorize("@ss.hasPermi('mes:wm:packageline:export')") + @Log(title = "装箱明细", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, WmPackageLine wmPackageLine) + { + List list = wmPackageLineService.selectWmPackageLineList(wmPackageLine); + ExcelUtil util = new ExcelUtil(WmPackageLine.class); + util.exportExcel(response, list, "装箱明细数据"); + } + + /** + * 获取装箱明细详细信息 + */ + @PreAuthorize("@ss.hasPermi('mes:wm:packageline:query')") + @GetMapping(value = "/{lineId}") + public AjaxResult getInfo(@PathVariable("lineId") Long lineId) + { + return AjaxResult.success(wmPackageLineService.selectWmPackageLineByLineId(lineId)); + } + + /** + * 新增装箱明细 + */ + @PreAuthorize("@ss.hasPermi('mes:wm:packageline:add')") + @Log(title = "装箱明细", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody WmPackageLine wmPackageLine) + { + return toAjax(wmPackageLineService.insertWmPackageLine(wmPackageLine)); + } + + /** + * 修改装箱明细 + */ + @PreAuthorize("@ss.hasPermi('mes:wm:packageline:edit')") + @Log(title = "装箱明细", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody WmPackageLine wmPackageLine) + { + return toAjax(wmPackageLineService.updateWmPackageLine(wmPackageLine)); + } + + /** + * 删除装箱明细 + */ + @PreAuthorize("@ss.hasPermi('mes:wm:packageline:remove')") + @Log(title = "装箱明细", businessType = BusinessType.DELETE) + @DeleteMapping("/{lineIds}") + public AjaxResult remove(@PathVariable Long[] lineIds) + { + return toAjax(wmPackageLineService.deleteWmPackageLineByLineIds(lineIds)); + } +} diff --git a/ktg-mes/src/main/java/com/ktg/mes/wm/domain/WmPackageLine.java b/ktg-mes/src/main/java/com/ktg/mes/wm/domain/WmPackageLine.java new file mode 100644 index 0000000..2f2de99 --- /dev/null +++ b/ktg-mes/src/main/java/com/ktg/mes/wm/domain/WmPackageLine.java @@ -0,0 +1,392 @@ +package com.ktg.mes.wm.domain; + +import java.math.BigDecimal; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ktg.common.annotation.Excel; +import com.ktg.common.core.domain.BaseEntity; + +/** + * 装箱明细对象 wm_package_line + * + * @author yinjinlu + * @date 2022-10-11 + */ +public class WmPackageLine extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 明细行ID */ + private Long lineId; + + /** 装箱单ID */ + @Excel(name = "装箱单ID") + private Long packageId; + + /** 库存记录ID */ + @Excel(name = "库存记录ID") + private Long materialStockId; + + /** 产品物料ID */ + @Excel(name = "产品物料ID") + private Long itemId; + + /** 产品物料编码 */ + @Excel(name = "产品物料编码") + private String itemCode; + + /** 产品物料名称 */ + @Excel(name = "产品物料名称") + private String itemName; + + /** 规格型号 */ + @Excel(name = "规格型号") + private String specification; + + /** 单位 */ + @Excel(name = "单位") + private String unitOfMeasure; + + /** 装箱数量 */ + @Excel(name = "装箱数量") + private BigDecimal quantityPackage; + + /** 生产工单ID */ + @Excel(name = "生产工单ID") + private Long workorderId; + + /** 生产工单编号 */ + @Excel(name = "生产工单编号") + private String workorderCode; + + /** 批次号 */ + @Excel(name = "批次号") + private String batchCode; + + /** 仓库ID */ + @Excel(name = "仓库ID") + private Long warehouseId; + + /** 仓库编码 */ + @Excel(name = "仓库编码") + private String warehouseCode; + + /** 仓库名称 */ + @Excel(name = "仓库名称") + private String warehouseName; + + /** 库区ID */ + @Excel(name = "库区ID") + private Long locationId; + + /** 库区编码 */ + @Excel(name = "库区编码") + private String locationCode; + + /** 库区名称 */ + @Excel(name = "库区名称") + private String locationName; + + /** 库位ID */ + @Excel(name = "库位ID") + private Long areaId; + + /** 库位编码 */ + @Excel(name = "库位编码") + private String areaCode; + + /** 库位名称 */ + @Excel(name = "库位名称") + private String areaName; + + /** 有效期 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "有效期", width = 30, dateFormat = "yyyy-MM-dd") + private Date expireDate; + + /** 预留字段1 */ + private String attr1; + + /** 预留字段2 */ + private String attr2; + + /** 预留字段3 */ + private Long attr3; + + /** 预留字段4 */ + private Long attr4; + + public void setLineId(Long lineId) + { + this.lineId = lineId; + } + + public Long getLineId() + { + return lineId; + } + public void setPackageId(Long packageId) + { + this.packageId = packageId; + } + + public Long getPackageId() + { + return packageId; + } + public void setMaterialStockId(Long materialStockId) + { + this.materialStockId = materialStockId; + } + + public Long getMaterialStockId() + { + return materialStockId; + } + public void setItemId(Long itemId) + { + this.itemId = itemId; + } + + public Long getItemId() + { + return itemId; + } + public void setItemCode(String itemCode) + { + this.itemCode = itemCode; + } + + public String getItemCode() + { + return itemCode; + } + public void setItemName(String itemName) + { + this.itemName = itemName; + } + + public String getItemName() + { + return itemName; + } + public void setSpecification(String specification) + { + this.specification = specification; + } + + public String getSpecification() + { + return specification; + } + public void setUnitOfMeasure(String unitOfMeasure) + { + this.unitOfMeasure = unitOfMeasure; + } + + public String getUnitOfMeasure() + { + return unitOfMeasure; + } + public void setQuantityPackage(BigDecimal quantityPackage) + { + this.quantityPackage = quantityPackage; + } + + public BigDecimal getQuantityPackage() + { + return quantityPackage; + } + public void setWorkorderId(Long workorderId) + { + this.workorderId = workorderId; + } + + public Long getWorkorderId() + { + return workorderId; + } + public void setWorkorderCode(String workorderCode) + { + this.workorderCode = workorderCode; + } + + public String getWorkorderCode() + { + return workorderCode; + } + public void setBatchCode(String batchCode) + { + this.batchCode = batchCode; + } + + public String getBatchCode() + { + return batchCode; + } + public void setWarehouseId(Long warehouseId) + { + this.warehouseId = warehouseId; + } + + public Long getWarehouseId() + { + return warehouseId; + } + public void setWarehouseCode(String warehouseCode) + { + this.warehouseCode = warehouseCode; + } + + public String getWarehouseCode() + { + return warehouseCode; + } + public void setWarehouseName(String warehouseName) + { + this.warehouseName = warehouseName; + } + + public String getWarehouseName() + { + return warehouseName; + } + public void setLocationId(Long locationId) + { + this.locationId = locationId; + } + + public Long getLocationId() + { + return locationId; + } + public void setLocationCode(String locationCode) + { + this.locationCode = locationCode; + } + + public String getLocationCode() + { + return locationCode; + } + public void setLocationName(String locationName) + { + this.locationName = locationName; + } + + public String getLocationName() + { + return locationName; + } + public void setAreaId(Long areaId) + { + this.areaId = areaId; + } + + public Long getAreaId() + { + return areaId; + } + public void setAreaCode(String areaCode) + { + this.areaCode = areaCode; + } + + public String getAreaCode() + { + return areaCode; + } + public void setAreaName(String areaName) + { + this.areaName = areaName; + } + + public String getAreaName() + { + return areaName; + } + public void setExpireDate(Date expireDate) + { + this.expireDate = expireDate; + } + + public Date getExpireDate() + { + return expireDate; + } + public void setAttr1(String attr1) + { + this.attr1 = attr1; + } + + public String getAttr1() + { + return attr1; + } + public void setAttr2(String attr2) + { + this.attr2 = attr2; + } + + public String getAttr2() + { + return attr2; + } + public void setAttr3(Long attr3) + { + this.attr3 = attr3; + } + + public Long getAttr3() + { + return attr3; + } + public void setAttr4(Long attr4) + { + this.attr4 = attr4; + } + + public Long getAttr4() + { + return attr4; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("lineId", getLineId()) + .append("packageId", getPackageId()) + .append("materialStockId", getMaterialStockId()) + .append("itemId", getItemId()) + .append("itemCode", getItemCode()) + .append("itemName", getItemName()) + .append("specification", getSpecification()) + .append("unitOfMeasure", getUnitOfMeasure()) + .append("quantityPackage", getQuantityPackage()) + .append("workorderId", getWorkorderId()) + .append("workorderCode", getWorkorderCode()) + .append("batchCode", getBatchCode()) + .append("warehouseId", getWarehouseId()) + .append("warehouseCode", getWarehouseCode()) + .append("warehouseName", getWarehouseName()) + .append("locationId", getLocationId()) + .append("locationCode", getLocationCode()) + .append("locationName", getLocationName()) + .append("areaId", getAreaId()) + .append("areaCode", getAreaCode()) + .append("areaName", getAreaName()) + .append("expireDate", getExpireDate()) + .append("remark", getRemark()) + .append("attr1", getAttr1()) + .append("attr2", getAttr2()) + .append("attr3", getAttr3()) + .append("attr4", getAttr4()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} diff --git a/ktg-mes/src/main/java/com/ktg/mes/wm/mapper/WmPackageLineMapper.java b/ktg-mes/src/main/java/com/ktg/mes/wm/mapper/WmPackageLineMapper.java new file mode 100644 index 0000000..65e10b7 --- /dev/null +++ b/ktg-mes/src/main/java/com/ktg/mes/wm/mapper/WmPackageLineMapper.java @@ -0,0 +1,61 @@ +package com.ktg.mes.wm.mapper; + +import java.util.List; +import com.ktg.mes.wm.domain.WmPackageLine; + +/** + * 装箱明细Mapper接口 + * + * @author yinjinlu + * @date 2022-10-11 + */ +public interface WmPackageLineMapper +{ + /** + * 查询装箱明细 + * + * @param lineId 装箱明细主键 + * @return 装箱明细 + */ + public WmPackageLine selectWmPackageLineByLineId(Long lineId); + + /** + * 查询装箱明细列表 + * + * @param wmPackageLine 装箱明细 + * @return 装箱明细集合 + */ + public List selectWmPackageLineList(WmPackageLine wmPackageLine); + + /** + * 新增装箱明细 + * + * @param wmPackageLine 装箱明细 + * @return 结果 + */ + public int insertWmPackageLine(WmPackageLine wmPackageLine); + + /** + * 修改装箱明细 + * + * @param wmPackageLine 装箱明细 + * @return 结果 + */ + public int updateWmPackageLine(WmPackageLine wmPackageLine); + + /** + * 删除装箱明细 + * + * @param lineId 装箱明细主键 + * @return 结果 + */ + public int deleteWmPackageLineByLineId(Long lineId); + + /** + * 批量删除装箱明细 + * + * @param lineIds 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteWmPackageLineByLineIds(Long[] lineIds); +} diff --git a/ktg-mes/src/main/java/com/ktg/mes/wm/service/IWmPackageLineService.java b/ktg-mes/src/main/java/com/ktg/mes/wm/service/IWmPackageLineService.java new file mode 100644 index 0000000..5ab35d3 --- /dev/null +++ b/ktg-mes/src/main/java/com/ktg/mes/wm/service/IWmPackageLineService.java @@ -0,0 +1,61 @@ +package com.ktg.mes.wm.service; + +import java.util.List; +import com.ktg.mes.wm.domain.WmPackageLine; + +/** + * 装箱明细Service接口 + * + * @author yinjinlu + * @date 2022-10-11 + */ +public interface IWmPackageLineService +{ + /** + * 查询装箱明细 + * + * @param lineId 装箱明细主键 + * @return 装箱明细 + */ + public WmPackageLine selectWmPackageLineByLineId(Long lineId); + + /** + * 查询装箱明细列表 + * + * @param wmPackageLine 装箱明细 + * @return 装箱明细集合 + */ + public List selectWmPackageLineList(WmPackageLine wmPackageLine); + + /** + * 新增装箱明细 + * + * @param wmPackageLine 装箱明细 + * @return 结果 + */ + public int insertWmPackageLine(WmPackageLine wmPackageLine); + + /** + * 修改装箱明细 + * + * @param wmPackageLine 装箱明细 + * @return 结果 + */ + public int updateWmPackageLine(WmPackageLine wmPackageLine); + + /** + * 批量删除装箱明细 + * + * @param lineIds 需要删除的装箱明细主键集合 + * @return 结果 + */ + public int deleteWmPackageLineByLineIds(Long[] lineIds); + + /** + * 删除装箱明细信息 + * + * @param lineId 装箱明细主键 + * @return 结果 + */ + public int deleteWmPackageLineByLineId(Long lineId); +} diff --git a/ktg-mes/src/main/java/com/ktg/mes/wm/service/impl/WmPackageLineServiceImpl.java b/ktg-mes/src/main/java/com/ktg/mes/wm/service/impl/WmPackageLineServiceImpl.java new file mode 100644 index 0000000..4d8660f --- /dev/null +++ b/ktg-mes/src/main/java/com/ktg/mes/wm/service/impl/WmPackageLineServiceImpl.java @@ -0,0 +1,96 @@ +package com.ktg.mes.wm.service.impl; + +import java.util.List; +import com.ktg.common.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ktg.mes.wm.mapper.WmPackageLineMapper; +import com.ktg.mes.wm.domain.WmPackageLine; +import com.ktg.mes.wm.service.IWmPackageLineService; + +/** + * 装箱明细Service业务层处理 + * + * @author yinjinlu + * @date 2022-10-11 + */ +@Service +public class WmPackageLineServiceImpl implements IWmPackageLineService +{ + @Autowired + private WmPackageLineMapper wmPackageLineMapper; + + /** + * 查询装箱明细 + * + * @param lineId 装箱明细主键 + * @return 装箱明细 + */ + @Override + public WmPackageLine selectWmPackageLineByLineId(Long lineId) + { + return wmPackageLineMapper.selectWmPackageLineByLineId(lineId); + } + + /** + * 查询装箱明细列表 + * + * @param wmPackageLine 装箱明细 + * @return 装箱明细 + */ + @Override + public List selectWmPackageLineList(WmPackageLine wmPackageLine) + { + return wmPackageLineMapper.selectWmPackageLineList(wmPackageLine); + } + + /** + * 新增装箱明细 + * + * @param wmPackageLine 装箱明细 + * @return 结果 + */ + @Override + public int insertWmPackageLine(WmPackageLine wmPackageLine) + { + wmPackageLine.setCreateTime(DateUtils.getNowDate()); + return wmPackageLineMapper.insertWmPackageLine(wmPackageLine); + } + + /** + * 修改装箱明细 + * + * @param wmPackageLine 装箱明细 + * @return 结果 + */ + @Override + public int updateWmPackageLine(WmPackageLine wmPackageLine) + { + wmPackageLine.setUpdateTime(DateUtils.getNowDate()); + return wmPackageLineMapper.updateWmPackageLine(wmPackageLine); + } + + /** + * 批量删除装箱明细 + * + * @param lineIds 需要删除的装箱明细主键 + * @return 结果 + */ + @Override + public int deleteWmPackageLineByLineIds(Long[] lineIds) + { + return wmPackageLineMapper.deleteWmPackageLineByLineIds(lineIds); + } + + /** + * 删除装箱明细信息 + * + * @param lineId 装箱明细主键 + * @return 结果 + */ + @Override + public int deleteWmPackageLineByLineId(Long lineId) + { + return wmPackageLineMapper.deleteWmPackageLineByLineId(lineId); + } +} diff --git a/ktg-mes/src/main/resources/mapper/wm/WmPackageLineMapper.xml b/ktg-mes/src/main/resources/mapper/wm/WmPackageLineMapper.xml new file mode 100644 index 0000000..2618e0b --- /dev/null +++ b/ktg-mes/src/main/resources/mapper/wm/WmPackageLineMapper.xml @@ -0,0 +1,194 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select line_id, package_id, material_stock_id, item_id, item_code, item_name, specification, unit_of_measure, quantity_package, workorder_id, workorder_code, batch_code, warehouse_id, warehouse_code, warehouse_name, location_id, location_code, location_name, area_id, area_code, area_name, expire_date, remark, attr1, attr2, attr3, attr4, create_by, create_time, update_by, update_time from wm_package_line + + + + + + + + insert into wm_package_line + + package_id, + material_stock_id, + item_id, + item_code, + item_name, + specification, + unit_of_measure, + quantity_package, + workorder_id, + workorder_code, + batch_code, + warehouse_id, + warehouse_code, + warehouse_name, + location_id, + location_code, + location_name, + area_id, + area_code, + area_name, + expire_date, + remark, + attr1, + attr2, + attr3, + attr4, + create_by, + create_time, + update_by, + update_time, + + + #{packageId}, + #{materialStockId}, + #{itemId}, + #{itemCode}, + #{itemName}, + #{specification}, + #{unitOfMeasure}, + #{quantityPackage}, + #{workorderId}, + #{workorderCode}, + #{batchCode}, + #{warehouseId}, + #{warehouseCode}, + #{warehouseName}, + #{locationId}, + #{locationCode}, + #{locationName}, + #{areaId}, + #{areaCode}, + #{areaName}, + #{expireDate}, + #{remark}, + #{attr1}, + #{attr2}, + #{attr3}, + #{attr4}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update wm_package_line + + package_id = #{packageId}, + material_stock_id = #{materialStockId}, + item_id = #{itemId}, + item_code = #{itemCode}, + item_name = #{itemName}, + specification = #{specification}, + unit_of_measure = #{unitOfMeasure}, + quantity_package = #{quantityPackage}, + workorder_id = #{workorderId}, + workorder_code = #{workorderCode}, + batch_code = #{batchCode}, + warehouse_id = #{warehouseId}, + warehouse_code = #{warehouseCode}, + warehouse_name = #{warehouseName}, + location_id = #{locationId}, + location_code = #{locationCode}, + location_name = #{locationName}, + area_id = #{areaId}, + area_code = #{areaCode}, + area_name = #{areaName}, + expire_date = #{expireDate}, + remark = #{remark}, + attr1 = #{attr1}, + attr2 = #{attr2}, + attr3 = #{attr3}, + attr4 = #{attr4}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where line_id = #{lineId} + + + + delete from wm_package_line where line_id = #{lineId} + + + + delete from wm_package_line where line_id in + + #{lineId} + + + \ No newline at end of file