diff --git a/ktg-mes/src/main/java/com/ktg/mes/qc/controller/QcOqcController.java b/ktg-mes/src/main/java/com/ktg/mes/qc/controller/QcOqcController.java index 93252a4..0d35914 100644 --- a/ktg-mes/src/main/java/com/ktg/mes/qc/controller/QcOqcController.java +++ b/ktg-mes/src/main/java/com/ktg/mes/qc/controller/QcOqcController.java @@ -4,8 +4,10 @@ import java.util.List; import javax.servlet.http.HttpServletResponse; import com.ktg.common.constant.UserConstants; +import com.ktg.mes.qc.service.IQcOqcLineService; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; @@ -36,6 +38,9 @@ public class QcOqcController extends BaseController @Autowired private IQcOqcService qcOqcService; + @Autowired + private IQcOqcLineService qcOqcLineService; + /** * 查询出货检验单列表 */ @@ -104,9 +109,19 @@ public class QcOqcController extends BaseController */ @PreAuthorize("@ss.hasPermi('mes:qc:oqc:remove')") @Log(title = "出货检验单", businessType = BusinessType.DELETE) + @Transactional @DeleteMapping("/{oqcIds}") public AjaxResult remove(@PathVariable Long[] oqcIds) { + for (Long oqcId: oqcIds + ) { + QcOqc oqc = qcOqcService.selectQcOqcByOqcId(oqcId); + if(!UserConstants.ORDER_STATUS_PREPARE.equals(oqc.getStatus())){ + return AjaxResult.error("只能删除状态为草稿的单据!"); + } + qcOqcLineService.deleteByOqcId(oqcId); + } + return toAjax(qcOqcService.deleteQcOqcByOqcIds(oqcIds)); } } diff --git a/ktg-mes/src/main/java/com/ktg/mes/qc/controller/QcOqcLineController.java b/ktg-mes/src/main/java/com/ktg/mes/qc/controller/QcOqcLineController.java new file mode 100644 index 0000000..409c716 --- /dev/null +++ b/ktg-mes/src/main/java/com/ktg/mes/qc/controller/QcOqcLineController.java @@ -0,0 +1,104 @@ +package com.ktg.mes.qc.controller; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ktg.common.annotation.Log; +import com.ktg.common.core.controller.BaseController; +import com.ktg.common.core.domain.AjaxResult; +import com.ktg.common.enums.BusinessType; +import com.ktg.mes.qc.domain.QcOqcLine; +import com.ktg.mes.qc.service.IQcOqcLineService; +import com.ktg.common.utils.poi.ExcelUtil; +import com.ktg.common.core.page.TableDataInfo; + +/** + * 出货检验单行Controller + * + * @author yinjinlu + * @date 2022-09-01 + */ +@RestController +@RequestMapping("/mes/qc/oqcline") +public class QcOqcLineController extends BaseController +{ + @Autowired + private IQcOqcLineService qcOqcLineService; + + /** + * 查询出货检验单行列表 + */ + @PreAuthorize("@ss.hasPermi('mes:qc:oqcline:list')") + @GetMapping("/list") + public TableDataInfo list(QcOqcLine qcOqcLine) + { + startPage(); + List list = qcOqcLineService.selectQcOqcLineList(qcOqcLine); + return getDataTable(list); + } + + /** + * 导出出货检验单行列表 + */ + @PreAuthorize("@ss.hasPermi('mes:qc:oqcline:export')") + @Log(title = "出货检验单行", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, QcOqcLine qcOqcLine) + { + List list = qcOqcLineService.selectQcOqcLineList(qcOqcLine); + ExcelUtil util = new ExcelUtil(QcOqcLine.class); + util.exportExcel(response, list, "出货检验单行数据"); + } + + /** + * 获取出货检验单行详细信息 + */ + @PreAuthorize("@ss.hasPermi('mes:qc:oqcline:query')") + @GetMapping(value = "/{lineId}") + public AjaxResult getInfo(@PathVariable("lineId") Long lineId) + { + return AjaxResult.success(qcOqcLineService.selectQcOqcLineByLineId(lineId)); + } + + /** + * 新增出货检验单行 + */ + @PreAuthorize("@ss.hasPermi('mes:qc:oqcline:add')") + @Log(title = "出货检验单行", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody QcOqcLine qcOqcLine) + { + return toAjax(qcOqcLineService.insertQcOqcLine(qcOqcLine)); + } + + /** + * 修改出货检验单行 + */ + @PreAuthorize("@ss.hasPermi('mes:qc:oqcline:edit')") + @Log(title = "出货检验单行", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody QcOqcLine qcOqcLine) + { + return toAjax(qcOqcLineService.updateQcOqcLine(qcOqcLine)); + } + + /** + * 删除出货检验单行 + */ + @PreAuthorize("@ss.hasPermi('mes:qc:oqcline:remove')") + @Log(title = "出货检验单行", businessType = BusinessType.DELETE) + @DeleteMapping("/{lineIds}") + public AjaxResult remove(@PathVariable Long[] lineIds) + { + return toAjax(qcOqcLineService.deleteQcOqcLineByLineIds(lineIds)); + } +} diff --git a/ktg-mes/src/main/java/com/ktg/mes/qc/domain/QcOqcLine.java b/ktg-mes/src/main/java/com/ktg/mes/qc/domain/QcOqcLine.java new file mode 100644 index 0000000..7cd5835 --- /dev/null +++ b/ktg-mes/src/main/java/com/ktg/mes/qc/domain/QcOqcLine.java @@ -0,0 +1,291 @@ +package com.ktg.mes.qc.domain; + +import java.math.BigDecimal; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.ktg.common.annotation.Excel; +import com.ktg.common.core.domain.BaseEntity; + +/** + * 出货检验单行对象 qc_oqc_line + * + * @author yinjinlu + * @date 2022-09-01 + */ +public class QcOqcLine extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 记录ID */ + private Long lineId; + + /** 检验单ID */ + @Excel(name = "检验单ID") + private Long oqcId; + + /** 检测项ID */ + @Excel(name = "检测项ID") + private Long indexId; + + /** 检测项编码 */ + @Excel(name = "检测项编码") + private String indexCode; + + /** 检测项名称 */ + @Excel(name = "检测项名称") + private String indexName; + + /** 检测项类型 */ + @Excel(name = "检测项类型") + private String indexType; + + /** 检测工具 */ + @Excel(name = "检测工具") + private String qcTool; + + /** 检测要求 */ + @Excel(name = "检测要求") + private String checkMethod; + + /** 标准值 */ + @Excel(name = "标准值") + private BigDecimal standerVal; + + /** 单位 */ + @Excel(name = "单位") + private String unitOfMeasure; + + /** 误差上限 */ + @Excel(name = "误差上限") + private BigDecimal thresholdMax; + + /** 误差下限 */ + @Excel(name = "误差下限") + private BigDecimal thresholdMin; + + /** 致命缺陷数量 */ + @Excel(name = "致命缺陷数量") + private BigDecimal crQuantity; + + /** 严重缺陷数量 */ + @Excel(name = "严重缺陷数量") + private BigDecimal majQuantity; + + /** 轻微缺陷数量 */ + @Excel(name = "轻微缺陷数量") + private BigDecimal minQuantity; + + /** 预留字段1 */ + private String attr1; + + /** 预留字段2 */ + private String attr2; + + /** 预留字段3 */ + private Long attr3; + + /** 预留字段4 */ + private Long attr4; + + public void setLineId(Long lineId) + { + this.lineId = lineId; + } + + public Long getLineId() + { + return lineId; + } + public void setOqcId(Long oqcId) + { + this.oqcId = oqcId; + } + + public Long getOqcId() + { + return oqcId; + } + public void setIndexId(Long indexId) + { + this.indexId = indexId; + } + + public Long getIndexId() + { + return indexId; + } + public void setIndexCode(String indexCode) + { + this.indexCode = indexCode; + } + + public String getIndexCode() + { + return indexCode; + } + public void setIndexName(String indexName) + { + this.indexName = indexName; + } + + public String getIndexName() + { + return indexName; + } + public void setIndexType(String indexType) + { + this.indexType = indexType; + } + + public String getIndexType() + { + return indexType; + } + public void setQcTool(String qcTool) + { + this.qcTool = qcTool; + } + + public String getQcTool() + { + return qcTool; + } + public void setCheckMethod(String checkMethod) + { + this.checkMethod = checkMethod; + } + + public String getCheckMethod() + { + return checkMethod; + } + public void setStanderVal(BigDecimal standerVal) + { + this.standerVal = standerVal; + } + + public BigDecimal getStanderVal() + { + return standerVal; + } + public void setUnitOfMeasure(String unitOfMeasure) + { + this.unitOfMeasure = unitOfMeasure; + } + + public String getUnitOfMeasure() + { + return unitOfMeasure; + } + public void setThresholdMax(BigDecimal thresholdMax) + { + this.thresholdMax = thresholdMax; + } + + public BigDecimal getThresholdMax() + { + return thresholdMax; + } + public void setThresholdMin(BigDecimal thresholdMin) + { + this.thresholdMin = thresholdMin; + } + + public BigDecimal getThresholdMin() + { + return thresholdMin; + } + public void setCrQuantity(BigDecimal crQuantity) + { + this.crQuantity = crQuantity; + } + + public BigDecimal getCrQuantity() + { + return crQuantity; + } + public void setMajQuantity(BigDecimal majQuantity) + { + this.majQuantity = majQuantity; + } + + public BigDecimal getMajQuantity() + { + return majQuantity; + } + public void setMinQuantity(BigDecimal minQuantity) + { + this.minQuantity = minQuantity; + } + + public BigDecimal getMinQuantity() + { + return minQuantity; + } + public void setAttr1(String attr1) + { + this.attr1 = attr1; + } + + public String getAttr1() + { + return attr1; + } + public void setAttr2(String attr2) + { + this.attr2 = attr2; + } + + public String getAttr2() + { + return attr2; + } + public void setAttr3(Long attr3) + { + this.attr3 = attr3; + } + + public Long getAttr3() + { + return attr3; + } + public void setAttr4(Long attr4) + { + this.attr4 = attr4; + } + + public Long getAttr4() + { + return attr4; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("lineId", getLineId()) + .append("oqcId", getOqcId()) + .append("indexId", getIndexId()) + .append("indexCode", getIndexCode()) + .append("indexName", getIndexName()) + .append("indexType", getIndexType()) + .append("qcTool", getQcTool()) + .append("checkMethod", getCheckMethod()) + .append("standerVal", getStanderVal()) + .append("unitOfMeasure", getUnitOfMeasure()) + .append("thresholdMax", getThresholdMax()) + .append("thresholdMin", getThresholdMin()) + .append("crQuantity", getCrQuantity()) + .append("majQuantity", getMajQuantity()) + .append("minQuantity", getMinQuantity()) + .append("remark", getRemark()) + .append("attr1", getAttr1()) + .append("attr2", getAttr2()) + .append("attr3", getAttr3()) + .append("attr4", getAttr4()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .toString(); + } +} diff --git a/ktg-mes/src/main/java/com/ktg/mes/qc/mapper/QcOqcLineMapper.java b/ktg-mes/src/main/java/com/ktg/mes/qc/mapper/QcOqcLineMapper.java new file mode 100644 index 0000000..210e1a0 --- /dev/null +++ b/ktg-mes/src/main/java/com/ktg/mes/qc/mapper/QcOqcLineMapper.java @@ -0,0 +1,68 @@ +package com.ktg.mes.qc.mapper; + +import java.util.List; +import com.ktg.mes.qc.domain.QcOqcLine; + +/** + * 出货检验单行Mapper接口 + * + * @author yinjinlu + * @date 2022-09-01 + */ +public interface QcOqcLineMapper +{ + /** + * 查询出货检验单行 + * + * @param lineId 出货检验单行主键 + * @return 出货检验单行 + */ + public QcOqcLine selectQcOqcLineByLineId(Long lineId); + + /** + * 查询出货检验单行列表 + * + * @param qcOqcLine 出货检验单行 + * @return 出货检验单行集合 + */ + public List selectQcOqcLineList(QcOqcLine qcOqcLine); + + /** + * 新增出货检验单行 + * + * @param qcOqcLine 出货检验单行 + * @return 结果 + */ + public int insertQcOqcLine(QcOqcLine qcOqcLine); + + /** + * 修改出货检验单行 + * + * @param qcOqcLine 出货检验单行 + * @return 结果 + */ + public int updateQcOqcLine(QcOqcLine qcOqcLine); + + /** + * 删除出货检验单行 + * + * @param lineId 出货检验单行主键 + * @return 结果 + */ + public int deleteQcOqcLineByLineId(Long lineId); + + /** + * 批量删除出货检验单行 + * + * @param lineIds 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteQcOqcLineByLineIds(Long[] lineIds); + + /** + * 根据出货检验单头删除相应的行信息 + * @param oqcId + * @return + */ + public int deleteByOqcId(Long oqcId); +} diff --git a/ktg-mes/src/main/java/com/ktg/mes/qc/service/IQcOqcLineService.java b/ktg-mes/src/main/java/com/ktg/mes/qc/service/IQcOqcLineService.java new file mode 100644 index 0000000..8c1980c --- /dev/null +++ b/ktg-mes/src/main/java/com/ktg/mes/qc/service/IQcOqcLineService.java @@ -0,0 +1,68 @@ +package com.ktg.mes.qc.service; + +import java.util.List; +import com.ktg.mes.qc.domain.QcOqcLine; + +/** + * 出货检验单行Service接口 + * + * @author yinjinlu + * @date 2022-09-01 + */ +public interface IQcOqcLineService +{ + /** + * 查询出货检验单行 + * + * @param lineId 出货检验单行主键 + * @return 出货检验单行 + */ + public QcOqcLine selectQcOqcLineByLineId(Long lineId); + + /** + * 查询出货检验单行列表 + * + * @param qcOqcLine 出货检验单行 + * @return 出货检验单行集合 + */ + public List selectQcOqcLineList(QcOqcLine qcOqcLine); + + /** + * 新增出货检验单行 + * + * @param qcOqcLine 出货检验单行 + * @return 结果 + */ + public int insertQcOqcLine(QcOqcLine qcOqcLine); + + /** + * 修改出货检验单行 + * + * @param qcOqcLine 出货检验单行 + * @return 结果 + */ + public int updateQcOqcLine(QcOqcLine qcOqcLine); + + /** + * 批量删除出货检验单行 + * + * @param lineIds 需要删除的出货检验单行主键集合 + * @return 结果 + */ + public int deleteQcOqcLineByLineIds(Long[] lineIds); + + /** + * 删除出货检验单行信息 + * + * @param lineId 出货检验单行主键 + * @return 结果 + */ + public int deleteQcOqcLineByLineId(Long lineId); + + /** + * 根据出货检验单头删除相应的行信息 + * @param oqcId + * @return + */ + public int deleteByOqcId(Long oqcId); +} diff --git a/ktg-mes/src/main/java/com/ktg/mes/qc/service/impl/QcOqcLineServiceImpl.java b/ktg-mes/src/main/java/com/ktg/mes/qc/service/impl/QcOqcLineServiceImpl.java new file mode 100644 index 0000000..89aafd3 --- /dev/null +++ b/ktg-mes/src/main/java/com/ktg/mes/qc/service/impl/QcOqcLineServiceImpl.java @@ -0,0 +1,101 @@ +package com.ktg.mes.qc.service.impl; + +import java.util.List; +import com.ktg.common.utils.DateUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.ktg.mes.qc.mapper.QcOqcLineMapper; +import com.ktg.mes.qc.domain.QcOqcLine; +import com.ktg.mes.qc.service.IQcOqcLineService; + +/** + * 出货检验单行Service业务层处理 + * + * @author yinjinlu + * @date 2022-09-01 + */ +@Service +public class QcOqcLineServiceImpl implements IQcOqcLineService +{ + @Autowired + private QcOqcLineMapper qcOqcLineMapper; + + /** + * 查询出货检验单行 + * + * @param lineId 出货检验单行主键 + * @return 出货检验单行 + */ + @Override + public QcOqcLine selectQcOqcLineByLineId(Long lineId) + { + return qcOqcLineMapper.selectQcOqcLineByLineId(lineId); + } + + /** + * 查询出货检验单行列表 + * + * @param qcOqcLine 出货检验单行 + * @return 出货检验单行 + */ + @Override + public List selectQcOqcLineList(QcOqcLine qcOqcLine) + { + return qcOqcLineMapper.selectQcOqcLineList(qcOqcLine); + } + + /** + * 新增出货检验单行 + * + * @param qcOqcLine 出货检验单行 + * @return 结果 + */ + @Override + public int insertQcOqcLine(QcOqcLine qcOqcLine) + { + qcOqcLine.setCreateTime(DateUtils.getNowDate()); + return qcOqcLineMapper.insertQcOqcLine(qcOqcLine); + } + + /** + * 修改出货检验单行 + * + * @param qcOqcLine 出货检验单行 + * @return 结果 + */ + @Override + public int updateQcOqcLine(QcOqcLine qcOqcLine) + { + qcOqcLine.setUpdateTime(DateUtils.getNowDate()); + return qcOqcLineMapper.updateQcOqcLine(qcOqcLine); + } + + /** + * 批量删除出货检验单行 + * + * @param lineIds 需要删除的出货检验单行主键 + * @return 结果 + */ + @Override + public int deleteQcOqcLineByLineIds(Long[] lineIds) + { + return qcOqcLineMapper.deleteQcOqcLineByLineIds(lineIds); + } + + /** + * 删除出货检验单行信息 + * + * @param lineId 出货检验单行主键 + * @return 结果 + */ + @Override + public int deleteQcOqcLineByLineId(Long lineId) + { + return qcOqcLineMapper.deleteQcOqcLineByLineId(lineId); + } + + @Override + public int deleteByOqcId(Long oqcId) { + return qcOqcLineMapper.deleteByOqcId(oqcId); + } +} diff --git a/ktg-mes/src/main/resources/mapper/qc/QcOqcLineMapper.xml b/ktg-mes/src/main/resources/mapper/qc/QcOqcLineMapper.xml new file mode 100644 index 0000000..b9ba329 --- /dev/null +++ b/ktg-mes/src/main/resources/mapper/qc/QcOqcLineMapper.xml @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select line_id, oqc_id, index_id, index_code, index_name, index_type, qc_tool, check_method, stander_val, unit_of_measure, threshold_max, threshold_min, cr_quantity, maj_quantity, min_quantity, remark, attr1, attr2, attr3, attr4, create_by, create_time, update_by, update_time from qc_oqc_line + + + + + + + + insert into qc_oqc_line + + oqc_id, + index_id, + index_code, + index_name, + index_type, + qc_tool, + check_method, + stander_val, + unit_of_measure, + threshold_max, + threshold_min, + cr_quantity, + maj_quantity, + min_quantity, + remark, + attr1, + attr2, + attr3, + attr4, + create_by, + create_time, + update_by, + update_time, + + + #{oqcId}, + #{indexId}, + #{indexCode}, + #{indexName}, + #{indexType}, + #{qcTool}, + #{checkMethod}, + #{standerVal}, + #{unitOfMeasure}, + #{thresholdMax}, + #{thresholdMin}, + #{crQuantity}, + #{majQuantity}, + #{minQuantity}, + #{remark}, + #{attr1}, + #{attr2}, + #{attr3}, + #{attr4}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update qc_oqc_line + + oqc_id = #{oqcId}, + index_id = #{indexId}, + index_code = #{indexCode}, + index_name = #{indexName}, + index_type = #{indexType}, + qc_tool = #{qcTool}, + check_method = #{checkMethod}, + stander_val = #{standerVal}, + unit_of_measure = #{unitOfMeasure}, + threshold_max = #{thresholdMax}, + threshold_min = #{thresholdMin}, + cr_quantity = #{crQuantity}, + maj_quantity = #{majQuantity}, + min_quantity = #{minQuantity}, + remark = #{remark}, + attr1 = #{attr1}, + attr2 = #{attr2}, + attr3 = #{attr3}, + attr4 = #{attr4}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where line_id = #{lineId} + + + + delete from qc_oqc_line where line_id = #{lineId} + + + + delete from qc_oqc_line where line_id in + + #{lineId} + + + + + delete from qc_oqc_line where oqc_id = #{oqcId} + + \ No newline at end of file