add:物料项点

This commit is contained in:
zhangzhiqiang
2023-04-24 19:08:57 +08:00
parent 4460aeb7b2
commit 8c3e1d0a3a
29 changed files with 1544 additions and 2 deletions

View File

@@ -0,0 +1,7 @@
package org.nl.common.handler;
@FunctionalInterface
public
interface LockProcess {
void process();
}

View File

@@ -9,11 +9,15 @@ import java.util.HashMap;
public class CodeUtil{
public static String getNewCode(String ruleCode) {
final String[] code = {""};
HashMap<String,String> map = new HashMap<>();
map.put("flag", "1");
map.put("code", ruleCode);
GenCodeService service = SpringContextHolder.getBean(GenCodeServiceImpl.class);
return service.codeDemo(map);
String codeId = service.queryIdByCode(ruleCode);
RedissonUtils.lock(() -> {
code[0] = service.codeDemo(map);
}, codeId, 3);
return code[0];
}
}

View File

@@ -0,0 +1,66 @@
package org.nl.wms.ql.controller.inspection;
import cn.hutool.core.lang.Assert;
import com.alibaba.fastjson.JSONObject;
import org.nl.common.TableDataInfo;
import org.nl.common.domain.query.PageQuery;
import org.nl.common.utils.SecurityUtils;
import org.nl.wms.ql.service.inspection.IMdQlInspectionpointService;
import org.nl.wms.ql.service.inspection.dao.MdQlInspectionpoint;
import org.nl.wms.ql.service.inspection.dto.InspectionQuery;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.Date;
import java.util.List;
/**
* <p>
* 物料检测项点 前端控制器
* </p>
*
* @author generator
* @since 2023-04-23
*/
@RestController
@RequestMapping("/api/mdQlInspectionpoint")
public class MdQinspectionPointController {
@Autowired
private IMdQlInspectionpointService inspectionpointService;
@GetMapping()
public ResponseEntity<Object> query(InspectionQuery query, PageQuery pageQuery){
return new ResponseEntity<>(TableDataInfo.build(inspectionpointService.page(query,pageQuery)),HttpStatus.OK);
}
@PostMapping("/create")
public ResponseEntity<Object> create(@RequestBody JSONObject req){
Assert.notNull(req,"参数不能为空");
inspectionpointService.create(req);
return new ResponseEntity<>(HttpStatus.OK);
}
@PostMapping("/update")
public ResponseEntity<Object> update(@RequestBody JSONObject req){
Assert.notNull(req,"参数不能为空");
MdQlInspectionpoint form = req.toJavaObject(MdQlInspectionpoint.class);
form.setUpdateId(SecurityUtils.getCurrentUserId());
form.setUpdateName(SecurityUtils.getCurrentNickName());
form.setUpdateTime(new Date());
inspectionpointService.updateById(form);
return new ResponseEntity<>(HttpStatus.OK);
}
@PostMapping("/delete")
public ResponseEntity<Object> delete(@RequestBody List<String> ids){
Assert.notNull(ids,"参数不能为空");
inspectionpointService.removeByIds(ids);
return new ResponseEntity<>(HttpStatus.OK);
}
}

View File

@@ -0,0 +1,87 @@
package org.nl.wms.ql.controller.inspection;
import cn.dev33.satoken.annotation.SaIgnore;
import cn.hutool.core.lang.Assert;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.google.common.collect.Lists;
import org.jetbrains.annotations.NotNull;
import org.nl.common.TableDataInfo;
import org.nl.common.domain.query.PageQuery;
import org.nl.common.utils.IdUtil;
import org.nl.common.utils.SecurityUtils;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.modules.wql.util.SpringContextHolder;
import org.nl.wms.ql.service.inspection.IMdQlInspectionpointService;
import org.nl.wms.ql.service.inspection.IMdQlMaterialinspectionService;
import org.nl.wms.ql.service.inspection.dao.MdQlInspectionpoint;
import org.nl.wms.ql.service.inspection.dao.MdQlMaterialinspection;
import org.nl.wms.ql.service.inspection.dto.MaterialInspectionQuery;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.TransactionDefinition;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.support.DefaultTransactionDefinition;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
import java.util.*;
import java.util.function.BiFunction;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* <p>
* 物料检测项点 前端控制器
* </p>
*
* @author generator
* @since 2023-04-23
*/
@RestController
@RequestMapping("/api/materialInspection")
public class MdQlMaterialinspectionController {
@Autowired
private IMdQlInspectionpointService inspectionpointService;
@Autowired
private IMdQlMaterialinspectionService materialinspectionService;
@GetMapping("/mst")
@SaIgnore
public ResponseEntity<Object> query(MaterialInspectionQuery query, PageQuery pageQuery){
return new ResponseEntity<>(TableDataInfo.build(materialinspectionService.pageQuery(query,pageQuery)),HttpStatus.OK);
}
@PostMapping("/create")
public ResponseEntity<Object> create(@RequestBody JSONObject req){
Assert.notNull(req,"参数不能为空");
materialinspectionService.create(req);
return new ResponseEntity<>(HttpStatus.OK);
}
@PostMapping("/update")
public ResponseEntity<Object> update(@RequestBody JSONObject req){
Assert.notNull(req,"参数不能为空");
MdQlMaterialinspection form = req.toJavaObject(MdQlMaterialinspection.class);
form.setUpdateId(SecurityUtils.getCurrentUserId());
form.setUpdateName(SecurityUtils.getCurrentNickName());
form.setUpdateTime(new Date());
materialinspectionService.updateById(form);
return new ResponseEntity<>(HttpStatus.OK);
}
@PostMapping("/delete")
public ResponseEntity<Object> delete(@RequestBody List<String> ids){
Assert.notNull(ids,"参数不能为空");
inspectionpointService.removeByIds(ids);
return new ResponseEntity<>(HttpStatus.OK);
}
}

