修改从erp中获取供应商数据

master
zhouhy 11 months ago
parent 66c9654dcb
commit 695844b65b

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>com.hw</groupId>
<artifactId>hw-api</artifactId>
<version>3.6.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>hw-api-jindie</artifactId>
<description>
hw-api-jindie
</description>
<dependencies>
<!-- RuoYi Common Core-->
<dependency>
<groupId>com.hw</groupId>
<artifactId>hw-common-core</artifactId>
</dependency>
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
</dependency>
</dependencies>
</project>

@ -0,0 +1,28 @@
package com.hw.jindie.api;
import com.hw.common.core.constant.SecurityConstants;
import com.hw.common.core.constant.ServiceNameConstants;
import com.hw.common.core.domain.R;
import com.hw.jindie.api.factory.RemoteJindieFallbackFactory;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestParam;
/**
* @ClassName : RemoteJindieService
* @Description : zhouhy
* @Author :
* @Date: 2024-04-26 13:27
*/
@FeignClient(contextId = "remoteJindieService", value = ServiceNameConstants.JINDIE_SERVICE, fallbackFactory = RemoteJindieFallbackFactory.class)
public interface RemoteJindieService {
/** 同步供应商*/
@GetMapping("/jindie/ErpSupplierInfo")
R<Integer> ErpSupplierInfo(@RequestHeader(SecurityConstants.FROM_SOURCE) String source, @RequestParam("beginTime") String beginTime, @RequestParam("endTime") String endTime);
/** 同步物料*/
@GetMapping("/jindie/syncMaterialInfo")
R<Integer> ErpMesMaterialInfo(@RequestHeader(SecurityConstants.FROM_SOURCE) String source, @RequestParam("beginTime") String beginTime, @RequestParam("endTime") String endTime);
}

@ -0,0 +1,27 @@
package com.hw.jindie.api.factory;
import com.hw.common.core.domain.R;
import com.hw.jindie.api.RemoteJindieService;
import org.springframework.cloud.openfeign.FallbackFactory;
/**
* @ClassName : RemoteJindieFallbackFactory
* @Description : zhouhy
* @Author :
* @Date: 2024-04-26 13:29
*/
public class RemoteJindieFallbackFactory implements FallbackFactory<RemoteJindieService> {
public RemoteJindieService create(Throwable throwable) {
return new RemoteJindieService() {
@Override
public R<Integer> ErpSupplierInfo(String source, String beginTime, String endTime) {
return null;
}
@Override
public R<Integer> ErpMesMaterialInfo(String source, String beginTime, String endTime) {
return null;
}
};
}
}

@ -52,4 +52,8 @@ public class ServiceNameConstants
* serviceid
* */
public static final String PRINTER_SERVICE = "hw-printer";
/**
* jindieserviceid
* */
public static final String JINDIE_SERVICE = "hw-jindie";
}

@ -17,6 +17,10 @@ public class WfConstants {
public static final Long WF_QUALITY_ABNORMAL_PROCESS_ID = 301L;//不合格处置工单流程ID
/** 质检工单报修流程节点*/
public static final Long WF_QUALITY_INSTANCE_ACTIVITY_FIRST_ID = 3011L;
public static final Long WF_QUALITY_INSTANCE_ACTIVITY_SECOND_ID = 3012L;
/**质检工单实例状态*/
public static final String WF_INSTANCE_STATUS_TO_START = "0";//未启动
public static final String WF_INSTANCE_STATUS_START = "1";//已启动
@ -28,4 +32,8 @@ public class WfConstants {
/**质检文件关联类型*/
public static final String QMS_FILE_TARGET_TYPE_QUALITY_INSTANCE_ACTIVITY = "1";//质检工单实例节点
}

@ -1,2 +1,2 @@
call mvn install:install-file -Dfile=D:\IdeaProjects\HwMes\hw-modules\hw-jindie\k3cloud-webapi-sdk8.0.6.jar -DgroupId=com.kingdee.bos -DartifactId=k3cloud-webapi-sdk -Dversion=8.0.6 -Dpackaging=jar
@pause
call mvn install:install-file -Dfile=D:\git\HwMes-beifen1\hw-modules\hw-jindie\k3cloud-webapi-sdk8.0.6.jar -DgroupId=com.kingdee.bos -DartifactId=k3cloud-webapi-sdk -Dversion=8.0.6 -Dpackaging=jar
@pause

@ -26,15 +26,28 @@ public class KingdeeErpSyncController {
@Autowired
private KingdeeErpService kingdeeErpService;
/**
* erp
* */
@GetMapping("/ErpSupplierInfo")
public AjaxResult ErpSupplierInfo(String beginTime, String endTime){
try {
return AjaxResult.success(kingdeeErpSyncService.syncSupplierInfoFromErp(0,beginTime,endTime));
} catch (Exception e){
e.printStackTrace();
return AjaxResult.error();
}
}
/**
*
*/
// @RequiresPermissions("wms:mobile:addrawinstock")
@Log(title = "物料信息", businessType = BusinessType.INSERT)
@GetMapping(("/syncMaterialInfo"))
public AjaxResult syncMaterialInfo() {
public AjaxResult syncMaterialInfo(String beginTime, String endTime) {
try {
return AjaxResult.success(kingdeeErpSyncService.syncMaterialInfoFromErp());
return AjaxResult.success(kingdeeErpSyncService.syncMaterialInfoFromErp(beginTime,endTime));
} catch (Exception e) {
e.printStackTrace();
return AjaxResult.error();

@ -110,6 +110,17 @@ public class MesBaseMaterialInfo extends BaseEntity
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "erp最后更新日期;对应FModifyDate", width = 30, dateFormat = "yyyy-MM-dd")
private Date erpModifyDate;
/** 采购计价单位;对应FPurchasePriceUnitId*/
@Excel(name = "采购计价单位;对应FPurchasePriceUnitId")
public Long purchasePriceUnitId;
public Long getPurchasePriceUnitId() {
return purchasePriceUnitId;
}
public void setPurchasePriceUnitId(Long purchasePriceUnitId) {
this.purchasePriceUnitId = purchasePriceUnitId;
}
public void setMaterialId(Long materialId)
{

@ -0,0 +1,116 @@
package com.hw.jindie.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.hw.common.core.annotation.Excel;
import com.hw.common.core.web.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import java.util.Date;
/**
* mes_base_supplier_info
*
* @author Yinq
* @date 2024-01-24
*/
public class MesBaseSupplierInfo extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 主键标识 */
private Long supplierId;
/** 供应商编号 */
@Excel(name = "供应商编号")
private String supplierCode;
/** 供应商名称 */
@Excel(name = "供应商名称")
private String supplierName;
/** erp主键 */
@Excel(name = "erp主键")
private Long erpId;
/** 供应商状态 */
@Excel(name = "供应商状态")
private String supplierStatus;
/** 审核日期 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "审核日期", width = 30, dateFormat = "yyyy-MM-dd")
private Date auditDate;
public void setSupplierId(Long supplierId)
{
this.supplierId = supplierId;
}
public Long getSupplierId()
{
return supplierId;
}
public void setSupplierCode(String supplierCode)
{
this.supplierCode = supplierCode;
}
public String getSupplierCode()
{
return supplierCode;
}
public void setSupplierName(String supplierName)
{
this.supplierName = supplierName;
}
public String getSupplierName()
{
return supplierName;
}
public void setErpId(Long erpId)
{
this.erpId = erpId;
}
public Long getErpId()
{
return erpId;
}
public void setSupplierStatus(String supplierStatus)
{
this.supplierStatus = supplierStatus;
}
public String getSupplierStatus()
{
return supplierStatus;
}
public void setAuditDate(Date auditDate)
{
this.auditDate = auditDate;
}
public Date getAuditDate()
{
return auditDate;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("supplierId", getSupplierId())
.append("supplierCode", getSupplierCode())
.append("supplierName", getSupplierName())
.append("erpId", getErpId())
.append("supplierStatus", getSupplierStatus())
.append("remark", getRemark())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("auditDate", getAuditDate())
.toString();
}
}

@ -0,0 +1,229 @@
package com.hw.jindie.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.hw.common.core.annotation.Excel;
import com.hw.common.core.web.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import java.util.Date;
/**
* mes_project_info
*
* @author Yinq
* @date 2024-02-19
*/
public class MesProjectInfo extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
*
*/
private Long projectId;
/**
* ERP
*/
@Excel(name = "ERP主键")
private Long erpId;
/**
* ;FNumber
*/
@Excel(name = "项目编码")
private String projectNo;
/**
* ;FName'
*/
@Excel(name = "项目名称")
private String projectName;
/**
* ;FDocumentStatus
*/
@Excel(name = "单据状态")
private String documentStatus;
/**
* ;FForbidStatus
*/
@Excel(name = "禁用状态")
private String forbidStatus;
/**
* ;FAuditDate
*/
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "审核日期", width = 30, dateFormat = "yyyy-MM-dd")
private Date auditDate;
/**
* ERP;FModifyDate
*/
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "ERP最后修改日期", width = 30, dateFormat = "yyyy-MM-dd")
private Date erpModifyDate;
/**
*
*/
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "计划开始日期", width = 30, dateFormat = "yyyy-MM-dd")
private Date beginDate;
/**
*
*/
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "计划结束日期", width = 30, dateFormat = "yyyy-MM-dd")
private Date endDate;
/**
* (123)
*/
@Excel(name = "项目状态")
private String orderStatus;
/**
*
*/
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "完成日期", width = 30, dateFormat = "yyyy-MM-dd")
private Date completeDate;
/**
* ;1-0-
*/
@Excel(name = "是否标识")
private String isFlag;
public void setProjectId(Long projectId) {
this.projectId = projectId;
}
public Long getProjectId() {
return projectId;
}
public void setErpId(Long erpId) {
this.erpId = erpId;
}
public Long getErpId() {
return erpId;
}
public void setProjectNo(String projectNo) {
this.projectNo = projectNo;
}
public String getProjectNo() {
return projectNo;
}
public void setProjectName(String projectName) {
this.projectName = projectName;
}
public String getProjectName() {
return projectName;
}
public void setDocumentStatus(String documentStatus) {
this.documentStatus = documentStatus;
}
public String getDocumentStatus() {
return documentStatus;
}
public void setForbidStatus(String forbidStatus) {
this.forbidStatus = forbidStatus;
}
public String getForbidStatus() {
return forbidStatus;
}
public void setAuditDate(Date auditDate) {
this.auditDate = auditDate;
}
public Date getAuditDate() {
return auditDate;
}
public void setErpModifyDate(Date erpModifyDate) {
this.erpModifyDate = erpModifyDate;
}
public Date getErpModifyDate() {
return erpModifyDate;
}
public void setBeginDate(Date beginDate) {
this.beginDate = beginDate;
}
public Date getBeginDate() {
return beginDate;
}
public void setEndDate(Date endDate) {
this.endDate = endDate;
}
public Date getEndDate() {
return endDate;
}
public void setOrderStatus(String orderStatus) {
this.orderStatus = orderStatus;
}
public String getOrderStatus() {
return orderStatus;
}
public void setCompleteDate(Date completeDate) {
this.completeDate = completeDate;
}
public Date getCompleteDate() {
return completeDate;
}
public void setIsFlag(String isFlag) {
this.isFlag = isFlag;
}
public String getIsFlag() {
return isFlag;
}
@Override
public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
.append("projectId", getProjectId())
.append("erpId", getErpId())
.append("projectNo", getProjectNo())
.append("projectName", getProjectName())
.append("documentStatus", getDocumentStatus())
.append("forbidStatus", getForbidStatus())
.append("auditDate", getAuditDate())
.append("erpModifyDate", getErpModifyDate())
.append("beginDate", getBeginDate())
.append("endDate", getEndDate())
.append("orderStatus", getOrderStatus())
.append("completeDate", getCompleteDate())
.append("isFlag", getIsFlag())
.append("remark", getRemark())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.toString();
}
}

@ -0,0 +1,381 @@
package com.hw.jindie.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.hw.common.core.annotation.Excel;
import com.hw.common.core.web.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import java.math.BigDecimal;
import java.util.Date;
/**
* mes_sale_order
*
* @author Yinq
* @date 2024-02-19
*/
public class MesSaleOrder extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
*
*/
private Long saleOrderId;
/**
* ERP;FID
*/
@Excel(name = "ERP的主键信息;对应FID")
private Long erpId;
/**
* ERPID;FSaleOrderEntry.FEntryID
*/
@Excel(name = "对应金蝶ERP订单明细的ID;对应FSaleOrderEntry.FEntryID")
private Long fentryId;
/**
* ;FBillNo
*/
@Excel(name = "销售订单编号;对应FBillNo")
private String saleorderCode;
/**
*
*/
@Excel(name = "销售订单行号")
private String saleorderLinenumber;
/**
* ;FDocumentStatus
*/
@Excel(name = "单据状态;对应FDocumentStatus")
private String documentStatus;
/**
* ,mes_base_factory_infofactory_id
*/
@Excel(name = "所属工厂,关联mes_base_factory_info的factory_id")
private Long factoryId;
/**
* 线mes_base_prodline_infoprodline_id
*/
@Excel(name = "所属产线关联mes_base_prodline_info的prodline_id")
private Long prodlineId;
/**
* ID,
*/
@Excel(name = "物料ID,关联物料信息主键")
private Long materialId;
/**
* ;FMaterialId.FNumber
*/
@Excel(name = "物料编码;对应FMaterialId.FNumber")
private String materialCode;
/**
* ;FMaterialName
*/
@Excel(name = "物料名称;对应FMaterialName")
private String materialName;
/**
*
*/
@Excel(name = "物料组")
private String matkl;
/**
* ;FQty
*/
@Excel(name = "订单计划数量;对应FQty")
private BigDecimal orderAmount;
/**
*
*/
@Excel(name = "完成数量")
private BigDecimal completeAmount;
/**
*
*/
@Excel(name = "已发布数量", readConverterExp = "或=叫已派工数量")
private BigDecimal releaseQty;
/**
* 1-0-
*/
@Excel(name = "是否已下达计划", readConverterExp = "1=-是0-否")
private String isRelease;
/**
* ;FApproveDate
*/
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "审核日期;对应FApproveDate", width = 30, dateFormat = "yyyy-MM-dd")
private Date approveDate;
/**
* ERP;FModifyDate
*/
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "ERP最后修改日期;对应FModifyDate", width = 30, dateFormat = "yyyy-MM-dd")
private Date erpModifyDate;
/**
* ;FMinPlanDeliveryDate
*/
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "计划交货日期;对应FMinPlanDeliveryDate", width = 30, dateFormat = "yyyy-MM-dd")
private Date planDeliveryDate;
/**
*
*/
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "计划开始日期", width = 30, dateFormat = "yyyy-MM-dd")
private Date beginDate;
/**
*
*/
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "计划结束日期", width = 30, dateFormat = "yyyy-MM-dd")
private Date endDate;
/**
*
*/
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "完成日期", width = 30, dateFormat = "yyyy-MM-dd")
private Date completeDate;
/**
* 1-0-
*/
@Excel(name = "是否标识1-是0-否")
private String isFlag;
public void setSaleOrderId(Long saleOrderId) {
this.saleOrderId = saleOrderId;
}
public Long getSaleOrderId() {
return saleOrderId;
}
public void setErpId(Long erpId) {
this.erpId = erpId;
}
public Long getErpId() {
return erpId;
}
public void setFentryId(Long fentryId) {
this.fentryId = fentryId;
}
public Long getFentryId() {
return fentryId;
}
public void setSaleorderCode(String saleorderCode) {
this.saleorderCode = saleorderCode;
}
public String getSaleorderCode() {
return saleorderCode;
}
public void setSaleorderLinenumber(String saleorderLinenumber) {
this.saleorderLinenumber = saleorderLinenumber;
}
public String getSaleorderLinenumber() {
return saleorderLinenumber;
}
public void setDocumentStatus(String documentStatus) {
this.documentStatus = documentStatus;
}
public String getDocumentStatus() {
return documentStatus;
}
public void setFactoryId(Long factoryId) {
this.factoryId = factoryId;
}
public Long getFactoryId() {
return factoryId;
}
public void setProdlineId(Long prodlineId) {
this.prodlineId = prodlineId;
}
public Long getProdlineId() {
return prodlineId;
}
public void setMaterialId(Long materialId) {
this.materialId = materialId;
}
public Long getMaterialId() {
return materialId;
}
public void setMaterialCode(String materialCode) {
this.materialCode = materialCode;
}
public String getMaterialCode() {
return materialCode;
}
public void setMaterialName(String materialName) {
this.materialName = materialName;
}
public String getMaterialName() {
return materialName;
}
public void setMatkl(String matkl) {
this.matkl = matkl;
}
public String getMatkl() {
return matkl;
}
public void setOrderAmount(BigDecimal orderAmount) {
this.orderAmount = orderAmount;
}
public BigDecimal getOrderAmount() {
return orderAmount;
}
public void setCompleteAmount(BigDecimal completeAmount) {
this.completeAmount = completeAmount;
}
public BigDecimal getCompleteAmount() {
return completeAmount;
}
public void setReleaseQty(BigDecimal releaseQty) {
this.releaseQty = releaseQty;
}
public BigDecimal getReleaseQty() {
return releaseQty;
}
public void setIsRelease(String isRelease) {
this.isRelease = isRelease;
}
public String getIsRelease() {
return isRelease;
}
public void setApproveDate(Date approveDate) {
this.approveDate = approveDate;
}
public Date getApproveDate() {
return approveDate;
}
public void setErpModifyDate(Date erpModifyDate) {
this.erpModifyDate = erpModifyDate;
}
public Date getErpModifyDate() {
return erpModifyDate;
}
public void setPlanDeliveryDate(Date planDeliveryDate) {
this.planDeliveryDate = planDeliveryDate;
}
public Date getPlanDeliveryDate() {
return planDeliveryDate;
}
public void setBeginDate(Date beginDate) {
this.beginDate = beginDate;
}
public Date getBeginDate() {
return beginDate;
}
public void setEndDate(Date endDate) {
this.endDate = endDate;
}
public Date getEndDate() {
return endDate;
}
public void setCompleteDate(Date completeDate) {
this.completeDate = completeDate;
}
public Date getCompleteDate() {
return completeDate;
}
public void setIsFlag(String isFlag) {
this.isFlag = isFlag;
}
public String getIsFlag() {
return isFlag;
}
@Override
public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
.append("saleOrderId", getSaleOrderId())
.append("erpId", getErpId())
.append("fentryId", getFentryId())
.append("saleorderCode", getSaleorderCode())
.append("saleorderLinenumber", getSaleorderLinenumber())
.append("documentStatus", getDocumentStatus())
.append("factoryId", getFactoryId())
.append("prodlineId", getProdlineId())
.append("materialId", getMaterialId())
.append("materialCode", getMaterialCode())
.append("materialName", getMaterialName())
.append("matkl", getMatkl())
.append("orderAmount", getOrderAmount())
.append("completeAmount", getCompleteAmount())
.append("releaseQty", getReleaseQty())
.append("isRelease", getIsRelease())
.append("approveDate", getApproveDate())
.append("erpModifyDate", getErpModifyDate())
.append("planDeliveryDate", getPlanDeliveryDate())
.append("beginDate", getBeginDate())
.append("endDate", getEndDate())
.append("completeDate", getCompleteDate())
.append("isFlag", getIsFlag())
.append("remark", getRemark())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.toString();
}
}

