liweidong
liweidong-hj 2 weeks ago
parent 6f9a11192a
commit b5925d8cad
  1. 350
      blade-service/blade-desk/blade-desk.iml
  2. 48
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/constant/TaskingConstant.java
  3. 8
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/BsProcessSetController.java
  4. 12
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/BsWorkCenterController.java
  5. 12
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsCraftController.java
  6. 29
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsPartController.java
  7. 12
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsProDetailController.java
  8. 10
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsProModelController.java
  9. 12
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsProcessController.java
  10. 58
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/DsTaskingController.java
  11. 161
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/controller/PrReworkProcessController.java
  12. 171
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/excel/PrReworkProcessExcel.java
  13. 1
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/BsProcessSetMapper.java
  14. 1
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/BsWorkCenterMapper.java
  15. 18
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/CraftMapper.xml
  16. 7
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/DsCraftMapper.java
  17. 1
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/DsProModelMapper.java
  18. 11
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/DsTaskingMapper.java
  19. 39
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/PartMapper.xml
  20. 66
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/PrReworkProcessMapper.java
  21. 3
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/ProModelMapper.xml
  22. 1
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/ProcessMapper.xml
  23. 1
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/ProcessMeasuringToolMapper.xml
  24. 1
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/ProcessMoldToolMapper.xml
  25. 1
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/ProcessProjectMapper.xml
  26. 7
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/ProcessSetMapper.xml
  27. 53
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/ReworkProcessMapper.xml
  28. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/SpecialProMapper.xml
  29. 13
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/TaskingMapper.xml
  30. 4
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/mapper/WorkCenterMapper.xml
  31. 5
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/dto/BsTeamSetDTO.java
  32. 45
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/dto/PrReworkProcessDTO.java
  33. 6
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/entity/BsProcessSetEntity.java
  34. 14
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/entity/DsCraftEntity.java
  35. 6
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/entity/DsProcessEntity.java
  36. 6
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/entity/DsProcessMeasuringToolEntity.java
  37. 5
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/entity/DsProcessMoldToolEntity.java
  38. 7
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/entity/DsProcessProjectEntity.java
  39. 11
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/entity/DsSpecialProEntity.java
  40. 15
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/entity/DsTaskingEntity.java
  41. 150
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/entity/PrReworkProcessEntity.java
  42. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/vo/BsCompilationCompletedVO.java
  43. 30
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/vo/BsWorkCenterVO.java
  44. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/vo/DsProcessVO.java
  45. 92
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/vo/DsReworkTaskVO.java
  46. 46
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/vo/PrReworkCompilationCompletedVO.java
  47. 53
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/vo/PrReworkProcessVO.java
  48. 13
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/pojo/vo/SyncResult.java
  49. 7
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IBsProcessSetService.java
  50. 5
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IBsWorkCenterService.java
  51. 27
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IDsCraftService.java
  52. 18
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IDsPartService.java
  53. 6
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IDsProModelService.java
  54. 11
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IDsProcessMeasuringToolService.java
  55. 10
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IDsProcessMoldToolService.java
  56. 10
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IDsProcessProjectService.java
  57. 29
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IDsTaskingService.java
  58. 69
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/IPrReworkProcessService.java
  59. 5
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/BsProcessSetServiceImpl.java
  60. 9
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/BsWorkCenterServiceImpl.java
  61. 31
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsCraftServiceImpl.java
  62. 32
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsPartServiceImpl.java
  63. 5
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsProModelServiceImpl.java
  64. 18
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsProcessMeasuringToolServiceImpl.java
  65. 16
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsProcessMoldToolServiceImpl.java
  66. 16
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsProcessProjectServiceImpl.java
  67. 550
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsTaskingServiceImpl.java
  68. 73
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/PrReworkProcessServiceImpl.java
  69. 59
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/wrapper/PrReworkProcessWrapper.java

