|  |  | 
 |  |  | import com.alibaba.fastjson.JSONArray; | 
 |  |  | import com.alibaba.fastjson.JSONObject; | 
 |  |  | 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.domain.KeyValVo; | 
 |  |  | import com.vincent.rsf.server.common.domain.PageParam; | 
 |  |  | import com.vincent.rsf.server.common.utils.ExcelUtil; | 
 |  |  | import com.vincent.rsf.server.manager.entity.AsnOrderItem; | 
 |  |  | import com.vincent.rsf.server.manager.entity.WkOrderItem; | 
 |  |  | import com.vincent.rsf.server.manager.entity.Companys; | 
 |  |  | import com.vincent.rsf.server.manager.entity.excel.AsnOrderTemplate; | 
 |  |  | import com.vincent.rsf.server.manager.entity.excel.OutStockTemplate; | 
 |  |  | import com.vincent.rsf.server.manager.enums.CompanysType; | 
 |  |  | import com.vincent.rsf.server.manager.service.AsnOrderItemService; | 
 |  |  | import com.vincent.rsf.server.manager.service.CompanysService; | 
 |  |  | import com.vincent.rsf.server.manager.service.OutStockItemService; | 
 |  |  | import com.vincent.rsf.server.system.controller.BaseController; | 
 |  |  | 
 |  |  | public class OutStockItemController extends BaseController { | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private OutStockItemService asnOrderItemService; | 
 |  |  |     private OutStockItemService outStockItemService; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private CompanysService companysService; | 
 |  |  |  | 
 |  |  | //    @PreAuthorize("hasAuthority('manager:outStockItem:list')") | 
 |  |  | //    @ApiOperation("分页获取列表") | 
 |  |  | //    @PostMapping("/outStockItem/page") | 
 |  |  | //    public R page(@RequestBody Map<String, Object> map) { | 
 |  |  | //        BaseParam baseParam = buildParam(map, BaseParam.class); | 
 |  |  | //        PageParam<AsnOrderItem, BaseParam> pageParam = new PageParam<>(baseParam, AsnOrderItem.class); | 
 |  |  | //        return R.ok().add(asnOrderItemService.listByAsnId(pageParam, pageParam.buildWrapper(true))); | 
 |  |  | //    } | 
 |  |  |     @PreAuthorize("hasAuthority('manager:outStockItem:list')") | 
 |  |  |     @ApiOperation("分页获取列表") | 
 |  |  |     @PostMapping("/outStockItem/page") | 
 |  |  |     public R page(@RequestBody Map<String, Object> map) { | 
 |  |  |         BaseParam baseParam = buildParam(map, BaseParam.class); | 
 |  |  |         PageParam<WkOrderItem, BaseParam> pageParam = new PageParam<>(baseParam, WkOrderItem.class); | 
 |  |  |         QueryWrapper<WkOrderItem> queryWrapper = pageParam.buildWrapper(true); | 
 |  |  |         return R.ok().add(outStockItemService.listByAsnId(pageParam, queryWrapper)); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @PreAuthorize("hasAuthority('manager:outStockItem:list')") | 
 |  |  |     @PostMapping("/outStockItem/list") | 
 |  |  |     public R list(@RequestBody Map<String, Object> map) { | 
 |  |  |         return R.ok().add(asnOrderItemService.list()); | 
 |  |  |         return R.ok().add(outStockItemService.list()); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @PreAuthorize("hasAuthority('manager:outStockItem:list')") | 
 |  |  |     @PostMapping({"/outStockItem/many/{ids}", "/outStockItems/many/{ids}"}) | 
 |  |  |     public R many(@PathVariable Long[] ids) { | 
 |  |  |         return R.ok().add(asnOrderItemService.listByIds(Arrays.asList(ids))); | 
 |  |  |         return R.ok().add(outStockItemService.listByIds(Arrays.asList(ids))); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @PreAuthorize("hasAuthority('manager:outStockItem:list')") | 
 |  |  |     @GetMapping("/outStockItem/{id}") | 
 |  |  |     public R get(@PathVariable("id") Long id) { | 
 |  |  |         return R.ok().add(asnOrderItemService.getById(id)); | 
 |  |  |         return R.ok().add(outStockItemService.getById(id)); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @PreAuthorize("hasAuthority('manager:outStockItem:save')") | 
 |  |  | 
 |  |  |         params.put("createBy", getLoginUserId()); | 
 |  |  |         params.put("updateBy", getLoginUserId()); | 
 |  |  |  | 
 |  |  |         if (!asnOrderItemService.fieldsSave(params)) { | 
 |  |  |         if (!outStockItemService.fieldsSave(params)) { | 
 |  |  |             return R.error("Save Fail"); | 
 |  |  |         } | 
 |  |  |         return R.ok("Save Success"); | 
 |  |  | 
 |  |  |     @PreAuthorize("hasAuthority('manager:outStockItem:update')") | 
 |  |  |     @OperationLog("Update 出库单明细") | 
 |  |  |     @PostMapping("/outStockItem/update") | 
 |  |  |     public R update(@RequestBody AsnOrderItem asnOrderItem) { | 
 |  |  |         asnOrderItem.setUpdateBy(getLoginUserId()); | 
 |  |  |         asnOrderItem.setUpdateTime(new Date()); | 
 |  |  |         if (!Objects.isNull(asnOrderItem.getSplrName()) && StringUtils.isNotBlank(asnOrderItem.getSplrName())) { | 
 |  |  |     public R update(@RequestBody WkOrderItem wkOrderItem) { | 
 |  |  |         wkOrderItem.setUpdateBy(getLoginUserId()); | 
 |  |  |         wkOrderItem.setUpdateTime(new Date()); | 
 |  |  |         if (!Objects.isNull(wkOrderItem.getSplrName()) && StringUtils.isNotBlank(wkOrderItem.getSplrName())) { | 
 |  |  |             Companys companys = companysService.getOne(new LambdaQueryWrapper<Companys>() | 
 |  |  |                             .eq(Companys::getType, CompanysType.COMPANYS_TYPE_SUPPLIER.val) | 
 |  |  |                     .eq(Companys::getId, asnOrderItem.getSplrName())); | 
 |  |  |                     .eq(Companys::getId, wkOrderItem.getSplrName())); | 
 |  |  |             if (!Objects.isNull(companys)) { | 
 |  |  |                 asnOrderItem.setSplrCode(companys.getCode()).setSplrName(companys.getName()); | 
 |  |  |                 wkOrderItem.setSplrCode(companys.getCode()).setSplrName(companys.getName()); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         if (!asnOrderItemService.updateById(asnOrderItem)) { | 
 |  |  |         if (!outStockItemService.updateById(wkOrderItem)) { | 
 |  |  |             return R.error("Update Fail"); | 
 |  |  |         } | 
 |  |  |         return R.ok("Update Success").add(asnOrderItem); | 
 |  |  |         return R.ok("Update Success").add(wkOrderItem); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     @PreAuthorize("hasAuthority('manager:outStockItem:remove')") | 
 |  |  |     @OperationLog("Delete 出库单明细") | 
 |  |  |     @PostMapping("/outStockItem/remove/{ids}") | 
 |  |  |     public R remove(@PathVariable Long[] ids) { | 
 |  |  |         if (!asnOrderItemService.removeByIds(Arrays.asList(ids))) { | 
 |  |  |         if (!outStockItemService.removeByIds(Arrays.asList(ids))) { | 
 |  |  |             return R.error("Delete Fail"); | 
 |  |  |         } | 
 |  |  |         return R.ok("Delete Success").add(ids); | 
 |  |  | 
 |  |  |     @PostMapping("/outStockItem/query") | 
 |  |  |     public R query(@RequestParam(required = false) String condition) { | 
 |  |  |         List<KeyValVo> vos = new ArrayList<>(); | 
 |  |  |         LambdaQueryWrapper<AsnOrderItem> wrapper = new LambdaQueryWrapper<>(); | 
 |  |  |         LambdaQueryWrapper<WkOrderItem> wrapper = new LambdaQueryWrapper<>(); | 
 |  |  |         if (!Cools.isEmpty(condition)) { | 
 |  |  |             wrapper.like(AsnOrderItem::getId, condition); | 
 |  |  |             wrapper.like(WkOrderItem::getId, condition); | 
 |  |  |         } | 
 |  |  |         asnOrderItemService.page(new Page<>(1, 30), wrapper).getRecords().forEach( | 
 |  |  |         outStockItemService.page(new Page<>(1, 30), wrapper).getRecords().forEach( | 
 |  |  |                 item -> vos.add(new KeyValVo(item.getId(), item.getId())) | 
 |  |  |         ); | 
 |  |  |         return R.ok().add(vos); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     @PreAuthorize("hasAuthority('manager:outStockItem:list')") | 
 |  |  |     @PostMapping("/outStockItem/export") | 
 |  |  |     @ApiOperation("导出出库单明细") | 
 |  |  |     public void export(@RequestBody Map<String, Object> map, HttpServletResponse response) throws Exception { | 
 |  |  |         List<AsnOrderItem> orderItems = new ArrayList<>(); | 
 |  |  |         List<WkOrderItem> orderItems = new ArrayList<>(); | 
 |  |  |         if (!Objects.isNull(map.get("ids"))) { | 
 |  |  |             List<Long> ids = JSONArray.parseArray(JSONObject.toJSONString(map.get("ids")), Long.class); | 
 |  |  |             if (!ids.isEmpty()) { | 
 |  |  |                 orderItems = asnOrderItemService.list(new LambdaQueryWrapper<AsnOrderItem>() | 
 |  |  |                         .in(AsnOrderItem::getId, ids) | 
 |  |  |                         .eq(AsnOrderItem::getStatus, 1)); | 
 |  |  |                 orderItems = outStockItemService.list(new LambdaQueryWrapper<WkOrderItem>() | 
 |  |  |                         .in(WkOrderItem::getId, ids) | 
 |  |  |                         .eq(WkOrderItem::getStatus, 1)); | 
 |  |  |             } else { | 
 |  |  |                 orderItems = asnOrderItemService.list(new LambdaQueryWrapper<>()); | 
 |  |  |                 orderItems = outStockItemService.list(new LambdaQueryWrapper<>()); | 
 |  |  |             } | 
 |  |  |         } else { | 
 |  |  |             orderItems = asnOrderItemService.list(new LambdaQueryWrapper<>()); | 
 |  |  |             orderItems = outStockItemService.list(new LambdaQueryWrapper<>()); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         ExcelUtil.build(ExcelUtil.create(orderItems, AsnOrderItem.class, true), response); | 
 |  |  |         ExcelUtil.build(ExcelUtil.create(orderItems, WkOrderItem.class, true), response); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  | 
 |  |  |     @PostMapping("/outStockItem/import") | 
 |  |  |     @ApiOperation("ASN导入接口") | 
 |  |  |     @PreAuthorize("hasAuthority('manager:outStockItem:update')") | 
 |  |  |     public R importExcel(@RequestParam(value = "file") MultipartFile file, @RequestParam String asnId) throws Exception { | 
 |  |  |     public R importExcel(@RequestParam(value = "file") MultipartFile file) throws Exception { | 
 |  |  |         if (Objects.isNull(file)) { | 
 |  |  |             R.error("文件不能为空!!"); | 
 |  |  |         } | 
 |  |  |         HashMap<String, Object> hashMap = new HashMap<>(); | 
 |  |  |         return asnOrderItemService.excelImport(file, hashMap, getLoginUserId()); | 
 |  |  |         return outStockItemService.excelImport(file, hashMap, getLoginUserId()); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  | 
 |  |  |     @ApiOperation("下载收货单模板") | 
 |  |  |     @PreAuthorize("hasAuthority('manager:outStockItem:update')") | 
 |  |  |     public void downloadTemplate(@RequestBody Map<String, Object> map, HttpServletResponse response) throws Exception { | 
 |  |  |         AsnOrderTemplate template = ExcelUtil.mockData(AsnOrderTemplate.class); | 
 |  |  |         List<AsnOrderTemplate> list = Arrays.asList(template); | 
 |  |  |         ExcelUtil.build(ExcelUtil.create(list, AsnOrderTemplate.class, true), response); | 
 |  |  |         OutStockTemplate template = ExcelUtil.mockData(OutStockTemplate.class); | 
 |  |  |         List<OutStockTemplate> list = Arrays.asList(template); | 
 |  |  |         ExcelUtil.build(ExcelUtil.create(list, OutStockTemplate.class, true), response); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  | } |