diff --git a/hw-api/hw-api-jindie/pom.xml b/hw-api/hw-api-jindie/pom.xml new file mode 100644 index 00000000..0f8a7442 --- /dev/null +++ b/hw-api/hw-api-jindie/pom.xml @@ -0,0 +1,32 @@ + + + + com.hw + hw-api + 3.6.3 + + 4.0.0 + + hw-api-jindie + + + hw-api-jindie + + + + + + + com.hw + hw-common-core + + + org.quartz-scheduler + quartz + + + + + diff --git a/hw-api/hw-api-jindie/src/main/java/com/hw/jindie/api/RemoteJindieService.java b/hw-api/hw-api-jindie/src/main/java/com/hw/jindie/api/RemoteJindieService.java new file mode 100644 index 00000000..ca9184ba --- /dev/null +++ b/hw-api/hw-api-jindie/src/main/java/com/hw/jindie/api/RemoteJindieService.java @@ -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 ErpSupplierInfo(@RequestHeader(SecurityConstants.FROM_SOURCE) String source, @RequestParam("beginTime") String beginTime, @RequestParam("endTime") String endTime); + + /** 同步物料*/ + @GetMapping("/jindie/syncMaterialInfo") + R ErpMesMaterialInfo(@RequestHeader(SecurityConstants.FROM_SOURCE) String source, @RequestParam("beginTime") String beginTime, @RequestParam("endTime") String endTime); +} diff --git a/hw-api/hw-api-jindie/src/main/java/com/hw/jindie/api/factory/RemoteJindieFallbackFactory.java b/hw-api/hw-api-jindie/src/main/java/com/hw/jindie/api/factory/RemoteJindieFallbackFactory.java new file mode 100644 index 00000000..e9bc33e0 --- /dev/null +++ b/hw-api/hw-api-jindie/src/main/java/com/hw/jindie/api/factory/RemoteJindieFallbackFactory.java @@ -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 { + public RemoteJindieService create(Throwable throwable) { + return new RemoteJindieService() { + @Override + public R ErpSupplierInfo(String source, String beginTime, String endTime) { + return null; + } + + @Override + public R ErpMesMaterialInfo(String source, String beginTime, String endTime) { + return null; + } + }; + } +} diff --git a/hw-api/hw-api-jindie/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/hw-api/hw-api-jindie/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 00000000..d0caddd0 --- /dev/null +++ b/hw-api/hw-api-jindie/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1 @@ +com.hw.jindie.api.factory.RemoteJindieFallbackFactory diff --git a/hw-common/hw-common-core/src/main/java/com/hw/common/core/constant/ServiceNameConstants.java b/hw-common/hw-common-core/src/main/java/com/hw/common/core/constant/ServiceNameConstants.java index 60006cf9..564d3e56 100644 --- a/hw-common/hw-common-core/src/main/java/com/hw/common/core/constant/ServiceNameConstants.java +++ b/hw-common/hw-common-core/src/main/java/com/hw/common/core/constant/ServiceNameConstants.java @@ -52,4 +52,8 @@ public class ServiceNameConstants * 打印机服务的serviceid * */ public static final String PRINTER_SERVICE = "hw-printer"; + /** + * jindie服务下的serviceid + * */ + public static final String JINDIE_SERVICE = "hw-jindie"; } diff --git a/hw-common/hw-common-core/src/main/java/com/hw/common/core/constant/WfConstants.java b/hw-common/hw-common-core/src/main/java/com/hw/common/core/constant/WfConstants.java index 11a92d38..f37062a1 100644 --- a/hw-common/hw-common-core/src/main/java/com/hw/common/core/constant/WfConstants.java +++ b/hw-common/hw-common-core/src/main/java/com/hw/common/core/constant/WfConstants.java @@ -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";//质检工单实例节点 + + + + } diff --git a/hw-modules/hw-jindie/install-jindie-jar.bat b/hw-modules/hw-jindie/install-jindie-jar.bat index 6baf4b8a..87aaca99 100644 --- a/hw-modules/hw-jindie/install-jindie-jar.bat +++ b/hw-modules/hw-jindie/install-jindie-jar.bat @@ -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 \ No newline at end of file +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 diff --git a/hw-modules/hw-jindie/src/main/java/com/hw/jindie/controller/KingdeeErpSyncController.java b/hw-modules/hw-jindie/src/main/java/com/hw/jindie/controller/KingdeeErpSyncController.java index b44a6f60..da101441 100644 --- a/hw-modules/hw-jindie/src/main/java/com/hw/jindie/controller/KingdeeErpSyncController.java +++ b/hw-modules/hw-jindie/src/main/java/com/hw/jindie/controller/KingdeeErpSyncController.java @@ -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(); diff --git a/hw-modules/hw-jindie/src/main/java/com/hw/jindie/domain/MesBaseMaterialInfo.java b/hw-modules/hw-jindie/src/main/java/com/hw/jindie/domain/MesBaseMaterialInfo.java index 602197b4..846c5c1f 100644 --- a/hw-modules/hw-jindie/src/main/java/com/hw/jindie/domain/MesBaseMaterialInfo.java +++ b/hw-modules/hw-jindie/src/main/java/com/hw/jindie/domain/MesBaseMaterialInfo.java @@ -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) { diff --git a/hw-modules/hw-jindie/src/main/java/com/hw/jindie/domain/MesBaseSupplierInfo.java b/hw-modules/hw-jindie/src/main/java/com/hw/jindie/domain/MesBaseSupplierInfo.java new file mode 100644 index 00000000..8916d71c --- /dev/null +++ b/hw-modules/hw-jindie/src/main/java/com/hw/jindie/domain/MesBaseSupplierInfo.java @@ -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(); + } +} diff --git a/hw-modules/hw-jindie/src/main/java/com/hw/jindie/domain/MesProjectInfo.java b/hw-modules/hw-jindie/src/main/java/com/hw/jindie/domain/MesProjectInfo.java new file mode 100644 index 00000000..079619c9 --- /dev/null +++ b/hw-modules/hw-jindie/src/main/java/com/hw/jindie/domain/MesProjectInfo.java @@ -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; + + /** + * 项目状态(1待开始2已开始3已完成) + */ + @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(); + } +} diff --git a/hw-modules/hw-jindie/src/main/java/com/hw/jindie/domain/MesSaleOrder.java b/hw-modules/hw-jindie/src/main/java/com/hw/jindie/domain/MesSaleOrder.java new file mode 100644 index 00000000..73dbeccd --- /dev/null +++ b/hw-modules/hw-jindie/src/main/java/com/hw/jindie/domain/MesSaleOrder.java @@ -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; + + /** + * 对应金蝶ERP订单明细的ID;对应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_info的factory_id + */ + @Excel(name = "所属工厂,关联mes_base_factory_info的factory_id") + private Long factoryId; + + /** + * 所属产线,关联mes_base_prodline_info的prodline_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(); + } +} diff --git a/hw-modules/hw-jindie/src/main/java/com/hw/jindie/mapper/MesBaseSupplierInfoMapper.java b/hw-modules/hw-jindie/src/main/java/com/hw/jindie/mapper/MesBaseSupplierInfoMapper.java new file mode 100644 index 00000000..5e5da9a1 --- /dev/null +++ b/hw-modules/hw-jindie/src/main/java/com/hw/jindie/mapper/MesBaseSupplierInfoMapper.java @@ -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 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); +} diff --git a/hw-modules/hw-jindie/src/main/java/com/hw/jindie/mapper/MesProjectInfoMapper.java b/hw-modules/hw-jindie/src/main/java/com/hw/jindie/mapper/MesProjectInfoMapper.java new file mode 100644 index 00000000..814d58e6 --- /dev/null +++ b/hw-modules/hw-jindie/src/main/java/com/hw/jindie/mapper/MesProjectInfoMapper.java @@ -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 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); +} diff --git a/hw-modules/hw-jindie/src/main/java/com/hw/jindie/mapper/MesSaleOrderMapper.java b/hw-modules/hw-jindie/src/main/java/com/hw/jindie/mapper/MesSaleOrderMapper.java new file mode 100644 index 00000000..431e9087 --- /dev/null +++ b/hw-modules/hw-jindie/src/main/java/com/hw/jindie/mapper/MesSaleOrderMapper.java @@ -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 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); +} diff --git a/hw-modules/hw-jindie/src/main/java/com/hw/jindie/service/IKingdeeErpSyncService.java b/hw-modules/hw-jindie/src/main/java/com/hw/jindie/service/IKingdeeErpSyncService.java index d7b5fc22..e900865d 100644 --- a/hw-modules/hw-jindie/src/main/java/com/hw/jindie/service/IKingdeeErpSyncService.java +++ b/hw-modules/hw-jindie/src/main/java/com/hw/jindie/service/IKingdeeErpSyncService.java @@ -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; } diff --git a/hw-modules/hw-jindie/src/main/java/com/hw/jindie/service/impl/KingdeeErpSyncServiceImpl.java b/hw-modules/hw-jindie/src/main/java/com/hw/jindie/service/impl/KingdeeErpSyncServiceImpl.java index 5d6b909f..891d67b8 100644 --- a/hw-modules/hw-jindie/src/main/java/com/hw/jindie/service/impl/KingdeeErpSyncServiceImpl.java +++ b/hw-modules/hw-jindie/src/main/java/com/hw/jindie/service/impl/KingdeeErpSyncServiceImpl.java @@ -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 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 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; + } } diff --git a/hw-modules/hw-jindie/src/main/resources/mapper/jindie/MesBaseMaterialInfoMapper.xml b/hw-modules/hw-jindie/src/main/resources/mapper/jindie/MesBaseMaterialInfoMapper.xml index 43667458..4f162b5b 100644 --- a/hw-modules/hw-jindie/src/main/resources/mapper/jindie/MesBaseMaterialInfoMapper.xml +++ b/hw-modules/hw-jindie/src/main/resources/mapper/jindie/MesBaseMaterialInfoMapper.xml @@ -33,6 +33,7 @@ + @@ -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 @@ -139,6 +141,7 @@ update_time, approve_date, erp_modify_date, + purchase_price_unit_id, #{erpId}, @@ -168,6 +171,7 @@ #{updateTime}, #{approveDate}, #{erpModifyDate}, + #{purchasePriceUnitId}, @@ -203,6 +207,7 @@ update_time = #{updateTime}, approve_date = #{approveDate}, erp_modify_date = #{erpModifyDate}, + purchase_price_unit_id = #{purchasePriceUnitId}, where material_id = #{materialId} diff --git a/hw-modules/hw-jindie/src/main/resources/mapper/jindie/MesBaseSupplierInfoMapper.xml b/hw-modules/hw-jindie/src/main/resources/mapper/jindie/MesBaseSupplierInfoMapper.xml new file mode 100644 index 00000000..7b0f6999 --- /dev/null +++ b/hw-modules/hw-jindie/src/main/resources/mapper/jindie/MesBaseSupplierInfoMapper.xml @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + 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 + + + + + + + + insert into mes_base_supplier_info + + supplier_code, + supplier_name, + erp_id, + supplier_status, + remark, + create_by, + create_time, + update_by, + update_time, + audit_date, + + + #{supplierCode}, + #{supplierName}, + #{erpId}, + #{supplierStatus}, + #{remark}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{auditDate}, + + + + + update mes_base_supplier_info + + supplier_code = #{supplierCode}, + supplier_name = #{supplierName}, + erp_id = #{erpId}, + supplier_status = #{supplierStatus}, + remark = #{remark}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + audit_date = #{auditDate}, + + where supplier_id = #{supplierId} + + + + delete from mes_base_supplier_info where supplier_id = #{supplierId} + + + + delete from mes_base_supplier_info where supplier_id in + + #{supplierId} + + + diff --git a/hw-modules/hw-jindie/src/main/resources/mapper/jindie/MesProjectInfoMapper.xml b/hw-modules/hw-jindie/src/main/resources/mapper/jindie/MesProjectInfoMapper.xml new file mode 100644 index 00000000..b9584538 --- /dev/null +++ b/hw-modules/hw-jindie/src/main/resources/mapper/jindie/MesProjectInfoMapper.xml @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + + + + insert into mes_project_info + + 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, + + + #{erpId}, + #{projectNo}, + #{projectName}, + #{documentStatus}, + #{forbidStatus}, + #{auditDate}, + #{erpModifyDate}, + #{beginDate}, + #{endDate}, + #{orderStatus}, + #{completeDate}, + #{isFlag}, + #{remark}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update mes_project_info + + erp_id = #{erpId}, + project_no = #{projectNo}, + project_name = #{projectName}, + document_status = #{documentStatus}, + forbid_status = #{forbidStatus}, + audit_date = #{auditDate}, + erp_modify_date = #{erpModifyDate}, + begin_date = #{beginDate}, + end_date = #{endDate}, + order_status = #{orderStatus}, + complete_date = #{completeDate}, + is_flag = #{isFlag}, + remark = #{remark}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where project_id = #{projectId} + + + + delete from mes_project_info where project_id = #{projectId} + + + + delete from mes_project_info where project_id in + + #{projectId} + + + diff --git a/hw-modules/hw-jindie/src/main/resources/mapper/jindie/MesSaleOrderMapper.xml b/hw-modules/hw-jindie/src/main/resources/mapper/jindie/MesSaleOrderMapper.xml new file mode 100644 index 00000000..0102cbab --- /dev/null +++ b/hw-modules/hw-jindie/src/main/resources/mapper/jindie/MesSaleOrderMapper.xml @@ -0,0 +1,215 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + + + + + + insert into mes_sale_order + + 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, + + + #{erpId}, + #{fentryId}, + #{saleorderCode}, + #{saleorderLinenumber}, + #{documentStatus}, + #{factoryId}, + #{prodlineId}, + #{materialId}, + #{materialCode}, + #{materialName}, + #{matkl}, + #{orderAmount}, + #{completeAmount}, + #{releaseQty}, + #{isRelease}, + #{approveDate}, + #{erpModifyDate}, + #{planDeliveryDate}, + #{beginDate}, + #{endDate}, + #{completeDate}, + #{isFlag}, + #{remark}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + + + + + update mes_sale_order + + erp_id = #{erpId}, + fentry_id = #{fentryId}, + saleorder_code = #{saleorderCode}, + saleorder_linenumber = #{saleorderLinenumber}, + document_status = #{documentStatus}, + factory_id = #{factoryId}, + prodline_id = #{prodlineId}, + material_id = #{materialId}, + material_code = #{materialCode}, + material_name = #{materialName}, + matkl = #{matkl}, + order_amount = #{orderAmount}, + complete_amount = #{completeAmount}, + release_qty = #{releaseQty}, + is_release = #{isRelease}, + approve_date = #{approveDate}, + erp_modify_date = #{erpModifyDate}, + plan_delivery_date = #{planDeliveryDate}, + begin_date = #{beginDate}, + end_date = #{endDate}, + complete_date = #{completeDate}, + is_flag = #{isFlag}, + remark = #{remark}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + + where sale_order_id = #{saleOrderId} + + + + delete + from mes_sale_order + where sale_order_id = #{saleOrderId} + + + + delete from mes_sale_order where sale_order_id in + + #{saleOrderId} + + + diff --git a/hw-modules/hw-job/pom.xml b/hw-modules/hw-job/pom.xml index 0fc1dd4e..27ee793c 100644 --- a/hw-modules/hw-job/pom.xml +++ b/hw-modules/hw-job/pom.xml @@ -89,6 +89,12 @@ 3.6.3 compile + + com.hw + hw-api-jindie + 3.6.3 + compile + diff --git a/hw-modules/hw-job/src/main/java/com/hw/job/task/RyTask.java b/hw-modules/hw-job/src/main/java/com/hw/job/task/RyTask.java index 474b074a..f1b5c8bd 100644 --- a/hw-modules/hw-job/src/main/java/com/hw/job/task/RyTask.java +++ b/hw-modules/hw-job/src/main/java/com/hw/job/task/RyTask.java @@ -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); } } diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesProductPlanDetailServiceImpl.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesProductPlanDetailServiceImpl.java index 420c242d..f2b01f64 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesProductPlanDetailServiceImpl.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesProductPlanDetailServiceImpl.java @@ -132,7 +132,9 @@ public class MesProductPlanDetailServiceImpl implements IMesProductPlanDetailSer MesProductPlanDetail queryProductPlanDetail = new MesProductPlanDetail(); queryProductPlanDetail.setPlanId(mesProductPlanDetailVo.getPlanId()); + //获取生产计划明细列表 List 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(","); diff --git a/hw-modules/hw-qms/src/main/java/com/hw/qms/controller/QmsQualityInstanceActivityController.java b/hw-modules/hw-qms/src/main/java/com/hw/qms/controller/QmsQualityInstanceActivityController.java new file mode 100644 index 00000000..8d82d82f --- /dev/null +++ b/hw-modules/hw-qms/src/main/java/com/hw/qms/controller/QmsQualityInstanceActivityController.java @@ -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 list = qmsQualityInstanceActivityService.selectQmsQualityInstanceActivityList(qmsQualityInstanceActivity); + return getDataTable(list); + } + /** + * 查询质检工单实例节点列表(状态不等于2) + */ + @RequiresPermissions("qms:qualityinstanceactivity:list") + @GetMapping("/list/noStatus") + public TableDataInfo noStatus(QmsQualityInstanceActivity qmsQualityInstanceActivity) + { + startPage(); + List 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 list = qmsQualityInstanceActivityService.selectQmsQualityInstanceActivityList(qmsQualityInstanceActivity); + ExcelUtil util = new ExcelUtil(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)); + } +} diff --git a/hw-modules/hw-qms/src/main/java/com/hw/qms/domain/QmsCheckInstanceFile.java b/hw-modules/hw-qms/src/main/java/com/hw/qms/domain/QmsCheckInstanceFile.java index 792d6495..8238d4f8 100644 --- a/hw-modules/hw-qms/src/main/java/com/hw/qms/domain/QmsCheckInstanceFile.java +++ b/hw-modules/hw-qms/src/main/java/com/hw/qms/domain/QmsCheckInstanceFile.java @@ -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; } diff --git a/hw-modules/hw-qms/src/main/java/com/hw/qms/domain/QmsQualityInstance.java b/hw-modules/hw-qms/src/main/java/com/hw/qms/domain/QmsQualityInstance.java index 1c3b11f8..a5c94bdc 100644 --- a/hw-modules/hw-qms/src/main/java/com/hw/qms/domain/QmsQualityInstance.java +++ b/hw-modules/hw-qms/src/main/java/com/hw/qms/domain/QmsQualityInstance.java @@ -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 fileUrls; + private Long stepsNum; + /** 质检工单实例节点信息 */ private List qmsQualityInstanceActivityList; - public void setQualityInstanceId(Long qualityInstanceId) + public Long getStepsNum() { + return stepsNum; + } + + public void setStepsNum(Long stepsNum) { + this.stepsNum = stepsNum; + } + + public List getFileUrls() { + return fileUrls; + } + + public void setFileUrls(List 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; } diff --git a/hw-modules/hw-qms/src/main/java/com/hw/qms/domain/QmsQualityInstanceActivity.java b/hw-modules/hw-qms/src/main/java/com/hw/qms/domain/QmsQualityInstanceActivity.java index 18143012..3ee0d775 100644 --- a/hw-modules/hw-qms/src/main/java/com/hw/qms/domain/QmsQualityInstanceActivity.java +++ b/hw-modules/hw-qms/src/main/java/com/hw/qms/domain/QmsQualityInstanceActivity.java @@ -77,6 +77,15 @@ public class QmsQualityInstanceActivity extends BaseEntity private List 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) { diff --git a/hw-modules/hw-qms/src/main/java/com/hw/qms/mapper/QmsCheckRuleDetailMapper.java b/hw-modules/hw-qms/src/main/java/com/hw/qms/mapper/QmsCheckRuleDetailMapper.java index 932a6606..62ad2729 100644 --- a/hw-modules/hw-qms/src/main/java/com/hw/qms/mapper/QmsCheckRuleDetailMapper.java +++ b/hw-modules/hw-qms/src/main/java/com/hw/qms/mapper/QmsCheckRuleDetailMapper.java @@ -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 checkRuleDetails); + + /** + * 通过规则id获取物料物料大类 + * + * */ + public Map getBaseMaterialCategoriesByQmsCheckRuleId(Long checkRuleId); + + public Map getMesBaseBarcodeInfoByBatchCode(String batchCode); + } diff --git a/hw-modules/hw-qms/src/main/java/com/hw/qms/mapper/QmsQualityInstanceActivityMapper.java b/hw-modules/hw-qms/src/main/java/com/hw/qms/mapper/QmsQualityInstanceActivityMapper.java index 168b1695..7ed6b4ec 100644 --- a/hw-modules/hw-qms/src/main/java/com/hw/qms/mapper/QmsQualityInstanceActivityMapper.java +++ b/hw-modules/hw-qms/src/main/java/com/hw/qms/mapper/QmsQualityInstanceActivityMapper.java @@ -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 selectQmsQualityInstanceActivityList(QmsQualityInstanceActivity qmsQualityInstanceActivity); + public List 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 qmsCheckInstanceFileList); - + /** * 通过质检工单实例节点主键删除质检文件信息 - * + * * @param instanceActivityId 质检工单实例节点ID * @return 结果 */ diff --git a/hw-modules/hw-qms/src/main/java/com/hw/qms/service/IQmsQualityInstanceActivityService.java b/hw-modules/hw-qms/src/main/java/com/hw/qms/service/IQmsQualityInstanceActivityService.java new file mode 100644 index 00000000..0796bfe5 --- /dev/null +++ b/hw-modules/hw-qms/src/main/java/com/hw/qms/service/IQmsQualityInstanceActivityService.java @@ -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 selectQmsQualityInstanceActivityList(QmsQualityInstanceActivity qmsQualityInstanceActivity); + + public List 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); +} diff --git a/hw-modules/hw-qms/src/main/java/com/hw/qms/service/impl/QmsQualityInstanceActivityServiceImpl.java b/hw-modules/hw-qms/src/main/java/com/hw/qms/service/impl/QmsQualityInstanceActivityServiceImpl.java new file mode 100644 index 00000000..98b9f319 --- /dev/null +++ b/hw-modules/hw-qms/src/main/java/com/hw/qms/service/impl/QmsQualityInstanceActivityServiceImpl.java @@ -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 selectQmsQualityInstanceActivityList(QmsQualityInstanceActivity qmsQualityInstanceActivity) + { + + return qmsQualityInstanceActivityMapper.selectQmsQualityInstanceActivityList(qmsQualityInstanceActivity); + } + + @Override + public List 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 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 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 qmsCheckInstanceFileList = qmsQualityInstanceActivity.getQmsCheckInstanceFileList(); + Long instanceActivityId = qmsQualityInstanceActivity.getInstanceActivityId(); + if (StringUtils.isNotNull(qmsCheckInstanceFileList)) + { + List list = new ArrayList(); + for (QmsCheckInstanceFile qmsCheckInstanceFile : qmsCheckInstanceFileList) + { + qmsCheckInstanceFile.setTargetId(instanceActivityId); + list.add(qmsCheckInstanceFile); + } + if (list.size() > 0) + { + qmsQualityInstanceActivityMapper.batchQmsCheckInstanceFile(list); + } + } + } +} diff --git a/hw-modules/hw-qms/src/main/java/com/hw/qms/service/impl/QmsQualityInstanceServiceImpl.java b/hw-modules/hw-qms/src/main/java/com/hw/qms/service/impl/QmsQualityInstanceServiceImpl.java index 6e8dbfa3..a9e5cf02 100644 --- a/hw-modules/hw-qms/src/main/java/com/hw/qms/service/impl/QmsQualityInstanceServiceImpl.java +++ b/hw-modules/hw-qms/src/main/java/com/hw/qms/service/impl/QmsQualityInstanceServiceImpl.java @@ -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 materialMap = qmsCheckRuleDetailMapper.getBaseMaterialCategoriesByQmsCheckRuleId(qmsQualityInstance.getCheckRuleId()); + // 根据检验此批获取出生产计划、销售订单、采购订单编号 + Map 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 qmsQualityInstanceActivities = new ArrayList(); + for (int i=0;i + + + + diff --git a/hw-modules/hw-qms/src/main/resources/mapper/qms/QmsQualityInstanceActivityMapper.xml b/hw-modules/hw-qms/src/main/resources/mapper/qms/QmsQualityInstanceActivityMapper.xml index ec3fe365..712376c2 100644 --- a/hw-modules/hw-qms/src/main/resources/mapper/qms/QmsQualityInstanceActivityMapper.xml +++ b/hw-modules/hw-qms/src/main/resources/mapper/qms/QmsQualityInstanceActivityMapper.xml @@ -3,7 +3,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + @@ -39,7 +39,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - + - + insert into qms_quality_instance_activity @@ -125,14 +125,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - delete from qms_quality_instance_activity where instance_activity_id in + delete from qms_quality_instance_activity where instance_activity_id in #{instanceActivityId} - + - delete from qms_check_instance_file where target_id in + delete from qms_check_instance_file where target_id in #{targetId} @@ -148,4 +148,23 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ( #{item.checkInstanceFileId}, #{item.targetType}, #{item.targetId}, #{item.faultFile}) - \ No newline at end of file + + + diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsRawInstockDetail.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsRawInstockDetail.java index b38ec10a..4c2fea01 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsRawInstockDetail.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsRawInstockDetail.java @@ -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; -// -// /** 入库方式( 0:PC入库 1:手持入库 2:AGV入库 ) */ -// @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; + + /** 入库方式( 0:PC入库 1:手持入库 2:AGV入库 ) */ + @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(); + } +} diff --git a/hw-ui/src/api/qms/checkresult.js b/hw-ui/src/api/qms/checkresult.js new file mode 100644 index 00000000..64864f38 --- /dev/null +++ b/hw-ui/src/api/qms/checkresult.js @@ -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' + }) +} diff --git a/hw-ui/src/api/qms/checkresultdetail.js b/hw-ui/src/api/qms/checkresultdetail.js new file mode 100644 index 00000000..14ff84d8 --- /dev/null +++ b/hw-ui/src/api/qms/checkresultdetail.js @@ -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' + }) +} diff --git a/hw-ui/src/api/qms/qualityinstance.js b/hw-ui/src/api/qms/qualityinstance.js new file mode 100644 index 00000000..074a1eeb --- /dev/null +++ b/hw-ui/src/api/qms/qualityinstance.js @@ -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' + }) +} diff --git a/hw-ui/src/api/qms/qualityinstanceactivity.js b/hw-ui/src/api/qms/qualityinstanceactivity.js new file mode 100644 index 00000000..d8f5d1f1 --- /dev/null +++ b/hw-ui/src/api/qms/qualityinstanceactivity.js @@ -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' + }) +} diff --git a/hw-ui/src/router/index.js b/hw-ui/src/router/index.js index 5e7509d6..9fa0d433 100644 --- a/hw-ui/src/router/index.js +++ b/hw-ui/src/router/index.js @@ -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" }, + }, + ], + }, ] diff --git a/hw-ui/src/views/mes/productplan/editProductPlan.vue b/hw-ui/src/views/mes/productplan/editProductPlan.vue index 583a257c..c1862252 100644 --- a/hw-ui/src/views/mes/productplan/editProductPlan.vue +++ b/hw-ui/src/views/mes/productplan/editProductPlan.vue @@ -36,7 +36,7 @@ :row-class-name="rowMesProductPlanIndex" @selection-change="handleMesProductPlanSelectionChange"> - + diff --git a/hw-ui/src/views/qms/base/checkresult/index.vue b/hw-ui/src/views/qms/base/checkresult/index.vue new file mode 100644 index 00000000..22c521c9 --- /dev/null +++ b/hw-ui/src/views/qms/base/checkresult/index.vue @@ -0,0 +1,445 @@ + + + diff --git a/hw-ui/src/views/qms/base/checkresultdetail/index.vue b/hw-ui/src/views/qms/base/checkresultdetail/index.vue new file mode 100644 index 00000000..d00e9328 --- /dev/null +++ b/hw-ui/src/views/qms/base/checkresultdetail/index.vue @@ -0,0 +1,451 @@ + + + diff --git a/hw-ui/src/views/qms/base/qualityinstance/index.vue b/hw-ui/src/views/qms/base/qualityinstance/index.vue new file mode 100644 index 00000000..bd85f246 --- /dev/null +++ b/hw-ui/src/views/qms/base/qualityinstance/index.vue @@ -0,0 +1,528 @@ + + + diff --git a/hw-ui/src/views/qms/base/qualityinstanceactivity/index.vue b/hw-ui/src/views/qms/base/qualityinstanceactivity/index.vue new file mode 100644 index 00000000..72bfa287 --- /dev/null +++ b/hw-ui/src/views/qms/base/qualityinstanceactivity/index.vue @@ -0,0 +1,452 @@ + + + diff --git a/pom.xml b/pom.xml index 3f9e89b7..67c133b4 100644 --- a/pom.xml +++ b/pom.xml @@ -251,6 +251,7 @@ hw-modules hw-api hw-common + hw-api/hw-api-jindie pom