|  |  | 
 |  |  | 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; | 
 |  |  | 
 |  |  |     @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); | 
 |  |  |         QueryWrapper<AsnOrderItem> queryWrapper = pageParam.buildWrapper(true); | 
 |  |  |         if (!Objects.isNull(map.get("poDetlId"))) { | 
 |  |  |             queryWrapper.in("po_detl_id", JSONArray.parseArray(JSONArray.toJSONString(map.get("poDetlId")), Long.class)); | 
 |  |  |         } | 
 |  |  |         return R.ok().add(outStockItemService.listByAsnId(pageParam, queryWrapper)); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     @PreAuthorize("hasAuthority('manager:outStockItem:list')") | 
 |  |  |     @ApiOperation("分页获取列表") | 
 |  |  |     @PostMapping("/outStockItem/edit/page") | 
 |  |  |     public R byPoIdspage(@RequestBody Map<String, Object> map) { | 
 |  |  |         List<Long> poDetlIds = new ArrayList<>(); | 
 |  |  |         if (!Objects.isNull(map.get("poDetlId"))) { | 
 |  |  |             poDetlIds = JSONArray.parseArray(JSONArray.toJSONString(map.get("poDetlId")), Long.class); | 
 |  |  |             map.remove("poDetlId"); | 
 |  |  |         } | 
 |  |  |         BaseParam baseParam = buildParam(map, BaseParam.class); | 
 |  |  |         PageParam<AsnOrderItem, BaseParam> pageParam = new PageParam<>(baseParam, AsnOrderItem.class); | 
 |  |  |         QueryWrapper<AsnOrderItem> queryWrapper = pageParam.buildWrapper(true); | 
 |  |  |         if (!poDetlIds.isEmpty()) { | 
 |  |  |             queryWrapper.in("po_detl_id", poDetlIds); | 
 |  |  |         } else { | 
 |  |  |             return R.ok(); | 
 |  |  |         } | 
 |  |  |         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: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 (!outStockItemService.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); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  | 
 |  |  |     @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); | 
 |  |  |         } | 
 |  |  |         outStockItemService.page(new Page<>(1, 30), wrapper).getRecords().forEach( | 
 |  |  |                 item -> vos.add(new KeyValVo(item.getId(), item.getId())) | 
 |  |  | 
 |  |  |     @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 = outStockItemService.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 = outStockItemService.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); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  | 
 |  |  |         return outStockItemService.excelImport(file, hashMap, getLoginUserId()); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * @author Ryan | 
 |  |  |      * @description 下载模板 | 
 |  |  |      * @param | 
 |  |  |      * @return | 
 |  |  |      * @time 2025/4/18 08:17 | 
 |  |  |      */ | 
 |  |  |     @PostMapping("/outStockItem/template/download") | 
 |  |  |     @ApiOperation("下载收货单模板") | 
 |  |  |     @PreAuthorize("hasAuthority('manager:outStockItem:update')") | 
 |  |  |     public void downloadTemplate(@RequestBody Map<String, Object> map, HttpServletResponse response) throws Exception { | 
 |  |  |         OutStockTemplate template = ExcelUtil.mockData(OutStockTemplate.class); | 
 |  |  |         List<OutStockTemplate> list = Arrays.asList(template); | 
 |  |  |         ExcelUtil.build(ExcelUtil.create(list, OutStockTemplate.class, true), response); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  | } |