@ -1,350 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" version="4">
<component name="FacetManager">
<facet type="web" name="Web">
<configuration>
<webroots />
<sourceRoots>
<root url="file://$MODULE_DIR$/src/main/java" />
<root url="file://$MODULE_DIR$/src/main/resources" />
</sourceRoots>
</configuration>
</facet>
</component>
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_13">
<output url="file://$MODULE_DIR$/target/classes" />
<output-test url="file://$MODULE_DIR$/target/test-classes" />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="blade-desk-api" />
<orderEntry type="module" module-name="blade-user-api" />
<orderEntry type="module" module-name="blade-flow-api" />
<orderEntry type="module" module-name="blade-common" />
<orderEntry type="module" module-name="blade-dict-api" />
<orderEntry type="module" module-name="blade-record-api" />
<orderEntry type="module" module-name="blade-scope-api" />
<orderEntry type="library" name="Maven: org.springblade:blade-core-boot:4.6.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springblade:blade-core-context:4.6.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springblade:blade-core-db:4.6.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:3.2.12" level="project" />
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:5.0.1" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:6.1.15" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-tx:6.1.15" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-spring-boot3-starter:3.5.12" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:3.2.12" level="project" />
<orderEntry type="library" name="Maven: com.alibaba:druid-spring-boot-3-starter:1.2.23" level="project" />
<orderEntry type="library" name="Maven: com.mysql:mysql-connector-j:8.3.0" level="project" />
<orderEntry type="library" name="Maven: com.google.protobuf:protobuf-java:3.25.1" level="project" />
<orderEntry type="library" name="Maven: org.springblade:blade-core-secure:4.6.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springblade:blade-core-cloud:4.6.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: de.codecentric:spring-boot-admin-starter-client:3.2.3" level="project" />
<orderEntry type="library" name="Maven: de.codecentric:spring-boot-admin-client:3.2.3" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-actuator:3.2.12" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-actuator-autoconfigure:3.2.12" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-actuator:3.2.12" level="project" />
<orderEntry type="library" name="Maven: io.micrometer:micrometer-jakarta9:1.12.13" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.cloud:spring-cloud-starter-alibaba-sentinel:2023.0.1.2" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.csp:sentinel-transport-simple-http:1.8.8" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.csp:sentinel-transport-common:1.8.8" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.csp:sentinel-datasource-extension:1.8.8" level="project" />
<orderEntry type="library" name="Maven: com.alibaba:fastjson:2.0.53" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.fastjson2:fastjson2-extension:2.0.53" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.fastjson2:fastjson2:2.0.53" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.csp:sentinel-annotation-aspectj:1.8.8" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.cloud:spring-cloud-circuitbreaker-sentinel:2023.0.1.2" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.csp:sentinel-reactor-adapter:1.8.8" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.csp:sentinel-spring-webflux-adapter:1.8.8" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.csp:sentinel-spring-webmvc-v6x-adapter:1.8.8" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.csp:sentinel-web-adapter-common:1.8.8" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.csp:sentinel-parameter-flow-control:1.8.8" level="project" />
<orderEntry type="library" name="Maven: com.googlecode.concurrentlinkedhashmap:concurrentlinkedhashmap-lru:1.4.2" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.csp:sentinel-cluster-server-default:1.8.8" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.csp:sentinel-cluster-common-default:1.8.8" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.csp:sentinel-cluster-client-default:1.8.8" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.cloud:spring-cloud-alibaba-sentinel-datasource:2023.0.1.2" level="project" />
<orderEntry type="library" name="Maven: org.springblade:blade-starter-cache:4.6.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-cache:3.2.12" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-context-support:6.1.15" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-context:6.1.15" level="project" />
<orderEntry type="library" name="Maven: org.springblade:blade-starter-redis:4.6.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-redis:3.2.12" level="project" />
<orderEntry type="library" name="Maven: io.lettuce:lettuce-core:6.3.2.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.data:spring-data-redis:3.2.12" level="project" />
<orderEntry type="library" name="Maven: org.springframework.data:spring-data-keyvalue:3.2.12" level="project" />
<orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:3.2.12" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-oxm:6.1.15" level="project" />
<orderEntry type="library" name="Maven: org.redisson:redisson:3.17.7" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-common:4.1.115.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-codec:4.1.115.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-buffer:4.1.115.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-transport:4.1.115.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-resolver:4.1.115.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-resolver-dns:4.1.115.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-codec-dns:4.1.115.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-handler:4.1.115.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-transport-native-unix-common:4.1.115.Final" level="project" />
<orderEntry type="library" name="Maven: javax.cache:cache-api:1.1.1" level="project" />
<orderEntry type="library" name="Maven: io.projectreactor:reactor-core:3.6.12" level="project" />
<orderEntry type="library" name="Maven: org.reactivestreams:reactive-streams:1.0.4" level="project" />
<orderEntry type="library" name="Maven: io.reactivex.rxjava3:rxjava:3.1.9" level="project" />
<orderEntry type="library" name="Maven: org.jboss.marshalling:jboss-marshalling:2.0.11.Final" level="project" />
<orderEntry type="library" name="Maven: org.jboss.marshalling:jboss-marshalling-river:2.0.11.Final" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.18.0" level="project" />
<orderEntry type="library" name="Maven: net.bytebuddy:byte-buddy:1.14.19" level="project" />
<orderEntry type="library" name="Maven: org.jodd:jodd-bean:5.1.6" level="project" />
<orderEntry type="library" name="Maven: org.jodd:jodd-core:5.1.6" level="project" />
<orderEntry type="library" name="Maven: org.springblade:blade-starter-log:4.6.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus:3.5.12" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-core:3.5.12" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-annotation:3.5.12" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-spring:3.5.12" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-extension:3.5.12" level="project" />
<orderEntry type="library" name="Maven: net.logstash.logback:logstash-logback-encoder:6.2" level="project" />
<orderEntry type="library" name="Maven: org.codehaus.janino:janino:3.0.15" level="project" />
<orderEntry type="library" name="Maven: org.codehaus.janino:commons-compiler:3.1.12" level="project" />
<orderEntry type="library" name="Maven: org.hibernate.validator:hibernate-validator:8.0.1.Final" level="project" />
<orderEntry type="library" name="Maven: jakarta.validation:jakarta.validation-api:3.0.2" level="project" />
<orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.5.3.Final" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml:classmate:1.6.0" level="project" />
<orderEntry type="library" name="Maven: org.springblade:blade-starter-mybatis:4.6.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-jsqlparser:3.5.12" level="project" />
<orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:5.1" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-jsqlparser-common:3.5.12" level="project" />
<orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:3.0.4" level="project" />
<orderEntry type="library" name="Maven: org.mybatis:mybatis-typehandlers-jsr310:1.0.2" level="project" />
<orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-spring-boot-autoconfigure:3.5.12" level="project" />
<orderEntry type="library" name="Maven: org.springblade:blade-starter-xss:4.6.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.jsoup:jsoup:1.18.1" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:3.2.12" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:3.2.12" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:3.2.12" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:3.2.12" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.5.3" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.5.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.22.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.22.0" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:2.0.16" level="project" />
<orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:2.1.1" level="project" />
<orderEntry type="library" name="Maven: org.yaml:snakeyaml:2.2" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-aop:6.1.15" level="project" />
<orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.9.22.1" level="project" />
<orderEntry type="library" name="Maven: org.springframework.retry:spring-retry:2.0.10" level="project" />
<orderEntry type="library" name="Maven: org.springblade:blade-starter-swagger:4.6.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springblade:blade-core-tool:4.6.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.15.4" level="project" />
<orderEntry type="library" name="Maven: io.swagger.core.v3:swagger-annotations-jakarta:2.2.19" level="project" />
<orderEntry type="library" name="Maven: io.protostuff:protostuff-core:1.8.0" level="project" />
<orderEntry type="library" name="Maven: io.protostuff:protostuff-api:1.8.0" level="project" />
<orderEntry type="library" name="Maven: io.protostuff:protostuff-runtime:1.8.0" level="project" />
<orderEntry type="library" name="Maven: io.protostuff:protostuff-collectionschema:1.8.0" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.module:jackson-module-jaxb-annotations:2.18.0" level="project" />
<orderEntry type="library" name="Maven: jakarta.activation:jakarta.activation-api:2.1.3" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-validation:3.2.12" level="project" />
<orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:10.1.33" level="project" />
<orderEntry type="library" name="Maven: javax.xml.bind:jaxb-api:2.3.1" level="project" />
<orderEntry type="library" name="Maven: javax.activation:javax.activation-api:1.2.0" level="project" />
<orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-core:4.0.5" level="project" />
<orderEntry type="library" name="Maven: jakarta.xml.bind:jakarta.xml.bind-api:4.0.2" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: org.eclipse.angus:angus-activation:2.0.2" level="project" />
<orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-impl:4.0.5" level="project" />
<orderEntry type="library" name="Maven: org.springblade:blade-starter-auth:4.6.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springblade:blade-starter-jwt:4.6.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: io.jsonwebtoken:jjwt-impl:0.12.5" level="project" />
<orderEntry type="library" name="Maven: io.jsonwebtoken:jjwt-api:0.12.5" level="project" />
<orderEntry type="library" name="Maven: io.jsonwebtoken:jjwt-jackson:0.12.5" level="project" />
<orderEntry type="library" name="Maven: com.github.xiaoymin:knife4j-openapi3-jakarta-spring-boot-starter:4.5.0" level="project" />
<orderEntry type="library" name="Maven: com.github.xiaoymin:knife4j-core:4.5.0" level="project" />
<orderEntry type="library" name="Maven: com.github.xiaoymin:knife4j-openapi3-ui:4.5.0" level="project" />
<orderEntry type="library" name="Maven: org.springdoc:springdoc-openapi-starter-webmvc-ui:2.3.0" level="project" />
<orderEntry type="library" name="Maven: org.springdoc:springdoc-openapi-starter-webmvc-api:2.3.0" level="project" />
<orderEntry type="library" name="Maven: org.springdoc:springdoc-openapi-starter-common:2.3.0" level="project" />
<orderEntry type="library" name="Maven: io.swagger.core.v3:swagger-core-jakarta:2.2.19" level="project" />
<orderEntry type="library" name="Maven: io.swagger.core.v3:swagger-models-jakarta:2.2.19" level="project" />
<orderEntry type="library" name="Maven: org.webjars:swagger-ui:5.10.3" level="project" />
<orderEntry type="module" module-name="blade-desk-api" />
<orderEntry type="library" name="Maven: org.springblade:blade-starter-data-record:4.6.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter-openfeign:4.1.4" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter:4.1.5" level="project" />
<orderEntry type="library" name="Maven: org.springframework.security:spring-security-rsa:1.1.3" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-openfeign-core:4.1.4" level="project" />
<orderEntry type="library" name="Maven: io.github.openfeign:feign-form-spring:13.5" level="project" />
<orderEntry type="library" name="Maven: io.github.openfeign:feign-form:13.5" level="project" />
<orderEntry type="library" name="Maven: commons-fileupload:commons-fileupload:1.5" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-web:6.1.15" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-commons:4.1.5" level="project" />
<orderEntry type="library" name="Maven: io.github.openfeign:feign-core:13.5" level="project" />
<orderEntry type="library" name="Maven: io.github.openfeign:feign-slf4j:13.5" level="project" />
<orderEntry type="module" module-name="blade-user-api" />
<orderEntry type="module" module-name="blade-flow-api" />
<orderEntry type="library" name="Maven: org.springblade:blade-starter-oss:4.6.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: io.minio:minio:8.5.7" level="project" />
<orderEntry type="library" name="Maven: com.carrotsearch.thirdparty:simple-xml-safe:2.7.1" level="project" />
<orderEntry type="library" name="Maven: com.google.guava:guava:33.0.0-jre" level="project" />
<orderEntry type="library" name="Maven: com.google.guava:failureaccess:1.0.2" level="project" />
<orderEntry type="library" name="Maven: com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava" level="project" />
<orderEntry type="library" name="Maven: com.google.code.findbugs:jsr305:3.0.2" level="project" />
<orderEntry type="library" name="Maven: org.checkerframework:checker-qual:3.41.0" level="project" />
<orderEntry type="library" name="Maven: com.google.errorprone:error_prone_annotations:2.23.0" level="project" />
<orderEntry type="library" name="Maven: com.google.j2objc:j2objc-annotations:2.8" level="project" />
<orderEntry type="library" name="Maven: com.squareup.okhttp3:okhttp:4.12.0" level="project" />
<orderEntry type="library" name="Maven: com.squareup.okio:okio:3.6.0" level="project" />
<orderEntry type="library" name="Maven: com.squareup.okio:okio-jvm:3.6.0" level="project" />
<orderEntry type="library" name="Maven: org.jetbrains.kotlin:kotlin-stdlib-common:1.9.25" level="project" />
<orderEntry type="library" name="Maven: org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.25" level="project" />
<orderEntry type="library" name="Maven: org.jetbrains.kotlin:kotlin-stdlib:1.9.25" level="project" />
<orderEntry type="library" name="Maven: org.jetbrains:annotations:13.0" level="project" />
<orderEntry type="library" name="Maven: org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.9.25" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.18.0" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.18.0" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.18.0" level="project" />
<orderEntry type="library" name="Maven: org.bouncycastle:bcprov-jdk18on:1.78.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-compress:1.24.0" level="project" />
<orderEntry type="library" name="Maven: org.xerial.snappy:snappy-java:1.1.10.5" level="project" />
<orderEntry type="library" name="Maven: com.qiniu:qiniu-java-sdk:7.12.1" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: com.google.code.gson:gson:2.10.1" level="project" />
<orderEntry type="library" name="Maven: org.flowable:flowable-engine:7.1.0" level="project" />
<orderEntry type="library" name="Maven: org.flowable:flowable-bpmn-converter:7.1.0" level="project" />
<orderEntry type="library" name="Maven: org.flowable:flowable-bpmn-model:7.1.0" level="project" />
<orderEntry type="library" name="Maven: org.flowable:flowable-process-validation:7.1.0" level="project" />
<orderEntry type="library" name="Maven: org.flowable:flowable-image-generator:7.1.0" level="project" />
<orderEntry type="library" name="Maven: org.flowable:flowable-engine-common-api:7.1.0" level="project" />
<orderEntry type="library" name="Maven: org.flowable:flowable-engine-common:7.1.0" level="project" />
<orderEntry type="library" name="Maven: org.flowable:flowable-variable-service-api:7.1.0" level="project" />
<orderEntry type="library" name="Maven: org.flowable:flowable-event-registry-api:7.1.0" level="project" />
<orderEntry type="library" name="Maven: org.flowable:flowable-variable-service:7.1.0" level="project" />
<orderEntry type="library" name="Maven: org.flowable:flowable-identitylink-service:7.1.0" level="project" />
<orderEntry type="library" name="Maven: org.flowable:flowable-identitylink-service-api:7.1.0" level="project" />
<orderEntry type="library" name="Maven: org.flowable:flowable-entitylink-service:7.1.0" level="project" />
<orderEntry type="library" name="Maven: org.flowable:flowable-entitylink-service-api:7.1.0" level="project" />
<orderEntry type="library" name="Maven: org.flowable:flowable-event-registry:7.1.0" level="project" />
<orderEntry type="library" name="Maven: org.flowable:flowable-event-registry-model:7.1.0" level="project" />
<orderEntry type="library" name="Maven: org.flowable:flowable-event-registry-json-converter:7.1.0" level="project" />
<orderEntry type="library" name="Maven: org.flowable:flowable-eventsubscription-service-api:7.1.0" level="project" />
<orderEntry type="library" name="Maven: commons-io:commons-io:2.17.0" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.uuid:java-uuid-generator:5.1.0" level="project" />
<orderEntry type="library" name="Maven: org.flowable:flowable-event-registry-configurator:7.1.0" level="project" />
<orderEntry type="library" name="Maven: org.flowable:flowable-eventsubscription-service:7.1.0" level="project" />
<orderEntry type="library" name="Maven: org.flowable:flowable-task-service:7.1.0" level="project" />
<orderEntry type="library" name="Maven: org.flowable:flowable-task-service-api:7.1.0" level="project" />
<orderEntry type="library" name="Maven: org.flowable:flowable-job-service:7.1.0" level="project" />
<orderEntry type="library" name="Maven: org.flowable:flowable-job-service-api:7.1.0" level="project" />
<orderEntry type="library" name="Maven: org.flowable:flowable-batch-service:7.1.0" level="project" />
<orderEntry type="library" name="Maven: org.flowable:flowable-batch-service-api:7.1.0" level="project" />
<orderEntry type="library" name="Maven: org.flowable:flowable-idm-api:7.1.0" level="project" />
<orderEntry type="library" name="Maven: org.flowable:flowable-idm-engine:7.1.0" level="project" />
<orderEntry type="library" name="Maven: commons-codec:commons-codec:1.16.1" level="project" />
<orderEntry type="library" name="Maven: org.flowable:flowable-idm-engine-configurator:7.1.0" level="project" />
<orderEntry type="library" name="Maven: org.flowable:flowable-cmmn-api:7.1.0" level="project" />
<orderEntry type="library" name="Maven: org.flowable:flowable-cmmn-model:7.1.0" level="project" />
<orderEntry type="library" name="Maven: org.flowable:flowable-dmn-api:7.1.0" level="project" />
<orderEntry type="library" name="Maven: org.flowable:flowable-dmn-model:7.1.0" level="project" />
<orderEntry type="library" name="Maven: org.flowable:flowable-form-model:7.1.0" level="project" />
<orderEntry type="library" name="Maven: org.flowable:flowable-form-api:7.1.0" level="project" />
<orderEntry type="library" name="Maven: org.flowable:flowable-content-api:7.1.0" level="project" />
<orderEntry type="library" name="Maven: org.flowable:flowable-http-common:7.1.0" level="project" />
<orderEntry type="library" name="Maven: org.flowable:flowable-mail:7.1.0" level="project" />
<orderEntry type="library" name="Maven: org.eclipse.angus:angus-mail:2.0.3" level="project" />
<orderEntry type="library" name="Maven: jakarta.mail:jakarta.mail-api:2.1.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.13.0" level="project" />
<orderEntry type="library" name="Maven: org.mybatis:mybatis:3.5.19" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-beans:6.1.15" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-core:6.1.15" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jcl:6.1.15" level="project" />
<orderEntry type="library" name="Maven: joda-time:joda-time:2.13.0" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:2.0.16" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:jcl-over-slf4j:2.0.16" level="project" />
<orderEntry type="library" name="Maven: org.springblade:blade-starter-excel:4.6.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springblade:blade-core-launch:4.6.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:3.2.12" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-json:3.2.12" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.15.4" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.module:jackson-module-parameter-names:2.18.0" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-webmvc:6.1.15" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-expression:6.1.15" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-undertow:3.2.12" level="project" />
<orderEntry type="library" name="Maven: io.undertow:undertow-core:2.3.17.Final" level="project" />
<orderEntry type="library" name="Maven: org.jboss.xnio:xnio-api:3.8.16.Final" level="project" />
<orderEntry type="library" name="Maven: org.wildfly.common:wildfly-common:1.5.4.Final" level="project" />
<orderEntry type="library" name="Maven: org.wildfly.client:wildfly-client-config:1.0.1.Final" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: org.jboss.xnio:xnio-nio:3.8.16.Final" level="project" />
<orderEntry type="library" name="Maven: org.jboss.threads:jboss-threads:3.5.0.Final" level="project" />
<orderEntry type="library" name="Maven: io.undertow:undertow-servlet:2.3.17.Final" level="project" />
<orderEntry type="library" name="Maven: jakarta.servlet:jakarta.servlet-api:6.0.0" level="project" />
<orderEntry type="library" name="Maven: io.undertow:undertow-websockets-jsr:2.3.17.Final" level="project" />
<orderEntry type="library" name="Maven: jakarta.websocket:jakarta.websocket-api:2.1.1" level="project" />
<orderEntry type="library" name="Maven: jakarta.websocket:jakarta.websocket-client-api:2.1.1" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter-bootstrap:4.1.5" level="project" />
<orderEntry type="library" name="Maven: com.alibaba:easyexcel:3.3.4" level="project" />
<orderEntry type="library" name="Maven: com.alibaba:easyexcel-core:3.3.4" level="project" />
<orderEntry type="library" name="Maven: com.alibaba:easyexcel-support:3.3.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi:4.1.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-collections4:4.4" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-math3:3.6.1" level="project" />
<orderEntry type="library" name="Maven: com.zaxxer:SparseBitSet:1.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml:4.1.2" level="project" />
<orderEntry type="library" name="Maven: com.github.virtuald:curvesapi:1.06" level="project" />
<orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml-schemas:4.1.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.xmlbeans:xmlbeans:3.1.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.commons:commons-csv:1.8" level="project" />
<orderEntry type="library" name="Maven: org.ehcache:ehcache:3.10.8" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: org.glassfish.jaxb:jaxb-runtime:4.0.5" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: org.glassfish.jaxb:jaxb-core:4.0.5" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: org.glassfish.jaxb:txw2:4.0.5" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: com.sun.istack:istack-commons-runtime:4.1.2" level="project" />
<orderEntry type="module" module-name="blade-job-api" />
<orderEntry type="library" name="Maven: cn.hutool:hutool-all:5.8.16" level="project" />
<orderEntry type="module" module-name="blade-common" />
<orderEntry type="library" name="Maven: org.springblade:blade-starter-loadbalancer:4.6.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter-loadbalancer:4.1.5" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-loadbalancer:4.1.5" level="project" />
<orderEntry type="library" name="Maven: io.projectreactor.addons:reactor-extra:3.5.2" level="project" />
<orderEntry type="library" name="Maven: com.stoyanr:evictor:1.0.0" level="project" />
<orderEntry type="library" name="Maven: io.github.openfeign:feign-okhttp:13.5" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-discovery:2023.0.1.2" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.cloud:spring-cloud-alibaba-commons:2023.0.1.2" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.spring:spring-context-support:1.0.11" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-config:2023.0.1.2" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.nacos:nacos-client:2.5.1" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.nacos:nacos-auth-plugin:2.5.1" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.nacos:nacos-encryption-plugin:2.5.1" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.nacos:nacos-logback-adapter-12:2.5.1" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.nacos:logback-adapter:1.1.3" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.nacos:nacos-log4j2-adapter:2.5.1" level="project" />
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpasyncclient:4.1.5" level="project" />
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore-nio:4.4.16" level="project" />
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.14" level="project" />
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.16" level="project" />
<orderEntry type="library" name="Maven: io.prometheus:simpleclient:0.16.0" level="project" />
<orderEntry type="library" name="Maven: io.prometheus:simpleclient_tracer_otel:0.16.0" level="project" />
<orderEntry type="library" name="Maven: io.prometheus:simpleclient_tracer_common:0.16.0" level="project" />
<orderEntry type="library" name="Maven: io.prometheus:simpleclient_tracer_otel_agent:0.16.0" level="project" />
<orderEntry type="library" name="Maven: org.springblade:blade-starter-metrics:4.6.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: io.micrometer:micrometer-core:1.12.4" level="project" />
<orderEntry type="library" name="Maven: io.micrometer:micrometer-commons:1.12.13" level="project" />
<orderEntry type="library" name="Maven: io.micrometer:micrometer-observation:1.12.13" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: org.hdrhistogram:HdrHistogram:2.1.12" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: org.latencyutils:LatencyUtils:2.0.3" level="project" />
<orderEntry type="library" name="Maven: io.micrometer:micrometer-registry-prometheus:1.12.4" level="project" />
<orderEntry type="library" name="Maven: io.prometheus:simpleclient_common:0.16.0" level="project" />
<orderEntry type="library" name="Maven: com.alibaba.csp:sentinel-core:1.8.8" level="project" />
<orderEntry type="library" name="Maven: com.alibaba:druid:1.2.23" level="project" />
<orderEntry type="library" name="Maven: org.springblade:blade-starter-api-crypto:4.6.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-context:4.1.5" level="project" />
<orderEntry type="library" name="Maven: org.springframework.security:spring-security-crypto:6.2.8" level="project" />
<orderEntry type="module" module-name="blade-dict-api" />
<orderEntry type="module" module-name="blade-record-api" />
<orderEntry type="module" module-name="blade-scope-api" />
<orderEntry type="library" name="Maven: org.springblade:blade-starter-data-scope:4.6.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: io.swagger.core.v3:swagger-annotations:2.2.19" level="project" />
<orderEntry type="library" name="Maven: org.springblade:blade-starter-tenant:4.6.0.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.oracle.database.jdbc:ojdbc8:21.5.0.0" level="project" />
<orderEntry type="library" name="Maven: com.oracle.database.nls:orai18n:19.15.0.0" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.projectlombok:lombok:1.18.36" level="project" />
</component>
</module>

