cuijian
2023-10-24 6d21c8f6f4cc834c5d309a9ee5005158a31c0722
问题修改
已添加1个文件
已修改6个文件
245 ■■■■■ 文件已修改
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/InspectionProjectController.java 151 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/OperationCertificateController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/OperationCertificateApply.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/OperationCertificateDetail.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/OperationCertificateDetailMapper.xml 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/InspectionProjectImportVo.java 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/OperationCertificateApplyPage.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/InspectionProjectController.java
@@ -1,14 +1,26 @@
package org.jeecg.modules.eam.controller;
import java.io.IOException;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.modules.eam.entity.InspectionProject;
import org.jeecg.modules.eam.entity.InspectionProjectCategory;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.common.util.ImportExcelUtil;
import org.jeecg.modules.base.entity.Unit;
import org.jeecg.modules.base.service.IUnitService;
import org.jeecg.modules.eam.entity.*;
import org.jeecg.modules.eam.service.IInspectionProjectService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -18,8 +30,18 @@
import org.jeecg.modules.eam.service.IInspectionProjectCategoryService;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.modules.eam.vo.InspectionProjectImportVo;
import org.jeecg.modules.system.entity.SysDict;
import org.jeecg.modules.system.entity.SysDictItem;
import org.jeecg.modules.system.service.ISysDictItemService;
import org.jeecg.modules.system.service.ISysDictService;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.entity.ImportParams;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -40,6 +62,12 @@
    private IInspectionProjectService inspectionProjectService;
    @Autowired
    private IInspectionProjectCategoryService inspectionProjectCategoryService;
    @Autowired
    private ISysDictService sysDictService;
    @Autowired
    private ISysDictItemService sysDictItemService;
    @Autowired
    private IUnitService unitService;
    /**
     * åˆ†é¡µåˆ—表查询
@@ -212,8 +240,123 @@
    */
    //@RequiresPermissions("mom_eam_inspection_project:importExcel")
    @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
        return super.importExcel(request, response, InspectionProject.class);
    @Transactional(rollbackFor = Exception.class)
    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) throws IOException {
        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
        LoginUser user= (LoginUser) SecurityUtils.getSubject().getPrincipal();
        Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
        // é”™è¯¯ä¿¡æ¯
        List<String> errorMessage = new ArrayList<>();
        int successLines = 0, errorLines = 0;
        for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
            MultipartFile file = entity.getValue();
            ImportParams params = new ImportParams();
            params.setNeedSave(true);
            try {
                List<InspectionProjectImportVo> list = ExcelImportUtil.importExcel(file.getInputStream(), InspectionProjectImportVo.class, params);
                for (int i = 0; i < list.size(); i++) {
                    InspectionProjectImportVo inspectionProjectImportVo = list.get(i);
                    InspectionProject inspectionProject = new InspectionProject();
                    InspectionProjectCategory inspectionProjectCategory = inspectionProjectCategoryService.getOne(new QueryWrapper<InspectionProjectCategory>().eq("name", inspectionProjectImportVo.getInspectionProjectCategoryId()), false);
                    Unit unit = unitService.getOne(new QueryWrapper<Unit>().eq("name",inspectionProjectImportVo.getUnitId()),false);
                    inspectionProject.setInspectionTool(inspectionProjectImportVo.getInspectionTool());
                    if (StringUtils.isBlank(inspectionProjectImportVo.getNum())) {
                        errorMessage.add("第" + (i + 1) + "行导入失败,原因:点检项目编码缺失,请填写必填项后再导入;");
                        errorLines++;
                        continue;
                    }else {
                        inspectionProject.setNum(inspectionProjectImportVo.getNum());
                    }
                    if(StringUtils.isBlank(inspectionProjectImportVo.getName())){
                        errorMessage.add("第"+(i+1)+"行导入失败,原因:点检项目名称缺失,请填写必填项后再导入;");
                        errorLines++;
                        continue;
                    }else {
                        inspectionProject.setNum(inspectionProjectImportVo.getName());
                    }
                    if(StringUtils.isBlank(inspectionProjectImportVo.getTestValueType())){
                        errorMessage.add("第"+(i+1)+"行导入失败,原因:检验值类型缺失,请填写必填项后再导入;");
                        errorLines++;
                        continue;
                    }else if(CollectionUtils.isEmpty(sysDictItemService.lambdaQuery().eq(SysDictItem::getDictId,sysDictService.lambdaQuery().eq(SysDict::getDictCode,"test_value_type").one().getId()).eq(SysDictItem::getItemText,inspectionProjectImportVo.getTestValueType()).list())){
                        errorMessage.add("第" + (i + 1) + "行导入失败,原因:检验值类型不存在,请先维护检验值类型;");
                        errorLines++;
                        continue;
                    }else {
                        inspectionProject.setTestValueType(sysDictItemService.lambdaQuery().eq(SysDictItem::getDictId,sysDictService.lambdaQuery().eq(SysDict::getDictCode,"test_value_type").one().getId()).eq(SysDictItem::getItemText,inspectionProjectImportVo.getInspectionMethod()).one().getItemValue());
                    }
                    if(ObjectUtils.isNull(inspectionProjectCategory)) {
                        errorMessage.add("第"+(i+1)+"行导入失败,原因:该点检项目分类不存在,请先维护点检项目分类;");
                        errorLines++;
                        continue;
                    }else {
                        inspectionProject.setInspectionProjectCategoryId(inspectionProjectCategory.getId());
                    }
                    if("枚举型".equals(inspectionProjectImportVo.getTestValueType())){
                        if(ObjectUtils.isNull(inspectionProjectImportVo.getDetectionStandard())){
                            errorMessage.add("第"+(i+1)+"行导入失败,原因:检测标准缺失,请填写必填项后再导入;");
                            errorLines++;
                            continue;
                        }else {
                            inspectionProject.setDetectionStandard(inspectionProjectImportVo.getDetectionStandard());
                        }
                    }
                    if("数值型".equals(inspectionProjectImportVo.getTestValueType())){
                        if(ObjectUtils.isNull(inspectionProjectImportVo.getSurfaceValue())){
                            errorMessage.add("第"+(i+1)+"行导入失败,原因:名义值缺失,请填写必填项后再导入;");
                            errorLines++;
                            continue;
                        }else{
                            inspectionProject.setSurfaceValue(inspectionProjectImportVo.getSurfaceValue());
                        }
                        if(ObjectUtils.isNull(inspectionProjectImportVo.getUpValue())){
                            errorMessage.add("第"+(i+1)+"行导入失败,原因:上偏差缺失,请填写必填项后再导入;");
                            errorLines++;
                            continue;
                        }else{
                            inspectionProject.setUpValue(inspectionProjectImportVo.getUpValue());
                        }
                        if(ObjectUtils.isNull(inspectionProjectImportVo.getDownValue())){
                            errorMessage.add("第"+(i+1)+"行导入失败,原因:下偏差缺失,请填写必填项后再导入;");
                            errorLines++;
                            continue;
                        }else {
                            inspectionProject.setDownValue(inspectionProjectImportVo.getDownValue());
                        }
                    }
                    if(CollectionUtils.isEmpty(sysDictItemService.lambdaQuery().eq(SysDictItem::getDictId,sysDictService.lambdaQuery().eq(SysDict::getDictCode,"inspection_method").one().getId()).eq(SysDictItem::getItemText,inspectionProjectImportVo.getInspectionMethod()).list())){
                        errorMessage.add("第" + (i + 1) + "行导入失败,原因:点检方法不存在,请先维护点检方法;");
                        errorLines++;
                        continue;
                    }else{
                        inspectionProject.setInspectionMethod(sysDictItemService.lambdaQuery().eq(SysDictItem::getDictId,sysDictService.lambdaQuery().eq(SysDict::getDictCode,"inspection_method").one().getId()).eq(SysDictItem::getItemText,inspectionProjectImportVo.getInspectionMethod()).one().getItemValue());
                    }
                    if(ObjectUtils.isNull(unit)){
                        errorMessage.add("第" + (i + 1) + "行导入失败,原因:计量单位不存在,请先维护计量单位;");
                        errorLines++;
                        continue;
                    }else {
                        inspectionProject.setUnitId(unit.getId());
                    }
                    List<InspectionProject> inspectionProjectList = inspectionProjectService.lambdaQuery().eq(InspectionProject::getNum,inspectionProjectImportVo.getNum()).eq(InspectionProject::getDelFlag,CommonConstant.DEL_FLAG_0).list();
                    if(CollectionUtils.isEmpty(inspectionProjectList)){
                        inspectionProjectService.save(inspectionProject);
                        successLines++;
                    }
                }
            } catch (Exception e) {
                errorMessage.add("发生异常:" + e.getMessage());
                log.error(e.getMessage(), e);
                return (Result<?>) errorMessage;
            } finally {
                try {
                    file.getInputStream().close();
                } catch (IOException e) {
                    log.error(e.getMessage(), e);
                }
            }
        }
        return ImportExcelUtil.imporReturnRes(errorLines, successLines, errorMessage);
    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/OperationCertificateController.java