@ -0,0 +1,62 @@
package com.hw.jindie.mapper;
import com.hw.jindie.domain.MesBaseSupplierInfo;
import java.util.List;
/**
* Mapper
*
* @author Yinq
* @date 2024-01-24
*/
public interface MesBaseSupplierInfoMapper
{
/**
*
*
* @param supplierId
* @return
*/
public MesBaseSupplierInfo selectMesBaseSupplierInfoBySupplierId(Long supplierId);
/**
*
*
* @param mesBaseSupplierInfo
* @return
*/
public List<MesBaseSupplierInfo> selectMesBaseSupplierInfoList(MesBaseSupplierInfo mesBaseSupplierInfo);
/**
*
*
* @param mesBaseSupplierInfo
* @return
*/
public int insertMesBaseSupplierInfo(MesBaseSupplierInfo mesBaseSupplierInfo);
/**
*
*
* @param mesBaseSupplierInfo
* @return
*/
public int updateMesBaseSupplierInfo(MesBaseSupplierInfo mesBaseSupplierInfo);
/**
*
*
* @param supplierId
* @return
*/
public int deleteMesBaseSupplierInfoBySupplierId(Long supplierId);
/**
*
*
* @param supplierIds
* @return
*/
public int deleteMesBaseSupplierInfoBySupplierIds(Long[] supplierIds);
}

@ -0,0 +1,62 @@
package com.hw.jindie.mapper;
import com.hw.jindie.domain.MesProjectInfo;
import java.util.List;
/**
* Mapper
*
* @author Yinq
* @date 2024-02-19
*/
public interface MesProjectInfoMapper
{
/**
*
*
* @param projectId
* @return
*/
public MesProjectInfo selectMesProjectInfoByProjectId(Long projectId);
/**
*
*
* @param mesProjectInfo
* @return
*/
public List<MesProjectInfo> selectMesProjectInfoList(MesProjectInfo mesProjectInfo);
/**
*
*
* @param mesProjectInfo
* @return
*/
public int insertMesProjectInfo(MesProjectInfo mesProjectInfo);
/**
*
*
* @param mesProjectInfo
* @return
*/
public int updateMesProjectInfo(MesProjectInfo mesProjectInfo);
/**
*
*
* @param projectId
* @return
*/
public int deleteMesProjectInfoByProjectId(Long projectId);
/**
*
*
* @param projectIds
* @return
*/
public int deleteMesProjectInfoByProjectIds(Long[] projectIds);
}

@ -0,0 +1,62 @@
package com.hw.jindie.mapper;
import com.hw.jindie.domain.MesSaleOrder;
import java.util.List;
/**
* Mapper
*
* @author Yinq
* @date 2024-02-19
*/
public interface MesSaleOrderMapper
{
/**
*
*
* @param saleOrderId
* @return
*/
public MesSaleOrder selectMesSaleOrderBySaleOrderId(Long saleOrderId);
/**
*
*
* @param mesSaleOrder
* @return
*/
public List<MesSaleOrder> selectMesSaleOrderList(MesSaleOrder mesSaleOrder);
/**
*
*
* @param mesSaleOrder
* @return
*/
public int insertMesSaleOrder(MesSaleOrder mesSaleOrder);
/**
*
*
* @param mesSaleOrder
* @return
*/
public int updateMesSaleOrder(MesSaleOrder mesSaleOrder);
/**
*
*
* @param saleOrderId
* @return
*/
public int deleteMesSaleOrderBySaleOrderId(Long saleOrderId);
/**
*
*
* @param saleOrderIds
* @return
*/
public int deleteMesSaleOrderBySaleOrderIds(Long[] saleOrderIds);
}

@ -2,6 +2,7 @@ package com.hw.jindie.service;
public interface IKingdeeErpSyncService {
public int syncMaterialInfoFromErp() throws Exception;
public int syncMaterialInfoFromErp(String beginTime,String endTime) throws Exception;
public int syncSupplierInfoFromErp(int startRow,String beginTime,String endTime) throws Exception;
}