@ -6,6 +6,7 @@ package org.springblade.desk.dashboard.constant;
*/
public interface TaskingConstant {
/** 工艺任务状态*/
/**
* 待分派
*/
@ -52,6 +53,7 @@ public interface TaskingConstant {
*/
String IS_SINTERING = "1";
/** 零件状态*/
/**
* 正常
*/
@ -68,4 +70,50 @@ public interface TaskingConstant {
* 作废
*/
String STATUS_MORAL = "5";
/** 工艺任务类型*/
/**
* 新图任务
*/
String NEW_MAP_TASKS = "3";
/**
* 设计变更任务
*/
String DESIGN_CHANGE_TASKS = "2";
/**
* 审理单超时
*/
String TRIAL_ORDER_TIMEOUT = "4";
/**
* 检验超时
*/
String INSPECTION_TIMEOUT = "5";
/**
* 返工计划工艺编制
*/
String REWORK_PLAN_EDIT = "6";
/** 零件工艺状态*/
/**
* 已过期
*/
String HAVE_EXPIRED = "1";
/**
* 使用中
*/
String IN_USE = "2";
/**
* 维护中
*/
String UNDER_MAINTENANCE = "3";
/**
* 是否是检验工序
*/
Integer IS_CHECKOUT = 1;
}

@ -41,6 +41,7 @@ import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.desk.dashboard.pojo.dto.BsTeamSetDTO;
import org.springblade.desk.dashboard.pojo.entity.BsProcessSetEntity;
import org.springblade.desk.dashboard.pojo.entity.BsTeamSetEntity;
import org.springblade.desk.dashboard.pojo.vo.BsProcessSetVO;
@ -207,10 +208,9 @@ public class BsProcessSetController extends BladeController {
@ApiOperationSupport(order = 11)
@Operation(summary = "增加删除班组", description = "班组ids")
public R addOrUpdateTeam(@Parameter(description = "主键集合", required = true)
@RequestParam List<Long> tsIdList,
@RequestParam Long pId
) {
@RequestBody BsTeamSetDTO bsTeamSetDTO) {
Long pId = bsTeamSetDTO.getPid();
List<Long> tsIdList = bsTeamSetDTO.getTsIdList();
return R.status(bsProcessSetService.addOrUpdateTeam(pId,tsIdList));
}

@ -158,4 +158,16 @@ public class BsWorkCenterController extends BladeController {
ExcelUtil.export(response, "工作中心表数据" + DateUtil.time(), "工作中心表数据表", list, BsWorkCenterExcel.class);
}
/**
* 工作中心表 查询
*/
@GetMapping("/getList")
@ApiOperationSupport(order = 1)
@Operation(summary = "作业中心列表", description = "")
public R<List<BsWorkCenterVO>> getList() {
List<BsWorkCenterVO> detail = bsWorkCenterService.getList();
return R.data(detail);
}
}

@ -173,10 +173,20 @@ public class DsCraftController extends BladeController {
@GetMapping("/getVersion")
@ApiOperationSupport(order = 1)
@Operation(summary = "获取版本号", description = "传入零件ID")
public R<List<DsCraftExpireVO>> getVersion(Long partId) {
public R<List<DsCraftEntity>> getVersion(Long partId) {
return R.data(dsCraftService.getVersion(partId));
}
/**
* 根据零件ID查询工艺
*/
@GetMapping("/listByPart")
@ApiOperationSupport(order = 1)
@Operation(summary = "获取版本号", description = "传入零件ID")
public R<List<DsCraftVO>> listByPart(Long partId) {
return R.data(dsCraftService.selectDsCraftByPartId(partId));
}
}

@ -75,10 +75,13 @@ public class DsPartController extends BladeController {
@GetMapping("/detail")
@ApiOperationSupport(order = 1)
@Operation(summary = "详情", description = "传入dsPart")
public R<DsPartVO> detail(DsPartEntity dsPart) {
DsPartEntity detail = dsPartService.getOne(Condition.getQueryWrapper(dsPart));
return R.data(DsPartWrapper.build().entityVO(detail));
public R<DsPartSynthesisVO> detail(@RequestParam Long partId,
@RequestParam String partVersion) {
DsPartSynthesisVO detail = dsPartService.detail(partId,partVersion);
return R.data(detail);
}
// /**
// * 零件信息表 分页
// */
@ -240,7 +243,27 @@ public class DsPartController extends BladeController {
}
/**
* 同步零件
*/
@GetMapping("/syncPart")
@ApiOperationSupport(order = 1)
@Operation(summary = "同步零件")
public R syncPart(@RequestParam String partCode) {
return R.data(dsPartService.syncPart(partCode));
}
/**
* 获取零件
*/
@GetMapping("/getPartList")
@ApiOperationSupport(order = 1)
@Operation(summary = "获取零件")
public R syncPart() {
return R.data(dsPartService.selectAll());
}

@ -38,6 +38,7 @@ import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.desk.dashboard.pojo.vo.DsProModelVO;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@ -158,4 +159,15 @@ public class DsProDetailController extends BladeController {
ExcelUtil.export(response, "工艺模版明细表数据" + DateUtil.time(), "工艺模版明细表数据表", list, DsProDetailExcel.class);
}
/**
* 工艺模版明细表 分页
*/
@GetMapping("/getModelDetailList")
@ApiOperationSupport(order = 2)
@Operation(summary = "分页", description = "传入dsProDetail")
public R<List<DsProDetailEntity>> getModelDetailList( @RequestParam Long modelId) {
List<DsProDetailEntity> detailEntityList = dsProDetailService.selectDsProDetailByModelId(modelId);
return R.data(detailEntityList);
}
}

@ -160,5 +160,15 @@ public class DsProModelController extends BladeController {
}
/**
* 工艺模版
*/
@GetMapping("/getModelList")
@ApiOperationSupport(order = 2)
@Operation(summary = "分页", description = "")
public R<List<DsProModelVO>> getModelList() {
List<DsProModelVO> modelList = dsProModelService.getModelList();
return R.data(modelList);
}
}

@ -170,4 +170,16 @@ public class DsProcessController extends BladeController {
return R.data(dsProcessService.processDetail(processId));
}
/**
* 根据工艺ID查询工序
*/
@GetMapping("/getProcessList")
@ApiOperationSupport(order = 1)
@Operation(summary = "根据工艺ID查询工序", description = "传入craftId")
public R<List<DsProcessEntity>> getProcessList(Long craftId) {
return R.data(dsProcessService.selectDsProcessByCraftId(craftId));
}
}

@ -114,7 +114,7 @@ public class DsTaskingController extends BladeController {
}
/**
* 任务处理新增
* 任务处理 新增任务
*/
@PostMapping("/save")
@ApiOperationSupport(order = 4)
@ -192,10 +192,10 @@ public class DsTaskingController extends BladeController {
/**
* 任务完成
*/
@PostMapping("/taskComplete")
@GetMapping("/taskComplete")
@ApiOperationSupport(order = 4)
@Operation(summary = "任务完成")
public R taskComplete( @RequestBody List<Long> taskIds) {
public R taskComplete( @RequestParam List<Long> taskIds) {
return R.status(dsTaskingService.taskComplete(taskIds));
}
@ -244,17 +244,17 @@ public class DsTaskingController extends BladeController {
/**
* 编制 - 工艺编制 - 完成
* 编制 - 工艺编制 - 保存
*/
@PostMapping("/authorizedAccomplish")
@ApiOperationSupport(order = 1)
@Operation(summary = "工艺编制-完成")
@Operation(summary = "工艺编制-保存")
public R<DsPartAuthorizedVO> authorizedAccomplish(
@RequestBody BsCompilationCompletedVO compilationCompleted
) {
DsPartEntity dsPart = compilationCompleted.getDsPart();
List<DsPartEntity> zPartList = compilationCompleted.getZPartList();
List<DsPartEntity> zPartList = compilationCompleted.getPartList();
DsCraftEntity craft = compilationCompleted.getCraft();
List<DsProcessEntity> processList = compilationCompleted.getProcessList();
List<Long> deleteIds = compilationCompleted.getDeleteIds();
@ -284,7 +284,7 @@ public class DsTaskingController extends BladeController {
*/
@PostMapping("/saveProcessMeasuringTool")
@ApiOperationSupport(order = 1)
@Operation(summary = "项目 - 保存")
@Operation(summary = "尺寸量具 - 保存")
public R saveProcessMeasuringTool(
@RequestBody DsProcessSaveVO compilationCompleted
@ -313,8 +313,52 @@ public class DsTaskingController extends BladeController {
}
/**
* 返工任务 同步
*/
@GetMapping("/reworkTask")
@ApiOperationSupport(order = 1)
@Operation(summary = "返工任务同步", description = "")
public R reworkTask() {
return R.status(dsTaskingService.reworkTask());
}
/**
* 编制 - 返工工艺编制 - 保存
*/
@PostMapping("/reworkAuthorizedAccomplish")
@ApiOperationSupport(order = 1)
@Operation(summary = "返工工艺编制 - 保存")
public R reworkAuthorizedAccomplish(
@RequestBody PrReworkCompilationCompletedVO reworkCompilationCompletedVO
) {
DsCraftEntity craft = reworkCompilationCompletedVO.getCraft();
List<PrReworkProcessVO> reworkProcessVOList = reworkCompilationCompletedVO.getReworkProcessVOList();
List<Long> reworkProcessDeleteIds = reworkCompilationCompletedVO.getReworkProcessDeleteIds();
List<Long> processProjectDeleteIds = reworkCompilationCompletedVO.getProcessProjectDeleteIds();
List<Long> processMeasuringToolDeleteIds = reworkCompilationCompletedVO.getProcessMeasuringToolDeleteIds();
List<Long> processMoldToolDeleteIds = reworkCompilationCompletedVO.getProcessMoldToolDeleteIds();
return R.status(dsTaskingService.reworkAuthorizedAccomplish(craft,reworkProcessVOList,reworkProcessDeleteIds,
processProjectDeleteIds,processMeasuringToolDeleteIds,processMoldToolDeleteIds));
}
/**
* 零件信息表 详情-工艺详情
*/
@GetMapping("/craftDetail")
@ApiOperationSupport(order = 1)
@Operation(summary = "零件-工艺详情", description = "传入dsPart")
public R<DsPartAuthorizedVO> craftDetail(@RequestParam Long partId,
@RequestParam String partVersion,
@RequestParam String rank) {
DsPartAuthorizedVO detail = dsTaskingService.craftDetail(partId,partVersion,rank);
return R.data(detail);
}
}

@ -0,0 +1,161 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.desk.dashboard.controller;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import lombok.AllArgsConstructor;
import jakarta.validation.Valid;
import org.springblade.core.secure.BladeUser;
import org.springblade.core.secure.annotation.IsAdmin;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.desk.dashboard.pojo.entity.PrReworkProcessEntity;
import org.springblade.desk.dashboard.pojo.vo.PrReworkProcessVO;
import org.springblade.desk.dashboard.excel.PrReworkProcessExcel;
import org.springblade.desk.dashboard.wrapper.PrReworkProcessWrapper;
import org.springblade.desk.dashboard.service.IPrReworkProcessService;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.excel.util.ExcelUtil;
import org.springblade.core.tool.constant.BladeConstant;
import java.util.Map;
import java.util.List;
import jakarta.servlet.http.HttpServletResponse;
/**
* 返工任务表 控制器
*
* @author BladeX
* @since 2025-12-03
*/
@RestController
@AllArgsConstructor
@RequestMapping("/prReworkProcess")
@Tag(name = "返工任务表", description = "返工任务表接口")
public class PrReworkProcessController extends BladeController {
private final IPrReworkProcessService prReworkProcessService;
/**
* 返工任务表 详情
*/
@GetMapping("/detail")
@ApiOperationSupport(order = 1)
@Operation(summary = "详情", description = "传入prReworkProcess")
public R<PrReworkProcessVO> detail(PrReworkProcessEntity prReworkProcess) {
PrReworkProcessEntity detail = prReworkProcessService.getOne(Condition.getQueryWrapper(prReworkProcess));
return R.data(PrReworkProcessWrapper.build().entityVO(detail));
}
/**
* 返工任务表 分页
*/
@GetMapping("/list")
@ApiOperationSupport(order = 2)
@Operation(summary = "分页", description = "传入prReworkProcess")
public R<IPage<PrReworkProcessVO>> list(@Parameter(hidden = true) @RequestParam Map<String, Object> prReworkProcess, Query query) {
IPage<PrReworkProcessEntity> pages = prReworkProcessService.page(Condition.getPage(query), Condition.getQueryWrapper(prReworkProcess, PrReworkProcessEntity.class));
return R.data(PrReworkProcessWrapper.build().pageVO(pages));
}
/**
* 返工任务表 自定义分页
*/
@GetMapping("/page")
@ApiOperationSupport(order = 3)
@Operation(summary = "分页", description = "传入prReworkProcess")
public R<IPage<PrReworkProcessVO>> page(PrReworkProcessVO prReworkProcess, Query query) {
IPage<PrReworkProcessVO> pages = prReworkProcessService.selectPrReworkProcessPage(Condition.getPage(query), prReworkProcess);
return R.data(pages);
}
/**
* 返工任务表 新增
*/
@PostMapping("/save")
@ApiOperationSupport(order = 4)
@Operation(summary = "新增", description = "传入prReworkProcess")
public R save(@Valid @RequestBody PrReworkProcessEntity prReworkProcess) {
return R.status(prReworkProcessService.save(prReworkProcess));
}
/**
* 返工任务表 修改
*/
@PostMapping("/update")
@ApiOperationSupport(order = 5)
@Operation(summary = "修改", description = "传入prReworkProcess")
public R update(@Valid @RequestBody PrReworkProcessEntity prReworkProcess) {
return R.status(prReworkProcessService.updateById(prReworkProcess));
}
/**
* 返工任务表 新增或修改
*/
@PostMapping("/submit")
@ApiOperationSupport(order = 6)
@Operation(summary = "新增或修改", description = "传入prReworkProcess")
public R submit(@Valid @RequestBody PrReworkProcessEntity prReworkProcess) {
return R.status(prReworkProcessService.saveOrUpdate(prReworkProcess));
}
/**
* 返工任务表 删除
*/
@PostMapping("/remove")
@ApiOperationSupport(order = 7)
@Operation(summary = "逻辑删除", description = "传入ids")
public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
return R.status(prReworkProcessService.deleteLogic(Func.toLongList(ids)));
}
/**
* 导出数据
*/
@IsAdmin
@GetMapping("/export-prReworkProcess")
@ApiOperationSupport(order = 9)
@Operation(summary = "导出数据", description = "传入prReworkProcess")
public void exportPrReworkProcess(@Parameter(hidden = true) @RequestParam Map<String, Object> prReworkProcess, BladeUser bladeUser, HttpServletResponse response) {
QueryWrapper<PrReworkProcessEntity> queryWrapper = Condition.getQueryWrapper(prReworkProcess, PrReworkProcessEntity.class);
//if (!AuthUtil.isAdministrator()) {
// queryWrapper.lambda().eq(PrReworkProcess::getTenantId, bladeUser.getTenantId());
//}
//queryWrapper.lambda().eq(PrReworkProcessEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED);
List<PrReworkProcessExcel> list = prReworkProcessService.exportPrReworkProcess(queryWrapper);
ExcelUtil.export(response, "返工任务表数据" + DateUtil.time(), "返工任务表数据表", list, PrReworkProcessExcel.class);
}
}

@ -0,0 +1,171 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.desk.dashboard.excel;
import lombok.Data;
import java.util.Date;
import java.math.BigDecimal;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import java.io.Serializable;
import java.io.Serial;
/**
* 返工任务表 Excel实体类
*
* @author BladeX
* @since 2025-12-03
*/
@Data
@ColumnWidth(25)
@HeadRowHeight(20)
@ContentRowHeight(18)
public class PrReworkProcessExcel implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 备注
*/
@ColumnWidth(20)
@ExcelProperty("备注")
private String remarks;
/**
*
*/
@ColumnWidth(20)
@ExcelProperty("")
private BigDecimal newColumn;
/**
* 主键ID
*/
@ColumnWidth(20)
@ExcelProperty("主键ID")
private BigDecimal id;
/**
* 返工单号
*/
@ColumnWidth(20)
@ExcelProperty("返工单号")
private String reworkCode;
/**
* 返工顺序
*/
@ColumnWidth(20)
@ExcelProperty("返工顺序")
private Long reworkNo;
/**
* C号工艺号
*/
@ColumnWidth(20)
@ExcelProperty("C号(工艺号)")
private String craftNo;
/**
* 序号
*/
@ColumnWidth(20)
@ExcelProperty("序号")
private String processNo;
/**
* 工序ID
*/
@ColumnWidth(20)
@ExcelProperty("工序ID")
private BigDecimal ppsId;
/**
* 工艺能力ID
*/
@ColumnWidth(20)
@ExcelProperty("工艺能力ID")
private BigDecimal caId;
/**
* 工序描述
*/
@ColumnWidth(20)
@ExcelProperty("工序描述")
private String makeMemo;
/**
* 工时定额
*/
@ColumnWidth(20)
@ExcelProperty("工时定额")
private BigDecimal hourQuota;
/**
* 计划开始时间
*/
@ColumnWidth(20)
@ExcelProperty("计划开始时间")
private Date startTime;
/**
* 计划结束时间
*/
@ColumnWidth(20)
@ExcelProperty("计划结束时间")
private Date endTime;
/**
* 加工班组ID
*/
@ColumnWidth(20)
@ExcelProperty("加工班组ID")
private BigDecimal makeTeam;
/**
* 外协商ID
*/
@ColumnWidth(20)
@ExcelProperty("外协商ID")
private BigDecimal ocId;
/**
* 操作人ID
*/
@ColumnWidth(20)
@ExcelProperty("操作人ID")
private BigDecimal makeUser;
/**
* 关键工序0-1-
*/
@ColumnWidth(20)
@ExcelProperty("关键工序:0-否,1-是")
private Short cruxProcess;
/**
* 零件号
*/
@ColumnWidth(20)
@ExcelProperty("零件号")
private String partCode;
/**
* 批次号
*/
@ColumnWidth(20)
@ExcelProperty("批次号")
private String batchNo;
}

@ -61,4 +61,5 @@ public interface BsProcessSetMapper extends BaseMapper<BsProcessSetEntity> {
*/
List<BsProcessSetExcel> exportBsProcessSet(@Param("ew") Wrapper<BsProcessSetEntity> queryWrapper);
BsProcessSetEntity selectBsProcessSetByProcessCode(@Param("processCode")String processCode);
}

@ -60,4 +60,5 @@ public interface BsWorkCenterMapper extends BaseMapper<BsWorkCenterEntity> {
*/
List<BsWorkCenterExcel> exportBsWorkCenter(@Param("ew") Wrapper<BsWorkCenterEntity> queryWrapper);
List<BsWorkCenterVO> getList();
}

@ -21,6 +21,8 @@
<result column="REMARKS" property="remarks"/>
<result column="STATUS" property="status"/>
<result column="PART_VERSIONS" property="partVersions"/>
<result column="CRAFT_STATUS" property="craftStatus"/>
<result column="REWORK_ORDER" property="reworkOrder"/>
</resultMap>
@ -41,7 +43,7 @@
</foreach>
</select>
<select id="selectDsCraftByPartId" resultType="org.springblade.desk.dashboard.pojo.vo.DsCraftExpireVO">
<select id="selectDsCraftByPartId" resultType="org.springblade.desk.dashboard.pojo.entity.DsCraftEntity">
select * from DS_CRAFT where is_deleted = 0 and PART_ID = #{partId}
</select>
<select id="selectCraftByPartId" resultType="org.springblade.desk.dashboard.pojo.vo.DsCraftVO">
@ -54,4 +56,18 @@
and RANK = #{rank}
</select>
<select id="getPartCraft" resultType="org.springblade.desk.dashboard.pojo.entity.DsCraftEntity">
select * from DS_CRAFT where is_deleted = 0
and PART_ID = #{partId}
and RANK = #{rank}
and PART_VERSIONS = #{newestVersion}
</select>
<select id="getReworkCraft" resultType="org.springblade.desk.dashboard.pojo.entity.DsCraftEntity">
select * from DS_CRAFT where is_deleted = 0
and PART_ID = #{partId}
and REWORK_ORDER = #{changeNo}
</select>
</mapper>

@ -63,9 +63,14 @@ public interface DsCraftMapper extends BaseMapper<DsCraftEntity> {
List<DsCraftEntity> selectDsCraftByIds(@Param("craftIds")List<Long> craftIds);
List<DsCraftExpireVO> selectDsCraftByPartId(@Param("partId")Long partId);
List<DsCraftEntity> selectDsCraftByPartId(@Param("partId")Long partId);
List<DsCraftVO> selectCraftByPartId(@Param("partId")Long partId);
List<DsCraftVO> selectCraft(@Param("partId")Long partId, @Param("version")String version,@Param("rank")String rank);
DsCraftEntity getPartCraft(@Param("partId")Long partId, @Param("rank")String rank, @Param("newestVersion")String newestVersion);
DsCraftEntity getReworkCraft(@Param("partId")Long partId,@Param("changeNo") String changeNo);
}

@ -60,4 +60,5 @@ public interface DsProModelMapper extends BaseMapper<DsProModelEntity> {
*/
List<DsProModelExcel> exportDsProModel(@Param("ew") Wrapper<DsProModelEntity> queryWrapper);
List<DsProModelVO> selectDsProModelAll();
}

@ -76,4 +76,15 @@ public interface DsTaskingMapper extends BaseMapper<DsTaskingEntity> {
* @return
*/
List<DsTaskingVO> selectDisposeList(IPage<DsTaskingVO> page, @Param("dsTasking")DsTaskingVO dsTasking);
/**
* 根据零件号 版本号 任务状态查询
* @param partCode
* @param version
* @param taskStatusList
* @return
*/
List<DsTaskingEntity> selectDsTaskingByPartCodeAndVersion(@Param("partCode")String partCode,
@Param("version")String version,
@Param("taskStatusList")List<Integer> taskStatusList);
}

@ -73,36 +73,55 @@
<select id="selectDsPartPage" resultType="org.springblade.desk.dashboard.pojo.vo.DsPartVO">
select * from DS_PART where is_deleted = 0
SELECT p.*, c.CRAFT_STATUS
FROM DS_PART p
LEFT JOIN DS_CRAFT c
ON p.ID = c.PART_ID
WHERE c.CRAFT_STATUS = 2
and p.is_deleted = 0
AND c.PART_VERSIONS = (
SELECT MAX(PART_VERSIONS)
FROM DS_CRAFT
WHERE PART_ID = p.ID
AND CRAFT_STATUS = 2
)
AND NOT EXISTS (
SELECT 1 FROM DS_CRAFT c2
WHERE c2.PART_ID = p.ID
AND c2.CRAFT_STATUS = 2
AND c2.PART_VERSIONS = c.PART_VERSIONS
AND c2.RANK = 2
AND c2.ID != c.ID
)
<if test="dsPart.plate != null and dsPart.plate != ''">
and PLATE = #{dsPart.plate}
and p.PLATE = #{dsPart.plate}
</if>
<if test="dsPart.partCode != null ">
and PART_CODE = #{dsPart.partCode}
and p.PART_CODE = #{dsPart.partCode}
</if>
<if test="dsPart.sinTerType != null ">
and SIN_TER_TYPE = #{dsPart.sinTerType}
and p.SIN_TER_TYPE = #{dsPart.sinTerType}
</if>
<if test="dsPart.material != null and dsPart.material != ''">
and MATERIAL = #{dsPart.material}
and p.MATERIAL = #{dsPart.material}
</if>
<if test="dsPart.powderWeight != null">
and POWDER_WEIGHT = #{dsPart.powderWeight}
and p.POWDER_WEIGHT = #{dsPart.powderWeight}
</if>
<if test="dsPart.formingThickness != null">
and FORMING_THICKNESS = #{dsPart.formingThickness}
and p.FORMING_THICKNESS = #{dsPart.formingThickness}
</if>
<if test="dsPart.startDate != null and dsPart.endDate != null">
and NEXT_DUE BETWEEN TO_DATE(#{dsPart.startDate}, 'YYYY-MM-DD')
and p.NEXT_DUE BETWEEN TO_DATE(#{dsPart.startDate}, 'YYYY-MM-DD')
AND TO_DATE(#{dsPart.endDate}, 'YYYY-MM-DD')
</if>
<if test="dsPart.partIds != null ">
AND ID IN
AND p.ID IN
<foreach collection="dsPart.partIds" item="id" open="(" close=")" separator=",">
#{id}
</foreach>
</if>
ORDER BY CREATE_TIME DESC
ORDER BY p.CREATE_TIME desc ;
</select>

@ -0,0 +1,66 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.desk.dashboard.mapper;
import org.springblade.desk.dashboard.pojo.entity.PrReworkProcessEntity;
import org.springblade.desk.dashboard.pojo.vo.PrReworkProcessVO;
import org.springblade.desk.dashboard.excel.PrReworkProcessExcel;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 返工任务表 Mapper 接口
*
* @author BladeX
* @since 2025-12-03
*/
public interface PrReworkProcessMapper extends BaseMapper<PrReworkProcessEntity> {
/**
* 自定义分页
*
* @param page 分页参数
* @param prReworkProcess 查询参数
* @return List<PrReworkProcessVO>
*/
List<PrReworkProcessVO> selectPrReworkProcessPage(IPage page, PrReworkProcessVO prReworkProcess);
/**
* 获取导出数据
*
* @param queryWrapper 查询条件
* @return List<PrReworkProcessExcel>
*/
List<PrReworkProcessExcel> exportPrReworkProcess(@Param("ew") Wrapper<PrReworkProcessEntity> queryWrapper);
List<PrReworkProcessEntity> selectPrReworkProcess(@Param("reworkOrder")String reworkOrder,
@Param("partCode")String partCode,
@Param("batchNo")String batchNo);
}

@ -47,5 +47,8 @@
<select id="exportDsProModel" resultType="org.springblade.desk.dashboard.excel.DsProModelExcel">
SELECT * FROM DS_PRO_MODEL ${ew.customSqlSegment}
</select>
<select id="selectDsProModelAll" resultType="org.springblade.desk.dashboard.pojo.vo.DsProModelVO">
select * from DS_PRO_MODEL where is_deleted = 0
</select>
</mapper>

@ -22,6 +22,7 @@
<result column="REMARKS" property="remarks"/>
<result column="STATUS" property="status"/>
<result column="IS_DELETED" property="isDeleted"/>
<result column="TRIAL_NO" property="trialNo"/>
</resultMap>

@ -19,6 +19,7 @@
<result column="REMARKS" property="remarks"/>
<result column="STATUS" property="status"/>
<result column="IS_DELETED" property="isDeleted"/>
<result column="TRIAL_NO" property="trialNo"/>
</resultMap>

@ -19,6 +19,7 @@
<result column="REMARKS" property="remarks"/>
<result column="STATUS" property="status"/>
<result column="IS_DELETED" property="isDeleted"/>
<result column="TRIAL_NO" property="trialNo"/>
</resultMap>

@ -19,6 +19,7 @@
<result column="REMARKS" property="remarks"/>
<result column="STATUS" property="status"/>
<result column="IS_DELETED" property="isDeleted"/>
<result column="TRIAL_NO" property="trialNo"/>
</resultMap>

@ -26,6 +26,7 @@
<result column="V_SPEED" property="vSpeed"/>
<result column="CYROPACTOR_CONTROL" property="cyropactorControl"/>
<result column="TEAM" property="team"/>
<result column="IS_CHECKOUT" property="isCheckout"/>
</resultMap>
@ -38,4 +39,10 @@
SELECT * FROM BS_PROCESS_SET ${ew.customSqlSegment}
</select>
<select id="selectBsProcessSetByProcessCode"
resultType="org.springblade.desk.dashboard.pojo.entity.BsProcessSetEntity">
select * from BS_PROCESS_SET where is_deleted = 0
and CODE = #{processCode}
</select>
</mapper>

@ -0,0 +1,53 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.springblade.desk.dashboard.mapper.PrReworkProcessMapper">
<!-- 通用查询映射结果 -->
<resultMap id="prReworkProcessResultMap" type="org.springblade.desk.dashboard.pojo.entity.PrReworkProcessEntity">
<result column="UPDATE_TIME" property="updateTime"/>
<result column="UPDATE_USER" property="updateUser"/>
<result column="REMARKS" property="remarks"/>
<result column="STATUS" property="status"/>
<result column="NEW_COLUMN" property="newColumn"/>
<result column="ID" property="id"/>
<result column="REWORK_CODE" property="reworkCode"/>
<result column="REWORK_NO" property="reworkNo"/>
<result column="CRAFT_NO" property="craftNo"/>
<result column="PROCESS_NO" property="processNo"/>
<result column="PPS_ID" property="ppsId"/>
<result column="CA_ID" property="caId"/>
<result column="MAKE_MEMO" property="makeMemo"/>
<result column="HOUR_QUOTA" property="hourQuota"/>
<result column="START_TIME" property="startTime"/>
<result column="END_TIME" property="endTime"/>
<result column="MAKE_TEAM" property="makeTeam"/>
<result column="OC_ID" property="ocId"/>
<result column="MAKE_USER" property="makeUser"/>
<result column="CRUX_PROCESS" property="cruxProcess"/>
<result column="PART_CODE" property="partCode"/>
<result column="BATCH_NO" property="batchNo"/>
<result column="CREATE_TIME" property="createTime"/>
<result column="CREATE_USER" property="createUser"/>
<result column="CREATE_DEPT" property="createDept"/>
<result column="TRIAL_NO" property="trialNo"/>
</resultMap>
<select id="selectPrReworkProcessPage" resultMap="prReworkProcessResultMap">
select * from PR_REWORK_PROCESS where is_deleted = 0
</select>
<select id="exportPrReworkProcess" resultType="org.springblade.desk.dashboard.excel.PrReworkProcessExcel">
SELECT * FROM PR_REWORK_PROCESS ${ew.customSqlSegment}
</select>
<select id="selectPrReworkProcess"
resultType="org.springblade.desk.dashboard.pojo.entity.PrReworkProcessEntity">
select * from PR_REWORK_PROCESS where is_deleted = 0
and REWORK_CODE = #{reworkOrder}
and PART_CODE = #{partCode}
and BATCH_NO = #{batchNo}
</select>
</mapper>

@ -19,6 +19,8 @@
<result column="UPDATE_USER" property="updateUser"/>
<result column="REMARKS" property="remarks"/>
<result column="STATUS" property="status"/>
<result column="OC_ID" property="ocId"/>
<result column="OC_NAME" property="ocName"/>
</resultMap>

@ -32,6 +32,8 @@
<result column="STATUS" property="status"/>
<result column="IS_DELETED" property="isDeleted"/>
<result column="TASK_STATUS" property="taskStatus"/>
<result column="RANK" property="rank"/>
<result column="REWORK_ORDER" property="reworkOrder"/>
</resultMap>
@ -78,4 +80,15 @@
</if>
</select>
<select id="selectDsTaskingByPartCodeAndVersion"
resultType="org.springblade.desk.dashboard.pojo.entity.DsTaskingEntity">
select * from DS_TASKING where is_deleted = 0
and PART_CODE = #{partCode}
and VERSION = #{version}
and TASK_STATUS in
<foreach collection="taskStatusList" item="taskStatus" open="(" close=")" separator=",">
#{taskStatus}
</foreach>
</select>
</mapper>

@ -43,4 +43,8 @@
SELECT * FROM BS_WORK_CENTER ${ew.customSqlSegment}
</select>
<select id="getList" resultType="org.springblade.desk.dashboard.pojo.vo.BsWorkCenterVO">
select * from BS_WORK_CENTER where is_deleted = 0
</select>
</mapper>

@ -28,7 +28,10 @@ package org.springblade.desk.dashboard.pojo.dto;
import org.springblade.desk.dashboard.pojo.entity.BsTeamSetEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.web.bind.annotation.RequestParam;
import java.io.Serial;
import java.util.List;
/**
* 班组设置表 数据传输对象实体类
@ -42,4 +45,6 @@ public class BsTeamSetDTO extends BsTeamSetEntity {
@Serial
private static final long serialVersionUID = 1L;
private List<Long> tsIdList;
private Long pid;
}

@ -0,0 +1,45 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.desk.dashboard.pojo.dto;
import org.springblade.desk.dashboard.pojo.entity.PrReworkProcessEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
/**
* 返工任务表 数据传输对象实体类
*
* @author BladeX
* @since 2025-12-03
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class PrReworkProcessDTO extends PrReworkProcessEntity {
@Serial
private static final long serialVersionUID = 1L;
}

@ -128,4 +128,10 @@ public class BsProcessSetEntity extends BaseEntity {
@Schema(description = "班组")
private String team;
/**
* 是否是检验工序
*/
@Schema(description = "是否是检验工序")
private Integer isCheckout;
}

@ -95,4 +95,18 @@ public class DsCraftEntity extends BaseEntity {
*/
@Schema(description = "零件版本号")
private String partVersions;
/**
* 零件工艺状态
*/
@Schema(description = "零件工艺状态")
private String craftStatus;
/**
* 返工单号
*/
@Schema(description = "返工单号")
private String reworkOrder;
}

@ -106,4 +106,10 @@ public class DsProcessEntity extends BaseEntity {
@Schema(description = "准备工时(分钟)")
private Long setoutHours;
/**
* 实验编号
*/
@Schema(description = "实验编号")
private String trialNo;
}

@ -85,4 +85,10 @@ public class DsProcessMeasuringToolEntity extends BaseEntity {
@Schema(description = "备注")
private String remarks;
/**
* 实验编号
*/
@Schema(description = "实验编号")
private String trialNo;
}

@ -84,5 +84,10 @@ public class DsProcessMoldToolEntity extends BaseEntity {
*/
@Schema(description = "备注")
private String remarks;
/**
* 实验编号
*/
@Schema(description = "实验编号")
private String trialNo;
}

@ -85,4 +85,11 @@ public class DsProcessProjectEntity extends BaseEntity {
@Schema(description = "备注")
private String remarks;
/**
* 实验编号
*/
@Schema(description = "实验编号")
private String trialNo;
}

@ -90,4 +90,15 @@ public class DsSpecialProEntity extends TenantEntity {
@Schema(description = "备注")
private String remarks;
/**
* 外协Id
*/
@Schema(description = "外协Id")
private String ocId;
/**
* 外协名称
*/
@Schema(description = "外协名称")
private String ocName;
}

@ -159,4 +159,19 @@ public class DsTaskingEntity extends BaseEntity {
@Schema(description = "工艺完成时间")
private Date craftTime;
/**
* 工艺级别
*/
@Schema(description = "工艺级别")
private String rank;
/**
* 返工单号
*/
@Schema(description = "返工单号")
private String reworkOrder;
}

@ -0,0 +1,150 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.desk.dashboard.pojo.entity;
import lombok.Data;
import io.swagger.v3.oas.annotations.media.Schema;
import com.baomidou.mybatisplus.annotation.TableName;
import java.util.Date;
import java.math.BigDecimal;
import lombok.EqualsAndHashCode;
import org.springblade.core.mp.base.BaseEntity;
import org.springblade.core.tenant.mp.TenantEntity;
import java.io.Serial;
/**
* 返工任务表 实体类
*
* @author BladeX
* @since 2025-12-03
*/
@Data
@TableName("PR_REWORK_PROCESS")
@Schema(description = "PrReworkProcess对象")
@EqualsAndHashCode(callSuper = true)
public class PrReworkProcessEntity extends BaseEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 备注
*/
@Schema(description = "备注")
private String remarks;
/**
*
*/
@Schema(description = "")
private BigDecimal newColumn;
/**
* 返工单号
*/
@Schema(description = "返工单号")
private String reworkCode;
/**
* 返工顺序
*/
@Schema(description = "返工顺序")
private Long reworkNo;
/**
* C号工艺号
*/
@Schema(description = "C号(工艺号)")
private String craftNo;
/**
* 序号
*/
@Schema(description = "序号")
private String processNo;
/**
* 工序ID
*/
@Schema(description = "工序ID")
private BigDecimal ppsId;
/**
* 工艺能力ID
*/
@Schema(description = "工艺能力ID")
private BigDecimal caId;
/**
* 工序描述
*/
@Schema(description = "工序描述")
private String makeMemo;
/**
* 工时定额
*/
@Schema(description = "工时定额")
private BigDecimal hourQuota;
/**
* 计划开始时间
*/
@Schema(description = "计划开始时间")
private Date startTime;
/**
* 计划结束时间
*/
@Schema(description = "计划结束时间")
private Date endTime;
/**
* 加工班组ID
*/
@Schema(description = "加工班组ID")
private Long makeTeam;
/**
* 外协商ID
*/
@Schema(description = "外协商ID")
private Long ocId;
/**
* 操作人ID
*/
@Schema(description = "操作人ID")
private Long makeUser;
/**
* 关键工序0-1-
*/
@Schema(description = "关键工序:0-否,1-是")
private Short cruxProcess;
/**
* 零件号
*/
@Schema(description = "零件号")
private String partCode;
/**
* 批次号
*/
@Schema(description = "批次号")
private String batchNo;
/**
* 实验编号
*/
@Schema(description = "实验编号")
private String trialNo;
}

@ -22,7 +22,7 @@ public class BsCompilationCompletedVO {
/**
* 子件集合
*/
private List<DsPartEntity> zPartList;
private List<DsPartEntity> partList;
/**
* 工艺信息
*/

@ -25,21 +25,39 @@
*/
package org.springblade.desk.dashboard.pojo.vo;
import org.springblade.desk.dashboard.pojo.entity.BsWorkCenterEntity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.mp.base.BaseEntity;
import java.io.Serial;
import java.math.BigDecimal;
/**
* 工作中心表 视图实体类
* 工作中心表 实体类
*
* @author BladeX
* @since 2025-11-22
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class BsWorkCenterVO extends BsWorkCenterEntity {
@Serial
private static final long serialVersionUID = 1L;
public class BsWorkCenterVO {
/**
* id
*/
@Schema(description = "id")
private Long id;
/**
* 编码
*/
@Schema(description = "编码")
private String wcCode;
/**
* 名称
*/
@Schema(description = "名称")
private String wcName;
}

@ -29,6 +29,7 @@ import org.springblade.desk.dashboard.pojo.entity.DsProcessEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
import java.util.List;
/**
* 零件工艺工序信息表 视图实体类
@ -41,5 +42,4 @@ import java.io.Serial;
public class DsProcessVO extends DsProcessEntity {
@Serial
private static final long serialVersionUID = 1L;
}

@ -0,0 +1,92 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.desk.dashboard.pojo.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.desk.dashboard.pojo.entity.DsPartEntity;
import java.io.Serial;
import java.util.List;
/**
* 零件信息表 视图实体类
*
* @author BladeX
* @since 2025-11-12
*/
@Data
public class DsReworkTaskVO {
// -- 数据源 erp
// -- select a.redono, a.prtno, a.splcode, a.deptcode, a.detail
// -- from dba_mgr.v_mes_rb_redo@erp_mes_link a
// -- where a.rbmesroutstat is null;
//
// 主要变量
// v_redono - 返工单号
// v_prtno - 零件号
// v_batch_no - 批次号(splcode)
// v_dept_code - 部门代码
// v_memo - 备注信息
/**
* 返工单号
*/
@Schema(description = "返工单号")
private String redono;
/**
* 零件号
*/
@Schema(description = "零件号")
private String prtno;
/**
* 批次号
*/
@Schema(description = "批次号")
private String splcode;
/**
* 部门代码
*/
@Schema(description = "deptcode")
private String deptcode;
/**
* 描述
*/
@Schema(description = "detail")
private String detail;
}

@ -0,0 +1,46 @@
package org.springblade.desk.dashboard.pojo.vo;
import lombok.Data;
import org.springblade.desk.dashboard.pojo.entity.DsCraftEntity;
import org.springblade.desk.dashboard.pojo.entity.DsPartEntity;
import org.springblade.desk.dashboard.pojo.entity.DsProcessEntity;
import java.util.List;
/**
* @author: liweidong
* @create: 2025-11-26
*/
@Data
public class PrReworkCompilationCompletedVO {
/**
* 工艺信息
*/
private DsCraftEntity craft;
/**
* 工序集合
*/
private List<PrReworkProcessVO> reworkProcessVOList;
/**
* 工序删除ID集合
*/
private List<Long> reworkProcessDeleteIds;
/**
* 项目删除ID集合
*/
private List<Long> processProjectDeleteIds;
/**
* 工序量具删除ID集合
*/
private List<Long> processMeasuringToolDeleteIds;
/**
* 工序工装模具删除ID集合
*/
private List<Long> processMoldToolDeleteIds;
}

@ -0,0 +1,53 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.desk.dashboard.pojo.vo;
import org.springblade.desk.dashboard.pojo.entity.PrReworkProcessEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
import java.util.List;
/**
* 返工任务表 视图实体类
*
* @author BladeX
* @since 2025-12-03
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class PrReworkProcessVO extends PrReworkProcessEntity {
@Serial
private static final long serialVersionUID = 1L;
private List<DsProcessProjectVO> processProjectVOList;
private List<DsProcessMeasuringToolVO> processMeasuringToolVOList;
private List<DsProcessMoldToolVO> processMoldToolVOList;
}

@ -0,0 +1,13 @@
package org.springblade.desk.dashboard.pojo.vo;
import lombok.Data;
/**
* @author: liweidong
* @create: 2025-12-03
*/
@Data
public class SyncResult {
private boolean success;
private String note;
}

@ -66,4 +66,11 @@ public interface IBsProcessSetService extends BaseService<BsProcessSetEntity> {
* @return
*/
boolean addOrUpdateTeam(Long pid, List<Long> tsIdList);
/**
* 根据工序编码查询
* @param processCode
* @return
*/
BsProcessSetEntity selectBsProcessSetByProcessCode(String processCode);
}

@ -58,4 +58,9 @@ public interface IBsWorkCenterService extends BaseService<BsWorkCenterEntity> {
*/
List<BsWorkCenterExcel> exportBsWorkCenter(Wrapper<BsWorkCenterEntity> queryWrapper);
/**
* 作业中心
* @return
*/
List<BsWorkCenterVO> getList();
}

@ -83,7 +83,7 @@ public interface IDsCraftService extends BaseService<DsCraftEntity> {
* @param partId
* @return
*/
List<DsCraftExpireVO> getVersion(Long partId);
List<DsCraftEntity> getVersion(Long partId);
/**
* 根据零件号查询工艺信息
@ -107,4 +107,29 @@ public interface IDsCraftService extends BaseService<DsCraftEntity> {
* @return
*/
boolean addOrEdit(DsCraftEntity craft);
/**
* 根据零件号 获取最新工艺版本号
* @param partId
* @return
*/
String getNewestVersion(Long partId);
/**
* 获取零件工艺
* @param partId 零件号
* @param rank 工艺等级
* @param newestVersion 最新版本号
* @return
*/
DsCraftEntity getPartCraft(Long partId, String rank, String newestVersion);
/**
* 获取返工工艺
* @param partId
* @param changeNo
* @return
*/
DsCraftEntity getReworkCraft(Long partId, String changeNo);
}

@ -165,7 +165,23 @@ public interface IDsPartService extends BaseService<DsPartEntity> {
*/
boolean updateDsPart(DsPartEntity dsPart, List<DsPartEntity> zPartList);
/**
/**
* 同步零件
* @param partCode
* @return
*/
Object syncPart(String partCode);
/**
* 零件详情
* @param partId
* @param partVersion
* @return
*/
DsPartSynthesisVO detail(Long partId, String partVersion);
/**
* 烧结树形结构
* @param partCode
* @return

@ -87,4 +87,10 @@ public interface IDsProModelService extends BaseService<DsProModelEntity> {
* @return
*/
boolean update(JSONObject data);
/**
* 获取所有工艺模版
* @return
*/
List<DsProModelVO> getModelList();
}

@ -32,6 +32,9 @@ import org.springblade.desk.dashboard.pojo.vo.DsProcessMeasuringToolVO;
import org.springblade.desk.dashboard.excel.DsProcessMeasuringToolExcel;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseService;
import org.springblade.desk.dashboard.pojo.vo.DsProcessProjectVO;
import org.springblade.desk.dashboard.pojo.vo.PrReworkProcessVO;
import java.util.List;
/**
@ -80,4 +83,12 @@ public interface IDsProcessMeasuringToolService extends BaseService<DsProcessMea
* @return
*/
boolean saveProcessMeasuringTool(DsProcessEntity processEntity, List<DsProcessMeasuringToolEntity> processMeasuringToolEntities);
/**
* 返工新增修改
* @param prReworkProcess
* @param processMeasuringToolVOList
* @return
*/
boolean saveReworkProcessMeasuringTool(PrReworkProcessVO prReworkProcess, List<DsProcessMeasuringToolVO> processMeasuringToolVOList);
}

@ -32,6 +32,8 @@ import org.springblade.desk.dashboard.pojo.vo.DsProcessMoldToolVO;
import org.springblade.desk.dashboard.excel.DsProcessMoldToolExcel;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseService;
import org.springblade.desk.dashboard.pojo.vo.PrReworkProcessVO;
import java.util.List;
/**
@ -80,4 +82,12 @@ public interface IDsProcessMoldToolService extends BaseService<DsProcessMoldTool
* @return
*/
boolean saveProcessMoldTool(DsProcessEntity processEntity, List<DsProcessMoldToolEntity> processMoldToolEntities);
/**
* 返工新增修改
* @param prReworkProcess
* @param processMoldToolVOList
* @return
*/
boolean saveReworkProcessMoldTool(PrReworkProcessVO prReworkProcess, List<DsProcessMoldToolVO> processMoldToolVOList);
}

@ -32,6 +32,8 @@ import org.springblade.desk.dashboard.pojo.vo.DsProcessProjectVO;
import org.springblade.desk.dashboard.excel.DsProcessProjectExcel;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseService;
import org.springblade.desk.dashboard.pojo.vo.PrReworkProcessVO;
import java.util.List;
/**
@ -87,4 +89,12 @@ public interface IDsProcessProjectService extends BaseService<DsProcessProjectEn
* @return
*/
boolean saveProcessProjectSave(DsProcessEntity processEntity, List<DsProcessProjectEntity> processProjectEntityList);
/**
* 保存返工项目信息
* @param prReworkProcess
* @param processProjectVOList
* @return
*/
boolean saveReworkProcessProjectSave(PrReworkProcessVO prReworkProcess, List<DsProcessProjectVO> processProjectVOList);
}

@ -34,6 +34,8 @@ import org.springblade.desk.dashboard.pojo.vo.DsTaskingVO;
import org.springblade.desk.dashboard.excel.DsTaskingExcel;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseService;
import org.springblade.desk.dashboard.pojo.vo.PrReworkProcessVO;
import java.util.List;
/**
@ -185,4 +187,31 @@ public interface IDsTaskingService extends BaseService<DsTaskingEntity> {
* @return
*/
boolean saveProcessMoldTool(DsProcessEntity processEntity, List<DsProcessMoldToolEntity> processMoldToolEntities, List<Long> deleteIds);
/**
* 返工任务同步
* @return
*/
boolean reworkTask();
/**
* 返工任务保存
* @param craft
* @param reworkProcessVOList
* @param reworkProcessDeleteIds
* @param processProjectDeleteIds
* @param processMeasuringToolDeleteIds
* @param processMoldToolDeleteIds
* @return
*/
boolean reworkAuthorizedAccomplish(DsCraftEntity craft, List<PrReworkProcessVO> reworkProcessVOList, List<Long> reworkProcessDeleteIds, List<Long> processProjectDeleteIds, List<Long> processMeasuringToolDeleteIds, List<Long> processMoldToolDeleteIds);
/**
* 零件详情 工艺
* @param partId
* @param partVersion
* @param rank
* @return
*/
DsPartAuthorizedVO craftDetail(Long partId, String partVersion, String rank);
}

@ -0,0 +1,69 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.desk.dashboard.service;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import org.springblade.desk.dashboard.pojo.entity.PrReworkProcessEntity;
import org.springblade.desk.dashboard.pojo.vo.PrReworkProcessVO;
import org.springblade.desk.dashboard.excel.PrReworkProcessExcel;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseService;
import java.util.List;
/**
* 返工任务表 服务类
*
* @author BladeX
* @since 2025-12-03
*/
public interface IPrReworkProcessService extends BaseService<PrReworkProcessEntity> {
/**
* 自定义分页
*
* @param page 分页参数
* @param prReworkProcess 查询参数
* @return IPage<PrReworkProcessVO>
*/
IPage<PrReworkProcessVO> selectPrReworkProcessPage(IPage<PrReworkProcessVO> page, PrReworkProcessVO prReworkProcess);
/**
* 导出数据
*
* @param queryWrapper 查询条件
* @return List<PrReworkProcessExcel>
*/
List<PrReworkProcessExcel> exportPrReworkProcess(Wrapper<PrReworkProcessEntity> queryWrapper);
/**
* 获取返工工序
* @param reworkOrder
* @param partCode
* @param batchNo
* @return
*/
List<PrReworkProcessEntity> selectPrReworkProcess(String reworkOrder, String partCode, String batchNo);
}

@ -130,4 +130,9 @@ public class BsProcessSetServiceImpl extends BaseServiceImpl<BsProcessSetMapper,
return true;
}
@Override
public BsProcessSetEntity selectBsProcessSetByProcessCode(String processCode) {
return bsProcessSetMapper.selectBsProcessSetByProcessCode(processCode);
}
}

