luqingyang
2023-10-30 a74126e4f4fd6f2c896f41a67e001f5e2463c594
consum-base/src/main/java/com/consum/base/controller/LWhFormOutputController.java
@@ -1,20 +1,22 @@
package com.consum.base.controller;
import com.consum.base.BaseController;
import com.consum.base.pojo.BaseGoodsTemplateParam;
import com.consum.base.pojo.LWhFormOutputParam;
import com.consum.base.pojo.*;
import com.consum.base.service.BaseCategoryServiceImpl;
import com.consum.base.service.LWhFormOutputServiceImpl;
import com.consum.model.po.BaseGoodsTemplate;
import com.consum.model.po.FinSysTenantUser;
import com.consum.model.po.*;
import com.iplatform.model.po.S_user_core;
import com.walker.db.page.GenericPager;
import com.walker.infrastructure.utils.CollectionUtils;
import com.walker.infrastructure.utils.StringUtils;
import com.walker.web.ResponseValue;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
/**
 * @Description 出库单
@@ -44,6 +46,87 @@
        return ResponseValue.error("新增失败!");
    }
    /**
     * @Description 列表查询
     */
    @GetMapping("/list")
    public ResponseValue queryFormOutputList(LWhFormOutputParam param) {
        S_user_core currentUser = this.getCurrentUser();
        if (currentUser == null) {
            return ResponseValue.error("登录用户信息不存在");
        }
        FinSysTenantUser sysInfo = getSysInfo();
        //只能查询本级 及以下机构的出库单
        //??????
        GenericPager genericPager = lWhFormOutputService.queryFormOutputList(param);
        List<LWhFormOutput> datas = genericPager.getDatas();
        ArrayList<LWhFormProcureExtend> newDatas = new ArrayList<>();
        if (!CollectionUtils.isEmpty(datas)) {
            datas.forEach(item -> {
                // 查询型号数量
                LWhProcureModel lWhProcureModel = new LWhProcureModel();
                lWhProcureModel.setBusinessType(3);
                lWhProcureModel.setBusinessId(item.getId());
                List<LWhProcureModel> models = lWhFormOutputService.select(lWhProcureModel);
                LWhFormProcureExtend formProcureExtend = new LWhFormProcureExtend();
                BeanUtils.copyProperties(item, formProcureExtend);
                formProcureExtend.setModels(models);
                newDatas.add(formProcureExtend);
            });
        }
        try {
            Field fieldDatas = GenericPager.class.getDeclaredField("datas");
            fieldDatas.setAccessible(true);
            fieldDatas.set(genericPager, newDatas);
        } catch (Exception e) {
            e.printStackTrace();
        }
//        genericPager.setDatas(newDatas);
        return ResponseValue.success(genericPager);
    }
    /**
     * 根据id查询详情
     */
    @GetMapping("/detail")
    public ResponseValue getById(Long id) throws IllegalAccessException {
        if (id == null) {
            return ResponseValue.error("出库单id为空");
        }
        LWhFormOutput lWhFormOutput = lWhFormOutputService.get(new LWhFormOutput(id));
        LWhFormOutputExtend formOutputExtend = new LWhFormOutputExtend();
        BeanUtils.copyProperties(lWhFormOutput, formOutputExtend);
        // 物品
        LWhFormProcureGoods lWhFormProcureGoods = new LWhFormProcureGoods();
        lWhFormProcureGoods.setWhFormProcureId(id);
        List<LWhFormProcureGoods> formProcureGoods = lWhFormOutputService.select(lWhFormProcureGoods);
        Field fieldModels = null;
        try {
            fieldModels = LWhFormProcureGoodsParams.class.getDeclaredField("models");
        } catch (NoSuchFieldException e) {
            e.printStackTrace();
        }
        fieldModels.setAccessible(true);
        ArrayList<LWhFormProcureGoodsParams> procureGoodsParams = new ArrayList<>();
        for (LWhFormProcureGoods formProcureGood : formProcureGoods) {
            LWhFormProcureGoodsParams lWhFormProcureGoodsParams = new LWhFormProcureGoodsParams();
            BeanUtils.copyProperties(formProcureGood, lWhFormProcureGoodsParams);
            // 查询型号数量
            LWhProcureModel lWhProcureModel = new LWhProcureModel();
            lWhProcureModel.setFromProcureGoodsId(formProcureGood.getId());
            List<LWhProcureModel> models = lWhFormOutputService.select(lWhProcureModel);
            fieldModels.set(lWhFormProcureGoodsParams, models);
            procureGoodsParams.add(lWhFormProcureGoodsParams);
        }
        formOutputExtend.setProcureGoods(procureGoodsParams);
        return ResponseValue.success("查询成功!", formOutputExtend);
    }