@@ -5,11 +5,16 @@ import java.util.List;
import java.util.Map ;
import java.util.Arrays ;
import java.util.stream.Collectors ;
import java.util.HashMap ;
import com.alibaba.excel.EasyExcel ;
import com.alibaba.excel.ExcelWriter ;
import com.alibaba.excel.write.metadata.WriteSheet ;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper ;
import com.klp.domain.vo.* ;
import com.klp.domain.WmsCoilPendingAction ;
import com.klp.mapper.WmsCoilPendingActionMapper ;
import com.klp.service.IWmsCoilPendingActionService ;
import lombok.RequiredArgsConstructor ;
import javax.servlet.http.HttpServletResponse ;
import javax.validation.constraints.* ;
@@ -43,6 +48,8 @@ import com.klp.common.core.page.TableDataInfo;
public class WmsMaterialCoilController extends BaseController {
private final IWmsMaterialCoilService iWmsMaterialCoilService ;
private final IWmsCoilPendingActionService coilPendingActionService ;
private final WmsCoilPendingActionMapper coilPendingActionMapper ;
/**
* 查询钢卷物料表列表
@@ -101,9 +108,49 @@ public class WmsMaterialCoilController extends BaseController {
* 查询钢卷物料表列表( POST请求, 支持大量coilIds查询)
* 功能与GET /list相同, 但使用POST请求体传递参数, 避免URL长度限制
* 特别适合需要查询大量coilIds的场景
* 如果coilIds为空且actionIds不为空, 则根据actionIds查询wms_coil_pending_action表获取coilIds和完成时间
*/
@PostMapping ( " /listByPost " )
public TableDataInfo < WmsMaterialCoilVo > listByPost ( @RequestBody WmsMaterialCoilBo bo , PageQuery pageQuery ) {
if ( ( bo . getCoilIds ( ) = = null | | bo . getCoilIds ( ) . isEmpty ( ) )
& & bo . getActionIds ( ) ! = null & & ! bo . getActionIds ( ) . isEmpty ( ) ) {
String [ ] actionIdArr = bo . getActionIds ( ) . split ( " , " ) ;
java . util . List < Long > actionIdList = Arrays . stream ( actionIdArr )
. map ( String : : trim )
. filter ( s - > ! s . isEmpty ( ) )
. map ( Long : : parseLong )
. collect ( Collectors . toList ( ) ) ;
LambdaQueryWrapper < WmsCoilPendingAction > queryWrapper = new LambdaQueryWrapper < > ( ) ;
queryWrapper . in ( WmsCoilPendingAction : : getActionId , actionIdList ) ;
java . util . List < com . klp . domain . WmsCoilPendingAction > actions =
coilPendingActionMapper . selectList ( queryWrapper ) ;
if ( actions ! = null & & ! actions . isEmpty ( ) ) {
Map < Long , java . util . Date > coilIdCompleteTimeMap = new HashMap < > ( ) ;
List < Long > coilIdsList = actions . stream ( )
. map ( com . klp . domain . WmsCoilPendingAction : : getCoilId )
. collect ( Collectors . toList ( ) ) ;
for ( com . klp . domain . WmsCoilPendingAction action : actions ) {
coilIdCompleteTimeMap . put ( action . getCoilId ( ) , action . getCompleteTime ( ) ) ;
}
bo . setCoilIds ( coilIdsList . stream ( )
. map ( String : : valueOf )
. collect ( Collectors . joining ( " , " ) ) ) ;
TableDataInfo < WmsMaterialCoilVo > result = iWmsMaterialCoilService . queryPageList ( bo , pageQuery ) ;
for ( WmsMaterialCoilVo vo : result . getRows ( ) ) {
if ( coilIdCompleteTimeMap . containsKey ( vo . getCoilId ( ) ) ) {
vo . setActionCompleteTime ( coilIdCompleteTimeMap . get ( vo . getCoilId ( ) ) ) ;
}
}
return result ;
}
}
return iWmsMaterialCoilService . queryPageList ( bo , pageQuery ) ;
}