View File

@@ -0,0 +1,21 @@
package org.nl.wms.ql.controller.report;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* <p>
* 质检报告 前端控制器
* </p>
*
* @author generator
* @since 2023-04-23
*/
@RestController
@RequestMapping("/mdMeInspectionsheet")
public class MdMeInspectionsheetController {
}

View File

@@ -0,0 +1,24 @@
package org.nl.wms.ql.service.inspection;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import org.nl.common.domain.query.PageQuery;
import org.nl.wms.ql.service.inspection.dao.MdQlInspectionpoint;
import org.nl.wms.ql.service.inspection.dto.InspectionQuery;
/**
* <p>
* 检测项点 服务类
* </p>
*
* @author generator
* @since 2023-04-23
*/
public interface IMdQlInspectionpointService extends IService<MdQlInspectionpoint> {
void create(JSONObject form);
Page page(InspectionQuery query, PageQuery pageQuery);
}

View File

@@ -0,0 +1,22 @@
package org.nl.wms.ql.service.inspection;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import org.nl.common.TableDataInfo;
import org.nl.common.domain.query.PageQuery;
import org.nl.wms.ql.service.inspection.dao.MdQlMaterialinspection;
import org.nl.wms.ql.service.inspection.dto.MaterialInspectionQuery;
/**
* <p>
* 物料检测项点 服务类
* </p>
*
* @author generator
* @since 2023-04-23
*/
public interface IMdQlMaterialinspectionService extends IService<MdQlMaterialinspection> {
void create(JSONObject form);
Page pageQuery(MaterialInspectionQuery query, PageQuery pageQuery);
}

View File

@@ -0,0 +1,87 @@
package org.nl.wms.ql.service.inspection.dao;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 检测项点
* </p>
*
* @author generator
* @since 2023-04-23
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("md_ql_inspectionpoint")
public class MdQlInspectionpoint implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 项目id
*/
@TableId(value = "inspection_id", type = IdType.NONE)
private String inspectionId;
/**
* 项目编码
*/
private String inspectionCode;
/**
* 项目名称
*/
private String name;
/**
* 检测类型
*/
private String inspectionType;
/**
* 标准值
*/
private String standard;
/**
* 创建人姓名
*/
private String createName;
/**
* 创建时间
*/
private Date createTime;
/**
* 创建人
*/
private String createId;
/**
* 修改人
*/
private String updateId;
/**
* 修改人姓名
*/
private String updateName;
/**
* 备注
*/
private String remark;
/**
* 修改时间
*/
private Date updateTime;
}

View File

@@ -0,0 +1,81 @@
package org.nl.wms.ql.service.inspection.dao;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.util.Date;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 物料检测项点
* </p>
*
* @author generator
* @since 2023-04-23
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("md_ql_materialinspection")
public class MdQlMaterialinspection implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 物料id
*/
@TableId(value = "material_code")
private String material_code;
/**
* 检测项名称
*/
private String name;
/**
* 项目集合{"项目编号""true"/123.000~123.500}
*/
private String inspections;
/**
* 版本号
*/
private String version;
/**
* 创建人
*/
private String createId;
/**
* 创建人姓名
*/
private String createName;
/**
* 创建时间
*/
private Date createTime;
/**
* 修改人
*/
private String updateId;
/**
* 修改人姓名
*/
private String updateName;
/**
* 修改时间
*/
private Date updateTime;
/**
* 是否启用
*/
private Boolean isUsed;
}

View File

