CheckingRegisterService.java 7.11 KB
package com.huaheng.pc.check.checkingRegister.service;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;

import com.huaheng.common.utils.Wrappers;
import com.huaheng.common.exception.service.ServiceException;
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.web.domain.AjaxResult;
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.config.material.domain.Material;
import com.huaheng.pc.config.material.service.MaterialService;
import com.huaheng.pc.system.dict.domain.DictData;
import com.huaheng.pc.system.dict.service.IDictDataService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.huaheng.pc.check.checkingRegister.domain.CheckingRegister;
import com.huaheng.pc.check.checkingRegister.mapper.CheckingRegisterMapper;
@Service
public class CheckingRegisterService extends ServiceImpl<CheckingRegisterMapper, CheckingRegister> {

    @Resource
    private CheckHeaderService checkHeaderService;
    @Resource
    private CheckDetailService checkDetailService;
    @Resource
    private MaterialService materialService;
    @Resource
    private IDictDataService dictDataService;

    /**
     * 质检登记修改
     * @return
     */
    public AjaxResult edit(CheckingRegister checkingRegister){

        checkingRegister.setLastUpdatedBy(ShiroUtils.getLoginName());
        checkingRegister.setCheckAt(new Date());
        checkingRegister.setCheckBy(ShiroUtils.getLoginName());
        if (StringUtils.isNull(checkingRegister.getId())){
            checkingRegister.setCreatedBy(ShiroUtils.getLoginName());
            if (!this.save(checkingRegister)){
                throw new ServiceException("添加质检登记失败");
            }
        } else {
            if (!this.updateById(checkingRegister)){
                throw new SecurityException("更新质检登记失败");
            }
        }
        return AjaxResult.success("保存成功");
    }

    /**
     * 如果质检报告为空,返回所有库存状态记录
     * @param checkDetailId
     * @return
     */
    public List<CheckingRegister> emptyList(Integer checkDetailId){
        List<CheckingRegister> list = new ArrayList<>();
        List<DictData> dictDataList = dictDataService.selectDictDataByType("inventorySts");
        CheckDetail checkDetail = checkDetailService.getById(checkDetailId);
        for (DictData dictData: dictDataList){
            CheckingRegister checkingRegister1 = new CheckingRegister();
            checkingRegister1.setCheckDetailId(checkDetailId);
            checkingRegister1.setCheckHeaderId(checkDetail.getCheckHeaderId());
            checkingRegister1.setWarehouseCode(ShiroUtils.getWarehouseCode());
            checkingRegister1.setCheckCode(checkDetail.getCheckCode());
            checkingRegister1.setReceiptDetailId(checkDetail.getReceiptDetailId());
            checkingRegister1.setReceiptCode(checkDetail.getReceiptCode());
            checkingRegister1.setReferCode(checkDetail.getReferCode());
            checkingRegister1.setReferLineId(checkDetail.getReferLineId());
            checkingRegister1.setReferPlatform(checkDetail.getReferPlatform());
            checkingRegister1.setMaterialCode(checkDetail.getMaterialCode());
            checkingRegister1.setMaterialName(checkDetail.getMaterialName());
            checkingRegister1.setMaterialSpec(checkDetail.getMaterialSpec());
            checkingRegister1.setMaterialUnit(checkDetail.getMaterialUnit());
            checkingRegister1.setCompanyCode(checkDetail.getCompanyCode());
            checkingRegister1.setInventorySts(dictData.getDictValue());
            checkingRegister1.setCheckBy(ShiroUtils.getLoginName());
            checkingRegister1.setCreated(new Date());
            checkingRegister1.setCreatedBy(ShiroUtils.getLoginName());
            checkingRegister1.setLastUpdated(new Date());
            checkingRegister1.setLastUpdatedBy(ShiroUtils.getLoginName());
            list.add(checkingRegister1);
        }
        return list;
    }

    /**
     * 如果质检未完成,返回
     * @param checkDetailId
     * @return
     */
    public List<CheckingRegister> notCompleteList(Integer checkDetailId){

        LambdaQueryWrapper<CheckingRegister> lambda = Wrappers.lambdaQuery();
        lambda.eq(CheckingRegister::getCheckDetailId, checkDetailId);
        List<CheckingRegister> list = this.list(lambda);
        List<CheckingRegister> list1 = new ArrayList<>();
        List<DictData> dictDataList = dictDataService.selectDictDataByType("inventoryStatus");
        CheckDetail checkDetail = checkDetailService.getById(checkDetailId);
        for (CheckingRegister checkingRegister: list){
            for (DictData dictData: dictDataList){
                if (!checkingRegister.getInventorySts().equals(dictData.getDictValue())) {
                    CheckingRegister checkingRegister1 = new CheckingRegister();
                    checkingRegister1.setCheckDetailId(checkDetailId);
                    checkingRegister1.setCheckHeaderId(checkDetail.getCheckHeaderId());
                    checkingRegister1.setWarehouseCode(ShiroUtils.getWarehouseCode());
                    checkingRegister1.setCheckCode(checkDetail.getCheckCode());
                    checkingRegister1.setReceiptDetailId(checkDetail.getReceiptDetailId());
                    checkingRegister1.setReceiptCode(checkDetail.getReceiptCode());
                    checkingRegister1.setReferCode(checkDetail.getReferCode());
                    checkingRegister1.setReferLineId(checkDetail.getReferLineId());
                    checkingRegister1.setReferPlatform(checkDetail.getReferPlatform());
                    checkingRegister1.setMaterialCode(checkDetail.getMaterialCode());
                    checkingRegister1.setMaterialName(checkDetail.getMaterialName());
                    checkingRegister1.setMaterialSpec(checkDetail.getMaterialSpec());
                    checkingRegister1.setMaterialUnit(checkDetail.getMaterialUnit());
                    checkingRegister1.setCompanyCode(checkDetail.getCompanyCode());
                    checkingRegister1.setInventorySts(dictData.getDictValue());
                    checkingRegister1.setCheckBy(ShiroUtils.getLoginName());
                    checkingRegister1.setCreated(new Date());
                    checkingRegister1.setCreatedBy(ShiroUtils.getLoginName());
                    checkingRegister1.setLastUpdated(new Date());
                    checkingRegister1.setLastUpdatedBy(ShiroUtils.getLoginName());
                    list1.add(checkingRegister1);
                }
            }
        }
        for (CheckingRegister checkingRegister: list) {
            list1.add(checkingRegister);
        }
        return list1;
    }
}