CheckingRegisterController.java 10.4 KB
package com.huaheng.pc.check.checkingRegister.controller;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.huaheng.common.utils.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fasterxml.jackson.databind.ser.Serializers;
import com.huaheng.common.constant.QuantityConstant;
import com.huaheng.common.support.Convert;
import com.huaheng.common.utils.StringUtils;
import com.huaheng.common.utils.security.ShiroUtils;
import com.huaheng.framework.aspectj.lang.annotation.Log;
import com.huaheng.framework.aspectj.lang.constant.BusinessType;
import com.huaheng.framework.web.controller.BaseController;
import com.huaheng.framework.web.domain.AjaxResult;
import com.huaheng.framework.web.page.PageDomain;
import com.huaheng.framework.web.page.TableDataInfo;
import com.huaheng.framework.web.page.TableSupport;
import com.huaheng.pc.check.checkDetail.domain.CheckDetail;
import com.huaheng.pc.check.checkDetail.service.CheckDetailService;
import com.huaheng.pc.check.checkHeader.domain.CheckHeader;
import com.huaheng.pc.check.checkHeader.service.CheckHeaderService;
import com.huaheng.pc.check.checkingRegister.domain.CheckingRegister;
import com.huaheng.pc.check.checkingRegister.service.CheckingRegisterService;
import com.huaheng.pc.receipt.receiptHeader.domain.ReceiptHeader;
import com.huaheng.pc.system.dict.domain.DictData;
import com.huaheng.pc.system.dict.service.DictDataServiceImpl;
import com.huaheng.pc.system.dict.service.IDictDataService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.Arrays;
import java.util.List;

/**
 * 质检报告
 * Created by mahuandong Cotter on 2019/9/6.
 */
@Api(tags = "质检报告")
@Controller
@RequestMapping("/check/checkingRegister")
public class CheckingRegisterController extends BaseController {

    @Resource
    private CheckingRegisterService checkingRegisterService;
    @Resource
    private CheckHeaderService checkHeaderService;
    @Resource
    private CheckDetailService checkDetailService;


    private String prefix = "check/checkingRegister";

    @RequiresPermissions("check:checkingRegister:view")
    @GetMapping("/{checkId}")
    public String checkingRegister(@PathVariable("checkId") Integer checkId, ModelMap modelMap) {
        if (checkId != 0){
            CheckHeader checkHeader = checkHeaderService.getById(checkId);
            modelMap.put("checkHeaderId",checkHeader.getId());
            modelMap.put("checkCode",checkHeader.getCode());
        }

        modelMap.put("checkId",checkId);
        return prefix + "/checkingRegister";
    }