@@ -0,0 +1,44 @@
package org.nl.wms.ql.service.inspection.dao.TypeHandler;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import jdk.nashorn.internal.parser.JSONParser;
import org.apache.ibatis.type.*;
import org.nl.wms.ql.service.inspection.dao.MdQlInspectionpoint;
import java.sql.CallableStatement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
/*
* @author ZZQ
* @Date 2023/4/24 09:50
*/
@MappedJdbcTypes(JdbcType.VARCHAR)
@MappedTypes(JSONArray.class)
public class InspectionArrayHandler extends BaseTypeHandler<List<MdQlInspectionpoint>> {
@Override
public void setNonNullParameter(PreparedStatement ps, int i, List<MdQlInspectionpoint> parameter, JdbcType jdbcType) throws SQLException {
ps.setString(i, JSON.toJSONString(parameter));
}
@Override
public List<MdQlInspectionpoint> getNullableResult(ResultSet rs, String columnName) throws SQLException {
return JSONArray.parseArray(rs.getString(columnName),MdQlInspectionpoint.class);
}
@Override
public List<MdQlInspectionpoint> getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
return JSONArray.parseArray(rs.getString(columnIndex),MdQlInspectionpoint.class);
}
@Override
public List<MdQlInspectionpoint> getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
return JSONArray.parseArray(cs.getString(columnIndex),MdQlInspectionpoint.class);
}
}

View File

@@ -0,0 +1,16 @@
package org.nl.wms.ql.service.inspection.dao.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.nl.wms.ql.service.inspection.dao.MdQlInspectionpoint;
/**
* <p>
* 检测项点 Mapper 接口
* </p>
*
* @author generator
* @since 2023-04-23
*/
public interface MdQlInspectionpointMapper extends BaseMapper<MdQlInspectionpoint> {
}

View File

@@ -0,0 +1,22 @@
package org.nl.wms.ql.service.inspection.dao.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.nl.wms.ql.service.inspection.dao.MdQlMaterialinspection;
import org.nl.wms.ql.service.inspection.dto.MaterialInspectionQuery;
import org.nl.wms.ql.service.inspection.dto.MdQlMaterialinspectionDto;
import java.util.List;
/**
* <p>
* 物料检测项点 Mapper 接口
* </p>
*
* @author generator
* @since 2023-04-23
*/
public interface MdQlMaterialinspectionMapper extends BaseMapper<MdQlMaterialinspection> {
List<MdQlMaterialinspectionDto> pageQuery(@Param("query") MaterialInspectionQuery query);
}

View File

@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.nl.wms.ql.service.inspection.dao.mapper.MdQlMaterialinspectionMapper">
<resultMap id="BaseResultMap" type="org.nl.wms.ql.service.inspection.dto.MdQlMaterialinspectionDto" autoMapping="true">
<id column="id" jdbcType="BIGINT" property="materialCode" />
<result column="inspections" typeHandler="org.nl.wms.ql.service.inspection.dao.TypeHandler.InspectionArrayHandler" property="inspections"></result>
</resultMap>
<select id="pageQuery" resultMap="BaseResultMap">
select
`name`
,material_code
,inspections,version
,create_id
,create_name
,create_time
,update_id
,update_name
,update_time
,is_used
from md_ql_materialinspection
<where>
<if test="query.blurry != null and query.blurry != ''">
material_code '%${query.blurry}%'
</if>
</where>
</select>
</mapper>

View File

@@ -0,0 +1,19 @@
package org.nl.wms.ql.service.inspection.dto;
import lombok.Data;
import org.nl.common.domain.query.BaseQuery;
import org.nl.common.domain.query.QParam;
import org.nl.common.enums.QueryTEnum;
import org.nl.system.service.dept.dao.SysDept;
import org.nl.wms.ql.service.inspection.dao.MdQlInspectionpoint;
import java.util.List;
/*
* @author ZZQ
* @Date 2022/12/15 4:20 下午
*/
@Data
public class InspectionQuery extends BaseQuery<MdQlInspectionpoint> {
}

View File

@@ -0,0 +1,15 @@
package org.nl.wms.ql.service.inspection.dto;
import lombok.Data;
import org.nl.common.domain.query.BaseQuery;
import org.nl.wms.ql.service.inspection.dao.MdQlInspectionpoint;
import org.nl.wms.ql.service.inspection.dao.MdQlMaterialinspection;
/*
* @author ZZQ
* @Date 2022/12/15 4:20 下午
*/
@Data
public class MaterialInspectionQuery extends BaseQuery<MdQlMaterialinspection> {
}

View File

@@ -0,0 +1,83 @@
package org.nl.wms.ql.service.inspection.dto;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.nl.wms.ql.service.inspection.dao.MdQlInspectionpoint;
import org.nl.wms.ql.service.inspection.dao.MdQlMaterialinspection;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* <p>
* 物料检测项点
* </p>
*
* @author generator
* @since 2023-04-23
*/
@Data
public class MdQlMaterialinspectionDto implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 物料id
*/
private String materialCode;
/**
* 检测项名称
*/
private String name;
/**
* 项目集合{"项目编号""true"/123.000~123.500}
*/
private List<MdQlInspectionpoint> inspections;
/**
* 版本号
*/
private String version;
/**
* 创建人
*/
private String createId;
/**
* 创建人姓名
*/
private String createName;
/**
* 创建时间
*/
private Date createTime;
/**
* 修改人
*/
private String updateId;
/**
* 修改人姓名
*/
private String updateName;
/**
* 修改时间
*/
private Date updateTime;
/**
* 是否启用
*/
private Boolean isUsed;
}