@ -3,10 +3,15 @@ package com.hw.jindie.service.impl;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.google.gson.Gson;
import com.google.gson.JsonObject;
import com.hw.common.core.utils.DateUtils;
import com.hw.common.core.utils.StringUtils;
import com.hw.jindie.domain.MesBaseMaterialInfo;
import com.hw.jindie.domain.MesBaseSupplierInfo;
import com.hw.jindie.domain.MesProjectInfo;
import com.hw.jindie.domain.MesSaleOrder;
import com.hw.jindie.mapper.MesBaseMaterialInfoMapper;
import com.hw.jindie.mapper.MesBaseSupplierInfoMapper;
import com.hw.jindie.service.IKingdeeErpSyncService;
import com.kingdee.bos.webapi.entity.RepoRet;
import com.kingdee.bos.webapi.sdk.K3CloudApi;
@ -15,6 +20,7 @@ import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* @Description: ERP
@ -27,24 +33,27 @@ import java.util.Date;
public class KingdeeErpSyncServiceImpl implements IKingdeeErpSyncService {
@Autowired
private MesBaseMaterialInfoMapper mesBaseMaterialInfoMapper;
@Autowired
private MesBaseSupplierInfoMapper mesBaseSupplierInfoMapper;
/**
* @throws Exception
* @Description:ERP
*/
public static void syncSupplierInfoFromErp() throws Exception {
public int syncSupplierInfoFromErp(int startRow,String beginTime,String endTime) throws Exception {
K3CloudApi api = new K3CloudApi();
// "FormId": "BD_Supplier",
// "FieldKeys": "FNumber ,FName,FCreateDate,FModifyDate,FAuditDate",
// "FilterString": "FDocumentStatus='C' AND FCreateDate>'2022-01-01' ",
JSONObject queryJson = new JSONObject();
String formId = "BD_Supplier";
String fieldKeys = "FSupplierId,FNumber,FName,FCreateDate,FModifyDate,FAuditDate";
String fieldKeys = "FSupplierId,FNumber,FName,FCreateDate,FModifyDate,FAuditDate,FCreatorId,FModifierId";
String orderString = "";
int topRowCount = 0;
int startRow = 0;
int limit = 100;
// int startRow = 0;
int limit = 2;
queryJson.put("FormId", formId);
queryJson.put("FieldKeys", fieldKeys);
queryJson.put("OrderString", orderString);
@ -52,7 +61,12 @@ public class KingdeeErpSyncServiceImpl implements IKingdeeErpSyncService {
queryJson.put("StartRow", startRow);
queryJson.put("Limit", limit);
queryJson.put("SubSystemId", "");
System.out.println(queryJson.toString());
//条件查询
if (StringUtils.isNotEmpty(beginTime)&&StringUtils.isNotEmpty(endTime)){
String filterString = "FCreateDate >'"+beginTime+"' AND '"+endTime+"' >FCreateDate";
queryJson.put("FilterString",filterString);
}
// System.out.println(queryJson.toString());
// "FieldKeys": "FNumber,FName,FBaseUnitId,FSpecification,FNETWEIGHT,FGROSSWEIGHT,FCreateDate,FModifyDate,FApproveDate",
// "FilterString": "FDocumentStatus='C' AND FCreateDate>'2022-01-01' and FMaterialGroup.FNUMBER IN ('28')",
@ -60,17 +74,81 @@ public class KingdeeErpSyncServiceImpl implements IKingdeeErpSyncService {
String result = api.billQuery(queryJson.toString());
JSONArray resultArray = JSONArray.parseArray(result);
System.out.println(resultArray.size());
System.out.println("供应商查询接口: " + result);
}
// System.out.println(resultArray.size());
// System.out.println("供应商查询接口: " + result);
for (int i = 0; i < resultArray.size(); i++) {
try {
JSONObject resultObject = (JSONObject) resultArray.get(i);
MesBaseSupplierInfo mesBaseSupplierInfo = new MesBaseSupplierInfo();
//供应商编号
String FNumber = (String) resultObject.get("FNumber");
//供应商名称
String FName = (String) resultObject.get("FName");
//erp主键id
Integer erpId = resultObject.get("FSupplierId") == null ? 0 : (Integer) resultObject.get("FSupplierId");
//创建时间
String FCreateDate = (String) resultObject.get("FCreateDate");
//更新时间
String FModifyDate = (String) resultObject.get("FModifyDate");
//审核日期
String FAuditDate = (String) resultObject.get("FAuditDate");
mesBaseSupplierInfo.setErpId(Long.valueOf(erpId));
List<MesBaseSupplierInfo> mesBaseSupplierInfos = mesBaseSupplierInfoMapper.selectMesBaseSupplierInfoList(mesBaseSupplierInfo);
mesBaseSupplierInfo.setSupplierCode(FNumber);
mesBaseSupplierInfo.setSupplierName(FName);
//供应商状态
mesBaseSupplierInfo.setSupplierStatus("1");
// mesBaseSupplierInfo.setCreateBy(FCreatorId);
// mesBaseSupplierInfo.setUpdateBy(FModifierId);
if (StringUtils.isNotEmpty(FCreateDate)) {
mesBaseSupplierInfo.setCreateTime(conversionERPTime(FCreateDate));
}
if (StringUtils.isNotEmpty(FModifyDate)) {
mesBaseSupplierInfo.setUpdateTime(conversionERPTime(FModifyDate));
}
if (StringUtils.isNotEmpty(FAuditDate)) {
mesBaseSupplierInfo.setAuditDate(conversionERPTime(FAuditDate));
}
System.out.println(mesBaseSupplierInfo);
//通过erp主键判断表中是否有重复的数据如果有则更新没有则插入
if (mesBaseSupplierInfos.size()==0){
mesBaseSupplierInfoMapper.insertMesBaseSupplierInfo(mesBaseSupplierInfo);
}
else {
//todo 主键
mesBaseSupplierInfo.setSupplierId(mesBaseSupplierInfos.get(0).getSupplierId());
mesBaseSupplierInfoMapper.updateMesBaseSupplierInfo(mesBaseSupplierInfo);
}
} catch (Exception e) {
e.printStackTrace();
}
}
if (resultArray.size() < limit) {
// System.out.println(startRow);
//通过递归同步所有供应商,测试先不用
int i = syncSupplierInfoFromErp(startRow + resultArray.size(),beginTime,endTime);
// return i;
return 1;
} else {
//为空时的总行数
return startRow+resultArray.size();
}
}
/**
* @throws Exception
* @Description:ERP
*/
@Override
public int syncMaterialInfoFromErp() throws Exception {
public int syncMaterialInfoFromErp(String beginTime,String endTime) throws Exception {
K3CloudApi api = new K3CloudApi();
String FDocumentStatus = "C";
@ -79,19 +157,22 @@ public class KingdeeErpSyncServiceImpl implements IKingdeeErpSyncService {
String fieldKeys = "FMaterialId,FNumber,FName,FBaseUnitId,FSpecification,FNETWEIGHT,FGROSSWEIGHT," +
"FCreateDate,FModifyDate,FApproveDate,FCreateOrgId,FUseOrgId,FPurchasePriceUnitId";
// String filterString = "FNumber='98010102'";
String filterString = "";
String orderString = "";
int topRowCount = 0;
int startRow = 0;
int limit = 99;
int limit = 20;
queryJson.put("FormId", formId);
queryJson.put("FieldKeys", fieldKeys);
queryJson.put("FilterString", filterString);
queryJson.put("OrderString", orderString);
queryJson.put("TopRowCount", topRowCount);
queryJson.put("StartRow", startRow);
queryJson.put("Limit", limit);
queryJson.put("SubSystemId", "");
//条件查询
if (StringUtils.isNotEmpty(beginTime)&&StringUtils.isNotEmpty(endTime)){
String filterString = "FCreateDate >'"+beginTime+"' AND '"+endTime+"' >FCreateDate";
queryJson.put("FilterString",filterString);
}
System.out.println(queryJson.toString());
@ -103,23 +184,39 @@ public class KingdeeErpSyncServiceImpl implements IKingdeeErpSyncService {
try {
JSONObject resultObject = (JSONObject) resultArray.get(i);
MesBaseMaterialInfo mesBaseMaterialInfo = new MesBaseMaterialInfo();
//erp主键
Integer erpId = (Integer) resultObject.get("FMaterialId");
//物料编码
String materialCode = (String) resultObject.get("FNumber");
//物料名称
String materialName = (String) resultObject.get("FName");
//计量单位ID
Integer materaialUnitId = resultObject.get("FBaseUnitId") == null ? null : (Integer) resultObject.get("FBaseUnitId");
//物料规格
String materialSpec = resultObject.get("FSpecification") == null ? null : (String) resultObject.get("FSpecification");
//净重
BigDecimal netWeight = resultObject.get("FNETWEIGHT") == null ? null : (BigDecimal) resultObject.get("FNETWEIGHT");
//毛重
BigDecimal grossWeight = resultObject.get("FGROSSWEIGHT") == null ? null : (BigDecimal) resultObject.get("FGROSSWEIGHT");
//创建时间
String createDateStr = resultObject.get("FCreateDate") == null ? null : (String) resultObject.get("FCreateDate");
//erp最后更新日期
String modifyDateStr = resultObject.get("FModifyDate") == null ? null : (String) resultObject.get("FModifyDate");
//审核日期
String approveDateStr = resultObject.get("FApproveDate") == null ? null : (String) resultObject.get("FApproveDate");
//创建组织
Integer createOrgId = resultObject.get("FCreateOrgId") == null ? null : (Integer) resultObject.get("FCreateOrgId");
//使用组织
Integer useOrgId = resultObject.get("FUseOrgId") == null ? null : (Integer) resultObject.get("FUseOrgId");
//采购计量单价
Integer purchasePriceUnitId = resultObject.get("FPurchasePriceUnitId") == null ? null : (Integer) resultObject.get("FPurchasePriceUnit");
// 2023-08-26T16:15:15.05
mesBaseMaterialInfo.setErpId(Long.valueOf(erpId));
List<MesBaseMaterialInfo> mesBaseMaterialInfos = mesBaseMaterialInfoMapper.selectMesBaseMaterialInfoList(mesBaseMaterialInfo);
mesBaseMaterialInfo.setMaterialCode(materialCode);
mesBaseMaterialInfo.setMaterialName(materialName);
mesBaseMaterialInfo.setMaterialUnitId(Long.valueOf(materaialUnitId));
@ -129,25 +226,26 @@ public class KingdeeErpSyncServiceImpl implements IKingdeeErpSyncService {
mesBaseMaterialInfo.setCreateOrgId(Long.valueOf(createOrgId));
mesBaseMaterialInfo.setUseOrgId(Long.valueOf(useOrgId));
if (StringUtils.isNotEmpty(createDateStr)) {
createDateStr = createDateStr.replace("T", " ");
Date createDate = DateUtils.dateTime("yyyy-MM-dd HH:mm:ss", createDateStr);
mesBaseMaterialInfo.setCreateTime(createDate);
mesBaseMaterialInfo.setCreateTime(conversionERPTime(createDateStr));
}
if (StringUtils.isNotEmpty(modifyDateStr)) {
modifyDateStr = modifyDateStr.replace("T", " ");
Date modifyDate = DateUtils.dateTime("yyyy-MM-dd HH:mm:ss", modifyDateStr);
mesBaseMaterialInfo.setErpModifyDate(modifyDate);
mesBaseMaterialInfo.setErpModifyDate(conversionERPTime(modifyDateStr));
}
if (StringUtils.isNotEmpty(approveDateStr)) {
approveDateStr = approveDateStr.replace("T", " ");
Date approveDate = DateUtils.dateTime("yyyy-MM-dd HH:mm:ss", approveDateStr);
mesBaseMaterialInfo.setApproveDate(approveDate);
mesBaseMaterialInfo.setApproveDate(conversionERPTime(approveDateStr));
}
mesBaseMaterialInfoMapper.insertMesBaseMaterialInfo(mesBaseMaterialInfo);
System.out.println(mesBaseMaterialInfo);
if (mesBaseMaterialInfos.size()!=0){
mesBaseMaterialInfoMapper.updateMesBaseMaterialInfo(mesBaseMaterialInfo);
}
else {
mesBaseMaterialInfoMapper.insertMesBaseMaterialInfo(mesBaseMaterialInfo);
}
// mesBaseMaterialInfoMapper.insertMesBaseMaterialInfo(mesBaseMaterialInfo);
} catch (Exception e) {
e.printStackTrace();
}
@ -221,7 +319,7 @@ public class KingdeeErpSyncServiceImpl implements IKingdeeErpSyncService {
String orderString = "";
int topRowCount = 0;
int startRow = 0;
int limit = 2;
int limit = 20;
queryJson.put("FormId", formId);
queryJson.put("FieldKeys", fieldKeys);
queryJson.put("FilterString", filterString);
@ -236,6 +334,50 @@ public class KingdeeErpSyncServiceImpl implements IKingdeeErpSyncService {
JSONArray resultArray = JSONArray.parseArray(result);
System.out.println(resultArray.size());
System.out.println("项目信息单据查询接口: " + result);
for (int i = 0; i < resultArray.size(); i++){
try {
JSONObject resultObject = (JSONObject) resultArray.get(i);
MesProjectInfo mesProjectInfo = new MesProjectInfo();
Integer FID = resultObject.get("FID")==null ? 0 : (Integer)resultObject.get("FID");
String FNumber = resultObject.get("FNumber")==null ? null : (String)resultObject.get("FNumber");
String FName = resultObject.get("FName")==null ? null :(String)resultObject.get("FName");
// String FDocumentStatus = resultObject.get("FDocumentStatus")==null? null:(String)resultObject.get("FDocumentStatus");
String FForbidStatus = resultObject.get("FForbidStatus")==null? null:(String)resultObject.get("FForbidStatus");
String FAuditDate = resultObject.get("FAuditDate")==null?null:(String) resultObject.get("FAuditDate");
String FModifyDate = resultObject.get("FModifyDate")==null?null:(String) resultObject.get("FModifyDate");
String FCreateDate = resultObject.get("FCreateDate")==null?null:(String) resultObject.get("FCreateDate");
mesProjectInfo.setErpId(Long.valueOf(FID));
mesProjectInfo.setProjectNo(FNumber);
mesProjectInfo.setProjectName(FName);
mesProjectInfo.setDocumentStatus(FDocumentStatus);
mesProjectInfo.setForbidStatus(FForbidStatus);
mesProjectInfo.setIsFlag("1");
if (StringUtils.isNotEmpty(FAuditDate)) {
FAuditDate = FAuditDate.replace("T", " ");
Date date = DateUtils.dateTime("yyyy-MM-dd HH:mm:ss", FAuditDate);
mesProjectInfo.setAuditDate(date);
}
if (StringUtils.isNotEmpty(FModifyDate)){
FModifyDate = FModifyDate.replace("T"," ");
Date date = DateUtils.dateTime("yyyy-MM-dd HH:mm:ss",FModifyDate);
mesProjectInfo.setErpModifyDate(date);
}
if (StringUtils.isNotEmpty(FCreateDate)){
FCreateDate = FCreateDate.replace("T"," ");
Date date = DateUtils.dateTime("yyyy-MM-dd HH:mm:ss",FCreateDate);
mesProjectInfo.setCreateTime(date);
}
System.out.println(mesProjectInfo);
}catch (Exception e){
e.printStackTrace();
}
}
}
/**
@ -273,11 +415,17 @@ public class KingdeeErpSyncServiceImpl implements IKingdeeErpSyncService {
}
public static void main(String[] args) throws Exception {
// syncSupplierInfoFromErp();
// int i = syncSupplierInfoFromErp(0);
// syncMaterialInfoFromErp();
// syncSaleOrderFromErp();
syncPurchaseOrderFromErp();
// syncProjectInfoFromErp();
// syncPurchaseOrderFromErp();
syncProjectInfoFromErp();
}
//将erp中获取的时间string转换为date类型
public Date conversionERPTime(String ERPTime){
ERPTime = ERPTime.replace("T", " ");
Date date = DateUtils.dateTime("yyyy-MM-dd HH:mm:ss", ERPTime);
return date;
}
}

@ -33,6 +33,7 @@
<result property="updateTime" column="update_time"/>
<result property="approveDate" column="approve_date"/>
<result property="erpModifyDate" column="erp_modify_date"/>
<result property="purchasePriceUnitId" column="purchase_price_unit_id"/>
</resultMap>
<sql id="selectMesBaseMaterialInfoVo">
@ -63,7 +64,8 @@
update_by,
update_time,
approve_date,
erp_modify_date
erp_modify_date,
purchase_price_unit_id
from mes_base_material_info
</sql>
@ -139,6 +141,7 @@
<if test="updateTime != null">update_time,</if>
<if test="approveDate != null">approve_date,</if>
<if test="erpModifyDate != null">erp_modify_date,</if>
<if test="purchasePriceUnitId != null">purchase_price_unit_id,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="erpId != null">#{erpId},</if>
@ -168,6 +171,7 @@
<if test="updateTime != null">#{updateTime},</if>
<if test="approveDate != null">#{approveDate},</if>
<if test="erpModifyDate != null">#{erpModifyDate},</if>
<if test="purchasePriceUnitId != null">#{purchasePriceUnitId},</if>
</trim>
</insert>
@ -203,6 +207,7 @@
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="approveDate != null">approve_date = #{approveDate},</if>
<if test="erpModifyDate != null">erp_modify_date = #{erpModifyDate},</if>
<if test="purchasePriceUnitId != null">purchase_price_unit_id = #{purchasePriceUnitId},</if>
</trim>
where material_id = #{materialId}
</update>

@ -0,0 +1,96 @@
<?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.hw.jindie.mapper.MesBaseSupplierInfoMapper">
<resultMap type="MesBaseSupplierInfo" id="MesBaseSupplierInfoResult">
<result property="supplierId" column="supplier_id" />
<result property="supplierCode" column="supplier_code" />
<result property="supplierName" column="supplier_name" />
<result property="erpId" column="erp_id" />
<result property="supplierStatus" column="supplier_status" />
<result property="remark" column="remark" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="auditDate" column="audit_date" />
</resultMap>
<sql id="selectMesBaseSupplierInfoVo">
select supplier_id, supplier_code, supplier_name, erp_id, supplier_status, remark, create_by, create_time, update_by, update_time, audit_date from mes_base_supplier_info
</sql>
<select id="selectMesBaseSupplierInfoList" parameterType="MesBaseSupplierInfo" resultMap="MesBaseSupplierInfoResult">
<include refid="selectMesBaseSupplierInfoVo"/>
<where>
<if test="supplierCode != null and supplierCode != ''"> and supplier_code = #{supplierCode}</if>
<if test="supplierName != null and supplierName != ''"> and supplier_name like concat('%', #{supplierName}, '%')</if>
<if test="erpId != null "> and erp_id = #{erpId}</if>
<if test="supplierStatus != null and supplierStatus != ''"> and supplier_status = #{supplierStatus}</if>
<if test="params.beginAuditDate != null and params.beginAuditDate != '' and params.endAuditDate != null and params.endAuditDate != ''"> and audit_date between #{params.beginAuditDate} and #{params.endAuditDate}</if>
</where>
</select>
<select id="selectMesBaseSupplierInfoBySupplierId" parameterType="Long" resultMap="MesBaseSupplierInfoResult">
<include refid="selectMesBaseSupplierInfoVo"/>
where supplier_id = #{supplierId}
</select>
<insert id="insertMesBaseSupplierInfo" parameterType="MesBaseSupplierInfo" useGeneratedKeys="true" keyProperty="supplierId">
insert into mes_base_supplier_info
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="supplierCode != null">supplier_code,</if>
<if test="supplierName != null and supplierName != ''">supplier_name,</if>
<if test="erpId != null">erp_id,</if>
<if test="supplierStatus != null and supplierStatus != ''">supplier_status,</if>
<if test="remark != null">remark,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
<if test="auditDate != null">audit_date,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="supplierCode != null">#{supplierCode},</if>
<if test="supplierName != null and supplierName != ''">#{supplierName},</if>
<if test="erpId != null">#{erpId},</if>
<if test="supplierStatus != null and supplierStatus != ''">#{supplierStatus},</if>
<if test="remark != null">#{remark},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="auditDate != null">#{auditDate},</if>
</trim>
</insert>
<update id="updateMesBaseSupplierInfo" parameterType="MesBaseSupplierInfo">
update mes_base_supplier_info
<trim prefix="SET" suffixOverrides=",">
<if test="supplierCode != null">supplier_code = #{supplierCode},</if>
<if test="supplierName != null and supplierName != ''">supplier_name = #{supplierName},</if>
<if test="erpId != null">erp_id = #{erpId},</if>
<if test="supplierStatus != null and supplierStatus != ''">supplier_status = #{supplierStatus},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="auditDate != null">audit_date = #{auditDate},</if>
</trim>
where supplier_id = #{supplierId}
</update>
<delete id="deleteMesBaseSupplierInfoBySupplierId" parameterType="Long">
delete from mes_base_supplier_info where supplier_id = #{supplierId}
</delete>
<delete id="deleteMesBaseSupplierInfoBySupplierIds" parameterType="String">
delete from mes_base_supplier_info where supplier_id in
<foreach item="supplierId" collection="array" open="(" separator="," close=")">
#{supplierId}
</foreach>
</delete>
</mapper>

@ -0,0 +1,131 @@
<?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.hw.jindie.mapper.MesProjectInfoMapper">
<resultMap type="MesProjectInfo" id="MesProjectInfoResult">
<result property="projectId" column="project_id" />
<result property="erpId" column="erp_id" />
<result property="projectNo" column="project_no" />
<result property="projectName" column="project_name" />
<result property="documentStatus" column="document_status" />
<result property="forbidStatus" column="forbid_status" />
<result property="auditDate" column="audit_date" />
<result property="erpModifyDate" column="erp_modify_date" />
<result property="beginDate" column="begin_date" />
<result property="endDate" column="end_date" />
<result property="orderStatus" column="order_status" />
<result property="completeDate" column="complete_date" />
<result property="isFlag" column="is_flag" />
<result property="remark" column="remark" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
</resultMap>
<sql id="selectMesProjectInfoVo">
select project_id, erp_id, project_no, project_name, document_status, forbid_status, audit_date, erp_modify_date, begin_date, end_date, order_status, complete_date, is_flag, remark, create_by, create_time, update_by, update_time from mes_project_info
</sql>
<select id="selectMesProjectInfoList" parameterType="MesProjectInfo" resultMap="MesProjectInfoResult">
<include refid="selectMesProjectInfoVo"/>
<where>
<if test="erpId != null "> and erp_id = #{erpId}</if>
<if test="projectNo != null and projectNo != ''"> and project_no = #{projectNo}</if>
<if test="projectName != null and projectName != ''"> and project_name like concat('%', #{projectName}, '%')</if>
<if test="documentStatus != null and documentStatus != ''"> and document_status = #{documentStatus}</if>
<if test="forbidStatus != null and forbidStatus != ''"> and forbid_status = #{forbidStatus}</if>
<if test="auditDate != null "> and audit_date = #{auditDate}</if>
<if test="erpModifyDate != null "> and erp_modify_date = #{erpModifyDate}</if>
<if test="beginDate != null "> and begin_date = #{beginDate}</if>
<if test="endDate != null "> and end_date = #{endDate}</if>
<if test="orderStatus != null and orderStatus != ''"> and order_status = #{orderStatus}</if>
<if test="completeDate != null "> and complete_date = #{completeDate}</if>
<if test="isFlag != null and isFlag != ''"> and is_flag = #{isFlag}</if>
</where>
</select>
<select id="selectMesProjectInfoByProjectId" parameterType="Long" resultMap="MesProjectInfoResult">
<include refid="selectMesProjectInfoVo"/>
where project_id = #{projectId}
</select>
<insert id="insertMesProjectInfo" parameterType="MesProjectInfo" useGeneratedKeys="true" keyProperty="projectId">
insert into mes_project_info
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="erpId != null">erp_id,</if>
<if test="projectNo != null">project_no,</if>
<if test="projectName != null">project_name,</if>
<if test="documentStatus != null">document_status,</if>
<if test="forbidStatus != null">forbid_status,</if>
<if test="auditDate != null">audit_date,</if>
<if test="erpModifyDate != null">erp_modify_date,</if>
<if test="beginDate != null">begin_date,</if>
<if test="endDate != null">end_date,</if>
<if test="orderStatus != null">order_status,</if>
<if test="completeDate != null">complete_date,</if>
<if test="isFlag != null and isFlag != ''">is_flag,</if>
<if test="remark != null">remark,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="erpId != null">#{erpId},</if>
<if test="projectNo != null">#{projectNo},</if>
<if test="projectName != null">#{projectName},</if>
<if test="documentStatus != null">#{documentStatus},</if>
<if test="forbidStatus != null">#{forbidStatus},</if>
<if test="auditDate != null">#{auditDate},</if>
<if test="erpModifyDate != null">#{erpModifyDate},</if>
<if test="beginDate != null">#{beginDate},</if>
<if test="endDate != null">#{endDate},</if>
<if test="orderStatus != null">#{orderStatus},</if>
<if test="completeDate != null">#{completeDate},</if>
<if test="isFlag != null and isFlag != ''">#{isFlag},</if>
<if test="remark != null">#{remark},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
</trim>
</insert>
<update id="updateMesProjectInfo" parameterType="MesProjectInfo">
update mes_project_info
<trim prefix="SET" suffixOverrides=",">
<if test="erpId != null">erp_id = #{erpId},</if>
<if test="projectNo != null">project_no = #{projectNo},</if>
<if test="projectName != null">project_name = #{projectName},</if>
<if test="documentStatus != null">document_status = #{documentStatus},</if>
<if test="forbidStatus != null">forbid_status = #{forbidStatus},</if>
<if test="auditDate != null">audit_date = #{auditDate},</if>
<if test="erpModifyDate != null">erp_modify_date = #{erpModifyDate},</if>
<if test="beginDate != null">begin_date = #{beginDate},</if>
<if test="endDate != null">end_date = #{endDate},</if>
<if test="orderStatus != null">order_status = #{orderStatus},</if>
<if test="completeDate != null">complete_date = #{completeDate},</if>
<if test="isFlag != null and isFlag != ''">is_flag = #{isFlag},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
</trim>
where project_id = #{projectId}
</update>
<delete id="deleteMesProjectInfoByProjectId" parameterType="Long">
delete from mes_project_info where project_id = #{projectId}
</delete>
<delete id="deleteMesProjectInfoByProjectIds" parameterType="String">
delete from mes_project_info where project_id in
<foreach item="projectId" collection="array" open="(" separator="," close=")">
#{projectId}
</foreach>
</delete>
</mapper>

@ -0,0 +1,215 @@
<?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.hw.jindie.mapper.MesSaleOrderMapper">
<resultMap type="MesSaleOrder" id="MesSaleOrderResult">
<result property="saleOrderId" column="sale_order_id"/>
<result property="erpId" column="erp_id"/>
<result property="fentryId" column="fentry_id"/>
<result property="saleorderCode" column="saleorder_code"/>
<result property="saleorderLinenumber" column="saleorder_linenumber"/>
<result property="documentStatus" column="document_status"/>
<result property="factoryId" column="factory_id"/>
<result property="prodlineId" column="prodline_id"/>
<result property="materialId" column="material_id"/>
<result property="materialCode" column="material_code"/>
<result property="materialName" column="material_name"/>
<result property="matkl" column="matkl"/>
<result property="orderAmount" column="order_amount"/>
<result property="completeAmount" column="complete_amount"/>
<result property="releaseQty" column="release_qty"/>
<result property="isRelease" column="is_release"/>
<result property="approveDate" column="approve_date"/>
<result property="erpModifyDate" column="erp_modify_date"/>
<result property="planDeliveryDate" column="plan_delivery_date"/>
<result property="beginDate" column="begin_date"/>
<result property="endDate" column="end_date"/>
<result property="completeDate" column="complete_date"/>
<result property="isFlag" column="is_flag"/>
<result property="remark" column="remark"/>
<result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
</resultMap>
<sql id="selectMesSaleOrderVo">
select sale_order_id,
erp_id,
fentry_id,
saleorder_code,
saleorder_linenumber,
document_status,
factory_id,
prodline_id,
material_id,
material_code,
material_name,
matkl,
order_amount,
complete_amount,
release_qty,
is_release,
approve_date,
erp_modify_date,
plan_delivery_date,
begin_date,
end_date,
complete_date,
is_flag,
remark,
create_by,
create_time,
update_by,
update_time
from mes_sale_order
</sql>
<select id="selectMesSaleOrderList" parameterType="MesSaleOrder" resultMap="MesSaleOrderResult">
<include refid="selectMesSaleOrderVo"/>
<where>
<if test="erpId != null ">and erp_id = #{erpId}</if>
<if test="fentryId != null ">and fentry_id = #{fentryId}</if>
<if test="saleorderCode != null and saleorderCode != ''">and saleorder_code = #{saleorderCode}</if>
<if test="saleorderLinenumber != null and saleorderLinenumber != ''">and saleorder_linenumber =
#{saleorderLinenumber}
</if>
<if test="documentStatus != null and documentStatus != ''">and document_status = #{documentStatus}</if>
<if test="factoryId != null ">and factory_id = #{factoryId}</if>
<if test="prodlineId != null ">and prodline_id = #{prodlineId}</if>
<if test="materialId != null ">and material_id = #{materialId}</if>
<if test="materialCode != null and materialCode != ''">and material_code = #{materialCode}</if>
<if test="materialName != null and materialName != ''">and material_name like concat('%', #{materialName},
'%')
</if>
<if test="matkl != null and matkl != ''">and matkl = #{matkl}</if>
<if test="orderAmount != null ">and order_amount = #{orderAmount}</if>
<if test="completeAmount != null ">and complete_amount = #{completeAmount}</if>
<if test="releaseQty != null ">and release_qty = #{releaseQty}</if>
<if test="isRelease != null and isRelease != ''">and is_release = #{isRelease}</if>
<if test="approveDate != null ">and approve_date = #{approveDate}</if>
<if test="erpModifyDate != null ">and erp_modify_date = #{erpModifyDate}</if>
<if test="planDeliveryDate != null ">and plan_delivery_date = #{planDeliveryDate}</if>
<if test="beginDate != null ">and begin_date = #{beginDate}</if>
<if test="endDate != null ">and end_date = #{endDate}</if>
<if test="completeDate != null ">and complete_date = #{completeDate}</if>
<if test="isFlag != null and isFlag != ''">and is_flag = #{isFlag}</if>
</where>
</select>
<select id="selectMesSaleOrderBySaleOrderId" parameterType="Long" resultMap="MesSaleOrderResult">
<include refid="selectMesSaleOrderVo"/>
where sale_order_id = #{saleOrderId}
</select>
<insert id="insertMesSaleOrder" parameterType="MesSaleOrder" useGeneratedKeys="true" keyProperty="saleOrderId">
insert into mes_sale_order
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="erpId != null">erp_id,</if>
<if test="fentryId != null">fentry_id,</if>
<if test="saleorderCode != null">saleorder_code,</if>
<if test="saleorderLinenumber != null">saleorder_linenumber,</if>
<if test="documentStatus != null">document_status,</if>
<if test="factoryId != null">factory_id,</if>
<if test="prodlineId != null">prodline_id,</if>
<if test="materialId != null">material_id,</if>
<if test="materialCode != null">material_code,</if>
<if test="materialName != null">material_name,</if>
<if test="matkl != null">matkl,</if>
<if test="orderAmount != null">order_amount,</if>
<if test="completeAmount != null">complete_amount,</if>
<if test="releaseQty != null">release_qty,</if>
<if test="isRelease != null">is_release,</if>
<if test="approveDate != null">approve_date,</if>
<if test="erpModifyDate != null">erp_modify_date,</if>
<if test="planDeliveryDate != null">plan_delivery_date,</if>
<if test="beginDate != null">begin_date,</if>
<if test="endDate != null">end_date,</if>
<if test="completeDate != null">complete_date,</if>
<if test="isFlag != null and isFlag != ''">is_flag,</if>
<if test="remark != null">remark,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="erpId != null">#{erpId},</if>
<if test="fentryId != null">#{fentryId},</if>
<if test="saleorderCode != null">#{saleorderCode},</if>
<if test="saleorderLinenumber != null">#{saleorderLinenumber},</if>
<if test="documentStatus != null">#{documentStatus},</if>
<if test="factoryId != null">#{factoryId},</if>
<if test="prodlineId != null">#{prodlineId},</if>
<if test="materialId != null">#{materialId},</if>
<if test="materialCode != null">#{materialCode},</if>
<if test="materialName != null">#{materialName},</if>
<if test="matkl != null">#{matkl},</if>
<if test="orderAmount != null">#{orderAmount},</if>
<if test="completeAmount != null">#{completeAmount},</if>
<if test="releaseQty != null">#{releaseQty},</if>
<if test="isRelease != null">#{isRelease},</if>
<if test="approveDate != null">#{approveDate},</if>
<if test="erpModifyDate != null">#{erpModifyDate},</if>
<if test="planDeliveryDate != null">#{planDeliveryDate},</if>
<if test="beginDate != null">#{beginDate},</if>
<if test="endDate != null">#{endDate},</if>
<if test="completeDate != null">#{completeDate},</if>
<if test="isFlag != null and isFlag != ''">#{isFlag},</if>
<if test="remark != null">#{remark},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
</trim>
</insert>
<update id="updateMesSaleOrder" parameterType="MesSaleOrder">
update mes_sale_order
<trim prefix="SET" suffixOverrides=",">
<if test="erpId != null">erp_id = #{erpId},</if>
<if test="fentryId != null">fentry_id = #{fentryId},</if>
<if test="saleorderCode != null">saleorder_code = #{saleorderCode},</if>
<if test="saleorderLinenumber != null">saleorder_linenumber = #{saleorderLinenumber},</if>
<if test="documentStatus != null">document_status = #{documentStatus},</if>
<if test="factoryId != null">factory_id = #{factoryId},</if>
<if test="prodlineId != null">prodline_id = #{prodlineId},</if>
<if test="materialId != null">material_id = #{materialId},</if>
<if test="materialCode != null">material_code = #{materialCode},</if>
<if test="materialName != null">material_name = #{materialName},</if>
<if test="matkl != null">matkl = #{matkl},</if>
<if test="orderAmount != null">order_amount = #{orderAmount},</if>
<if test="completeAmount != null">complete_amount = #{completeAmount},</if>
<if test="releaseQty != null">release_qty = #{releaseQty},</if>
<if test="isRelease != null">is_release = #{isRelease},</if>
<if test="approveDate != null">approve_date = #{approveDate},</if>
<if test="erpModifyDate != null">erp_modify_date = #{erpModifyDate},</if>
<if test="planDeliveryDate != null">plan_delivery_date = #{planDeliveryDate},</if>
<if test="beginDate != null">begin_date = #{beginDate},</if>
<if test="endDate != null">end_date = #{endDate},</if>
<if test="completeDate != null">complete_date = #{completeDate},</if>
<if test="isFlag != null and isFlag != ''">is_flag = #{isFlag},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
</trim>
where sale_order_id = #{saleOrderId}
</update>
<delete id="deleteMesSaleOrderBySaleOrderId" parameterType="Long">
delete
from mes_sale_order
where sale_order_id = #{saleOrderId}
</delete>
<delete id="deleteMesSaleOrderBySaleOrderIds" parameterType="String">
delete from mes_sale_order where sale_order_id in
<foreach item="saleOrderId" collection="array" open="(" separator="," close=")">
#{saleOrderId}
</foreach>
</delete>
</mapper>

@ -89,6 +89,12 @@
<version>3.6.3</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.hw</groupId>
<artifactId>hw-api-jindie</artifactId>
<version>3.6.3</version>
<scope>compile</scope>
</dependency>
</dependencies>

@ -3,6 +3,7 @@ package com.hw.job.task;
import com.hw.common.core.constant.SecurityConstants;
import com.hw.dms.api.RemoteDmsService;
import com.hw.ems.api.RemoteEmsService;
import com.hw.jindie.api.RemoteJindieService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.hw.common.core.utils.StringUtils;
@ -19,6 +20,8 @@ public class RyTask
private RemoteEmsService remoteEmsService;
@Autowired
private RemoteDmsService remoteDmsService;
@Autowired
private RemoteJindieService remoteJindieService;
public void ryMultipleParams(String s, Boolean b, Long l, Double d, Integer i)
{
System.out.println(StringUtils.format("执行多参方法: 字符串类型{},布尔类型{},长整型{},浮点型{},整形{}", s, b, l, d, i));
@ -63,7 +66,14 @@ public class RyTask
public void getDmsBillsMaint(String planMaintCode){
System.out.println("++创建保养工单++getDmsMaintInstance");
remoteDmsService.getDmsBillsMaintInstance(SecurityConstants.INNER,planMaintCode);
}
public void ERPSynMesSupplierInfo(String beginTime, String endTime){
System.out.println("++同步ERP中物料供应商++ErpSupplierInfo");
remoteJindieService.ErpSupplierInfo(SecurityConstants.INNER,beginTime,endTime);
}
public void ERPSynMesMaterialInfo(String beginTime, String endTime){
System.out.println("++同步ERP中物料信息++ErpMesMaterialInfo");
remoteJindieService.ErpMesMaterialInfo(SecurityConstants.INNER,beginTime,endTime);
}
}

@ -132,7 +132,9 @@ public class MesProductPlanDetailServiceImpl implements IMesProductPlanDetailSer
MesProductPlanDetail queryProductPlanDetail = new MesProductPlanDetail();
queryProductPlanDetail.setPlanId(mesProductPlanDetailVo.getPlanId());
//获取生产计划明细列表
List<MesProductPlanDetail> mesProductPlanDetails = mesProductPlanDetailMapper.selectMesProductPlanDetailList(queryProductPlanDetail);
//判断该计划是否已有明细
if (mesProductPlanDetails != null && mesProductPlanDetails.size() > 0) {
return 0;
} else {
@ -250,6 +252,7 @@ public class MesProductPlanDetailServiceImpl implements IMesProductPlanDetailSer
Date currentDate = new Date();
String userName = SecurityUtils.getUsername();
BigDecimal planAmount = null;
//获取计划数量
String attachId = dbProductPlan.getAttachId();
if (StringUtils.isNotEmpty(attachId)) {//如果是按图纸生产的
String[] attachIdArr = attachId.split(",");

@ -0,0 +1,116 @@
package com.hw.qms.controller;
import java.util.List;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
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.hw.common.log.annotation.Log;
import com.hw.common.log.enums.BusinessType;
import com.hw.common.security.annotation.RequiresPermissions;
import com.hw.qms.domain.QmsQualityInstanceActivity;
import com.hw.qms.service.IQmsQualityInstanceActivityService;
import com.hw.common.core.web.controller.BaseController;
import com.hw.common.core.web.domain.AjaxResult;
import com.hw.common.core.utils.poi.ExcelUtil;
import com.hw.common.core.web.page.TableDataInfo;
/**
* Controller
*
* @author xins
* @date 2024-04-22
*/
@RestController
@RequestMapping("/qualityinstanceactivity")
public class QmsQualityInstanceActivityController extends BaseController
{
@Autowired
private IQmsQualityInstanceActivityService qmsQualityInstanceActivityService;
/**
*
*/
@RequiresPermissions("qms:qualityinstanceactivity:list")
@GetMapping("/list")
public TableDataInfo list(QmsQualityInstanceActivity qmsQualityInstanceActivity)
{
startPage();
List<QmsQualityInstanceActivity> list = qmsQualityInstanceActivityService.selectQmsQualityInstanceActivityList(qmsQualityInstanceActivity);
return getDataTable(list);
}
/**
* (2)
*/
@RequiresPermissions("qms:qualityinstanceactivity:list")
@GetMapping("/list/noStatus")
public TableDataInfo noStatus(QmsQualityInstanceActivity qmsQualityInstanceActivity)
{
startPage();
List<QmsQualityInstanceActivity> list = qmsQualityInstanceActivityService.selectQmsQualityInstanceActivitynoStatus(qmsQualityInstanceActivity);
return getDataTable(list);
}
/**
*
*/
@RequiresPermissions("qms:qualityinstanceactivity:export")
@Log(title = "质检工单实例节点", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, QmsQualityInstanceActivity qmsQualityInstanceActivity)
{
List<QmsQualityInstanceActivity> list = qmsQualityInstanceActivityService.selectQmsQualityInstanceActivityList(qmsQualityInstanceActivity);
ExcelUtil<QmsQualityInstanceActivity> util = new ExcelUtil<QmsQualityInstanceActivity>(QmsQualityInstanceActivity.class);
util.exportExcel(response, list, "质检工单实例节点数据");
}
/**
*
*/
@RequiresPermissions("qms:qualityinstanceactivity:query")
@GetMapping(value = "/{instanceActivityId}")
public AjaxResult getInfo(@PathVariable("instanceActivityId") Long instanceActivityId)
{
return success(qmsQualityInstanceActivityService.selectQmsQualityInstanceActivityByInstanceActivityId(instanceActivityId));
}
/**
*
*/
@RequiresPermissions("qms:qualityinstanceactivity:add")
@Log(title = "质检工单实例节点", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody QmsQualityInstanceActivity qmsQualityInstanceActivity)
{
return toAjax(qmsQualityInstanceActivityService.insertQmsQualityInstanceActivity(qmsQualityInstanceActivity));
}
/**
*
*/
@RequiresPermissions("qms:qualityinstanceactivity:edit")
@Log(title = "质检工单实例节点", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody QmsQualityInstanceActivity qmsQualityInstanceActivity)
{
return toAjax(qmsQualityInstanceActivityService.updateQmsQualityInstanceActivity(qmsQualityInstanceActivity));
}
/**
*
*/
@RequiresPermissions("qms:qualityinstanceactivity:remove")
@Log(title = "质检工单实例节点", businessType = BusinessType.DELETE)
@DeleteMapping("/{instanceActivityIds}")
public AjaxResult remove(@PathVariable Long[] instanceActivityIds)
{
return toAjax(qmsQualityInstanceActivityService.deleteQmsQualityInstanceActivityByInstanceActivityIds(instanceActivityIds));
}
}

@ -7,7 +7,7 @@ import com.hw.common.core.web.domain.BaseEntity;
/**
* qms_check_instance_file
*
*
* @author xins
* @date 2024-01-23
*/
@ -30,39 +30,49 @@ public class QmsCheckInstanceFile extends BaseEntity
@Excel(name = "故障文件地址,一般是图片")
private String faultFile;
public void setCheckInstanceFileId(Long checkInstanceFileId)
private String filePath;
public String getFilePath() {
return filePath;
}
public void setFilePath(String filePath) {
this.filePath = filePath;
}
public void setCheckInstanceFileId(Long checkInstanceFileId)
{
this.checkInstanceFileId = checkInstanceFileId;
}
public Long getCheckInstanceFileId()
public Long getCheckInstanceFileId()
{
return checkInstanceFileId;
}
public void setTargetType(String targetType)
public void setTargetType(String targetType)
{
this.targetType = targetType;
}
public String getTargetType()
public String getTargetType()
{
return targetType;
}
public void setTargetId(Long targetId)
public void setTargetId(Long targetId)
{
this.targetId = targetId;
}
public Long getTargetId()
public Long getTargetId()
{
return targetId;
}
public void setFaultFile(String faultFile)
public void setFaultFile(String faultFile)
{
this.faultFile = faultFile;
}
public String getFaultFile()
public String getFaultFile()
{
return faultFile;
}

@ -10,7 +10,7 @@ import com.hw.common.core.web.domain.BaseEntity;
/**
* qms_quality_instance
*
*
* @author xins
* @date 2024-01-23
*/
@ -47,69 +47,129 @@ public class QmsQualityInstance extends BaseEntity
@Excel(name = "处理结束时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date endTime;
//规则id
private Long checkRuleId;
//批次代码
private String materialBatch;
//处理意见
private String processHandleResolution;
//处理描述
private String processHandleDesc;
private List<String> fileUrls;
private Long stepsNum;
/** 质检工单实例节点信息 */
private List<QmsQualityInstanceActivity> qmsQualityInstanceActivityList;
public void setQualityInstanceId(Long qualityInstanceId)
public Long getStepsNum() {
return stepsNum;
}
public void setStepsNum(Long stepsNum) {
this.stepsNum = stepsNum;
}
public List<String> getFileUrls() {
return fileUrls;
}
public void setFileUrls(List<String> fileUrls) {
this.fileUrls = fileUrls;
}
public String getProcessHandleResolution() {
return processHandleResolution;
}
public void setProcessHandleResolution(String processHandleResolution) {
this.processHandleResolution = processHandleResolution;
}
public String getProcessHandleDesc() {
return processHandleDesc;
}
public void setProcessHandleDesc(String processHandleDesc) {
this.processHandleDesc = processHandleDesc;
}
public Long getCheckRuleId() {
return checkRuleId;
}
public void setCheckRuleId(Long checkRuleId) {
this.checkRuleId = checkRuleId;
}
public String getMaterialBatch() {
return materialBatch;
}
public void setMaterialBatch(String materialBatch) {
this.materialBatch = materialBatch;
}
public void setQualityInstanceId(Long qualityInstanceId)
{
this.qualityInstanceId = qualityInstanceId;
}
public Long getQualityInstanceId()
public Long getQualityInstanceId()
{
return qualityInstanceId;
}
public void setWfProcessId(Long wfProcessId)
public void setWfProcessId(Long wfProcessId)
{
this.wfProcessId = wfProcessId;
}
public Long getWfProcessId()
public Long getWfProcessId()
{
return wfProcessId;
}
public void setWfInstanceStatus(String wfInstanceStatus)
public void setWfInstanceStatus(String wfInstanceStatus)
{
this.wfInstanceStatus = wfInstanceStatus;
}
public String getWfInstanceStatus()
public String getWfInstanceStatus()
{
return wfInstanceStatus;
}
public void setCheckResultId(Long checkResultId)
public void setCheckResultId(Long checkResultId)
{
this.checkResultId = checkResultId;
}
public Long getCheckResultId()
public Long getCheckResultId()
{
return checkResultId;
}
public void setQualityDescription(String qualityDescription)
public void setQualityDescription(String qualityDescription)
{
this.qualityDescription = qualityDescription;
}
public String getQualityDescription()
public String getQualityDescription()
{
return qualityDescription;
}
public void setStartTime(Date startTime)
public void setStartTime(Date startTime)
{
this.startTime = startTime;
}
public Date getStartTime()
public Date getStartTime()
{
return startTime;
}
public void setEndTime(Date endTime)
public void setEndTime(Date endTime)
{
this.endTime = endTime;
}
public Date getEndTime()
public Date getEndTime()
{
return endTime;
}

@ -77,6 +77,15 @@ public class QmsQualityInstanceActivity extends BaseEntity
private List<QmsCheckInstanceFile> qmsCheckInstanceFileList;
private boolean editedAble = false;//是否可编辑
private Long wfLength;
public Long getWfLength() {
return wfLength;
}
public void setWfLength(Long wfLength) {
this.wfLength = wfLength;
}
public void setInstanceActivityId(Long instanceActivityId)
{

@ -1,6 +1,8 @@
package com.hw.qms.mapper;
import java.util.List;
import java.util.Map;
import com.hw.qms.domain.QmsCheckRuleDetail;
/**
@ -76,4 +78,13 @@ public interface QmsCheckRuleDetailMapper
* @return
*/
public int deleteQmsCheckRuleDetails(List<QmsCheckRuleDetail> checkRuleDetails);
/**
* id
*
* */
public Map<String, String> getBaseMaterialCategoriesByQmsCheckRuleId(Long checkRuleId);
public Map<String, String> getMesBaseBarcodeInfoByBatchCode(String batchCode);
}

@ -6,15 +6,15 @@ import com.hw.qms.domain.QmsCheckInstanceFile;
/**
* Mapper
*
*
* @author xins
* @date 2024-03-11
*/
public interface QmsQualityInstanceActivityMapper
public interface QmsQualityInstanceActivityMapper
{
/**
*
*
*
* @param instanceActivityId
* @return
*/
@ -22,15 +22,17 @@ public interface QmsQualityInstanceActivityMapper
/**
*
*
*
* @param qmsQualityInstanceActivity
* @return
*/
public List<QmsQualityInstanceActivity> selectQmsQualityInstanceActivityList(QmsQualityInstanceActivity qmsQualityInstanceActivity);
public List<QmsQualityInstanceActivity> selectQmsQualityInstanceActivitynoStatus(QmsQualityInstanceActivity qmsQualityInstanceActivity);
/**
*
*
*
* @param qmsQualityInstanceActivity
* @return
*/
@ -38,7 +40,7 @@ public interface QmsQualityInstanceActivityMapper
/**
*
*
*
* @param qmsQualityInstanceActivity
* @return
*/
@ -46,7 +48,7 @@ public interface QmsQualityInstanceActivityMapper
/**
*
*
*
* @param instanceActivityId
* @return
*/
@ -54,7 +56,7 @@ public interface QmsQualityInstanceActivityMapper
/**
*
*
*
* @param instanceActivityIds
* @return
*/
@ -62,24 +64,24 @@ public interface QmsQualityInstanceActivityMapper
/**
*
*
*
* @param instanceActivityIds
* @return
*/
public int deleteQmsCheckInstanceFileByTargetIds(Long[] instanceActivityIds);
/**
*
*
*
* @param qmsCheckInstanceFileList
* @return
*/
public int batchQmsCheckInstanceFile(List<QmsCheckInstanceFile> qmsCheckInstanceFileList);
/**
*
*
*
* @param instanceActivityId ID
* @return
*/

@ -0,0 +1,63 @@
package com.hw.qms.service;
import java.util.List;
import com.hw.qms.domain.QmsQualityInstanceActivity;
/**
* Service
*
* @author xins
* @date 2024-04-22
*/
public interface IQmsQualityInstanceActivityService
{
/**
*
*
* @param instanceActivityId
* @return
*/
public QmsQualityInstanceActivity selectQmsQualityInstanceActivityByInstanceActivityId(Long instanceActivityId);
/**
*
*
* @param qmsQualityInstanceActivity
* @return
*/
public List<QmsQualityInstanceActivity> selectQmsQualityInstanceActivityList(QmsQualityInstanceActivity qmsQualityInstanceActivity);
public List<QmsQualityInstanceActivity> selectQmsQualityInstanceActivitynoStatus(QmsQualityInstanceActivity qmsQualityInstanceActivity);
/**
*
*
* @param qmsQualityInstanceActivity
* @return
*/
public int insertQmsQualityInstanceActivity(QmsQualityInstanceActivity qmsQualityInstanceActivity);
/**
*
*
* @param qmsQualityInstanceActivity
* @return
*/
public int updateQmsQualityInstanceActivity(QmsQualityInstanceActivity qmsQualityInstanceActivity);
/**
*
*
* @param instanceActivityIds
* @return
*/
public int deleteQmsQualityInstanceActivityByInstanceActivityIds(Long[] instanceActivityIds);
/**
*
*
* @param instanceActivityId
* @return
*/
public int deleteQmsQualityInstanceActivityByInstanceActivityId(Long instanceActivityId);
}

@ -0,0 +1,170 @@
package com.hw.qms.service.impl;
import java.util.List;
import com.hw.common.core.utils.DateUtils;
import com.hw.common.security.utils.SecurityUtils;
import com.hw.qms.domain.QmsQualityInstance;
import com.hw.qms.mapper.QmsQualityInstanceMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import com.hw.common.core.utils.StringUtils;
import org.springframework.transaction.annotation.Transactional;
import com.hw.qms.domain.QmsCheckInstanceFile;
import com.hw.qms.mapper.QmsQualityInstanceActivityMapper;
import com.hw.qms.domain.QmsQualityInstanceActivity;
import com.hw.qms.service.IQmsQualityInstanceActivityService;
/**
* Service
*
* @author xins
* @date 2024-04-22
*/
@Service
public class QmsQualityInstanceActivityServiceImpl implements IQmsQualityInstanceActivityService
{
@Autowired
private QmsQualityInstanceActivityMapper qmsQualityInstanceActivityMapper;
@Autowired
private QmsQualityInstanceMapper qmsQualityInstanceMapper;
/**
*
*
* @param instanceActivityId
* @return
*/
@Override
public QmsQualityInstanceActivity selectQmsQualityInstanceActivityByInstanceActivityId(Long instanceActivityId)
{
return qmsQualityInstanceActivityMapper.selectQmsQualityInstanceActivityByInstanceActivityId(instanceActivityId);
}
/**
*
*
* @param qmsQualityInstanceActivity
* @return
*/
@Override
public List<QmsQualityInstanceActivity> selectQmsQualityInstanceActivityList(QmsQualityInstanceActivity qmsQualityInstanceActivity)
{
return qmsQualityInstanceActivityMapper.selectQmsQualityInstanceActivityList(qmsQualityInstanceActivity);
}
@Override
public List<QmsQualityInstanceActivity> selectQmsQualityInstanceActivitynoStatus(QmsQualityInstanceActivity qmsQualityInstanceActivity) {
return qmsQualityInstanceActivityMapper.selectQmsQualityInstanceActivitynoStatus(qmsQualityInstanceActivity);
}
/**
*
*
* @param qmsQualityInstanceActivity
* @return
*/
@Transactional
@Override
public int insertQmsQualityInstanceActivity(QmsQualityInstanceActivity qmsQualityInstanceActivity)
{
QmsQualityInstanceActivity qms = new QmsQualityInstanceActivity();
qms.setProcessHandleStatus("2");
qms.setQualityInstanceId(qmsQualityInstanceActivity.getQualityInstanceId());
//查询实例节点中 状态等于2的
List<QmsQualityInstanceActivity> qmsQualityInstanceActivities = qmsQualityInstanceActivityMapper.selectQmsQualityInstanceActivityList(qms);
QmsQualityInstanceActivity activity = qmsQualityInstanceActivities.get(0);
//赋值
activity.setCreateTime(DateUtils.getNowDate());
activity.setCreateBy(SecurityUtils.getUsername());
activity.setStartTime(DateUtils.getNowDate());
activity.setProcessHandleStatus("1");
activity.setHandleUserId(SecurityUtils.getUserId());
activity.setHandleBy(SecurityUtils.getUsername());
activity.setProcessHandleResolution(qmsQualityInstanceActivity.getProcessHandleResolution());
activity.setProcessHandleDesc(qmsQualityInstanceActivity.getProcessHandleDesc());
activity.setQmsCheckInstanceFileList(qmsQualityInstanceActivity.getQmsCheckInstanceFileList());
//文件
insertQmsCheckInstanceFile(activity);
qms.setProcessHandleStatus("1");
List<QmsQualityInstanceActivity> qmsQualityInstanceActivities1 = qmsQualityInstanceActivityMapper.selectQmsQualityInstanceActivityList(qms);
for (QmsQualityInstanceActivity q:qmsQualityInstanceActivities1){
q.setProcessHandleStatus("3");
q.setEndTime(DateUtils.getNowDate());
qmsQualityInstanceActivityMapper.updateQmsQualityInstanceActivity(q);
}
int rows = qmsQualityInstanceActivityMapper.updateQmsQualityInstanceActivity(activity);
return rows;
}
/**
*
*
* @param qmsQualityInstanceActivity
* @return
*/
@Transactional
@Override
public int updateQmsQualityInstanceActivity(QmsQualityInstanceActivity qmsQualityInstanceActivity)
{
qmsQualityInstanceActivityMapper.deleteQmsCheckInstanceFileByTargetId(qmsQualityInstanceActivity.getInstanceActivityId());
insertQmsCheckInstanceFile(qmsQualityInstanceActivity);
return qmsQualityInstanceActivityMapper.updateQmsQualityInstanceActivity(qmsQualityInstanceActivity);
}
/**
*
*
* @param instanceActivityIds
* @return
*/
@Transactional
@Override
public int deleteQmsQualityInstanceActivityByInstanceActivityIds(Long[] instanceActivityIds)
{
qmsQualityInstanceActivityMapper.deleteQmsCheckInstanceFileByTargetIds(instanceActivityIds);
return qmsQualityInstanceActivityMapper.deleteQmsQualityInstanceActivityByInstanceActivityIds(instanceActivityIds);
}
/**
*
*
* @param instanceActivityId
* @return
*/
@Transactional
@Override
public int deleteQmsQualityInstanceActivityByInstanceActivityId(Long instanceActivityId)
{
qmsQualityInstanceActivityMapper.deleteQmsCheckInstanceFileByTargetId(instanceActivityId);
return qmsQualityInstanceActivityMapper.deleteQmsQualityInstanceActivityByInstanceActivityId(instanceActivityId);
}
/**
*
*
* @param qmsQualityInstanceActivity
*/
public void insertQmsCheckInstanceFile(QmsQualityInstanceActivity qmsQualityInstanceActivity)
{
List<QmsCheckInstanceFile> qmsCheckInstanceFileList = qmsQualityInstanceActivity.getQmsCheckInstanceFileList();
Long instanceActivityId = qmsQualityInstanceActivity.getInstanceActivityId();
if (StringUtils.isNotNull(qmsCheckInstanceFileList))
{
List<QmsCheckInstanceFile> list = new ArrayList<QmsCheckInstanceFile>();
for (QmsCheckInstanceFile qmsCheckInstanceFile : qmsCheckInstanceFileList)
{
qmsCheckInstanceFile.setTargetId(instanceActivityId);
list.add(qmsCheckInstanceFile);
}
if (list.size() > 0)
{
qmsQualityInstanceActivityMapper.batchQmsCheckInstanceFile(list);
}
}
}
}

@ -3,22 +3,22 @@ package com.hw.qms.service.impl;
import java.util.Date;
import java.util.List;
import com.hw.common.core.constant.DmsConstants;
import com.hw.common.core.constant.QmsConstants;
import com.hw.common.core.constant.WfConstants;
import com.hw.common.core.utils.DateUtils;
import com.hw.common.security.utils.SecurityUtils;
import com.hw.qms.domain.QmsCheckInstanceFile;
import com.hw.qms.domain.*;
import com.hw.qms.domain.vo.QmsQualityInstanceActivityVo;
import com.hw.qms.mapper.QmsQualityInstanceActivityMapper;
import com.hw.qms.mapper.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Map;
import com.hw.common.core.utils.StringUtils;
import org.springframework.transaction.annotation.Transactional;
import com.hw.qms.domain.QmsQualityInstanceActivity;
import com.hw.qms.mapper.QmsQualityInstanceMapper;
import com.hw.qms.domain.QmsQualityInstance;
import com.hw.qms.service.IQmsQualityInstanceService;
/**
@ -35,6 +35,18 @@ public class QmsQualityInstanceServiceImpl implements IQmsQualityInstanceService
@Autowired
private QmsQualityInstanceActivityMapper qmsQualityInstanceActivityMapper;
@Autowired
private QmsCheckRuleMapper qmsCheckRuleMapper;
@Autowired
private QmsCheckRuleDetailMapper qmsCheckRuleDetailMapper;
@Autowired
private QmsCheckResultMapper qmsCheckResultMapper;
@Autowired
private QmsCheckInstanceFileMapper qmsCheckInstanceFileMapper;
/**
*
*
@ -67,8 +79,108 @@ public class QmsQualityInstanceServiceImpl implements IQmsQualityInstanceService
@Override
public int insertQmsQualityInstance(QmsQualityInstance qmsQualityInstance) {
qmsQualityInstance.setCreateTime(DateUtils.getNowDate());
qmsQualityInstance.setStartTime(DateUtils.getNowDate());
//第一步 根据校验规则id 获取校验规则信息
QmsCheckRule qmsCheckRule = qmsCheckRuleMapper.selectQmsCheckRuleByCheckRuleId(qmsQualityInstance.getCheckRuleId());
//第二步 根据校验规则获取规则明细的物料信息
QmsCheckRuleDetail qmsCheckRuleDetail = new QmsCheckRuleDetail();
qmsCheckRuleDetail.setCheckRuleId(qmsCheckRule.getCheckRuleId());
qmsCheckRuleDetail.setTargetType("1");
//第三步 根据物料信息查看他是半、成品还是原材料
Map<String, String> materialMap = qmsCheckRuleDetailMapper.getBaseMaterialCategoriesByQmsCheckRuleId(qmsQualityInstance.getCheckRuleId());
// 根据检验此批获取出生产计划、销售订单、采购订单编号
Map<String, String> barcodeMap = qmsCheckRuleDetailMapper.getMesBaseBarcodeInfoByBatchCode(qmsQualityInstance.getMaterialBatch());
//都有了之后创建质检结果,状态为未开始
QmsCheckResult qmsCheckResult = new QmsCheckResult();
qmsCheckResult.setCheckRuleId(qmsQualityInstance.getCheckRuleId());
qmsCheckResult.setMaterialType(materialMap.get("material_categories"));
Object material_id = materialMap.get("material_id");
String s = material_id.toString();
qmsCheckResult.setMaterialId(Long.valueOf(s));
qmsCheckResult.setMaterialBatch(qmsQualityInstance.getMaterialBatch());
qmsCheckResult.setCheckMode(qmsCheckRule.getCheckMode());
if (qmsCheckRule.getCheckMode()!="" && qmsCheckRule.getCheckMode().equals("2")){
qmsCheckResult.setCheckSample(qmsCheckRule.getCheckSample());}
if (barcodeMap.get("plan_code")!=null) {
qmsCheckResult.setPlanCode(barcodeMap.get("plan_code"));
}
if (barcodeMap.get("plan_detail_code")!=null){
qmsCheckResult.setPlanDetailCode(barcodeMap.get("plan_detail_code"));
}
if (barcodeMap.get("sale_order_id")!=null){
qmsCheckResult.setSaleOrderId(String.valueOf((Object)barcodeMap.get("sale_order_id")));
}
if (barcodeMap.get("sale_order_code")!=null){
qmsCheckResult.setSaleorderCode(barcodeMap.get("sale_order_code"));
}
if (barcodeMap.get("po_no")!=null){
qmsCheckResult.setPoNo(barcodeMap.get("po_no"));
}
if (barcodeMap.get("project_no")!=null){
qmsCheckResult.setProjectNo(barcodeMap.get("project_no"));
}
qmsCheckResult.setCheckStatus("0");
qmsCheckResult.setCheckRuleName(qmsCheckRule.getCheckRuleName());
qmsCheckResult.setCheckRuleType(qmsCheckRule.getCheckRuleType());
//创建质检结果
int checkResultId = qmsCheckResultMapper.insertQmsCheckResult(qmsCheckResult);
//创建工单实例对象
//为质检工单添加质检结果id
qmsQualityInstance.setCheckResultId(checkResultId*1l);
qmsQualityInstance.setWfInstanceStatus("0");
int rows = qmsQualityInstanceMapper.insertQmsQualityInstance(qmsQualityInstance);
insertQmsQualityInstanceActivity(qmsQualityInstance);
//创建工单实例节点
//根据wf中的步骤创建出所有的工单流程实例节点除了当前节点外其他节点状态都为待接取
List<QmsQualityInstanceActivity> qmsQualityInstanceActivities = new ArrayList<QmsQualityInstanceActivity>();
for (int i=0;i<qmsQualityInstance.getStepsNum();i++){
QmsQualityInstanceActivity qmsQualityInstanceActivity = new QmsQualityInstanceActivity();
if (i == 0){
qmsQualityInstanceActivity.setProcessHandleStatus("1");
qmsQualityInstanceActivity.setProcessActivityId(WfConstants.WF_QUALITY_INSTANCE_ACTIVITY_FIRST_ID);
qmsQualityInstanceActivity.setQualityInstanceId(qmsQualityInstance.getQualityInstanceId());
qmsQualityInstanceActivity.setProcessHandleResolution(qmsQualityInstance.getProcessHandleResolution());
qmsQualityInstanceActivity.setProcessHandleDesc(qmsQualityInstance.getProcessHandleDesc());
qmsQualityInstanceActivity.setProcessStepOrder(1l);
qmsQualityInstanceActivity.setStartTime(DateUtils.getNowDate());
qmsQualityInstanceActivity.setHandleUserId(SecurityUtils.getUserId());
qmsQualityInstanceActivity.setHandleBy(SecurityUtils.getUsername());
insertQmsCheckInstanceFile(qmsQualityInstanceActivity, qmsQualityInstance.getFileUrls());
qmsQualityInstanceActivities.add(qmsQualityInstanceActivity);
}
else {
//步骤固定则写死步骤不固定出第一个实例节点外其他实例节点的工单流程id通过比对wf表的顺序获取
qmsQualityInstanceActivity.setProcessHandleStatus("2");
qmsQualityInstanceActivity.setProcessActivityId(3011l+i);
qmsQualityInstanceActivity.setQualityInstanceId(qmsQualityInstance.getQualityInstanceId());
// qmsQualityInstanceActivity.setProcessHandleResolution(qmsQualityInstance.getProcessHandleResolution());
// qmsQualityInstanceActivity.setProcessHandleDesc(qmsQualityInstance.getProcessHandleDesc());
qmsQualityInstanceActivity.setProcessStepOrder(i+1l);
qmsQualityInstanceActivity.setProcessHandleResolution(" ");
qmsQualityInstanceActivity.setStartTime(DateUtils.getNowDate());
qmsQualityInstanceActivity.setHandleUserId(SecurityUtils.getUserId());
qmsQualityInstanceActivity.setHandleBy(SecurityUtils.getUsername());
insertQmsCheckInstanceFile(qmsQualityInstanceActivity, qmsQualityInstance.getFileUrls());
qmsQualityInstanceActivities.add(qmsQualityInstanceActivity);
}
}
for (QmsQualityInstanceActivity q:qmsQualityInstanceActivities){
qmsQualityInstanceActivityMapper.insertQmsQualityInstanceActivity(q);
}
//存储图片
return rows;
}
@ -240,4 +352,6 @@ public class QmsQualityInstanceServiceImpl implements IQmsQualityInstanceService
}
}
}

@ -101,5 +101,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</foreach>
</delete>
<select id="getBaseMaterialCategoriesByQmsCheckRuleId" parameterType="Long" resultType="java.util.HashMap">
select material_id,material_categories from mes_base_material_info where material_id = (
select target_id from qms_check_rule_detail where check_rule_id = #{checkRuleId} and target_type = 1
)
</select>
<select id="getMesBaseBarcodeInfoByBatchCode" parameterType="String" resultType="java.util.HashMap">
select barcode_id,plan_code,plan_detail_code,sale_order_id,saleorder_code,po_no,project_no from mes_base_barcode_info where batch_code = #{batchCode}
</select>
</mapper>

@ -3,7 +3,7 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hw.qms.mapper.QmsQualityInstanceActivityMapper">
<resultMap type="QmsQualityInstanceActivity" id="QmsQualityInstanceActivityResult">
<result property="instanceActivityId" column="instance_activity_id" />
<result property="qualityInstanceId" column="quality_instance_id" />
@ -39,7 +39,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectQmsQualityInstanceActivityList" parameterType="QmsQualityInstanceActivity" resultMap="QmsQualityInstanceActivityResult">
<include refid="selectQmsQualityInstanceActivityVo"/>
<where>
<where>
<if test="qualityInstanceId != null "> and quality_instance_id = #{qualityInstanceId}</if>
<if test="processActivityId != null "> and process_activity_id = #{processActivityId}</if>
<if test="processHandleResolution != null and processHandleResolution != ''"> and process_handle_resolution = #{processHandleResolution}</if>
@ -54,7 +54,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="transferUserId != null "> and transfer_user_id = #{transferUserId}</if>
</where>
</select>
<select id="selectQmsQualityInstanceActivityByInstanceActivityId" parameterType="Long" resultMap="QmsQualityInstanceActivityQmsCheckInstanceFileResult">
select a.instance_activity_id, a.quality_instance_id, a.process_activity_id, a.process_handle_resolution, a.process_handle_desc, a.process_handle_status, a.process_step_order, a.start_time, a.end_time, a.handle_user_id, a.handle_by, a.handle_time, a.create_by, a.create_time, a.transfer_user_id,
b.check_instance_file_id as sub_check_instance_file_id, b.target_type as sub_target_type, b.target_id as sub_target_id, b.fault_file as sub_fault_file
@ -62,7 +62,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
left join qms_check_instance_file b on b.target_id = a.instance_activity_id
where a.instance_activity_id = #{instanceActivityId}
</select>
<insert id="insertQmsQualityInstanceActivity" parameterType="QmsQualityInstanceActivity" useGeneratedKeys="true" keyProperty="instanceActivityId">
insert into qms_quality_instance_activity
<trim prefix="(" suffix=")" suffixOverrides=",">
@ -125,14 +125,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</delete>
<delete id="deleteQmsQualityInstanceActivityByInstanceActivityIds" parameterType="String">
delete from qms_quality_instance_activity where instance_activity_id in
delete from qms_quality_instance_activity where instance_activity_id in
<foreach item="instanceActivityId" collection="array" open="(" separator="," close=")">
#{instanceActivityId}
</foreach>
</delete>
<delete id="deleteQmsCheckInstanceFileByTargetIds" parameterType="String">
delete from qms_check_instance_file where target_id in
delete from qms_check_instance_file where target_id in
<foreach item="targetId" collection="array" open="(" separator="," close=")">
#{targetId}
</foreach>
@ -148,4 +148,23 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
( #{item.checkInstanceFileId}, #{item.targetType}, #{item.targetId}, #{item.faultFile})
</foreach>
</insert>
</mapper>
<select id="selectQmsQualityInstanceActivitynoStatus" parameterType="QmsQualityInstanceActivity" resultMap="QmsQualityInstanceActivityResult">
<include refid="selectQmsQualityInstanceActivityVo"/>
<where>
process_handle_status <![CDATA[ <> ]]> '2'
<if test="qualityInstanceId != null "> and quality_instance_id = #{qualityInstanceId}</if>
<if test="processActivityId != null "> and process_activity_id = #{processActivityId}</if>
<if test="processHandleResolution != null and processHandleResolution != ''"> and process_handle_resolution = #{processHandleResolution}</if>
<if test="processHandleDesc != null and processHandleDesc != ''"> and process_handle_desc = #{processHandleDesc}</if>
<if test="processHandleStatus != null and processHandleStatus != ''"> and process_handle_status = #{processHandleStatus}</if>
<if test="processStepOrder != null "> and process_step_order = #{processStepOrder}</if>
<if test="startTime != null "> and start_time = #{startTime}</if>
<if test="endTime != null "> and end_time = #{endTime}</if>
<if test="handleUserId != null "> and handle_user_id = #{handleUserId}</if>
<if test="handleBy != null and handleBy != ''"> and handle_by = #{handleBy}</if>
<if test="handleTime != null "> and handle_time = #{handleTime}</if>
<if test="transferUserId != null "> and transfer_user_id = #{transferUserId}</if>
</where>
</select>
</mapper>

@ -1,336 +1,336 @@
//package com.hw.wms.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.hw.common.core.annotation.Excel;
//import com.hw.common.core.web.domain.BaseEntity;
//
///**
// * 原材料入库记录明细对象 wms_raw_instock_detail
// *
// * @author xs
// * @date 2023-12-21
// */
//public class WmsRawInstockDetail extends BaseEntity
//{
// private static final long serialVersionUID = 1L;
//
// /** 原材料入库记录明细ID */
// private Long rawInstockDetailId;
//
// /** 原材料入库ID */
// @Excel(name = "原材料入库ID")
// private Long rawInstockId;
//
// /** 库位编码 */
// @Excel(name = "库位编码")
// private String locationCode;
//
// /** 存放物料条码 */
// @Excel(name = "存放物料条码")
// private String materialBarcode;
//
// /** 物料ID */
// @Excel(name = "物料ID")
// private Long materialId;
//
// /** 批次;入库扫描条码时,从打印条码记录表中获取 */
// @Excel(name = "批次;入库扫描条码时,从打印条码记录表中获取")
// private String instockBatch;
//
// /** 生产日期;入库扫描条码时,从打印条码记录表中获取 */
// @JsonFormat(pattern = "yyyy-MM-dd")
// @Excel(name = "生产日期;入库扫描条码时,从打印条码记录表中获取", width = 30, dateFormat = "yyyy-MM-dd")
// private Date materialProductionDate;
//
// /** 入库数量 */
// @Excel(name = "计划数量")
// private BigDecimal planAmount;
//
// /** 入库数量 */
// @Excel(name = "入库数量")
// private BigDecimal instockAmount;
//
// /** 执行状态(0待执行,1执行中,2执行完成) */
// @Excel(name = "执行状态(0待执行,1执行中,2执行完成)")
// private String executeStatus;
//
// /** 同步ERP状态(0:失败,1成功) */
// @Excel(name = "同步ERP状态(0:失败,1成功)")
// private String erpStatus;
//
// /** 入库人 */
// @Excel(name = "入库人")
// private String instockPerson;
//
// /** 入库时间 */
// @JsonFormat(pattern = "yyyy-MM-dd")
// @Excel(name = "入库时间", width = 30, dateFormat = "yyyy-MM-dd")
// private Date instockTime;
//
// /** 入库方式( 0PC入库 1手持入库 2AGV入库 */
// @Excel(name = "入库方式", readConverterExp = "0=PC入库,1=:手持入库,2=AGV入库")
// private String instockWay;
//
// /** 使用机台名称;入库扫描条码时,从打印条码记录表中获取 */
// @Excel(name = "使用机台名称;入库扫描条码时,从打印条码记录表中获取")
// private String machineName;
//
// /** 质检状态(0:待质检,1:合格,2:NG) */
// @Excel(name = "质检状态(0:待质检,1:合格,2:NG)")
// private String qualityStatus;
//
// /** 每托数量 */
// @Excel(name = "每托数量")
// private BigDecimal stackAmount;
//
// /** 创建时间 */
// @JsonFormat(pattern = "yyyy-MM-dd")
// @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
// private Date createDate;
//
// /** 最后更新时间 */
// @JsonFormat(pattern = "yyyy-MM-dd")
// @Excel(name = "最后更新时间", width = 30, dateFormat = "yyyy-MM-dd")
// private Date updateDate;
//
// /** 有效标记 */
// @Excel(name = "有效标记")
// private String activeFlag;
//
// //采购订单号
// private String poNo;
// /** 采购订单行项目 */
// @Excel(name = "采购订单行项目")
// private String poLine;
//
// public void setRawInstockDetailId(Long rawInstockDetailId)
// {
// this.rawInstockDetailId = rawInstockDetailId;
// }
//
// public Long getRawInstockDetailId()
// {
// return rawInstockDetailId;
// }
// public void setRawInstockId(Long rawInstockId)
// {
// this.rawInstockId = rawInstockId;
// }
//
// public Long getRawInstockId()
// {
// return rawInstockId;
// }
// public void setLocationCode(String locationCode)
// {
// this.locationCode = locationCode;
// }
//
// public String getLocationCode()
// {
// return locationCode;
// }
// public void setMaterialBarcode(String materialBarcode)
// {
// this.materialBarcode = materialBarcode;
// }
//
// public String getMaterialBarcode()
// {
// return materialBarcode;
// }
// public void setMaterialId(Long materialId)
// {
// this.materialId = materialId;
// }
//
// public Long getMaterialId()
// {
// return materialId;
// }
// public void setInstockBatch(String instockBatch)
// {
// this.instockBatch = instockBatch;
// }
//
// public String getInstockBatch()
// {
// return instockBatch;
// }
// public void setMaterialProductionDate(Date materialProductionDate)
// {
// this.materialProductionDate = materialProductionDate;
// }
//
// public Date getMaterialProductionDate()
// {
// return materialProductionDate;
// }
//
// public BigDecimal getPlanAmount() {
// return planAmount;
// }
//
// public void setPlanAmount(BigDecimal planAmount) {
// this.planAmount = planAmount;
// }
//
// public void setInstockAmount(BigDecimal instockAmount)
// {
// this.instockAmount = instockAmount;
// }
//
// public BigDecimal getInstockAmount()
// {
// return instockAmount;
// }
// public void setExecuteStatus(String executeStatus)
// {
// this.executeStatus = executeStatus;
// }
//
// public String getExecuteStatus()
// {
// return executeStatus;
// }
// public void setErpStatus(String erpStatus)
// {
// this.erpStatus = erpStatus;
// }
//
// public String getErpStatus()
// {
// return erpStatus;
// }
// public void setInstockPerson(String instockPerson)
// {
// this.instockPerson = instockPerson;
// }
//
// public String getInstockPerson()
// {
// return instockPerson;
// }
// public void setInstockTime(Date instockTime)
// {
// this.instockTime = instockTime;
// }
//
// public Date getInstockTime()
// {
// return instockTime;
// }
// public void setInstockWay(String instockWay)
// {
// this.instockWay = instockWay;
// }
//
// public String getInstockWay()
// {
// return instockWay;
// }
// public void setMachineName(String machineName)
// {
// this.machineName = machineName;
// }
//
// public String getMachineName()
// {
// return machineName;
// }
// public void setQualityStatus(String qualityStatus)
// {
// this.qualityStatus = qualityStatus;
// }
//
// public String getQualityStatus()
// {
// return qualityStatus;
// }
// public void setStackAmount(BigDecimal stackAmount)
// {
// this.stackAmount = stackAmount;
// }
//
// public BigDecimal getStackAmount()
// {
// return stackAmount;
// }
// public void setCreateDate(Date createDate)
// {
// this.createDate = createDate;
// }
//
// public Date getCreateDate()
// {
// return createDate;
// }
// public void setUpdateDate(Date updateDate)
// {
// this.updateDate = updateDate;
// }
//
// public Date getUpdateDate()
// {
// return updateDate;
// }
// public void setActiveFlag(String activeFlag)
// {
// this.activeFlag = activeFlag;
// }
//
// public String getActiveFlag()
// {
// return activeFlag;
// }
//
// public String getPoNo() {
// return poNo;
// }
//
// public void setPoNo(String poNo) {
// this.poNo = poNo;
// }
//
// public void setPoLine(String poLine)
// {
// this.poLine = poLine;
// }
//
// public String getPoLine()
// {
// return poLine;
// }
//
// @Override
// public String toString() {
// return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
// .append("rawInstockDetailId", getRawInstockDetailId())
// .append("rawInstockId", getRawInstockId())
// .append("locationCode", getLocationCode())
// .append("materialBarcode", getMaterialBarcode())
// .append("materialId", getMaterialId())
// .append("instockBatch", getInstockBatch())
// .append("materialProductionDate", getMaterialProductionDate())
// .append("instockAmount", getInstockAmount())
// .append("executeStatus", getExecuteStatus())
// .append("erpStatus", getErpStatus())
// .append("instockPerson", getInstockPerson())
// .append("instockTime", getInstockTime())
// .append("instockWay", getInstockWay())
// .append("machineName", getMachineName())
// .append("qualityStatus", getQualityStatus())
// .append("stackAmount", getStackAmount())
// .append("createBy", getCreateBy())
// .append("createDate", getCreateDate())
// .append("updateBy", getUpdateBy())
// .append("updateDate", getUpdateDate())
// .append("activeFlag", getActiveFlag())
// .append("poLine", getPoLine())
// .toString();
// }
//}
package com.hw.wms.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.hw.common.core.annotation.Excel;
import com.hw.common.core.web.domain.BaseEntity;
/**
* wms_raw_instock_detail
*
* @author xs
* @date 2023-12-21
*/
public class WmsRawInstockDetail extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 原材料入库记录明细ID */
private Long rawInstockDetailId;
/** 原材料入库ID */
@Excel(name = "原材料入库ID")
private Long rawInstockId;
/** 库位编码 */
@Excel(name = "库位编码")
private String locationCode;
/** 存放物料条码 */
@Excel(name = "存放物料条码")
private String materialBarcode;
/** 物料ID */
@Excel(name = "物料ID")
private Long materialId;
/** 批次;入库扫描条码时,从打印条码记录表中获取 */
@Excel(name = "批次;入库扫描条码时,从打印条码记录表中获取")
private String instockBatch;
/** 生产日期;入库扫描条码时,从打印条码记录表中获取 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "生产日期;入库扫描条码时,从打印条码记录表中获取", width = 30, dateFormat = "yyyy-MM-dd")
private Date materialProductionDate;
/** 入库数量 */
@Excel(name = "计划数量")
private BigDecimal planAmount;
/** 入库数量 */
@Excel(name = "入库数量")
private BigDecimal instockAmount;
/** 执行状态(0待执行,1执行中,2执行完成) */
@Excel(name = "执行状态(0待执行,1执行中,2执行完成)")
private String executeStatus;
/** 同步ERP状态(0:失败,1成功) */
@Excel(name = "同步ERP状态(0:失败,1成功)")
private String erpStatus;
/** 入库人 */
@Excel(name = "入库人")
private String instockPerson;
/** 入库时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "入库时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date instockTime;
/** 入库方式( 0PC入库 1手持入库 2AGV入库 */
@Excel(name = "入库方式", readConverterExp = "0=PC入库,1=:手持入库,2=AGV入库")
private String instockWay;
/** 使用机台名称;入库扫描条码时,从打印条码记录表中获取 */
@Excel(name = "使用机台名称;入库扫描条码时,从打印条码记录表中获取")
private String machineName;
/** 质检状态(0:待质检,1:合格,2:NG) */
@Excel(name = "质检状态(0:待质检,1:合格,2:NG)")
private String qualityStatus;
/** 每托数量 */
@Excel(name = "每托数量")
private BigDecimal stackAmount;
/** 创建时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date createDate;
/** 最后更新时间 */
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "最后更新时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date updateDate;
/** 有效标记 */
@Excel(name = "有效标记")
private String activeFlag;
//采购订单号
private String poNo;
/** 采购订单行项目 */
@Excel(name = "采购订单行项目")
private String poLine;
public void setRawInstockDetailId(Long rawInstockDetailId)
{
this.rawInstockDetailId = rawInstockDetailId;
}
public Long getRawInstockDetailId()
{
return rawInstockDetailId;
}
public void setRawInstockId(Long rawInstockId)
{
this.rawInstockId = rawInstockId;
}
public Long getRawInstockId()
{
return rawInstockId;
}
public void setLocationCode(String locationCode)
{
this.locationCode = locationCode;
}
public String getLocationCode()
{
return locationCode;
}
public void setMaterialBarcode(String materialBarcode)
{
this.materialBarcode = materialBarcode;
}
public String getMaterialBarcode()
{
return materialBarcode;
}
public void setMaterialId(Long materialId)
{
this.materialId = materialId;
}
public Long getMaterialId()
{
return materialId;
}
public void setInstockBatch(String instockBatch)
{
this.instockBatch = instockBatch;
}
public String getInstockBatch()
{
return instockBatch;
}
public void setMaterialProductionDate(Date materialProductionDate)
{
this.materialProductionDate = materialProductionDate;
}
public Date getMaterialProductionDate()
{
return materialProductionDate;
}
public BigDecimal getPlanAmount() {
return planAmount;
}
public void setPlanAmount(BigDecimal planAmount) {
this.planAmount = planAmount;
}
public void setInstockAmount(BigDecimal instockAmount)
{
this.instockAmount = instockAmount;
}
public BigDecimal getInstockAmount()
{
return instockAmount;
}
public void setExecuteStatus(String executeStatus)
{
this.executeStatus = executeStatus;
}
public String getExecuteStatus()
{
return executeStatus;
}
public void setErpStatus(String erpStatus)
{
this.erpStatus = erpStatus;
}
public String getErpStatus()
{
return erpStatus;
}
public void setInstockPerson(String instockPerson)
{
this.instockPerson = instockPerson;
}
public String getInstockPerson()
{
return instockPerson;
}
public void setInstockTime(Date instockTime)
{
this.instockTime = instockTime;
}
public Date getInstockTime()
{
return instockTime;
}
public void setInstockWay(String instockWay)
{
this.instockWay = instockWay;
}
public String getInstockWay()
{
return instockWay;
}
public void setMachineName(String machineName)
{
this.machineName = machineName;
}
public String getMachineName()
{
return machineName;
}
public void setQualityStatus(String qualityStatus)
{
this.qualityStatus = qualityStatus;
}
public String getQualityStatus()
{
return qualityStatus;
}
public void setStackAmount(BigDecimal stackAmount)
{
this.stackAmount = stackAmount;
}
public BigDecimal getStackAmount()
{
return stackAmount;
}
public void setCreateDate(Date createDate)
{
this.createDate = createDate;
}
public Date getCreateDate()
{
return createDate;
}
public void setUpdateDate(Date updateDate)
{
this.updateDate = updateDate;
}
public Date getUpdateDate()
{
return updateDate;
}
public void setActiveFlag(String activeFlag)
{
this.activeFlag = activeFlag;
}
public String getActiveFlag()
{
return activeFlag;
}
public String getPoNo() {
return poNo;
}
public void setPoNo(String poNo) {
this.poNo = poNo;
}
public void setPoLine(String poLine)
{
this.poLine = poLine;
}
public String getPoLine()
{
return poLine;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("rawInstockDetailId", getRawInstockDetailId())
.append("rawInstockId", getRawInstockId())
.append("locationCode", getLocationCode())
.append("materialBarcode", getMaterialBarcode())
.append("materialId", getMaterialId())
.append("instockBatch", getInstockBatch())
.append("materialProductionDate", getMaterialProductionDate())
.append("instockAmount", getInstockAmount())
.append("executeStatus", getExecuteStatus())
.append("erpStatus", getErpStatus())
.append("instockPerson", getInstockPerson())
.append("instockTime", getInstockTime())
.append("instockWay", getInstockWay())
.append("machineName", getMachineName())
.append("qualityStatus", getQualityStatus())
.append("stackAmount", getStackAmount())
.append("createBy", getCreateBy())
.append("createDate", getCreateDate())
.append("updateBy", getUpdateBy())
.append("updateDate", getUpdateDate())
.append("activeFlag", getActiveFlag())
.append("poLine", getPoLine())
.toString();
}
}

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询质检结果列表
export function listCheckresult(query) {
return request({
url: '/qms/checkresult/list',
method: 'get',
params: query
})
}
// 查询质检结果详细
export function getCheckresult(checkResultId) {
return request({
url: '/qms/checkresult/' + checkResultId,
method: 'get'
})
}
// 新增质检结果
export function addCheckresult(data) {
return request({
url: '/qms/checkresult',
method: 'post',
data: data
})
}
// 修改质检结果
export function updateCheckresult(data) {
return request({
url: '/qms/checkresult',
method: 'put',
data: data
})
}
// 删除质检结果
export function delCheckresult(checkResultId) {
return request({
url: '/qms/checkresult/' + checkResultId,
method: 'delete'
})
}

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询质检结果详情列表
export function listCheckresultdetail(query) {
return request({
url: '/qms/checkresultdetail/list',
method: 'get',
params: query
})
}
// 查询质检结果详情详细
export function getCheckresultdetail(checkResultDetailId) {
return request({
url: '/qms/checkresultdetail/' + checkResultDetailId,
method: 'get'
})
}
// 新增质检结果详情
export function addCheckresultdetail(data) {
return request({
url: '/qms/checkresultdetail',
method: 'post',
data: data
})
}
// 修改质检结果详情
export function updateCheckresultdetail(data) {
return request({
url: '/qms/checkresultdetail',
method: 'put',
data: data
})
}
// 删除质检结果详情
export function delCheckresultdetail(checkResultDetailId) {
return request({
url: '/qms/checkresultdetail/' + checkResultDetailId,
method: 'delete'
})
}

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询质检工单列表
export function listQualityinstance(query) {
return request({
url: '/qms/qualityinstance/list',
method: 'get',
params: query
})
}
// 查询质检工单详细
export function getQualityinstance(qualityInstanceId) {
return request({
url: '/qms/qualityinstance/' + qualityInstanceId,
method: 'get'
})
}
// 新增质检工单
export function addQualityinstance(data) {
return request({
url: '/qms/qualityinstance',
method: 'post',
data: data
})
}
// 修改质检工单
export function updateQualityinstance(data) {
return request({
url: '/qms/qualityinstance',
method: 'put',
data: data
})
}
// 删除质检工单
export function delQualityinstance(qualityInstanceId) {
return request({
url: '/qms/qualityinstance/' + qualityInstanceId,
method: 'delete'
})
}

@ -0,0 +1,52 @@
import request from '@/utils/request'
// 查询质检工单实例节点列表
export function listQualityinstanceactivity(query) {
return request({
url: '/qms/qualityinstanceactivity/list',
method: 'get',
params: query
})
}
// 查询质检工单实例节点列表
export function listQualityinstanceactivitynoStatus(query) {
return request({
url: '/qms/qualityinstanceactivity/list/noStatus',
method: 'get',
params: query
})
}
// 查询质检工单实例节点详细
export function getQualityinstanceactivity(instanceActivityId) {
return request({
url: '/qms/qualityinstanceactivity/' + instanceActivityId,
method: 'get'
})
}
// 新增质检工单实例节点
export function addQualityinstanceactivity(data) {
return request({
url: '/qms/qualityinstanceactivity',
method: 'post',
data: data
})
}
// 修改质检工单实例节点
export function updateQualityinstanceactivity(data) {
return request({
url: '/qms/qualityinstanceactivity',
method: 'put',
data: data
})
}
// 删除质检工单实例节点
export function delQualityinstanceactivity(instanceActivityId) {
return request({
url: '/qms/qualityinstanceactivity/' + instanceActivityId,
method: 'delete'
})
}

@ -529,6 +529,21 @@ export const dynamicRoutes = [
},
],
},
// 质检工单实例
{
path: "/qms/base/qualityinstanceactivity",
component: Layout,
hidden: true,
permissions: ["tool:gen:edit"],
children: [
{
path: "index/:qualityInstanceId(\\d+)",
component: () => import("@/views/qms/base/qualityinstanceactivity/index"),
name: "checkQualityInstanceActivity",
meta: { title: "质检结果详细", activeMenu: "/qms/base/qualityinstanceactivity" },
},
],
},
]

@ -36,7 +36,7 @@
:row-class-name="rowMesProductPlanIndex" @selection-change="handleMesProductPlanSelectionChange">
<el-table-column align="center" type="selection" width="50"/>
<el-table-column align="center" label="序号" prop="index" width="50" v-if="false"/>
<el-table-column align="center" label="派工单号" prop="dispatchCode" width="190">
<el-table-column align="center" label="派工单号" prop="dispatchCode" width="290">
<template slot-scope="scope">
<el-input v-model="scope.row.dispatchCode" :disabled="true"/>
</template>

@ -0,0 +1,445 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small"
:inline="true" v-show="showSearch" label-width="96px">
<el-form-item label="物料类型" prop="materialType">
<el-select
v-model="queryParams.materialType"
placeholder="物料类型"
clearable
style="width: 240px"
>
<el-option
v-for="dict in dict.type.qms_material_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="检验方式" prop="checkMode">
<el-select
v-model="queryParams.checkMode"
placeholder="检验方式"
clearable
style="width: 240px"
>
<el-option
v-for="dict in dict.type.qms_check_mode"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="检验状态" prop="checkStatus">
<el-select
v-model="queryParams.checkStatus"
placeholder="检验方式"
clearable
style="width: 240px"
>
<el-option
v-for="dict in dict.type.qms_check_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="检验规则" prop="checkRuleName">
<el-input
v-model="queryParams.checkRuleName"
placeholder="请输入检验规则"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="生产计划编号" prop="planCode">
<el-input
v-model="queryParams.planCode"
placeholder="请输入生产计划编号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="销售订单编号" prop="saleorderCode">
<el-input
v-model="queryParams.saleorderCode"
placeholder="请输入销售订单编号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="采购订单" prop="poNo">
<el-input
v-model="queryParams.poNo"
placeholder="请输入采购订单"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="项目编号" prop="projectNo">
<el-input
v-model="queryParams.projectNo"
placeholder="请输入项目编号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
<el-table v-loading="loading" :data="checkresultList" @selection-change="handleSelectionChange">
<el-table-column label="规则名称" align="center" prop="checkRuleName" />
<el-table-column label="物料类型" align="center" prop="materialType">
<template slot-scope="scope">
<dict-tag :options="dict.type.qms_material_type" :value="scope.row.materialType"/>
</template>
</el-table-column>
<el-table-column label="物料编码" align="center" prop="materialId" >
<template slot-scope="scope">
<span
v-for="(item, index) in materialinfoList"
:key="index"
:value="item.materialinfoList"
v-if="scope.row.materialId == item.materialId"
>
{{ item.materialCode }}
</span>
</template>
</el-table-column>
<el-table-column label="物料名称" align="center" prop="materialId" >
<template slot-scope="scope">
<span
v-for="(item, index) in materialinfoList"
:key="index"
:value="item.materialinfoList"
v-if="scope.row.materialId == item.materialId"
>
{{ item.materialName }}
</span>
</template>
</el-table-column>
<el-table-column label="检验批次" align="center" prop="materialBatch" />
<el-table-column label="检验方式" align="center" prop="checkMode">
<template slot-scope="scope">
<dict-tag :options="dict.type.qms_check_mode" :value="scope.row.checkMode"/>
</template>
</el-table-column>
<el-table-column label="抽检比例" align="center" prop="checkSample" >
<template slot-scope="scope">
<span v-show="scope.row.checkMode!=1&& scope.row.checkSample!=0&&scope.row.checkSample!=null">{{scope.row.checkSample}}%</span>
</template>
</el-table-column>
<el-table-column label="生产计划编号" align="center" prop="planCode" />
<!-- <el-table-column label="生产计划明细编号" align="center" prop="planDetailCode" />-->
<el-table-column label="销售订单编号" align="center" prop="saleorderCode" />
<el-table-column label="采购订单" align="center" prop="poNo" />
<!-- <el-table-column label="采购订单行号" align="center" prop="poLine" />-->
<!-- <el-table-column label="项目编号" align="center" prop="projectNo" />-->
<el-table-column label="检验状态" align="center" prop="checkStatus">
<template slot-scope="scope">
<dict-tag :options="dict.type.qms_check_status" :value="scope.row.checkStatus"/>
</template>
</el-table-column>
<!-- <el-table-column label="备注" align="center" prop="remark" />-->
<!-- <el-table-column label="预留字段1" align="center" prop="attr1" />-->
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="getJump(scope.row)"
v-hasPermi="['qms:checkresult:edit']"
>结果详细</el-button>
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-edit"-->
<!-- @click="handleUpdate(scope.row)"-->
<!-- v-hasPermi="['qms:checkresult:edit']"-->
<!-- >修改</el-button>-->
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-delete"-->
<!-- @click="handleDelete(scope.row)"-->
<!-- v-hasPermi="['qms:checkresult:remove']"-->
<!-- >删除</el-button>-->
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改质检结果对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="检验物料ID关联物料表的ID字段" prop="materialId">
<el-input v-model="form.materialId" placeholder="请输入检验物料ID关联物料表的ID字段" />
</el-form-item>
<el-form-item label="检验批次关联条码信息的batch_code" prop="materialBatch">
<el-input v-model="form.materialBatch" placeholder="请输入检验批次关联条码信息的batch_code" />
</el-form-item>
<el-form-item label="检验方式(1,全检2,抽检)" prop="checkMode">
<el-input v-model="form.checkMode" placeholder="请输入检验方式(1,全检2,抽检)" />
</el-form-item>
<el-form-item label="抽检比例" prop="checkSample">
<el-input v-model="form.checkSample" placeholder="请输入抽检比例" />
</el-form-item>
<el-form-item label="生产计划编号" prop="planCode">
<el-input v-model="form.planCode" placeholder="请输入生产计划编号" />
</el-form-item>
<el-form-item label="生产计划明细编号" prop="planDetailCode">
<el-input v-model="form.planDetailCode" placeholder="请输入生产计划明细编号" />
</el-form-item>
<el-form-item label="销售订单编号" prop="saleorderCode">
<el-input v-model="form.saleorderCode" placeholder="请输入销售订单编号" />
</el-form-item>
<el-form-item label="采购订单" prop="poNo">
<el-input v-model="form.poNo" placeholder="请输入采购订单" />
</el-form-item>
<el-form-item label="采购订单行号" prop="poLine">
<el-input v-model="form.poLine" placeholder="请输入采购订单行号" />
</el-form-item>
<el-form-item label="项目编号" prop="projectNo">
<el-input v-model="form.projectNo" placeholder="请输入项目编号" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
</el-form-item>
<el-form-item label="预留字段1" prop="attr1">
<el-input v-model="form.attr1" placeholder="请输入预留字段1" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listCheckresult, getCheckresult, delCheckresult, addCheckresult, updateCheckresult } from "@/api/qms/checkresult";
import { listMaterialinfo }from "@/api/mes/materialinfo";
import { listBarcode } from "@/api/mes/barcode";
import { listCheckrule } from '@/api/qms/checkrule'
export default {
name: "Checkresult",
dicts: ['qms_material_type','qms_check_mode','qms_check_status'],
data() {
return {
//
checkruleList:[],
//
barcodeList:[],
//
materialinfoList:[],
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
checkresultList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
materialType: null,
materialId: null,
materialBatch: null,
checkMode: null,
checkSample: null,
checkRuleName:null,
planCode: null,
planDetailCode: null,
saleorderCode: null,
poNo: null,
poLine: null,
projectNo: null,
checkStatus: null,
attr1: null
},
//
form: {},
//
rules: {
materialBatch: [
{ required: true, message: "检验批次关联条码信息的batch_code不能为空", trigger: "blur" }
],
checkStatus: [
{ required: true, message: "检验状态(0待检验,1检验中,2质检通过,3质检不通过)不能为空", trigger: "change" }
],
}
};
},
created() {
this.getList();
this.getMaterialInfo();
this.getCheckRule();
},
methods: {
getJump(row){
this.$router.push('/qms/base/checkresultdetail/index/'+row.checkResultId)
},
/** 查询条码信息集合 */
getBarCode(){
this.loading = true;
listBarcode(this.queryParams).then(response => {
this.barcodeList = response.rows;
this.loading = false;
});
},
/** 查询物料信息集合 */
getMaterialInfo(){
this.loading = true;
listMaterialinfo(this.queryParams).then(response => {
this.materialinfoList = response.rows;
this.loading = false;
});
},
/** 查询质检结果列表 */
getList() {
this.loading = true;
listCheckresult(this.queryParams).then(response => {
// console.log(response)
this.checkresultList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
checkResultId: null,
materialType: null,
materialId: null,
materialBatch: null,
checkMode: null,
checkSample: null,
planCode: null,
planDetailCode: null,
saleorderCode: null,
poNo: null,
poLine: null,
projectNo: null,
checkStatus: null,
remark: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
attr1: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.checkResultId)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加质检结果";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const checkResultId = row.checkResultId || this.ids
getCheckresult(checkResultId).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改质检结果";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.checkResultId != null) {
updateCheckresult(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addCheckresult(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const checkResultIds = row.checkResultId || this.ids;
this.$modal.confirm('是否确认删除质检结果编号为"' + checkResultIds + '"的数据项?').then(function() {
return delCheckresult(checkResultIds);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('qms/checkresult/export', {
...this.queryParams
}, `checkresult_${new Date().getTime()}.xlsx`)
}
}
};
</script>

@ -0,0 +1,451 @@
<template>
<div class="app-container">
<h4 class="form-header h4">质检结果信息</h4>
<el-form label-width="120px">
<el-row>
<el-col :span="8" :offset="2">
<el-form-item label="检验规则ID" >
<el-input v-model="this.checkRuleIdUp" disabled />
</el-form-item>
</el-col>
<el-col :span="8" :offset="2">
<el-form-item label="检验名称" >
<el-input v-model="this.checkRuleNameUp" disabled />
</el-form-item>
</el-col>
<el-col :span="8" :offset="2">
<el-form-item label="检验方式" >
<el-input v-model="this.checkModeUp" disabled />
</el-form-item>
</el-col>
<el-col :span="8" :offset="2">
<el-form-item label="抽检比例" v-if=isIf>
<el-input v-model="this.checkSampleUp+'%'" disabled />
</el-form-item>
</el-col>
<el-col :span="8" :offset="2">
<el-form-item label="检验状态" >
<el-input v-model="this.checkStatusUp" disabled />
</el-form-item>
</el-col>
<el-col :span="8" :offset="2">
<el-form-item label="规则检验类型" >
<el-input v-model="this.checkRuleTypeUp" disabled />
</el-form-item>
</el-col>
<el-col :span="8" :offset="2">
<el-form-item label="物料名称" >
<el-input v-model="this.materialIdUpId" disabled />
</el-form-item>
</el-col>
</el-row>
</el-form>
<h4 class="form-header h4">质检结果详情</h4>
<el-table v-loading="loading" :data="checkresultdetailList" @selection-change="handleSelectionChange">
<el-table-column type="expand">
<template slot-scope="props">
<el-form label-position="left" inline class="demo-table-expand">
<el-table :data="props.row.qmsCheckResultDetailProjectList">
<el-table-column width="55" align="center" />
<el-table-column label="检验项目名称" prop="checkProjectId" align="center" >
<template slot-scope="scope">
<span
v-for="(item, index) in checkprojectList"
:key="index"
:value="item.checkprojectList"
v-if="scope.row.checkProjectId == item.checkProjectId"
>
{{ item.checkProjectName }}
</span>
</template>
</el-table-column>
<el-table-column label="检验结果" prop="checkProjectStatus" align="center" >
<template slot-scope="scope">
<dict-tag :options="dict.type.qms_check_result_project_status" :value="scope.row.checkProjectStatus"/>
</template>
</el-table-column>
<el-table-column label="检验值" prop="checkProjectResult" align="center" />
<el-table-column label="标准值" prop="standardValue" align="center" />
<el-table-column label="检验项目属性" prop="checkProjectProperty" align="center">
<template slot-scope="scope">
<dict-tag :options="dict.type.qms_check_project_property" :value="scope.row.checkProjectProperty"/>
</template>
</el-table-column>
<el-table-column label="上差值" prop="upperDiff" align="center"/>
<el-table-column label="下差值" prop="downDiff" align="center"/>
</el-table>
</el-form>
</template>
</el-table-column>
<el-table-column label="物料条码" align="center" prop="materialBarcode" />
<el-table-column label="物料条码" align="center" prop="checkStatus" >
<template slot-scope="scope">
<dict-tag :options="dict.type.qms_check_status" :value="scope.row.checkStatus"/>
</template>
</el-table-column>
<!-- <el-table-column label="物料名称" align="center" prop="materialId" >-->
<!-- <template slot-scope="scope">-->
<!-- <span-->
<!-- v-for="(item, index) in materialinfoList"-->
<!-- :key="index"-->
<!-- :value="item.materialinfoList"-->
<!-- v-if="scope.row.materialId == item.materialId"-->
<!-- >-->
<!-- {{ item.materialName }}-->
<!-- </span>-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- <el-table-column label="检验规则ID(冗余,与质检结果中值相同),关联检验规则主键" align="center" prop="checkRuleId" />-->
<!-- <el-table-column label="检验规则类型" align="center" prop="checkRuleType">-->
<!-- <template slot-scope="scope">-->
<!-- <dict-tag :options="dict.type.qms_check_rule_type" :value="scope.row.checkRuleType"/>-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- <el-table-column label="检验状态(0待检验,1检验中,2质检通过,3质检不通过)" align="center" prop="checkStatus" />-->
<!-- <el-table-column label="备注" align="center" prop="remark" />-->
<!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">-->
<!-- <template slot-scope="scope">-->
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-edit"-->
<!-- @click="handleUpdate(scope.row)"-->
<!-- v-hasPermi="['qms:checkresultdetail:edit']"-->
<!-- >修改</el-button>-->
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-delete"-->
<!-- @click="handleDelete(scope.row)"-->
<!-- v-hasPermi="['qms:checkresultdetail:remove']"-->
<!-- >删除</el-button>-->
<!-- </template>-->
<!-- </el-table-column>-->
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改质检结果详情对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="质检结果ID关联质检结果主键" prop="checkResultId">
<el-input v-model="form.checkResultId" placeholder="请输入质检结果ID关联质检结果主键" />
</el-form-item>
<el-form-item label="物料条码" prop="materialBarcode">
<el-input v-model="form.materialBarcode" placeholder="请输入物料条码" />
</el-form-item>
<el-form-item label="物料ID关联物料主键" prop="materialId">
<el-input v-model="form.materialId" placeholder="请输入物料ID关联物料主键" />
</el-form-item>
<el-form-item label="检验规则ID(冗余,与质检结果中值相同),关联检验规则主键" prop="checkRuleId">
<el-input v-model="form.checkRuleId" placeholder="请输入检验规则ID(冗余,与质检结果中值相同),关联检验规则主键" />
</el-form-item>
<el-form-item label="冗余,检验规则名称" prop="checkRuleName">
<el-input v-model="form.checkRuleName" placeholder="请输入冗余,检验规则名称" />
</el-form-item>
<el-form-item label="冗余,检验方式(1,全检2,抽检)" prop="checkMode">
<el-input v-model="form.checkMode" placeholder="请输入冗余,检验方式(1,全检2,抽检)" />
</el-form-item>
<el-form-item label="冗余,抽检比例" prop="checkSample">
<el-input v-model="form.checkSample" placeholder="请输入冗余,抽检比例" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listCheckresultdetail, getCheckresultdetail, delCheckresultdetail, addCheckresultdetail, updateCheckresultdetail } from "@/api/qms/checkresultdetail";
import { listMaterialinfo } from '@/api/mes/materialinfo'
import { listCheckresult } from '@/api/qms/checkresult'
import { listCheckproject } from '@/api/qms/checkproject'
export default {
name: "Checkresultdetail",
dicts:['qms_check_rule_type','qms_check_mode','qms_check_status','qms_check_result_project_status','qms_check_project_property'],
data() {
return {
isIf:true,
materialIdUpId:"",
checkRuleTypeUp:"",
checkStatusUp:"",
checkSampleUp:"",
checkModeUp:"",
checkRuleNameUp:"",
checkRuleIdUp:"",
//
checkprojectList:[],
//
checkresultList:[],
//
materialinfoList:[],
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
checkresultdetailList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
checkResultId: null,
materialBarcode: null,
materialId: null,
checkRuleId: null,
checkRuleType: null,
checkRuleName: null,
checkMode: null,
checkSample: null,
checkStatus: null,
},
queryParamsFather:{
checkResultId: null,
},
queryParamsMaterials:{
materialId: null,
},
//
form: {},
//
rules: {
checkResultId: [
{ required: true, message: "质检结果ID关联质检结果主键不能为空", trigger: "blur" }
],
materialBarcode: [
{ required: true, message: "物料条码不能为空", trigger: "blur" }
],
materialId: [
{ required: true, message: "物料ID关联物料主键不能为空", trigger: "blur" }
],
checkRuleId: [
{ required: true, message: "检验规则ID(冗余,与质检结果中值相同),关联检验规则主键不能为空", trigger: "blur" }
],
checkRuleType: [
{ required: true, message: "冗余,检验规则类型(1来料检验,2,半成品检验3成品检验,4工序检验)不能为空", trigger: "change" }
],
checkRuleName: [
{ required: true, message: "冗余,检验规则名称不能为空", trigger: "blur" }
],
checkMode: [
{ required: true, message: "冗余,检验方式(1,全检2,抽检)不能为空", trigger: "blur" }
],
checkStatus: [
{ required: true, message: "检验状态(0待检验,1检验中,2质检通过,3质检不通过)不能为空", trigger: "change" }
],
}
};
},
created() {
const checkResultIdFather =this.$route.params && this.$route.params.checkResultId;
this.queryParams.checkResultId = checkResultIdFather;
this.queryParamsFather.checkResultId = checkResultIdFather;
this.getCheckRusult();
this.getList();
this.getCheckProject();
},
methods: {
/** 查询检验项目列表 */
getCheckProject() {
this.loading = true;
listCheckproject(this.queryParams).then(response => {
this.checkprojectList = response.rows;
this.loading = false;
});
},
/** 查询质检结果列表 */
getCheckRusult() {
this.loading = true;
listCheckresult(this.queryParamsFather).then(response => {
// console.log(response)
this.checkresultList = response.rows;
this.checkRuleIdUp = this.checkresultList[0].checkRuleId;
this.checkRuleNameUp = this.checkresultList[0].checkRuleName;
this.checkSampleUp = this.checkresultList[0].checkSample;
this.materialIdUpId = this.checkresultList[0].materialId;
this.queryParamsMaterials.materialId = this.checkresultList[0].materialId;
this.getMaterialInfo();
if (this.checkresultList[0].checkMode != "2"){
this.isIf = false;
}
//label
for (let i = 0; i < this.dict.type.qms_check_mode.length;i++ ){
if (this.dict.type.qms_check_mode[i].value ==this.checkresultList[0].checkMode){
this.checkModeUp = this.dict.type.qms_check_mode[i].label;
}
}
for (let j = 0; j < this.dict.type.qms_check_status.length;j++){
if (this.dict.type.qms_check_status[j].value == this.checkresultList[0].checkStatus){
this.checkStatusUp = this.dict.type.qms_check_status[j].label;
}
}
this.loading = false;
});
},
/** 查询物料信息集合 */
getMaterialInfo(){
this.loading = true;
listMaterialinfo(this.queryParamsMaterials).then(response => {
this.materialinfoList = response.rows;
console.log(this.materialinfoList)
console.log(this.materialIdUpId)
for (let i = 0; i<this.materialinfoList.length; i++){
if (this.materialIdUpId == this.materialinfoList[i].materialId ){
this.materialIdUpId = this.materialinfoList[i].materialName;
}
}
this.loading = false;
});
},
/** 查询质检结果详情列表 */
getList() {
this.loading = true;
listCheckresultdetail(this.queryParams).then(response => {
this.checkresultdetailList = response.rows;
for (let k = 0; k < this.dict.type.qms_check_rule_type.length;k++){
if (this.dict.type.qms_check_rule_type[k].value == this.checkresultdetailList[0].checkRuleType){
this.checkRuleTypeUp = this.dict.type.qms_check_rule_type[k].label;
}
}
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
checkResultDetailId: null,
checkResultId: null,
materialBarcode: null,
materialId: null,
checkRuleId: null,
checkRuleType: null,
checkRuleName: null,
checkMode: null,
checkSample: null,
checkStatus: null,
remark: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.checkResultDetailId)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加质检结果详情";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const checkResultDetailId = row.checkResultDetailId || this.ids
getCheckresultdetail(checkResultDetailId).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改质检结果详情";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.checkResultDetailId != null) {
updateCheckresultdetail(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addCheckresultdetail(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const checkResultDetailIds = row.checkResultDetailId || this.ids;
this.$modal.confirm('是否确认删除质检结果详情编号为"' + checkResultDetailIds + '"的数据项?').then(function() {
return delCheckresultdetail(checkResultDetailIds);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('qms/checkresultdetail/export', {
...this.queryParams
}, `checkresultdetail_${new Date().getTime()}.xlsx`)
}
}
};
</script>

@ -0,0 +1,528 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="工单流程ID关联wf_process的wf_process_id;固定流程ID" prop="wfProcessId">
<el-input
v-model="queryParams.wfProcessId"
placeholder="请输入工单流程ID关联wf_process的wf_process_id;固定流程ID"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="质检结果ID,关联qms_check_result主键" prop="checkResultId">
<el-input
v-model="queryParams.checkResultId"
placeholder="请输入质检结果ID,关联qms_check_result主键"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="质检描述" prop="qualityDescription">
<el-input
v-model="queryParams.qualityDescription"
placeholder="请输入质检描述"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="处理开始时间" prop="startTime">
<el-date-picker clearable
v-model="queryParams.startTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择处理开始时间">
</el-date-picker>
</el-form-item>
<el-form-item label="处理结束时间" prop="endTime">
<el-date-picker clearable
v-model="queryParams.endTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择处理结束时间">
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['qms:ualityinstance:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['qms:ualityinstance:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['qms:ualityinstance:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['qms:ualityinstance:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="ualityinstanceList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="质检工单实例ID" align="center" prop="qualityInstanceId" />
<el-table-column label="工单流程ID关联wf_process的wf_process_id;固定流程ID" align="center" prop="wfProcessId" />
<el-table-column label="状态" align="center" prop="wfInstanceStatus" />
<el-table-column label="质检结果ID,关联qms_check_result主键" align="center" prop="checkResultId" />
<el-table-column label="质检描述" align="center" prop="qualityDescription" />
<el-table-column label="处理开始时间" align="center" prop="startTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.startTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="处理结束时间" align="center" prop="endTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.endTime, '{y}-{m}-{d}') }}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="getJump(scope.row)"
v-hasPermi="['qms:checkrule:add']"
>查看工单
</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['qms:ualityinstance:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['qms:ualityinstance:remove']"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改质检工单对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="检验规则" prop="checkRuleId" >
<el-select v-model="form.checkRuleId" placeholder="请选择检验规则">
<el-option
v-for="item in this.checkruleList"
:key="item.checkRuleId"
:label="item.checkRuleName"
:value="item.checkRuleId">
</el-option>
</el-select>
</el-form-item>
<!-- <el-form-item label="物料信息" prop="materialId" >-->
<!-- <el-select v-model="form.materialId" placeholder="请选择检测物料">-->
<!-- <el-option-->
<!-- v-for="item in this.materialinfoList"-->
<!-- :key="item.materialId"-->
<!-- :label="item.materialName"-->
<!-- :value="item.materialId">-->
<!-- </el-option>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item label="检验批次" prop="materialBatch">
<el-input v-model="form.materialBatch" placeholder="请输入检验批次" />
</el-form-item>
<el-form-item label="质检描述" prop="qualityDescription">
<el-input v-model="form.qualityDescription" placeholder="请输入质检描述" />
</el-form-item>
<el-form-item label="处理意见" prop="materialBatch">
<el-input v-model="form.processHandleResolution" placeholder="请输入处理意见" />
</el-form-item>
<el-form-item label="工单处理描述" prop="materialBatch">
<el-input v-model="form.processHandleDesc" placeholder="请输入工单处理描述" />
</el-form-item>
<el-form-item prop="pictureUrl">
<el-upload
:action="imgUpload.url"
:headers="imgUpload.headers"
:on-success="handlePictureSuccess"
:before-upload="beforePictureUpload"
list-type="picture-card"
:file-list="fileListShow"
:on-preview="handlePictureCardPreview"
:on-remove="handleRemove">
<i class="el-icon-plus"></i>
</el-upload>
<!--图片预览的dialog-->
<el-dialog :visible.sync="dialogVisible">
<img width="100%" :src="dialogImageUrl">
</el-dialog>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listQualityinstance, getQualityinstance, delQualityinstance, addQualityinstance, updateQualityinstance } from "@/api/qms/qualityinstance";
import { listCheckrule } from '@/api/qms/checkrule'
import { listMaterialinfo } from '@/api/mes/materialinfo'
import { getToken } from '@/utils/auth'
import { listWfprocessactivity } from '@/api/system/common/wfprocessactivity'
export default {
name: "Ualityinstance",
data() {
return {
//
isCommonName: true,
//list
fileListShow: [],
//List
fileListPut: [],
dialogImageUrl: '',
dialogVisible: false,
imgUpload: {
//
headers: {
Authorization: "Bearer " + getToken()
},
// :
url: process.env.VUE_APP_BASE_API + "/file/upload",
url2: process.env.VUE_APP_BASE_API,
},
//
materialinfoList:[],
//
checkruleList:[],
//
loading: true,
//
ids: [],
//
checkedQmsQualityInstanceActivity: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
ualityinstanceList: [],
//
qmsQualityInstanceActivityList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
wfProcessId: null,
wfInstanceStatus: null,
checkResultId: null,
qualityDescription: null,
startTime: null,
endTime: null,
},
queryParamWfProcessActivity:{
wfProcessId:301,
},
//
form: {},
//
rules: {
wfProcessId: [
{ required: true, message: "工单流程ID关联wf_process的wf_process_id;固定流程ID不能为空", trigger: "blur" }
],
wfInstanceStatus: [
{ required: true, message: "状态不能为空", trigger: "change" }
],
}
};
},
created() {
this.getList();
this.getCheckRule();
this.getMaterialInfo();
this.getWfprocessActivity();
},
methods: {
//
beforePictureUpload(file){
// isCommonName true
this.isCommonName = true;
const isJPG = file.type === 'image/jpeg';
const isLt2M = file.size / 1024 / 1024 < 2;
//
if(this.fileListPut.length > 0){
this.fileListPut.forEach((item,index)=>{
if(item.name == file.name){
this.$message.error('已存在相同的图片!');
this.isCommonName = false;
}
})
}
if (!isJPG) {
this.$message.error('请上传图片格式的文件!');
}
if (!isLt2M) {
this.$message.error('上传的图片不能超过2MB!');
}
return isJPG && isLt2M && this.isCommonName;
},
//
handleRemove(file, fileList) {
//filefileListPut
if(this.fileListPut.length > 0){
this.fileListPut = this.fileListPut.filter((item, index)=>{
return item.name != file.name;
})
}
},
//
handlePictureCardPreview(file) {
this.dialogImageUrl = file.url;
this.dialogVisible = true;
},
//
handlePictureSuccess(res, file) {
//访
const imgObjectUrl = this.imgUpload.url2 + file.response.imgUrl;
//JSON
let currentFile = { name: '', url: '' };
currentFile.name = file.name;
currentFile.url = imgObjectUrl;
this.imgAddress.push(res.data.url);
//
this.fileListPut.push(currentFile);
console.log(this.fileListPut)
},
getJump(row){
this.$router.push('/qms/base/qualityinstanceactivity/index/'+row.qualityInstanceId)
},
/** 查询物料信息集合 */
getMaterialInfo(){
this.loading = true;
listMaterialinfo(this.queryParams).then(response => {
this.materialinfoList = response.rows;
this.loading = false;
});
},
/** 查询检验规则维护列表 */
getCheckRule() {
this.loading = true;
listCheckrule(this.queryParams).then(response => {
this.checkruleList = response.rows;
this.loading = false;
});
},
/** 查询质检工单列表 */
getList() {
this.loading = true;
listQualityinstance(this.queryParams).then(response => {
this.ualityinstanceList = response.rows;
this.total = response.total;
this.loading = false;
});
},
/**查询流程信息*/
getWfprocessActivity(){
listWfprocessactivity(this.queryParamWfProcessActivity).then(response=>{
this.wfProcessActivityList = response.rows;
this.stepsNum = this.wfProcessActivityList.length;
})
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
qualityInstanceId: null,
wfProcessId: null,
wfInstanceStatus: null,
checkResultId: null,
qualityDescription: null,
startTime: null,
endTime: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null
};
this.qmsQualityInstanceActivityList = [];
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.qualityInstanceId)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加质检工单";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const qualityInstanceId = row.qualityInstanceId || this.ids
getQualityinstance(qualityInstanceId).then(response => {
this.form = response.data;
this.qmsQualityInstanceActivityList = response.data.qmsQualityInstanceActivityList;
this.open = true;
this.title = "修改质检工单";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
this.form.qmsQualityInstanceActivityList = this.qmsQualityInstanceActivityList;
if (this.form.qualityInstanceId != null) {
updateQualityinstance(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
this.form.wfProcessId = 301;
this.form.stepsNum = this.stepsNum;
addQualityinstance(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const qualityInstanceIds = row.qualityInstanceId || this.ids;
this.$modal.confirm('是否确认删除质检工单编号为"' + qualityInstanceIds + '"的数据项?').then(function() {
return delQualityinstance(qualityInstanceIds);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 质检工单实例节点序号 */
rowQmsQualityInstanceActivityIndex({ row, rowIndex }) {
row.index = rowIndex + 1;
},
/** 质检工单实例节点添加按钮操作 */
handleAddQmsQualityInstanceActivity() {
let obj = {};
obj.processActivityId = "";
obj.processHandleResolution = "";
obj.processHandleDesc = "";
obj.processHandleStatus = "";
obj.processStepOrder = "";
obj.startTime = "";
obj.endTime = "";
obj.handleUserId = "";
obj.handleBy = "";
obj.handleTime = "";
obj.transferUserId = "";
this.qmsQualityInstanceActivityList.push(obj);
},
/** 质检工单实例节点删除按钮操作 */
handleDeleteQmsQualityInstanceActivity() {
if (this.checkedQmsQualityInstanceActivity.length == 0) {
this.$modal.msgError("请先选择要删除的质检工单实例节点数据");
} else {
const qmsQualityInstanceActivityList = this.qmsQualityInstanceActivityList;
const checkedQmsQualityInstanceActivity = this.checkedQmsQualityInstanceActivity;
this.qmsQualityInstanceActivityList = qmsQualityInstanceActivityList.filter(function(item) {
return checkedQmsQualityInstanceActivity.indexOf(item.index) == -1
});
}
},
/** 复选框选中数据 */
handleQmsQualityInstanceActivitySelectionChange(selection) {
this.checkedQmsQualityInstanceActivity = selection.map(item => item.index)
},
/** 导出按钮操作 */
handleExport() {
this.download('qms/ualityinstance/export', {
...this.queryParams
}, `ualityinstance_${new Date().getTime()}.xlsx`)
}
}
};
</script>

@ -0,0 +1,452 @@
<template>
<div class="app-container">
<h4 class="form-header h4">质检工单信息</h4>
<el-form label-width="120px">
<el-row>
<el-col :span="8" :offset="2">
<el-form-item label="工单ID" >
<el-input v-model="this.qualityInstanceIdUp" disabled />
</el-form-item>
</el-col>
<el-col :span="8" :offset="2">
<el-form-item label="工单状态" >
<el-input v-model="this.qualityinstanceStatusUp" disabled />
</el-form-item>
</el-col>
<el-col :span="8" :offset="2">
<el-form-item label="开始时间" >
<el-input v-model="this.qualityInstanceStartTimeUp" disabled />
</el-form-item>
</el-col>
<el-col :span="8" :offset="2">
<el-form-item label="处理人" >
<el-input v-model="this.qualityInstanceByUp" disabled />
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-row>
<el-form ref="form" :model="form" label-width="100px" v-loading="loading">
<!-- 中间步骤-->
<!-- v-if="repairInstanceActivity.processStepOrder!=1"-->
<el-form-item v-for="(repairInstanceActivity123,index) in qualityinstanceactivityList"
:key="qualityinstanceactivityList.qualityInstanceId"
label-width="0px"
:model="form"
>
<el-form-item
>
<h4 class="form-header h4"
> {{repairInstanceActivity123.name}}</h4>
<!-- 不知道什么原理 加个空格财能正常显示 -->
</el-form-item>
<el-col :span="24">
<el-form-item label="处理意见"
>
<el-input
v-model="repairInstanceActivity123.processHandleResolution"
placeholder="请输入处理意见"
:disabled=true
>
</el-input>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="处理描述" prop="processHandleDesc">
<el-input
v-model="repairInstanceActivity123.processHandleDesc"
placeholder="请输入处理描述"
:disabled=true
/>
</el-form-item>
</el-col>
</el-form-item>
</el-form>
<!-- 新增审批流程表单显示-->
<el-form ref="form1" :model="form1" label-width="100px"
v-if="this.form1.processStepOrder<this.wfProcessActivityList.length">
<h4 class="form-header h4">{{this.wfProcessActivityList[this.qualityinstanceactivityList.length].processActivityName}}</h4>
<el-col :span="24">
<el-form-item label="处理意见"
>
<el-input
v-model="form1.processHandleResolution"
placeholder="处理意见">
</el-input>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="处理描述"
>
<el-input
v-model="form1.processHandleDesc"
placeholder="处理描述">
</el-input>
</el-form-item>
</el-col>
<div >
<el-button type="primary" @click="submitForm"> </el-button>
</div>
</el-form>
</el-row>
<!-- <pagination-->
<!-- v-show="total>0"-->
<!-- :total="total"-->
<!-- :page.sync="queryParams.pageNum"-->
<!-- :limit.sync="queryParams.pageSize"-->
<!-- @pagination="getList"-->
<!-- />-->
<!-- 添加或修改质检工单实例节点对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="质检工单实例ID关联qms_quality_instance的quality_instance_id" prop="qualityInstanceId">
<el-input v-model="form.qualityInstanceId" placeholder="请输入质检工单实例ID关联qms_quality_instance的quality_instance_id" />
</el-form-item>
<el-form-item label="工单流程节点ID" prop="processActivityId">
<el-input v-model="form.processActivityId" placeholder="请输入工单流程节点ID" />
</el-form-item>
<el-form-item label="处理意见" prop="processHandleResolution">
<el-input v-model="form.processHandleResolution" placeholder="请输入处理意见" />
</el-form-item>
<el-form-item label="工单处理描述" prop="processHandleDesc">
<el-input v-model="form.processHandleDesc" placeholder="请输入工单处理描述" />
</el-form-item>
<el-form-item label="工单流程步骤顺序" prop="processStepOrder">
<el-input v-model="form.processStepOrder" placeholder="请输入工单流程步骤顺序" />
</el-form-item>
<el-form-item label="执行开始时间" prop="startTime">
<el-date-picker clearable
v-model="form.startTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择执行开始时间">
</el-date-picker>
</el-form-item>
<el-form-item label="执行结束时间" prop="endTime">
<el-date-picker clearable
v-model="form.endTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择执行结束时间">
</el-date-picker>
</el-form-item>
<el-form-item label="处理人ID" prop="handleUserId">
<el-input v-model="form.handleUserId" placeholder="请输入处理人ID" />
</el-form-item>
<el-form-item label="处理人" prop="handleBy">
<el-input v-model="form.handleBy" placeholder="请输入处理人" />
</el-form-item>
<el-form-item label="处理时间" prop="handleTime">
<el-date-picker clearable
v-model="form.handleTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择处理时间">
</el-date-picker>
</el-form-item>
<el-form-item label="转单人用户id或转发协助用户id;1、在转发时生成新的工单节点实例执行人id为转发的用户而转单人是刚才转发给此用户的用户id是否协助工单为0并且转发后当前工单的状态为已结束此用户的用户id是否协助工单为0并且转发后当前工单的状态为已结束此用户的用户id是否协助工单为0并且转发后当前工单的状态为已结束此用户的用户id是否协助工单为0并且转发后当前工单的状态为已结束2、在添加协助时生成新的工单节点实例执行人id为添加协助的用户而转单人是刚才添加协助此用户的用户id是否协助工单为1并且转发后当前工单的状态仍为执行中" prop="transferUserId">
<el-input v-model="form.transferUserId" placeholder="请输入转单人用户id或转发协助用户id;1、在转发时生成新的工单节点实例执行人id为转发的用户而转单人是刚才转发给此用户的用户id是否协助工单为0并且转发后当前工单的状态为已结束此用户的用户id是否协助工单为0并且转发后当前工单的状态为已结束此用户的用户id是否协助工单为0并且转发后当前工单的状态为已结束此用户的用户id是否协助工单为0并且转发后当前工单的状态为已结束2、在添加协助时生成新的工单节点实例执行人id为添加协助的用户而转单人是刚才添加协助此用户的用户id是否协助工单为1并且转发后当前工单的状态仍为执行中" />
</el-form-item>
<el-divider content-position="center">质检文件信息</el-divider>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAddQmsCheckInstanceFile"></el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" icon="el-icon-delete" size="mini" @click="handleDeleteQmsCheckInstanceFile"></el-button>
</el-col>
</el-row>
<el-table :data="qmsCheckInstanceFileList" :row-class-name="rowQmsCheckInstanceFileIndex" @selection-change="handleQmsCheckInstanceFileSelectionChange" ref="qmsCheckInstanceFile">
<el-table-column type="selection" width="50" align="center" />
<el-table-column label="序号" align="center" prop="index" width="50"/>
<el-table-column label="关联类型(1质检工单实例)" prop="targetType" width="150">
<template slot-scope="scope">
<el-select v-model="scope.row.targetType" placeholder="请选择关联类型(1质检工单实例)">
<el-option label="请选择字典生成" value="" />
</el-select>
</template>
</el-table-column>
</el-table>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listQualityinstanceactivity, listQualityinstanceactivitynoStatus,getQualityinstanceactivity, delQualityinstanceactivity, addQualityinstanceactivity, updateQualityinstanceactivity } from "@/api/qms/qualityinstanceactivity";
import { listQualityinstance } from '@/api/qms/qualityinstance'
import { listWfprocessactivity } from '@/api/system/common/wfprocessactivity'
export default {
name: "Qualityinstanceactivity",
data() {
return {
formIf:true,
ListLength:[],
stepsNum:"",
wfProcessActivityList:[],
qualityInstanceByUp:"",
qualityInstanceStartTimeUp:"",
qualityinstanceStatusUp:"",
qualityInstanceIdUp:"",
//
qualityinstanceList:[],
//
loading: true,
//
ids: [],
//
checkedQmsCheckInstanceFile: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
qualityinstanceactivityList: [],
//
qmsCheckInstanceFileList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
qualityInstanceId: null,
processActivityId: null,
processHandleResolution: null,
processHandleDesc: null,
processHandleStatus: null,
processStepOrder: null,
startTime: null,
endTime: null,
handleUserId: null,
handleBy: null,
handleTime: null,
transferUserId: null
},
queryParamWfProcessActivity:{
wfProcessId:301,
},
//
form: {},
form1: {},
//
rules: {
qualityInstanceId: [
{ required: true, message: "质检工单实例ID关联qms_quality_instance的quality_instance_id不能为空", trigger: "blur" }
],
processHandleResolution: [
{ required: true, message: "处理意见不能为空", trigger: "blur" }
],
}
};
},
created() {
const qualityInstanceId = this.$route.params && this.$route.params.qualityInstanceId;
this.queryParams.qualityInstanceId = qualityInstanceId;
this.getList();
this.getQualityInstance();
},
methods: {
/**查询流程信息*/
getWfprocessActivity(){
this.loading = true;
listWfprocessactivity(this.queryParamWfProcessActivity).then(response=>{
this.wfProcessActivityList = response.rows;
console.log(this.wfProcessActivityList)
this.stepsNum = this.wfProcessActivityList.length;
for (let i=0;i<this.stepsNum;i++){
for (let j=0;j<this.stepsNum;j++){
if (this.qualityinstanceactivityList[i].processStepOrder==this.wfProcessActivityList[j].processActivityOrder){
this.qualityinstanceactivityList[i].name = this.wfProcessActivityList[j].processActivityName;
console.log(this.qualityinstanceactivityList[i].name)
}
}
}
})
},
/** 查询质检工单列表 */
getQualityInstance() {
this.loading = true;
listQualityinstance(this.queryParams).then(response => {
this.qualityinstanceList = response.rows;
this.qualityInstanceIdUp = this.qualityinstanceList[0].qualityInstanceId;
this.qualityinstanceStatusUp = this.qualityinstanceList[0].wfInstanceStatus;
this.qualityInstanceStartTimeUp = this.qualityinstanceList[0].startTime;
this.qualityInstanceByUp = this.qualityinstanceList[0].createBy;
this.loading = false;
});
},
/** 查询质检工单实例节点列表 */
getList() {
this.loading = true;
listQualityinstanceactivitynoStatus(this.queryParams).then(response => {
this.qualityinstanceactivityList = response.rows;
console.log(this.qualityinstanceactivityList)
// this.form.processHandleResolution = this.qualityinstanceList[0].processHandleResolution;
// this.form.processHandleDesc = this.qualityinstanceList[0].processHandleDesc;
this.ListLength = this.qualityinstanceactivityList.length;
this.form1 = JSON.parse(JSON.stringify(this.qualityinstanceactivityList[this.ListLength-1]))
// this.form1.processHandleResolution = null;
this.nowPorcessStepOrder = this.ListLength+1;
this.getWfprocessActivity();
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
instanceActivityId: null,
qualityInstanceId: null,
processActivityId: null,
processHandleResolution: null,
processHandleDesc: null,
processHandleStatus: null,
processStepOrder: null,
startTime: null,
endTime: null,
handleUserId: null,
handleBy: null,
handleTime: null,
createBy: null,
createTime: null,
transferUserId: null
};
this.qmsCheckInstanceFileList = [];
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.instanceActivityId)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加质检工单实例节点";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const instanceActivityId = row.instanceActivityId || this.ids
getQualityinstanceactivity(instanceActivityId).then(response => {
this.form = response.data;
this.qmsCheckInstanceFileList = response.data.qmsCheckInstanceFileList;
this.open = true;
this.title = "修改质检工单实例节点";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
this.form.qmsCheckInstanceFileList = this.qmsCheckInstanceFileList;
if (this.form.instanceActivityId != null) {
updateQualityinstanceactivity(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
for (let i = 0; i < this.wfProcessActivityList.length;i++){
if (this.form1.processStepOrder+1 == this.wfProcessActivityList[i].processActivityOrder){
this.form1.processActivityId = this.wfProcessActivityList[i].processActivityId;
// alert(this.wfProcessActivityList[i].processActivityId)
}
}
this.form1.instanceActivityId =null;
//
this.form1.processStepOrder = this.form1.processStepOrder+1;
this.form1.stepsNum = this.stepsNum;
// this.form1.wfLength = this.wfProcessActivityList.length;
addQualityinstanceactivity(this.form1).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const instanceActivityIds = row.instanceActivityId || this.ids;
this.$modal.confirm('是否确认删除质检工单实例节点编号为"' + instanceActivityIds + '"的数据项?').then(function() {
return delQualityinstanceactivity(instanceActivityIds);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 质检文件序号 */
rowQmsCheckInstanceFileIndex({ row, rowIndex }) {
row.index = rowIndex + 1;
},
/** 质检文件添加按钮操作 */
handleAddQmsCheckInstanceFile() {
let obj = {};
obj.targetType = "";
obj.faultFile = "";
this.qmsCheckInstanceFileList.push(obj);
},
/** 质检文件删除按钮操作 */
handleDeleteQmsCheckInstanceFile() {
if (this.checkedQmsCheckInstanceFile.length == 0) {
this.$modal.msgError("请先选择要删除的质检文件数据");
} else {
const qmsCheckInstanceFileList = this.qmsCheckInstanceFileList;
const checkedQmsCheckInstanceFile = this.checkedQmsCheckInstanceFile;
this.qmsCheckInstanceFileList = qmsCheckInstanceFileList.filter(function(item) {
return checkedQmsCheckInstanceFile.indexOf(item.index) == -1
});
}
},
/** 复选框选中数据 */
handleQmsCheckInstanceFileSelectionChange(selection) {
this.checkedQmsCheckInstanceFile = selection.map(item => item.index)
},
/** 导出按钮操作 */
handleExport() {
this.download('qms/qualityinstanceactivity/export', {
...this.queryParams
}, `qualityinstanceactivity_${new Date().getTime()}.xlsx`)
}
}
};
</script>

@ -251,6 +251,7 @@
<module>hw-modules</module>
<module>hw-api</module>
<module>hw-common</module>
<module>hw-api/hw-api-jindie</module>
</modules>
<packaging>pom</packaging>

Loading…
Cancel
Save