@ -30,6 +30,7 @@ import org.springblade.desk.dashboard.pojo.vo.BsWorkCenterVO;
import org.springblade.desk.dashboard.excel.BsWorkCenterExcel;
import org.springblade.desk.dashboard.mapper.BsWorkCenterMapper;
import org.springblade.desk.dashboard.service.IBsWorkCenterService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@ -45,6 +46,9 @@ import java.util.List;
@Service
public class BsWorkCenterServiceImpl extends BaseServiceImpl<BsWorkCenterMapper, BsWorkCenterEntity> implements IBsWorkCenterService {
@Autowired
BsWorkCenterMapper workCenterMapper;
@Override
public IPage<BsWorkCenterVO> selectBsWorkCenterPage(IPage<BsWorkCenterVO> page, BsWorkCenterVO bsWorkCenter) {
return page.setRecords(baseMapper.selectBsWorkCenterPage(page, bsWorkCenter));
@ -60,4 +64,9 @@ public class BsWorkCenterServiceImpl extends BaseServiceImpl<BsWorkCenterMapper,
return bsWorkCenterList;
}
@Override
public List<BsWorkCenterVO> getList() {
return workCenterMapper.getList();
}
}

@ -53,9 +53,7 @@ import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import java.util.*;
import java.util.stream.Collectors;
/**
@ -139,7 +137,7 @@ public class DsCraftServiceImpl extends BaseServiceImpl<DsCraftMapper, DsCraftEn
}
@Override
public List<DsCraftExpireVO> getVersion(Long partId) {
public List<DsCraftEntity> getVersion(Long partId) {
return craftMapper.selectDsCraftByPartId(partId);
}
@ -172,4 +170,29 @@ public class DsCraftServiceImpl extends BaseServiceImpl<DsCraftMapper, DsCraftEn
return true;
}
@Override
public String getNewestVersion(Long partId) {
List<DsCraftVO> craftVOList = craftMapper.selectCraftByPartId(partId);
Optional<String> latestVersion = craftVOList.stream()
.map(DsCraftVO::getPartVersions)
.max(Comparator.naturalOrder());
if (latestVersion.isPresent()) {
// 输出: 最新版本号
System.out.println("最新版本号: " + latestVersion.get());
return latestVersion.get();
}
return null;
}
@Override
public DsCraftEntity getPartCraft(Long partId, String rank, String newestVersion) {
return craftMapper.getPartCraft(partId,rank,newestVersion);
}
@Override
public DsCraftEntity getReworkCraft(Long partId, String changeNo) {
return craftMapper.getReworkCraft(partId,changeNo);
}
}

@ -351,6 +351,38 @@ public class DsPartServiceImpl extends BaseServiceImpl<DsPartMapper, DsPartEntit
}
return true;
}
@Override
public Object syncPart(String partCode) {
//todo 调用erp接口
// 获取PDM该零件工艺路线
// 判断MES是否有该零件号
// 不存在 提示“零件已同步,新图任务已生成”
// 存在 显示PDM工艺路线,提示“是否新增维护任务?”
return null;
}
@Override
public DsPartSynthesisVO detail(Long partId, String partVersion) {
//零件信息
DsPartEntity partEntity = dsPartMapper.selectById(partId);
DsPartSynthesisVO dsPartSynthesisVO = new DsPartSynthesisVO();
//查询子件信息
if(TaskingConstant.IS_SINTERING.equals(partEntity.getIsSintering())){
List<DsPartRelationEntity> partRelationEntityList = partRelationService.selectDsPartRelationByPartId(partEntity.getId());
List<Long> idList = partRelationEntityList.stream()
.map(DsPartRelationEntity::getChildPartId)
.collect(Collectors.toList());
List<DsPartEntity> dsPartEntityList = dsPartMapper.selectDsPartByIds(idList);
dsPartSynthesisVO.setDsPartEntities(dsPartEntityList);
}
dsPartSynthesisVO.setDsPartEntity(partEntity);
return dsPartSynthesisVO;
}
public Date addDaysToCurrentDate(int days) {
LocalDateTime localDateTime = LocalDateTime.now().plusDays(days);
return Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());

@ -156,4 +156,9 @@ public class DsProModelServiceImpl extends BaseServiceImpl<DsProModelMapper, DsP
return proDetailService.saveBatch(tableData);
}
@Override
public List<DsProModelVO> getModelList() {
return proModelMapper.selectDsProModelAll();
}
}

@ -30,6 +30,8 @@ import org.springblade.desk.dashboard.pojo.entity.DsProcessMeasuringToolEntity;
import org.springblade.desk.dashboard.pojo.vo.DsProcessMeasuringToolVO;
import org.springblade.desk.dashboard.excel.DsProcessMeasuringToolExcel;
import org.springblade.desk.dashboard.mapper.DsProcessMeasuringToolMapper;
import org.springblade.desk.dashboard.pojo.vo.DsProcessProjectVO;
import org.springblade.desk.dashboard.pojo.vo.PrReworkProcessVO;
import org.springblade.desk.dashboard.service.IDsProcessMeasuringToolService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -93,4 +95,20 @@ public class DsProcessMeasuringToolServiceImpl extends BaseServiceImpl<DsProcess
return true;
}
@Override
public boolean saveReworkProcessMeasuringTool(PrReworkProcessVO prReworkProcess, List<DsProcessMeasuringToolVO> processMeasuringToolVOList) {
if(!CollectionUtils.isEmpty(processMeasuringToolVOList)){
for (DsProcessMeasuringToolVO dsProcessMeasuringToolVO : processMeasuringToolVOList) {
if (null != dsProcessMeasuringToolVO.getId()){
updateById(dsProcessMeasuringToolVO);
}else {
dsProcessMeasuringToolVO.setProcessId(prReworkProcess.getId());
save(dsProcessMeasuringToolVO);
}
}
}
return true;
}
}

@ -30,6 +30,7 @@ import org.springblade.desk.dashboard.pojo.entity.DsProcessMoldToolEntity;
import org.springblade.desk.dashboard.pojo.vo.DsProcessMoldToolVO;
import org.springblade.desk.dashboard.excel.DsProcessMoldToolExcel;
import org.springblade.desk.dashboard.mapper.DsProcessMoldToolMapper;
import org.springblade.desk.dashboard.pojo.vo.PrReworkProcessVO;
import org.springblade.desk.dashboard.service.IDsProcessMoldToolService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -92,4 +93,19 @@ public class DsProcessMoldToolServiceImpl extends BaseServiceImpl<DsProcessMoldT
return true;
}
@Override
public boolean saveReworkProcessMoldTool(PrReworkProcessVO prReworkProcess, List<DsProcessMoldToolVO> processMoldToolVOList) {
if(!CollectionUtils.isEmpty(processMoldToolVOList)){
for (DsProcessMoldToolVO dsProcessMoldToolVO : processMoldToolVOList) {
if(null != dsProcessMoldToolVO.getId()){
updateById(dsProcessMoldToolVO);
}else {
dsProcessMoldToolVO.setProcessId(prReworkProcess.getId());
save(dsProcessMoldToolVO);
}
}
}
return true;
}
}

@ -30,6 +30,7 @@ import org.springblade.desk.dashboard.pojo.entity.DsProcessProjectEntity;
import org.springblade.desk.dashboard.pojo.vo.DsProcessProjectVO;
import org.springblade.desk.dashboard.excel.DsProcessProjectExcel;
import org.springblade.desk.dashboard.mapper.DsProcessProjectMapper;
import org.springblade.desk.dashboard.pojo.vo.PrReworkProcessVO;
import org.springblade.desk.dashboard.service.IDsProcessProjectService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -97,4 +98,19 @@ public class DsProcessProjectServiceImpl extends BaseServiceImpl<DsProcessProjec
return true;
}
@Override
public boolean saveReworkProcessProjectSave(PrReworkProcessVO prReworkProcess, List<DsProcessProjectVO> processProjectVOList) {
if(!CollectionUtils.isEmpty(processProjectVOList)){
for (DsProcessProjectVO dsProcessProjectVO : processProjectVOList) {
if(null != dsProcessProjectVO.getId()){
updateById(dsProcessProjectVO);
}else {
dsProcessProjectVO.setProcessId(prReworkProcess.getId());
save(dsProcessProjectVO);
}
}
}
return true;
}
}

@ -26,6 +26,8 @@
package org.springblade.desk.dashboard.service.impl;
import com.alibaba.fastjson2.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.math3.random.ValueServer;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
@ -48,6 +50,10 @@ import org.springblade.core.mp.base.BaseServiceImpl;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import javax.xml.crypto.Data;
import java.net.DatagramSocket;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.*;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
@ -59,6 +65,7 @@ import java.util.stream.Collectors;
* @author BladeX
* @since 2025-11-12
*/
@Slf4j
@Service
public class DsTaskingServiceImpl extends BaseServiceImpl<DsTaskingMapper, DsTaskingEntity> implements IDsTaskingService {
@ -90,6 +97,18 @@ public class DsTaskingServiceImpl extends BaseServiceImpl<DsTaskingMapper, DsTas
@Autowired
IDsProcessMoldToolService processMoldToolService;
@Autowired
IDsPartRelationService partRelationService;
@Autowired
IBsProcessTeamService processTeamService;
@Autowired
IPrReworkProcessService reworkProcessService;
@Autowired
IBsProcessSetService processSetService;
@Override
public IPage<DsTaskingVO> selectAssignList(IPage<DsTaskingVO> page, DsTaskingVO dsTasking) {
List<DsTaskingVO> dsTaskingVOS = baseMapper.selectDsTaskingPage(page, dsTasking);
@ -169,14 +188,111 @@ public class DsTaskingServiceImpl extends BaseServiceImpl<DsTaskingMapper, DsTas
@Override
public boolean taskComplete(List<Long> taskIds) {
if (Objects.isNull(taskIds)) {
if (CollectionUtils.isEmpty(taskIds)) {
throw new ServiceException("任务ID为空");
}
for (Long taskId : taskIds) {
DsTaskingEntity dsTaskingEntity = taskingMapper.selectById(taskId);
//返工任务
if(dsTaskingEntity.getTaskType().equals(TaskingConstant.REWORK_PLAN_EDIT)){
DsPartEntity partEntity = partService.selectDsPartByPatCode(dsTaskingEntity.getPartCode());
//返工单号 返工工艺
List<PrReworkProcessEntity> reworkProcessEntityList = reworkProcessService.selectPrReworkProcess(dsTaskingEntity.getReworkOrder(), partEntity.getPartCode(), dsTaskingEntity.getVersion());
if(CollectionUtils.isEmpty(reworkProcessEntityList)){
throw new ServiceException("返工工序缺失");
}
for (PrReworkProcessEntity prReworkProcessEntity : reworkProcessEntityList) {
if(null == prReworkProcessEntity.getMakeTeam() && null == prReworkProcessEntity.getOcId()){
throw new ServiceException("外协厂商或加工班组为空");
}
BsProcessSetEntity processSet = processSetService.selectBsProcessSetByProcessCode(prReworkProcessEntity.getProcessNo());
if(TaskingConstant.IS_CHECKOUT.equals(processSet.getIsCheckout()) ){
List<DsProcessProjectEntity> processProjectEntities = processProjectService.selectDsProcessProjectByProcessId(prReworkProcessEntity.getId());
if(CollectionUtils.isEmpty(processProjectEntities)){
throw new ServiceException(":未编制检验项目");
}
}
}
}
//1.判断零件和子件二级工艺/指定工艺级别下是否有工序
DsPartEntity partEntity = partService.selectDsPartByPatCode(dsTaskingEntity.getPartCode());
String rank = dsTaskingEntity.getRank();
//获取最新工艺版本号
String newestVersion = craftService.getNewestVersion(partEntity.getId());
//查询零件和子件是否编制工序
//零件工艺
DsCraftEntity craft = craftService.getPartCraft(partEntity.getId(),rank,newestVersion);
if(null == craft){
throw new ServiceException("零件工艺缺失");
}
//零件工序
List<DsProcessEntity> processEntities = processService.selectDsProcessByCraftId(craft.getId());
if(CollectionUtils.isEmpty(processEntities)){
throw new ServiceException("【零件号】工艺未编制工序");
}
//判断工序下的检验项目
for (DsProcessEntity processEntity : processEntities) {
BsProcessSetEntity processSet = processSetService.selectBsProcessSetByProcessCode(processEntity.getProcessCode());
if(TaskingConstant.IS_CHECKOUT.equals(processSet.getIsCheckout()) ){
List<DsProcessProjectEntity> processProjectEntities = processProjectService.selectDsProcessProjectByProcessId(processEntity.getId());
if(CollectionUtils.isEmpty(processProjectEntities)){
throw new ServiceException(processEntity.getProcessName()+":未编制检验项目");
}
}
}
//子件工艺
List<DsPartRelationEntity> partRelationEntityList = partRelationService.selectDsPartRelationByPartId(partEntity.getId());
for (DsPartRelationEntity dsPartRelationEntity : partRelationEntityList) {
DsPartEntity zPartEntity = partService.getById(dsPartRelationEntity.getChildPartId());
if(null != zPartEntity){
//检验子件超期
Date nextDue = zPartEntity.getNextDue();
if (nextDue.before(new Date())) {
throw new ServiceException("【零件号】工艺超期");
}
}
String zNewestVersion = craftService.getNewestVersion(zPartEntity.getId());
DsCraftEntity zCraft = craftService.getPartCraft(zPartEntity.getId(),rank,zNewestVersion);
if(null == zCraft){
throw new ServiceException("子件工艺缺失");
}
List<DsProcessEntity> zProcessEntities = processService.selectDsProcessByCraftId(zCraft.getId());
if(CollectionUtils.isEmpty(zProcessEntities)){
throw new ServiceException("【子件号】工艺未编制工序");
}
//判断工序下的检验项目
for (DsProcessEntity zProcessEntity : zProcessEntities) {
BsProcessSetEntity processSet = processSetService.selectBsProcessSetByProcessCode(zProcessEntity.getProcessCode());
if(TaskingConstant.IS_CHECKOUT.equals(processSet.getIsCheckout()) ){
List<DsProcessProjectEntity> processProjectEntities = processProjectService.selectDsProcessProjectByProcessId(zProcessEntity.getId());
if(CollectionUtils.isEmpty(processProjectEntities)){
throw new ServiceException("子件"+zProcessEntity.getProcessName()+":未编制检验项目");
}
}
}
zCraft.setCraftStatus(TaskingConstant.IN_USE);
craftService.updateById(zCraft);
}
//3.工艺任务状态变更为已完成
dsTaskingEntity.setCraftTime(new Date());
dsTaskingEntity.setTaskStatus(TaskingConstant.TASK_STATUS_COMPLETED);
taskingMapper.updateById(dsTaskingEntity);
//4.更新零件、子件当前版本的工艺任务状态为【使用中】
craft.setCraftStatus(TaskingConstant.IN_USE);
craftService.updateById(craft);
//todo 5新图任务 - 磨具计划下发 对接坤哥
}
return true;
@ -272,8 +388,30 @@ public class DsTaskingServiceImpl extends BaseServiceImpl<DsTaskingMapper, DsTas
@Override
public boolean insertTasking(DsTaskingEntity dsTasking) {
if(null == dsTasking.getPartCode() || null == dsTasking.getVersion()){
throw new ServiceException("零件号或版本号不能为空");
}
String partCode = dsTasking.getPartCode();
String version = dsTasking.getVersion();
DsPartEntity partEntity = partService.selectDsPartByPatCode(partCode);
if(null == partEntity){
throw new ServiceException("零件号有误");
}
return true;
List<Integer> taskStatusList = new ArrayList<>(Arrays.asList(
TaskingConstant.TASK_STATUS_WAIT,
TaskingConstant.TASK_STATUS_ALREADY,
TaskingConstant.TASK_STATUS_UNDERWAY
));
//查询
List<DsTaskingEntity> taskingEntityList = taskingMapper.selectDsTaskingByPartCodeAndVersion(partCode,version,taskStatusList);
if(!CollectionUtils.isEmpty(taskingEntityList)){
throw new ServiceException("此版本任务已存在");
}else {
dsTasking.setRank("2");
save(dsTasking);
return true;
}
}
@Override
@ -314,14 +452,18 @@ public class DsTaskingServiceImpl extends BaseServiceImpl<DsTaskingMapper, DsTas
}
//零件信息
DsPartEntity partEntity = partService.selectDsPartByPatCode(dsTaskingEntity.getPartCode());
DsPartSynthesisVO dsPartSynthesisVO = new DsPartSynthesisVO();
//查询子件信息
List<DsPartEntity> dsPartEntityList = partService.selectDsPartByParentID(partEntity.getId());
if(TaskingConstant.IS_SINTERING.equals(partEntity.getIsSintering())){
List<DsPartRelationEntity> partRelationEntityList = partRelationService.selectDsPartRelationByPartId(partEntity.getId());
List<Long> idList = partRelationEntityList.stream()
.map(DsPartRelationEntity::getChildPartId)
.collect(Collectors.toList());
List<DsPartEntity> dsPartEntityList = partService.selectDsPartByIds(idList);
dsPartSynthesisVO.setDsPartEntities(dsPartEntityList);
}
DsPartSynthesisVO dsPartSynthesisVO = new DsPartSynthesisVO();
dsPartSynthesisVO.setDsPartEntity(partEntity);
dsPartSynthesisVO.setDsPartEntities(dsPartEntityList);
return dsPartSynthesisVO;
}
@ -335,6 +477,16 @@ public class DsTaskingServiceImpl extends BaseServiceImpl<DsTaskingMapper, DsTas
// 零件信息
DsPartEntity partEntity = partService.selectDsPartByPatCode(dsTaskingEntity.getPartCode());
//返工工艺
if(TaskingConstant.REWORK_PLAN_EDIT.equals(dsTaskingEntity.getTaskType())){
return authorizedReworkTask(partEntity,dsTaskingEntity);
}
//正常工艺
String version = dsTaskingEntity.getVersion();
return authorizedTask(rank,partEntity,version);
}
private DsPartAuthorizedVO authorizedTask(String rank, DsPartEntity partEntity, String version) {
if (StringUtils.isEmpty(rank)) {
rank = "2";
}
@ -345,7 +497,7 @@ public class DsTaskingServiceImpl extends BaseServiceImpl<DsTaskingMapper, DsTas
result.setCraftList(new ArrayList<>());
// 查询零件工艺信息
List<DsCraftVO> dsCraftVOList = craftService.selectDsCraftByPartId(partEntity.getId(), dsTaskingEntity.getVersion(), rank);
List<DsCraftVO> dsCraftVOList = craftService.selectDsCraftByPartId(partEntity.getId(), version, rank);
if (!CollectionUtils.isEmpty(dsCraftVOList)) {
for (DsCraftVO craftVO : dsCraftVOList) {
@ -380,6 +532,58 @@ public class DsTaskingServiceImpl extends BaseServiceImpl<DsTaskingMapper, DsTas
return result;
}
private DsPartAuthorizedVO authorizedReworkTask(DsPartEntity partEntity, DsTaskingEntity dsTaskingEntity) {
// 创建返回对象 - 完全嵌套树形
DsPartAuthorizedVO result = new DsPartAuthorizedVO();
result.setPartInfo(JSONObject.from(partEntity));
result.setCraftList(new ArrayList<>());
//查询返工工艺信息
DsCraftEntity craft = craftService.getReworkCraft(partEntity.getId(),dsTaskingEntity.getReworkOrder());
// 创建工艺节点
CraftTreeVO craftTree = new CraftTreeVO();
craftTree.setCraftInfo(JSONObject.from(craft));
craftTree.setProcessList(new ArrayList<>());
if(null != craft){
//查询返工工序
List<PrReworkProcessEntity> reworkProcessEntityList = reworkProcessService.selectPrReworkProcess(dsTaskingEntity.getReworkOrder(),dsTaskingEntity.getPartCode(),dsTaskingEntity.getVersion());
if(!CollectionUtils.isEmpty(reworkProcessEntityList)){
List<Long> reworkProcessId = reworkProcessEntityList.stream()
.map(PrReworkProcessEntity::getId)
.collect(Collectors.toList());
// 批量查询关联数据
List<DsProcessProjectEntity> processProjectEntityList = processProjectService.selectDsProcessProjectByProcessIds(reworkProcessId);
List<DsProcessMeasuringToolEntity> processMeasuringToolEntityList = processMeasuringToolService.selectDsProcessMeasuringToolByProcessIds(reworkProcessId);
List<DsProcessMoldToolEntity> processMoldToolEntityList = processMoldToolService.selectDsProcessMoldToolByProcessIds(reworkProcessId);
// 构建工序树
List<ProcessTreeVO> processTree = reworkBuildProcessTree(reworkProcessEntityList, processProjectEntityList,
processMeasuringToolEntityList, processMoldToolEntityList);
craftTree.setProcessList(processTree);
}
result.getCraftList().add(craftTree);
}else{
// 没有返工工艺信息的情况
// 创建新的工艺实体并设置返工订单号
craft = new DsCraftEntity();
craft.setReworkOrder(dsTaskingEntity.getReworkOrder());
craft.setPartId(partEntity.getId());
craft.setPartVersions(dsTaskingEntity.getVersion());
// 创建工艺节点并设置craftInfo
craftTree.setCraftInfo(JSONObject.from(craft));
craftTree.setProcessList(new ArrayList<>());
result.getCraftList().add(craftTree);
}
return result;
}
@Override
public boolean authorizedAccomplish(DsPartEntity dsPart, List<DsPartEntity> zPartList, DsCraftEntity craft, List<DsProcessEntity> processList, List<Long> deleteIds) {
@ -414,6 +618,282 @@ public class DsTaskingServiceImpl extends BaseServiceImpl<DsTaskingMapper, DsTas
return true;
}
private Connection mesConn;
@Override
public boolean reworkTask() {
List<DsReworkTaskVO> reworkTasks = null;
try {
// 1. 获取未处理的返工任务
reworkTasks = fetchUnprocessedReworkTasks();
// 开始事务
mesConn.setAutoCommit(false);
// 遍历处理每个返工任务
for (DsReworkTaskVO task : reworkTasks) {
processSingleTask(task);
}
// 提交事务
mesConn.commit();
log.info("返工任务自动分派完成,共处理" + reworkTasks.size() + "个任务");
} catch (SQLException e) {
// 异常处理 - 对应exception when NO_DATA_FOUND
try {
mesConn.rollback();
log.info("返工任务分派失败,事务已回滚: " + e.getMessage());
System.out.println("找不到数据,执行失败!"); // 对应dbms_output.put_line
} catch (SQLException ex) {
log.info("回滚失败: " + ex.getMessage());
}
}
List<DsReworkTaskVO> reworkTaskVOList = new ArrayList<>();
if(CollectionUtils.isEmpty(reworkTaskVOList)){
throw new ServiceException("无返工任务");
}
return false;
}
@Override
public boolean reworkAuthorizedAccomplish(DsCraftEntity craft, List<PrReworkProcessVO> reworkProcessVOList, List<Long> reworkProcessDeleteIds,
List<Long> processProjectDeleteIds, List<Long> processMeasuringToolDeleteIds, List<Long> processMoldToolDeleteIds) {
//保存工艺信息
if(null == craft.getId()){
craft.setPrority("3");
craft.setRank("2");
craftService.save(craft);
}else {
craftService.updateById(craft);
}
//保存返工工序
if(!CollectionUtils.isEmpty(reworkProcessVOList)){
for (PrReworkProcessVO prReworkProcess : reworkProcessVOList) {
if(null == prReworkProcess.getId()){
DsPartEntity partEntity = partService.getById(craft.getPartId());
prReworkProcess.setReworkCode(craft.getReworkOrder());
prReworkProcess.setPartCode(partEntity.getPartCode());
prReworkProcess.setBatchNo(craft.getPartVersions());
reworkProcessService.save(prReworkProcess);
}else {
reworkProcessService.updateById(prReworkProcess);
}
//项目 工装 量具
if(!CollectionUtils.isEmpty(prReworkProcess.getProcessProjectVOList())){
processProjectService.saveReworkProcessProjectSave(prReworkProcess,prReworkProcess.getProcessProjectVOList());
}
if(!CollectionUtils.isEmpty(prReworkProcess.getProcessMeasuringToolVOList())){
processMeasuringToolService.saveReworkProcessMeasuringTool(prReworkProcess,prReworkProcess.getProcessMeasuringToolVOList());
}
if(!CollectionUtils.isEmpty(prReworkProcess.getProcessMoldToolVOList())){
processMoldToolService.saveReworkProcessMoldTool(prReworkProcess,prReworkProcess.getProcessMoldToolVOList());
}
}
}
//删除返工工序
if(!CollectionUtils.isEmpty(reworkProcessDeleteIds)){
reworkProcessService.deleteLogic(reworkProcessDeleteIds);
}
//删除返工项目
if(!CollectionUtils.isEmpty(processProjectDeleteIds)){
reworkProcessService.deleteLogic(processProjectDeleteIds);
}
//删除返工量具
if(!CollectionUtils.isEmpty(processMeasuringToolDeleteIds)){
reworkProcessService.deleteLogic(processMeasuringToolDeleteIds);
}
//删除返工量具
if(!CollectionUtils.isEmpty(processMoldToolDeleteIds)){
reworkProcessService.deleteLogic(processMoldToolDeleteIds);
}
return true;
}
@Override
public DsPartAuthorizedVO craftDetail(Long partId, String partVersion, String rank) {
DsPartEntity partEntity = partService.getById(partId);
DsPartAuthorizedVO partAuthorizedVO = authorizedTask(rank, partEntity, partVersion);
return partAuthorizedVO;
}
/**
* 处理单个返工任务
* 对应: loop 循环内的处理逻辑
*/
private void processSingleTask(DsReworkTaskVO task) throws SQLException {
// 2. 检查零件是否存在
//先查询零件存不存在
DsPartEntity partEntity = partService.selectDsPartByPatCode(task.getPrtno());
if (null == partEntity) {
// 同步零件数据
SyncResult syncResult = syncPartData(task.getPrtno());
if (!syncResult.isSuccess()) {
// 记录同步失败日志
logDockingFailure(task.getPrtno(), syncResult.getNote());
return;
}
}
// 3. 获取零件工艺信息
DsPartEntity partInfo = partService.selectDsPartByPatCode(task.getPrtno());
if (partInfo == null) {
log.debug("零件 " + task.getPrtno() + " 信息获取失败,跳过处理");
return;
}
// 4. 分配工艺员
String craftUserId = assignCraftUser(task, partInfo);
// 5. 创建工艺任务
createCraftTask(task, partInfo, craftUserId);
// 6. 标记ERP状态
markErpTaskProcessed(task.getRedono());
}
private void markErpTaskProcessed(String redono) {
//todo 更新erp状态
String sql = "{call pro_rbredoroutstat(?, ?, ?)}";
// 标记erp的分配状态
// dba_mgr.pro_rbredoroutstat@erp_mes_link(v_redono,v_excnote, v_excflag);
}
private void createCraftTask(DsReworkTaskVO task, DsPartEntity partInfo, String craftUserId) {
// 设置任务状态和时间
Date assignTime = null;
int taskStatus = 1;
if (craftUserId == null) {
taskStatus = 0;
} else {
assignTime = new Date();
}
DsTaskingEntity dsTaskingEntity = new DsTaskingEntity();
dsTaskingEntity.setReworkOrder(task.getRedono());
dsTaskingEntity.setPartId(partInfo.getId());
dsTaskingEntity.setPartCode(task.getPrtno());
dsTaskingEntity.setPartName(partInfo.getPartName());
dsTaskingEntity.setVersion(task.getSplcode());
dsTaskingEntity.setCreateTime(new Date());
dsTaskingEntity.setPdmWay(partInfo.getCraftWay());
dsTaskingEntity.setWayDetails(task.getDeptcode());
dsTaskingEntity.setTaskType("6");
dsTaskingEntity.setFinalPlating(partInfo.getPlate());
dsTaskingEntity.setCraftMan(craftUserId);
dsTaskingEntity.setAssignTime(assignTime);
dsTaskingEntity.setTaskStatus(taskStatus);
dsTaskingEntity.setSyncTime(new Date());
dsTaskingEntity.setOutFlag("1");
dsTaskingEntity.setInProduction("0");
dsTaskingEntity.setRemarks(task.getDetail());
dsTaskingEntity.setPlate(partInfo.getPlate());
save(dsTaskingEntity);
log.info("创建工艺任务成功: " + task.getPrtno());
}
private String assignCraftUser(DsReworkTaskVO task, DsPartEntity partInfo) {
String craftWay = partInfo.getCraftWay();
String craftUserId = "0";
// 检查是否是封接类零件
if (craftWay != null && craftWay.contains("封接")) {
// 获取烧结工艺员(按任务最少原则)
craftUserId = getSealingCraftUser();
} else {
// 其他零件类型
craftUserId = getPlatingCraftUser();
}
return "0".equals(craftUserId) ? null : craftUserId;
}
private String getPlatingCraftUser() {
String sql = "SELECT u.user_id FROM (" +
"SELECT c.user_id, MAX(COALESCE(t.assign_time, '1999-01-01 23:00:01')) as assign_time " +
"FROM bs_plating a " +
"JOIN bs_basic_class b ON a.bc_id = b.bc_id " +
"JOIN bs_user_right c ON b.bc_id = c.the_id " +
"LEFT JOIN ds_tasking t ON c.user_id = t.craft_man " +
"WHERE b.type = 5 AND b.deleted = 0 AND a.config_no = ? " +
"GROUP BY c.user_id " +
"ORDER BY assign_time ASC " +
") u LIMIT 1";
return null;
}
private String getSealingCraftUser() {
String sql = "SELECT u.user_id FROM (" +
"SELECT c.user_id, MAX(COALESCE(t.assign_time, '1999-01-01 23:00:01')) as assign_time " +
"FROM bs_basic_class b " +
"JOIN bs_user_right c ON b.bc_id = c.the_id " +
"LEFT JOIN ds_tasking t ON c.user_id = t.craft_man " +
"WHERE b.code = 'I类' AND b.type = 5 AND b.deleted = 0 " +
"GROUP BY c.user_id " +
"ORDER BY assign_time ASC " +
") u LIMIT 1";
return null;
}
private SyncResult syncPartData(String prtno) {
SyncResult result = new SyncResult();
try {
// 模拟同步过程
boolean syncSuccess = callPartSyncService(prtno);
if (syncSuccess) {
result.setSuccess(true);
result.setNote("同步成功");
} else {
result.setSuccess(false);
result.setNote("同步失败");
}
} catch (Exception e) {
result.setSuccess(false);
result.setNote("同步异常: " + e.getMessage());
}
return result;
}
private boolean callPartSyncService(String prtno) {
//todo 同步零件信息
return true;
}
private List<DsReworkTaskVO> fetchUnprocessedReworkTasks() {
// -- 数据源 erp
// -- select a.redono, a.prtno, a.splcode, a.deptcode, a.detail
// -- from dba_mgr.v_mes_rb_redo@erp_mes_link a
// -- where a.rbmesroutstat is null;
return new ArrayList<>();
}
/**
* 记录同步失败日志
*/
private void logDockingFailure(String partNo, String note) throws SQLException {
String sql = "INSERT INTO sy_docking_log(dl_id, read_type, read_result, create_time) " +
"VALUES(?, partNo, note, new Date())";
}
/**
* 构建工序树
@ -468,4 +948,58 @@ public class DsTaskingServiceImpl extends BaseServiceImpl<DsTaskingMapper, DsTas
return processTree;
}
/**
* 构建返工工序树
*/
private List<ProcessTreeVO> reworkBuildProcessTree(List<PrReworkProcessEntity> processEntities,
List<DsProcessProjectEntity> projectEntities,
List<DsProcessMeasuringToolEntity> measuringToolEntities,
List<DsProcessMoldToolEntity> moldToolEntities) {
// 按工序ID分组
Map<Long, List<DsProcessProjectEntity>> projectMap = projectEntities.stream()
.collect(Collectors.groupingBy(DsProcessProjectEntity::getProcessId));
Map<Long, List<DsProcessMeasuringToolEntity>> measuringToolMap = measuringToolEntities.stream()
.collect(Collectors.groupingBy(DsProcessMeasuringToolEntity::getProcessId));
Map<Long, List<DsProcessMoldToolEntity>> moldToolMap = moldToolEntities.stream()
.collect(Collectors.groupingBy(DsProcessMoldToolEntity::getProcessId));
List<ProcessTreeVO> processTree = new ArrayList<>();
for (PrReworkProcessEntity process : processEntities) {
ProcessTreeVO processNode = new ProcessTreeVO();
// 设置工序基本信息
processNode.setProcessInfo(JSONObject.from(process));
Long processId = process.getId();
// 设置工装模具列表
List<DsProcessMoldToolEntity> molds = moldToolMap.get(processId);
processNode.setMoldToolList(molds != null ?
molds.stream().map(JSONObject::from).collect(Collectors.toList()) :
new ArrayList<>());
// 设置尺寸量具列表
List<DsProcessMeasuringToolEntity> tools = measuringToolMap.get(processId);
processNode.setMeasuringToolList(tools != null ?
tools.stream().map(JSONObject::from).collect(Collectors.toList()) :
new ArrayList<>());
// 设置工序项目列表
List<DsProcessProjectEntity> projects = projectMap.get(processId);
processNode.setProjectList(projects != null ?
projects.stream().map(JSONObject::from).collect(Collectors.toList()) :
new ArrayList<>());
processTree.add(processNode);
}
return processTree;
}
}

@ -0,0 +1,73 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.desk.dashboard.service.impl;
import org.checkerframework.checker.units.qual.A;
import org.springblade.desk.dashboard.pojo.entity.PrReworkProcessEntity;
import org.springblade.desk.dashboard.pojo.vo.PrReworkProcessVO;
import org.springblade.desk.dashboard.excel.PrReworkProcessExcel;
import org.springblade.desk.dashboard.mapper.PrReworkProcessMapper;
import org.springblade.desk.dashboard.service.IPrReworkProcessService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseServiceImpl;
import java.util.List;
/**
* 返工任务表 服务实现类
*
* @author BladeX
* @since 2025-12-03
*/
@Service
public class PrReworkProcessServiceImpl extends BaseServiceImpl<PrReworkProcessMapper, PrReworkProcessEntity> implements IPrReworkProcessService {
@Autowired
PrReworkProcessMapper reworkProcessMapper;
@Override
public IPage<PrReworkProcessVO> selectPrReworkProcessPage(IPage<PrReworkProcessVO> page, PrReworkProcessVO prReworkProcess) {
return page.setRecords(baseMapper.selectPrReworkProcessPage(page, prReworkProcess));
}
@Override
public List<PrReworkProcessExcel> exportPrReworkProcess(Wrapper<PrReworkProcessEntity> queryWrapper) {
List<PrReworkProcessExcel> prReworkProcessList = baseMapper.exportPrReworkProcess(queryWrapper);
//prReworkProcessList.forEach(prReworkProcess -> {
// prReworkProcess.setTypeName(DictCache.getValue(DictEnum.YES_NO, PrReworkProcess.getType()));
//});
return prReworkProcessList;
}
@Override
public List<PrReworkProcessEntity> selectPrReworkProcess(String reworkOrder, String partCode, String batchNo) {
return reworkProcessMapper.selectPrReworkProcess(reworkOrder,partCode,batchNo);
}
}

@ -0,0 +1,59 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.desk.dashboard.wrapper;
import org.springblade.core.mp.support.BaseEntityWrapper;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.desk.dashboard.pojo.entity.PrReworkProcessEntity;
import org.springblade.desk.dashboard.pojo.vo.PrReworkProcessVO;
import java.util.Objects;
/**
* 返工任务表 包装类,返回视图层所需的字段
*
* @author BladeX
* @since 2025-12-03
*/
public class PrReworkProcessWrapper extends BaseEntityWrapper<PrReworkProcessEntity, PrReworkProcessVO> {
public static PrReworkProcessWrapper build() {
return new PrReworkProcessWrapper();
}
@Override
public PrReworkProcessVO entityVO(PrReworkProcessEntity prReworkProcess) {
PrReworkProcessVO prReworkProcessVO = Objects.requireNonNull(BeanUtil.copyProperties(prReworkProcess, PrReworkProcessVO.class));
//User createUser = UserCache.getUser(prReworkProcess.getCreateUser());
//User updateUser = UserCache.getUser(prReworkProcess.getUpdateUser());
//prReworkProcessVO.setCreateUserName(createUser.getName());
//prReworkProcessVO.setUpdateUserName(updateUser.getName());
return prReworkProcessVO;
}
}
Loading…
Cancel
Save