From 3c67bcc5fa3eb973a9f1c70e347934a4a4f12d10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=81=92=E6=9D=B0?= <2658502433@qq.com> Date: Tue, 19 Dec 2023 09:39:48 +0800 Subject: [PATCH 01/25] =?UTF-8?q?=E6=89=93=E5=8D=B0=E9=A2=86=E6=96=99?= =?UTF-8?q?=E5=8D=95=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- JCO20231213_172552967.trc | 91 +++++++++++++++++++ dev_jco_rfc.trc | 74 +++++++++++++++ .../src/main/resources/bootstrap.yml | 4 +- 3 files changed, 167 insertions(+), 2 deletions(-) create mode 100644 JCO20231213_172552967.trc create mode 100644 dev_jco_rfc.trc diff --git a/JCO20231213_172552967.trc b/JCO20231213_172552967.trc new file mode 100644 index 000000000..d60026e46 --- /dev/null +++ b/JCO20231213_172552967.trc @@ -0,0 +1,91 @@ +main [17:25:52:968]: ******************** Wed Dec 13 17:25:52 CST 2023 *************************** +main [17:25:52:968]: SAP Java Connector (JCo) runtime information +main [17:25:52:968]: Java Runtime: +main [17:25:52:968]: Operating System : Windows 11 10.0 for amd64 +main [17:25:52:968]: Java VM : 1.8.0_321 Oracle Corporation +main [17:25:52:968]: Java Codepage : UTF8 +main [17:25:52:968]: Versions: +main [17:25:52:968]: JCo API : 3.0.8 (2011-11-28) +main [17:25:52:968]: JCo middleware name : JavaRfc +main [17:25:52:969]: JCo middleware : 2.2.7 +main [17:25:52:969]: JCo middleware native : 721.619 +main [17:25:52:969]: JCo library : D:\KHDF\op-modules\op-sap\sapjco3.dll +main [17:25:52:969]: +main [17:25:52:969]: ******************** Configuration *************************** + jco.trace_level = 1 + jco.trace_path = . + + +main [17:25:52:969]: ********************************************************************* +main [17:25:52:969]: Exception while setting system property to JCo property: jco.cpic_maxconv=202 com.sap.conn.jco.JCoRuntimeException: (131) JCO_ERROR_ILLEGAL_ARGUMENT: Value of property jco.cpic_maxconv causes null + at com.sap.conn.jco.rt.JCoRuntime.setPropertyValue(JCoRuntime.java:888) + at com.sap.conn.jco.rt.DefaultJCoRuntime.setPropertyValue(DefaultJCoRuntime.java:577) + at com.sap.conn.jco.rt.JCoRuntime.setSystemProperty(JCoRuntime.java:149) + at com.sap.conn.jco.rt.DefaultJCoRuntime.readSystemProperties(DefaultJCoRuntime.java:100) + at com.sap.conn.jco.rt.JCoRuntimeFactory.(JCoRuntimeFactory.java:24) + at java.lang.Class.forName0(Native Method) + at java.lang.Class.forName(Class.java:264) + at com.sap.conn.jco.JCo.createJCo(JCo.java:52) + at com.sap.conn.jco.JCo.(JCo.java:26) + at com.sap.conn.jco.JCoDestinationManager.getDestination(JCoDestinationManager.java:77) + at com.op.sap.util.SAPConnUtils.connect(SAPConnUtils.java:24) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.lang.reflect.Method.invoke(Method.java:498) + at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154) + at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:653) + at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:486) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1352) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1195) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1391) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1311) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:657) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:640) + at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1431) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:619) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1391) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1311) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:657) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:640) + at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1431) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:619) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:955) + at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:147) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:731) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:408) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:307) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1303) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1292) + at com.op.sap.SapApplication.main(SapApplication.java:20) +Caused by: java.lang.NullPointerException + at com.sap.conn.rfc.engine.Trc.criticalTrace(Trc.java:472) + at com.sap.conn.rfc.driver.CpicDriver.setCpicMaxConv(CpicDriver.java:1061) + at com.sap.conn.rfc.engine.DefaultRfcRuntime.setCpicMaxConv(DefaultRfcRuntime.java:113) + at com.sap.conn.jco.rt.JCoRuntime.setPropertyValue(JCoRuntime.java:873) + ... 63 more + diff --git a/dev_jco_rfc.trc b/dev_jco_rfc.trc new file mode 100644 index 000000000..443ae4f27 --- /dev/null +++ b/dev_jco_rfc.trc @@ -0,0 +1,74 @@ + +**** Error file opened at 20231213 172552 China Standard Time Rel 3.0.8 (2011-11-28) [721.619] +Info: >Wed Dec 13 17:25:52,970< [JCoAPI] Exception while setting system property to JCo property: jco.cpic_maxconv=202 com.sap.conn.jco.JCoRuntimeException: (131) JCO_ERROR_ILLEGAL_ARGUMENT: Value of property jco.cpic_maxconv causes null + at com.sap.conn.jco.rt.JCoRuntime.setPropertyValue(JCoRuntime.java:888) + at com.sap.conn.jco.rt.DefaultJCoRuntime.setPropertyValue(DefaultJCoRuntime.java:577) + at com.sap.conn.jco.rt.JCoRuntime.setSystemProperty(JCoRuntime.java:149) + at com.sap.conn.jco.rt.DefaultJCoRuntime.readSystemProperties(DefaultJCoRuntime.java:100) + at com.sap.conn.jco.rt.JCoRuntimeFactory.(JCoRuntimeFactory.java:24) + at java.lang.Class.forName0(Native Method) + at java.lang.Class.forName(Class.java:264) + at com.sap.conn.jco.JCo.createJCo(JCo.java:52) + at com.sap.conn.jco.JCo.(JCo.java:26) + at com.sap.conn.jco.JCoDestinationManager.getDestination(JCoDestinationManager.java:77) + at com.op.sap.util.SAPConnUtils.connect(SAPConnUtils.java:24) + at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) + at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) + at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) + at java.lang.reflect.Method.invoke(Method.java:498) + at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154) + at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:653) + at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:486) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1352) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1195) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1391) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1311) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:657) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:640) + at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1431) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:619) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1391) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1311) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:657) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:640) + at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119) + at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1431) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:619) + at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) + at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) + at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) + at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) + at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) + at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:955) + at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918) + at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) + at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:147) + at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:731) + at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:408) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:307) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1303) + at org.springframework.boot.SpringApplication.run(SpringApplication.java:1292) + at com.op.sap.SapApplication.main(SapApplication.java:20) +Caused by: java.lang.NullPointerException + at com.sap.conn.rfc.engine.Trc.criticalTrace(Trc.java:472) + at com.sap.conn.rfc.driver.CpicDriver.setCpicMaxConv(CpicDriver.java:1061) + at com.sap.conn.rfc.engine.DefaultRfcRuntime.setCpicMaxConv(DefaultRfcRuntime.java:113) + at com.sap.conn.jco.rt.JCoRuntime.setPropertyValue(JCoRuntime.java:873) + ... 63 more + diff --git a/op-modules/op-quality/src/main/resources/bootstrap.yml b/op-modules/op-quality/src/main/resources/bootstrap.yml index b73385328..bcce7b90f 100644 --- a/op-modules/op-quality/src/main/resources/bootstrap.yml +++ b/op-modules/op-quality/src/main/resources/bootstrap.yml @@ -14,12 +14,12 @@ spring: nacos: discovery: namespace: lanju-op - group: zxl + group: chj # 服务注册地址 server-addr: 175.27.215.92:8848 config: namespace: lanju-op - group: zxl + group: chj # 服务注册地址 server-addr: 175.27.215.92:8848 # 配置文件格式 From 0ccb32d068c93b86ad303c51ee0da65084426b93 Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Thu, 21 Dec 2023 10:11:17 +0800 Subject: [PATCH 02/25] =?UTF-8?q?=E8=B4=A8=E9=87=8F=E8=B4=A8=E6=A3=80qc=5F?= =?UTF-8?q?status=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../quality/service/impl/QcCheckTaskIncomeServiceImpl.java | 6 +++--- .../resources/mapper/quality/QcCheckUnqualifiedMapper.xml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java index f56e54c4a..60bb70ec9 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java @@ -285,8 +285,8 @@ public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService { n = qcCheckTaskProduceMapper.updateQcCheckTaskProduce(qcCheckTaskProduce); - /**pro_order_workorder-->status->w5**/ - qcCheckTaskIncome.setStatus("w5"); + /**pro_order_workorder-->qc_status->2**/ + qcCheckTaskIncome.setStatus("2"); qcCheckUnqualifiedMapper.updateWorkOrderStatus(qcCheckTaskIncome); }else if("product".equals(qcCheckTaskIncome.getTypeCode())){ QcCheckTaskWarehousing warehousing = new QcCheckTaskWarehousing(); @@ -414,7 +414,7 @@ public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService { qcCheckUnqualifiedMapper.updateQualityStatus(qcCheckTaskIncome); }else if("produce".equals(qcCheckTaskIncome.getTypeCode())){ /**pro_order_workorder-->status->w5**/ - qcCheckTaskIncome.setStatus("w5"); + qcCheckTaskIncome.setStatus("2"); qcCheckUnqualifiedMapper.updateWorkOrderStatus(qcCheckTaskIncome); }else if("product".equals(qcCheckTaskIncome.getTypeCode())){ diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckUnqualifiedMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckUnqualifiedMapper.xml index 12c5f80f1..ffa96336b 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckUnqualifiedMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckUnqualifiedMapper.xml @@ -187,7 +187,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where order_no = #{orderNo} - update pro_order_workorder set status = #{status} where workorder_code_sap = #{orderNo} + update pro_order_workorder set qc_status = #{status} where workorder_code_sap = #{orderNo} From e9528b28dac32a8748f7c05bd223c60a73b51b67 Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Thu, 21 Dec 2023 10:25:43 +0800 Subject: [PATCH 03/25] =?UTF-8?q?=E8=B4=A8=E9=87=8F=E8=B4=A8=E6=A3=80qc=5F?= =?UTF-8?q?status=E6=B7=BB=E5=8A=A0=E6=89=B9=E6=AC=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/op/quality/mapper/QcCheckUnqualifiedMapper.java | 2 +- .../service/impl/QcCheckTaskIncomeServiceImpl.java | 8 ++++---- .../resources/mapper/quality/QcCheckUnqualifiedMapper.xml | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckUnqualifiedMapper.java b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckUnqualifiedMapper.java index f39cdaeb5..7d8aac35a 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckUnqualifiedMapper.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckUnqualifiedMapper.java @@ -79,5 +79,5 @@ public interface QcCheckUnqualifiedMapper { List getWorkOrder(QcCheckTaskIncome qcCheckTaskIncome); - int updateWorkOrderStatus(QcCheckTaskIncome qcCheckTaskIncome); + int updateWorkOrderBatchStatus(QcCheckTaskIncome qcCheckTaskIncome); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java index 60bb70ec9..216c7d435 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java @@ -285,9 +285,9 @@ public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService { n = qcCheckTaskProduceMapper.updateQcCheckTaskProduce(qcCheckTaskProduce); - /**pro_order_workorder-->qc_status->2**/ + /**pro_order_workorder_batch-->qc_status->2**/ qcCheckTaskIncome.setStatus("2"); - qcCheckUnqualifiedMapper.updateWorkOrderStatus(qcCheckTaskIncome); + qcCheckUnqualifiedMapper.updateWorkOrderBatchStatus(qcCheckTaskIncome); }else if("product".equals(qcCheckTaskIncome.getTypeCode())){ QcCheckTaskWarehousing warehousing = new QcCheckTaskWarehousing(); warehousing.setCheckStatus("2"); @@ -413,9 +413,9 @@ public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService { qcCheckTaskIncome.setCheckResult(result.equals("Y")?"1":"2"); qcCheckUnqualifiedMapper.updateQualityStatus(qcCheckTaskIncome); }else if("produce".equals(qcCheckTaskIncome.getTypeCode())){ - /**pro_order_workorder-->status->w5**/ + /**pro_order_workorder_batch-->status->w5**/ qcCheckTaskIncome.setStatus("2"); - qcCheckUnqualifiedMapper.updateWorkOrderStatus(qcCheckTaskIncome); + qcCheckUnqualifiedMapper.updateWorkOrderBatchStatus(qcCheckTaskIncome); }else if("product".equals(qcCheckTaskIncome.getTypeCode())){ } diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckUnqualifiedMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckUnqualifiedMapper.xml index ffa96336b..3001405b3 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckUnqualifiedMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckUnqualifiedMapper.xml @@ -186,8 +186,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update wms_raw_order_in set quality_status = #{checkResult} where order_no = #{orderNo} - - update pro_order_workorder set qc_status = #{status} where workorder_code_sap = #{orderNo} + + update pro_order_workorder_batch set qc_stauts = #{status} where batch_code = #{incomeBatchNo} From 245301f4f868ac77d99834d8e89cd9a7426d0800 Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Thu, 21 Dec 2023 10:31:05 +0800 Subject: [PATCH 04/25] =?UTF-8?q?=E8=B4=A8=E9=87=8F=E8=B4=A8=E6=A3=80qc=5F?= =?UTF-8?q?status=E6=B7=BB=E5=8A=A0=E6=89=B9=E6=AC=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/resources/mapper/quality/QcCheckUnqualifiedMapper.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckUnqualifiedMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckUnqualifiedMapper.xml index 3001405b3..6696008bb 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckUnqualifiedMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckUnqualifiedMapper.xml @@ -187,7 +187,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where order_no = #{orderNo} - update pro_order_workorder_batch set qc_stauts = #{status} where batch_code = #{incomeBatchNo} + update pro_order_workorder_batch set qc_status = #{status} where batch_code = #{incomeBatchNo} From f1f895ee2081534d267b6546293c5f5a687a10d9 Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Thu, 21 Dec 2023 15:57:50 +0800 Subject: [PATCH 05/25] =?UTF-8?q?=E8=B4=A8=E9=87=8F=E8=B4=A8=E6=A3=80+?= =?UTF-8?q?=E5=B7=A5=E5=8D=95=E7=AE=A1=E7=90=86=E7=95=8C=E9=9D=A2=E5=8A=A0?= =?UTF-8?q?=E5=85=A5=E6=AF=8D=E5=8D=95=E4=BF=A1=E6=81=AF+=E9=A6=96?= =?UTF-8?q?=E9=A1=B5=E5=9B=BE=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/op/plan/domain/ProOrderWorkorder.java | 34 ++++++++++- .../plan/mapper/ProOrderWorkorderMapper.java | 1 + .../mapper/plan/ProOrderWorkorderMapper.xml | 61 ++++++++++--------- .../controller/QcInterfaceController.java | 7 +++ .../com/op/quality/domain/QcInterface.java | 27 ++++++++ .../com/op/quality/domain/QcLineChartDto.java | 39 ++++++++++++ .../quality/domain/QcLineChartSeriesDto.java | 48 +++++++++++++++ .../op/quality/mapper/QcInterfaceMapper.java | 4 ++ .../quality/service/IQcInterfaceService.java | 3 + .../impl/QcCheckTaskIncomeServiceImpl.java | 9 ++- .../service/impl/QcInterfaceServiceImpl.java | 52 +++++++++++++++- .../mapper/quality/QcCheckTypeMapper.xml | 6 +- .../mapper/quality/QcInterfaceMapper.xml | 19 ++++++ 13 files changed, 268 insertions(+), 42 deletions(-) create mode 100644 op-modules/op-quality/src/main/java/com/op/quality/domain/QcLineChartDto.java create mode 100644 op-modules/op-quality/src/main/java/com/op/quality/domain/QcLineChartSeriesDto.java diff --git a/op-modules/op-plan/src/main/java/com/op/plan/domain/ProOrderWorkorder.java b/op-modules/op-plan/src/main/java/com/op/plan/domain/ProOrderWorkorder.java index 01c5dba55..0a7b37f12 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/domain/ProOrderWorkorder.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/domain/ProOrderWorkorder.java @@ -33,7 +33,7 @@ public class ProOrderWorkorder extends TreeEntity { private String orderId; /** 订单编码 */ - @Excel(name = "子订单编码") + @Excel(name = "子订单旧编码") private String orderCode; /** 产品ID */ @@ -211,7 +211,7 @@ public class ProOrderWorkorder extends TreeEntity { } private String prepareId; - + @Excel(name = "子订单新编号") private String workorderCodeSap; /** 批次号 */ @@ -219,9 +219,39 @@ public class ProOrderWorkorder extends TreeEntity { private List batchNumList; private List batchInfo; + private String pproductCode; + @Excel(name = "母产品名称") + private String pproductName; + @Excel(name = "母订单新编号") + private String pworkorderCodeSap; + /** $column.columnComment */ private String factoryCode; + public String getPproductCode() { + return pproductCode; + } + + public void setPproductCode(String pproductCode) { + this.pproductCode = pproductCode; + } + + public String getPproductName() { + return pproductName; + } + + public void setPproductName(String pproductName) { + this.pproductName = pproductName; + } + + public String getPworkorderCodeSap() { + return pworkorderCodeSap; + } + + public void setPworkorderCodeSap(String pworkorderCodeSap) { + this.pworkorderCodeSap = pworkorderCodeSap; + } + public List getBatchInfo() { return batchInfo; } diff --git a/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProOrderWorkorderMapper.java b/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProOrderWorkorderMapper.java index 16a3d725c..421ad7ff2 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProOrderWorkorderMapper.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProOrderWorkorderMapper.java @@ -166,5 +166,6 @@ public interface ProOrderWorkorderMapper { int updateWhiteWorkOrder(ProOrderWorkorder whiteOrder); ProOrderWorkorder getPWorkOrder(ProOrderWorkorder whiteOrder); + } diff --git a/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml b/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml index 88fe27ae9..853fc9abf 100644 --- a/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml +++ b/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml @@ -38,6 +38,11 @@ + + + + + @@ -49,37 +54,33 @@ diff --git a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcInterfaceController.java b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcInterfaceController.java index b76291997..0619f7b05 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcInterfaceController.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcInterfaceController.java @@ -3,6 +3,7 @@ package com.op.quality.controller; import com.op.common.core.utils.StringUtils; import com.op.quality.domain.QcCheckType; import com.op.quality.domain.QcInterface; +import com.op.quality.domain.QcLineChartDto; import com.op.quality.service.IQcInterfaceService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -126,4 +127,10 @@ public class QcInterfaceController { public List getMonthOfYearContrast(@RequestBody QcInterface qcInterface) { return qcInterfaceService.getMonthOfYearContrast(qcInterface); } + + @GetMapping("/getLineQcData") + public QcLineChartDto getLineQcData(QcInterface qcInterface) { + return qcInterfaceService.getLineQcData(qcInterface); + } + } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcInterface.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcInterface.java index f10f74a76..b68ed1a51 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcInterface.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcInterface.java @@ -47,6 +47,33 @@ public class QcInterface extends BaseEntity { private List data; private String reasons; private String typeCode; + private String productDateStart; + private String ProductDateEnd; + private String nameDate; + + public String getNameDate() { + return nameDate; + } + + public void setNameDate(String nameDate) { + this.nameDate = nameDate; + } + + public String getProductDateStart() { + return productDateStart; + } + + public void setProductDateStart(String productDateStart) { + this.productDateStart = productDateStart; + } + + public String getProductDateEnd() { + return ProductDateEnd; + } + + public void setProductDateEnd(String productDateEnd) { + ProductDateEnd = productDateEnd; + } public String getTypeCode() { return typeCode; diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcLineChartDto.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcLineChartDto.java new file mode 100644 index 000000000..554b42269 --- /dev/null +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcLineChartDto.java @@ -0,0 +1,39 @@ +package com.op.quality.domain; + +import java.util.List; + +/** + * echart图返回数据 + * + * @author Open Platform + * @date 2023-07-03 + */ +public class QcLineChartDto { + private List seriesNames; + private List xAxisDatas; + private List seriesDatas; + + public List getSeriesNames() { + return seriesNames; + } + + public void setSeriesNames(List seriesNames) { + this.seriesNames = seriesNames; + } + + public List getxAxisDatas() { + return xAxisDatas; + } + + public void setxAxisDatas(List xAxisDatas) { + this.xAxisDatas = xAxisDatas; + } + + public List getSeriesDatas() { + return seriesDatas; + } + + public void setSeriesDatas(List seriesDatas) { + this.seriesDatas = seriesDatas; + } +} diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcLineChartSeriesDto.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcLineChartSeriesDto.java new file mode 100644 index 000000000..2dce8f241 --- /dev/null +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcLineChartSeriesDto.java @@ -0,0 +1,48 @@ +package com.op.quality.domain; + +import java.util.List; + +/** + * echart图返回数据 + * + * @author Open Platform + * @date 2023-07-03 + */ +public class QcLineChartSeriesDto { + private String name; + private String type; + private String stack; + private List data; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getStack() { + return stack; + } + + public void setStack(String stack) { + this.stack = stack; + } + + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } +} diff --git a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcInterfaceMapper.java b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcInterfaceMapper.java index d00c0ad8d..8c7d9d927 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcInterfaceMapper.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcInterfaceMapper.java @@ -41,4 +41,8 @@ public interface QcInterfaceMapper { Map getMothNoOkNum(QcInterface qcInterface); List getReasons(QcInterface dto); + + List getLineChartsNames(QcInterface qcInterface); + @MapKey("nameDate") + Map getLineChartsDatas(QcInterface qcInterface); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcInterfaceService.java b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcInterfaceService.java index 6676f0075..d50e1c97e 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcInterfaceService.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcInterfaceService.java @@ -3,6 +3,7 @@ package com.op.quality.service; import com.op.quality.domain.QcCheckType; import com.op.quality.domain.QcInterface; +import com.op.quality.domain.QcLineChartDto; import java.util.List; import java.util.Map; @@ -35,4 +36,6 @@ public interface IQcInterfaceService { QcInterface getLineDayNoOk(QcInterface qcInterface); List getMonthOfYearContrast(QcInterface qcInterface); + + QcLineChartDto getLineQcData(QcInterface qcInterface); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java index 216c7d435..767fffdf8 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java @@ -386,13 +386,16 @@ public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService { qcCheckTask.setCheckResult(result);//检验结果Y合格 N不合格 BigDecimal noOkQquality = new BigDecimal("0"); if(qcCheckTaskIncome.getaNoOkquality()!=null){ - noOkQquality.add(qcCheckTaskIncome.getaNoOkquality()); + noOkQquality = noOkQquality.add(qcCheckTaskIncome.getaNoOkquality()); + qcCheckTask.setaNoOkquality(qcCheckTaskIncome.getaNoOkquality()); } if(qcCheckTaskIncome.getbNoOkquality()!=null){ - noOkQquality.add(qcCheckTaskIncome.getbNoOkquality()); + noOkQquality = noOkQquality.add(qcCheckTaskIncome.getbNoOkquality()); + qcCheckTask.setbNoOkquality(qcCheckTaskIncome.getbNoOkquality()); } if(qcCheckTaskIncome.getcNoOkquality()!=null){ - noOkQquality.add(qcCheckTaskIncome.getcNoOkquality()); + noOkQquality = noOkQquality.add(qcCheckTaskIncome.getcNoOkquality()); + qcCheckTask.setcNoOkquality(qcCheckTaskIncome.getcNoOkquality()); } if(qcCheckTask.getNoOkQuality()==null){ qcCheckTask.setNoOkQuality(noOkQquality); diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcInterfaceServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcInterfaceServiceImpl.java index 554e08055..5971c5c51 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcInterfaceServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcInterfaceServiceImpl.java @@ -1,10 +1,9 @@ package com.op.quality.service.impl; +import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder; import com.op.common.core.utils.DateUtils; -import com.op.quality.domain.QcCheckTaskDetail; -import com.op.quality.domain.QcInterface; -import com.op.quality.domain.QcProCheck; +import com.op.quality.domain.*; import com.op.quality.mapper.QcInterfaceMapper; import com.op.quality.service.IQcInterfaceService; import org.apache.commons.lang.StringUtils; @@ -319,6 +318,53 @@ public class QcInterfaceServiceImpl implements IQcInterfaceService { return dtos; } + @Override + @DS("#header.poolName") + public QcLineChartDto getLineQcData(QcInterface qcInterface) { + QcLineChartDto lineChartDto = new QcLineChartDto(); + + Calendar calendar = Calendar.getInstance(); + Date now = calendar.getTime(); + calendar.set(Calendar.DAY_OF_MONTH, 1); + Date firstDayOfMonth = calendar.getTime(); + DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + String startTime = dateFormat.format(firstDayOfMonth); + String endTime = dateFormat.format(now); + qcInterface.setProductDateStart(startTime); + qcInterface.setProductDateEnd(endTime); + //图例名称 + List seriesNames = qcInterfaceMapper.getLineChartsNames(qcInterface); + lineChartDto.setSeriesNames(seriesNames); + //日期名称数组 + List xAxisDatas = getDays(startTime,endTime); + lineChartDto.setxAxisDatas(xAxisDatas); + Map productdatas = qcInterfaceMapper.getLineChartsDatas(qcInterface); + //值 + List seriesDatas = new ArrayList<>(); + QcLineChartSeriesDto lineChartSeriesDto = null; + for(String productName:seriesNames){ + lineChartSeriesDto = new QcLineChartSeriesDto(); + lineChartSeriesDto.setName(productName); + lineChartSeriesDto.setType("line"); + List datas = new ArrayList<>(); + for(String dayStr:xAxisDatas) { + QcInterface data0 = productdatas.get(productName + dayStr); + if (data0 != null) { + BigDecimal rate = new BigDecimal(data0.getNoOkQuality()) + .multiply(new BigDecimal(100)) + .divide(new BigDecimal(data0.getQuality()),2,BigDecimal.ROUND_HALF_UP); + datas.add(rate.toString()); + } else { + datas.add("0"); + } + } + lineChartSeriesDto.setData(datas); + seriesDatas.add(lineChartSeriesDto); + } + lineChartDto.setSeriesDatas(seriesDatas); + return lineChartDto; + } + /**两个日期之间的所有日期**/ public static List getDays(String startTime,String endTime) { diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTypeMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTypeMapper.xml index ac85dcb58..298e7dfc1 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTypeMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTypeMapper.xml @@ -48,8 +48,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" '检验任务' attr1 from qc_check_task qct left join qc_check_type qc on qct.check_type = qc.order_code - left join qc_user_material qum on qum.material_code = qct.material_code - where qct.check_status = '0' and qum.user_code = #{checkManCode} + where qct.check_status = '0' and qct.check_man_code = #{checkManCode} group by qct.check_type,qc.check_name union all select '','', @@ -57,8 +56,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" '不合格处理' attr1 from qc_check_unqualified qcu left join qc_check_task qct on qcu.task_id = qct.record_id - left join qc_user_material qum on qum.material_code = qct.material_code - where qcu.status != '2' and qum.user_code = #{checkManCode} + where qcu.status != '2' and qct.check_man_code = #{checkManCode} insert into qc_check_type diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcInterfaceMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcInterfaceMapper.xml index 6f0b51af1..edad5b1b3 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcInterfaceMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcInterfaceMapper.xml @@ -241,4 +241,23 @@ where belong_to = #{recordId} and status = 'N' and del_flag='0' + + From f5060ed72cb5bf73b1507d6b8ff8563dcc9e6cbf Mon Sep 17 00:00:00 2001 From: wws <18630710203@163.com> Date: Thu, 21 Dec 2023 17:51:45 +0800 Subject: [PATCH 06/25] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E8=BF=90=E8=A1=8C?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=E5=B9=B4=E5=A4=87=E4=BB=BD=E5=AE=9A=E6=97=B6?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../op/system/api/RemoteDeviceService.java | 3 + .../factory/RemoteDeviceFallbackFactory.java | 5 ++ .../controller/DeviceTaskController.java | 13 ++++ .../op/device/mapper/EquOperationMapper.java | 15 +++- .../op/device/service/IDeviceTaskService.java | 2 + .../service/impl/DeviceTaskServiceImpl.java | 70 ++++++++++++++++++- .../mapper/device/EquOperationMapper.xml | 25 +++++++ .../src/main/java/com/op/job/task/RyTask.java | 6 ++ 8 files changed, 137 insertions(+), 2 deletions(-) diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/RemoteDeviceService.java b/op-api/op-api-system/src/main/java/com/op/system/api/RemoteDeviceService.java index 721ae6a8d..bcda87193 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/RemoteDeviceService.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/RemoteDeviceService.java @@ -30,4 +30,7 @@ public interface RemoteDeviceService { @PostMapping("/deviceTask/createEquipmentOperationTask") public R createEquipmentOperationTask(); + + @PostMapping("/deviceTask/equipmentBKTask") + public R equipmentBKTask(); } diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteDeviceFallbackFactory.java b/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteDeviceFallbackFactory.java index d46844dab..9868e0fb3 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteDeviceFallbackFactory.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteDeviceFallbackFactory.java @@ -42,6 +42,11 @@ public class RemoteDeviceFallbackFactory implements FallbackFactory>> dateSources0 = remoteUserService.getPoolNameList(sysUser); + List> dateSources = dateSources0.getData(); + ExecutorService executorService = new ThreadPoolExecutor( + dateSources.size(), + dateSources.size(), + 0L, TimeUnit.MILLISECONDS, + new LinkedBlockingQueue()); + + try { + dateSources.forEach(dateSource -> { + logger.info("++++++++++++" + dateSource.get("poolName") + "++++设备运行记录数据库备份开始++++++++++"); + Runnable run = () -> backupEquipmentOperation(dateSource.get("poolName")); + executorService.execute(run); + }); + } catch (Exception e) { + logger.error("service == dataClearTask == exception", e); + return error("service == dataClearTask == exception"); + } finally { + executorService.shutdown(); + } + + return success(); + } + public void createSpotCheckPlanFunc(String poolName){ DynamicDataSourceContextHolder.push(poolName);// 这是数据源的key /**equ_plan equ_plan_equ**/ @@ -431,7 +465,7 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService { operation.setCreateTime(DateUtils.getNowDate()); } - int batchSize = 200;// 批次数量 + int batchSize = 100;// 批次数量 // 分批次处理 int batchCount = (operationList.size() + batchSize - 1)/batchSize;// 计算批次数量 @@ -450,6 +484,40 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService { } + private void backupEquipmentOperation(String poolName) { + DynamicDataSourceContextHolder.push(poolName);// 这是数据源的key + // 校验当前YEAR-2是否备份过数据 + EquOperation check = equOperationMapper.checkBackupOperation(); + if (check == null) { + // 获取插入数量 + int insertNum = equOperationMapper.getBackupOperationNum(); + int insertSize = 100;// 新增批次数量 + + // 分批次备份 + int batchCount = (insertNum + insertSize - 1)/insertSize;// 计算批次数量 + for (int i = 0;i < batchCount; i++) { + int startIndex = i * insertSize;// 索引开始值 + int endIndex = Math.min((i + 1)*insertSize,insertNum);// 索引结束值 + + // 备份至数据库 + int num = equOperationMapper.backupOperation(startIndex,insertSize); + + System.out.println("数据源:"+poolName+"--->"+"第"+(i+1)+"轮备份"+"开始索引:"+startIndex+"________结束索引:"+endIndex+"________成功插入数量:"+num); + } + + // 删除源数据库数据 + int delSize = 100;// 删除批次数量 + for (int i = 0; i < insertNum/delSize+1; i++) { + // 在源数据库中删除 + int num = equOperationMapper.deleteOperation(delSize); + System.out.println("数据源:"+poolName+"--->"+"第"+(i+1)+"轮删除"+"------>成功删除数量:"+num); + } + + }else { + System.out.println("数据源:"+poolName+"---->"+"年份:"+( LocalDate.now().getYear()-2) +"--->已备份"); + } + } + public static void main(String[] args) { int batchSize = 200;// 批次数量 diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquOperationMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquOperationMapper.xml index 04a90d782..f47df0266 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquOperationMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquOperationMapper.xml @@ -119,6 +119,14 @@ where CONVERT(date, create_time) = CONVERT(date, GETDATE()) + + + + insert into equ_operation @@ -188,6 +196,15 @@ + + insert into equ_operation_backup + select s.* + from equ_operation s + where YEAR (s.create_time) = YEAR (GETDATE())-2 + ORDER BY id + OFFSET #{startIndex} ROWS FETCH NEXT #{batchSize} ROWS ONLY + + update equ_operation @@ -230,4 +247,12 @@ #{id} + + + delete + from equ_operation + where id in (select s.id from equ_operation s where YEAR (s.create_time) = YEAR (GETDATE())-2 + ORDER BY id + OFFSET 0 ROWS FETCH NEXT #{delSize} ROWS ONLY) + \ No newline at end of file diff --git a/op-modules/op-job/src/main/java/com/op/job/task/RyTask.java b/op-modules/op-job/src/main/java/com/op/job/task/RyTask.java index 443cd9a05..e2815c4d5 100644 --- a/op-modules/op-job/src/main/java/com/op/job/task/RyTask.java +++ b/op-modules/op-job/src/main/java/com/op/job/task/RyTask.java @@ -144,4 +144,10 @@ public class RyTask { logger.info("++设备运行记录生成任务开始++createEquipmentOperationTask+++++"); remoteDeviceService.createEquipmentOperationTask(); } + + /** 每年1月1日1:50执行 **/ + public void equipmentBKTask(){ + logger.info("++设备运行记录+数据库备份的数据+开始++equipmentBkTask+++++"); + remoteDeviceService.equipmentBKTask(); + } } From 4edeb71b911ef4330c419457073297c773091110 Mon Sep 17 00:00:00 2001 From: wws <18630710203@163.com> Date: Fri, 22 Dec 2023 13:44:04 +0800 Subject: [PATCH 07/25] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E5=AE=8C=E5=A5=BD?= =?UTF-8?q?=E7=8E=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/DeviceInterfaceServiceImpl.java | 1 + .../service/impl/DeviceTaskServiceImpl.java | 2 +- .../mapper/device/DeviceInterfaceMapper.xml | 17 +++++++++++++---- .../mapper/device/EquOperationMapper.xml | 1 + 4 files changed, 16 insertions(+), 5 deletions(-) diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java index dd9ba40a4..5788fdbee 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java @@ -204,6 +204,7 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { @DS("#header.poolName") public AjaxResult getEquipmentIntactRate(EquOperation equOperation) { //查询所有设备(设备停用的除外) + // CAST(SUM(CASE WHEN equipment_status = '1' or equipment_status = '3' THEN 1 Else 0 END)*100.00/COUNT(*) as decimal(18,2)) AS intactRate EquOperation equipmentIntactRate = deviceInterfaceMapper.getEquipmentIntactRate(equOperation); return success(equipmentIntactRate); } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceTaskServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceTaskServiceImpl.java index 7930ac809..dc3652edc 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceTaskServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceTaskServiceImpl.java @@ -476,7 +476,7 @@ public class DeviceTaskServiceImpl implements IDeviceTaskService { List subList = operationList.subList(startIndex,endIndex); int num = equOperationMapper.insertEquOperationByBatch(subList); - System.out.println("数据源:"+poolName+"--->"+"第"+i+"轮"+"开始索引:"+startIndex+"________结束索引:"+endIndex+"________成功插入数量:"+num); + System.out.println("数据源:"+poolName+"--->"+"第"+(i+1)+"轮"+"开始索引:"+startIndex+"________结束索引:"+endIndex+"________成功插入数量:"+num); } }else { System.out.println("数据源:"+poolName+"当天生成过运行记录"); diff --git a/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml index 90f2288d3..1ce661283 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/DeviceInterfaceMapper.xml @@ -78,10 +78,19 @@ diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquOperationMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquOperationMapper.xml index f47df0266..1eda9f706 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquOperationMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquOperationMapper.xml @@ -89,6 +89,7 @@ and CONVERT(date,create_time) >= #{createTimeStart} and #{createTimeEnd} >= CONVERT(date,create_time) + order by CAST(create_time AS DATE) desc,group_line + + \ No newline at end of file From 4dced6b4214a531ea07e75fcc51faf8df150f546 Mon Sep 17 00:00:00 2001 From: mengjiao <3338049200@qq,com> Date: Sat, 23 Dec 2023 07:45:46 +0800 Subject: [PATCH 09/25] =?UTF-8?q?wms=E4=BF=AE=E6=94=B99.2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/op/system/api/RemoteSapService.java | 4 +-- .../com/op/sap/service/SapOrderService.java | 7 ++--- .../sap/service/impl/SapOrderServiceImpl.java | 7 ++--- .../controller/WmsToWCSmissionController.java | 7 +++++ .../impl/OdsProcureOrderServiceImpl.java | 27 +++++++++++++++---- 5 files changed, 35 insertions(+), 17 deletions(-) diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/RemoteSapService.java b/op-api/op-api-system/src/main/java/com/op/system/api/RemoteSapService.java index 5c5f3d793..d5993b186 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/RemoteSapService.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/RemoteSapService.java @@ -85,10 +85,10 @@ public interface RemoteSapService { public R sapProductWarehousing(@RequestBody(required = false) List> mapList); /**获取采购订单*/ - @PostMapping("/sapPurchaseOrderSync") + @PostMapping("/sap/sapPurchaseOrderSync") public R sapPurchaseOrderSync(@RequestBody SapPurchaseOrderQuery sapPurchaseOrderQuery); /**采购订单收货过账*/ - @PostMapping("/sapPOrderGoodsReceipt") + @PostMapping("/sap/sapPOrderGoodsReceipt") public R sapPOrderGoodsReceipt(@RequestBody(required = false) List> mapList); } diff --git a/op-modules/op-sap/src/main/java/com/op/sap/service/SapOrderService.java b/op-modules/op-sap/src/main/java/com/op/sap/service/SapOrderService.java index 14968ba9a..11eccfe66 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/service/SapOrderService.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/service/SapOrderService.java @@ -3,12 +3,9 @@ package com.op.sap.service; import com.op.common.core.domain.R; import com.op.sap.domain.vo.SapOrderReceiptQuery; -import com.op.sap.domain.vo.SapPurchaseOrderQuery; +import com.op.system.api.domain.sap.SapPurchaseOrderQuery;//SapPurchaseOrderQuery -import com.op.system.api.domain.sap.SapCloseOrderQuery; -import com.op.system.api.domain.sap.SapCreateOrder; -import com.op.system.api.domain.sap.SapRFW; -import com.op.system.api.domain.sap.SapShopOrderQuery; +import com.op.system.api.domain.sap.*; import com.op.system.api.model.SapProOrder; import java.util.List; diff --git a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapOrderServiceImpl.java b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapOrderServiceImpl.java index 62c8c4544..99448c0c9 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapOrderServiceImpl.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapOrderServiceImpl.java @@ -8,13 +8,10 @@ import com.op.common.core.utils.StringUtils; import com.op.common.core.utils.uuid.IdUtils; import com.op.sap.domain.vo.SapOrderReceiptQuery; -import com.op.sap.domain.vo.SapPurchaseOrderQuery; + import com.op.sap.service.SapOrderService; -import com.op.system.api.domain.sap.SapCloseOrderQuery; -import com.op.system.api.domain.sap.SapCreateOrder; -import com.op.system.api.domain.sap.SapRFW; -import com.op.system.api.domain.sap.SapShopOrderQuery; +import com.op.system.api.domain.sap.*; import com.op.system.api.model.SapProOrder; import com.sap.conn.jco.*; diff --git a/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsToWCSmissionController.java b/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsToWCSmissionController.java index de54e9d5e..945a80500 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsToWCSmissionController.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/controller/WmsToWCSmissionController.java @@ -184,8 +184,15 @@ public WmsToWCSDTO packingMaterialsOutBoundCompleted(@RequestBody WmsToWCSDTO wc Integer result= odsProcureOrderService.ProductionMaterialRequisitionAdd(orderList); return success(result); } + + /** + * 采购提单 + * @param odsProcureOrder + * @return + */ @PostMapping("/sapPurchaseOrderSync") public AjaxResult sapPurchaseOrderSync(@RequestBody OdsProcureOrder odsProcureOrder){ + AjaxResult result= odsProcureOrderService.sapPurchaseOrderSync(odsProcureOrder); return result; } diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOrderServiceImpl.java b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOrderServiceImpl.java index 064a3a04d..04a94a770 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOrderServiceImpl.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOrderServiceImpl.java @@ -8,10 +8,7 @@ import com.alibaba.fastjson.JSONObject; import java.math.BigDecimal; import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - +import java.util.*; import com.op.common.core.domain.R; @@ -22,6 +19,7 @@ import com.op.common.security.utils.SecurityUtils; import com.op.system.api.RemoteSapService; import com.op.system.api.domain.sap.SapBackflushMPQuery; import com.op.system.api.domain.sap.SapMaterialPosting; +import com.op.system.api.domain.sap.SapPurchaseOrderQuery; import okhttp3.OkHttpClient; import okhttp3.MediaType; import okhttp3.RequestBody; @@ -30,6 +28,7 @@ import okhttp3.Response; import java.io.IOException; + import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder; import com.op.common.core.utils.uuid.IdUtils; @@ -554,13 +553,19 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService { sapBackflushMPQueryList.add(sapBackflushMPQuery); R result2= remoteSapService.sapBackflushMP(sapBackflushMPQueryList);//x int code= result2.getCode(); + String msg= result2.getMsg(); odsProcureOutOrder.setUserDefined11(msg); if (code==200){//过账成功 + Map map=new HashMap(); + map= (Map) result2.getData(); + String userDefined9= (String) map.get("MATERIALDOCUMENT"); + odsProcureOutOrder.setUserDefined9(userDefined9); odsProcureOutOrder.setUserDefined10("2");//成功 odsProcureOutOrderMapper.updateOdsProcureOutOrderByid(odsProcureOutOrder); }else {// + odsProcureOutOrder.setUserDefined9(""); odsProcureOutOrder.setUserDefined10("3");//失败 odsProcureOutOrderMapper.updateOdsProcureOutOrderByid(odsProcureOutOrder); } @@ -578,14 +583,20 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService { sapMaterialPosting.setBatch(odsProcureOutOrder.getUserDefined2()); //批号 sapMaterialPostingList.add(sapMaterialPosting); R result= remoteSapService.sapMaterialPosting(sapMaterialPostingList); + int code= result.getCode(); String msg= result.getMsg(); odsProcureOutOrder.setUserDefined11(msg); if (code==200){//过账成功 + Map map=new HashMap(); + map= (Map) result.getData(); + String userDefined9= (String) map.get("MATERIALDOCUMENT"); + odsProcureOutOrder.setUserDefined9(userDefined9); odsProcureOutOrder.setUserDefined10("2");//成功 odsProcureOutOrderMapper.updateOdsProcureOutOrderByid(odsProcureOutOrder); }else {// + odsProcureOutOrder.setUserDefined9(""); odsProcureOutOrder.setUserDefined10("3");//失败 odsProcureOutOrderMapper.updateOdsProcureOutOrderByid(odsProcureOutOrder); } @@ -597,7 +608,13 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService { @Override public AjaxResult sapPurchaseOrderSync(OdsProcureOrder odsProcureOrder) { - //remoteSapService.sapPurchaseOrderSync(); + DynamicDataSourceContextHolder.push("ds_" +odsProcureOrder.getFactoryCode()); + SapPurchaseOrderQuery sapPurchaseOrderQuery=new SapPurchaseOrderQuery(); + sapPurchaseOrderQuery.setEbeln(odsProcureOrder.getProcureCode()); + R result= remoteSapService.sapPurchaseOrderSync(sapPurchaseOrderQuery); + List sapPurchaseOrderQueryList=new ArrayList<>(); + sapPurchaseOrderQueryList= (List) result.getData(); + // sapPurchaseOrderQueryList return null; } From 316e221ffad268a298ee0812c21784f7257b9d63 Mon Sep 17 00:00:00 2001 From: mengjiao <3338049200@qq,com> Date: Sat, 23 Dec 2023 08:21:11 +0800 Subject: [PATCH 10/25] =?UTF-8?q?wms=E4=BF=AE=E6=94=B99.3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/mapper/wms/OdsProcureOutOrderMapper.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/op-modules/op-wms/src/main/resources/mapper/wms/OdsProcureOutOrderMapper.xml b/op-modules/op-wms/src/main/resources/mapper/wms/OdsProcureOutOrderMapper.xml index c5088b303..5e69ab7d2 100644 --- a/op-modules/op-wms/src/main/resources/mapper/wms/OdsProcureOutOrderMapper.xml +++ b/op-modules/op-wms/src/main/resources/mapper/wms/OdsProcureOutOrderMapper.xml @@ -281,6 +281,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update ods_procure_out_order set User_Defined10 = #{userDefined10}, + User_Defined9 = #{userDefined9}, User_Defined11 = #{userDefined11} where ID = #{ID} From 826576045e41aeeede772317c6a0feaa7542302a Mon Sep 17 00:00:00 2001 From: mengjiao <3338049200@qq,com> Date: Mon, 25 Dec 2023 10:44:04 +0800 Subject: [PATCH 11/25] =?UTF-8?q?wms=E4=BF=AE=E6=94=B99.4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/OdsProcureOrderServiceImpl.java | 32 ++++++++++++++++--- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOrderServiceImpl.java b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOrderServiceImpl.java index 04a94a770..f88747b42 100644 --- a/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOrderServiceImpl.java +++ b/op-modules/op-wms/src/main/java/com/op/wms/service/impl/OdsProcureOrderServiceImpl.java @@ -612,10 +612,34 @@ public class OdsProcureOrderServiceImpl implements IOdsProcureOrderService { SapPurchaseOrderQuery sapPurchaseOrderQuery=new SapPurchaseOrderQuery(); sapPurchaseOrderQuery.setEbeln(odsProcureOrder.getProcureCode()); R result= remoteSapService.sapPurchaseOrderSync(sapPurchaseOrderQuery); - List sapPurchaseOrderQueryList=new ArrayList<>(); - sapPurchaseOrderQueryList= (List) result.getData(); - // sapPurchaseOrderQueryList - return null; + List> mapList = new ArrayList<>(); + mapList= (List>) result.getData(); + for(Map sapPurchaseOrderQuery1:mapList){ + OdsProcureOrder order =new OdsProcureOrder(); + order.setProcureCode(sapPurchaseOrderQuery1.get("ebeln")); + order.setSiteCode(sapPurchaseOrderQuery1.get("werks")); + order.setUserDefined3(sapPurchaseOrderQuery1.get("ebelp"));//批次 + order.setMaterialCode(sapPurchaseOrderQuery1.get("matnr")); + order.setMaterialDesc(sapPurchaseOrderQuery1.get("maktx")); + order.setActive("1"); + List orderList= odsProcureOrderMapper.selectOdsProcureOrderList(order); + if (orderList.size()>0){ + continue; + } + order.setPlanNumber(new BigDecimal(sapPurchaseOrderQuery1.get("menge"))); + order.setUnit(sapPurchaseOrderQuery1.get("meins")); + order.setSupplierCode(sapPurchaseOrderQuery1.get("lifnr")); + order.setUserDefined9(sapPurchaseOrderQuery1.get("zmenge")); + order.setUserDefined10(sapPurchaseOrderQuery1.get("elikz")); + order.setUserDefined11(sapPurchaseOrderQuery1.get("eindt")); + order.setCreateBy(odsProcureOrder.getCreateBy()); + order.setPlanDate(new Date()); + order.setOrderStatus("0"); + //order.setID(IdUtils.fastSimpleUUID()); + order.setCreateDate(new Date()); + odsProcureOrderMapper.insertOdsProcureOrder(order); + } + return AjaxResult.success(); } public String DesignatedPalletOutboundWCS(WMSDesignatedPalle wmsDesignatedPalle){ From 63cc8e2053249b31da2831636720935615a7acf2 Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Mon, 25 Dec 2023 11:11:36 +0800 Subject: [PATCH 12/25] =?UTF-8?q?=E8=B4=A8=E9=87=8F=E8=BF=87=E7=A8=8B?= =?UTF-8?q?=E5=B7=A1=E6=A3=80+=E6=9D=A5=E6=96=99=E6=A3=80=E9=AA=8C?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../op/system/api/RemoteQualityService.java | 28 +++++ .../api/domain/mes/ProOrderWorkorderDTO.java | 62 +++++---- .../QcCheckTaskIncomeDTO.java} | 101 ++++++++++++++- .../domain/quality/QcCheckTaskProduceDTO.java | 10 ++ .../factory/RemoteQualityFallbackFactory.java | 38 ++++++ ...ot.autoconfigure.AutoConfiguration.imports | 1 + .../core/constant/ServiceNameConstants.java | 2 + .../src/main/java/com/op/job/task/RyTask.java | 16 ++- .../controller/MesInterfaceController.java | 29 +++++ .../main/java/com/op/mes/domain/MesBoard.java | 118 ++++++++++++++++++ .../com/op/mes/domain/MesDailyReport.java | 1 + .../java/com/op/mes/mapper/MesMapper.java | 6 + .../op/mes/service/MesInterfaceService.java | 18 +++ .../service/impl/MesInterfaceServiceImpl.java | 41 ++++++ .../impl/MesReportWorkServiceImpl.java | 2 +- .../main/resources/mapper/mes/MesMapper.xml | 24 ++++ .../mapper/mes/MesReportWorkMapper.xml | 39 +++--- op-modules/op-quality/pom.xml | 5 + .../QcCheckTaskIncomeController.java | 13 ++ .../QcCheckTaskProduceController.java | 8 ++ .../op/quality/domain/QcCheckTaskProduce.java | 9 ++ .../mapper/QcCheckTaskProduceMapper.java | 4 + .../service/IQcCheckTaskProduceService.java | 4 + .../impl/QcCheckTaskProduceServiceImpl.java | 81 +++++++++++- .../service/impl/QcInterfaceServiceImpl.java | 2 +- .../quality/QcCheckTaskProduceMapper.xml | 28 ++++- 26 files changed, 622 insertions(+), 68 deletions(-) create mode 100644 op-api/op-api-system/src/main/java/com/op/system/api/RemoteQualityService.java rename op-api/op-api-system/src/main/java/com/op/system/api/domain/{dto/quality/QcCheckTaskIncomeDto.java => quality/QcCheckTaskIncomeDTO.java} (78%) create mode 100644 op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteQualityFallbackFactory.java create mode 100644 op-modules/op-mes/src/main/java/com/op/mes/controller/MesInterfaceController.java create mode 100644 op-modules/op-mes/src/main/java/com/op/mes/domain/MesBoard.java create mode 100644 op-modules/op-mes/src/main/java/com/op/mes/service/MesInterfaceService.java create mode 100644 op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesInterfaceServiceImpl.java diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/RemoteQualityService.java b/op-api/op-api-system/src/main/java/com/op/system/api/RemoteQualityService.java new file mode 100644 index 000000000..e17a555ce --- /dev/null +++ b/op-api/op-api-system/src/main/java/com/op/system/api/RemoteQualityService.java @@ -0,0 +1,28 @@ +package com.op.system.api; + +import com.op.common.core.constant.ServiceNameConstants; +import com.op.common.core.domain.R; +import com.op.system.api.domain.quality.QcCheckTaskIncomeDTO; +import com.op.system.api.factory.RemoteDeviceFallbackFactory; +import com.op.system.api.factory.RemoteQualityFallbackFactory; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +/** + * 用户服务 + * + * @author OP + */ +@FeignClient(contextId = "remoteQualityService", value = ServiceNameConstants.QMS_SERVICE, fallbackFactory = RemoteQualityFallbackFactory.class) + + + +public interface RemoteQualityService { + + @PostMapping("/qcProduce/createProduceXJTask") + public R createProduceXJTask(); + + @PostMapping("/qcIncome/createIncomeTask") + public R createIncomeTask(@RequestBody QcCheckTaskIncomeDTO qcCheckTaskIncome); +} diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/domain/mes/ProOrderWorkorderDTO.java b/op-api/op-api-system/src/main/java/com/op/system/api/domain/mes/ProOrderWorkorderDTO.java index 9499fabf1..be6c83690 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/domain/mes/ProOrderWorkorderDTO.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/domain/mes/ProOrderWorkorderDTO.java @@ -69,14 +69,6 @@ public class ProOrderWorkorderDTO extends TreeEntity { // 工艺名称 private String routeName; - public String getRouteName() { - return routeName; - } - - public void setRouteName(String routeName) { - this.routeName = routeName; - } - /** 产线编码 */ @Excel(name = "线体") private String prodLineCode; @@ -86,14 +78,6 @@ public class ProOrderWorkorderDTO extends TreeEntity { // TODO 暂时存放线体编码 private String prodLineName; - public String getProdLineName() { - return prodLineName; - } - - public void setProdLineName(String prodLineName) { - this.prodLineName = prodLineName; - } - /** 工单生产日期 */ @JsonFormat(pattern = "yyyy-MM-dd") @Excel(name = "工单生产日期", width = 30, dateFormat = "yyyy-MM-dd") @@ -138,14 +122,6 @@ public class ProOrderWorkorderDTO extends TreeEntity { /** 是否为底层节点 1是 0不是 */ private Integer endFlag; - public Integer getEndFlag() { - return endFlag; - } - - public void setEndFlag(Integer endFlag) { - this.endFlag = endFlag; - } - /** 班次名称(数据库无该字段,需自行查询) */ private String shiftDesc; @@ -153,14 +129,6 @@ public class ProOrderWorkorderDTO extends TreeEntity { private Integer carNum; private Integer sortNo; - public Integer getCarNum() { - return carNum; - } - - public void setCarNum(Integer carNum) { - this.carNum = carNum; - } - // 料罐id(湿料计划模块使用) private Integer bucketId; @@ -192,6 +160,36 @@ public class ProOrderWorkorderDTO extends TreeEntity { private BigDecimal quantitySplits; private String units; + public String getProdLineName() { + return prodLineName; + } + + public void setProdLineName(String prodLineName) { + this.prodLineName = prodLineName; + } + public String getRouteName() { + return routeName; + } + + public void setRouteName(String routeName) { + this.routeName = routeName; + } + public Integer getEndFlag() { + return endFlag; + } + + public void setEndFlag(Integer endFlag) { + this.endFlag = endFlag; + } + + public Integer getCarNum() { + return carNum; + } + + public void setCarNum(Integer carNum) { + this.carNum = carNum; + } + public String getWorkorderCodes() { return workorderCodes; } diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/domain/dto/quality/QcCheckTaskIncomeDto.java b/op-api/op-api-system/src/main/java/com/op/system/api/domain/quality/QcCheckTaskIncomeDTO.java similarity index 78% rename from op-api/op-api-system/src/main/java/com/op/system/api/domain/dto/quality/QcCheckTaskIncomeDto.java rename to op-api/op-api-system/src/main/java/com/op/system/api/domain/quality/QcCheckTaskIncomeDTO.java index a6cd94bda..8464cbcac 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/domain/dto/quality/QcCheckTaskIncomeDto.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/domain/quality/QcCheckTaskIncomeDTO.java @@ -1,4 +1,4 @@ -package com.op.system.api.domain.dto.quality; +package com.op.system.api.domain.quality; import com.fasterxml.jackson.annotation.JsonFormat; import com.op.common.core.annotation.Excel; @@ -8,6 +8,7 @@ import org.apache.commons.lang3.builder.ToStringStyle; import java.math.BigDecimal; import java.util.Date; +import java.util.List; /** * 来料检验对象 qc_check_task_income @@ -15,7 +16,7 @@ import java.util.Date; * @author Open Platform * @date 2023-10-19 */ -public class QcCheckTaskIncomeDto extends BaseEntity { +public class QcCheckTaskIncomeDTO extends BaseEntity { private static final long serialVersionUID = 1L; /** id */ @@ -25,8 +26,10 @@ public class QcCheckTaskIncomeDto extends BaseEntity { @Excel(name = "检验任务编号") private String checkNo; + private String workorderCode; + /** 来料批次号 */ - @Excel(name = "来料批次号") + @Excel(name = "批次号") private String incomeBatchNo; /** 订单号 */ @@ -45,6 +48,9 @@ public class QcCheckTaskIncomeDto extends BaseEntity { @Excel(name = "收货数量") private BigDecimal quality; + @Excel(name = "不合格数量") + private BigDecimal noOkQuality; + /** 单位 */ @Excel(name = "单位") private String unit; @@ -120,6 +126,95 @@ public class QcCheckTaskIncomeDto extends BaseEntity { private String checkTimeEnd; private String typeCode; private String checkType; + private String qualityStatus; + private String batchCode; + private String batchId; + private List qcCheckTaskDetails; + + private BigDecimal sampleQuality; + private BigDecimal aNoOkquality; + private BigDecimal bNoOkquality; + private BigDecimal cNoOkquality; + + public BigDecimal getSampleQuality() { + return sampleQuality; + } + + public void setSampleQuality(BigDecimal sampleQuality) { + this.sampleQuality = sampleQuality; + } + + public BigDecimal getaNoOkquality() { + return aNoOkquality; + } + + public void setaNoOkquality(BigDecimal aNoOkquality) { + this.aNoOkquality = aNoOkquality; + } + + public void setbNoOkquality(BigDecimal bNoOkquality) { + this.bNoOkquality = bNoOkquality; + } + + public void setcNoOkquality(BigDecimal cNoOkquality) { + this.cNoOkquality = cNoOkquality; + } + + public BigDecimal getbNoOkquality() { + return bNoOkquality; + } + + public BigDecimal getcNoOkquality() { + return cNoOkquality; + } + + public List getQcCheckTaskDetails() { + return qcCheckTaskDetails; + } + + public void setQcCheckTaskDetails(List qcCheckTaskDetails) { + this.qcCheckTaskDetails = qcCheckTaskDetails; + } + + public String getBatchCode() { + return batchCode; + } + + public void setBatchCode(String batchCode) { + this.batchCode = batchCode; + } + + public String getBatchId() { + return batchId; + } + + public void setBatchId(String batchId) { + this.batchId = batchId; + } + + public String getWorkorderCode() { + return workorderCode; + } + + public void setWorkorderCode(String workorderCode) { + this.workorderCode = workorderCode; + } + + public String getQualityStatus() { + return qualityStatus; + } + + public void setQualityStatus(String qualityStatus) { + this.qualityStatus = qualityStatus; + } + + public BigDecimal getNoOkQuality() { + return noOkQuality; + } + + public void setNoOkQuality(BigDecimal noOkQuality) { + this.noOkQuality = noOkQuality; + } public String getCheckType() { return checkType; diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/domain/quality/QcCheckTaskProduceDTO.java b/op-api/op-api-system/src/main/java/com/op/system/api/domain/quality/QcCheckTaskProduceDTO.java index 2e6cf0da2..ab8ba8bca 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/domain/quality/QcCheckTaskProduceDTO.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/domain/quality/QcCheckTaskProduceDTO.java @@ -148,6 +148,16 @@ public class QcCheckTaskProduceDTO extends BaseEntity { @Excel(name = "C类不合格数量") private BigDecimal cNoOkquality; + private String workorderCode; + + public String getWorkorderCode() { + return workorderCode; + } + + public void setWorkorderCode(String workorderCode) { + this.workorderCode = workorderCode; + } + public Date getProduceDate() { return produceDate; } diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteQualityFallbackFactory.java b/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteQualityFallbackFactory.java new file mode 100644 index 000000000..f7a38663d --- /dev/null +++ b/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteQualityFallbackFactory.java @@ -0,0 +1,38 @@ +package com.op.system.api.factory; + + +import com.op.common.core.domain.R; +import com.op.system.api.RemoteDeviceService; +import com.op.system.api.RemoteQualityService; +import com.op.system.api.domain.quality.QcCheckTaskIncomeDTO; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.stereotype.Component; + +/** + * 用户服务降级处理 + * + * @author OP + */ +@Component +public class RemoteQualityFallbackFactory implements FallbackFactory { + private static final Logger log = LoggerFactory.getLogger(RemoteQualityFallbackFactory.class); + + @Override + public RemoteQualityService create(Throwable throwable) { + log.error("Quality服务调用失败:{}", throwable.getMessage()); + return new RemoteQualityService() { + @Override + public R createProduceXJTask() { + return R.fail("巡检计划创建失败:" + throwable.getMessage()); + } + + @Override + public R createIncomeTask(QcCheckTaskIncomeDTO qcCheckTaskIncome) { + return R.fail("来料计划创建失败:" + throwable.getMessage()); + } + }; + } +} + diff --git a/op-api/op-api-system/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/op-api/op-api-system/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index d8e2009be..6e7b448c1 100644 --- a/op-api/op-api-system/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/op-api/op-api-system/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -6,3 +6,4 @@ com.op.system.api.factory.RemotePlanFallbackFactory com.op.system.api.factory.RemoteTechnologyFallbackFactory com.op.system.api.factory.RemoteSapFallbackFactory com.op.system.api.factory.RemoteDeviceFallbackFactory +com.op.system.api.factory.RemoteQualityFallbackFactory diff --git a/op-common/op-common-core/src/main/java/com/op/common/core/constant/ServiceNameConstants.java b/op-common/op-common-core/src/main/java/com/op/common/core/constant/ServiceNameConstants.java index 6fa1d7dcc..6a783069c 100644 --- a/op-common/op-common-core/src/main/java/com/op/common/core/constant/ServiceNameConstants.java +++ b/op-common/op-common-core/src/main/java/com/op/common/core/constant/ServiceNameConstants.java @@ -48,4 +48,6 @@ public class ServiceNameConstants { * 设备模块的serviceid */ public static final String DEVICE_SERVICE = "op-device"; + /**质量模块**/ + public static final String QMS_SERVICE = "op-quality"; } diff --git a/op-modules/op-job/src/main/java/com/op/job/task/RyTask.java b/op-modules/op-job/src/main/java/com/op/job/task/RyTask.java index e2815c4d5..186e0565d 100644 --- a/op-modules/op-job/src/main/java/com/op/job/task/RyTask.java +++ b/op-modules/op-job/src/main/java/com/op/job/task/RyTask.java @@ -1,9 +1,6 @@ package com.op.job.task; -import com.op.system.api.RemoteDeviceService; -import com.op.system.api.RemoteMesService; -import com.op.system.api.RemotePlanService; -import com.op.system.api.RemoteSapService; +import com.op.system.api.*; import com.op.system.api.domain.sap.SapRouterQuery; import com.op.system.api.domain.sap.SapShopOrderQuery; import org.slf4j.Logger; @@ -35,6 +32,9 @@ public class RyTask { @Autowired private RemoteDeviceService remoteDeviceService; + @Autowired + private RemoteQualityService remoteQualityService; + public void ryMultipleParams(String s, Boolean b, Long l, Double d, Integer i) { System.out.println(StringUtils.format("执行多参方法: 字符串类型{},布尔类型{},长整型{},浮点型{},整形{}", s, b, l, d, i)); } @@ -150,4 +150,12 @@ public class RyTask { logger.info("++设备运行记录+数据库备份的数据+开始++equipmentBkTask+++++"); remoteDeviceService.equipmentBKTask(); } + + /************质量管理系统定时任务开始*****************/ + //过程巡检,每15分钟执行一次 + public void createProduceXJTask(){ + logger.info("++质量管理系统+过程巡检+开始++createProduceXJTask+++++"); + remoteQualityService.createProduceXJTask(); + } + /************质量管理系统定时任务结束*****************/ } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/controller/MesInterfaceController.java b/op-modules/op-mes/src/main/java/com/op/mes/controller/MesInterfaceController.java new file mode 100644 index 000000000..7e8730b07 --- /dev/null +++ b/op-modules/op-mes/src/main/java/com/op/mes/controller/MesInterfaceController.java @@ -0,0 +1,29 @@ +package com.op.mes.controller; + +import com.op.mes.domain.MesBoard; +import com.op.mes.service.MesInterfaceService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Map; + +/** + * mes看板接口 + * + * @author zxl + * @date 2023-11-15 + */ +@RestController +@RequestMapping("/mesInterface") +public class MesInterfaceController { + + @Autowired + private MesInterfaceService mesInterfaceService; + + //工艺看板 + @PostMapping("/getTechnologyBoard") + public List getTechnologyBoard(@RequestBody MesBoard mesBoard) { + return mesInterfaceService.getTechnologyBoard(mesBoard); + } +} diff --git a/op-modules/op-mes/src/main/java/com/op/mes/domain/MesBoard.java b/op-modules/op-mes/src/main/java/com/op/mes/domain/MesBoard.java new file mode 100644 index 000000000..39748bb2a --- /dev/null +++ b/op-modules/op-mes/src/main/java/com/op/mes/domain/MesBoard.java @@ -0,0 +1,118 @@ +package com.op.mes.domain; + +import com.op.common.core.domain.BaseFileData; + +import java.util.List; + +//看板实体类 +public class MesBoard { + + private String factoryCode; + private String workorderCode; + private String workorderCodeSap; + private String workorderName; + private String equipmentName; + private String productCode; + private String productName; + private String routeCode; + private String routeId; + private List files; + private String workshopCode; + private String workshopName; + + public String getWorkshopCode() { + return workshopCode; + } + + public void setWorkshopCode(String workshopCode) { + this.workshopCode = workshopCode; + } + + public String getWorkshopName() { + return workshopName; + } + + public void setWorkshopName(String workshopName) { + this.workshopName = workshopName; + } + + public String getEquipmentName() { + return equipmentName; + } + + public void setEquipmentName(String equipmentName) { + this.equipmentName = equipmentName; + } + + public List getFiles() { + return files; + } + + public void setFiles(List files) { + this.files = files; + } + + public String getWorkorderCode() { + return workorderCode; + } + + public void setWorkorderCode(String workorderCode) { + this.workorderCode = workorderCode; + } + + public String getWorkorderCodeSap() { + return workorderCodeSap; + } + + public void setWorkorderCodeSap(String workorderCodeSap) { + this.workorderCodeSap = workorderCodeSap; + } + + public String getWorkorderName() { + return workorderName; + } + + public void setWorkorderName(String workorderName) { + this.workorderName = workorderName; + } + + public String getProductCode() { + return productCode; + } + + public void setProductCode(String productCode) { + this.productCode = productCode; + } + + public String getProductName() { + return productName; + } + + public void setProductName(String productName) { + this.productName = productName; + } + + public String getRouteCode() { + return routeCode; + } + + public void setRouteCode(String routeCode) { + this.routeCode = routeCode; + } + + public String getRouteId() { + return routeId; + } + + public void setRouteId(String routeId) { + this.routeId = routeId; + } + + public String getFactoryCode() { + return factoryCode; + } + + public void setFactoryCode(String factoryCode) { + this.factoryCode = factoryCode; + } +} diff --git a/op-modules/op-mes/src/main/java/com/op/mes/domain/MesDailyReport.java b/op-modules/op-mes/src/main/java/com/op/mes/domain/MesDailyReport.java index 94ec1a5b1..d732abb4c 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/domain/MesDailyReport.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/domain/MesDailyReport.java @@ -39,6 +39,7 @@ public class MesDailyReport extends BaseEntity { private String manAvgActual;//人均效率-实际 private String manAvgDo;//人均效率-达成 private String actManHour;//实际人工时 + @JsonFormat(pattern = "yyyy-MM-dd") private Date productDate;//工单日期 private String productDateStr;//工单日期字符串 private String productStartDate; diff --git a/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesMapper.java b/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesMapper.java index c8c8c84b1..66e520797 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesMapper.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesMapper.java @@ -1,5 +1,7 @@ package com.op.mes.mapper; +import com.op.common.core.domain.BaseFileData; +import com.op.mes.domain.MesBoard; import com.op.mes.domain.dto.BaseEquipmentDto; import com.op.mes.domain.dto.LGInfoDto; import com.op.system.api.domain.SysDept; @@ -58,4 +60,8 @@ public interface MesMapper { List> selectdryingRoomListInfo(); void deleteDateByTableName0(@Param("table")String table,@Param("ymdhms")String ymdhms); + + List getTechnologyBoard(MesBoard mesBoard); + + List getTechnologyFiles(MesBoard dto); } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/MesInterfaceService.java b/op-modules/op-mes/src/main/java/com/op/mes/service/MesInterfaceService.java new file mode 100644 index 000000000..cf8ef698e --- /dev/null +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/MesInterfaceService.java @@ -0,0 +1,18 @@ +package com.op.mes.service; + +import com.op.mes.domain.MesBoard; +import com.op.mes.domain.dto.BaseEquipmentDto; + +import java.util.List; + +/** + * 看板 Service接口 + * + * @author Open Platform + * @date 2023-07-13 + */ +public interface MesInterfaceService { + + + List getTechnologyBoard(MesBoard mesBoard); +} diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesInterfaceServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesInterfaceServiceImpl.java new file mode 100644 index 000000000..3f7053500 --- /dev/null +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesInterfaceServiceImpl.java @@ -0,0 +1,41 @@ +package com.op.mes.service.impl; + +import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder; +import com.op.common.core.domain.BaseFileData; +import com.op.common.core.utils.DateUtils; +import com.op.common.core.utils.uuid.IdUtils; +import com.op.common.security.utils.SecurityUtils; +import com.op.mes.domain.MesBoard; +import com.op.mes.domain.dto.BaseEquipmentDto; +import com.op.mes.mapper.MesMapper; +import com.op.mes.service.MesInterfaceService; +import com.op.mes.service.PDAService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * wcs接口业务层处理 + * + * @author Open Platform + * @date 2023-07-13 + */ +@Service +public class MesInterfaceServiceImpl implements MesInterfaceService { + + @Autowired + private MesMapper mesMapper; + + @Override + public List getTechnologyBoard(MesBoard mesBoard) { + DynamicDataSourceContextHolder.push(mesBoard.getFactoryCode()); + List dtos= mesMapper.getTechnologyBoard(mesBoard); + for(MesBoard dto:dtos){ + //取附件 + List files = mesMapper.getTechnologyFiles(dto); + dto.setFiles(files); + } + return dtos; + } +} diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkServiceImpl.java index 677d2eea0..3a05d7015 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkServiceImpl.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesReportWorkServiceImpl.java @@ -227,7 +227,7 @@ public class MesReportWorkServiceImpl implements IMesReportWorkService { for(MesDailyReport dto:dtos){ String spc = dto.getSpec();//规格 //本日产量-实际(盒数) - BigDecimal actCase = new BigDecimal(dto.getQuantityFeedback()).multiply(new BigDecimal(spc)); + BigDecimal actCase = new BigDecimal(dto.getQuantityFeedback()); dto.setQuantityAct(actCase.toString()); //本日产量-完成率=实际箱数/计划箱数 BigDecimal completeRate = new BigDecimal(dto.getQuantityFeedback()) diff --git a/op-modules/op-mes/src/main/resources/mapper/mes/MesMapper.xml b/op-modules/op-mes/src/main/resources/mapper/mes/MesMapper.xml index 89b8fa215..38013df17 100644 --- a/op-modules/op-mes/src/main/resources/mapper/mes/MesMapper.xml +++ b/op-modules/op-mes/src/main/resources/mapper/mes/MesMapper.xml @@ -205,4 +205,28 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" delete from ${table} where #{ymdhms} > CONVERT(varchar(30),creter_time, 120) + + diff --git a/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml b/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml index d160f0473..0196be053 100644 --- a/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml +++ b/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml @@ -192,23 +192,22 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + - + insert into qc_check_task record_id, From 4e65a7d09278390ee906e8c76b954467777299ac Mon Sep 17 00:00:00 2001 From: shaoyong Date: Mon, 25 Dec 2023 15:57:01 +0800 Subject: [PATCH 13/25] =?UTF-8?q?=E6=A3=80=E9=AA=8C=E4=BA=BA=E5=91=98?= =?UTF-8?q?=E5=A4=9A=E9=80=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../op/quality/domain/QcCheckTaskUser.java | 212 ++++++++++++++++++ .../mapper/QcCheckTaskIncomeMapper.java | 2 + .../mapper/QcCheckTaskProduceMapper.java | 2 + .../quality/mapper/QcCheckTaskUserMapper.java | 74 ++++++ .../service/IQcCheckTaskUserService.java | 71 ++++++ .../impl/QcCheckTaskIncomeServiceImpl.java | 41 ++++ .../impl/QcCheckTaskProduceServiceImpl.java | 179 ++++++++++----- .../impl/QcCheckTaskUserServiceImpl.java | 155 +++++++++++++ .../QcCheckTaskWarehousingServiceImpl.java | 47 +++- .../quality/QcCheckTaskIncomeMapper.xml | 7 + .../quality/QcCheckTaskProduceMapper.xml | 10 +- .../mapper/quality/QcCheckTaskUserMapper.xml | 178 +++++++++++++++ 12 files changed, 909 insertions(+), 69 deletions(-) create mode 100644 op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskUser.java create mode 100644 op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskUserMapper.java create mode 100644 op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTaskUserService.java create mode 100644 op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskUserServiceImpl.java create mode 100644 op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskUserMapper.xml diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskUser.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskUser.java new file mode 100644 index 000000000..a914f9053 --- /dev/null +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskUser.java @@ -0,0 +1,212 @@ +package com.op.quality.domain; + +import com.op.common.core.annotation.Excel; +import com.op.common.core.web.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + + +public class QcCheckTaskUser extends BaseEntity { + + + /** + * 生产过程检验任务--检验人 qc_check_task_user + * + * @author Open Platform + * @date 2023-12-22 + */ + + private static final long serialVersionUID = 1L; + + /** + * id + */ + private String recordId; + + /** + * 检验任务编号 + */ + @Excel(name = "检验任务编号") + private String checkNo; + + /** + * 检测人工号 + */ + @Excel(name = "检测人工号") + private String checkManCode; + + /** + * 检测人姓名 + */ + @Excel(name = "检测人姓名") + private String checkManName; + + /** + * 预留字段1 + */ + @Excel(name = "预留字段1") + private String attr1; + + /** + * 预留字段2 + */ + @Excel(name = "预留字段2") + private String attr2; + + /** + * 预留字段3 + */ + @Excel(name = "预留字段3") + private String attr3; + + /** + * 预留字段4 + */ + @Excel(name = "预留字段4") + private String attr4; + + /** + * 工厂编码 + */ + @Excel(name = "工厂编码") + private String factoryCode; + + /** + * 删除标识1删除0正常 + */ + private String delFlag; + + /** + * 属于 + */ + private String belongTo; + + private String manNames; + private String manCodes; + + public String getManNames() { + return manNames; + } + + public void setManNames(String manNames) { + this.manNames = manNames; + } + + public String getManCodes() { + return manCodes; + } + + public void setManCodes(String manCodes) { + this.manCodes = manCodes; + } + + public String getRecordId() { + return recordId; + } + + public void setRecordId(String recordId) { + this.recordId = recordId; + } + + public String getCheckNo() { + return checkNo; + } + + public void setCheckNo(String checkNo) { + this.checkNo = checkNo; + } + + public String getCheckManCode() { + return checkManCode; + } + + public void setCheckManCode(String checkManCode) { + this.checkManCode = checkManCode; + } + + public String getCheckManName() { + return checkManName; + } + + public void setCheckManName(String checkManName) { + this.checkManName = checkManName; + } + + public String getAttr1() { + return attr1; + } + + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getAttr2() { + return attr2; + } + + public void setAttr2(String attr2) { + this.attr2 = attr2; + } + + public String getAttr3() { + return attr3; + } + + public void setAttr3(String attr3) { + this.attr3 = attr3; + } + + public String getAttr4() { + return attr4; + } + + public void setAttr4(String attr4) { + this.attr4 = attr4; + } + + public String getFactoryCode() { + return factoryCode; + } + + public void setFactoryCode(String factoryCode) { + this.factoryCode = factoryCode; + } + + public String getDelFlag() { + return delFlag; + } + + public void setDelFlag(String delFlag) { + this.delFlag = delFlag; + } + + public String getBelongTo() { + return belongTo; + } + + public void setBelongTo(String belongTo) { + this.belongTo = belongTo; + } + + @Override + public String toString() { + return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) + .append("recordId", getRecordId()) + .append("checkNo", getCheckNo()) + .append("checkManCode", getCheckManCode()) + .append("checkManName", getCheckManName()) + .append("attr1", getAttr1()) + .append("attr2", getAttr2()) + .append("attr3", getAttr3()) + .append("attr4", getAttr4()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("factoryCode", getFactoryCode()) + .append("delFlag", getDelFlag()) + .toString(); + } + + +} diff --git a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskIncomeMapper.java b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskIncomeMapper.java index 92fb3a7f2..8ace14a87 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskIncomeMapper.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskIncomeMapper.java @@ -86,4 +86,6 @@ public interface QcCheckTaskIncomeMapper { List getBatchList(QcCheckTaskIncome qcCheckTaskIncome); String getTypeCode(String checkType); + + List selectQcCheckTaskCheckNoByRecordIds(String[] recordIds); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskProduceMapper.java b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskProduceMapper.java index 958b8dadc..4fb4a4af1 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskProduceMapper.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskProduceMapper.java @@ -71,4 +71,6 @@ public interface QcCheckTaskProduceMapper { List getCheckTypes(QcCheckType qcCheckType); List getOrderWorks(ProOrderWorkorderDTO qoWork); + + List selectQcCheckTaskCheckNoByRecordIds(String[] recordIds); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskUserMapper.java b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskUserMapper.java new file mode 100644 index 000000000..28eb3772c --- /dev/null +++ b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskUserMapper.java @@ -0,0 +1,74 @@ +package com.op.quality.mapper; + +import java.util.List; + +import com.op.quality.domain.QcCheckTaskUser; +import org.apache.ibatis.annotations.Mapper; + +/** + * 来料检验任务--检查人Mapper接口 + * + * @author Open Platform + * @date 2023-12-22 + */ +@Mapper +public interface QcCheckTaskUserMapper { + /** + * 查询来料检验任务--检查人 + * + * @param recordId 来料检验任务--检查人主键 + * @return 来料检验任务--检查人 + */ + public QcCheckTaskUser selectQcCheckTaskUserByRecordId(String recordId); + + /** + * 查询来料检验任务--检查人列表 + * + * @param qcCheckTaskUser 来料检验任务--检查人 + * @return 来料检验任务--检查人集合 + */ + public List selectQcCheckTaskUserList(QcCheckTaskUser qcCheckTaskUser); + + /** + * 新增来料检验任务--检查人 + * + * @param qcCheckTaskUser 来料检验任务--检查人 + * @return 结果 + */ + public int insertQcCheckTaskUser(QcCheckTaskUser qcCheckTaskUser); + + /** + * 修改来料检验任务--检查人 + * + * @param qcCheckTaskUser 来料检验任务--检查人 + * @return 结果 + */ + public int updateQcCheckTaskUser(QcCheckTaskUser qcCheckTaskUser); + + /** + * 删除来料检验任务--检查人 + * + * @param recordId 来料检验任务--检查人主键 + * @return 结果 + */ + public int deleteQcCheckTaskUserByRecordId(String recordId); + + /** + * 批量删除来料检验任务--检查人 + * + * @param recordIds 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteQcCheckTaskUserByRecordIds(String[] recordIds); + + /** + * 批量插入检验人数据 + */ + public int insertQcCheckTaskUserList(List qcCheckTaskUserList); + + public int deleteQcCheckTaskUserByBelongTo(String belongTo); + + public QcCheckTaskUser selectQcCheckTaskUserByBelongTo(String belongTo); + + public int deleteQcCheckTaskUserByBelongTos(String[] belongToArray); +} diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTaskUserService.java b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTaskUserService.java new file mode 100644 index 000000000..c588ab9f1 --- /dev/null +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTaskUserService.java @@ -0,0 +1,71 @@ +package com.op.quality.service; + +import java.util.List; +import com.op.quality.domain.QcCheckTaskUser; + +/** + * 来料检验任务--检查人Service接口 + * + * @author Open Platform + * @date 2023-12-22 + */ +public interface IQcCheckTaskUserService { + /** + * 查询来料检验任务--检查人 + * + * @param recordId 来料检验任务--检查人主键 + * @return 来料检验任务--检查人 + */ + public QcCheckTaskUser selectQcCheckTaskUserByRecordId(String recordId); + + /** + * 查询来料检验任务--检查人列表 + * + * @param qcCheckTaskUser 来料检验任务--检查人 + * @return 来料检验任务--检查人集合 + */ + public List selectQcCheckTaskUserList(QcCheckTaskUser qcCheckTaskUser); + + /** + * 新增来料检验任务--检查人 + * + * @param qcCheckTaskUser 来料检验任务--检查人 + * @return 结果 + */ + public int insertQcCheckTaskUser(QcCheckTaskUser qcCheckTaskUser); + + /** + * 修改来料检验任务--检查人 + * + * @param qcCheckTaskUser 来料检验任务--检查人 + * @return 结果 + */ + public int updateQcCheckTaskUser(List qcCheckTaskUser); + + /** + * 批量删除来料检验任务--检查人 + * + * @param recordIds 需要删除的来料检验任务--检查人主键集合 + * @return 结果 + */ + public int deleteQcCheckTaskUserByRecordIds(String[] recordIds); + + public int deleteQcCheckTaskUserByBelongTos(String[] belongToArray); + + /** + * 删除来料检验任务--检查人信息 + * + * @param recordId 来料检验任务--检查人主键 + * @return 结果 + */ + public int deleteQcCheckTaskUserByRecordId(String recordId); + + /** + * 用户数据批量插入 + */ + public int insertQcCheckTaskUserList(List qcCheckTaskUserList); + /** + * 根据任务编号查询检验人 + */ + public QcCheckTaskUser selectQcCheckTaskUserByBelongTo(String belongTo); +} diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java index 767fffdf8..8b4a925aa 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java @@ -15,6 +15,7 @@ import com.op.common.security.utils.SecurityUtils; import com.op.quality.domain.*; import com.op.quality.mapper.*; import com.op.quality.service.IQcCheckTaskProduceService; +import com.op.quality.service.IQcCheckTaskUserService; import com.op.system.api.domain.SysUser; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -58,6 +59,9 @@ public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService { @Autowired private QcCheckUnqualifiedMapper qcCheckUnqualifiedMapper; + @Autowired + private IQcCheckTaskUserService qcCheckTaskUserService; + /** * 查询来料检验 * @@ -139,7 +143,25 @@ public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService { qcCheckTaskIncome.setCreateTime(nowDate); //String typeCode = qcCheckTaskIncomeMapper.getTypeCode(qcCheckTaskIncome.getCheckType()); qcCheckTaskIncome.setTypeCode("material");//大检验节点 + /**qc_task_user start**/ + String checkManName = qcCheckTaskIncome.getCheckManName(); + String checkManCode = qcCheckTaskIncome.getCheckManCode(); + qcCheckTaskIncome.setCheckManName(""); + qcCheckTaskIncome.setCheckManCode(""); + String[] splitNames = checkManName.split(","); + String[] splitCodes = checkManCode.split(","); + List qcCheckTaskUserList = new ArrayList<>(); + for (int i = 0; i < splitNames.length; i++) { + QcCheckTaskUser qcCheckTaskUser = new QcCheckTaskUser(); + qcCheckTaskUser.setCheckManName(splitNames[i]); + qcCheckTaskUser.setCheckManCode(splitCodes[i]); + qcCheckTaskUser.setCheckNo(qcCheckTaskIncome.getCheckNo()); + qcCheckTaskUser.setBelongTo(beLongId); + qcCheckTaskUserList.add(qcCheckTaskUser); + } qcCheckTaskIncomeMapper.insertQcCheckTaskIncome(qcCheckTaskIncome); + //检验人插入 + qcCheckTaskUserService.insertQcCheckTaskUserList(qcCheckTaskUserList); /**qc_check_task_detail**/ for(QcCheckTaskDetail item:items){ item.setRecordId(IdUtils.fastSimpleUUID()); @@ -162,6 +184,24 @@ public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService { @DS("#header.poolName") public int updateQcCheckTaskIncome(QcCheckTaskIncome qcCheckTaskIncome) { qcCheckTaskIncome.setUpdateTime(DateUtils.getNowDate()); + /**qc_task_user**/ + String checkManName = qcCheckTaskIncome.getCheckManName(); + String checkManCode = qcCheckTaskIncome.getCheckManCode(); + qcCheckTaskIncome.setCheckManName(""); + qcCheckTaskIncome.setCheckManCode(""); + String[] splitNames = checkManName.split(","); + String[] splitCodes = checkManCode.split(","); + + List qcCheckTaskUserList = new ArrayList<>(); + for (int i = 0; i < splitNames.length; i++) { + QcCheckTaskUser qcCheckTaskUser = new QcCheckTaskUser(); + qcCheckTaskUser.setCheckManName(splitNames[i]); + qcCheckTaskUser.setCheckManCode(splitCodes[i]); + qcCheckTaskUser.setCheckNo(qcCheckTaskIncome.getCheckNo()); + qcCheckTaskUser.setBelongTo(qcCheckTaskIncome.getRecordId()); + qcCheckTaskUserList.add(qcCheckTaskUser); + } + qcCheckTaskUserService.updateQcCheckTaskUser(qcCheckTaskUserList); return qcCheckTaskIncomeMapper.updateQcCheckTaskIncome(qcCheckTaskIncome); } @@ -174,6 +214,7 @@ public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService { @Override @DS("#header.poolName") public int deleteQcCheckTaskIncomeByRecordIds(String[] recordIds) { + qcCheckTaskUserService.deleteQcCheckTaskUserByBelongTos(recordIds); return qcCheckTaskIncomeMapper.deleteQcCheckTaskIncomeByRecordIds(recordIds); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskProduceServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskProduceServiceImpl.java index 769112fba..32e76b3d7 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskProduceServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskProduceServiceImpl.java @@ -1,5 +1,6 @@ package com.op.quality.service.impl; +import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; @@ -22,6 +23,7 @@ import com.op.quality.domain.*; import com.op.quality.mapper.QcCheckTaskDetailMapper; import com.op.quality.mapper.QcCheckTypeProjectMapper; import com.op.quality.mapper.QcMaterialGroupDetailMapper; +import com.op.quality.service.IQcCheckTaskUserService; import com.op.system.api.RemoteUserService; import com.op.system.api.domain.SysUser; import com.op.system.api.domain.mes.ProOrderWorkorderDTO; @@ -31,7 +33,11 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.op.quality.mapper.QcCheckTaskProduceMapper; import com.op.quality.service.IQcCheckTaskProduceService; +import org.springframework.transaction.annotation.Propagation; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; @@ -52,42 +58,55 @@ public class QcCheckTaskProduceServiceImpl implements IQcCheckTaskProduceService @Autowired private QcCheckTaskProduceMapper qcCheckTaskProduceMapper; - @Autowired - private QcCheckTypeProjectMapper qcCheckTypeProjectMapper; + @Autowired + private QcCheckTypeProjectMapper qcCheckTypeProjectMapper; - @Autowired - private QcMaterialGroupDetailMapper qcMaterialGroupDetailMapper; + @Autowired + private QcMaterialGroupDetailMapper qcMaterialGroupDetailMapper; + + @Autowired + private QcCheckTaskDetailMapper qcCheckTaskDetailMapper; - @Autowired - private QcCheckTaskDetailMapper qcCheckTaskDetailMapper; @Autowired private RemoteUserService remoteUserService; - /** - * 查询生产过程检验任务 - * - * @param recordId 生产过程检验任务主键 - * @return 生产过程检验任务 - */ - @Override - @DS("#header.poolName") - public QcCheckTaskProduce selectQcCheckTaskProduceByRecordId(String recordId) { - return qcCheckTaskProduceMapper.selectQcCheckTaskProduceByRecordId(recordId); - } + @Autowired + private IQcCheckTaskUserService qcCheckTaskUserService; - /** - * 查询生产过程检验任务列表 - * - * @param qcCheckTaskProduce 生产过程检验任务 - * @return 生产过程检验任务 - */ - @Override - @DS("#header.poolName") - public List selectQcCheckTaskProduceList(QcCheckTaskProduce qcCheckTaskProduce) { - qcCheckTaskProduce.setDelFlag("0"); - qcCheckTaskProduce.setTypeCode("produce"); - return qcCheckTaskProduceMapper.selectQcCheckTaskProduceList(qcCheckTaskProduce); - } + /** + * 查询生产过程检验任务 + * + * @param recordId 生产过程检验任务主键 + * @return 生产过程检验任务 + */ + @Override + @DS("#header.poolName") + public QcCheckTaskProduce selectQcCheckTaskProduceByRecordId(String recordId) { + QcCheckTaskProduce qcCheckTaskProduce = qcCheckTaskProduceMapper.selectQcCheckTaskProduceByRecordId(recordId); + //获取拼接好的检验人员信息 + QcCheckTaskUser qcCheckTaskUser = qcCheckTaskUserService.selectQcCheckTaskUserByBelongTo(recordId); + if (StringUtils.isNotBlank(qcCheckTaskUser.getManNames())) { + qcCheckTaskProduce.setCheckManName(qcCheckTaskUser.getManNames()); + } + if (StringUtils.isNotBlank(qcCheckTaskUser.getManCodes())) { + qcCheckTaskProduce.setCheckManCode(qcCheckTaskUser.getManCodes()); + } + return qcCheckTaskProduce; + } + + /** + * 查询生产过程检验任务列表 + * + * @param qcCheckTaskProduce 生产过程检验任务 + * @return 生产过程检验任务 + */ + @Override + @DS("#header.poolName") + public List selectQcCheckTaskProduceList(QcCheckTaskProduce qcCheckTaskProduce) { + qcCheckTaskProduce.setDelFlag("0"); + qcCheckTaskProduce.setTypeCode("produce"); + return qcCheckTaskProduceMapper.selectQcCheckTaskProduceList(qcCheckTaskProduce); + } /** * 新增生产过程检验任务 @@ -115,8 +134,8 @@ public class QcCheckTaskProduceServiceImpl implements IQcCheckTaskProduceService int liushuiNum = qcCheckTaskProduceMapper.getTodayMaxNum(qcCheckTaskProduce); String liushuiStr = String.format("%04d", liushuiNum); - String createBy = SecurityUtils.getUsername(); - Date nowDate= DateUtils.getNowDate(); + String createBy = SecurityUtils.getUsername(); + Date nowDate = DateUtils.getNowDate(); qcCheckTaskProduce.setCheckNo(bpDD+liushuiStr); @@ -141,37 +160,72 @@ public class QcCheckTaskProduceServiceImpl implements IQcCheckTaskProduceService return 0;//没有找到检测项目 } - /**qc_check_task**/ - String beLongId = IdUtils.fastSimpleUUID(); - qcCheckTaskProduce.setRecordId(beLongId); - qcCheckTaskProduce.setFactoryCode(factoryCode); - qcCheckTaskProduce.setCreateTime(nowDate); - qcCheckTaskProduce.setTypeCode("produce");//大检验节点 - qcCheckTaskProduceMapper.insertQcCheckTaskProduce(qcCheckTaskProduce); - /**qc_check_task_detail**/ - for(QcCheckTaskDetail item:items){ - item.setRecordId(IdUtils.fastSimpleUUID()); - item.setBelongTo(beLongId); - item.setCreateTime(nowDate); - item.setCreateBy(createBy); - item.setFactoryCode(factoryCode); - item.setStatus("Y"); - } - return qcCheckTaskDetailMapper.addBatch(items); - } + /**qc_check_task**/ + String beLongId = IdUtils.fastSimpleUUID(); + qcCheckTaskProduce.setRecordId(beLongId); + qcCheckTaskProduce.setFactoryCode(factoryCode); + qcCheckTaskProduce.setCreateTime(nowDate); + qcCheckTaskProduce.setTypeCode("produce");//大检验节点 + /**qc_task_user start**/ + String checkManName = qcCheckTaskProduce.getCheckManName(); + String checkManCode = qcCheckTaskProduce.getCheckManCode(); + qcCheckTaskProduce.setCheckManName(""); + qcCheckTaskProduce.setCheckManCode(""); + String[] splitNames = checkManName.split(","); + String[] splitCodes = checkManCode.split(","); + List qcCheckTaskUserList = new ArrayList<>(); + for (int i = 0; i < splitNames.length; i++) { + QcCheckTaskUser qcCheckTaskUser = new QcCheckTaskUser(); + qcCheckTaskUser.setCheckManName(splitNames[i]); + qcCheckTaskUser.setCheckManCode(splitCodes[i]); + qcCheckTaskUser.setCheckNo(qcCheckTaskProduce.getCheckNo()); + qcCheckTaskUser.setBelongTo(beLongId); + qcCheckTaskUserList.add(qcCheckTaskUser); + } + qcCheckTaskProduceMapper.insertQcCheckTaskProduce(qcCheckTaskProduce); + //检验人插入 + qcCheckTaskUserService.insertQcCheckTaskUserList(qcCheckTaskUserList); + /**qc_check_task_detail**/ + for (QcCheckTaskDetail item : items) { + item.setRecordId(IdUtils.fastSimpleUUID()); + item.setBelongTo(beLongId); + item.setCreateTime(nowDate); + item.setCreateBy(createBy); + item.setFactoryCode(factoryCode); + item.setStatus("Y"); + } + return qcCheckTaskDetailMapper.addBatch(items); + } - /** - * 修改生产过程检验任务 - * - * @param qcCheckTaskProduce 生产过程检验任务 - * @return 结果 - */ - @Override - @DS("#header.poolName") - public int updateQcCheckTaskProduce(QcCheckTaskProduce qcCheckTaskProduce) { - qcCheckTaskProduce.setUpdateTime(DateUtils.getNowDate()); - return qcCheckTaskProduceMapper.updateQcCheckTaskProduce(qcCheckTaskProduce); - } + /** + * 修改生产过程检验任务 + * + * @param qcCheckTaskProduce 生产过程检验任务 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int updateQcCheckTaskProduce(QcCheckTaskProduce qcCheckTaskProduce) { + qcCheckTaskProduce.setUpdateTime(DateUtils.getNowDate()); + /**qc_task_user**/ + String checkManName = qcCheckTaskProduce.getCheckManName(); + String checkManCode = qcCheckTaskProduce.getCheckManCode(); + qcCheckTaskProduce.setCheckManName(""); + qcCheckTaskProduce.setCheckManCode(""); + String[] splitNames = checkManName.split(","); + String[] splitCodes = checkManCode.split(","); + List qcCheckTaskUserList = new ArrayList<>(); + for (int i = 0; i < splitNames.length; i++) { + QcCheckTaskUser qcCheckTaskUser = new QcCheckTaskUser(); + qcCheckTaskUser.setCheckManName(splitNames[i]); + qcCheckTaskUser.setCheckManCode(splitCodes[i]); + qcCheckTaskUser.setCheckNo(qcCheckTaskProduce.getCheckNo()); + qcCheckTaskUser.setBelongTo(qcCheckTaskProduce.getRecordId()); + qcCheckTaskUserList.add(qcCheckTaskUser); + } + qcCheckTaskUserService.updateQcCheckTaskUser(qcCheckTaskUserList); + return qcCheckTaskProduceMapper.updateQcCheckTaskProduce(qcCheckTaskProduce); + } /** * 批量删除生产过程检验任务 @@ -182,6 +236,7 @@ public class QcCheckTaskProduceServiceImpl implements IQcCheckTaskProduceService @Override @DS("#header.poolName") public int deleteQcCheckTaskProduceByRecordIds(String[] recordIds) { + qcCheckTaskUserService.deleteQcCheckTaskUserByBelongTos(recordIds); return qcCheckTaskProduceMapper.deleteQcCheckTaskProduceByRecordIds(recordIds); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskUserServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskUserServiceImpl.java new file mode 100644 index 000000000..ea4c27eca --- /dev/null +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskUserServiceImpl.java @@ -0,0 +1,155 @@ +package com.op.quality.service.impl; + +import java.util.List; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.op.common.core.utils.DateUtils; +import com.op.common.core.utils.StringUtils; +import com.op.common.core.utils.uuid.IdUtils; +import com.op.common.security.utils.SecurityUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.op.quality.mapper.QcCheckTaskUserMapper; +import com.op.quality.domain.QcCheckTaskUser; +import com.op.quality.service.IQcCheckTaskUserService; +import org.springframework.util.CollectionUtils; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.servlet.http.HttpServletRequest; + +/** + * 来料检验任务--检查人Service业务层处理 + * + * @author Open Platform + * @date 2023-12-22 + */ +@Service +public class QcCheckTaskUserServiceImpl implements IQcCheckTaskUserService { + @Autowired + private QcCheckTaskUserMapper qcCheckTaskUserMapper; + + /** + * 查询来料检验任务--检查人 + * + * @param recordId 来料检验任务--检查人主键 + * @return 来料检验任务--检查人 + */ + @Override + @DS("#header.poolName") + public QcCheckTaskUser selectQcCheckTaskUserByRecordId(String recordId) { + return qcCheckTaskUserMapper.selectQcCheckTaskUserByRecordId(recordId); + } + + /** + * 查询来料检验任务--检查人列表 + * + * @param qcCheckTaskUser 来料检验任务--检查人 + * @return 来料检验任务--检查人 + */ + @Override + @DS("#header.poolName") + public List selectQcCheckTaskUserList(QcCheckTaskUser qcCheckTaskUser) { + return qcCheckTaskUserMapper.selectQcCheckTaskUserList(qcCheckTaskUser); + } + + /** + * 新增来料检验任务--检查人 + * + * @param qcCheckTaskUser 来料检验任务--检查人 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int insertQcCheckTaskUser(QcCheckTaskUser qcCheckTaskUser) { + qcCheckTaskUser.setCreateTime(DateUtils.getNowDate()); + return qcCheckTaskUserMapper.insertQcCheckTaskUser(qcCheckTaskUser); + } + + /** + * 修改来料检验任务--检查人 + * + * @param qcCheckTaskUser 来料检验任务--检查人 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int updateQcCheckTaskUser(List qcCheckTaskUserList) { + if (CollectionUtils.isEmpty(qcCheckTaskUserList)){ + return 0; + } + String belongTo = qcCheckTaskUserList.get(0).getBelongTo(); + //根据belongTo删除 + qcCheckTaskUserMapper.deleteQcCheckTaskUserByBelongTo(belongTo); + + //获取当前所选工厂 + HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); + String key = "#header.poolName"; + String factoryCode = request.getHeader(key.substring(8)).replace("ds_", ""); + //遍历赋值 + for (QcCheckTaskUser qcCheckTaskUser : qcCheckTaskUserList){ + qcCheckTaskUser.setRecordId(IdUtils.fastSimpleUUID()); + qcCheckTaskUser.setCreateTime(DateUtils.getNowDate()); + qcCheckTaskUser.setCreateBy(SecurityUtils.getUsername()); + qcCheckTaskUser.setFactoryCode(factoryCode); + } + //重新插入数据 + return qcCheckTaskUserMapper.insertQcCheckTaskUserList(qcCheckTaskUserList); + } + + /** + * 批量删除来料检验任务--检查人 + * + * @param recordIds 需要删除的来料检验任务--检查人主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteQcCheckTaskUserByRecordIds(String[] recordIds) { + return qcCheckTaskUserMapper.deleteQcCheckTaskUserByRecordIds(recordIds); + } + + @Override + @DS("#header.poolName") + public int deleteQcCheckTaskUserByBelongTos(String[] belongToArray) { + return qcCheckTaskUserMapper.deleteQcCheckTaskUserByBelongTos(belongToArray); + } + + /** + * 删除来料检验任务--检查人信息 + * + * @param recordId 来料检验任务--检查人主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteQcCheckTaskUserByRecordId(String recordId) { + return qcCheckTaskUserMapper.deleteQcCheckTaskUserByRecordId(recordId); + } + + @Override + @DS("#header.poolName") + public int insertQcCheckTaskUserList(List qcCheckTaskUserList) { + if (CollectionUtils.isEmpty(qcCheckTaskUserList)){ + return 0; + } + //获取当前所选工厂 + HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); + String key = "#header.poolName"; + String factoryCode = request.getHeader(key.substring(8)).replace("ds_", ""); + //遍历赋值 + for (QcCheckTaskUser qcCheckTaskUser : qcCheckTaskUserList){ + qcCheckTaskUser.setRecordId(IdUtils.fastSimpleUUID()); + qcCheckTaskUser.setCreateTime(DateUtils.getNowDate()); + qcCheckTaskUser.setCreateBy(SecurityUtils.getUsername()); + qcCheckTaskUser.setFactoryCode(factoryCode); + } + return qcCheckTaskUserMapper.insertQcCheckTaskUserList(qcCheckTaskUserList); + } + + @Override + @DS("#header.poolName") + public QcCheckTaskUser selectQcCheckTaskUserByBelongTo(String belongTo) { + return qcCheckTaskUserMapper.selectQcCheckTaskUserByBelongTo(belongTo); + } +} diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskWarehousingServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskWarehousingServiceImpl.java index 3fd4328ea..bdc73e262 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskWarehousingServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskWarehousingServiceImpl.java @@ -1,24 +1,24 @@ package com.op.quality.service.impl; +import java.util.ArrayList; import java.util.Date; import java.util.List; +import ch.qos.logback.core.net.SyslogOutputStream; import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder; import com.op.common.core.utils.DateUtils; import com.op.common.core.utils.StringUtils; import com.op.common.core.utils.uuid.IdUtils; import com.op.common.security.utils.SecurityUtils; -import com.op.quality.domain.QcCheckTaskDetail; -import com.op.quality.domain.QcCheckTypeProject; -import com.op.quality.domain.QcMaterialGroupDetail; +import com.op.quality.domain.*; import com.op.quality.mapper.QcCheckTaskDetailMapper; import com.op.quality.mapper.QcCheckTypeProjectMapper; import com.op.quality.mapper.QcMaterialGroupDetailMapper; +import com.op.quality.service.IQcCheckTaskUserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.op.quality.mapper.QcCheckTaskWarehousingMapper; -import com.op.quality.domain.QcCheckTaskWarehousing; import com.op.quality.service.IQcCheckTaskWarehousingService; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; @@ -47,6 +47,9 @@ public class QcCheckTaskWarehousingServiceImpl implements IQcCheckTaskWarehousin @Autowired private QcCheckTaskDetailMapper qcCheckTaskDetailMapper; + @Autowired + private IQcCheckTaskUserService qcCheckTaskUserService; + /** * 查询成品入库检验任务 * @@ -128,7 +131,25 @@ public class QcCheckTaskWarehousingServiceImpl implements IQcCheckTaskWarehousin qcCheckTaskWarehousing.setFactoryCode(factoryCode); qcCheckTaskWarehousing.setCreateTime(nowDate); qcCheckTaskWarehousing.setTypeCode("product");//大检验节点 + /**qc_task_user start**/ + String checkManName = qcCheckTaskWarehousing.getCheckManName(); + String checkManCode = qcCheckTaskWarehousing.getCheckManCode(); + qcCheckTaskWarehousing.setCheckManName(""); + qcCheckTaskWarehousing.setCheckManCode(""); + String[] splitNames = checkManName.split(","); + String[] splitCodes = checkManCode.split(","); + List qcCheckTaskUserList = new ArrayList<>(); + for (int i = 0; i < splitNames.length; i++) { + QcCheckTaskUser qcCheckTaskUser = new QcCheckTaskUser(); + qcCheckTaskUser.setCheckManName(splitNames[i]); + qcCheckTaskUser.setCheckManCode(splitCodes[i]); + qcCheckTaskUser.setCheckNo(qcCheckTaskWarehousing.getCheckNo()); + qcCheckTaskUser.setBelongTo(beLongId); + qcCheckTaskUserList.add(qcCheckTaskUser); + } qcCheckTaskWarehousingMapper.insertQcCheckTaskWarehousing(qcCheckTaskWarehousing); + //检验人插入 + qcCheckTaskUserService.insertQcCheckTaskUserList(qcCheckTaskUserList); /**qc_check_task_detail**/ for(QcCheckTaskDetail item:items){ item.setRecordId(IdUtils.fastSimpleUUID()); @@ -151,6 +172,23 @@ public class QcCheckTaskWarehousingServiceImpl implements IQcCheckTaskWarehousin @DS("#header.poolName") public int updateQcCheckTaskWarehousing(QcCheckTaskWarehousing qcCheckTaskWarehousing) { qcCheckTaskWarehousing.setUpdateTime(DateUtils.getNowDate()); + /**qc_task_user**/ + String checkManName = qcCheckTaskWarehousing.getCheckManName(); + String checkManCode = qcCheckTaskWarehousing.getCheckManCode(); + qcCheckTaskWarehousing.setCheckManName(""); + qcCheckTaskWarehousing.setCheckManCode(""); + String[] splitNames = checkManName.split(","); + String[] splitCodes = checkManCode.split(","); + List qcCheckTaskUserList = new ArrayList<>(); + for (int i = 0; i < splitNames.length; i++) { + QcCheckTaskUser qcCheckTaskUser = new QcCheckTaskUser(); + qcCheckTaskUser.setCheckManName(splitNames[i]); + qcCheckTaskUser.setCheckManCode(splitCodes[i]); + qcCheckTaskUser.setCheckNo(qcCheckTaskWarehousing.getCheckNo()); + qcCheckTaskUser.setBelongTo(qcCheckTaskWarehousing.getRecordId()); + qcCheckTaskUserList.add(qcCheckTaskUser); + } + qcCheckTaskUserService.updateQcCheckTaskUser(qcCheckTaskUserList); return qcCheckTaskWarehousingMapper.updateQcCheckTaskWarehousing(qcCheckTaskWarehousing); } @@ -163,6 +201,7 @@ public class QcCheckTaskWarehousingServiceImpl implements IQcCheckTaskWarehousin @Override @DS("#header.poolName") public int deleteQcCheckTaskWarehousingByRecordIds(String[] recordIds) { + qcCheckTaskUserService.deleteQcCheckTaskUserByBelongTos(recordIds); return qcCheckTaskWarehousingMapper.deleteQcCheckTaskWarehousingByRecordIds(recordIds); } diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml index 429cf9f7e..61a0faf90 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml @@ -304,4 +304,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{recordId} + + diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskProduceMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskProduceMapper.xml index 9d3112278..3dfb0c71f 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskProduceMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskProduceMapper.xml @@ -172,7 +172,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" del_flag, check_type, type_code, - sample_quality, #{recordId}, @@ -210,7 +209,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{delFlag}, #{checkType}, #{typeCode}, - #{sampleQuality}, @@ -249,7 +247,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update_time = #{updateTime}, factory_code = #{factoryCode}, del_flag = #{delFlag}, - sample_quality = #{sampleQuality}, where record_id = #{recordId} @@ -264,4 +261,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{recordId} + + diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskUserMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskUserMapper.xml new file mode 100644 index 000000000..06375fb7e --- /dev/null +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskUserMapper.xml @@ -0,0 +1,178 @@ + + + + + + + + + + + + + + + + + + + + + + + select record_id, check_no, check_man_code, check_man_name, attr1, attr2, attr3, attr4, create_by, create_time, update_by, update_time, factory_code, del_flag from qc_check_task_user + + + + + + + + insert into qc_check_task_user + + record_id, + check_no, + check_man_code, + check_man_name, + attr1, + attr2, + attr3, + attr4, + create_by, + create_time, + update_by, + update_time, + factory_code, + del_flag, + belong_to, + + + #{recordId}, + #{checkNo}, + #{checkManCode}, + #{checkManName}, + #{attr1}, + #{attr2}, + #{attr3}, + #{attr4}, + #{createBy}, + #{createTime}, + #{updateBy}, + #{updateTime}, + #{factoryCode}, + #{delFlag}, + #{belongTo}, + + + + + update qc_check_task_user + + check_no = #{checkNo}, + check_man_code = #{checkManCode}, + check_man_name = #{checkManName}, + attr1 = #{attr1}, + attr2 = #{attr2}, + attr3 = #{attr3}, + attr4 = #{attr4}, + create_by = #{createBy}, + create_time = #{createTime}, + update_by = #{updateBy}, + update_time = #{updateTime}, + factory_code = #{factoryCode}, + del_flag = #{delFlag}, + belong_to = #{belongTo}, + + where record_id = #{recordId} + + + + delete from qc_check_task_user where record_id = #{recordId} + + + + delete from qc_check_task_user where record_id in + + #{recordId} + + + + + delete from qc_check_task_user where belong_to = #{belongTo} + + + + insert into qc_check_task_user( + record_id, + check_no, + check_man_code, + check_man_name, + attr1, + attr2, + attr3, + attr4, + create_by, + create_time, + update_by, + update_time, + factory_code, + del_flag, + belong_to + ) + values + + ( + #{item.recordId}, + #{item.checkNo}, + #{item.checkManCode}, + #{item.checkManName}, + #{item.attr1}, + #{item.attr2}, + #{item.attr3}, + #{item.attr4}, + #{item.createBy}, + #{item.createTime}, + #{item.updateBy}, + #{item.updateTime}, + #{item.factoryCode}, + #{item.delFlag}, + #{item.belongTo} + ) + + + + + + + delete from qc_check_task_user where belong_to in + + #{belongTo} + + + + \ No newline at end of file From 30fac0e8dd301764c1040b4f62949bf1ae7a4209 Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Mon, 25 Dec 2023 17:23:31 +0800 Subject: [PATCH 14/25] =?UTF-8?q?=E8=B4=A8=E9=87=8F=E8=BF=87=E7=A8=8B?= =?UTF-8?q?=E5=B7=A1=E6=A3=80+=E6=9D=A5=E6=96=99=E6=A3=80=E9=AA=8C?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E6=8E=A5=E5=8F=A3+=E6=8A=A5=E5=B7=A5sql?= =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/domain/quality/QcUserMaterialDTO.java | 19 +++++- .../service/impl/IWCInterfaceServiceImpl.java | 19 +++--- .../mapper/mes/MesReportWorkMapper.xml | 3 +- .../java/com/op/open/mapper/OpenMapper.java | 4 +- .../op/open/service/impl/OpenServiceImpl.java | 26 +++++--- .../main/resources/mapper/open/OpenMapper.xml | 17 ++++- .../mapper/QcCheckTaskIncomeMapper.java | 5 ++ .../impl/QcCheckTaskIncomeServiceImpl.java | 63 ++++++++++++++----- .../impl/QcCheckTaskUserServiceImpl.java | 18 +++--- .../quality/QcCheckTaskIncomeMapper.xml | 21 +++++++ .../quality/QcCheckTaskProduceMapper.xml | 13 ++-- .../mapper/quality/QcCheckTypeMapper.xml | 3 +- .../mapper/quality/QcProCheckMapper.xml | 3 +- 13 files changed, 160 insertions(+), 54 deletions(-) diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/domain/quality/QcUserMaterialDTO.java b/op-api/op-api-system/src/main/java/com/op/system/api/domain/quality/QcUserMaterialDTO.java index 526c9dce0..4d593d40f 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/domain/quality/QcUserMaterialDTO.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/domain/quality/QcUserMaterialDTO.java @@ -18,7 +18,8 @@ public class QcUserMaterialDTO extends BaseEntity { /** id */ private String id; - + private String belongTo; + private String checkNo; /** 员工编码 */ @Excel(name = "员工编码") private String userCode; @@ -75,6 +76,22 @@ public class QcUserMaterialDTO extends BaseEntity { private List selectedValues; + public String getBelongTo() { + return belongTo; + } + + public void setBelongTo(String belongTo) { + this.belongTo = belongTo; + } + + public String getCheckNo() { + return checkNo; + } + + public void setCheckNo(String checkNo) { + this.checkNo = checkNo; + } + public void setId(String id) { this.id = id; } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java index a20c67ace..7abda12e4 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java @@ -327,15 +327,16 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { logger.info("==========================母工单报工结束"+JSONObject.toJSONString(sapR)); //最终报工标识且sap报工成功:关闭子母工单 MesReportWork endReport = mesReportWorkMapper.getEndReport(pHzWork); - if("1".equals(endReport.getEndReport())&&sapR.getCode()==200){ - MesReportWork rworkVo = new MesReportWork(); - rworkVo.setStatus("w3"); - rworkVo.setUpdateTime(DateUtils.getNowDate()); - rworkVo.setUpdateBy(SecurityUtils.getUsername()); - rworkVo.setWorkorderCode(belongWorkOrder); - //pro_work_order status->w3报工--belong_work_order - mesReportWorkMapper.updateOrderWorkStatus(rworkVo); - } +//-----改为由上位机触发 +// if("1".equals(endReport.getEndReport())&&sapR.getCode()==200){ +// MesReportWork rworkVo = new MesReportWork(); +// rworkVo.setStatus("w3"); +// rworkVo.setUpdateTime(DateUtils.getNowDate()); +// rworkVo.setUpdateBy(SecurityUtils.getUsername()); +// rworkVo.setWorkorderCode(belongWorkOrder); +// //pro_work_order status->w3报工--belong_work_order +// mesReportWorkMapper.updateOrderWorkStatus(rworkVo); +// } } return R.ok(); } diff --git a/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml b/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml index 0196be053..2c11f765d 100644 --- a/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml +++ b/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml @@ -435,8 +435,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" from pro_order_workorder pow left join base_shifts_t s on pow.shift_id = s.Shift_Id left join pro_order_workorder pows on pows.parent_order = pow.workorder_code + left join mes_report_work mrw on mrw.workorder_code = pow.workorder_code where pow.del_flag = '0' and pow.status = 'w2' and pow.parent_order ='0' - + and mrw.upload_status != '1' and pow.workorder_code like concat('%', #{workorderCode}, '%') diff --git a/op-modules/op-open/src/main/java/com/op/open/mapper/OpenMapper.java b/op-modules/op-open/src/main/java/com/op/open/mapper/OpenMapper.java index 07ca7e425..f363686b5 100644 --- a/op-modules/op-open/src/main/java/com/op/open/mapper/OpenMapper.java +++ b/op-modules/op-open/src/main/java/com/op/open/mapper/OpenMapper.java @@ -76,6 +76,8 @@ public interface OpenMapper { public int addBatch(@Param("list") List items); - QcUserMaterialDTO getUserByMaterial(String materialCode); + List getUserByMaterial(String materialCode); + + public int addCheckUsers(@Param("list") List users); } diff --git a/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java b/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java index d1ecd5f1d..11dc854f1 100644 --- a/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java +++ b/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java @@ -295,7 +295,7 @@ public class OpenServiceImpl implements OpenService { Date nowDate= DateUtils.getNowDate(); //获取当前所选工厂 String factoryCode = qcCheckTaskProduce.getFactoryCode(); - + String beLongId = IdUtils.fastSimpleUUID(); qcCheckTaskProduce.setCheckNo(bpDD+liushuiStr); /**取检测项**/ @@ -304,14 +304,24 @@ public class OpenServiceImpl implements OpenService { qctp.setMaterialCode(qcCheckTaskProduce.getMaterialCode());//特性 /**qc_user_material取默认检查人**/ - QcUserMaterialDTO qcUserMaterialDTO = openMapper.getUserByMaterial(qcCheckTaskProduce.getMaterialCode()); - if(qcUserMaterialDTO == null){ - qcCheckTaskProduce.setCheckManCode("mobile"); - qcCheckTaskProduce.setCheckManName("手持测试用户"); + List users = openMapper.getUserByMaterial(qcCheckTaskProduce.getMaterialCode()); + if(CollectionUtils.isEmpty(users)){ + QcUserMaterialDTO dto0 = new QcUserMaterialDTO(); + dto0.setUserCode("mobile"); + dto0.setUserName("手持测试用户"); + users.add(dto0); }else{ - qcCheckTaskProduce.setCheckManCode(qcUserMaterialDTO.getUserCode()); - qcCheckTaskProduce.setCheckManName(qcUserMaterialDTO.getUserName()); + for(QcUserMaterialDTO user:users){ + user.setId(IdUtils.fastSimpleUUID()); + user.setBelongTo(beLongId); + user.setCheckNo(qcCheckTaskProduce.getCheckNo()); + user.setCreateBy(createBy); + user.setFactoryCode(factoryCode); + user.setCreateTime(nowDate); + } } + int m=openMapper.addCheckUsers(users); + logger.info("检查人新增"+m+"成功"); /**qc_check_type_project**/ List items = openMapper.getTPByTypeMaterial(qctp); @@ -331,7 +341,7 @@ public class OpenServiceImpl implements OpenService { } /**qc_check_task**/ - String beLongId = IdUtils.fastSimpleUUID(); + qcCheckTaskProduce.setRecordId(beLongId); qcCheckTaskProduce.setFactoryCode(factoryCode); qcCheckTaskProduce.setCreateTime(nowDate); diff --git a/op-modules/op-open/src/main/resources/mapper/open/OpenMapper.xml b/op-modules/op-open/src/main/resources/mapper/open/OpenMapper.xml index b12931ec6..376db7d36 100644 --- a/op-modules/op-open/src/main/resources/mapper/open/OpenMapper.xml +++ b/op-modules/op-open/src/main/resources/mapper/open/OpenMapper.xml @@ -196,10 +196,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" order by qctp.sort @@ -358,5 +357,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ) + + insert into qc_check_task_user( + record_id,belong_to,check_no, + check_man_code,check_man_name, + create_by,create_time,factory_code + ) values + + ( + #{item.id},#{item.belongTo},#{item.checkNo}, + #{item.userCode},#{item.userName}, + #{item.createBy},#{item.createTime},#{item.factoryCode} + ) + + diff --git a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskIncomeMapper.java b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskIncomeMapper.java index 8ace14a87..8ca914082 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskIncomeMapper.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskIncomeMapper.java @@ -8,6 +8,7 @@ import com.op.quality.domain.QcCheckTaskIncome; import com.op.quality.domain.QcSupplier; import com.op.system.api.domain.SysDictData; import com.op.system.api.domain.SysUser; +import com.op.system.api.domain.quality.QcUserMaterialDTO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -88,4 +89,8 @@ public interface QcCheckTaskIncomeMapper { String getTypeCode(String checkType); List selectQcCheckTaskCheckNoByRecordIds(String[] recordIds); + + List getUserByMaterial(String materialCode); + + int addCheckUsers(@Param("list") List users); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java index 8b4a925aa..6aaf0ed8b 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java @@ -17,6 +17,7 @@ import com.op.quality.mapper.*; import com.op.quality.service.IQcCheckTaskProduceService; import com.op.quality.service.IQcCheckTaskUserService; import com.op.system.api.domain.SysUser; +import com.op.system.api.domain.quality.QcUserMaterialDTO; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -144,24 +145,49 @@ public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService { //String typeCode = qcCheckTaskIncomeMapper.getTypeCode(qcCheckTaskIncome.getCheckType()); qcCheckTaskIncome.setTypeCode("material");//大检验节点 /**qc_task_user start**/ - String checkManName = qcCheckTaskIncome.getCheckManName(); - String checkManCode = qcCheckTaskIncome.getCheckManCode(); - qcCheckTaskIncome.setCheckManName(""); - qcCheckTaskIncome.setCheckManCode(""); - String[] splitNames = checkManName.split(","); - String[] splitCodes = checkManCode.split(","); - List qcCheckTaskUserList = new ArrayList<>(); - for (int i = 0; i < splitNames.length; i++) { - QcCheckTaskUser qcCheckTaskUser = new QcCheckTaskUser(); - qcCheckTaskUser.setCheckManName(splitNames[i]); - qcCheckTaskUser.setCheckManCode(splitCodes[i]); - qcCheckTaskUser.setCheckNo(qcCheckTaskIncome.getCheckNo()); - qcCheckTaskUser.setBelongTo(beLongId); - qcCheckTaskUserList.add(qcCheckTaskUser); + if(StringUtils.isNotBlank(qcCheckTaskIncome.getCheckManName())){//管理系统创建任务 + String checkManName = qcCheckTaskIncome.getCheckManName(); + String checkManCode = qcCheckTaskIncome.getCheckManCode(); + qcCheckTaskIncome.setCheckManName(""); + qcCheckTaskIncome.setCheckManCode(""); + String[] splitNames = checkManName.split(","); + String[] splitCodes = checkManCode.split(","); + List qcCheckTaskUserList = new ArrayList<>(); + for (int i = 0; i < splitNames.length; i++) { + QcCheckTaskUser qcCheckTaskUser = new QcCheckTaskUser(); + qcCheckTaskUser.setCheckManName(splitNames[i]); + qcCheckTaskUser.setCheckManCode(splitCodes[i]); + qcCheckTaskUser.setCheckNo(qcCheckTaskIncome.getCheckNo()); + qcCheckTaskUser.setBelongTo(beLongId); + qcCheckTaskUserList.add(qcCheckTaskUser); + } + //检验人插入 + qcCheckTaskUserService.insertQcCheckTaskUserList(qcCheckTaskUserList); + }else{//上位机触发 + qcCheckTaskIncome.setCheckManName(""); + qcCheckTaskIncome.setCheckManCode(""); + /**qc_user_material取默认检查人**/ + List users = qcCheckTaskIncomeMapper.getUserByMaterial(qcCheckTaskIncome.getMaterialCode()); + if(CollectionUtils.isEmpty(users)){ + QcUserMaterialDTO dto0 = new QcUserMaterialDTO(); + dto0.setUserCode("mobile"); + dto0.setUserName("手持测试用户"); + users.add(dto0); + }else{ + for(QcUserMaterialDTO user:users){ + user.setId(IdUtils.fastSimpleUUID()); + user.setBelongTo(beLongId); + user.setCheckNo(qcCheckTaskIncome.getCheckNo()); + user.setCreateBy(createBy); + user.setFactoryCode(factoryCode); + user.setCreateTime(nowDate); + } + } + int m=qcCheckTaskIncomeMapper.addCheckUsers(users); + logger.info("检查人新增"+m+"成功"); } qcCheckTaskIncomeMapper.insertQcCheckTaskIncome(qcCheckTaskIncome); - //检验人插入 - qcCheckTaskUserService.insertQcCheckTaskUserList(qcCheckTaskUserList); + /**qc_check_task_detail**/ for(QcCheckTaskDetail item:items){ item.setRecordId(IdUtils.fastSimpleUUID()); @@ -312,10 +338,11 @@ public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService { qcCheckTaskIncome.setCheckStatus("2"); qcCheckTaskIncome.setCheckResult(result); qcCheckTaskIncome.setCheckTime(DateUtils.getNowDate()); + qcCheckTaskIncome.setCheckManCode(SecurityUtils.getUsername()); n = qcCheckTaskIncomeMapper.updateQcCheckTaskIncome(qcCheckTaskIncome); /**wms_raw_order_in-->quality_status->**/ - qcCheckTaskIncome.setCheckResult(result.equals("Y")?"1":"0"); + qcCheckTaskIncome.setCheckResult(result.equals("Y")?"1":"2"); qcCheckUnqualifiedMapper.updateQualityStatus(qcCheckTaskIncome); }else if("produce".equals(qcCheckTaskIncome.getTypeCode())){ QcCheckTaskProduce qcCheckTaskProduce = new QcCheckTaskProduce(); @@ -323,6 +350,7 @@ public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService { qcCheckTaskProduce.setRecordId(recordId); qcCheckTaskProduce.setCheckResult(result); qcCheckTaskProduce.setCheckTime(DateUtils.getNowDate()); + qcCheckTaskProduce.setCheckManCode(SecurityUtils.getUsername()); n = qcCheckTaskProduceMapper.updateQcCheckTaskProduce(qcCheckTaskProduce); @@ -335,6 +363,7 @@ public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService { warehousing.setRecordId(recordId); warehousing.setCheckResult(result); warehousing.setCheckTime(DateUtils.getNowDate()); + warehousing.setCheckManCode(SecurityUtils.getUsername()); n = qcCheckTaskWarehousingMapper.updateQcCheckTaskWarehousing(warehousing); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskUserServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskUserServiceImpl.java index ea4c27eca..ef37013ce 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskUserServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskUserServiceImpl.java @@ -1,5 +1,6 @@ package com.op.quality.service.impl; +import java.util.Date; import java.util.List; import com.baomidou.dynamic.datasource.annotation.DS; @@ -20,7 +21,7 @@ import javax.servlet.http.HttpServletRequest; /** * 来料检验任务--检查人Service业务层处理 - * + * * @author Open Platform * @date 2023-12-22 */ @@ -31,7 +32,7 @@ public class QcCheckTaskUserServiceImpl implements IQcCheckTaskUserService { /** * 查询来料检验任务--检查人 - * + * * @param recordId 来料检验任务--检查人主键 * @return 来料检验任务--检查人 */ @@ -43,7 +44,7 @@ public class QcCheckTaskUserServiceImpl implements IQcCheckTaskUserService { /** * 查询来料检验任务--检查人列表 - * + * * @param qcCheckTaskUser 来料检验任务--检查人 * @return 来料检验任务--检查人 */ @@ -55,7 +56,7 @@ public class QcCheckTaskUserServiceImpl implements IQcCheckTaskUserService { /** * 新增来料检验任务--检查人 - * + * * @param qcCheckTaskUser 来料检验任务--检查人 * @return 结果 */ @@ -68,7 +69,7 @@ public class QcCheckTaskUserServiceImpl implements IQcCheckTaskUserService { /** * 修改来料检验任务--检查人 - * + * * @param qcCheckTaskUser 来料检验任务--检查人 * @return 结果 */ @@ -99,7 +100,7 @@ public class QcCheckTaskUserServiceImpl implements IQcCheckTaskUserService { /** * 批量删除来料检验任务--检查人 - * + * * @param recordIds 需要删除的来料检验任务--检查人主键 * @return 结果 */ @@ -117,7 +118,7 @@ public class QcCheckTaskUserServiceImpl implements IQcCheckTaskUserService { /** * 删除来料检验任务--检查人信息 - * + * * @param recordId 来料检验任务--检查人主键 * @return 结果 */ @@ -138,9 +139,10 @@ public class QcCheckTaskUserServiceImpl implements IQcCheckTaskUserService { String key = "#header.poolName"; String factoryCode = request.getHeader(key.substring(8)).replace("ds_", ""); //遍历赋值 + Date nowTime = DateUtils.getNowDate(); for (QcCheckTaskUser qcCheckTaskUser : qcCheckTaskUserList){ qcCheckTaskUser.setRecordId(IdUtils.fastSimpleUUID()); - qcCheckTaskUser.setCreateTime(DateUtils.getNowDate()); + qcCheckTaskUser.setCreateTime(nowTime); qcCheckTaskUser.setCreateBy(SecurityUtils.getUsername()); qcCheckTaskUser.setFactoryCode(factoryCode); } diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml index 61a0faf90..53b401f51 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml @@ -230,6 +230,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + update qc_check_task @@ -270,6 +271,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update qc_check_task set check_status = #{checkStatus}, + check_man_code = #{updateBy}, check_time = #{checkTime}, sample_quality = #{sampleQuality}, noOk_quality = #{noOkQuality}, @@ -311,4 +313,23 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{recordId} + + + insert into qc_check_task_user( + record_id,belong_to,check_no, + check_man_code,check_man_name, + create_by,create_time,factory_code + ) values + + ( + #{item.id},#{item.belongTo},#{item.checkNo}, + #{item.userCode},#{item.userName}, + #{item.createBy},#{item.createTime},#{item.factoryCode} + ) + + diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskProduceMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskProduceMapper.xml index 3dfb0c71f..1ad7a3206 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskProduceMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskProduceMapper.xml @@ -119,15 +119,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" e.workshop_code supplierCode, e.workshop_name supplierName, pow.product_date incomeTime, - task.createTime + task.createTime, + task.order_no orderNo, + task.check_loc checkLoc from pro_order_workorder pow left join pro_order_workorder_batch powb on powb.workorder_id = pow.workorder_id left join base_equipment e on e.equipment_code = pow.workorder_name left join ( - select max(create_time) createTime,income_batch_no from qc_check_task - where type_code = 'produce' and income_batch_no='20270104LJ20240105CBRA0L' - - GROUP BY income_batch_no + select max(create_time) createTime,income_batch_no,order_no,check_loc + from qc_check_task + where type_code = 'produce' + and CONVERT(varchar(10),income_time, 120) = CONVERT(varchar(10),GETDATE(), 120) + GROUP BY income_batch_no,order_no,check_loc ) task on task.income_batch_no = powb.batch_code where pow.status = 'w2' and pow.parent_order = '0' and pow.del_flag ='0' and powb.del_flag = '0' and pow.product_date >= '2023-12-22' diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTypeMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTypeMapper.xml index 298e7dfc1..79d641439 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTypeMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTypeMapper.xml @@ -48,7 +48,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" '检验任务' attr1 from qc_check_task qct left join qc_check_type qc on qct.check_type = qc.order_code - where qct.check_status = '0' and qct.check_man_code = #{checkManCode} + left join qc_check_task_user qctu on qctu.belong_to = qct.record_id + where qct.check_status = '0' and qctu.check_man_code = #{checkManCode} group by qct.check_type,qc.check_name union all select '','', diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcProCheckMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcProCheckMapper.xml index c08df09b7..6eaf1b82e 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcProCheckMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcProCheckMapper.xml @@ -256,10 +256,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" qct.status,qct.create_by,qct.create_time,qct.check_type, qct.noOk_quality,qct.aNoOkquality,qct.bNoOkquality,qct.cNoOkquality,qct.sample_quality from qc_check_task qct + left join qc_check_task_user qctu on qctu.belong_to = qct.record_id and qct.del_flag = '0' and qct.check_type = #{checkType} - and qct.check_man_code = #{checkManCode} + and qctu.check_man_code = #{checkManCode} and qct.check_status in (${checkStatus}) order by qct.create_time desc From 3bd7eeb1ed3431801f42a88b1bb71edbb9bfbbfc Mon Sep 17 00:00:00 2001 From: wws <18630710203@163.com> Date: Tue, 26 Dec 2023 11:12:09 +0800 Subject: [PATCH 15/25] =?UTF-8?q?=E7=BB=B4=E4=BF=AE/=E4=BF=9D=E5=85=BB-?= =?UTF-8?q?=E5=A4=87=E4=BB=B6=E5=8D=95=E4=BB=B7=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/op/device/mapper/EquSpareApplyMapper.java | 8 ++++++++ .../service/impl/DeviceInterfaceServiceImpl.java | 15 --------------- .../device/service/impl/DevicePDAServiceImpl.java | 12 ++++++++++++ .../device/service/impl/EquOrderServiceImpl.java | 6 ++++++ .../impl/EquRepairWorkOrderServiceImpl.java | 9 +++++++++ .../mapper/device/EquSpareApplyMapper.xml | 7 +++++++ 6 files changed, 42 insertions(+), 15 deletions(-) diff --git a/op-modules/op-device/src/main/java/com/op/device/mapper/EquSpareApplyMapper.java b/op-modules/op-device/src/main/java/com/op/device/mapper/EquSpareApplyMapper.java index c4e8580b1..77355cb76 100644 --- a/op-modules/op-device/src/main/java/com/op/device/mapper/EquSpareApplyMapper.java +++ b/op-modules/op-device/src/main/java/com/op/device/mapper/EquSpareApplyMapper.java @@ -1,5 +1,6 @@ package com.op.device.mapper; +import java.math.BigDecimal; import java.util.List; import com.op.device.domain.EquRepairWorkOrder; @@ -93,4 +94,11 @@ public interface EquSpareApplyMapper { * @param id */ void delEquSpareApplyByApplyId(String id); + + /** + * 通过关联工单获取备件费用 + * @param orderCode + * @return + */ + BigDecimal getSparePartsCost(String orderCode); } diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java index 0b9b43d8a..220857f92 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/DeviceInterfaceServiceImpl.java @@ -30,10 +30,6 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { @Autowired private DeviceInterfaceMapper deviceInterfaceMapper; - @Autowired - private EquOperationRecordMapper equOperationRecordMapper; - @Autowired - private EquOperationMapper equOperationMapper; /** * 获取待维修的维修工单 @@ -102,17 +98,6 @@ public class DeviceInterfaceServiceImpl implements IDeviceInterfaceService { } } - // 排序TOP10 - - // 假数据 -// Random random = new Random(); -// List test = new ArrayList<>(); -// for (int i = 0 ; i < 30 ; i++) { -// IEquipmentVO vo = new IEquipmentVO(); -// vo.setRapairQuantity(random.nextDouble()); -// test.add(vo); -// } - // 按照raparQuantity字段进行排序,并使用subList获取前10个结果 List top10 = equipmentVOList.stream() .sorted(Comparator.comparingDouble(IEquipmentVO::getRapairQuantity)) // 排序 diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java index b31252149..ffe5ad7d1 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/DevicePDAServiceImpl.java @@ -362,6 +362,12 @@ public class DevicePDAServiceImpl implements IDevicePDAService { // 创建设备对象用于更新设备状态 Equipment equ = new Equipment(); equ.setEquipmentCode(equOrder.getEquipmentCode()); + + // 费用 + BigDecimal sparePartsCost = equSpareApplyMapper.getSparePartsCost(equOrder.getOrderCode()); + BigDecimal orderCost = equOrder.getOrderCost(); + equOrder.setOrderCost(sparePartsCost.add(orderCost)); + // 更新设备状态为正常运行 equ.setStatus("1"); equOrderMapper.updateEquipmentStatus(equ); @@ -824,6 +830,12 @@ public class DevicePDAServiceImpl implements IDevicePDAService { //维修工单里面的设备名 简化TODO EquRepairWorkOrder example = equRepairWorkOrderMapper.selectEquRepairWorkOrderByWorkId(equRepairWorkOrder.getWorkId()); + + // 费用 + BigDecimal sparePartsCost = equSpareApplyMapper.getSparePartsCost(equRepairWorkOrder.getOrderCode()); + BigDecimal orderCost = BigDecimal.valueOf(Double.valueOf(equRepairWorkOrder.getWorkCost())); + equRepairWorkOrder.setWorkCost(String.valueOf(sparePartsCost.add(orderCost))); + //修改设备状态 由维修中改为正常运行 EquEquipment equEquipment = new EquEquipment(); equEquipment.setEquipmentCode(example.getEquipmentCode()); diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOrderServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOrderServiceImpl.java index 02b69d0e3..36539536c 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOrderServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquOrderServiceImpl.java @@ -1,5 +1,6 @@ package com.op.device.service.impl; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -348,6 +349,11 @@ public class EquOrderServiceImpl implements IEquOrderService { long diffSeconds = (equOrder.getOrderEnd().getTime() - equOrder.getOrderStart().getTime()) / 60000; equOrder.setOrderCostTime(String.valueOf(diffSeconds)); } + // 费用 + BigDecimal sparePartsCost = equSpareApplyMapper.getSparePartsCost(equOrder.getOrderCode()); + BigDecimal orderCost = equOrder.getOrderCost(); + equOrder.setOrderCost(sparePartsCost.add(orderCost)); + // 保养图片 if (StringUtils.isNotEmpty(equOrder.getPicturePath())) { String[] ids = equOrder.getPicturePath().split(","); diff --git a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairWorkOrderServiceImpl.java b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairWorkOrderServiceImpl.java index a3bb4b662..4af8f276b 100644 --- a/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairWorkOrderServiceImpl.java +++ b/op-modules/op-device/src/main/java/com/op/device/service/impl/EquRepairWorkOrderServiceImpl.java @@ -1,5 +1,6 @@ package com.op.device.service.impl; +import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; @@ -43,6 +44,9 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService @Autowired private EquOutsourceWorkMapper equOutsourceWorkMapper; + @Autowired + private EquSpareApplyMapper equSpareApplyMapper; + /** * 查询维修工单 * @@ -218,6 +222,11 @@ public class EquRepairWorkOrderServiceImpl implements IEquRepairWorkOrderService equRepairWorkOrderMapper.updateEquipmentStatus(equEquipment); } + // 费用 + BigDecimal sparePartsCost = equSpareApplyMapper.getSparePartsCost(equRepairWorkOrder.getOrderCode()); + BigDecimal orderCost = BigDecimal.valueOf(Double.valueOf(equRepairWorkOrder.getWorkCost())); + equRepairWorkOrder.setWorkCost(String.valueOf(sparePartsCost.add(orderCost))); + return equRepairWorkOrderMapper.updateEquRepairWorkOrder(equRepairWorkOrder); } diff --git a/op-modules/op-device/src/main/resources/mapper/device/EquSpareApplyMapper.xml b/op-modules/op-device/src/main/resources/mapper/device/EquSpareApplyMapper.xml index 3581ceb46..5dd6de5c2 100644 --- a/op-modules/op-device/src/main/resources/mapper/device/EquSpareApplyMapper.xml +++ b/op-modules/op-device/src/main/resources/mapper/device/EquSpareApplyMapper.xml @@ -207,4 +207,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where work_code = #{orderCode} and del_flag = '0' + + \ No newline at end of file From a4ad441dadc7813d1670fe92993d97ec186c80c2 Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Tue, 26 Dec 2023 14:36:40 +0800 Subject: [PATCH 16/25] =?UTF-8?q?=E8=B4=A8=E9=87=8F=E8=BF=87=E7=A8=8B?= =?UTF-8?q?=E5=B7=A1=E6=A3=80+=E6=9D=A5=E6=96=99=E6=A3=80=E9=AA=8C?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E6=8E=A5=E5=8F=A3+=E6=8A=A5=E5=B7=A5sql?= =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/domain/quality/QcCheckTaskIncomeDTO.java | 9 +++++++++ .../controller/QcStaticTableController.java | 15 ++++++++++----- .../impl/QcCheckTaskProduceServiceImpl.java | 2 +- .../mapper/quality/QcCheckTaskIncomeMapper.xml | 2 ++ 4 files changed, 22 insertions(+), 6 deletions(-) diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/domain/quality/QcCheckTaskIncomeDTO.java b/op-api/op-api-system/src/main/java/com/op/system/api/domain/quality/QcCheckTaskIncomeDTO.java index 8464cbcac..037a6dc69 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/domain/quality/QcCheckTaskIncomeDTO.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/domain/quality/QcCheckTaskIncomeDTO.java @@ -135,6 +135,15 @@ public class QcCheckTaskIncomeDTO extends BaseEntity { private BigDecimal aNoOkquality; private BigDecimal bNoOkquality; private BigDecimal cNoOkquality; + private String orderType; + + public String getOrderType() { + return orderType; + } + + public void setOrderType(String orderType) { + this.orderType = orderType; + } public BigDecimal getSampleQuality() { return sampleQuality; diff --git a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcStaticTableController.java b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcStaticTableController.java index 1db2db044..473287128 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcStaticTableController.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcStaticTableController.java @@ -147,11 +147,16 @@ public class QcStaticTableController extends BaseController { if(mdata.getcNoOkquality()==null){ mdata.setcNoOkquality(new BigDecimal("0")); } - BigDecimal defectRate = (mdata.getaNoOkquality().add(mdata.getbNoOkquality()).multiply(new BigDecimal("0.65")) - .add(mdata.getcNoOkquality()).multiply(new BigDecimal(0.35))) - .divide(new BigDecimal(mdata.getSampleQuality())) - .setScale(2, BigDecimal.ROUND_HALF_UP); - datas.add(defectRate.doubleValue()); + if(!"0.00".equals(mdata.getSampleQuality())){ + BigDecimal defectRate = (mdata.getaNoOkquality().add(mdata.getbNoOkquality()).multiply(new BigDecimal("0.65")) + .add(mdata.getcNoOkquality()).multiply(new BigDecimal(0.35))) + .divide(new BigDecimal(mdata.getSampleQuality())) + .setScale(2, BigDecimal.ROUND_HALF_UP); + datas.add(defectRate.doubleValue()); + }else{ + datas.add(0.00); + } + }else{ datas.add(0.00); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskProduceServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskProduceServiceImpl.java index 32e76b3d7..1c4b04a04 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskProduceServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskProduceServiceImpl.java @@ -314,7 +314,7 @@ public class QcCheckTaskProduceServiceImpl implements IQcCheckTaskProduceService Date startTime = productTask.getCreateTime(); long mins = DateUtil.between(startTime, nowTime, DateUnit.MINUTE); - if(mins>=15){ + if(mins>=60){ int m = insertQcCheckTaskProduce(productTask); logger.info("++++++++++++过程检验巡检任务生成" + m + "++++++++++++++"); } diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml index 53b401f51..8d8416cc9 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml @@ -193,6 +193,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" check_type, type_code, sample_quality, + order_type, #{recordId}, @@ -227,6 +228,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{checkType}, #{typeCode}, #{sampleQuality}, + #{orderType}, From 86e6b205a0e6e008ccc60bb640c04f4a673b373b Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Tue, 26 Dec 2023 15:05:37 +0800 Subject: [PATCH 17/25] =?UTF-8?q?=E5=85=A5=E5=BA=93=E6=A3=80=E9=AA=8C?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../op/system/api/RemoteQualityService.java | 4 + .../quality/QcCheckTaskWarehousingDTO.java | 376 ++++++++++++++++++ .../factory/RemoteQualityFallbackFactory.java | 8 +- .../QcCheckTaskWarehousingController.java | 14 + .../domain/QcCheckTaskWarehousing.java | 9 + .../IQcCheckTaskWarehousingService.java | 1 + .../QcCheckTaskWarehousingServiceImpl.java | 69 +++- .../quality/QcCheckTaskWarehousingMapper.xml | 2 + 8 files changed, 462 insertions(+), 21 deletions(-) create mode 100644 op-api/op-api-system/src/main/java/com/op/system/api/domain/quality/QcCheckTaskWarehousingDTO.java diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/RemoteQualityService.java b/op-api/op-api-system/src/main/java/com/op/system/api/RemoteQualityService.java index e17a555ce..6197718df 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/RemoteQualityService.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/RemoteQualityService.java @@ -3,6 +3,7 @@ package com.op.system.api; import com.op.common.core.constant.ServiceNameConstants; import com.op.common.core.domain.R; import com.op.system.api.domain.quality.QcCheckTaskIncomeDTO; +import com.op.system.api.domain.quality.QcCheckTaskWarehousingDTO; import com.op.system.api.factory.RemoteDeviceFallbackFactory; import com.op.system.api.factory.RemoteQualityFallbackFactory; import org.springframework.cloud.openfeign.FeignClient; @@ -25,4 +26,7 @@ public interface RemoteQualityService { @PostMapping("/qcIncome/createIncomeTask") public R createIncomeTask(@RequestBody QcCheckTaskIncomeDTO qcCheckTaskIncome); + + @PostMapping("/qcWarehousing/createProductTask") + public R createProductTask(@RequestBody QcCheckTaskWarehousingDTO qcCheckTaskIncome); } diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/domain/quality/QcCheckTaskWarehousingDTO.java b/op-api/op-api-system/src/main/java/com/op/system/api/domain/quality/QcCheckTaskWarehousingDTO.java new file mode 100644 index 000000000..47f4b0bb1 --- /dev/null +++ b/op-api/op-api-system/src/main/java/com/op/system/api/domain/quality/QcCheckTaskWarehousingDTO.java @@ -0,0 +1,376 @@ +package com.op.system.api.domain.quality; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.op.common.core.annotation.Excel; +import com.op.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; + +/** + * 成品入库检验任务对象 qc_check_task_warehousing + * + * @author Open Platform + * @date 2023-10-19 + */ +public class QcCheckTaskWarehousingDTO extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** id */ + private String recordId; + + /** 检验任务编号 */ + @Excel(name = "检验任务编号") + private String checkNo; + + /** 批次号 */ + @Excel(name = "批次号") + private String incomeBatchNo; + + /** 订单号 */ + @Excel(name = "订单号") + private String orderNo; + + /** 物料号 */ + @Excel(name = "物料号") + private String materialCode; + + /** 物料名称 */ + @Excel(name = "物料名称") + private String materialName; + + /** 数量 */ + @Excel(name = "数量") + private BigDecimal quality; + + /** 单位 */ + @Excel(name = "单位") + private String unit; + + /** 仓库编码 */ + @Excel(name = "仓库编码") + private String supplierCode; + + /** 仓库名称 */ + @Excel(name = "仓库名称") + private String supplierName; + + /** 来料时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "入库时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date incomeTime; + + /** 检测地点 */ + @Excel(name = "检测地点") + private String checkLoc; + + /** 检测状态 */ + @Excel(name = "检测状态") + private String checkStatus; + + /** 检测人工号 */ + @Excel(name = "检测人工号") + private String checkManCode; + + /** 检测人姓名 */ + @Excel(name = "检测人姓名") + private String checkManName; + + /** 检验时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "检验时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date checkTime; + + /** 检验结果Y合格 */ + @Excel(name = "检验结果Y合格") + private String checkResult; + + /** 是否启用1启用0停用 */ + @Excel(name = "是否启用1启用0停用") + private String status; + + /** 预留字段1 */ + @Excel(name = "预留字段1") + private String attr1; + + /** 预留字段2 */ + @Excel(name = "预留字段2") + private String attr2; + + /** 预留字段3 */ + @Excel(name = "预留字段3") + private String attr3; + + /** 预留字段4 */ + @Excel(name = "预留字段4") + private String attr4; + + /** 工厂编码 */ + @Excel(name = "工厂编码") + private String factoryCode; + + /** 删除标识1删除0正常 */ + private String delFlag; + + private String incomeTimeStart; + private String incomeTimeEnd; + private String checkTimeStart; + private String checkTimeEnd; + private String typeCode; + private String checkType; + + public String getCheckType() { + return checkType; + } + + public void setCheckType(String checkType) { + this.checkType = checkType; + } + + public String getIncomeTimeStart() { + return incomeTimeStart; + } + + public void setIncomeTimeStart(String incomeTimeStart) { + this.incomeTimeStart = incomeTimeStart; + } + + public String getIncomeTimeEnd() { + return incomeTimeEnd; + } + + public void setIncomeTimeEnd(String incomeTimeEnd) { + this.incomeTimeEnd = incomeTimeEnd; + } + + public String getCheckTimeStart() { + return checkTimeStart; + } + + public void setCheckTimeStart(String checkTimeStart) { + this.checkTimeStart = checkTimeStart; + } + + public String getCheckTimeEnd() { + return checkTimeEnd; + } + + public void setCheckTimeEnd(String checkTimeEnd) { + this.checkTimeEnd = checkTimeEnd; + } + + public String getTypeCode() { + return typeCode; + } + + public void setTypeCode(String typeCode) { + this.typeCode = typeCode; + } + + public void setRecordId(String recordId) { + this.recordId = recordId; + } + + public String getRecordId() { + return recordId; + } + public void setCheckNo(String checkNo) { + this.checkNo = checkNo; + } + + public String getCheckNo() { + return checkNo; + } + + public void setOrderNo(String orderNo) { + this.orderNo = orderNo; + } + + public String getOrderNo() { + return orderNo; + } + 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 setQuality(BigDecimal quality) { + this.quality = quality; + } + + public BigDecimal getQuality() { + return quality; + } + public void setUnit(String unit) { + this.unit = unit; + } + + public String getUnit() { + return unit; + } + 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 setIncomeTime(Date incomeTime) { + this.incomeTime = incomeTime; + } + + public Date getIncomeTime() { + return incomeTime; + } + public void setCheckLoc(String checkLoc) { + this.checkLoc = checkLoc; + } + + public String getCheckLoc() { + return checkLoc; + } + public void setCheckStatus(String checkStatus) { + this.checkStatus = checkStatus; + } + + public String getCheckStatus() { + return checkStatus; + } + public void setCheckManCode(String checkManCode) { + this.checkManCode = checkManCode; + } + + public String getCheckManCode() { + return checkManCode; + } + public void setCheckManName(String checkManName) { + this.checkManName = checkManName; + } + + public String getCheckManName() { + return checkManName; + } + public void setCheckTime(Date checkTime) { + this.checkTime = checkTime; + } + + public Date getCheckTime() { + return checkTime; + } + public void setCheckResult(String checkResult) { + this.checkResult = checkResult; + } + + public String getCheckResult() { + return checkResult; + } + public void setStatus(String status) { + this.status = status; + } + + public String getStatus() { + return status; + } + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getAttr1() { + return attr1; + } + public void setAttr2(String attr2) { + this.attr2 = attr2; + } + + public String getAttr2() { + return attr2; + } + public void setAttr3(String attr3) { + this.attr3 = attr3; + } + + public String getAttr3() { + return attr3; + } + public void setAttr4(String attr4) { + this.attr4 = attr4; + } + + public String getAttr4() { + return attr4; + } + public void setFactoryCode(String factoryCode) { + this.factoryCode = factoryCode; + } + + public String getFactoryCode() { + return factoryCode; + } + public void setDelFlag(String delFlag) { + this.delFlag = delFlag; + } + + public String getDelFlag() { + return delFlag; + } + + public String getIncomeBatchNo() { + return incomeBatchNo; + } + + public void setIncomeBatchNo(String incomeBatchNo) { + this.incomeBatchNo = incomeBatchNo; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("recordId", getRecordId()) + .append("checkNo", getCheckNo()) + .append("incomeBatchNo", getIncomeBatchNo()) + .append("orderNo", getOrderNo()) + .append("materialCode", getMaterialCode()) + .append("materialName", getMaterialName()) + .append("quality", getQuality()) + .append("unit", getUnit()) + .append("supplierCode", getSupplierCode()) + .append("supplierName", getSupplierName()) + .append("incomeTime", getIncomeTime()) + .append("checkLoc", getCheckLoc()) + .append("checkStatus", getCheckStatus()) + .append("checkManCode", getCheckManCode()) + .append("checkManName", getCheckManName()) + .append("checkTime", getCheckTime()) + .append("checkResult", getCheckResult()) + .append("status", getStatus()) + .append("attr1", getAttr1()) + .append("attr2", getAttr2()) + .append("attr3", getAttr3()) + .append("attr4", getAttr4()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("factoryCode", getFactoryCode()) + .append("delFlag", getDelFlag()) + .toString(); + } +} diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteQualityFallbackFactory.java b/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteQualityFallbackFactory.java index f7a38663d..4d63c12c1 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteQualityFallbackFactory.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteQualityFallbackFactory.java @@ -5,6 +5,7 @@ import com.op.common.core.domain.R; import com.op.system.api.RemoteDeviceService; import com.op.system.api.RemoteQualityService; import com.op.system.api.domain.quality.QcCheckTaskIncomeDTO; +import com.op.system.api.domain.quality.QcCheckTaskWarehousingDTO; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.cloud.openfeign.FallbackFactory; @@ -30,7 +31,12 @@ public class RemoteQualityFallbackFactory implements FallbackFactory0){ + return toAjax(r); + } + return error("添加失败:请检查物料的关联检测项"); + } + /** * 修改成品入库检验任务 */ diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskWarehousing.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskWarehousing.java index c267cb334..e186e3db4 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskWarehousing.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskWarehousing.java @@ -119,6 +119,15 @@ public class QcCheckTaskWarehousing extends BaseEntity { private String checkTimeEnd; private String typeCode; private String checkType; + private String orderType; + + public String getOrderType() { + return orderType; + } + + public void setOrderType(String orderType) { + this.orderType = orderType; + } public String getCheckType() { return checkType; diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTaskWarehousingService.java b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTaskWarehousingService.java index d972ff19d..dfc40dc4b 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTaskWarehousingService.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTaskWarehousingService.java @@ -2,6 +2,7 @@ package com.op.quality.service; import java.util.List; import com.op.quality.domain.QcCheckTaskWarehousing; +import com.op.system.api.domain.quality.QcCheckTaskWarehousingDTO; /** * 成品入库检验任务Service接口 diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskWarehousingServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskWarehousingServiceImpl.java index bdc73e262..1d232d154 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskWarehousingServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskWarehousingServiceImpl.java @@ -12,13 +12,13 @@ import com.op.common.core.utils.StringUtils; import com.op.common.core.utils.uuid.IdUtils; import com.op.common.security.utils.SecurityUtils; import com.op.quality.domain.*; -import com.op.quality.mapper.QcCheckTaskDetailMapper; -import com.op.quality.mapper.QcCheckTypeProjectMapper; -import com.op.quality.mapper.QcMaterialGroupDetailMapper; +import com.op.quality.mapper.*; import com.op.quality.service.IQcCheckTaskUserService; +import com.op.system.api.domain.quality.QcUserMaterialDTO; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.op.quality.mapper.QcCheckTaskWarehousingMapper; import com.op.quality.service.IQcCheckTaskWarehousingService; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; @@ -35,6 +35,7 @@ import javax.servlet.http.HttpServletRequest; */ @Service public class QcCheckTaskWarehousingServiceImpl implements IQcCheckTaskWarehousingService { + protected Logger logger = LoggerFactory.getLogger(getClass()); @Autowired private QcCheckTaskWarehousingMapper qcCheckTaskWarehousingMapper; @@ -50,6 +51,8 @@ public class QcCheckTaskWarehousingServiceImpl implements IQcCheckTaskWarehousin @Autowired private IQcCheckTaskUserService qcCheckTaskUserService; + private QcCheckTaskIncomeMapper qcCheckTaskIncomeMapper; + /** * 查询成品入库检验任务 * @@ -132,24 +135,50 @@ public class QcCheckTaskWarehousingServiceImpl implements IQcCheckTaskWarehousin qcCheckTaskWarehousing.setCreateTime(nowDate); qcCheckTaskWarehousing.setTypeCode("product");//大检验节点 /**qc_task_user start**/ - String checkManName = qcCheckTaskWarehousing.getCheckManName(); - String checkManCode = qcCheckTaskWarehousing.getCheckManCode(); - qcCheckTaskWarehousing.setCheckManName(""); - qcCheckTaskWarehousing.setCheckManCode(""); - String[] splitNames = checkManName.split(","); - String[] splitCodes = checkManCode.split(","); - List qcCheckTaskUserList = new ArrayList<>(); - for (int i = 0; i < splitNames.length; i++) { - QcCheckTaskUser qcCheckTaskUser = new QcCheckTaskUser(); - qcCheckTaskUser.setCheckManName(splitNames[i]); - qcCheckTaskUser.setCheckManCode(splitCodes[i]); - qcCheckTaskUser.setCheckNo(qcCheckTaskWarehousing.getCheckNo()); - qcCheckTaskUser.setBelongTo(beLongId); - qcCheckTaskUserList.add(qcCheckTaskUser); + if(StringUtils.isNotBlank(qcCheckTaskWarehousing.getCheckManName())){ + String checkManName = qcCheckTaskWarehousing.getCheckManName(); + String checkManCode = qcCheckTaskWarehousing.getCheckManCode(); + qcCheckTaskWarehousing.setCheckManName(""); + qcCheckTaskWarehousing.setCheckManCode(""); + String[] splitNames = checkManName.split(","); + String[] splitCodes = checkManCode.split(","); + List qcCheckTaskUserList = new ArrayList<>(); + for (int i = 0; i < splitNames.length; i++) { + QcCheckTaskUser qcCheckTaskUser = new QcCheckTaskUser(); + qcCheckTaskUser.setCheckManName(splitNames[i]); + qcCheckTaskUser.setCheckManCode(splitCodes[i]); + qcCheckTaskUser.setCheckNo(qcCheckTaskWarehousing.getCheckNo()); + qcCheckTaskUser.setBelongTo(beLongId); + qcCheckTaskUserList.add(qcCheckTaskUser); + } + //检验人插入 + qcCheckTaskUserService.insertQcCheckTaskUserList(qcCheckTaskUserList); + }else{//上位机触发 + qcCheckTaskWarehousing.setCheckManName(""); + qcCheckTaskWarehousing.setCheckManCode(""); + /**qc_user_material取默认检查人**/ + List users = qcCheckTaskIncomeMapper.getUserByMaterial(qcCheckTaskWarehousing.getMaterialCode()); + if(CollectionUtils.isEmpty(users)){ + QcUserMaterialDTO dto0 = new QcUserMaterialDTO(); + dto0.setUserCode("mobile"); + dto0.setUserName("手持测试用户"); + users.add(dto0); + }else{ + for(QcUserMaterialDTO user:users){ + user.setId(IdUtils.fastSimpleUUID()); + user.setBelongTo(beLongId); + user.setCheckNo(qcCheckTaskWarehousing.getCheckNo()); + user.setCreateBy(createBy); + user.setFactoryCode(factoryCode); + user.setCreateTime(nowDate); + } + } + int m=qcCheckTaskIncomeMapper.addCheckUsers(users); + logger.info("检查人新增"+m+"成功"); } + qcCheckTaskWarehousingMapper.insertQcCheckTaskWarehousing(qcCheckTaskWarehousing); - //检验人插入 - qcCheckTaskUserService.insertQcCheckTaskUserList(qcCheckTaskUserList); + /**qc_check_task_detail**/ for(QcCheckTaskDetail item:items){ item.setRecordId(IdUtils.fastSimpleUUID()); diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskWarehousingMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskWarehousingMapper.xml index debdfb6eb..9d16ea667 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskWarehousingMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskWarehousingMapper.xml @@ -131,6 +131,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" type_code, noOk_quality, sample_quality, + order_type, #{recordId}, @@ -165,6 +166,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{typeCode}, #{noOkQuality}, #{sampleQuality}, + #{orderType}, From 0b302ed86e1590db31fa1b73320d022afacc232c Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Tue, 26 Dec 2023 16:06:23 +0800 Subject: [PATCH 18/25] =?UTF-8?q?=E5=85=A5=E5=BA=93=E6=A3=80=E9=AA=8C?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E6=8E=A5=E5=8F=A3+=E5=B7=A1=E6=A3=80?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../op/open/service/impl/OpenServiceImpl.java | 6 ++ .../impl/QcCheckTaskIncomeServiceImpl.java | 6 ++ .../impl/QcCheckTaskProduceServiceImpl.java | 75 +++++++++++++------ 3 files changed, 66 insertions(+), 21 deletions(-) diff --git a/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java b/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java index 11dc854f1..51fb2cb4c 100644 --- a/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java +++ b/op-modules/op-open/src/main/java/com/op/open/service/impl/OpenServiceImpl.java @@ -307,6 +307,12 @@ public class OpenServiceImpl implements OpenService { List users = openMapper.getUserByMaterial(qcCheckTaskProduce.getMaterialCode()); if(CollectionUtils.isEmpty(users)){ QcUserMaterialDTO dto0 = new QcUserMaterialDTO(); + dto0.setId(IdUtils.fastSimpleUUID()); + dto0.setBelongTo(beLongId); + dto0.setCheckNo(qcCheckTaskProduce.getCheckNo()); + dto0.setCreateBy(createBy); + dto0.setFactoryCode(factoryCode); + dto0.setCreateTime(nowDate); dto0.setUserCode("mobile"); dto0.setUserName("手持测试用户"); users.add(dto0); diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java index 6aaf0ed8b..9c9cccb6e 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java @@ -170,6 +170,12 @@ public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService { List users = qcCheckTaskIncomeMapper.getUserByMaterial(qcCheckTaskIncome.getMaterialCode()); if(CollectionUtils.isEmpty(users)){ QcUserMaterialDTO dto0 = new QcUserMaterialDTO(); + dto0.setId(IdUtils.fastSimpleUUID()); + dto0.setBelongTo(beLongId); + dto0.setCheckNo(qcCheckTaskIncome.getCheckNo()); + dto0.setCreateBy(createBy); + dto0.setFactoryCode(factoryCode); + dto0.setCreateTime(nowDate); dto0.setUserCode("mobile"); dto0.setUserName("手持测试用户"); users.add(dto0); diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskProduceServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskProduceServiceImpl.java index 1c4b04a04..f609dcfd9 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskProduceServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskProduceServiceImpl.java @@ -20,18 +20,16 @@ import com.op.common.core.utils.uuid.IdUtils; import com.op.common.core.web.domain.AjaxResult; import com.op.common.security.utils.SecurityUtils; import com.op.quality.domain.*; -import com.op.quality.mapper.QcCheckTaskDetailMapper; -import com.op.quality.mapper.QcCheckTypeProjectMapper; -import com.op.quality.mapper.QcMaterialGroupDetailMapper; +import com.op.quality.mapper.*; import com.op.quality.service.IQcCheckTaskUserService; import com.op.system.api.RemoteUserService; import com.op.system.api.domain.SysUser; import com.op.system.api.domain.mes.ProOrderWorkorderDTO; +import com.op.system.api.domain.quality.QcUserMaterialDTO; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.op.quality.mapper.QcCheckTaskProduceMapper; import com.op.quality.service.IQcCheckTaskProduceService; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; @@ -73,6 +71,9 @@ public class QcCheckTaskProduceServiceImpl implements IQcCheckTaskProduceService @Autowired private IQcCheckTaskUserService qcCheckTaskUserService; + @Autowired + private QcCheckTaskIncomeMapper qcCheckTaskIncomeMapper; + /** * 查询生产过程检验任务 * @@ -167,24 +168,56 @@ public class QcCheckTaskProduceServiceImpl implements IQcCheckTaskProduceService qcCheckTaskProduce.setCreateTime(nowDate); qcCheckTaskProduce.setTypeCode("produce");//大检验节点 /**qc_task_user start**/ - String checkManName = qcCheckTaskProduce.getCheckManName(); - String checkManCode = qcCheckTaskProduce.getCheckManCode(); - qcCheckTaskProduce.setCheckManName(""); - qcCheckTaskProduce.setCheckManCode(""); - String[] splitNames = checkManName.split(","); - String[] splitCodes = checkManCode.split(","); - List qcCheckTaskUserList = new ArrayList<>(); - for (int i = 0; i < splitNames.length; i++) { - QcCheckTaskUser qcCheckTaskUser = new QcCheckTaskUser(); - qcCheckTaskUser.setCheckManName(splitNames[i]); - qcCheckTaskUser.setCheckManCode(splitCodes[i]); - qcCheckTaskUser.setCheckNo(qcCheckTaskProduce.getCheckNo()); - qcCheckTaskUser.setBelongTo(beLongId); - qcCheckTaskUserList.add(qcCheckTaskUser); - } + if(StringUtils.isNotBlank(qcCheckTaskProduce.getCheckManName())){ + String checkManName = qcCheckTaskProduce.getCheckManName(); + String checkManCode = qcCheckTaskProduce.getCheckManCode(); + qcCheckTaskProduce.setCheckManName(""); + qcCheckTaskProduce.setCheckManCode(""); + String[] splitNames = checkManName.split(","); + String[] splitCodes = checkManCode.split(","); + List qcCheckTaskUserList = new ArrayList<>(); + for (int i = 0; i < splitNames.length; i++) { + QcCheckTaskUser qcCheckTaskUser = new QcCheckTaskUser(); + qcCheckTaskUser.setCheckManName(splitNames[i]); + qcCheckTaskUser.setCheckManCode(splitCodes[i]); + qcCheckTaskUser.setCheckNo(qcCheckTaskProduce.getCheckNo()); + qcCheckTaskUser.setBelongTo(beLongId); + qcCheckTaskUserList.add(qcCheckTaskUser); + } + //检验人插入 + qcCheckTaskUserService.insertQcCheckTaskUserList(qcCheckTaskUserList); + }else{//上位机 + qcCheckTaskProduce.setCheckManName(""); + qcCheckTaskProduce.setCheckManCode(""); + /**qc_user_material取默认检查人**/ + List users = qcCheckTaskIncomeMapper.getUserByMaterial(qcCheckTaskProduce.getMaterialCode()); + if(CollectionUtils.isEmpty(users)){ + QcUserMaterialDTO dto0 = new QcUserMaterialDTO(); + dto0.setId(IdUtils.fastSimpleUUID()); + dto0.setBelongTo(beLongId); + dto0.setCheckNo(qcCheckTaskProduce.getCheckNo()); + dto0.setCreateBy(createBy); + dto0.setFactoryCode(factoryCode); + dto0.setCreateTime(nowDate); + dto0.setUserCode("mobile"); + dto0.setUserName("手持测试用户"); + users.add(dto0); + }else{ + for(QcUserMaterialDTO user:users){ + user.setId(IdUtils.fastSimpleUUID()); + user.setBelongTo(beLongId); + user.setCheckNo(qcCheckTaskProduce.getCheckNo()); + user.setCreateBy(createBy); + user.setFactoryCode(factoryCode); + user.setCreateTime(nowDate); + } + } + int m=qcCheckTaskIncomeMapper.addCheckUsers(users); + logger.info("检查人新增"+m+"成功"); + } + qcCheckTaskProduceMapper.insertQcCheckTaskProduce(qcCheckTaskProduce); - //检验人插入 - qcCheckTaskUserService.insertQcCheckTaskUserList(qcCheckTaskUserList); + /**qc_check_task_detail**/ for (QcCheckTaskDetail item : items) { item.setRecordId(IdUtils.fastSimpleUUID()); From 62084d080b747ae2a8c7144f53a2a41566fdd1bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=81=92=E6=9D=B0?= <2658502433@qq.com> Date: Tue, 26 Dec 2023 17:46:19 +0800 Subject: [PATCH 19/25] =?UTF-8?q?=E6=89=8B=E5=8A=A8=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E7=99=BD=E5=9D=AF=E5=85=A5=E5=BA=93=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/WmsRawOrderInController.java | 97 +++ .../com/op/quality/domain/WmsRawOrderIn.java | 665 ++++++++++++++++++ .../quality/mapper/WmsRawOrderInMapper.java | 61 ++ .../service/IWmsRawOrderInService.java | 60 ++ .../impl/WmsRawOrderInServiceImpl.java | 105 +++ .../mapper/quality/WmsRawOrderInMapper.xml | 307 ++++++++ 6 files changed, 1295 insertions(+) create mode 100644 op-modules/op-quality/src/main/java/com/op/quality/controller/WmsRawOrderInController.java create mode 100644 op-modules/op-quality/src/main/java/com/op/quality/domain/WmsRawOrderIn.java create mode 100644 op-modules/op-quality/src/main/java/com/op/quality/mapper/WmsRawOrderInMapper.java create mode 100644 op-modules/op-quality/src/main/java/com/op/quality/service/IWmsRawOrderInService.java create mode 100644 op-modules/op-quality/src/main/java/com/op/quality/service/impl/WmsRawOrderInServiceImpl.java create mode 100644 op-modules/op-quality/src/main/resources/mapper/quality/WmsRawOrderInMapper.xml diff --git a/op-modules/op-quality/src/main/java/com/op/quality/controller/WmsRawOrderInController.java b/op-modules/op-quality/src/main/java/com/op/quality/controller/WmsRawOrderInController.java new file mode 100644 index 000000000..89c853f93 --- /dev/null +++ b/op-modules/op-quality/src/main/java/com/op/quality/controller/WmsRawOrderInController.java @@ -0,0 +1,97 @@ +package com.op.quality.controller; + +import java.util.List; +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.op.common.log.annotation.Log; +import com.op.common.log.enums.BusinessType; +import com.op.common.security.annotation.RequiresPermissions; +import com.op.quality.domain.WmsRawOrderIn; +import com.op.quality.service.IWmsRawOrderInService; +import com.op.common.core.web.controller.BaseController; +import com.op.common.core.web.domain.AjaxResult; +import com.op.common.core.utils.poi.ExcelUtil; +import com.op.common.core.web.page.TableDataInfo; + +/** + * 白坯手动入库单Controller + * + * @author Open Platform + * @date 2023-12-26 + */ +@RestController +@RequestMapping("/bPproduct") +public class WmsRawOrderInController extends BaseController { + @Autowired + private IWmsRawOrderInService wmsRawOrderInService; + + /** + * 查询白坯手动入库单列表 + */ + @RequiresPermissions("quality:bPproduct:list") + @GetMapping("/list") + public TableDataInfo list(WmsRawOrderIn wmsRawOrderIn) { + startPage(); + List list = wmsRawOrderInService.selectWmsRawOrderInList(wmsRawOrderIn); + return getDataTable(list); + } + + /** + * 导出白坯手动入库单列表 + */ + @RequiresPermissions("quality:bPproduct:export") + @Log(title = "白坯手动入库单", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, WmsRawOrderIn wmsRawOrderIn) { + List list = wmsRawOrderInService.selectWmsRawOrderInList(wmsRawOrderIn); + ExcelUtil util = new ExcelUtil(WmsRawOrderIn.class); + util.exportExcel(response, list, "白坯手动入库单数据"); + } + + /** + * 获取白坯手动入库单详细信息 + */ + @RequiresPermissions("quality:bPproduct:query") + @GetMapping(value = "/{rawOrderInId}") + public AjaxResult getInfo(@PathVariable("rawOrderInId") String rawOrderInId) { + return success(wmsRawOrderInService.selectWmsRawOrderInByRawOrderInId(rawOrderInId)); + } + + /** + * 新增白坯手动入库单 + */ + @RequiresPermissions("quality:bPproduct:add") + @Log(title = "白坯手动入库单", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody WmsRawOrderIn wmsRawOrderIn) { + return toAjax(wmsRawOrderInService.insertWmsRawOrderIn(wmsRawOrderIn)); + } + + /** + * 修改白坯手动入库单 + */ + @RequiresPermissions("quality:bPproduct:edit") + @Log(title = "白坯手动入库单", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody WmsRawOrderIn wmsRawOrderIn) { + return toAjax(wmsRawOrderInService.updateWmsRawOrderIn(wmsRawOrderIn)); + } + + /** + * 删除白坯手动入库单 + */ + @RequiresPermissions("quality:bPproduct:remove") + @Log(title = "白坯手动入库单", businessType = BusinessType.DELETE) + @DeleteMapping("/{rawOrderInIds}") + public AjaxResult remove(@PathVariable String[] rawOrderInIds) { + return toAjax(wmsRawOrderInService.deleteWmsRawOrderInByRawOrderInIds(rawOrderInIds)); + } +} diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/WmsRawOrderIn.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/WmsRawOrderIn.java new file mode 100644 index 000000000..3dd9fd03b --- /dev/null +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/WmsRawOrderIn.java @@ -0,0 +1,665 @@ +package com.op.quality.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.op.common.core.annotation.Excel; +import com.op.common.core.web.domain.BaseEntity; + +/** + * 白坯手动入库单对象 wms_raw_order_in + * + * @author Open Platform + * @date 2023-12-26 + */ +public class WmsRawOrderIn extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** 唯一序列号 */ + private String rawOrderInId; + + /** 工厂编码 */ + @Excel(name = "工厂编码") + private String factoryCode; + + /** 仓库编码 */ + @Excel(name = "仓库编码") + private String whCode; + + /** 库区编码 */ + @Excel(name = "库区编码") + private String waCode; + + /** 库位编码 */ + @Excel(name = "库位编码") + private String wlCode; + + /** 入库单类型 */ + @Excel(name = "入库单类型") + private String orderInType; + + /** 入库单号 */ + @Excel(name = "入库单号") + private String orderNo; + + /** DN单号 */ + @Excel(name = "DN单号") + private String dnNo; + + /** 采购订单号 */ + @Excel(name = "采购订单号") + private String poNo; + + /** 采购订单行号 */ + @Excel(name = "采购订单行号") + private String poLine; + + /** 采购订单类型 */ + @Excel(name = "采购订单类型") + private String poType; + + /** 物料号 */ + @Excel(name = "物料号") + private String materialCode; + + /** 物料描述 */ + @Excel(name = "物料描述") + private String materialDesc; + + /** 单位 */ + @Excel(name = "单位") + private String unit; + + /** 采购组 */ + @Excel(name = "采购组") + private String buyerGroup; + + /** 供应商编码 */ + @Excel(name = "供应商编码") + private String supplyCode; + + /** 工厂 */ + @Excel(name = "工厂") + private String sapFactoryCode; + + /** 交货地点 */ + @Excel(name = "交货地点") + private String sendSpot; + + /** 需求数量 */ + @Excel(name = "需求数量") + private BigDecimal requestAmount; + + /** 收货数量 */ + @Excel(name = "收货数量") + private BigDecimal receiptAmount; + + /** 备品数量 */ + @Excel(name = "备品数量") + private BigDecimal shelvesAmount; + + /** 库存地点 */ + @Excel(name = "库存地点") + private String location; + + /** 需求时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "需求时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date requestTime; + + /** 质检状态,默认0待检,1合格,2不合格,3免检, */ + @Excel(name = "质检状态,默认0待检,1合格,2不合格,3免检,") + private String qualityStatus; + + /** 0创建1拒收2收货完成3上架完成4入库完成 */ + @Excel(name = "0创建1拒收2收货完成3上架完成4入库完成") + private String orderStatus; + + /** 收货操作人 */ + @Excel(name = "收货操作人") + private String receiptOperator; + + /** 收货时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "收货时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date receiptTime; + + /** 上架操作人 */ + @Excel(name = "上架操作人") + private String shelvesOperator; + + /** 退货数量 */ + @Excel(name = "退货数量") + private BigDecimal returnAmount; + + /** 退料人 */ + @Excel(name = "退料人") + private String returnName; + + /** 退货过账时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "退货过账时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date returnTime; + + /** 冲销过账: +0未退货; +1用户拒绝; +2退货完成; +3SAP正在处理; +4SAP拒绝 */ +// @Excel(name = "冲销过账: 0未退货; +//1用户拒绝; +//2退货完成; +//3SAP正在处理; +//4SAP拒绝") + private String returnStatus; + + /** 上架时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "上架时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date shelvesTime; + + /** 退货过账信息 */ + @Excel(name = "退货过账信息") + private String returnMessage; + + private String name; + /** 收货过账状态: +0未收货; +1用户拒绝; +2收货完成; +3SAP正在处理; +4SAP拒绝 */ +// @Excel(name = "收货过账状态: +//0未收货; +//1用户拒绝; +//2收货完成; +//3SAP正在处理; +//4SAP拒绝") + private String accountingStatus; + + /** 收货过账时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "收货过账时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date accountingTime; + + /** 收货过账信息 */ + @Excel(name = "收货过账信息") + private String accountingMessage; + + /** 备用 */ + @Excel(name = "备用") + private String userDefined1; + + /** 备用 */ + @Excel(name = "备用") + private String userDefined2; + + /** 备用 */ + @Excel(name = "备用") + private String userDefined3; + + /** 备用 */ + @Excel(name = "备用") + private String userDefined4; + + /** 备用 */ + @Excel(name = "备用") + private String userDefined5; + + /** 备用 */ + @Excel(name = "备用") + private String userDefined6; + + /** 备用 */ + @Excel(name = "备用") + private String userDefined7; + + /** 备用 */ + @Excel(name = "备用") + private String userDefined8; + + /** 备用9 */ + @Excel(name = "备用9") + private String userDefined9; + + /** 备用10 */ + @Excel(name = "备用10") + private String userDefined10; + + /** 创建时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date gmtCreate; + + /** 最后更新人 */ + @Excel(name = "最后更新人") + private String lastModifiedBy; + + /** 最后更新时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "最后更新时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date gmtModified; + + /** 有效标记 */ + @Excel(name = "有效标记") + private String activeFlag; + + public void setRawOrderInId(String rawOrderInId) { + this.rawOrderInId = rawOrderInId; + } + + public String getRawOrderInId() { + return rawOrderInId; + } + public void setFactoryCode(String factoryCode) { + this.factoryCode = factoryCode; + } + + public String getFactoryCode() { + return factoryCode; + } + public void setWhCode(String whCode) { + this.whCode = whCode; + } + + public String getWhCode() { + return whCode; + } + public void setWaCode(String waCode) { + this.waCode = waCode; + } + + public String getWaCode() { + return waCode; + } + public void setWlCode(String wlCode) { + this.wlCode = wlCode; + } + + public String getWlCode() { + return wlCode; + } + public void setOrderInType(String orderInType) { + this.orderInType = orderInType; + } + + public String getOrderInType() { + return orderInType; + } + public void setOrderNo(String orderNo) { + this.orderNo = orderNo; + } + + public String getOrderNo() { + return orderNo; + } + public void setDnNo(String dnNo) { + this.dnNo = dnNo; + } + + public String getDnNo() { + return dnNo; + } + public void setPoNo(String poNo) { + this.poNo = poNo; + } + + public String getPoNo() { + return poNo; + } + public void setPoLine(String poLine) { + this.poLine = poLine; + } + + public String getPoLine() { + return poLine; + } + public void setPoType(String poType) { + this.poType = poType; + } + + public String getPoType() { + return poType; + } + public void setMaterialCode(String materialCode) { + this.materialCode = materialCode; + } + + public String getMaterialCode() { + return materialCode; + } + public void setMaterialDesc(String materialDesc) { + this.materialDesc = materialDesc; + } + + public String getMaterialDesc() { + return materialDesc; + } + public void setUnit(String unit) { + this.unit = unit; + } + + public String getUnit() { + return unit; + } + public void setBuyerGroup(String buyerGroup) { + this.buyerGroup = buyerGroup; + } + + public String getBuyerGroup() { + return buyerGroup; + } + public void setSupplyCode(String supplyCode) { + this.supplyCode = supplyCode; + } + + public String getSupplyCode() { + return supplyCode; + } + public void setSapFactoryCode(String sapFactoryCode) { + this.sapFactoryCode = sapFactoryCode; + } + + public String getSapFactoryCode() { + return sapFactoryCode; + } + public void setSendSpot(String sendSpot) { + this.sendSpot = sendSpot; + } + + public String getSendSpot() { + return sendSpot; + } + public void setRequestAmount(BigDecimal requestAmount) { + this.requestAmount = requestAmount; + } + + public BigDecimal getRequestAmount() { + return requestAmount; + } + public void setReceiptAmount(BigDecimal receiptAmount) { + this.receiptAmount = receiptAmount; + } + + public BigDecimal getReceiptAmount() { + return receiptAmount; + } + public void setShelvesAmount(BigDecimal shelvesAmount) { + this.shelvesAmount = shelvesAmount; + } + + public BigDecimal getShelvesAmount() { + return shelvesAmount; + } + public void setLocation(String location) { + this.location = location; + } + + public String getLocation() { + return location; + } + public void setRequestTime(Date requestTime) { + this.requestTime = requestTime; + } + + public Date getRequestTime() { + return requestTime; + } + public void setQualityStatus(String qualityStatus) { + this.qualityStatus = qualityStatus; + } + + public String getQualityStatus() { + return qualityStatus; + } + public void setOrderStatus(String orderStatus) { + this.orderStatus = orderStatus; + } + + public String getOrderStatus() { + return orderStatus; + } + public void setReceiptOperator(String receiptOperator) { + this.receiptOperator = receiptOperator; + } + + public String getReceiptOperator() { + return receiptOperator; + } + public void setReceiptTime(Date receiptTime) { + this.receiptTime = receiptTime; + } + + public Date getReceiptTime() { + return receiptTime; + } + public void setShelvesOperator(String shelvesOperator) { + this.shelvesOperator = shelvesOperator; + } + + public String getShelvesOperator() { + return shelvesOperator; + } + public void setReturnAmount(BigDecimal returnAmount) { + this.returnAmount = returnAmount; + } + + public BigDecimal getReturnAmount() { + return returnAmount; + } + public void setReturnName(String returnName) { + this.returnName = returnName; + } + + public String getReturnName() { + return returnName; + } + public void setReturnTime(Date returnTime) { + this.returnTime = returnTime; + } + + public Date getReturnTime() { + return returnTime; + } + public void setReturnStatus(String returnStatus) { + this.returnStatus = returnStatus; + } + + public String getReturnStatus() { + return returnStatus; + } + public void setShelvesTime(Date shelvesTime) { + this.shelvesTime = shelvesTime; + } + + public Date getShelvesTime() { + return shelvesTime; + } + public void setReturnMessage(String returnMessage) { + this.returnMessage = returnMessage; + } + + public String getReturnMessage() { + return returnMessage; + } + public void setAccountingStatus(String accountingStatus) { + this.accountingStatus = accountingStatus; + } + + public String getAccountingStatus() { + return accountingStatus; + } + public void setAccountingTime(Date accountingTime) { + this.accountingTime = accountingTime; + } + + public Date getAccountingTime() { + return accountingTime; + } + public void setAccountingMessage(String accountingMessage) { + this.accountingMessage = accountingMessage; + } + + public String getAccountingMessage() { + return accountingMessage; + } + public void setUserDefined1(String userDefined1) { + this.userDefined1 = userDefined1; + } + + public String getUserDefined1() { + return userDefined1; + } + public void setUserDefined2(String userDefined2) { + this.userDefined2 = userDefined2; + } + + public String getUserDefined2() { + return userDefined2; + } + public void setUserDefined3(String userDefined3) { + this.userDefined3 = userDefined3; + } + + public String getUserDefined3() { + return userDefined3; + } + public void setUserDefined4(String userDefined4) { + this.userDefined4 = userDefined4; + } + + public String getUserDefined4() { + return userDefined4; + } + public void setUserDefined5(String userDefined5) { + this.userDefined5 = userDefined5; + } + + public String getUserDefined5() { + return userDefined5; + } + public void setUserDefined6(String userDefined6) { + this.userDefined6 = userDefined6; + } + + public String getUserDefined6() { + return userDefined6; + } + public void setUserDefined7(String userDefined7) { + this.userDefined7 = userDefined7; + } + + public String getUserDefined7() { + return userDefined7; + } + public void setUserDefined8(String userDefined8) { + this.userDefined8 = userDefined8; + } + + public String getUserDefined8() { + return userDefined8; + } + public void setUserDefined9(String userDefined9) { + this.userDefined9 = userDefined9; + } + + public String getUserDefined9() { + return userDefined9; + } + public void setUserDefined10(String userDefined10) { + this.userDefined10 = userDefined10; + } + + public String getUserDefined10() { + return userDefined10; + } + public void setGmtCreate(Date gmtCreate) { + this.gmtCreate = gmtCreate; + } + + public Date getGmtCreate() { + return gmtCreate; + } + public void setLastModifiedBy(String lastModifiedBy) { + this.lastModifiedBy = lastModifiedBy; + } + + public String getLastModifiedBy() { + return lastModifiedBy; + } + public void setGmtModified(Date gmtModified) { + this.gmtModified = gmtModified; + } + + public Date getGmtModified() { + return gmtModified; + } + public void setActiveFlag(String activeFlag) { + this.activeFlag = activeFlag; + } + + public String getActiveFlag() { + return activeFlag; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("rawOrderInId", getRawOrderInId()) + .append("factoryCode", getFactoryCode()) + .append("whCode", getWhCode()) + .append("waCode", getWaCode()) + .append("wlCode", getWlCode()) + .append("orderInType", getOrderInType()) + .append("orderNo", getOrderNo()) + .append("dnNo", getDnNo()) + .append("poNo", getPoNo()) + .append("poLine", getPoLine()) + .append("poType", getPoType()) + .append("materialCode", getMaterialCode()) + .append("materialDesc", getMaterialDesc()) + .append("unit", getUnit()) + .append("buyerGroup", getBuyerGroup()) + .append("supplyCode", getSupplyCode()) + .append("sapFactoryCode", getSapFactoryCode()) + .append("sendSpot", getSendSpot()) + .append("requestAmount", getRequestAmount()) + .append("receiptAmount", getReceiptAmount()) + .append("shelvesAmount", getShelvesAmount()) + .append("location", getLocation()) + .append("requestTime", getRequestTime()) + .append("qualityStatus", getQualityStatus()) + .append("orderStatus", getOrderStatus()) + .append("receiptOperator", getReceiptOperator()) + .append("receiptTime", getReceiptTime()) + .append("shelvesOperator", getShelvesOperator()) + .append("returnAmount", getReturnAmount()) + .append("returnName", getReturnName()) + .append("returnTime", getReturnTime()) + .append("returnStatus", getReturnStatus()) + .append("shelvesTime", getShelvesTime()) + .append("returnMessage", getReturnMessage()) + .append("accountingStatus", getAccountingStatus()) + .append("accountingTime", getAccountingTime()) + .append("accountingMessage", getAccountingMessage()) + .append("userDefined1", getUserDefined1()) + .append("userDefined2", getUserDefined2()) + .append("userDefined3", getUserDefined3()) + .append("userDefined4", getUserDefined4()) + .append("userDefined5", getUserDefined5()) + .append("userDefined6", getUserDefined6()) + .append("userDefined7", getUserDefined7()) + .append("userDefined8", getUserDefined8()) + .append("userDefined9", getUserDefined9()) + .append("userDefined10", getUserDefined10()) + .append("createBy", getCreateBy()) + .append("gmtCreate", getGmtCreate()) + .append("lastModifiedBy", getLastModifiedBy()) + .append("gmtModified", getGmtModified()) + .append("activeFlag", getActiveFlag()) + .toString(); + } +} diff --git a/op-modules/op-quality/src/main/java/com/op/quality/mapper/WmsRawOrderInMapper.java b/op-modules/op-quality/src/main/java/com/op/quality/mapper/WmsRawOrderInMapper.java new file mode 100644 index 000000000..93a1e5ff1 --- /dev/null +++ b/op-modules/op-quality/src/main/java/com/op/quality/mapper/WmsRawOrderInMapper.java @@ -0,0 +1,61 @@ +package com.op.quality.mapper; + +import java.util.List; + +import com.op.quality.domain.WmsRawOrderIn; + +/** + * 白坯手动入库单Mapper接口 + * + * @author Open Platform + * @date 2023-12-26 + */ +public interface WmsRawOrderInMapper { + /** + * 查询白坯手动入库单 + * + * @param rawOrderInId 白坯手动入库单主键 + * @return 白坯手动入库单 + */ + public WmsRawOrderIn selectWmsRawOrderInByRawOrderInId(String rawOrderInId); + + /** + * 查询白坯手动入库单列表 + * + * @param wmsRawOrderIn 白坯手动入库单 + * @return 白坯手动入库单集合 + */ + public List selectWmsRawOrderInList(WmsRawOrderIn wmsRawOrderIn); + + /** + * 新增白坯手动入库单 + * + * @param wmsRawOrderIn 白坯手动入库单 + * @return 结果 + */ + public int insertWmsRawOrderIn(WmsRawOrderIn wmsRawOrderIn); + + /** + * 修改白坯手动入库单 + * + * @param wmsRawOrderIn 白坯手动入库单 + * @return 结果 + */ + public int updateWmsRawOrderIn(WmsRawOrderIn wmsRawOrderIn); + + /** + * 删除白坯手动入库单 + * + * @param rawOrderInId 白坯手动入库单主键 + * @return 结果 + */ + public int deleteWmsRawOrderInByRawOrderInId(String rawOrderInId); + + /** + * 批量删除白坯手动入库单 + * + * @param rawOrderInIds 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteWmsRawOrderInByRawOrderInIds(String[] rawOrderInIds); +} diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/IWmsRawOrderInService.java b/op-modules/op-quality/src/main/java/com/op/quality/service/IWmsRawOrderInService.java new file mode 100644 index 000000000..520a1e3db --- /dev/null +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/IWmsRawOrderInService.java @@ -0,0 +1,60 @@ +package com.op.quality.service; + +import java.util.List; +import com.op.quality.domain.WmsRawOrderIn; + +/** + * 白坯手动入库单Service接口 + * + * @author Open Platform + * @date 2023-12-26 + */ +public interface IWmsRawOrderInService { + /** + * 查询白坯手动入库单 + * + * @param rawOrderInId 白坯手动入库单主键 + * @return 白坯手动入库单 + */ + public WmsRawOrderIn selectWmsRawOrderInByRawOrderInId(String rawOrderInId); + + /** + * 查询白坯手动入库单列表 + * + * @param wmsRawOrderIn 白坯手动入库单 + * @return 白坯手动入库单集合 + */ + public List selectWmsRawOrderInList(WmsRawOrderIn wmsRawOrderIn); + + /** + * 新增白坯手动入库单 + * + * @param wmsRawOrderIn 白坯手动入库单 + * @return 结果 + */ + public int insertWmsRawOrderIn(WmsRawOrderIn wmsRawOrderIn); + + /** + * 修改白坯手动入库单 + * + * @param wmsRawOrderIn 白坯手动入库单 + * @return 结果 + */ + public int updateWmsRawOrderIn(WmsRawOrderIn wmsRawOrderIn); + + /** + * 批量删除白坯手动入库单 + * + * @param rawOrderInIds 需要删除的白坯手动入库单主键集合 + * @return 结果 + */ + public int deleteWmsRawOrderInByRawOrderInIds(String[] rawOrderInIds); + + /** + * 删除白坯手动入库单信息 + * + * @param rawOrderInId 白坯手动入库单主键 + * @return 结果 + */ + public int deleteWmsRawOrderInByRawOrderInId(String rawOrderInId); +} diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/WmsRawOrderInServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/WmsRawOrderInServiceImpl.java new file mode 100644 index 000000000..b7153029e --- /dev/null +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/WmsRawOrderInServiceImpl.java @@ -0,0 +1,105 @@ +package com.op.quality.service.impl; + +import java.util.List; + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.op.common.core.utils.uuid.IdUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import com.op.quality.mapper.WmsRawOrderInMapper; +import com.op.quality.domain.WmsRawOrderIn; +import com.op.quality.service.IWmsRawOrderInService; + +/** + * 白坯手动入库单Service业务层处理 + * + * @author Open Platform + * @date 2023-12-26 + */ +@Service +public class WmsRawOrderInServiceImpl implements IWmsRawOrderInService { + @Autowired + private WmsRawOrderInMapper wmsRawOrderInMapper; + + /** + * 查询白坯手动入库单 + * + * @param rawOrderInId 白坯手动入库单主键 + * @return 白坯手动入库单 + */ + @Override + @DS("#header.poolName") + public WmsRawOrderIn selectWmsRawOrderInByRawOrderInId(String rawOrderInId) { + return wmsRawOrderInMapper.selectWmsRawOrderInByRawOrderInId(rawOrderInId); + } + + /** + * 查询白坯手动入库单列表 + * + * @param wmsRawOrderIn 白坯手动入库单 + * @return 白坯手动入库单 + */ + @Override + @DS("#header.poolName") + public List selectWmsRawOrderInList(WmsRawOrderIn wmsRawOrderIn) { + return wmsRawOrderInMapper.selectWmsRawOrderInList(wmsRawOrderIn); + } + + /** + * 新增白坯手动入库单 + * + * @param wmsRawOrderIn 白坯手动入库单 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int insertWmsRawOrderIn(WmsRawOrderIn wmsRawOrderIn) { + wmsRawOrderIn.setRawOrderInId(IdUtils.fastSimpleUUID()); + wmsRawOrderIn.setFactoryCode("1000"); + wmsRawOrderIn.setWhCode("A"); + wmsRawOrderIn.setWaCode("A"); + wmsRawOrderIn.setWlCode("A-A01"); + wmsRawOrderIn.setDnNo("202312"); + wmsRawOrderIn.setOrderStatus("0"); + wmsRawOrderIn.setActiveFlag("1"); + wmsRawOrderIn.setSupplyCode("0000102874"); + wmsRawOrderIn.setSapFactoryCode("1000"); + return wmsRawOrderInMapper.insertWmsRawOrderIn(wmsRawOrderIn); + } + + /** + * 修改白坯手动入库单 + * + * @param wmsRawOrderIn 白坯手动入库单 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int updateWmsRawOrderIn(WmsRawOrderIn wmsRawOrderIn) { + return wmsRawOrderInMapper.updateWmsRawOrderIn(wmsRawOrderIn); + } + + /** + * 批量删除白坯手动入库单 + * + * @param rawOrderInIds 需要删除的白坯手动入库单主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteWmsRawOrderInByRawOrderInIds(String[] rawOrderInIds) { + return wmsRawOrderInMapper.deleteWmsRawOrderInByRawOrderInIds(rawOrderInIds); + } + + /** + * 删除白坯手动入库单信息 + * + * @param rawOrderInId 白坯手动入库单主键 + * @return 结果 + */ + @Override + @DS("#header.poolName") + public int deleteWmsRawOrderInByRawOrderInId(String rawOrderInId) { + return wmsRawOrderInMapper.deleteWmsRawOrderInByRawOrderInId(rawOrderInId); + } +} diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/WmsRawOrderInMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/WmsRawOrderInMapper.xml new file mode 100644 index 000000000..130dfc136 --- /dev/null +++ b/op-modules/op-quality/src/main/resources/mapper/quality/WmsRawOrderInMapper.xml @@ -0,0 +1,307 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + select raw_order_in_id, factory_code, wh_code, wa_code, wl_code, order_in_type, order_no, dn_no, po_no, po_line, po_type, material_code, material_desc, unit, buyer_group, supply_code, sap_factory_code, send_spot, request_amount, receipt_amount, shelves_amount, location, request_time, quality_status, order_status, receipt_operator, receipt_time, shelves_operator, return_amount, return_name, return_time, return_status, shelves_time, return_message, accounting_status, accounting_time, accounting_message, user_defined1, user_defined2, user_defined3, user_defined4, user_defined5, user_defined6, user_defined7, user_defined8, user_defined9, user_defined10, create_by, gmt_create, last_modified_by, gmt_modified, active_flag from wms_raw_order_in + + + + + + + + insert into wms_raw_order_in + + raw_order_in_id, + factory_code, + wh_code, + wa_code, + wl_code, + order_in_type, + order_no, + dn_no, + po_no, + po_line, + po_type, + material_code, + material_desc, + unit, + buyer_group, + supply_code, + sap_factory_code, + send_spot, + request_amount, + receipt_amount, + shelves_amount, + location, + request_time, + quality_status, + order_status, + receipt_operator, + receipt_time, + shelves_operator, + return_amount, + return_name, + return_time, + return_status, + shelves_time, + return_message, + accounting_status, + accounting_time, + accounting_message, + user_defined1, + user_defined2, + user_defined3, + user_defined4, + user_defined5, + user_defined6, + user_defined7, + user_defined8, + user_defined9, + user_defined10, + create_by, + gmt_create, + last_modified_by, + gmt_modified, + active_flag, + + + #{rawOrderInId}, + #{factoryCode}, + #{whCode}, + #{waCode}, + #{wlCode}, + #{orderInType}, + #{orderNo}, + #{dnNo}, + #{poNo}, + #{poLine}, + #{poType}, + #{materialCode}, + #{materialDesc}, + #{unit}, + #{buyerGroup}, + #{supplyCode}, + #{sapFactoryCode}, + #{sendSpot}, + #{requestAmount}, + #{receiptAmount}, + #{shelvesAmount}, + #{location}, + #{requestTime}, + #{qualityStatus}, + #{orderStatus}, + #{receiptOperator}, + #{receiptTime}, + #{shelvesOperator}, + #{returnAmount}, + #{returnName}, + #{returnTime}, + #{returnStatus}, + #{shelvesTime}, + #{returnMessage}, + #{accountingStatus}, + #{accountingTime}, + #{accountingMessage}, + #{userDefined1}, + #{userDefined2}, + #{userDefined3}, + #{userDefined4}, + #{userDefined5}, + #{userDefined6}, + #{userDefined7}, + #{userDefined8}, + #{userDefined9}, + #{userDefined10}, + #{createBy}, + #{gmtCreate}, + #{lastModifiedBy}, + #{gmtModified}, + #{activeFlag}, + + + + + update wms_raw_order_in + + factory_code = #{factoryCode}, + wh_code = #{whCode}, + wa_code = #{waCode}, + wl_code = #{wlCode}, + order_in_type = #{orderInType}, + order_no = #{orderNo}, + dn_no = #{dnNo}, + po_no = #{poNo}, + po_line = #{poLine}, + po_type = #{poType}, + material_code = #{materialCode}, + material_desc = #{materialDesc}, + unit = #{unit}, + buyer_group = #{buyerGroup}, + supply_code = #{supplyCode}, + sap_factory_code = #{sapFactoryCode}, + send_spot = #{sendSpot}, + request_amount = #{requestAmount}, + receipt_amount = #{receiptAmount}, + shelves_amount = #{shelvesAmount}, + location = #{location}, + request_time = #{requestTime}, + quality_status = #{qualityStatus}, + order_status = #{orderStatus}, + receipt_operator = #{receiptOperator}, + receipt_time = #{receiptTime}, + shelves_operator = #{shelvesOperator}, + return_amount = #{returnAmount}, + return_name = #{returnName}, + return_time = #{returnTime}, + return_status = #{returnStatus}, + shelves_time = #{shelvesTime}, + return_message = #{returnMessage}, + accounting_status = #{accountingStatus}, + accounting_time = #{accountingTime}, + accounting_message = #{accountingMessage}, + user_defined1 = #{userDefined1}, + user_defined2 = #{userDefined2}, + user_defined3 = #{userDefined3}, + user_defined4 = #{userDefined4}, + user_defined5 = #{userDefined5}, + user_defined6 = #{userDefined6}, + user_defined7 = #{userDefined7}, + user_defined8 = #{userDefined8}, + user_defined9 = #{userDefined9}, + user_defined10 = #{userDefined10}, + create_by = #{createBy}, + gmt_create = #{gmtCreate}, + last_modified_by = #{lastModifiedBy}, + gmt_modified = #{gmtModified}, + active_flag = #{activeFlag}, + + where raw_order_in_id = #{rawOrderInId} + + + + delete from wms_raw_order_in where raw_order_in_id = #{rawOrderInId} + + + + delete from wms_raw_order_in where raw_order_in_id in + + #{rawOrderInId} + + + \ No newline at end of file From 5f0a78bbe998a2af411fd1cd6317cc4c4758df31 Mon Sep 17 00:00:00 2001 From: wws <18630710203@163.com> Date: Tue, 26 Dec 2023 17:49:00 +0800 Subject: [PATCH 20/25] =?UTF-8?q?=E7=99=BD=E5=9D=AF=E5=90=88=E6=A0=BC?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/QcProCheckController.java | 44 ++++++++++ .../com/op/quality/domain/QcProCheck.java | 84 +++++++++++++++---- .../op/quality/mapper/QcProCheckMapper.java | 2 + .../op/quality/service/QcProCheckService.java | 2 + .../service/impl/QcProCheckServiceImpl.java | 31 ++++--- .../mapper/quality/QcProCheckMapper.xml | 22 +++++ 6 files changed, 156 insertions(+), 29 deletions(-) create mode 100644 op-modules/op-quality/src/main/java/com/op/quality/controller/QcProCheckController.java diff --git a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcProCheckController.java b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcProCheckController.java new file mode 100644 index 000000000..ad10e2bdc --- /dev/null +++ b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcProCheckController.java @@ -0,0 +1,44 @@ +package com.op.quality.controller; + + +import com.baomidou.dynamic.datasource.annotation.DS; +import com.op.common.core.utils.poi.ExcelUtil; +import com.op.common.core.web.controller.BaseController; +import com.op.common.core.web.page.TableDataInfo; +import com.op.common.log.annotation.Log; +import com.op.common.log.enums.BusinessType; +import com.op.quality.domain.QcProCheck; +import com.op.quality.service.QcProCheckService; +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.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +@RestController +@RequestMapping("/qcProCheck") +public class QcProCheckController extends BaseController { + @Autowired + private QcProCheckService qcProCheckService; + + @GetMapping("/list") + public List list(QcProCheck qcProCheck) { + List qcProChecks = qcProCheckService.selectQcCheckList(qcProCheck); + return qcProCheckService.selectQcCheckList(qcProCheck); + } + + @Log(title = "白坯合格统计", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, QcProCheck qcProCheck) { + List list = qcProCheckService.selectQcCheckList(qcProCheck); + ExcelUtil util = new ExcelUtil(QcProCheck.class); + util.exportExcel(response, list, "白坯合格统计数据"); + } + +} diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcProCheck.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcProCheck.java index ad40abe36..9458ce000 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcProCheck.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcProCheck.java @@ -16,59 +16,43 @@ import java.util.List; public class QcProCheck extends BaseEntity { private static final long serialVersionUID = 1L; - @Excel(name = "id") private String id; - @Excel(name = "rfid") private String rfid; - @Excel(name = "工厂id") private String factoryId; - @Excel(name = "工厂编码") private String factoryCode; - @Excel(name = "工单id") private String workorderId; - @Excel(name = "工单编码") private String workorderCode; private String workorderName; - @Excel(name = "订单id") private String orderId; - @Excel(name = "订单编码") private String orderCode; private String workBatchCode; - @Excel(name = "机台id") private String machineId; - @Excel(name = "机台编码") + @Excel(name = "烘房编码") private String machineCode; + @Excel(name = "烘房名称") private String machineName; - @Excel(name = "不良描述") private String badMeg; - @Excel(name = "产品id") private String productId; private String productCode; private String productName; private String productSpc; - @Excel(name = "是否合格") private String isqua; - @Excel(name = "附件") private List fileList; private String fileId; - @Excel(name = "创建者") private String createBy; /** 创建时间 */ - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime; - @Excel(name = "更新者") private String updateBy; - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date updateTime; private String attr1; @@ -82,6 +66,70 @@ public class QcProCheck extends BaseEntity { private String itemCode; private String itemName; + // 创建日期范围list + private List createTimeArray; + // 创建日期开始 + private String createTimeStart; + + // 创建日期结束 + private String createTimeEnd; + + @Excel(name = "合格数") + private String acceptanceNumber; + + @Excel(name = "不合格数") + private String unqualifiedNumber; + + @Excel(name = "合格率") + private String passRate; + + public String getAcceptanceNumber() { + return acceptanceNumber; + } + + public void setAcceptanceNumber(String acceptanceNumber) { + this.acceptanceNumber = acceptanceNumber; + } + + public String getUnqualifiedNumber() { + return unqualifiedNumber; + } + + public void setUnqualifiedNumber(String unqualifiedNumber) { + this.unqualifiedNumber = unqualifiedNumber; + } + + public String getPassRate() { + return passRate; + } + + public void setPassRate(String passRate) { + this.passRate = passRate; + } + + public List getCreateTimeArray() { + return createTimeArray; + } + + public void setCreateTimeArray(List createTimeArray) { + this.createTimeArray = createTimeArray; + } + + public String getCreateTimeStart() { + return createTimeStart; + } + + public void setCreateTimeStart(String createTimeStart) { + this.createTimeStart = createTimeStart; + } + + public String getCreateTimeEnd() { + return createTimeEnd; + } + + public void setCreateTimeEnd(String createTimeEnd) { + this.createTimeEnd = createTimeEnd; + } public String getItemCode() { return itemCode; diff --git a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcProCheckMapper.java b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcProCheckMapper.java index f68842a66..f3963e23d 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcProCheckMapper.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcProCheckMapper.java @@ -37,4 +37,6 @@ public interface QcProCheckMapper { List getDictList(QcProCheck qcProCheck); List getCheckTaskList(QcCheckTaskIncome qcCheckTaskIncome); + + List getQcProCheckList(QcProCheck qcProCheck); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/QcProCheckService.java b/op-modules/op-quality/src/main/java/com/op/quality/service/QcProCheckService.java index 785a37c39..ca35706fd 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/QcProCheckService.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/QcProCheckService.java @@ -37,4 +37,6 @@ public interface QcProCheckService { List getCheckTaskDetailList(QcCheckTaskDetail qcCheckTaskDetail); List getQcUnitList(SysDictData sysDictData); + + List selectQcCheckList(QcProCheck qcProCheck); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcProCheckServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcProCheckServiceImpl.java index b3ce675de..562c9d23d 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcProCheckServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcProCheckServiceImpl.java @@ -19,10 +19,8 @@ import com.op.system.api.domain.SysDictData; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.UUID; +import java.text.SimpleDateFormat; +import java.util.*; /** * @ClassName : quaServiceImpl @@ -40,7 +38,7 @@ public class QcProCheckServiceImpl implements QcProCheckService { @Override public R saveQcProCheck(QcProCheck qcProCheck) { - DynamicDataSourceContextHolder.push("ds_"+qcProCheck.getFactoryCode()); + DynamicDataSourceContextHolder.push("ds_" + qcProCheck.getFactoryCode()); qcProCheck.setId(UUID.randomUUID().toString().replace("-", "")); //上传附件 @@ -84,19 +82,19 @@ public class QcProCheckServiceImpl implements QcProCheckService { @Override public List selectQcProCheckList(QcProCheck qcProCheck) { - DynamicDataSourceContextHolder.push("ds_"+qcProCheck.getFactoryCode()); + DynamicDataSourceContextHolder.push("ds_" + qcProCheck.getFactoryCode()); return qcProCheckMapper.selectQcProCheckList(qcProCheck); } @Override public QcProCheck getInfoByRfid(QcProCheck qcProCheck) { - DynamicDataSourceContextHolder.push("ds_"+qcProCheck.getFactoryCode()); + DynamicDataSourceContextHolder.push("ds_" + qcProCheck.getFactoryCode()); QcProCheck dto = qcProCheckMapper.getInfoByRfid(qcProCheck); - if(dto==null || StringUtils.isEmpty(dto.getProductCode())){ + if (dto == null || StringUtils.isEmpty(dto.getProductCode())) { dto = new QcProCheck(); dto.setProductCode("EmptyPallet"); - }else{ - if(StringUtils.isNotEmpty(dto.getProductName())){ + } else { + if (StringUtils.isNotEmpty(dto.getProductName())) { dto.setProductSpc(dto.getProductName().split("mm")[0] + "mm"); } @@ -106,7 +104,7 @@ public class QcProCheckServiceImpl implements QcProCheckService { @Override public List getEquipmentList(QcProCheck qcProCheck) { - DynamicDataSourceContextHolder.push("ds_"+qcProCheck.getFactoryCode()); + DynamicDataSourceContextHolder.push("ds_" + qcProCheck.getFactoryCode()); return qcProCheckMapper.getEquipmentList(qcProCheck); } @@ -136,4 +134,15 @@ public class QcProCheckServiceImpl implements QcProCheckService { return qcCheckTaskIncomeMapper.getQcUnitList(sysDictData); } + @DS("#header.poolName") + @Override + public List selectQcCheckList(QcProCheck qcProCheck) { + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + if (qcProCheck.getCreateTimeArray() != null) { + qcProCheck.setCreateTimeStart(formatter.format(qcProCheck.getCreateTimeArray().get(0))); + qcProCheck.setCreateTimeEnd(formatter.format(qcProCheck.getCreateTimeArray().get(1))); + } + return qcProCheckMapper.getQcProCheckList(qcProCheck); + } + } diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcProCheckMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcProCheckMapper.xml index 6eaf1b82e..6aadc6428 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcProCheckMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcProCheckMapper.xml @@ -265,4 +265,26 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" order by qct.create_time desc + + From a953d4eb29f1041d79f74fa727d137bcdc6d1feb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=81=92=E6=9D=B0?= <2658502433@qq.com> Date: Tue, 26 Dec 2023 17:52:22 +0800 Subject: [PATCH 21/25] =?UTF-8?q?=E6=89=8B=E5=8A=A8=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E7=99=BD=E5=9D=AF=E5=85=A5=E5=BA=93=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../quality/service/impl/WmsRawOrderInServiceImpl.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/WmsRawOrderInServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/WmsRawOrderInServiceImpl.java index b7153029e..6af8ddc20 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/WmsRawOrderInServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/WmsRawOrderInServiceImpl.java @@ -76,6 +76,15 @@ public class WmsRawOrderInServiceImpl implements IWmsRawOrderInService { @Override @DS("#header.poolName") public int updateWmsRawOrderIn(WmsRawOrderIn wmsRawOrderIn) { + wmsRawOrderIn.setFactoryCode("1000"); + wmsRawOrderIn.setWhCode("A"); + wmsRawOrderIn.setWaCode("A"); + wmsRawOrderIn.setWlCode("A-A01"); + wmsRawOrderIn.setDnNo("202312"); + wmsRawOrderIn.setOrderStatus("0"); + wmsRawOrderIn.setActiveFlag("1"); + wmsRawOrderIn.setSupplyCode("0000102874"); + wmsRawOrderIn.setSapFactoryCode("1000"); return wmsRawOrderInMapper.updateWmsRawOrderIn(wmsRawOrderIn); } From e6554a9e416abf227eeef0a9d30a9947ddbc884a Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Wed, 27 Dec 2023 08:40:50 +0800 Subject: [PATCH 22/25] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E7=AE=A1=E7=90=86bug?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/resources/mapper/plan/ProOrderWorkorderMapper.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml b/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml index 853fc9abf..938b4e955 100644 --- a/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml +++ b/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml @@ -60,7 +60,7 @@ pow.shift_id, pow.parent_order,pow.status, pow.prod_type,pow.factory_code, pow.end_flag,pow.car_num,pow.sort_no, pow.workorder_code_sap, - ppow.product_code pproductCode,ppow.product_name pproductName,pow.workorder_code_sap pworkorderCodeSap + ppow.product_code pproductCode,ppow.product_name pproductName,ppow.workorder_code_sap pworkorderCodeSap from pro_order_workorder pow left join pro_order_workorder ppow on pow.parent_order = ppow.workorder_code @@ -80,7 +80,7 @@ and pow.end_flag = #{endFlag} and CONVERT(varchar(10),pow.product_date, 120) >= '${productDateStart}' and '${productDateEnd}' >= CONVERT(varchar(10),pow.product_date, 120) - and pow.del_flag = '0' + and pow.del_flag = '0' and ppow.del_flag = '0' From 949a7f8f33f195aa7225c802abfe4770716e9c34 Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Wed, 27 Dec 2023 10:45:10 +0800 Subject: [PATCH 23/25] =?UTF-8?q?=E5=85=A5=E5=BA=93=E6=A3=80=E9=AA=8C?= =?UTF-8?q?=E5=B7=A5=E5=8D=95=E4=BF=AE=E6=94=B9=E6=9D=A5=E6=BA=90=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/QcCheckTaskIncomeController.java | 9 +++++++++ .../quality/mapper/QcCheckUnqualifiedMapper.java | 2 ++ .../service/IQcCheckTaskIncomeService.java | 2 ++ .../impl/QcCheckTaskIncomeServiceImpl.java | 16 ++++++++++++++++ .../mapper/quality/QcCheckUnqualifiedMapper.xml | 15 ++++++++++++++- 5 files changed, 43 insertions(+), 1 deletion(-) diff --git a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTaskIncomeController.java b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTaskIncomeController.java index b3cef92db..d6adfee20 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTaskIncomeController.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/controller/QcCheckTaskIncomeController.java @@ -249,6 +249,15 @@ public class QcCheckTaskIncomeController extends BaseController { List list = qcCheckTaskIncomeService.getWorkOrder(qcCheckTaskIncome); return getDataTable(list); } + /**获取入库工单列表**/ + @GetMapping("/getProductWorkOrder") + public TableDataInfo getProductWorkOrder(QcCheckTaskIncome qcCheckTaskIncome) { + startPage(); + List list = qcCheckTaskIncomeService.getProductWorkOrder(qcCheckTaskIncome); + return getDataTable(list); + } + + @PutMapping("/getBatchList") public List getBatchList(@RequestBody QcCheckTaskIncome qcCheckTaskIncome) { return qcCheckTaskIncomeService.getBatchList(qcCheckTaskIncome); diff --git a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckUnqualifiedMapper.java b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckUnqualifiedMapper.java index 7d8aac35a..f7dfde3c7 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckUnqualifiedMapper.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckUnqualifiedMapper.java @@ -80,4 +80,6 @@ public interface QcCheckUnqualifiedMapper { List getWorkOrder(QcCheckTaskIncome qcCheckTaskIncome); int updateWorkOrderBatchStatus(QcCheckTaskIncome qcCheckTaskIncome); + + List getProductWorkOrder(QcCheckTaskIncome qcCheckTaskIncome); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTaskIncomeService.java b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTaskIncomeService.java index 74c785aa6..981fb81d1 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTaskIncomeService.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/IQcCheckTaskIncomeService.java @@ -85,4 +85,6 @@ public interface IQcCheckTaskIncomeService { List getWorkOrder(QcCheckTaskIncome qcCheckTaskIncome); List getBatchList(QcCheckTaskIncome qcCheckTaskIncome); + + List getProductWorkOrder(QcCheckTaskIncome qcCheckTaskIncome); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java index 9c9cccb6e..34a9b895f 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java @@ -433,6 +433,22 @@ public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService { return qcCheckTaskIncomeMapper.getBatchList(qcCheckTaskIncome); } + @Override + @DS("#header.poolName") + public List getProductWorkOrder(QcCheckTaskIncome qcCheckTaskIncome) { + List dtos = qcCheckUnqualifiedMapper.getProductWorkOrder(qcCheckTaskIncome); + for(QcCheckTaskIncome dto:dtos){ + String statusName = ""; + if("w5".equals(dto.getStatus())){ + statusName = "质检完成"; + }else{ + statusName = "质检未完成"; + } + dto.setStatus(statusName); + } + return dtos; + } + @Override public int commitCheckResults(QcCheckTaskIncome qcCheckTaskIncome) { List details = qcCheckTaskIncome.getQcCheckTaskDetails(); diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckUnqualifiedMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckUnqualifiedMapper.xml index 6696008bb..e8e191236 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckUnqualifiedMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckUnqualifiedMapper.xml @@ -118,8 +118,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and workorder_code_sap like concat like ('%',#{orderNo}) order by product_date desc + - + insert into qc_check_unqualified id, From 1d23f85a3c22be6099c55cd6f6edcd03cb885f51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E6=81=92=E6=9D=B0?= <2658502433@qq.com> Date: Wed, 27 Dec 2023 11:06:37 +0800 Subject: [PATCH 24/25] =?UTF-8?q?=E6=89=8B=E5=8A=A8=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E7=99=BD=E5=9D=AF=E5=85=A5=E5=BA=93=E5=8D=95=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/op/quality/service/impl/WmsRawOrderInServiceImpl.java | 1 + 1 file changed, 1 insertion(+) diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/WmsRawOrderInServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/WmsRawOrderInServiceImpl.java index 6af8ddc20..af35158e5 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/WmsRawOrderInServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/WmsRawOrderInServiceImpl.java @@ -85,6 +85,7 @@ public class WmsRawOrderInServiceImpl implements IWmsRawOrderInService { wmsRawOrderIn.setActiveFlag("1"); wmsRawOrderIn.setSupplyCode("0000102874"); wmsRawOrderIn.setSapFactoryCode("1000"); + wmsRawOrderIn.setQualityStatus("0"); return wmsRawOrderInMapper.updateWmsRawOrderIn(wmsRawOrderIn); } From 6624eb29926985c8428ea922117c081ce8428374 Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Wed, 27 Dec 2023 15:56:14 +0800 Subject: [PATCH 25/25] =?UTF-8?q?=E5=85=A5=E5=BA=93=E6=A3=80=E9=AA=8C?= =?UTF-8?q?=E5=B7=A5=E5=8D=95=E4=BF=AE=E6=94=B9=E6=9D=A5=E6=BA=90=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../op/quality/domain/QcCheckTaskDefect.java | 170 ++++++++++++++++++ .../op/quality/domain/QcCheckTaskIncome.java | 19 +- .../op/quality/domain/QcCheckTaskProduce.java | 25 ++- .../mapper/QcCheckTaskIncomeMapper.java | 9 +- .../op/quality/service/QcProCheckService.java | 2 +- .../impl/QcCheckTaskIncomeServiceImpl.java | 29 ++- .../service/impl/QcProCheckServiceImpl.java | 14 +- .../quality/QcCheckTaskIncomeMapper.xml | 25 +++ 8 files changed, 258 insertions(+), 35 deletions(-) create mode 100644 op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskDefect.java diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskDefect.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskDefect.java new file mode 100644 index 000000000..4c4bbd2ce --- /dev/null +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskDefect.java @@ -0,0 +1,170 @@ +package com.op.quality.domain; + +import java.math.BigDecimal; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import com.op.common.core.annotation.Excel; +import com.op.common.core.web.domain.BaseEntity; + +/** + * 来料检验任务--不良数量对象 qc_check_task_defect + * + * @author Open Platform + * @date 2023-12-27 + */ +public class QcCheckTaskDefect extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** id */ + private String recordId; + + /** 不良分类编码 */ + @Excel(name = "不良分类编码") + private String defectCode; + + /** 不良分类名称 */ + @Excel(name = "不良分类名称") + private String defectSubclass; + + /** 预留字段1 */ + @Excel(name = "预留字段1") + private String attr1; + + /** 预留字段2 */ + @Excel(name = "预留字段2") + private String attr2; + + /** 预留字段3 */ + @Excel(name = "预留字段3") + private String attr3; + + /** 预留字段4 */ + @Excel(name = "预留字段4") + private String attr4; + + /** 工厂编码 */ + @Excel(name = "工厂编码") + private String factoryCode; + + /** 删除标识1删除0正常 */ + private String delFlag; + + /** 检验任务id */ + @Excel(name = "检验任务id") + private String belongTo; + + /** 合格数量 */ + @Excel(name = "合格数量") + private BigDecimal okQuality; + + /** 不合格数量 */ + @Excel(name = "不合格数量") + private BigDecimal noOkQuality; + public void setRecordId(String recordId) { + this.recordId = recordId; + } + + public String getRecordId() { + return recordId; + } + public void setDefectCode(String defectCode) { + this.defectCode = defectCode; + } + + public String getDefectCode() { + return defectCode; + } + public void setDefectSubclass(String defectSubclass) { + this.defectSubclass = defectSubclass; + } + + public String getDefectSubclass() { + return defectSubclass; + } + public void setAttr1(String attr1) { + this.attr1 = attr1; + } + + public String getAttr1() { + return attr1; + } + public void setAttr2(String attr2) { + this.attr2 = attr2; + } + + public String getAttr2() { + return attr2; + } + public void setAttr3(String attr3) { + this.attr3 = attr3; + } + + public String getAttr3() { + return attr3; + } + public void setAttr4(String attr4) { + this.attr4 = attr4; + } + + public String getAttr4() { + return attr4; + } + public void setFactoryCode(String factoryCode) { + this.factoryCode = factoryCode; + } + + public String getFactoryCode() { + return factoryCode; + } + public void setDelFlag(String delFlag) { + this.delFlag = delFlag; + } + + public String getDelFlag() { + return delFlag; + } + public void setBelongTo(String belongTo) { + this.belongTo = belongTo; + } + + public String getBelongTo() { + return belongTo; + } + public void setOkQuality(BigDecimal okQuality) { + this.okQuality = okQuality; + } + + public BigDecimal getOkQuality() { + return okQuality; + } + + public BigDecimal getNoOkQuality() { + return noOkQuality; + } + + public void setNoOkQuality(BigDecimal noOkQuality) { + this.noOkQuality = noOkQuality; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("recordId", getRecordId()) + .append("defectCode", getDefectCode()) + .append("defectSubclass", getDefectSubclass()) + .append("attr1", getAttr1()) + .append("attr2", getAttr2()) + .append("attr3", getAttr3()) + .append("attr4", getAttr4()) + .append("createBy", getCreateBy()) + .append("createTime", getCreateTime()) + .append("updateBy", getUpdateBy()) + .append("updateTime", getUpdateTime()) + .append("factoryCode", getFactoryCode()) + .append("delFlag", getDelFlag()) + .append("belongTo", getBelongTo()) + .append("okQuality", getOkQuality()) + .append("nookQuality", getNoOkQuality()) + .toString(); + } +} diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskIncome.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskIncome.java index 02048905b..c67fd89b1 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskIncome.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskIncome.java @@ -119,7 +119,7 @@ public class QcCheckTaskIncome extends BaseEntity { /** 删除标识1删除0正常 */ private String delFlag; - + private String orderType; private String incomeTimeStart; private String incomeTimeEnd; private String checkTimeStart; @@ -130,12 +130,29 @@ public class QcCheckTaskIncome extends BaseEntity { private String batchCode; private String batchId; private List qcCheckTaskDetails; + private List defects; private BigDecimal sampleQuality; private BigDecimal aNoOkquality; private BigDecimal bNoOkquality; private BigDecimal cNoOkquality; + public String getOrderType() { + return orderType; + } + + public void setOrderType(String orderType) { + this.orderType = orderType; + } + + public List getDefects() { + return defects; + } + + public void setDefects(List defects) { + this.defects = defects; + } + public BigDecimal getSampleQuality() { return sampleQuality; } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskProduce.java b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskProduce.java index df7d75163..47445f58b 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskProduce.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/domain/QcCheckTaskProduce.java @@ -128,14 +128,7 @@ public class QcCheckTaskProduce extends BaseEntity { private String typeCode; private String checkType; private String workorderCode; - - public String getWorkorderCode() { - return workorderCode; - } - - public void setWorkorderCode(String workorderCode) { - this.workorderCode = workorderCode; - } + private String orderType; @Excel(name = "抽样数量") private BigDecimal sampleQuality; @@ -152,6 +145,22 @@ public class QcCheckTaskProduce extends BaseEntity { @Excel(name = "C类不合格数量") private BigDecimal cNoOkquality; + public String getOrderType() { + return orderType; + } + + public void setOrderType(String orderType) { + this.orderType = orderType; + } + + public String getWorkorderCode() { + return workorderCode; + } + + public void setWorkorderCode(String workorderCode) { + this.workorderCode = workorderCode; + } + public BigDecimal getaNoOkquality() { return aNoOkquality; } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskIncomeMapper.java b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskIncomeMapper.java index 8ca914082..aadd15b1b 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskIncomeMapper.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/mapper/QcCheckTaskIncomeMapper.java @@ -2,10 +2,7 @@ package com.op.quality.mapper; import java.util.List; -import com.op.quality.domain.QcBomComponent; -import com.op.quality.domain.QcCheckTaskDetail; -import com.op.quality.domain.QcCheckTaskIncome; -import com.op.quality.domain.QcSupplier; +import com.op.quality.domain.*; import com.op.system.api.domain.SysDictData; import com.op.system.api.domain.SysUser; import com.op.system.api.domain.quality.QcUserMaterialDTO; @@ -93,4 +90,8 @@ public interface QcCheckTaskIncomeMapper { List getUserByMaterial(String materialCode); int addCheckUsers(@Param("list") List users); + + int addQcCheckTaskDefects(@Param("list") List defects); + + List getCkeckDefectList(QcCheckTaskDetail qcCheckTaskDetail); } diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/QcProCheckService.java b/op-modules/op-quality/src/main/java/com/op/quality/service/QcProCheckService.java index ca35706fd..8619fd2b4 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/QcProCheckService.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/QcProCheckService.java @@ -34,7 +34,7 @@ public interface QcProCheckService { List getCheckTaskList(QcCheckTaskIncome qcCheckTaskIncome); - List getCheckTaskDetailList(QcCheckTaskDetail qcCheckTaskDetail); + QcCheckTaskIncome getCheckTaskDetailList(QcCheckTaskDetail qcCheckTaskDetail); List getQcUnitList(SysDictData sysDictData); diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java index 34a9b895f..10f2870c9 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcCheckTaskIncomeServiceImpl.java @@ -476,22 +476,18 @@ public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService { qcCheckTask.setUpdateTime(nowTime); qcCheckTask.setCheckTime(nowTime); qcCheckTask.setCheckResult(result);//检验结果Y合格 N不合格 + BigDecimal noOkQquality = new BigDecimal("0"); - if(qcCheckTaskIncome.getaNoOkquality()!=null){ - noOkQquality = noOkQquality.add(qcCheckTaskIncome.getaNoOkquality()); - qcCheckTask.setaNoOkquality(qcCheckTaskIncome.getaNoOkquality()); - } - if(qcCheckTaskIncome.getbNoOkquality()!=null){ - noOkQquality = noOkQquality.add(qcCheckTaskIncome.getbNoOkquality()); - qcCheckTask.setbNoOkquality(qcCheckTaskIncome.getbNoOkquality()); - } - if(qcCheckTaskIncome.getcNoOkquality()!=null){ - noOkQquality = noOkQquality.add(qcCheckTaskIncome.getcNoOkquality()); - qcCheckTask.setcNoOkquality(qcCheckTaskIncome.getcNoOkquality()); - } - if(qcCheckTask.getNoOkQuality()==null){ - qcCheckTask.setNoOkQuality(noOkQquality); + List defects = qcCheckTaskIncome.getDefects(); + for(QcCheckTaskDefect defect:defects){ + defect.setRecordId(IdUtils.fastSimpleUUID()); + defect.setCreateTime(nowTime); + defect.setCreateBy(updateBy); + defect.setFactoryCode(factoryCode); + noOkQquality = noOkQquality.add(defect.getNoOkQuality()); } + qcCheckTask.setNoOkQuality(noOkQquality);//累计不合格数 + qcCheckTask.setSampleQuality(qcCheckTaskIncome.getSampleQuality()); /**qc_check_task**/ n = qcCheckTaskIncomeMapper.updateQcCheckTask(qcCheckTask); @@ -500,10 +496,13 @@ public class QcCheckTaskIncomeServiceImpl implements IQcCheckTaskIncomeService { for(QcCheckTaskDetail detail:details){ detail.setUpdateTime(nowTime); } - n= qcCheckTaskIncomeMapper.updateQcCheckTaskDetails(details); logger.info("更新qc_check_task_detail:"+n); + /**qc_check_task_defect**/ + n= qcCheckTaskIncomeMapper.addQcCheckTaskDefects(defects); + logger.info("qc_check_task_defect:"+n); + if("material".equals(qcCheckTaskIncome.getTypeCode())){ qcCheckTaskIncome.setCheckResult(result.equals("Y")?"1":"2"); qcCheckUnqualifiedMapper.updateQualityStatus(qcCheckTaskIncome); diff --git a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcProCheckServiceImpl.java b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcProCheckServiceImpl.java index 562c9d23d..b9a2a1c6b 100644 --- a/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcProCheckServiceImpl.java +++ b/op-modules/op-quality/src/main/java/com/op/quality/service/impl/QcProCheckServiceImpl.java @@ -8,10 +8,7 @@ import com.op.common.core.utils.DateUtils; import com.op.common.core.utils.StringUtils; import com.op.common.core.utils.uuid.IdUtils; import com.op.common.security.utils.SecurityUtils; -import com.op.quality.domain.QcCheckTaskDetail; -import com.op.quality.domain.QcCheckTaskIncome; -import com.op.quality.domain.QcCheckTypeProject; -import com.op.quality.domain.QcProCheck; +import com.op.quality.domain.*; import com.op.quality.mapper.QcCheckTaskIncomeMapper; import com.op.quality.mapper.QcProCheckMapper; import com.op.quality.service.QcProCheckService; @@ -123,9 +120,14 @@ public class QcProCheckServiceImpl implements QcProCheckService { } @Override - public List getCheckTaskDetailList(QcCheckTaskDetail qcCheckTaskDetail) { + public QcCheckTaskIncome getCheckTaskDetailList(QcCheckTaskDetail qcCheckTaskDetail) { DynamicDataSourceContextHolder.push(qcCheckTaskDetail.getFactoryCode()); - return qcCheckTaskIncomeMapper.getCkeckProjectList(qcCheckTaskDetail); + QcCheckTaskIncome dto = new QcCheckTaskIncome(); + List qcCheckTaskDetails =qcCheckTaskIncomeMapper.getCkeckProjectList(qcCheckTaskDetail); + dto.setQcCheckTaskDetails(qcCheckTaskDetails); + List defects =qcCheckTaskIncomeMapper.getCkeckDefectList(qcCheckTaskDetail); + dto.setDefects(defects); + return dto; } @Override diff --git a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml index 8d8416cc9..386a43408 100644 --- a/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml +++ b/op-modules/op-quality/src/main/resources/mapper/quality/QcCheckTaskIncomeMapper.xml @@ -320,6 +320,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" user_name userName from qc_user_material where material_code = #{materialCode} + insert into qc_check_task_user( record_id,belong_to,check_no, @@ -334,4 +343,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ) + + insert into qc_check_task_defect( + record_id,belong_to, + defect_code,defect_subclass, + noOk_quality, + create_by,create_time,factory_code + ) values + + ( + #{item.recordId},#{item.belongTo}, + #{item.defectCode},#{item.defectSubclass}, + #{item.noOkQuality}, + #{item.createBy},#{item.createTime},#{item.factoryCode} + ) + +