View File

@@ -0,0 +1,48 @@
package org.nl.wms.ql.service.inspection.impl;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import io.jsonwebtoken.lang.Assert;
import org.nl.common.domain.query.PageQuery;
import org.nl.common.utils.IdUtil;
import org.nl.common.utils.SecurityUtils;
import org.nl.modules.system.util.CodeUtil;
import org.nl.system.service.dept.dao.SysDept;
import org.nl.wms.ql.service.inspection.IMdQlInspectionpointService;
import org.nl.wms.ql.service.inspection.dao.MdQlInspectionpoint;
import org.nl.wms.ql.service.inspection.dao.mapper.MdQlInspectionpointMapper;
import org.nl.wms.ql.service.inspection.dto.InspectionQuery;
import org.springframework.stereotype.Service;
import java.util.Date;
/**
* <p>
* 检测项点 服务实现类
* </p>
*
* @author generator
* @since 2023-04-23
*/
@Service
public class MdQlInspectionpointServiceImpl extends ServiceImpl<MdQlInspectionpointMapper, MdQlInspectionpoint> implements IMdQlInspectionpointService {
@Override
public void create(JSONObject form) {
Assert.notNull(form,"请求参数不能为空");
MdQlInspectionpoint param = form.toJavaObject(MdQlInspectionpoint.class);
param.setInspectionId(IdUtil.getStringId());
param.setInspectionCode(CodeUtil.getNewCode("INSPECTION_POINT"));
param.setCreateName(SecurityUtils.getCurrentNickName());
param.setCreateId(SecurityUtils.getCurrentUserId());
param.setCreateTime(new Date());
this.save(param);
}
@Override
public Page page(InspectionQuery query, PageQuery pageQuery) {
return this.page(pageQuery.build(MdQlInspectionpoint.class), query.build());
}
}

View File

@@ -0,0 +1,55 @@
package org.nl.wms.ql.service.inspection.impl;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
import io.jsonwebtoken.lang.Assert;
import org.nl.common.TableDataInfo;
import org.nl.common.domain.query.PageQuery;
import org.nl.common.utils.IdUtil;
import org.nl.common.utils.SecurityUtils;
import org.nl.system.service.user.dto.SysUserDetail;
import org.nl.wms.ql.service.inspection.IMdQlMaterialinspectionService;
import org.nl.wms.ql.service.inspection.dao.MdQlInspectionpoint;
import org.nl.wms.ql.service.inspection.dao.MdQlMaterialinspection;
import org.nl.wms.ql.service.inspection.dao.mapper.MdQlMaterialinspectionMapper;
import org.nl.wms.ql.service.inspection.dto.MaterialInspectionQuery;
import org.nl.wms.ql.service.inspection.dto.MdQlMaterialinspectionDto;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
/**
* <p>
* 物料检测项点 服务实现类
* </p>
*
* @author generator
* @since 2023-04-23
*/
@Service
public class MdQlMaterialinspectionServiceImpl extends ServiceImpl<MdQlMaterialinspectionMapper, MdQlMaterialinspection> implements IMdQlMaterialinspectionService {
@Resource
MdQlMaterialinspectionMapper mdQlMaterialinspectionMapper;
@Override
public void create(JSONObject form) {
Assert.notNull(form,"请求参数不能为空");
MdQlMaterialinspection param = form.toJavaObject(MdQlMaterialinspection.class);
param.setInspections(IdUtil.getStringId());
param.setCreateName(SecurityUtils.getCurrentNickName());
param.setCreateId(SecurityUtils.getCurrentUserId());
param.setCreateTime(new Date());
this.save(param);
}
@Override
public Page pageQuery(MaterialInspectionQuery query, PageQuery pageQuery) {
return this.page(pageQuery.build(MdQlMaterialinspection.class), query.build());
}
}

View File

@@ -0,0 +1,16 @@
package org.nl.wms.ql.service.report;
import com.baomidou.mybatisplus.extension.service.IService;
import org.nl.wms.ql.service.report.dao.MdMeInspectionsheet;
/**
* <p>
* 质检报告 服务类
* </p>
*
* @author generator
* @since 2023-04-23
*/
public interface IMdMeInspectionsheetService extends IService<MdMeInspectionsheet> {
}

View File

