Helius
2022-05-27 4351e71d782741143a98f86f6648acd16689165f
zq-erp/src/main/java/com/matrix/system/app/action/ApiStoreAction.java
@@ -1,15 +1,82 @@
package com.matrix.system.app.action;
import com.matrix.core.constance.MatrixConstance;
import com.matrix.core.pojo.AjaxResult;
import com.matrix.core.pojo.PaginationVO;
import com.matrix.core.tools.WebUtil;
import com.matrix.system.app.dto.StoreInOutListDto;
import com.matrix.system.app.dto.StoreListDto;
import com.matrix.system.app.mapper.SysStoreInfoMapper;
import com.matrix.system.app.vo.StoreInOutListVo;
import com.matrix.system.app.vo.StoreListVo;
import com.matrix.system.common.bean.SysUsers;
import com.matrix.system.common.tools.DataAuthUtil;
import com.matrix.system.hive.bean.SysStoreInfo;
import com.matrix.system.hive.dao.SysStoreInfoDao;
import com.matrix.system.hive.pojo.StoreInOutRecordVO;
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.RequestMapping;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
 * @author wzy
 * @date 2020-12-27
 **/
@Api(value = "ApiStoreAction", tags = "库存管理接口类")
@RestController
@RequestMapping(value = "/api/store")
public class ApiStoreAction {
    @Autowired
    private SysStoreInfoDao sysStoreInfoDao;
    @ApiOperation(value = "获取库存列表", notes = "获取库存列表")
    @ApiResponses({
            @ApiResponse(code = 200, message = "ok", response = StoreListVo.class)
    })
    @PostMapping(value = "/findStoreList")
    public AjaxResult findStoreList(@RequestBody @Validated StoreListDto storeListDto) {
        SysStoreInfo sysStoreInfo = new SysStoreInfo();
        SysUsers users = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
        sysStoreInfo.setShopId(users.getShopId());
        sysStoreInfo.setCompanyId(users.getCompanyId());
        sysStoreInfo.setQueryKey(storeListDto.getQueryKey());
        PaginationVO pageVo = new PaginationVO();
        pageVo.setOffset((storeListDto.getPageNum() - 1) * storeListDto.getPageSize());
        pageVo.setLimit(storeListDto.getPageSize());
        pageVo.setSort("c.goods_no");
        pageVo.setOrder("asc");
        List<SysStoreInfo> dataList = sysStoreInfoDao.selectCountInPage(sysStoreInfo, pageVo);
        List<StoreListVo> resultList = SysStoreInfoMapper.INSTANCE.entitiesToStoreVos(dataList);
        return new AjaxResult(AjaxResult.STATUS_SUCCESS,  resultList, sysStoreInfoDao.selectCountTotalRecord(sysStoreInfo));
    }
    @ApiOperation(value = "获取商品出入库列表", notes = "获取商品出入库列表")
    @ApiResponses({
            @ApiResponse(code = 200, message = "ok", response = StoreInOutListVo.class)
    })
    @PostMapping(value = "/findGoodsInOutInfo")
    public AjaxResult findGoodsInOutInfo(@RequestBody @Validated StoreInOutListDto storeInOutListDto) {
        StoreInOutRecordVO inOutRecordVO = new StoreInOutRecordVO();
        inOutRecordVO.setBeginTime(storeInOutListDto.getStartTime());
        inOutRecordVO.setEndTime(storeInOutListDto.getEndTime());
        inOutRecordVO.setName(storeInOutListDto.getCode());
        PaginationVO pageVo = new PaginationVO();
        pageVo.setOffset((storeInOutListDto.getPageNum() - 1) * storeInOutListDto.getPageSize());
        pageVo.setLimit(storeInOutListDto.getPageSize());
        List<StoreInOutRecordVO> dataList =sysStoreInfoDao.findStoreInOutRecord(inOutRecordVO,pageVo);
        List<StoreInOutListVo> list = SysStoreInfoMapper.INSTANCE.recordVosToInOutListVos(dataList);
        return AjaxResult.buildSuccessInstance(list,sysStoreInfoDao.findStoreInOutTotal(inOutRecordVO));
    }
}