入库单新建、修改、删除

main
HUOJIN\92525 2025-03-28 18:03:21 +08:00
parent 4e619f5a3a
commit f24d64d601
15 changed files with 645 additions and 1 deletions

View File

@ -61,7 +61,7 @@ public class CustomerQueryService {
* id * id
* *
* @param customerIdList id * @param customerIdList id
* @return Map<Long, AreaEntity> * @return Map<Long, CustomerEntity>
*/ */
public Map<Long, CustomerEntity> queryCustomerList(List<Long> customerIdList) { public Map<Long, CustomerEntity> queryCustomerList(List<Long> customerIdList) {
if (CollectionUtils.isEmpty(customerIdList)) { if (CollectionUtils.isEmpty(customerIdList)) {

View File

@ -2,6 +2,7 @@ package net.lab1024.sa.admin.module.business.base.item.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.google.common.collect.Maps;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import net.lab1024.sa.admin.module.business.base.item.dao.ItemDao; import net.lab1024.sa.admin.module.business.base.item.dao.ItemDao;
import net.lab1024.sa.admin.module.business.base.item.domain.entity.ItemEntity; import net.lab1024.sa.admin.module.business.base.item.domain.entity.ItemEntity;
@ -9,6 +10,7 @@ import net.lab1024.sa.admin.module.business.base.item.domain.form.ItemQueryForm;
import net.lab1024.sa.admin.module.business.base.item.domain.form.ItemSelect; import net.lab1024.sa.admin.module.business.base.item.domain.form.ItemSelect;
import net.lab1024.sa.admin.module.business.base.item.domain.vo.ItemVO; import net.lab1024.sa.admin.module.business.base.item.domain.vo.ItemVO;
import net.lab1024.sa.admin.module.business.base.item.domain.vo.ItemsExcelVO; import net.lab1024.sa.admin.module.business.base.item.domain.vo.ItemsExcelVO;
import net.lab1024.sa.admin.module.business.base.item.manager.ItemManager;
import net.lab1024.sa.base.common.domain.PageResult; import net.lab1024.sa.base.common.domain.PageResult;
import net.lab1024.sa.base.common.util.SmartPageUtil; import net.lab1024.sa.base.common.util.SmartPageUtil;
import net.lab1024.sa.base.module.support.dict.constant.DictConst; import net.lab1024.sa.base.module.support.dict.constant.DictConst;
@ -23,9 +25,13 @@ import java.util.stream.Collectors;
@Service @Service
public class ItemQueryService { public class ItemQueryService {
@Resource @Resource
private ItemDao itemDao; private ItemDao itemDao;
@Resource
private ItemManager itemManager;
@Resource @Resource
private DictCacheService dictCacheService; private DictCacheService dictCacheService;
@ -56,6 +62,27 @@ public class ItemQueryService {
return itemDao.selectList(queryWrapper); return itemDao.selectList(queryWrapper);
} }
/**
* id
*
* @param itemIdList id
* @return Map<Long, AreaEntity>
*/
public Map<Long, ItemEntity> queryItemList(List<Long> itemIdList) {
if (CollectionUtils.isEmpty(itemIdList)) {
return Collections.emptyMap();
}
itemIdList = itemIdList.stream().distinct().collect(Collectors.toList());
Map<Long, ItemEntity> itemMap = Maps.newHashMap();
for (Long itemId : itemIdList) {
ItemEntity item = itemManager.queryItem(itemId);
if (item != null) {
itemMap.put(itemId, item);
}
}
return itemMap;
}
/** /**
* *
* *

View File

@ -0,0 +1,76 @@
package net.lab1024.sa.admin.module.business.receive.asnDetail.controller;
import net.lab1024.sa.admin.module.business.receive.asnDetail.domain.form.AsnDetailAddForm;
import net.lab1024.sa.admin.module.business.receive.asnDetail.domain.form.AsnDetailQueryForm;
import net.lab1024.sa.admin.module.business.receive.asnDetail.domain.form.AsnDetailUpdateForm;
import net.lab1024.sa.admin.module.business.receive.asnDetail.domain.vo.AsnDetailVO;
import net.lab1024.sa.admin.module.business.receive.asnDetail.service.AsnDetailQueryService;
import net.lab1024.sa.admin.module.business.receive.asnDetail.service.AsnDetailService;
import net.lab1024.sa.base.common.domain.RequestUser;
import net.lab1024.sa.base.common.domain.ValidateList;
import net.lab1024.sa.base.common.util.SmartRequestUtil;
import org.springframework.web.bind.annotation.*;
import net.lab1024.sa.base.common.domain.ResponseDTO;
import net.lab1024.sa.base.common.domain.PageResult;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import cn.dev33.satoken.annotation.SaCheckPermission;
import jakarta.annotation.Resource;
import jakarta.validation.Valid;
/**
* Controller
*
* @Author
* @Date 2025-03-26 15:16:28
* @Copyright
*/
@RestController
@Tag(name = "入库明细")
public class AsnDetailController {
@Resource
private AsnDetailService asnDetailService;
@Resource
private AsnDetailQueryService asnDetailQueryService;
@Operation(summary = "分页查询 @author 霍锦")
@PostMapping("/asnDetail/queryPage")
@SaCheckPermission("asnDetail:query")
public ResponseDTO<PageResult<AsnDetailVO>> queryPage(@RequestBody @Valid AsnDetailQueryForm queryForm) {
return ResponseDTO.ok(asnDetailQueryService.queryPage(queryForm));
}
@Operation(summary = "添加 @author 霍锦")
@PostMapping("/asnDetail/add")
@SaCheckPermission("asnDetail:add")
public ResponseDTO<String> add(@RequestBody @Valid AsnDetailAddForm addForm) {
RequestUser requestUser = SmartRequestUtil.getRequestUser();
addForm.setCreateUserId(requestUser.getUserId());
addForm.setCreateUserName(requestUser.getUserName());
return asnDetailService.add(addForm);
}
@Operation(summary = "更新 @author 霍锦")
@PostMapping("/asnDetail/update")
@SaCheckPermission("asnDetail:update")
public ResponseDTO<String> update(@RequestBody @Valid AsnDetailUpdateForm updateForm) {
return asnDetailService.update(updateForm);
}
@Operation(summary = "批量删除 @author 霍锦")
@PostMapping("/asnDetail/batchDelete")
@SaCheckPermission("asnDetail:batchDelete")
public ResponseDTO<String> batchDelete(@RequestBody ValidateList<Long> idList) {
return asnDetailService.batchDelete(idList);
}
@Operation(summary = "单个删除 @author 霍锦")
@GetMapping("/asnDetail/delete")
@SaCheckPermission("asnDetail:delete")
public ResponseDTO<String> delete(@RequestParam Long asnDetailId) {
return asnDetailService.delete(asnDetailId);
}
}

View File

@ -0,0 +1,34 @@
package net.lab1024.sa.admin.module.business.receive.asnDetail.dao;
import java.util.List;
import net.lab1024.sa.admin.module.business.receive.asnDetail.domain.entity.AsnDetailEntity;
import net.lab1024.sa.admin.module.business.receive.asnDetail.domain.form.AsnDetailQueryForm;
import net.lab1024.sa.admin.module.business.receive.asnDetail.domain.vo.AsnDetailVO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;
/**
* Dao
*
* @Author
* @Date 2025-03-26 15:16:28
* @Copyright
*/
@Mapper
@Component
public interface AsnDetailDao extends BaseMapper<AsnDetailEntity> {
/**
*
*
* @param page
* @param queryForm
* @return
*/
List<AsnDetailVO> queryPage(Page page, @Param("queryForm") AsnDetailQueryForm queryForm);
}

View File

@ -0,0 +1,72 @@
package net.lab1024.sa.admin.module.business.receive.asnDetail.domain.entity;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import lombok.Data;
/**
*
*
* @Author
* @Date 2025-03-26 15:16:28
* @Copyright
*/
@Data
@TableName("t_asn_detail")
public class AsnDetailEntity {
/**
* id
*/
@TableId(type = IdType.AUTO)
private Long asnDetailId;
/**
* id
*/
private Long asnId;
/**
* id
*/
private Long itemId;
/**
*
*/
private BigDecimal orderQuantity;
/**
*
*/
private BigDecimal receivedQuantity;
/**
*
*/
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
/**
* ID
*/
private Long createUserId;
/**
*
*/
private String createUserName;
/**
*
*/
@TableField(fill = FieldFill.INSERT_UPDATE)
private LocalDateTime updateTime;
}

View File

@ -0,0 +1,40 @@
package net.lab1024.sa.admin.module.business.receive.asnDetail.domain.form;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.DecimalMin;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import lombok.Data;
/**
*
*
* @Author
* @Date 2025-03-26 15:16:28
* @Copyright
*/
@Data
public class AsnDetailAddForm {
@Schema(description = "入库单", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "入库单 不能为空")
private Long asnId;
@Schema(description = "物料", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "物料 不能为空")
private Long itemId;
@Schema(description = "订单数量")
@NotNull(message = "订单数量不能为空")
@DecimalMin(value = "1", message = "订单数量最低1")
private BigDecimal orderQuantity;
@Schema(hidden = true)
private Long createUserId;
@Schema(hidden = true)
private String createUserName;
}

View File

@ -0,0 +1,26 @@
package net.lab1024.sa.admin.module.business.receive.asnDetail.domain.form;
import net.lab1024.sa.base.common.domain.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
*
*
* @Author
* @Date 2025-03-26 15:16:28
* @Copyright
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class AsnDetailQueryForm extends PageParam {
@Schema(description = "入库单")
private Long asnId;
@Schema(description = "物料")
private Long itemId;
}

View File

@ -0,0 +1,22 @@
package net.lab1024.sa.admin.module.business.receive.asnDetail.domain.form;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
/**
*
*
* @Author
* @Date 2025-03-26 15:16:28
* @Copyright
*/
@Data
public class AsnDetailUpdateForm extends AsnDetailAddForm{
@Schema(description = "入库明细id", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "入库明细id 不能为空")
private Long asnDetailId;
}

View File

@ -0,0 +1,46 @@
package net.lab1024.sa.admin.module.business.receive.asnDetail.domain.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import lombok.Data;
/**
* VO
*
* @Author
* @Date 2025-03-26 15:16:28
* @Copyright
*/
@Data
public class AsnDetailVO {
@Schema(description = "入库明细id")
private Long asnDetailId;
@Schema(description = "入库单id")
private Long asnId;
@Schema(description = "物料id")
private Long itemId;
@Schema(description = "物料编码")
private String itemCode;
@Schema(description = "物料名称")
private String itemName;
@Schema(description = "订单数量")
private BigDecimal orderQuantity;
@Schema(description = "收货数量")
private BigDecimal receivedQuantity;
@Schema(description = "创建时间")
private LocalDateTime createTime;
}

View File

@ -0,0 +1,20 @@
package net.lab1024.sa.admin.module.business.receive.asnDetail.manager;
import net.lab1024.sa.admin.module.business.receive.asnDetail.domain.entity.AsnDetailEntity;
import net.lab1024.sa.admin.module.business.receive.asnDetail.dao.AsnDetailDao;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
/**
* Manager
*
* @Author
* @Date 2025-03-26 15:16:28
* @Copyright
*/
@Service
public class AsnDetailManager extends ServiceImpl<AsnDetailDao, AsnDetailEntity> {
}

View File

@ -0,0 +1,66 @@
package net.lab1024.sa.admin.module.business.receive.asnDetail.service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import jakarta.annotation.Resource;
import net.lab1024.sa.admin.module.business.base.address.domain.entity.AddressEntity;
import net.lab1024.sa.admin.module.business.base.customer.domain.entity.CustomerEntity;
import net.lab1024.sa.admin.module.business.base.item.domain.entity.ItemEntity;
import net.lab1024.sa.admin.module.business.base.item.service.ItemQueryService;
import net.lab1024.sa.admin.module.business.receive.asn.domain.vo.AsnVO;
import net.lab1024.sa.admin.module.business.receive.asnDetail.dao.AsnDetailDao;
import net.lab1024.sa.admin.module.business.receive.asnDetail.domain.entity.AsnDetailEntity;
import net.lab1024.sa.admin.module.business.receive.asnDetail.domain.form.AsnDetailQueryForm;
import net.lab1024.sa.admin.module.business.receive.asnDetail.domain.vo.AsnDetailVO;
import net.lab1024.sa.base.common.domain.PageResult;
import net.lab1024.sa.base.common.util.SmartPageUtil;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Service
public class AsnDetailQueryService {
@Resource
private AsnDetailDao asnDetailDao;
@Resource
private ItemQueryService itemQueryService;
/**
*
*
* @param queryForm
* @return PageResult<AsnDetailVO>
*/
public PageResult<AsnDetailVO> queryPage(AsnDetailQueryForm queryForm) {
Page<?> page = SmartPageUtil.convert2PageQuery(queryForm);
List<AsnDetailVO> list = asnDetailDao.queryPage(page, queryForm);
// 查询物料名称
List<Long> itemIdList = list.stream().map(AsnDetailVO::getItemId).distinct().collect(Collectors.toList());
Map<Long, ItemEntity> itemMap = itemQueryService.queryItemList(itemIdList);
list.forEach(asnDetailVO -> {
ItemEntity item = itemMap.get(asnDetailVO.getItemId());
if (item != null) {
asnDetailVO.setItemCode(item.getItemCode());
asnDetailVO.setItemName(item.getItemName());
}
});
return SmartPageUtil.convert2PageResult(page, list);
}
/**
* id
*
* @param asnId id
* @return List<AsnDetailEntity>
*/
public List<AsnDetailEntity> queryByAsnId(Long asnId) {
LambdaQueryWrapper<AsnDetailEntity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(AsnDetailEntity::getAsnId, asnId);
return asnDetailDao.selectList(queryWrapper);
}
}

View File

@ -0,0 +1,157 @@
package net.lab1024.sa.admin.module.business.receive.asnDetail.service;
import java.math.BigDecimal;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import net.lab1024.sa.admin.module.business.receive.asn.constant.AsnOrderStatusEnum;
import net.lab1024.sa.admin.module.business.receive.asn.dao.AsnDao;
import net.lab1024.sa.admin.module.business.receive.asn.domain.entity.AsnEntity;
import net.lab1024.sa.admin.module.business.receive.asnDetail.dao.AsnDetailDao;
import net.lab1024.sa.admin.module.business.receive.asnDetail.domain.entity.AsnDetailEntity;
import net.lab1024.sa.admin.module.business.receive.asnDetail.domain.form.AsnDetailAddForm;
import net.lab1024.sa.admin.module.business.receive.asnDetail.domain.form.AsnDetailUpdateForm;
import net.lab1024.sa.admin.module.business.receive.asnDetail.manager.AsnDetailManager;
import net.lab1024.sa.base.common.code.UserErrorCode;
import net.lab1024.sa.base.common.util.SmartBeanUtil;
import net.lab1024.sa.base.common.domain.ResponseDTO;
import net.lab1024.sa.base.common.util.SmartBigDecimalUtil;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Service;
import jakarta.annotation.Resource;
import org.springframework.transaction.annotation.Transactional;
/**
* Service
*
* @author
* @since 2025-03-26 15:16:28
* copyright
*/
@Service
public class AsnDetailService {
@Resource
private AsnDao asnDao;
@Resource
private AsnDetailDao asnDetailDao;
@Resource
private AsnDetailManager asnDetailManager;
@Resource
private AsnDetailQueryService asnDetailQueryService;
/**
*
*
* @param addForm
* @return ResponseDTO<String>
*/
@Transactional(rollbackFor = Exception.class)
public ResponseDTO<String> add(AsnDetailAddForm addForm) {
AsnDetailEntity asnDetailEntity = SmartBeanUtil.copy(addForm, AsnDetailEntity.class);
asnDetailDao.insert(asnDetailEntity);
//刷新出库单
refreshAsn(addForm.getAsnId());
return ResponseDTO.ok();
}
/**
*
*
* @param updateForm
* @return ResponseDTO<String>
*/
@Transactional(rollbackFor = Exception.class)
public ResponseDTO<String> update(AsnDetailUpdateForm updateForm) {
AsnDetailEntity asnDetailEntity = SmartBeanUtil.copy(updateForm, AsnDetailEntity.class);
asnDetailDao.updateById(asnDetailEntity);
//刷新出库单
refreshAsn(updateForm.getAsnId());
return ResponseDTO.ok();
}
/**
*
*
* @param idList id
* @return ResponseDTO<String>
*/
public ResponseDTO<String> batchDelete(List<Long> idList) {
if (CollectionUtils.isEmpty(idList)) {
return ResponseDTO.userErrorParam(UserErrorCode.PARAM_ERROR.getMsg());
}
Set<Long> asnIds = new HashSet<>();
for (Long id : idList) {
AsnDetailEntity asnDetail = asnDetailDao.selectById(id);
asnIds.add(asnDetail.getAsnId());
}
asnDetailManager.removeBatchByIds(idList);
//刷新出库单
if (CollectionUtils.isNotEmpty(asnIds)) {
for (Long asnId : asnIds) {
refreshAsn(asnId);
}
}
return ResponseDTO.ok();
}
/**
*
*
* @param asnDetailId id
* @return ResponseDTO<String>
*/
public ResponseDTO<String> delete(Long asnDetailId) {
if (null == asnDetailId) {
return ResponseDTO.userErrorParam(UserErrorCode.PARAM_ERROR.getMsg());
}
AsnDetailEntity asnDetail = asnDetailDao.selectById(asnDetailId);
Long asnId = asnDetail.getAsnId();
asnDetailDao.deleteById(asnDetailId);
//刷新出库单
refreshAsn(asnId);
return ResponseDTO.ok();
}
public void refreshAsn(Long asnId) {
//入库单
AsnEntity asn = asnDao.selectById(asnId);
//获取订单明细
List<AsnDetailEntity> asnDetails = asnDetailQueryService.queryByAsnId(asnId);
if (CollectionUtils.isEmpty(asnDetails)) {
return;
}
//订单数量
BigDecimal orderQuantity = asnDetails.stream().map(AsnDetailEntity::getOrderQuantity).reduce(BigDecimal.ZERO, BigDecimal::add);
//收货数量
BigDecimal receivedQuantity = asnDetails.stream().map(AsnDetailEntity::getReceivedQuantity).reduce(BigDecimal.ZERO, BigDecimal::add);
//当前状态
String status = asn.getStatus();
if (orderQuantity.compareTo(BigDecimal.ZERO) >= 0 && receivedQuantity.compareTo(BigDecimal.ZERO) == 0) {
status = AsnOrderStatusEnum.CREATED.getValue();
} else if (SmartBigDecimalUtil.subtract(orderQuantity, receivedQuantity, 2).compareTo(BigDecimal.ZERO) > 0) {
status = AsnOrderStatusEnum.IN_PROGRESS.getValue();
} else if (SmartBigDecimalUtil.subtract(orderQuantity, receivedQuantity, 2).compareTo(BigDecimal.ZERO) == 0 && receivedQuantity.compareTo(BigDecimal.ZERO) > 0) {
status = AsnOrderStatusEnum.COMPLETED.getValue();
}
asn.setOrderQuantity(orderQuantity);
asn.setReceivedQuantity(receivedQuantity);
asn.setStatus(status);
asnDao.updateById(asn);
}
}

View File

@ -0,0 +1,22 @@
# 默认是按前端工程文件的 /views/business 文件夹的路径作为前端组件路径,如果你没把生成的 .vue 前端代码放在 /views/business 下,
# 那就根据自己实际情况修改下面 SQL 的 path,component 字段值,避免执行 SQL 后菜单无法访问。
# 如果你一切都是按照默认,那么下面的 SQL 基本不用改
INSERT INTO t_menu ( menu_name, menu_type, parent_id, path, component, frame_flag, cache_flag, visible_flag, disabled_flag, perms_type, create_user_id )
VALUES ( '入库明细', 2, 0, '/asn-detail/list', '/business/asn-detail/asn-detail-list.vue', false, false, true, false, 1, 1 );
# 按菜单名称查询该菜单的 menu_id 作为按钮权限的 父菜单ID 与 功能点关联菜单ID
SET @parent_id = NULL;
SELECT t_menu.menu_id INTO @parent_id FROM t_menu WHERE t_menu.menu_name = '入库明细';
INSERT INTO t_menu ( menu_name, menu_type, parent_id, frame_flag, cache_flag, visible_flag, disabled_flag, api_perms, perms_type, context_menu_id, create_user_id )
VALUES ( '查询', 3, @parent_id, false, false, true, false, 'asnDetail:query', 1, @parent_id, 1 );
INSERT INTO t_menu ( menu_name, menu_type, parent_id, frame_flag, cache_flag, visible_flag, disabled_flag, api_perms, perms_type, context_menu_id, create_user_id )
VALUES ( '添加', 3, @parent_id, false, false, true, false, 'asnDetail:add', 1, @parent_id, 1 );
INSERT INTO t_menu ( menu_name, menu_type, parent_id, frame_flag, cache_flag, visible_flag, disabled_flag, api_perms, perms_type, context_menu_id, create_user_id )
VALUES ( '更新', 3, @parent_id, false, false, true, false, 'asnDetail:update', 1, @parent_id, 1 );
INSERT INTO t_menu ( menu_name, menu_type, parent_id, frame_flag, cache_flag, visible_flag, disabled_flag, api_perms, perms_type, context_menu_id, create_user_id )
VALUES ( '删除', 3, @parent_id, false, false, true, false, 'asnDetail:delete', 1, @parent_id, 1 );

View File

@ -0,0 +1,36 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="net.lab1024.sa.admin.module.business.receive.asnDetail.dao.AsnDetailDao">
<!-- 查询结果列 -->
<sql id="base_columns">
t_asn_detail.asn_detail_id,
t_asn_detail.asn_id,
t_asn_detail.item_id,
t_asn_detail.order_quantity,
t_asn_detail.received_quantity,
t_asn_detail.create_time,
t_asn_detail.create_user_id,
t_asn_detail.create_user_name,
t_asn_detail.update_time
</sql>
<!-- 分页查询 -->
<select id="queryPage" resultType="net.lab1024.sa.admin.module.business.receive.asnDetail.domain.vo.AsnDetailVO">
SELECT
<include refid="base_columns"/>
FROM t_asn_detail
<where>
<!--入库单-->
<if test="queryForm.asnId != null ">
AND t_asn_detail.asn_id=#{queryForm.asnId}
</if>
<!--物料-->
<if test="queryForm.itemId != null ">
AND t_asn_detail.item_id=#{queryForm.itemId}
</if>
</where>
</select>
</mapper>