石广澎
2024-01-02 0cd1631ceaa93e6483908fd692d2cb693b85324b
consum-base/src/main/java/com/consum/base/controller/LWhFormOutputController.java
@@ -25,15 +25,16 @@
import com.consum.base.BaseController;
import com.consum.base.core.utils.CommonUtil;
import com.consum.base.core.utils.CurrencyUtil;
import com.consum.base.core.utils.PageUtil;
import com.consum.base.pojo.LWhFormOutputParam;
import com.consum.base.pojo.dto.GoodModelInfoDTO;
import com.consum.base.pojo.excel.OutputExcelTemplate;
import com.consum.base.pojo.query.LWhFormOutputQry;
import com.consum.base.pojo.response.FormOutputGoodsVO;
import com.consum.base.pojo.response.FormOutputVO;
import com.consum.base.pojo.response.GoodsModelVO;
import com.consum.base.pojo.response.GoodsTemplateCountVO;
import com.consum.base.pojo.response.GoodsTemplateInfoVO;
import com.consum.base.pojo.response.LWhFormOutputExtendVO;
import com.consum.base.service.LWarehouseFlowService;
import com.consum.base.service.LWhFormOutputService;
@@ -69,7 +70,7 @@
    @Autowired
    private LWhProcureModelService lWhProcureModelService;
    @Resource
    private LWarehouseFlowService lWarehouseFlowService;
    private LWarehouseFlowService lWarehouseFlowServiceImpl;
    /**
     * @Description 新增出库单
@@ -131,8 +132,6 @@
        }
        try {
            Field fieldDatas = GenericPager.class.getDeclaredField("datas");
            // fieldDatas.setAccessible(true);
            // fieldDatas.set(genericPager, resultList);
            ReflectUtil.setFieldValue(genericPager, fieldDatas, resultList);
        } catch (Exception e) {
            logger.error("查询出库单列表失败", e);
@@ -146,7 +145,7 @@
    @ApiOperation(value = "根据id查询详情", notes = "根据id查询详情")
    @ApiImplicitParam(name = "id", value = "出库单id", required = true, dataType = "Long", paramType = "query")
    @GetMapping("/detail")
    public ResponseValue getById(Long id) throws IllegalAccessException {
    public ResponseValue getById(Long id) throws Exception {
        if (id == null) {
            return ResponseValue.error("出库单id为空");
        }
@@ -156,32 +155,31 @@
        lWhFormOutputExtendVO.setDoc(lWhFormOutput.getOutputDoc());
        List<GoodModelInfoDTO> goodsModelList =
            lWhProcureModelService.getGoodsModelListByBusinessId(lWhFormOutputExtendVO.getId());
            lWhProcureModelService.getGoodsModelListByBusinessId(lWhFormOutputExtendVO.getId(), null);
        if (CollectionUtils.isEmpty(goodsModelList)) {
            return ResponseValue.success(lWhFormOutputExtendVO);
        }
        Map<Long, List<GoodModelInfoDTO>> collect =
            goodsModelList.stream().collect(Collectors.groupingBy(GoodModelInfoDTO::getBaseGoodsTemplateId));
        List<FormOutputGoodsVO> fromOutputGoods = Lists.newArrayList();
        List<GoodsTemplateInfoVO> goodsTemplateInfoList = Lists.newArrayList();
        for (Map.Entry<Long, List<GoodModelInfoDTO>> entry : collect.entrySet()) {
            FormOutputGoodsVO formOutputGoodsVO = getFormOutputGoodsVO(entry);
            fromOutputGoods.add(formOutputGoodsVO);
            GoodsTemplateInfoVO goodsTemplateInfoVO = getFormOutputGoodsVO(entry);
            goodsTemplateInfoList.add(goodsTemplateInfoVO);
        }
        lWhFormOutputExtendVO.setFromOutputGoods(fromOutputGoods);
        lWhFormOutputExtendVO.setFromOutputGoods(goodsTemplateInfoList);
        return ResponseValue.success("查询成功!", lWhFormOutputExtendVO);
    }
    private static FormOutputGoodsVO getFormOutputGoodsVO(Entry<Long, List<GoodModelInfoDTO>> entry) {
    private GoodsTemplateInfoVO getFormOutputGoodsVO(Entry<Long, List<GoodModelInfoDTO>> entry) {
        Long baseGoodsTemplateId = entry.getKey();
        List<GoodModelInfoDTO> goodModelInfoDTOS = entry.getValue();
        GoodModelInfoDTO goodModelInfoDTO = goodModelInfoDTOS.stream().findFirst().orElse(null);
        FormOutputGoodsVO formOutputGoodsVO = new FormOutputGoodsVO();
        GoodsTemplateInfoVO goodsTemplateInfoVO = new GoodsTemplateInfoVO();
        if (goodModelInfoDTO != null) {
            formOutputGoodsVO.setId(baseGoodsTemplateId);
            formOutputGoodsVO.setCategoryId(goodModelInfoDTO.getCategoryId());
            formOutputGoodsVO.setCategoryName(goodModelInfoDTO.getCategoryName());
            formOutputGoodsVO.setGoodsName(goodModelInfoDTO.getBaseGoodsModelsName());
            goodsTemplateInfoVO.setId(baseGoodsTemplateId);
            goodsTemplateInfoVO.setCategoryName(goodModelInfoDTO.getCategoryName());
            goodsTemplateInfoVO.setGoodsName(goodModelInfoDTO.getBaseGoodsModelsName());
        }
        List<GoodsModelVO> goodsModelList = Lists.newArrayList();
        for (GoodModelInfoDTO goodModelInfo : goodModelInfoDTOS) {
@@ -190,11 +188,11 @@
            goodsModelVO.setBaseGoodsModelsName(goodModelInfo.getBaseGoodsModelsName());
            goodsModelVO.setUnit(goodModelInfo.getUnit());
            goodsModelVO.setCounts(goodModelInfo.getCounts());
            goodsModelVO.setTotalAmount(goodModelInfo.getTotalAmount());
            goodsModelVO.setTotalAmount(CurrencyUtil.convertFenToYuan(goodModelInfo.getTotalAmount()));
            goodsModelList.add(goodsModelVO);
        }
        formOutputGoodsVO.setModels(goodsModelList);
        return formOutputGoodsVO;
        goodsTemplateInfoVO.setModels(goodsModelList);
        return goodsTemplateInfoVO;
    }
    @ApiOperation(value = "查询出库单详情明细", notes = "查询出库单详情明细")
@@ -203,18 +201,19 @@
    @GetMapping("/detail/list")
    public ResponseValue queryFormOutputDetailList() {
        LWhFormOutputQry formOutputQry = CommonUtil.getObjFromReq(LWhFormOutputQry.class);
        S_user_core currentUser = this.getCurrentUser();
        FinSysTenantUser currentUser = this.getSysInfo();
        if (currentUser == null) {
            return ResponseValue.error("登录用户信息不存在");
        }
        PageUtil genericPager = lWarehouseFlowService.queryAllBusinessFlow(formOutputQry);
        formOutputQry.setAgencyId(Long.valueOf(currentUser.getTenantId()));
        PageUtil genericPager = lWarehouseFlowServiceImpl.queryAllBusinessFlow(formOutputQry);
        return ResponseValue.success(genericPager);
    }
    @ApiOperation(value = "出库单导出", notes = "出库单导出")
    @ApiImplicitParam(name = "id", value = "出库单id", required = true, dataType = "Long", paramType = "query")
    @GetMapping("/list/export")
    public void export(Long id, HttpServletResponse response) throws Exception {
    public ResponseValue export(Long id, HttpServletResponse response) throws Exception {
        FinSysTenantUser sysInfo = this.getSysInfo();
        if (sysInfo == null) {
            throw new RuntimeException("登录用户信息不存在");
@@ -250,7 +249,8 @@
        map.put("totalAmount", totalAmount);
        Workbook workbook = ExcelExportUtil.exportExcel(params, OutputExcelTemplate.class, exportList, map);
        downLoadExcel("出库单", response, workbook);
        String filePath = downLoadExcel("出库单", workbook);
        return ResponseValue.success("导出成功", filePath);
    }