@@ -0,0 +1,90 @@
package org.nl.wms.ql.service.report.dao;
import com.baomidou.mybatisplus.annotation.TableName;
import java.util.Date;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 质检报告
* </p>
*
* @author generator
* @since 2023-04-23
*/
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("md_me_inspectionsheet")
public class MdMeInspectionsheet implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 质检id
*/
private String inspectionsheetId;
/**
* 质检编号
*/
private String inspectionsheetCode;
/**
* 物料id
*/
private String materialId;
/**
* 批次
*/
private String pcsn;
/**
* 质检单类型
*/
private String type;
/**
* 检测项目集合
*/
private String inspections;
/**
* 创建人
*/
private String createId;
/**
* 创建人姓名
*/
private String createName;
/**
* 创建时间
*/
private Date createTime;
/**
* 修改人
*/
private String updateId;
/**
* 修改人姓名
*/
private String updateName;
/**
* 修改时间
*/
private Date updateTime;
/**
* 是否删除
*/
private Boolean isDeleted;
}

View File

@@ -0,0 +1,16 @@
package org.nl.wms.ql.service.report.dao.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.nl.wms.ql.service.report.dao.MdMeInspectionsheet;
/**
* <p>
* 质检报告 Mapper 接口
* </p>
*
* @author generator
* @since 2023-04-23
*/
public interface MdMeInspectionsheetMapper extends BaseMapper<MdMeInspectionsheet> {
}

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.nl.wms.ql.service.report.dao.mapper.MdMeInspectionsheetMapper">
</mapper>

View File

@@ -0,0 +1,21 @@
package org.nl.wms.ql.service.report.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.nl.wms.ql.service.report.IMdMeInspectionsheetService;
import org.nl.wms.ql.service.report.dao.MdMeInspectionsheet;
import org.nl.wms.ql.service.report.dao.mapper.MdMeInspectionsheetMapper;
import org.springframework.stereotype.Service;
/**
* <p>
* 质检报告 服务实现类
* </p>
*
* @author generator
* @since 2023-04-23
*/
@Service
public class MdMeInspectionsheetServiceImpl extends ServiceImpl<MdMeInspectionsheetMapper, MdMeInspectionsheet> implements IMdMeInspectionsheetService {
}

View File

@@ -0,0 +1,142 @@
<template>
<div class="app-container">
<!--工具栏-->
<div class="head-container">
<div v-if="crud.props.searchToggle">
<!-- 搜索 -->
<label class="el-form-item-label">模糊搜索</label>
<el-input v-model="query.blurry" clearable placeholder="项点名称" style="width: 185px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
<rrOperation :crud="crud" />
</div>
<!--如果想在工具栏加入更多按钮可以使用插槽方式 slot = 'left' or 'right'-->
<crudOperation :permission="permission" />
<!--表单组件-->
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0" :title="crud.status.title" width="475px">
<el-form ref="form" :model="form" :rules="rules" size="mini" label-width="120px">
<el-form-item label="项点名称" prop="name">
<el-input v-model="form.name" style="width: 250px;" />
</el-form-item>
<el-form-item label="标准值">
<el-input v-model="form.standard" style="width: 250px;" />
</el-form-item>
<el-form-item label="项点类型" prop="inspectionType">
<el-select
v-model="form.inspectionType"
placeholder=""
style="width: 250px"
>
<el-option
v-for="item in dict.INSPECTION_POINT_TYPE"
:key="item.id"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="备注">
<el-input v-model="form.remark" :rows="3" type="textarea" style="width: 250px;" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="text" @click="crud.cancelCU">取消</el-button>
<el-button :loading="crud.cu === 2" type="primary" @click="crud.submitCU">确认</el-button>
</div>
</el-dialog>
<!--表格渲染-->
<el-table ref="table" v-loading="crud.loading" :data="crud.data" size="mini" style="width: 100%;" @selection-change="crud.selectionChangeHandler">
<el-table-column type="selection" width="55" />
<el-table-column prop="inspectionCode" label="项点编码" />
<el-table-column prop="name" label="项点名称" />
<el-table-column prop="standard" label="标准值">
<template slot-scope="scope">
{{ is_or_no(scope.row.standard, scope.row.inspectionType) }}
</template>
</el-table-column>
<el-table-column prop="inspectionType" label="项点类型">
<template slot-scope="scope">
{{ dict.label.INSPECTION_POINT_TYPE[scope.row.inspectionType] }}
</template>
</el-table-column>
<el-table-column prop="remark" label="备注" />
<el-table-column v-permission="[]" label="操作" width="120px" align="center" fixed="right">
<template slot-scope="scope">
<udOperation
:data="scope.row"
:permission="permission"
/>
</template>
</el-table-column>
</el-table>
<!--分页组件-->
<pagination />
</div>
</div>
</template>
<script>
import crudInspection from '@/views/wms/ql/inspection/inspectionpoint'
import CRUD, { presenter, header, form, crud } from '@crud/crud'
import rrOperation from '@crud/RR.operation'
import crudOperation from '@crud/CRUD.operation'
import udOperation from '@crud/UD.operation'
import pagination from '@crud/Pagination'
const defaultForm = { inspectionType: '1', inspectionId: null, inspectionCode: null, name: null, standard: null, remark: null }
export default {
name: 'InspectionPoint',
dicts: ['INSPECTION_POINT_TYPE'],
components: { pagination, crudOperation, rrOperation, udOperation },
mixins: [presenter(), header(), form(defaultForm), crud()],
cruds() {
return CRUD({ title: '质检项点', url: 'api/mdQlInspectionpoint', idField: 'inspectionId', sort: 'id,desc',
optShow: {
add: true,
edit: true,
del: true,
reset: true,
download: false
},
crudMethod: { ...crudInspection }})
},
data() {
return {
permission: {
},
rules: {
inspectionCode: [
{ required: true, message: '项点编码不能为空', trigger: 'blur' }
],
name: [
{ required: true, message: '项点名称不能为空', trigger: 'blur' }
],
inspectionType: [
{ required: true, message: '项点类型不能为空', trigger: 'blur' }
]
},
queryTypeOptions: [
{ key: 'inspection_code', display_name: '项点编码' }
]
}
},
methods: {
is_or_no(val, type) {
if (type === '01' && val === '1') {
return '是'
} else if (type === '01' && val === '0') {
return '否'
} else {
return val
}
},
// 钩子在获取表格数据之前执行false 则代表不获取数据
[CRUD.HOOK.beforeRefresh]() {
return true
}
}
}
</script>
<style scoped>
</style>