    /**
     * 查询质检报告
     */
    @RequiresPermissions("check:checkingRegister:list")
    @Log(title = "质检-质检报告头表", operating = "查看质检报告列表", action = BusinessType.GRANT)
    @PostMapping("/list")
    @ResponseBody
    public TableDataInfo list(@ApiParam(name="receiptDetail",value="质检头表") CheckingRegister checkingRegister,
                              @ApiParam(name = "createdBegin", value = "起止时间") String createdBegin,
                              @ApiParam(name = "createdEnd", value = "结束时间") String createdEnd,
                              Integer pageNumber) {
        LambdaQueryWrapper<CheckingRegister> lambdaQueryWrapper = Wrappers.lambdaQuery();
        PageDomain pageDomain = TableSupport.buildPageRequest();
        Integer pageNum = pageNumber;
        Integer pageSize = pageDomain.getPageSize();
        boolean isDetailNull;   //质检明细是否存在标识

        //判断质检单明细标号是否存在,不存在显示所有质检报告
        if (StringUtils.isNotNull(checkingRegister.getCheckDetailId())){
            isDetailNull = true;
            if (checkingRegister.getCheckDetailId() == 0){
                isDetailNull = false;
            }
        } else {
            isDetailNull = false;
        }
        CheckDetail checkDetail = checkDetailService.getById(checkingRegister.getCheckDetailId());

        lambdaQueryWrapper.ge(StringUtils.isNotEmpty(createdBegin), CheckingRegister::getCreated, createdBegin)
                .le(StringUtils.isNotEmpty(createdEnd), CheckingRegister::getCreated, createdEnd)
                .in(CheckingRegister::getCompanyCode, ShiroUtils.getCompanyCodeList())
                .eq(CheckingRegister::getWarehouseCode, ShiroUtils.getWarehouseCode())
                .eq(StringUtils.isNotNull(checkingRegister.getCheckHeaderId()), CheckingRegister::getCheckHeaderId,
                        checkingRegister.getCheckHeaderId())
                .eq(isDetailNull, CheckingRegister::getCheckDetailId,
                        checkingRegister.getCheckDetailId())
                .eq(StringUtils.isNotNull(checkingRegister.getReceiptDetailId()),
                        CheckingRegister::getReceiptDetailId, checkingRegister.getReceiptDetailId())
                .eq(StringUtils.isNotEmpty(checkingRegister.getReceiptCode()),
                        CheckingRegister::getReceiptCode, checkingRegister.getReceiptCode())
                .eq(StringUtils.isNotEmpty(checkingRegister.getReferCode()),
                        CheckingRegister::getReceiptCode, checkingRegister.getReceiptCode())
                .eq(StringUtils.isNotNull(checkingRegister.getReferLineId()),
                        CheckingRegister::getReferLineId, checkingRegister.getReferLineId())
                .eq(StringUtils.isNotEmpty(checkingRegister.getReferPlatform()),
                        CheckingRegister::getReferPlatform, checkingRegister.getReferPlatform())
                .eq(StringUtils.isNotEmpty(checkingRegister.getMaterialCode()),
                        CheckingRegister::getMaterialCode, checkingRegister.getMaterialCode())
                .eq(StringUtils.isNotEmpty(checkingRegister.getMaterialName()),
                        CheckingRegister::getMaterialName, checkingRegister.getMaterialName())
                .eq(StringUtils.isNotEmpty(checkingRegister.getInventorySts()),
                        CheckingRegister::getInventorySts, checkingRegister.getInventorySts())
                .eq(StringUtils.isNotEmpty(checkingRegister.getCheckBy()),
                        CheckingRegister::getCheckAt, checkingRegister.getCheckAt());

        if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)){
            // 使用分页查询
            Page<CheckingRegister> page = new Page<>(pageNum, pageSize);
            IPage<CheckingRegister> iPage = checkingRegisterService.page(page, lambdaQueryWrapper);
            if (isDetailNull){
                if (iPage.getTotal() == 0){
                    //空list
                    List emptyList = checkingRegisterService.emptyList(checkingRegister.getCheckDetailId());
                    return getMpDataTable(emptyList, Long.valueOf(emptyList.size()));
                }
                if (!(QuantityConstant.CHECK_STATUS_COMPLETED).toString().equals(checkDetail.getStatus())){
                    //未完成质检list
                    List notCompleteList = checkingRegisterService.notCompleteList(checkingRegister.getCheckDetailId());
                    return getMpDataTable(notCompleteList, Long.valueOf(notCompleteList.size()));
                }
            }
            return getMpDataTable(iPage.getRecords(), iPage.getTotal());
        } else {
            List<CheckingRegister> list = checkingRegisterService.list(lambdaQueryWrapper);
            if (isDetailNull){
                if (list.size() == 0){
                    //空list
                    List emptyList = checkingRegisterService.emptyList(checkingRegister.getCheckDetailId());
                    return getMpDataTable(emptyList, Long.valueOf(emptyList.size()));
                }
                if (!(QuantityConstant.CHECK_STATUS_COMPLETED).toString().equals(checkDetail.getStatus())){
                    //未完成质检list
                    List notCompleteList = checkingRegisterService.notCompleteList(checkingRegister.getCheckDetailId());
                    return getMpDataTable(notCompleteList, Long.valueOf(notCompleteList.size()));
                }
            }
            return getDataTable(list);
        }
    }

    /**
     * 新增质检报告
     */
    @GetMapping("/add")
    public String add() {
        return prefix + "/add";
    }

    /**
     * 新增保存质检报告
     */
    @ApiOperation(value="新增质检报告 ", notes="新增质检报告 ", httpMethod = "POST")
    @RequiresPermissions("check:checkingRegister:add")
    @Log(title = "质检-质检报告 ",operating = "新增质检报告 ", action = BusinessType.INSERT)
    @PostMapping("/add")
    @ResponseBody
    public AjaxResult addSave(CheckingRegister checkingRegister) {
        return toAjax(checkingRegisterService.save(checkingRegister));
    }

    /**
     * 修改质检报告
     */
    @GetMapping("/edit/{id}")
    public String edit(@PathVariable("id") Integer id, ModelMap mmap) {
        CheckingRegister checkingRegister = checkingRegisterService.getById(id);
        mmap.put("checkingRegister", checkingRegister);
        return prefix + "/edit";
    }

    /**
     * 修改保存质检报告
     */
    @ApiOperation(value="修改质检报告", notes="修改质检报告", httpMethod = "POST")
    @RequiresPermissions("check:checkingRegister:edit")
    @Log(title = "质检-质检报告 ",operating = "修改质检报告 ", action = BusinessType.UPDATE)
    @PostMapping("/edit")
    @ResponseBody
    public AjaxResult editSave(CheckingRegister checkingRegister) {
        return checkingRegisterService.edit(checkingRegister);
    }

    /**
     * 删除质检报告
     */
    @ApiOperation(value="删除质检报告", notes="删除质检报告", httpMethod = "POST")
    @RequiresPermissions("check:checkingRegister:remove")
    @Log(title = "质检-质检报告 ",operating = "质检报告删除", action = BusinessType.UPDATE)
    @PostMapping("/remove")
    @ResponseBody
    public AjaxResult remove(@ApiParam(name = "id", value = "质检头表id字符串")String ids){
        if (StringUtils.isNull(ids)){
            return AjaxResult.error("id为空");
        }
        return toAjax(checkingRegisterService.removeByIds(Arrays.asList(Convert.toIntArray(ids))));
    }

}