cy
2023-11-10 f3529363cc63b4729a429f80a4827b71df0cd5dd
consum-base/src/main/java/com/consum/base/controller/LWhFormOutputController.java
@@ -1,20 +1,24 @@
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.base.service.LWhGoodsService;
import com.consum.base.service.LWhProcureModelService;
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 出库单
@@ -27,6 +31,10 @@
    @Autowired
    private LWhFormOutputServiceImpl lWhFormOutputService;
    @Autowired
    private LWhProcureModelService lWhProcureModelService;
    @Autowired
    private LWhGoodsService lWhGoodsService;
    /**
     * @Description 新增出库单
@@ -34,7 +42,7 @@
     * @Date 2023/10/27
     */
    @PostMapping("/add")
    public ResponseValue add(@RequestBody LWhFormOutputParam param) {
    public ResponseValue add(@RequestBody LWhFormOutputInsertParam param) {
        S_user_core currentUser = this.getCurrentUser();
        if (currentUser == null) {
            return ResponseValue.error("登录用户信息不存在");
@@ -44,6 +52,83 @@
        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<LWhFormOutputExtend> newDatas = new ArrayList<>();
        if (!CollectionUtils.isEmpty(datas)) {
            datas.forEach(item -> {
                // 查询型号数量
                LWhProcureModel lWhProcureModel = new LWhProcureModel();
                lWhProcureModel.setBusinessType(3);
                lWhProcureModel.setBusinessId(item.getId());
                List<LWhProcureModel> models = lWhProcureModelService.select(lWhProcureModel);
                LWhFormOutputExtend formProcureExtend = new LWhFormOutputExtend();
                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);
        // 查询型号数量
        LWhProcureModel lWhProcureModel = new LWhProcureModel();
        lWhProcureModel.setBusinessType(3);
        lWhProcureModel.setBusinessId(id);
        List<LWhProcureModel> models = lWhFormOutputService.select(lWhProcureModel);
        formOutputExtend.setModels(models);
        return ResponseValue.success("查询成功!", formOutputExtend);
    }
    /**
     * @Description  根据仓库id和型号id 查询库存
     * @Author 卢庆阳
     * @Date 2023/11/2
     */
    @GetMapping("/select/number")
    public ResponseValue selectNumber(Long warehouseId,Long baseGoodsModelsId) {
        if (warehouseId == null || baseGoodsModelsId == null) {
            return ResponseValue.error("参数错误");
        }
        int num = this.lWhGoodsService.queryGoodsModelNum(0, warehouseId, baseGoodsModelsId, (short) 1,null);
        return ResponseValue.success(num);
    }