View File

@@ -0,0 +1,27 @@
import request from '@/utils/request'
export function add(data) {
return request({
url: '/api/mdQlInspectionpoint/create',
method: 'post',
data
})
}
export function del(ids) {
return request({
url: '/api/mdQlInspectionpoint/delete',
method: 'post',
data: ids
})
}
export function edit(data) {
return request({
url: '/api/mdQlInspectionpoint/update',
method: 'post',
data
})
}
export default { add, edit, del }

View File

@@ -0,0 +1,320 @@
<template>
<div>
<el-dialog
title="物料检测方案设置"
append-to-body
:visible.sync="crud.status.cu > 0"
fullscreen
destroy-on-close
:before-close="crud.cancelCU"
@open="open"
>
<el-form :inline="true" :model="form" class="demo-form-inline">
<el-form-item label="物料" prop="material_name">
<el-input
v-model="form.material_name"
style="width: 280px;"
placeholder="请选择物料"
clearable
prefix-icon="el-icon-search"
@focus="materShow=true"
@clear="form.material_id=''"
/>
</el-form-item>
<el-form-item v-if="false" label="物料" prop="material_id">
<el-input v-model.trim="form.material_id" style="width: 280px;" />
</el-form-item>
<el-form-item label="方案名称">
<el-select
v-model="form.inspection_scheme_id"
filterable
clearable
size="mini"
placeholder="方案名称"
class="filter-item"
@change="handDtl"
>
<el-option
v-for="item in selectList"
:label="item.inspection_scheme_name"
:value="item.inspection_scheme_id"
/>
</el-select>
</el-form-item>
<el-form-item>
<el-form-item>
<el-button icon="el-icon-check" type="success" @click="onSubmit">保存</el-button>
</el-form-item>
<el-form-item>
<el-button icon="el-icon-error" type="info" @click="crud.cancelCU">关闭</el-button>
</el-form-item>
</el-form-item>
</el-form>
<!--表格渲染-->
<el-table
:data="form.tableData"
border
size="mini"
stripe
style="width: 100%"
>
<el-table-column
v-if="false"
prop="inspection_item_id"
label="项点标识"
/>
<el-table-column
prop="order_index"
width="60"
label="序号"
>
<template slot-scope="scope">
<span>{{ scope.$index + 1 }}</span>
</template>
</el-table-column>
<el-table-column
prop="inspection_item_code"
label="项点编码"
/>
<el-table-column
prop="inspection_item_name"
show-overflow-tooltip
label="项点名称"
/>
<el-table-column
prop="inspection_item_type_name"
label="项点类别"
/>
<el-table-column
prop="workprocedure_name"
label="工序名称"
/>
<el-table-column
prop="inspection_type_name"
label="检测方式"
/>
<el-table-column
prop="down_limit"
label="合格下限()"
width="155"
>
<template slot-scope="scope">
<el-input-number
v-if="form.tableData[scope.$index].inspection_type==='02'"
v-model="form.tableData[scope.$index].down_limit"
:precision="4"
/>
</template>
</el-table-column>
<el-table-column
prop="up_limit"
label="合格上限()"
width="155"
>
<template slot-scope="scope">
<el-input-number
v-if="form.tableData[scope.$index].inspection_type==='02'"
v-model="form.tableData[scope.$index].up_limit"
:precision="4"
/>
</template>
</el-table-column>
<el-table-column
prop="down_limit_value"
label="下限临界值()"
width="155"
>
<template slot-scope="scope">
<el-input-number
v-if="form.tableData[scope.$index].inspection_type==='02'"
v-model="form.tableData[scope.$index].down_limit_value"
:precision="4"
/>
</template>
</el-table-column>
<el-table-column
prop="up_limit_value"
label="上限临界值()"
width="155"
>
<template slot-scope="scope">
<el-input-number
v-if="form.tableData[scope.$index].inspection_type==='02'"
v-model="form.tableData[scope.$index].up_limit_value"
:precision="4"
/>
</template>
</el-table-column>
<el-table-column
prop="remark"
label="备注"
>
<template slot-scope="scope">
<el-input v-model.trim="form.tableData[scope.$index].remark" size="mini" class="edit-input" />
</template>
</el-table-column>
</el-table>
<!-- <span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false">取 消</el-button>
<el-button type="primary" @click="dialogVisible = false">确 定</el-button>
</span>-->
</el-dialog>
<MaterDtl
:dialog-show.sync="materShow"
:is-single="true"
:mater-opt-code="'00'"
@tableChanged2="tableChanged2"
/>
</div>
</template>
<script>
import CRUD, { crud, form } from '@crud/crud'
import {} from '@/views/wms/ql/materialInspection/materialInspection'
import MaterDtl from '@/views/wms/pub/MaterDialog'
import crudProductStandard from '@/api/wms/basedata/ql/productStandard'
const defaultForm = {
material_id: '',
material_code: '',
material_name: '',
inspection_scheme_id: '',
tableData: []
}
export default {
name: 'AddDialog',
components: { MaterDtl },
mixins: [crud(), form(defaultForm)],
data() {
return {
selectList: [],
materShow: false,
dialogVisible: false,
inspectionItemType: null
}
},
methods: {
open() {
crudInspectionSchemeMst.selectList().then(res => {
this.selectList = res
})
this.handDtl2()
},
handDtl2() { // 修改的时候有物料标识
const param = {
inspection_scheme_id: this.form.inspection_scheme_id,
material_id: this.form.material_id
}
crudProductStandard.getInspectionSchemeDtl(param).then(res => {
const map1 = res.map(function(item) {
if (!item.down_limit_value) item.down_limit_value = undefined
if (!item.up_limit_value) item.up_limit_value = undefined
if (!item.down_limit) item.down_limit = undefined
if (!item.up_limit) item.up_limit = undefined
return item
})
this.form.tableData = map1
})
},
handDtl() {
const param = {
inspection_scheme_id: this.form.inspection_scheme_id
}
crudProductStandard.getInspectionSchemeDtl(param).then(res => {
const map1 = res.map(function(item) {
if (!item.down_limit_value) item.down_limit_value = undefined
if (!item.up_limit_value) item.up_limit_value = undefined
if (!item.down_limit) item.down_limit = undefined
if (!item.up_limit) item.up_limit = undefined
return item
})
this.form.tableData = map1
})
},
hand() {
},
onSubmit() {
let optType = null
const isCopyAdd = this.$parent.isCopyAdd
debugger
if (isCopyAdd === '1') {
optType = '01' // 复制新增
} else if (this.crud.status.add === 1) {
optType = '02' // 新增
} else {
this.crud.status.add
optType = '03' // 修改
}
// 判断是新增还是修改还是复制新增
this.form.optType = optType
const arr = this.form.tableData
const that = this
const errMsgList = []
const data = arr.map(function(item) {
debugger
// 合格上下限同时为填入的数字或同时为空
if ((!isNaN(item.up_limit) && !isNaN(item.down_limit)) || (isNaN(item.up_limit) && isNaN(item.down_limit))) {
// 临界上下限同时为填入的数字或同时为空
if ((!isNaN(item.up_limit_value) && !isNaN(item.down_limit_value)) || (isNaN(item.up_limit_value) && isNaN(item.down_limit_value))) {
if (isNaN(item.up_limit) && !isNaN(item.up_limit_value)) {
errMsgList.push(item.order_index)
}
return item
} else {
errMsgList.push(item.order_index)
}
} else {
errMsgList.push(item.order_index)
return item
}
})
if (errMsgList.length > 0) {
that.crud.notify(errMsgList.toString() + '行格式错误,请检查!', CRUD.NOTIFICATION_TYPE.INFO)
return
}
this.form.tableData = data
crudProductStandard.saveData(this.form).then(res => {
this.crud.cancelCU()
this.$parent.isCopyAdd = null
this.crud.toQuery()
this.notify('操作成功', 'success')
})
},
notify(title, type) {
this.$notify({
title: title,
type: type,
duration: 2500
})
},
tableChanged2(data) {
// 新增一行物料时,给行进行赋值
this.form.material_id = data.material_id
this.form.material_code = data.material_code
this.form.material_name = data.material_name + '##' + data.material_code
},
close() {
this.$emit('update:visiable1', false)
}
}
}
</script>
<style rel="stylesheet/scss" lang="scss">
.edit-input {
.el-input__inner {
border: 1px solid #e5e6e7;
}
}
</style>

