CircleController.java 5.62 KB
package com.huaheng.cycle.mobile;

import com.alibaba.fastjson.JSONException;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.huaheng.common.core.utils.StringUtils;
import com.huaheng.common.core.web.controller.BaseController;
import com.huaheng.common.core.web.domain.AjaxResult;

import com.huaheng.common.core.web.page.PageDomain;
import com.huaheng.common.core.web.page.TableDataInfo;
import com.huaheng.common.core.web.page.TableSupport;
import com.huaheng.common.log.annotation.Log;
import com.huaheng.common.log.enums.BusinessType;
import com.huaheng.common.security.utils.SecurityUtils;
import com.huaheng.cycle.api.domain.CycleCountDetailChild;
import com.huaheng.cycle.api.domain.CycleCountHeader;
import com.huaheng.cycle.cycle.service.CycleCountDetailChildService;
import com.huaheng.cycle.cycle.service.CycleCountDetailService;
import com.huaheng.cycle.cycle.service.CycleCountHeaderService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.*;

/**
 * @author Enzo Cotter
 * @date 2019/12/15
 */
@CrossOrigin
@RestController
@RequestMapping("/mobile")
@Api(tags = {"移动端盘点"}, value = "移动端盘点")
public class CircleController extends BaseController {

    @Resource
    private CycleCountDetailService cycleCountDetailService;
    @Resource
    private CycleCountDetailChildService cycleCountDetailChildService;

    @Resource
    private CycleCountHeaderService cycleCountHeaderService;

    /**
     * 移动端实盘登记
     *
     * @return
     */
    @ApiOperation(value = "移动端实盘登记", notes = "移动端实盘登记")
    @ResponseBody
    @PostMapping("/confirmGapQty")
    public AjaxResult confirmGapQty(@RequestBody List<MaterialInfo> materialInfos) {
        for (MaterialInfo materialInfo : materialInfos) {
            int detailId = materialInfo.getBillDetailId();
            BigDecimal qty = new BigDecimal(materialInfo.getQty());
            LambdaQueryWrapper<CycleCountDetailChild> cycleCountDetailChildLambdaQueryWrapper = Wrappers.lambdaQuery();
            cycleCountDetailChildLambdaQueryWrapper.eq(CycleCountDetailChild::getCycleCountDetailId, detailId)
                    .eq(CycleCountDetailChild::getMaterialCode, materialInfo.getMaterialCode());
            CycleCountDetailChild cycleCountDetailChild = cycleCountDetailChildService.getOne(cycleCountDetailChildLambdaQueryWrapper);
            AjaxResult ajaxResult = cycleCountDetailChildService.confirmGapQty(cycleCountDetailChild.getId(), qty);
            if (ajaxResult.hasErr()) {
                return AjaxResult.error("盘点失败");
            }
        }
        return AjaxResult.success("盘点成功");
    }

    /**
     * 查询盘点单主列表
     */
    //@PreAuthorize(hasAnyPermi = "inventory:cycleCountHeader:list")
    @GetMapping("/list")
    @Log(title = "库存-移动端盘点主表查询", businessType = BusinessType.GRANT)
    @ApiOperation(value = "移动端查询盘点单主列表", notes = "移动端查询盘点单主列表")
    public TableDataInfo list(CycleCountHeader cycleCountHeader, String beginTime, String endTime) {
        LambdaQueryWrapper<CycleCountHeader> lambdaQueryWrapper = Wrappers.lambdaQuery();
        PageDomain pageDomain = TableSupport.buildPageRequest();
        Integer pageNum = pageDomain.getPageNum();
        Integer pageSize = pageDomain.getPageSize();

        lambdaQueryWrapper
                .eq(CycleCountHeader::getWarehouseCode, SecurityUtils.getWarehouseCode())
                // .in(CycleCountHeader::getCompanyCode,SecurityUtils.getCompanyList())
                .eq(StringUtils.isNotEmpty(cycleCountHeader.getSourceCode()), CycleCountHeader::getSourceCode, cycleCountHeader.getSourceCode())
                .eq(cycleCountHeader.getId() != null, CycleCountHeader::getId, cycleCountHeader.getId())
                .eq(StringUtils.isNotEmpty(cycleCountHeader.getCode()), CycleCountHeader::getCode, cycleCountHeader.getCode())
                .eq(cycleCountHeader.getCountOrderId() != null, CycleCountHeader::getCountOrderId, cycleCountHeader.getCountOrderId())
                .lt(cycleCountHeader.getStatusCyc() != null && cycleCountHeader.getStatusCyc() <100, CycleCountHeader::getStatusCyc, 100)
                .ge(cycleCountHeader.getStatusCyc() != null && cycleCountHeader.getStatusCyc() >=100, CycleCountHeader::getStatusCyc, 100)
                .eq(cycleCountHeader.getCountType() != null, CycleCountHeader::getCountType, cycleCountHeader.getCountType())
                .gt(StringUtils.isNotEmpty(beginTime), CycleCountHeader::getCreated, beginTime)
                .apply(StringUtils.isNotEmpty(endTime),
                        "date_format (created,'%Y-%m-%d') <= date_format('" + endTime + "','%Y-%m-%d')")
                .orderByDesc(CycleCountHeader::getId);

        if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)) {
            //分页查询
            Page<CycleCountHeader> page = new Page<>(pageNum, pageSize);
            IPage<CycleCountHeader> iPage = cycleCountHeaderService.page(page, lambdaQueryWrapper);
            return getMpDataTable(iPage.getRecords(), iPage.getTotal());
        } else {
            List<CycleCountHeader> list = cycleCountHeaderService.list(lambdaQueryWrapper);
            return getDataTable(list);
        }
    }
}