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

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

import com.baomidou.mybatisplus.core.toolkit.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.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 org.springframework.stereotype.Service;
import javax.annotation.Resource;
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;
    /**
     * 质检登记修改
     * @return
     */
    public AjaxResult edit(CheckingRegister checkingRegister){

        //判断关联质检头表信息是否正确
        CheckHeader checkHeader = checkHeaderService.getById(checkingRegister.getCheckHeaderId());
        if (checkHeader.getEnable() == 0){
            return AjaxResult.error("关联质检单无效,不允许修改");
        }
        //判断关联质检头表状态是否允许修改
        if ("30".equals(checkHeader.getStatus())){
            return AjaxResult.error("关联质检单已完成质检不允许修改质检登记");
        }
        //判断关联质检明细信息是否正确
        LambdaQueryWrapper<CheckDetail> checkDetailLambda = Wrappers.lambdaQuery();
        checkDetailLambda.eq(CheckDetail::getCheckHeaderId, checkingRegister.getCheckHeaderId());
        List<CheckDetail> checkDetails = checkDetailService.list();

        int i = 0;
        for (CheckDetail checkDetail: checkDetails){
            if (checkDetail.getId() == checkingRegister.getReceiptDetailId()){
                i = 1;
            }
        }
        if (i == 0){
            return AjaxResult.error("质检单下不存在该质检明细");
        }
        //判断关联质检明细物料信息是否正确
        CheckDetail checkDetail = checkDetailService.getById(checkingRegister.getReceiptDetailId());
        if (checkDetail.getMaterialCode() != checkingRegister.getMaterialCode()){
            return AjaxResult.error("关联质检明细的物料编码不匹配");
        }
        LambdaQueryWrapper<Material> materialLambda = Wrappers.lambdaQuery();
        materialLambda.eq(Material::getCode, checkingRegister.getMaterialCode());
        Material material = materialService.getOne(materialLambda);
        checkingRegister.setMaterialName(material.getName());
        checkingRegister.setMaterialSpec(material.getSpec());
        checkingRegister.setMaterialUnit(material.getUnit());
        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("");
    }
}