View File

@@ -0,0 +1,142 @@
<template>
<div class="app-container">
<!--工具栏-->
<div class="head-container">
<div v-if="crud.props.searchToggle">
<!-- 搜索 -->
<label class="el-form-item-label">模糊搜索</label>
<el-input v-model="query.blurry" clearable placeholder="项点名称" style="width: 185px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
<rrOperation :crud="crud" />
</div>
<!--如果想在工具栏加入更多按钮可以使用插槽方式 slot = 'left' or 'right'-->
<crudOperation :permission="permission" />
<!--表单组件-->
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0" :title="crud.status.title" width="475px">
<el-form ref="form" :model="form" :rules="rules" size="mini" label-width="120px">
<el-form-item label="项点名称" prop="name">
<el-input v-model="form.name" style="width: 250px;" />
</el-form-item>
<el-form-item label="标准值">
<el-input v-model="form.standard" style="width: 250px;" />
</el-form-item>
<el-form-item label="项点类型" prop="inspectionType">
<el-select
v-model="form.inspectionType"
placeholder=""
style="width: 250px"
>
<el-option
v-for="item in dict.INSPECTION_POINT_TYPE"
:key="item.id"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="备注">
<el-input v-model="form.remark" :rows="3" type="textarea" style="width: 250px;" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="text" @click="crud.cancelCU">取消</el-button>
<el-button :loading="crud.cu === 2" type="primary" @click="crud.submitCU">确认</el-button>
</div>
</el-dialog>
<!--表格渲染-->
<el-table ref="table" v-loading="crud.loading" :data="crud.data" size="mini" style="width: 100%;" @selection-change="crud.selectionChangeHandler">
<el-table-column type="selection" width="55" />
<el-table-column prop="inspectionCode" label="项点编码" />
<el-table-column prop="name" label="项点名称" />
<el-table-column prop="standard" label="标准值">
<template slot-scope="scope">
{{ is_or_no(scope.row.standard, scope.row.inspectionType) }}
</template>
</el-table-column>
<el-table-column prop="inspectionType" label="项点类型">
<template slot-scope="scope">
{{ dict.label.INSPECTION_POINT_TYPE[scope.row.inspectionType] }}
</template>
</el-table-column>
<el-table-column prop="remark" label="备注" />
<el-table-column v-permission="[]" label="操作" width="120px" align="center" fixed="right">
<template slot-scope="scope">
<udOperation
:data="scope.row"
:permission="permission"
/>
</template>
</el-table-column>
</el-table>
<!--分页组件-->
<pagination />
</div>
</div>
</template>
<script>
import crudInspection from '@/views/wms/ql/inspection/inspectionpoint'
import CRUD, { presenter, header, form, crud } from '@crud/crud'
import rrOperation from '@crud/RR.operation'
import crudOperation from '@crud/CRUD.operation'
import udOperation from '@crud/UD.operation'
import pagination from '@crud/Pagination'
const defaultForm = { inspectionType: '1', inspectionId: null, inspectionCode: null, name: null, standard: null, remark: null }
export default {
name: 'InspectionPoint',
dicts: ['INSPECTION_POINT_TYPE'],
components: { pagination, crudOperation, rrOperation, udOperation },
mixins: [presenter(), header(), form(defaultForm), crud()],
cruds() {
return CRUD({ title: '质检项点', url: 'api/mdQlInspectionpoint', idField: 'inspectionId', sort: 'id,desc',
optShow: {
add: true,
edit: true,
del: true,
reset: true,
download: false
},
crudMethod: { ...crudInspection }})
},
data() {
return {
permission: {
},
rules: {
inspectionCode: [
{ required: true, message: '项点编码不能为空', trigger: 'blur' }
],
name: [
{ required: true, message: '项点名称不能为空', trigger: 'blur' }
],
inspectionType: [
{ required: true, message: '项点类型不能为空', trigger: 'blur' }
]
},
queryTypeOptions: [
{ key: 'inspection_code', display_name: '项点编码' }
]
}
},
methods: {
is_or_no(val, type) {
if (type === '01' && val === '1') {
return '是'
} else if (type === '01' && val === '0') {
return '否'
} else {
return val
}
},
// 钩子在获取表格数据之前执行false 则代表不获取数据
[CRUD.HOOK.beforeRefresh]() {
return true
}
}
}
</script>
<style scoped>
</style>

View File

@@ -0,0 +1,35 @@
import request from '@/utils/request'
export function add(data) {
return request({
url: '/api/materialInspection/create',
method: 'post',
data
})
}
export function del(ids) {
return request({
url: '/api/materialInspection/delete',
method: 'post',
data: ids
})
}
export function edit(data) {
return request({
url: '/api/materialInspection/update',
method: 'post',
data
})
}
export function edit(data) {
return request({
url: '/api/materialInspection/update',
method: 'post',
data
})
}
export default { add, edit, del }