Jelajahi Sumber

质检代码生成

andy 2 tahun lalu
induk
melakukan
f4133a2250

+ 104 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/warewms/wms/qc/DocQcHeaderController.java

@@ -0,0 +1,104 @@
+package com.ruoyi.web.controller.warewms.wms.qc;
+
+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.ruoyi.common.annotation.Log;
+import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.ams.qc.domain.DocQcHeader;
+import com.ruoyi.ams.qc.service.IDocQcHeaderService;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.page.TableDataInfo;
+
+/**
+ * 质检Controller
+ * 
+ * @author ruoyi
+ * @date 2022-11-14
+ */
+@RestController
+@RequestMapping("/docQc/docQcHeader")
+public class DocQcHeaderController extends BaseController
+{
+    @Autowired
+    private IDocQcHeaderService docQcHeaderService;
+
+    /**
+     * 查询质检列表
+     */
+    @PreAuthorize("@ss.hasPermi('docQc:docQcHeader:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(DocQcHeader docQcHeader)
+    {
+        startPage();
+        List<DocQcHeader> list = docQcHeaderService.selectDocQcHeaderList(docQcHeader);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出质检列表
+     */
+    @PreAuthorize("@ss.hasPermi('docQc:docQcHeader:export')")
+    @Log(title = "质检", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, DocQcHeader docQcHeader)
+    {
+        List<DocQcHeader> list = docQcHeaderService.selectDocQcHeaderList(docQcHeader);
+        ExcelUtil<DocQcHeader> util = new ExcelUtil<DocQcHeader>(DocQcHeader.class);
+        util.exportExcel(response, list, "质检数据");
+    }
+
+    /**
+     * 获取质检详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('docQc:docQcHeader:query')")
+    @GetMapping(value = "/{qcno}")
+    public AjaxResult getInfo(@PathVariable("qcno") String qcno)
+    {
+        return AjaxResult.success(docQcHeaderService.selectDocQcHeaderByQcno(qcno));
+    }
+
+    /**
+     * 新增质检
+     */
+    @PreAuthorize("@ss.hasPermi('docQc:docQcHeader:add')")
+    @Log(title = "质检", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody DocQcHeader docQcHeader)
+    {
+        return toAjax(docQcHeaderService.insertDocQcHeader(docQcHeader));
+    }
+
+    /**
+     * 修改质检
+     */
+    @PreAuthorize("@ss.hasPermi('docQc:docQcHeader:edit')")
+    @Log(title = "质检", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody DocQcHeader docQcHeader)
+    {
+        return toAjax(docQcHeaderService.updateDocQcHeader(docQcHeader));
+    }
+
+    /**
+     * 删除质检
+     */
+    @PreAuthorize("@ss.hasPermi('docQc:docQcHeader:remove')")
+    @Log(title = "质检", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{qcnos}")
+    public AjaxResult remove(@PathVariable String[] qcnos)
+    {
+        return toAjax(docQcHeaderService.deleteDocQcHeaderByQcnos(qcnos));
+    }
+}

+ 375 - 0
warewms-ams/src/main/java/com/ruoyi/ams/qc/domain/DocQcDetails.java

@@ -0,0 +1,375 @@
+package com.ruoyi.ams.qc.domain;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 质检对象 doc_qc_details
+ * 
+ * @author ruoyi
+ * @date 2022-11-14
+ */
+public class DocQcDetails extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** $column.columnComment */
+    private String qcno;
+
+    /** $column.columnComment */
+    private String qclineno;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String linestatus;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private BigDecimal palineno;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String customerid;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String sku;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String lotnum;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private BigDecimal paqtyExpected;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private BigDecimal qcqtyExpected;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private BigDecimal qcqtyCompleted;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String userdefine1;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String userdefine2;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String userdefine3;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String userdefine4;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String userdefine5;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String qcdescr;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String qcresult;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String filecontent;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String notes;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private Date addtime;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String addwho;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private Date edittime;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String editwho;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String packid;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String transactionid;
+
+    public void setQcno(String qcno) 
+    {
+        this.qcno = qcno;
+    }
+
+    public String getQcno() 
+    {
+        return qcno;
+    }
+    public void setQclineno(String qclineno) 
+    {
+        this.qclineno = qclineno;
+    }
+
+    public String getQclineno() 
+    {
+        return qclineno;
+    }
+    public void setLinestatus(String linestatus) 
+    {
+        this.linestatus = linestatus;
+    }
+
+    public String getLinestatus() 
+    {
+        return linestatus;
+    }
+    public void setPalineno(BigDecimal palineno) 
+    {
+        this.palineno = palineno;
+    }
+
+    public BigDecimal getPalineno() 
+    {
+        return palineno;
+    }
+    public void setCustomerid(String customerid) 
+    {
+        this.customerid = customerid;
+    }
+
+    public String getCustomerid() 
+    {
+        return customerid;
+    }
+    public void setSku(String sku) 
+    {
+        this.sku = sku;
+    }
+
+    public String getSku() 
+    {
+        return sku;
+    }
+    public void setLotnum(String lotnum) 
+    {
+        this.lotnum = lotnum;
+    }
+
+    public String getLotnum() 
+    {
+        return lotnum;
+    }
+    public void setPaqtyExpected(BigDecimal paqtyExpected) 
+    {
+        this.paqtyExpected = paqtyExpected;
+    }
+
+    public BigDecimal getPaqtyExpected() 
+    {
+        return paqtyExpected;
+    }
+    public void setQcqtyExpected(BigDecimal qcqtyExpected) 
+    {
+        this.qcqtyExpected = qcqtyExpected;
+    }
+
+    public BigDecimal getQcqtyExpected() 
+    {
+        return qcqtyExpected;
+    }
+    public void setQcqtyCompleted(BigDecimal qcqtyCompleted) 
+    {
+        this.qcqtyCompleted = qcqtyCompleted;
+    }
+
+    public BigDecimal getQcqtyCompleted() 
+    {
+        return qcqtyCompleted;
+    }
+    public void setUserdefine1(String userdefine1) 
+    {
+        this.userdefine1 = userdefine1;
+    }
+
+    public String getUserdefine1() 
+    {
+        return userdefine1;
+    }
+    public void setUserdefine2(String userdefine2) 
+    {
+        this.userdefine2 = userdefine2;
+    }
+
+    public String getUserdefine2() 
+    {
+        return userdefine2;
+    }
+    public void setUserdefine3(String userdefine3) 
+    {
+        this.userdefine3 = userdefine3;
+    }
+
+    public String getUserdefine3() 
+    {
+        return userdefine3;
+    }
+    public void setUserdefine4(String userdefine4) 
+    {
+        this.userdefine4 = userdefine4;
+    }
+
+    public String getUserdefine4() 
+    {
+        return userdefine4;
+    }
+    public void setUserdefine5(String userdefine5) 
+    {
+        this.userdefine5 = userdefine5;
+    }
+
+    public String getUserdefine5() 
+    {
+        return userdefine5;
+    }
+    public void setQcdescr(String qcdescr) 
+    {
+        this.qcdescr = qcdescr;
+    }
+
+    public String getQcdescr() 
+    {
+        return qcdescr;
+    }
+    public void setQcresult(String qcresult) 
+    {
+        this.qcresult = qcresult;
+    }
+
+    public String getQcresult() 
+    {
+        return qcresult;
+    }
+    public void setFilecontent(String filecontent) 
+    {
+        this.filecontent = filecontent;
+    }
+
+    public String getFilecontent() 
+    {
+        return filecontent;
+    }
+    public void setNotes(String notes) 
+    {
+        this.notes = notes;
+    }
+
+    public String getNotes() 
+    {
+        return notes;
+    }
+    public void setAddtime(Date addtime) 
+    {
+        this.addtime = addtime;
+    }
+
+    public Date getAddtime() 
+    {
+        return addtime;
+    }
+    public void setAddwho(String addwho) 
+    {
+        this.addwho = addwho;
+    }
+
+    public String getAddwho() 
+    {
+        return addwho;
+    }
+    public void setEdittime(Date edittime) 
+    {
+        this.edittime = edittime;
+    }
+
+    public Date getEdittime() 
+    {
+        return edittime;
+    }
+    public void setEditwho(String editwho) 
+    {
+        this.editwho = editwho;
+    }
+
+    public String getEditwho() 
+    {
+        return editwho;
+    }
+    public void setPackid(String packid) 
+    {
+        this.packid = packid;
+    }
+
+    public String getPackid() 
+    {
+        return packid;
+    }
+    public void setTransactionid(String transactionid) 
+    {
+        this.transactionid = transactionid;
+    }
+
+    public String getTransactionid() 
+    {
+        return transactionid;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("qcno", getQcno())
+            .append("qclineno", getQclineno())
+            .append("linestatus", getLinestatus())
+            .append("palineno", getPalineno())
+            .append("customerid", getCustomerid())
+            .append("sku", getSku())
+            .append("lotnum", getLotnum())
+            .append("paqtyExpected", getPaqtyExpected())
+            .append("qcqtyExpected", getQcqtyExpected())
+            .append("qcqtyCompleted", getQcqtyCompleted())
+            .append("userdefine1", getUserdefine1())
+            .append("userdefine2", getUserdefine2())
+            .append("userdefine3", getUserdefine3())
+            .append("userdefine4", getUserdefine4())
+            .append("userdefine5", getUserdefine5())
+            .append("qcdescr", getQcdescr())
+            .append("qcresult", getQcresult())
+            .append("filecontent", getFilecontent())
+            .append("notes", getNotes())
+            .append("addtime", getAddtime())
+            .append("addwho", getAddwho())
+            .append("edittime", getEdittime())
+            .append("editwho", getEditwho())
+            .append("packid", getPackid())
+            .append("transactionid", getTransactionid())
+            .toString();
+    }
+}

+ 310 - 0
warewms-ams/src/main/java/com/ruoyi/ams/qc/domain/DocQcHeader.java

@@ -0,0 +1,310 @@
+package com.ruoyi.ams.qc.domain;
+
+import java.util.List;
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.annotation.Excel;
+import com.ruoyi.common.core.domain.BaseEntity;
+
+/**
+ * 质检对象 doc_qc_header
+ * 
+ * @author ruoyi
+ * @date 2022-11-14
+ */
+public class DocQcHeader extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** $column.columnComment */
+    private String qcno;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String pano;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String customerid;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String qcreference1;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String qcreference2;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String qcreference3;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String qcreference4;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String qcreference5;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String qctype;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String qcstatus;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private Date qccreationtime;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String userdefine1;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String userdefine2;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String userdefine3;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String userdefine4;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String userdefine5;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String notes;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String qcPrintFlag;
+
+    /** $column.columnComment */
+    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
+    private String warehouseid;
+
+    /** 质检信息 */
+    private List<DocQcDetails> docQcDetailsList;
+
+    public void setQcno(String qcno) 
+    {
+        this.qcno = qcno;
+    }
+
+    public String getQcno() 
+    {
+        return qcno;
+    }
+    public void setPano(String pano) 
+    {
+        this.pano = pano;
+    }
+
+    public String getPano() 
+    {
+        return pano;
+    }
+    public void setCustomerid(String customerid) 
+    {
+        this.customerid = customerid;
+    }
+
+    public String getCustomerid() 
+    {
+        return customerid;
+    }
+    public void setQcreference1(String qcreference1) 
+    {
+        this.qcreference1 = qcreference1;
+    }
+
+    public String getQcreference1() 
+    {
+        return qcreference1;
+    }
+    public void setQcreference2(String qcreference2) 
+    {
+        this.qcreference2 = qcreference2;
+    }
+
+    public String getQcreference2() 
+    {
+        return qcreference2;
+    }
+    public void setQcreference3(String qcreference3) 
+    {
+        this.qcreference3 = qcreference3;
+    }
+
+    public String getQcreference3() 
+    {
+        return qcreference3;
+    }
+    public void setQcreference4(String qcreference4) 
+    {
+        this.qcreference4 = qcreference4;
+    }
+
+    public String getQcreference4() 
+    {
+        return qcreference4;
+    }
+    public void setQcreference5(String qcreference5) 
+    {
+        this.qcreference5 = qcreference5;
+    }
+
+    public String getQcreference5() 
+    {
+        return qcreference5;
+    }
+    public void setQctype(String qctype) 
+    {
+        this.qctype = qctype;
+    }
+
+    public String getQctype() 
+    {
+        return qctype;
+    }
+    public void setQcstatus(String qcstatus) 
+    {
+        this.qcstatus = qcstatus;
+    }
+
+    public String getQcstatus() 
+    {
+        return qcstatus;
+    }
+    public void setQccreationtime(Date qccreationtime) 
+    {
+        this.qccreationtime = qccreationtime;
+    }
+
+    public Date getQccreationtime() 
+    {
+        return qccreationtime;
+    }
+    public void setUserdefine1(String userdefine1) 
+    {
+        this.userdefine1 = userdefine1;
+    }
+
+    public String getUserdefine1() 
+    {
+        return userdefine1;
+    }
+    public void setUserdefine2(String userdefine2) 
+    {
+        this.userdefine2 = userdefine2;
+    }
+
+    public String getUserdefine2() 
+    {
+        return userdefine2;
+    }
+    public void setUserdefine3(String userdefine3) 
+    {
+        this.userdefine3 = userdefine3;
+    }
+
+    public String getUserdefine3() 
+    {
+        return userdefine3;
+    }
+    public void setUserdefine4(String userdefine4) 
+    {
+        this.userdefine4 = userdefine4;
+    }
+
+    public String getUserdefine4() 
+    {
+        return userdefine4;
+    }
+    public void setUserdefine5(String userdefine5) 
+    {
+        this.userdefine5 = userdefine5;
+    }
+
+    public String getUserdefine5() 
+    {
+        return userdefine5;
+    }
+    public void setNotes(String notes) 
+    {
+        this.notes = notes;
+    }
+
+    public String getNotes() 
+    {
+        return notes;
+    }
+    public void setQcPrintFlag(String qcPrintFlag) 
+    {
+        this.qcPrintFlag = qcPrintFlag;
+    }
+
+    public String getQcPrintFlag() 
+    {
+        return qcPrintFlag;
+    }
+    public void setWarehouseid(String warehouseid) 
+    {
+        this.warehouseid = warehouseid;
+    }
+
+    public String getWarehouseid() 
+    {
+        return warehouseid;
+    }
+
+    public List<DocQcDetails> getDocQcDetailsList()
+    {
+        return docQcDetailsList;
+    }
+
+    public void setDocQcDetailsList(List<DocQcDetails> docQcDetailsList)
+    {
+        this.docQcDetailsList = docQcDetailsList;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("qcno", getQcno())
+            .append("pano", getPano())
+            .append("customerid", getCustomerid())
+            .append("qcreference1", getQcreference1())
+            .append("qcreference2", getQcreference2())
+            .append("qcreference3", getQcreference3())
+            .append("qcreference4", getQcreference4())
+            .append("qcreference5", getQcreference5())
+            .append("qctype", getQctype())
+            .append("qcstatus", getQcstatus())
+            .append("qccreationtime", getQccreationtime())
+            .append("userdefine1", getUserdefine1())
+            .append("userdefine2", getUserdefine2())
+            .append("userdefine3", getUserdefine3())
+            .append("userdefine4", getUserdefine4())
+            .append("userdefine5", getUserdefine5())
+            .append("notes", getNotes())
+            .append("createTime", getCreateTime())
+            .append("createBy", getCreateBy())
+            .append("updateTime", getUpdateTime())
+            .append("updateBy", getUpdateBy())
+            .append("qcPrintFlag", getQcPrintFlag())
+            .append("warehouseid", getWarehouseid())
+            .append("docQcDetailsList", getDocQcDetailsList())
+            .toString();
+    }
+}

+ 61 - 0
warewms-ams/src/main/java/com/ruoyi/ams/qc/mapper/DocQcDetailsMapper.java

@@ -0,0 +1,61 @@
+package com.ruoyi.ams.qc.mapper;
+
+import java.util.List;
+import com.ruoyi.ams.qc.domain.DocQcDetails;
+
+/**
+ * 质检Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2022-11-14
+ */
+public interface DocQcDetailsMapper 
+{
+    /**
+     * 查询质检
+     * 
+     * @param qcno 质检主键
+     * @return 质检
+     */
+     DocQcDetails selectDocQcDetailsByQcno(String qcno);
+
+    /**
+     * 查询质检列表
+     * 
+     * @param docQcDetails 质检
+     * @return 质检集合
+     */
+     List<DocQcDetails> selectDocQcDetailsList(DocQcDetails docQcDetails);
+
+    /**
+     * 新增质检
+     * 
+     * @param docQcDetails 质检
+     * @return 结果
+     */
+     int insertDocQcDetails(DocQcDetails docQcDetails);
+
+    /**
+     * 修改质检
+     * 
+     * @param docQcDetails 质检
+     * @return 结果
+     */
+     int updateDocQcDetails(DocQcDetails docQcDetails);
+
+    /**
+     * 删除质检
+     * 
+     * @param qcno 质检主键
+     * @return 结果
+     */
+     int deleteDocQcDetailsByQcno(String qcno);
+
+    /**
+     * 批量删除质检
+     * 
+     * @param qcnos 需要删除的数据主键集合
+     * @return 结果
+     */
+     int deleteDocQcDetailsByQcnos(String[] qcnos);
+}

+ 87 - 0
warewms-ams/src/main/java/com/ruoyi/ams/qc/mapper/DocQcHeaderMapper.java

@@ -0,0 +1,87 @@
+package com.ruoyi.ams.qc.mapper;
+
+import java.util.List;
+import com.ruoyi.ams.qc.domain.DocQcHeader;
+import com.ruoyi.ams.qc.domain.DocQcDetails;
+
+/**
+ * 质检Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2022-11-14
+ */
+public interface DocQcHeaderMapper 
+{
+    /**
+     * 查询质检
+     * 
+     * @param qcno 质检主键
+     * @return 质检
+     */
+     DocQcHeader selectDocQcHeaderByQcno(String qcno);
+
+    /**
+     * 查询质检列表
+     * 
+     * @param docQcHeader 质检
+     * @return 质检集合
+     */
+     List<DocQcHeader> selectDocQcHeaderList(DocQcHeader docQcHeader);
+
+    /**
+     * 新增质检
+     * 
+     * @param docQcHeader 质检
+     * @return 结果
+     */
+     int insertDocQcHeader(DocQcHeader docQcHeader);
+
+    /**
+     * 修改质检
+     * 
+     * @param docQcHeader 质检
+     * @return 结果
+     */
+     int updateDocQcHeader(DocQcHeader docQcHeader);
+
+    /**
+     * 删除质检
+     * 
+     * @param qcno 质检主键
+     * @return 结果
+     */
+     int deleteDocQcHeaderByQcno(String qcno);
+
+    /**
+     * 批量删除质检
+     * 
+     * @param qcnos 需要删除的数据主键集合
+     * @return 结果
+     */
+     int deleteDocQcHeaderByQcnos(String[] qcnos);
+
+    /**
+     * 批量删除质检
+     * 
+     * @param qcnos 需要删除的数据主键集合
+     * @return 结果
+     */
+     int deleteDocQcDetailsByQcnos(String[] qcnos);
+    
+    /**
+     * 批量新增质检
+     * 
+     * @param docQcDetailsList 质检列表
+     * @return 结果
+     */
+     int batchDocQcDetails(List<DocQcDetails> docQcDetailsList);
+    
+
+    /**
+     * 通过质检主键删除质检信息
+     * 
+     * @param qcno 质检ID
+     * @return 结果
+     */
+     int deleteDocQcDetailsByQcno(String qcno);
+}

+ 69 - 0
warewms-ams/src/main/java/com/ruoyi/ams/qc/service/IDocQcDetailsService.java

@@ -0,0 +1,69 @@
+package com.ruoyi.ams.qc.service;
+
+import java.util.List;
+import com.ruoyi.ams.qc.domain.DocQcDetails;
+
+/**
+ * 质检Service接口
+ * 
+ * @author ruoyi
+ * @date 2022-11-14
+ */
+public interface IDocQcDetailsService 
+{
+    /**
+     * 查询质检
+     * 
+     * @param qcno 质检主键
+     * @return 质检
+     */
+     DocQcDetails selectDocQcDetailsByQcno(String qcno);
+
+    /**
+     * 查询质检列表
+     * 
+     * @param docQcDetails 质检
+     * @return 质检集合
+     */
+     List<DocQcDetails> selectDocQcDetailsList(DocQcDetails docQcDetails);
+
+    /**
+     * 查询质检
+     *
+     * @param docQcDetails 质检
+     * @return 质检集合
+     */
+    DocQcDetails selectDocQcDetailsByModel(DocQcDetails docQcDetails);
+
+    /**
+     * 新增质检
+     * 
+     * @param docQcDetails 质检
+     * @return 结果
+     */
+     int insertDocQcDetails(DocQcDetails docQcDetails);
+
+    /**
+     * 修改质检
+     * 
+     * @param docQcDetails 质检
+     * @return 结果
+     */
+     int updateDocQcDetails(DocQcDetails docQcDetails);
+
+    /**
+     * 批量删除质检
+     * 
+     * @param qcnos 需要删除的质检主键集合
+     * @return 结果
+     */
+     int deleteDocQcDetailsByQcnos(String[] qcnos);
+
+    /**
+     * 删除质检信息
+     * 
+     * @param qcno 质检主键
+     * @return 结果
+     */
+     int deleteDocQcDetailsByQcno(String qcno);
+}

+ 69 - 0
warewms-ams/src/main/java/com/ruoyi/ams/qc/service/IDocQcHeaderService.java

@@ -0,0 +1,69 @@
+package com.ruoyi.ams.qc.service;
+
+import java.util.List;
+import com.ruoyi.ams.qc.domain.DocQcHeader;
+
+/**
+ * 质检Service接口
+ * 
+ * @author ruoyi
+ * @date 2022-11-14
+ */
+public interface IDocQcHeaderService 
+{
+    /**
+     * 查询质检
+     * 
+     * @param qcno 质检主键
+     * @return 质检
+     */
+     DocQcHeader selectDocQcHeaderByQcno(String qcno);
+
+    /**
+     * 查询质检列表
+     * 
+     * @param docQcHeader 质检
+     * @return 质检集合
+     */
+     List<DocQcHeader> selectDocQcHeaderList(DocQcHeader docQcHeader);
+
+    /**
+     * 查询质检
+     *
+     * @param docQcHeader 质检
+     * @return 质检集合
+     */
+    DocQcHeader selectDocQcHeaderByModel(DocQcHeader docQcHeader);
+
+    /**
+     * 新增质检
+     * 
+     * @param docQcHeader 质检
+     * @return 结果
+     */
+     int insertDocQcHeader(DocQcHeader docQcHeader);
+
+    /**
+     * 修改质检
+     * 
+     * @param docQcHeader 质检
+     * @return 结果
+     */
+     int updateDocQcHeader(DocQcHeader docQcHeader);
+
+    /**
+     * 批量删除质检
+     * 
+     * @param qcnos 需要删除的质检主键集合
+     * @return 结果
+     */
+     int deleteDocQcHeaderByQcnos(String[] qcnos);
+
+    /**
+     * 删除质检信息
+     * 
+     * @param qcno 质检主键
+     * @return 结果
+     */
+     int deleteDocQcHeaderByQcno(String qcno);
+}

+ 110 - 0
warewms-ams/src/main/java/com/ruoyi/ams/qc/service/impl/DocQcDetailsServiceImpl.java

@@ -0,0 +1,110 @@
+package com.ruoyi.ams.qc.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.ams.qc.mapper.DocQcDetailsMapper;
+import com.ruoyi.ams.qc.domain.DocQcDetails;
+import com.ruoyi.ams.qc.service.IDocQcDetailsService;
+
+/**
+ * 质检Service业务层处理
+ * 
+ * @author ruoyi
+ * @date 2022-11-14
+ */
+@Service
+public class DocQcDetailsServiceImpl implements IDocQcDetailsService 
+{
+    @Autowired
+    private DocQcDetailsMapper docQcDetailsMapper;
+
+    /**
+     * 查询质检
+     * 
+     * @param qcno 质检主键
+     * @return 质检
+     */
+    @Override
+    public DocQcDetails selectDocQcDetailsByQcno(String qcno)
+    {
+        return docQcDetailsMapper.selectDocQcDetailsByQcno(qcno);
+    }
+
+    /**
+     * 查询质检列表
+     * 
+     * @param docQcDetails 质检
+     * @return 质检
+     */
+    @Override
+    public List<DocQcDetails> selectDocQcDetailsList(DocQcDetails docQcDetails)
+    {
+        return docQcDetailsMapper.selectDocQcDetailsList(docQcDetails);
+    }
+
+    /**
+     * 查询质检
+     *
+     * @param docQcDetails 质检
+     * @return 质检
+     */
+    @Override
+    public DocQcDetails selectDocQcDetailsByModel(DocQcDetails docQcDetails)
+    {
+        List<DocQcDetails> list = docQcDetailsMapper.selectDocQcDetailsList(docQcDetails);
+        if (list!=null && list.size()>0) {
+            return list.get(0);
+        } else {
+            return null;
+        }
+    }
+
+    /**
+     * 新增质检
+     * 
+     * @param docQcDetails 质检
+     * @return 结果
+     */
+    @Override
+    public int insertDocQcDetails(DocQcDetails docQcDetails)
+    {
+        return docQcDetailsMapper.insertDocQcDetails(docQcDetails);
+    }
+
+    /**
+     * 修改质检
+     * 
+     * @param docQcDetails 质检
+     * @return 结果
+     */
+    @Override
+    public int updateDocQcDetails(DocQcDetails docQcDetails)
+    {
+        return docQcDetailsMapper.updateDocQcDetails(docQcDetails);
+    }
+
+    /**
+     * 批量删除质检
+     * 
+     * @param qcnos 需要删除的质检主键
+     * @return 结果
+     */
+    @Override
+    public int deleteDocQcDetailsByQcnos(String[] qcnos)
+    {
+        return docQcDetailsMapper.deleteDocQcDetailsByQcnos(qcnos);
+    }
+
+    /**
+     * 删除质检信息
+     * 
+     * @param qcno 质检主键
+     * @return 结果
+     */
+    @Override
+    public int deleteDocQcDetailsByQcno(String qcno)
+    {
+        return docQcDetailsMapper.deleteDocQcDetailsByQcno(qcno);
+    }
+}

+ 151 - 0
warewms-ams/src/main/java/com/ruoyi/ams/qc/service/impl/DocQcHeaderServiceImpl.java

@@ -0,0 +1,151 @@
+package com.ruoyi.ams.qc.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import java.util.ArrayList;
+import com.ruoyi.common.utils.StringUtils;
+import org.springframework.transaction.annotation.Transactional;
+import com.ruoyi.ams.qc.domain.DocQcDetails;
+import com.ruoyi.ams.qc.mapper.DocQcHeaderMapper;
+import com.ruoyi.ams.qc.domain.DocQcHeader;
+import com.ruoyi.ams.qc.service.IDocQcHeaderService;
+
+/**
+ * 质检Service业务层处理
+ * 
+ * @author ruoyi
+ * @date 2022-11-14
+ */
+@Service
+public class DocQcHeaderServiceImpl implements IDocQcHeaderService 
+{
+    @Autowired
+    private DocQcHeaderMapper docQcHeaderMapper;
+
+    /**
+     * 查询质检
+     * 
+     * @param qcno 质检主键
+     * @return 质检
+     */
+    @Override
+    public DocQcHeader selectDocQcHeaderByQcno(String qcno)
+    {
+        return docQcHeaderMapper.selectDocQcHeaderByQcno(qcno);
+    }
+
+    /**
+     * 查询质检列表
+     * 
+     * @param docQcHeader 质检
+     * @return 质检
+     */
+    @Override
+    public List<DocQcHeader> selectDocQcHeaderList(DocQcHeader docQcHeader)
+    {
+        return docQcHeaderMapper.selectDocQcHeaderList(docQcHeader);
+    }
+
+    /**
+     * 查询质检
+     *
+     * @param docQcHeader 质检
+     * @return 质检
+     */
+    @Override
+    public DocQcHeader selectDocQcHeaderByModel(DocQcHeader docQcHeader)
+    {
+        List<DocQcHeader> list = docQcHeaderMapper.selectDocQcHeaderList(docQcHeader);
+        if (list!=null && list.size()>0) {
+            return list.get(0);
+        } else {
+            return null;
+        }
+    }
+
+    /**
+     * 新增质检
+     * 
+     * @param docQcHeader 质检
+     * @return 结果
+     */
+    @Transactional
+    @Override
+    public int insertDocQcHeader(DocQcHeader docQcHeader)
+    {
+        docQcHeader.setCreateTime(DateUtils.getNowDate());
+        int rows = docQcHeaderMapper.insertDocQcHeader(docQcHeader);
+        insertDocQcDetails(docQcHeader);
+        return rows;
+    }
+
+    /**
+     * 修改质检
+     * 
+     * @param docQcHeader 质检
+     * @return 结果
+     */
+    @Transactional
+    @Override
+    public int updateDocQcHeader(DocQcHeader docQcHeader)
+    {
+        docQcHeader.setUpdateTime(DateUtils.getNowDate());
+        docQcHeaderMapper.deleteDocQcDetailsByQcno(docQcHeader.getQcno());
+        insertDocQcDetails(docQcHeader);
+        return docQcHeaderMapper.updateDocQcHeader(docQcHeader);
+    }
+
+    /**
+     * 批量删除质检
+     * 
+     * @param qcnos 需要删除的质检主键
+     * @return 结果
+     */
+    @Transactional
+    @Override
+    public int deleteDocQcHeaderByQcnos(String[] qcnos)
+    {
+        docQcHeaderMapper.deleteDocQcDetailsByQcnos(qcnos);
+        return docQcHeaderMapper.deleteDocQcHeaderByQcnos(qcnos);
+    }
+
+    /**
+     * 删除质检信息
+     * 
+     * @param qcno 质检主键
+     * @return 结果
+     */
+    @Transactional
+    @Override
+    public int deleteDocQcHeaderByQcno(String qcno)
+    {
+        docQcHeaderMapper.deleteDocQcDetailsByQcno(qcno);
+        return docQcHeaderMapper.deleteDocQcHeaderByQcno(qcno);
+    }
+
+    /**
+     * 新增质检信息
+     * 
+     * @param docQcHeader 质检对象
+     */
+    public void insertDocQcDetails(DocQcHeader docQcHeader)
+    {
+        List<DocQcDetails> docQcDetailsList = docQcHeader.getDocQcDetailsList();
+        String qcno = docQcHeader.getQcno();
+        if (StringUtils.isNotNull(docQcDetailsList))
+        {
+            List<DocQcDetails> list = new ArrayList<DocQcDetails>();
+            for (DocQcDetails docQcDetails : docQcDetailsList)
+            {
+                docQcDetails.setQcno(qcno);
+                list.add(docQcDetails);
+            }
+            if (list.size() > 0)
+            {
+                docQcHeaderMapper.batchDocQcDetails(list);
+            }
+        }
+    }
+}

+ 172 - 0
warewms-ams/src/main/resources/mapper/docQc/DocQcDetailsMapper.xml

@@ -0,0 +1,172 @@
+<?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="com.ruoyi.ams.qc.mapper.DocQcDetailsMapper">
+    
+    <resultMap type="DocQcDetails" id="DocQcDetailsResult">
+        <result property="qcno"    column="qcno"    />
+        <result property="qclineno"    column="qclineno"    />
+        <result property="linestatus"    column="linestatus"    />
+        <result property="palineno"    column="palineno"    />
+        <result property="customerid"    column="customerid"    />
+        <result property="sku"    column="sku"    />
+        <result property="lotnum"    column="lotnum"    />
+        <result property="paqtyExpected"    column="paqty_expected"    />
+        <result property="qcqtyExpected"    column="qcqty_expected"    />
+        <result property="qcqtyCompleted"    column="qcqty_completed"    />
+        <result property="userdefine1"    column="userdefine1"    />
+        <result property="userdefine2"    column="userdefine2"    />
+        <result property="userdefine3"    column="userdefine3"    />
+        <result property="userdefine4"    column="userdefine4"    />
+        <result property="userdefine5"    column="userdefine5"    />
+        <result property="qcdescr"    column="qcdescr"    />
+        <result property="qcresult"    column="qcresult"    />
+        <result property="filecontent"    column="filecontent"    />
+        <result property="notes"    column="notes"    />
+        <result property="addtime"    column="addtime"    />
+        <result property="addwho"    column="addwho"    />
+        <result property="edittime"    column="edittime"    />
+        <result property="editwho"    column="editwho"    />
+        <result property="packid"    column="packid"    />
+        <result property="transactionid"    column="transactionid"    />
+    </resultMap>
+
+    <sql id="selectDocQcDetailsVo">
+        select qcno, qclineno, linestatus, palineno, customerid, sku, lotnum, paqty_expected, qcqty_expected, qcqty_completed, userdefine1, userdefine2, userdefine3, userdefine4, userdefine5, qcdescr, qcresult, filecontent, notes, addtime, addwho, edittime, editwho, packid, transactionid from doc_qc_details
+    </sql>
+
+    <select id="selectDocQcDetailsList" parameterType="DocQcDetails" resultMap="DocQcDetailsResult">
+        <include refid="selectDocQcDetailsVo"/>
+        <where>  
+            <if test="linestatus != null  and linestatus != ''"> and linestatus = #{linestatus}</if>
+            <if test="palineno != null "> and palineno = #{palineno}</if>
+            <if test="customerid != null  and customerid != ''"> and customerid = #{customerid}</if>
+            <if test="sku != null  and sku != ''"> and sku = #{sku}</if>
+            <if test="lotnum != null  and lotnum != ''"> and lotnum = #{lotnum}</if>
+            <if test="paqtyExpected != null "> and paqty_expected = #{paqtyExpected}</if>
+            <if test="qcqtyExpected != null "> and qcqty_expected = #{qcqtyExpected}</if>
+            <if test="qcqtyCompleted != null "> and qcqty_completed = #{qcqtyCompleted}</if>
+            <if test="userdefine1 != null  and userdefine1 != ''"> and userdefine1 = #{userdefine1}</if>
+            <if test="userdefine2 != null  and userdefine2 != ''"> and userdefine2 = #{userdefine2}</if>
+            <if test="userdefine3 != null  and userdefine3 != ''"> and userdefine3 = #{userdefine3}</if>
+            <if test="userdefine4 != null  and userdefine4 != ''"> and userdefine4 = #{userdefine4}</if>
+            <if test="userdefine5 != null  and userdefine5 != ''"> and userdefine5 = #{userdefine5}</if>
+            <if test="qcdescr != null  and qcdescr != ''"> and qcdescr = #{qcdescr}</if>
+            <if test="qcresult != null  and qcresult != ''"> and qcresult = #{qcresult}</if>
+            <if test="filecontent != null  and filecontent != ''"> and filecontent = #{filecontent}</if>
+            <if test="notes != null  and notes != ''"> and notes = #{notes}</if>
+            <if test="addtime != null "> and addtime = #{addtime}</if>
+            <if test="addwho != null  and addwho != ''"> and addwho = #{addwho}</if>
+            <if test="edittime != null "> and edittime = #{edittime}</if>
+            <if test="editwho != null  and editwho != ''"> and editwho = #{editwho}</if>
+            <if test="packid != null  and packid != ''"> and packid = #{packid}</if>
+            <if test="transactionid != null  and transactionid != ''"> and transactionid = #{transactionid}</if>
+        </where>
+    </select>
+    
+    <select id="selectDocQcDetailsByQcno" parameterType="String" resultMap="DocQcDetailsResult">
+        <include refid="selectDocQcDetailsVo"/>
+        where qcno = #{qcno}
+    </select>
+        
+    <insert id="insertDocQcDetails" parameterType="DocQcDetails">
+        insert into doc_qc_details
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="qcno != null">qcno,</if>
+            <if test="qclineno != null">qclineno,</if>
+            <if test="linestatus != null">linestatus,</if>
+            <if test="palineno != null">palineno,</if>
+            <if test="customerid != null">customerid,</if>
+            <if test="sku != null">sku,</if>
+            <if test="lotnum != null">lotnum,</if>
+            <if test="paqtyExpected != null">paqty_expected,</if>
+            <if test="qcqtyExpected != null">qcqty_expected,</if>
+            <if test="qcqtyCompleted != null">qcqty_completed,</if>
+            <if test="userdefine1 != null">userdefine1,</if>
+            <if test="userdefine2 != null">userdefine2,</if>
+            <if test="userdefine3 != null">userdefine3,</if>
+            <if test="userdefine4 != null">userdefine4,</if>
+            <if test="userdefine5 != null">userdefine5,</if>
+            <if test="qcdescr != null">qcdescr,</if>
+            <if test="qcresult != null">qcresult,</if>
+            <if test="filecontent != null">filecontent,</if>
+            <if test="notes != null">notes,</if>
+            <if test="addtime != null">addtime,</if>
+            <if test="addwho != null">addwho,</if>
+            <if test="edittime != null">edittime,</if>
+            <if test="editwho != null">editwho,</if>
+            <if test="packid != null">packid,</if>
+            <if test="transactionid != null">transactionid,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="qcno != null">#{qcno},</if>
+            <if test="qclineno != null">#{qclineno},</if>
+            <if test="linestatus != null">#{linestatus},</if>
+            <if test="palineno != null">#{palineno},</if>
+            <if test="customerid != null">#{customerid},</if>
+            <if test="sku != null">#{sku},</if>
+            <if test="lotnum != null">#{lotnum},</if>
+            <if test="paqtyExpected != null">#{paqtyExpected},</if>
+            <if test="qcqtyExpected != null">#{qcqtyExpected},</if>
+            <if test="qcqtyCompleted != null">#{qcqtyCompleted},</if>
+            <if test="userdefine1 != null">#{userdefine1},</if>
+            <if test="userdefine2 != null">#{userdefine2},</if>
+            <if test="userdefine3 != null">#{userdefine3},</if>
+            <if test="userdefine4 != null">#{userdefine4},</if>
+            <if test="userdefine5 != null">#{userdefine5},</if>
+            <if test="qcdescr != null">#{qcdescr},</if>
+            <if test="qcresult != null">#{qcresult},</if>
+            <if test="filecontent != null">#{filecontent},</if>
+            <if test="notes != null">#{notes},</if>
+            <if test="addtime != null">#{addtime},</if>
+            <if test="addwho != null">#{addwho},</if>
+            <if test="edittime != null">#{edittime},</if>
+            <if test="editwho != null">#{editwho},</if>
+            <if test="packid != null">#{packid},</if>
+            <if test="transactionid != null">#{transactionid},</if>
+         </trim>
+    </insert>
+
+    <update id="updateDocQcDetails" parameterType="DocQcDetails">
+        update doc_qc_details
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="qclineno != null">qclineno = #{qclineno},</if>
+            <if test="linestatus != null">linestatus = #{linestatus},</if>
+            <if test="palineno != null">palineno = #{palineno},</if>
+            <if test="customerid != null">customerid = #{customerid},</if>
+            <if test="sku != null">sku = #{sku},</if>
+            <if test="lotnum != null">lotnum = #{lotnum},</if>
+            <if test="paqtyExpected != null">paqty_expected = #{paqtyExpected},</if>
+            <if test="qcqtyExpected != null">qcqty_expected = #{qcqtyExpected},</if>
+            <if test="qcqtyCompleted != null">qcqty_completed = #{qcqtyCompleted},</if>
+            <if test="userdefine1 != null">userdefine1 = #{userdefine1},</if>
+            <if test="userdefine2 != null">userdefine2 = #{userdefine2},</if>
+            <if test="userdefine3 != null">userdefine3 = #{userdefine3},</if>
+            <if test="userdefine4 != null">userdefine4 = #{userdefine4},</if>
+            <if test="userdefine5 != null">userdefine5 = #{userdefine5},</if>
+            <if test="qcdescr != null">qcdescr = #{qcdescr},</if>
+            <if test="qcresult != null">qcresult = #{qcresult},</if>
+            <if test="filecontent != null">filecontent = #{filecontent},</if>
+            <if test="notes != null">notes = #{notes},</if>
+            <if test="addtime != null">addtime = #{addtime},</if>
+            <if test="addwho != null">addwho = #{addwho},</if>
+            <if test="edittime != null">edittime = #{edittime},</if>
+            <if test="editwho != null">editwho = #{editwho},</if>
+            <if test="packid != null">packid = #{packid},</if>
+            <if test="transactionid != null">transactionid = #{transactionid},</if>
+        </trim>
+        where qcno = #{qcno}
+    </update>
+
+    <delete id="deleteDocQcDetailsByQcno" parameterType="String">
+        delete from doc_qc_details where qcno = #{qcno}
+    </delete>
+
+    <delete id="deleteDocQcDetailsByQcnos" parameterType="String">
+        delete from doc_qc_details where qcno in 
+        <foreach item="qcno" collection="array" open="(" separator="," close=")">
+            #{qcno}
+        </foreach>
+    </delete>
+</mapper>

File diff ditekan karena terlalu besar
+ 212 - 0
warewms-ams/src/main/resources/mapper/docQc/DocQcHeaderMapper.xml