jiaosong
2023-08-18 26e4b49b3b51e123e9ce2b055c8e0d37d35df260
server/src/main/java/doumeemes/service/business/impl/SalaryParamServiceImpl.java
@@ -14,14 +14,18 @@
import doumeemes.dao.ext.MaterialExtMapper;
import doumeemes.dao.ext.dto.SalaryParamDTO;
import doumeemes.dao.ext.dto.SalaryParamImportDTO;
import doumeemes.dao.ext.vo.DepartmentExtListVO;
import doumeemes.service.business.DepartmentService;
import doumeemes.service.business.SalaryParamService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import doumeemes.service.ext.DepartmentExtService;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
@@ -43,6 +47,9 @@
    @Autowired
    private DepartmentMapper departmentMapper;
    @Lazy
    @Autowired
    private DepartmentExtService departmentExtService;
    @Autowired
    private MaterialMapper materialMapper;
@@ -64,6 +71,7 @@
        insert.setProcedureId(salaryParam.getProcedureId());
        insert.setMaterialId(salaryParam.getMaterialId());
        insert.setDeleted((byte) Constants.ZERO);
        insert.setType(salaryParam.getType());
        if(findOne(insert) != null){
            throw  new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"同一个物料在相同工序不能重复配置哦!");
        }
@@ -199,17 +207,24 @@
        for (int i = 0; i < plansList.size(); i++) {
            SalaryParamImportDTO salaryParamImportDTO = plansList.get(i);
            QueryWrapper<Department> wrapper = new QueryWrapper<>();
            wrapper.lambda()
                    .eq(Department::getName,salaryParamImportDTO.getDepartName())
                    .eq(Department::getType,Constants.DEPART_TYPE.factory)
                    .eq(Department::getDeleted,Constants.ZERO)
                    .last("limit 1");
            Department department = departmentMapper.selectOne(wrapper);
            if (Objects.isNull(department)){
//
//            QueryWrapper<Department> wrapper = new QueryWrapper<>();
//            wrapper.lambda()
//                    .eq(Department::getName,salaryParamImportDTO.getDepartName())
//                    .eq(Department::getType,Constants.DEPART_TYPE.factory)
//                    .eq(Department::getDeleted,Constants.ZERO)
//                    .last("limit 1");
            Department dparam = new Department();
            dparam.setName(salaryParamImportDTO.getDepartName());
            dparam.setDeleted(Constants.ZERO);
            dparam.setType(Constants.DEPART_TYPE.factory);
            dparam = departmentExtService.findOne(dparam);
            if (Objects.isNull(dparam)){
                throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "导入数据内容【公司名称】有误!");
            }
            DepartmentExtListVO department = new DepartmentExtListVO();
            BeanUtils.copyProperties(dparam, department);
            Integer comDepartId = departmentExtService.getComDepartId(department);
            QueryWrapper<Material> materialWrapper = new QueryWrapper<>();
            materialWrapper.lambda()
@@ -222,16 +237,20 @@
            if (Objects.isNull(material)){
                throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "导入数据内容【产品编码】有误!");
            }
            QueryWrapper<MaterialDistribute>  materialDistribute = new QueryWrapper<>();
            materialDistribute.lambda()
                                .eq(MaterialDistribute::getDeleted,Constants.ZERO)
                                .eq(MaterialDistribute::getMaterialId,material.getId())
                                .eq(MaterialDistribute::getRootDepartId,department.getRootId())
                                .eq(MaterialDistribute::getDepartId,department.getParentId());
            MaterialDistribute materialDistribute1 = materialDistributeMapper.selectOne(materialDistribute);
//            if (Objects.nonNull(material) && !Objects.equals(material.getName(),salaryParamImportDTO.getMaterialName())){
//                throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "导入数据内容【产品名称】有误!");
//            }
            if (Objects.nonNull(material) && !Objects.equals(material.getName(),salaryParamImportDTO.getMaterialName())){
                throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "导入数据内容【产品名称】有误!");
            }
            QueryWrapper<MaterialDistribute> materialDistributeQueryWrapper = new QueryWrapper<>();
            materialDistributeQueryWrapper.lambda()
                    .eq(MaterialDistribute::getMaterialId,material.getId())
                    .eq(MaterialDistribute::getRootDepartId,department.getRootId())
                    .eq(MaterialDistribute::getDepartId, comDepartId)
                    .eq(MaterialDistribute::getDeleted,Constants.ZERO)
                    .last("limit 1");
            MaterialDistribute materialDistribute = materialDistributeMapper.selectOne(materialDistributeQueryWrapper);
            if (Objects.isNull(materialDistribute)){
                throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "导入数据内容【产品编码】有误!");
            }
            QueryWrapper<Procedures> proceduresWrapper = new QueryWrapper<>();
            proceduresWrapper.lambda()
                    .eq(Procedures::getName,salaryParamImportDTO.getProcedureName())
@@ -246,7 +265,7 @@
            salaryParam.setRootDepartId(department.getRootId());
            salaryParam.setDepartId(department.getId());
            salaryParam.setProcedureId(procedures.getId());
            salaryParam.setMaterialId(materialDistribute1.getId());
            salaryParam.setMaterialId(materialDistribute.getId());
            salaryParam.setSalary(salaryParamImportDTO.getSalary());
            salaryParam.setNum(new BigDecimal(salaryParamImportDTO.getNum()));
            salaryParam.setTimes(getIntegerTimes(salaryParamImportDTO.getTimesName()));
@@ -259,7 +278,7 @@
            }).orElse(0);
            salaryParam.setUnqualified(unqualified);
            Integer type = Optional.ofNullable(salaryParamImportDTO.getUnqualified()).map(s -> {
            Integer type = Optional.ofNullable(salaryParamImportDTO.getType()).map(s -> {
                if ("计件".equals(s)) {
                    return 0;
                } else {