|  |  | 
 |  |  | package com.vincent.rsf.server.manager.controller; | 
 |  |  |  | 
 |  |  | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | 
 |  |  | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | 
 |  |  | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | 
 |  |  | import com.vincent.rsf.framework.common.Cools; | 
 |  |  | import com.vincent.rsf.framework.common.R; | 
 |  |  | import com.vincent.rsf.server.common.constant.Constants; | 
 |  |  | import com.vincent.rsf.server.common.utils.ExcelUtil; | 
 |  |  | import com.vincent.rsf.server.common.annotation.OperationLog; | 
 |  |  | import com.vincent.rsf.server.common.domain.BaseParam; | 
 |  |  | import com.vincent.rsf.server.common.domain.KeyValVo; | 
 |  |  | import com.vincent.rsf.server.common.domain.PageParam; | 
 |  |  | import com.vincent.rsf.server.common.utils.FieldsUtils; | 
 |  |  | import com.vincent.rsf.server.manager.controller.params.LocToTaskParams; | 
 |  |  | import com.vincent.rsf.server.manager.entity.LocItem; | 
 |  |  | import com.vincent.rsf.server.manager.entity.WarehouseAreasItem; | 
 |  |  | import com.vincent.rsf.server.manager.enums.TaskResouceType; | 
 |  |  | import com.vincent.rsf.server.manager.service.LocItemService; | 
 |  |  | import com.vincent.rsf.server.manager.service.LocService; | 
 |  |  | import com.vincent.rsf.server.system.controller.BaseController; | 
 |  |  | import com.vincent.rsf.server.manager.enums.LocStsType; | 
 |  |  | import io.swagger.annotations.ApiOperation; | 
 |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
 |  |  | import org.springframework.security.access.prepost.PreAuthorize; | 
 |  |  | import org.springframework.web.bind.annotation.*; | 
 |  |  | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private LocItemService locItemService; | 
 |  |  |     @Autowired | 
 |  |  |     private LocService locService; | 
 |  |  |  | 
 |  |  |     @PreAuthorize("hasAuthority('manager:locItem:list')") | 
 |  |  |     @PostMapping("/locItem/page") | 
 |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @PreAuthorize("hasAuthority('manager:locItem:list')") | 
 |  |  |     @PostMapping("/locItem/useO/page") | 
 |  |  |     public R locUseOPage(@RequestBody Map<String, Object> map) { | 
 |  |  |         BaseParam baseParam = buildParam(map, BaseParam.class); | 
 |  |  |         PageParam<LocItem, BaseParam> pageParam = new PageParam<>(baseParam, LocItem.class); | 
 |  |  |         QueryWrapper<LocItem> locItemQueryWrapper = pageParam.buildWrapper(true); | 
 |  |  |         String applySql = String.format( | 
 |  |  |                 "EXISTS (SELECT 1 FROM man_loc ml " + | 
 |  |  |                         "WHERE ml.use_status = '%s'" + | 
 |  |  |                         "AND ml.id = man_loc_item.loc_id " + | 
 |  |  |                         ")", | 
 |  |  |                 LocStsType.LOC_STS_TYPE_F.type | 
 |  |  |         ); | 
 |  |  |         locItemQueryWrapper.apply(applySql); | 
 |  |  |         /**拼接扩展字段*/ | 
 |  |  |         PageParam<LocItem, BaseParam> page = locItemService.page(pageParam, locItemQueryWrapper); | 
 |  |  |         List<LocItem> records = page.getRecords(); | 
 |  |  |         for (LocItem record : records) { | 
 |  |  |             if (!Objects.isNull(record.getFieldsIndex())) { | 
 |  |  |                 Map<String, String> fields = FieldsUtils.getFields(record.getFieldsIndex()); | 
 |  |  |                 record.setExtendFields(fields); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         page.setRecords(records); | 
 |  |  |  | 
 |  |  |         return R.ok().add(page); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 生成库存出库任务 | 
 |  |  |      * @param param | 
 |  |  |      * @return | 
 |  |  |      */ | 
 |  |  |     @PreAuthorize("hasAuthority('manager:locItem:list')") | 
 |  |  |     @ApiOperation("生成库存出库任务") | 
 |  |  |     @PostMapping("/locItem/generate/task") | 
 |  |  |     public R generateTask(@RequestBody LocToTaskParams param) { | 
 |  |  |         if (Objects.isNull(param)) { | 
 |  |  |             return R.error("参数不能为空!!"); | 
 |  |  |         } | 
 |  |  |         param.setType(Constants.TASK_TYPE_OUT_STOCK); | 
 |  |  |  | 
 |  |  |         try { | 
 |  |  |             locItemService.generateTask(TaskResouceType.TASK_RESOUCE_STOCK_TYPE.val, param, getLoginUserId()); | 
 |  |  |         } catch (Exception e) { | 
 |  |  |             throw new RuntimeException(e); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         return R.ok(); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 生成移库任务 | 
 |  |  |      * @param map | 
 |  |  |      * @return | 
 |  |  |      */ | 
 |  |  |     @PreAuthorize("hasAuthority('manager:locItem:list')") | 
 |  |  |     @ApiOperation("生成移库任务") | 
 |  |  |     @PostMapping("/locItem/move/task") | 
 |  |  |     public R genMoveTask(@RequestBody LocToTaskParams map) { | 
 |  |  |         if (Objects.isNull(map)) { | 
 |  |  |             return R.error("参数不能为空!!"); | 
 |  |  |         } | 
 |  |  |         return R.ok("任务生成成功").add(locItemService.genMoveTask(map, getLoginUserId())); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 生成盘点出库任务 | 
 |  |  |      * @param map | 
 |  |  |      * @return | 
 |  |  |      */ | 
 |  |  |     @PreAuthorize("hasAuthority('manager:locItem:list')") | 
 |  |  |     @ApiOperation("生成盘点出库任务") | 
 |  |  |     @PostMapping("/locItem/check/task") | 
 |  |  |     public R genStatisticalTask(@RequestBody LocToTaskParams map) { | 
 |  |  |         if (Objects.isNull(map)) { | 
 |  |  |             return R.error("参数不能为空!!"); | 
 |  |  |         } | 
 |  |  |         map.setType(Constants.TASK_TYPE_OUT_CHECK); | 
 |  |  |  | 
 |  |  |         try { | 
 |  |  |             locItemService.generateTask(TaskResouceType.TASK_RESOUCE_CHECK_TYPE.val, map, getLoginUserId()); | 
 |  |  |         } catch (Exception e) { | 
 |  |  |             throw new RuntimeException(e); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         return R.ok("任务生成成功"); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     @PreAuthorize("hasAuthority('manager:locItem:list')") | 
 |  |  |     @PostMapping("/locItem/list") | 
 |  |  |     public R list(@RequestBody Map<String, Object> map) { | 
 |  |  |         return R.ok().add(locItemService.list()); |