@@ -12,6 +12,7 @@
import org.jeecg.common.util.DateUtils;
import org.jeecg.modules.eam.entity.OperationCertificateApplyDetail;
import org.jeecg.modules.eam.service.IdentityService;
import org.jeecg.modules.system.service.SysIdentityService;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
@@ -60,7 +61,7 @@
    private IOperationCertificateDetailService operationCertificateDetailService;
     @Autowired
     private SysIdentityService sysIdentityService;
     private IdentityService identityService;
    
    /**
     * åˆ†é¡µåˆ—表查询
@@ -104,14 +105,14 @@
     @PostMapping(value = "/addOperationCertificate")
     public Result<String> addOperationCertificate(@RequestBody List<OperationCertificateApplyDetail> operationCertificateList) {
        for(OperationCertificateApplyDetail operationCertificateApplyDetail : operationCertificateList){
            if("Y".equals(operationCertificateApplyDetail.getExaminationConclusion())){
            if("pass".equals(operationCertificateApplyDetail.getExaminationConclusion())){
                Date currentDate = new Date();
                Calendar c = Calendar.getInstance();
                c.setTime(currentDate);
                c.add(Calendar.YEAR, 1);
                currentDate = c.getTime();
                OperationCertificate operationCertificate = new OperationCertificate();
                operationCertificate.setNum(sysIdentityService.getNumByTypeAndLength("OperationCertificate", 4));
                operationCertificate.setNum(identityService.getNumByTypeAndLength("OperationCertificate", 4));
                operationCertificate.setUserId(operationCertificateApplyDetail.getUserId());
                operationCertificate.setEquipmentIds(operationCertificateApplyDetail.getEquipmentIds());
                operationCertificate.setCurrentCycleScore(12);
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/OperationCertificateApply.java
@@ -53,6 +53,11 @@
    @Dict(dictTable = "sys_user", dicText = "realname", dicCode = "id")
    @ApiModelProperty(value = "申请人")
    private String applicant;
    /**办理人*/
    @Excel(name = "办理人", width = 15, dictTable = "sys_user", dicText = "realname", dicCode = "id")
    @Dict(dictTable = "sys_user", dicText = "realname", dicCode = "id")
    @ApiModelProperty(value = "办理人")
    private String handlePerson;
    /**审核状态*/
    @Excel(name = "审核状态", width = 15, dicCode = "certificate_apply_status")
    @Dict(dicCode = "certificate_apply_status")
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/OperationCertificateDetail.java
@@ -1,10 +1,8 @@
package org.jeecg.modules.eam.entity;
import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.jeecg.common.aspect.annotation.Dict;
@@ -76,4 +74,17 @@
    @Excel(name = "属性字段5", width = 15)
    @ApiModelProperty(value = "属性字段5")
    private String uda5;
    @ApiModelProperty(value = "扣除分数")
    @TableField(exist = false)
    private Integer deductionScore;
    @ApiModelProperty(value = "扣分项内容")
    @TableField(exist = false)
    private String deductionScoreName;
    @ApiModelProperty(value = "扣分设备")
    @TableField(exist = false)
    private String equipmentName;
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/OperationCertificateDetailMapper.xml
@@ -9,8 +9,11 @@
             operation_certificate_id = #{mainId}     </delete>
    
    <select id="selectByMainId" parameterType="java.lang.String" resultType="org.jeecg.modules.eam.entity.OperationCertificateDetail">
        SELECT *
        FROM  mom_eam_operation_certificate_detail
        SELECT t1.*,t3.name equipmentName,t4.deduction_score deductionScore,t4.content deductionScoreName
        FROM  mom_eam_operation_certificate_detail t1
        left join mom_eam_operation_certificate t2 on t1.operation_certificate_id = t2.id
        left join mom_eam_equipment t3 on t3.id = t1.equipment_id
        left join mom_eam_base_deduction_item t4 on t4.id = t1.deduction_item
        WHERE
             operation_certificate_id = #{mainId}     </select>
</mapper>
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/InspectionProjectImportVo.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,51 @@
package org.jeecg.modules.eam.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import org.jeecgframework.poi.excel.annotation.Excel;
import java.math.BigDecimal;
@Data
@Accessors(chain = true)
public class InspectionProjectImportVo {
    @Excel(name= "点检项目分类")
    private String inspectionProjectCategoryId;
    @Excel(name="点检项目编码")
    private String num;
    @Excel(name = "点检项目名称")
    private String name;
    @Excel(name = "计量单位",dictTable = "mom_base_unit", dicCode = "id", dicText = "name")
    private String unitId;
    @Excel(name = "检验值类型",dicCode = "test_value_type")
    private String testValueType;
    @Excel(name = "点检方法",dicCode = "inspection_method")
    private String inspectionMethod;
    @Excel(name = "检测标准")
    private String detectionStandard;
    @Excel(name = "点检工具")
    private String inspectionTool;
    @Excel(name = "名义值")
    private BigDecimal surfaceValue;
    @Excel(name = "上偏差")
    private BigDecimal upValue;
    @Excel(name = "下偏差")
    private BigDecimal downValue;
    @Excel(name = "备注")
    private String remark;
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/OperationCertificateApplyPage.java
@@ -52,6 +52,11 @@
    @Dict(dictTable = "sys_user", dicText = "realname", dicCode = "id")
    @ApiModelProperty(value = "申请人")
    private String applicant;
    /**办理人*/
    @Excel(name = "办理人", width = 15, dictTable = "sys_user", dicText = "realname", dicCode = "id")
    @Dict(dictTable = "sys_user", dicText = "realname", dicCode = "id")
    @ApiModelProperty(value = "办理人")
    private String handlePerson;
    /**审核状态*/
    @Excel(name = "审核状态", width = 15, dicCode = "certificate_apply_status")
    @Dict(dicCode = "certificate_apply_status")