From b313635e966ced02b28d219f20092a9805d738ac Mon Sep 17 00:00:00 2001
From: Harry Yang <i.take.today@gmail.com>
Date: Tue, 27 Dec 2022 18:09:36 +0800
Subject: [PATCH] =?UTF-8?q?=E9=87=87=E8=B4=AD=E5=90=88=E5=90=8C=E6=B5=81?=
 =?UTF-8?q?=E7=A8=8B=20=E4=BE=9B=E5=BA=94=E5=95=86=E6=AF=94=E9=80=89?=
 =?UTF-8?q?=E6=9D=90=E6=96=99?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../controller/backend/ProcessController.java    | 14 ++++++++++----
 .../work/model/process/ProcurementContract.java  |  4 ++--
 .../work/model/process/SupplierMaterial.java     |  2 ++
 .../work/service/ProjectProcessService.java      |  8 ++++++++
 src/main/resources/sql/2.0.sql                   | 16 ++++++++--------
 5 files changed, 30 insertions(+), 14 deletions(-)

diff --git a/src/main/java/cn/palmte/work/controller/backend/ProcessController.java b/src/main/java/cn/palmte/work/controller/backend/ProcessController.java
index 8a51c10..edd35b5 100644
--- a/src/main/java/cn/palmte/work/controller/backend/ProcessController.java
+++ b/src/main/java/cn/palmte/work/controller/backend/ProcessController.java
@@ -258,6 +258,9 @@ public class ProcessController {
 
     public Object contract;
     public ProjectProcess process;
+
+    public List<SupplierMaterial> supplierMaterials;
+
   }
 
   @ResponseBody
@@ -301,13 +304,15 @@ public class ProcessController {
     Project project = projectRepository.findById(process.getProjectId());
     BigDecimal repaidAmount = getRepaidAmount(id);
     Object contract;
+    List<SupplierMaterial> supplierMaterials = null;
     switch (process.getProcessType()) {
       case sale_contract: {
-        contract = processService.findSaleContract(process.getId());
+        contract = processService.findSaleContract(id);
         break;
       }
       case procurement_contract: {
-        contract = processService.findProcurementContract(process.getId());
+        contract = processService.findProcurementContract(id);
+        supplierMaterials = processService.getSupplierMaterials(id);
         break;
       }
       default:
@@ -326,8 +331,9 @@ public class ProcessController {
             .repaidAmount(repaidAmount + "元")
             .budgetGrossMargin(project.getGrossProfitMargin())
             .projectNo(project.getProjectNo())
-            .applyPersonName(process.getApplyPersonName())
+            .supplierMaterials(supplierMaterials)
             .contractAmount(project.getContractAmount())
+            .applyPersonName(process.getApplyPersonName())
             .terminalCustomer(project.getTerminalCustomer())
             .projectType(Enumerable.of(ProjectType.class, project.getType()).getDescription())
             .cooperationType(Enumerable.of(CooperationType.class, project.getCooperateType()).getDescription())
@@ -407,7 +413,7 @@ public class ProcessController {
       }
       case procurement_contract: {
         ProcurementContract contract = processService.findProcurementContract(form.getId());
-        contract.setMode(form.getProcurementMode());
+        contract.setProcurementMode(form.getProcurementMode());
         contract.setPaymentTerms(form.getPaymentTerms());
         contract.setSupplierName(form.getSupplierName());
         entityManager.merge(contract);
diff --git a/src/main/java/cn/palmte/work/model/process/ProcurementContract.java b/src/main/java/cn/palmte/work/model/process/ProcurementContract.java
index 92b7763..6e8fe39 100644
--- a/src/main/java/cn/palmte/work/model/process/ProcurementContract.java
+++ b/src/main/java/cn/palmte/work/model/process/ProcurementContract.java
@@ -30,7 +30,7 @@ public class ProcurementContract implements Serializable {
   @GenericGenerator(name = "persistenceGenerator", strategy = "increment")
   private Integer id;
 
-  private ProcurementMode mode;
+  private ProcurementMode procurementMode;
 
   private String supplierName;
 
@@ -41,7 +41,7 @@ public class ProcurementContract implements Serializable {
 
   public static ProcurementContract from(ProcessCreationForm form) {
     ProcurementContract contract = new ProcurementContract();
-    contract.setMode(form.getProcurementMode());
+    contract.setProcurementMode(form.getProcurementMode());
     contract.setPaymentTerms(form.getPaymentTerms());
     contract.setSupplierName(form.getSupplierName());
     return contract;
diff --git a/src/main/java/cn/palmte/work/model/process/SupplierMaterial.java b/src/main/java/cn/palmte/work/model/process/SupplierMaterial.java
index b02f2bc..9266fac 100644
--- a/src/main/java/cn/palmte/work/model/process/SupplierMaterial.java
+++ b/src/main/java/cn/palmte/work/model/process/SupplierMaterial.java
@@ -41,6 +41,8 @@ public class SupplierMaterial {
 
   private String attachment;
 
+  private Integer processId;
+
   @Override
   public boolean equals(Object o) {
     if (this == o)
diff --git a/src/main/java/cn/palmte/work/service/ProjectProcessService.java b/src/main/java/cn/palmte/work/service/ProjectProcessService.java
index ace40f8..6621b18 100644
--- a/src/main/java/cn/palmte/work/service/ProjectProcessService.java
+++ b/src/main/java/cn/palmte/work/service/ProjectProcessService.java
@@ -31,6 +31,7 @@ import cn.palmte.work.model.enums.ProcessStatus;
 import cn.palmte.work.model.process.ProcurementContract;
 import cn.palmte.work.model.process.ProjectProcess;
 import cn.palmte.work.model.process.SaleContract;
+import cn.palmte.work.model.process.SupplierMaterial;
 import cn.palmte.work.model.process.form.SaleContractDetailForm;
 import lombok.Data;
 import lombok.RequiredArgsConstructor;
@@ -182,6 +183,13 @@ public class ProjectProcessService {
     return query.getSingleResult();
   }
 
+  public List<SupplierMaterial> getSupplierMaterials(int processId) {
+    TypedQuery<SupplierMaterial> query = entityManager.createQuery(
+            "from SupplierMaterial where processId=:processId", SupplierMaterial.class);
+    query.setParameter("processId", processId);
+    return query.getResultList();
+  }
+
   public ProjectProcess getById(int id) {
     return entityManager.find(ProjectProcess.class, id);
   }
diff --git a/src/main/resources/sql/2.0.sql b/src/main/resources/sql/2.0.sql
index 221eaab..de5f7d0 100644
--- a/src/main/resources/sql/2.0.sql
+++ b/src/main/resources/sql/2.0.sql
@@ -37,11 +37,11 @@ alter table project_process
 # 采购合同
 create table procurement_contract
 (
-    id            int auto_increment primary key comment 'ID',
-    `mode`        varchar(255) null comment '采购模式',
-    payment_terms text         null comment '付款条件',
-    process_id    int          null comment '流程ID',
-    supplier_name varchar(255) null comment '供应商名称'
+    id               int auto_increment primary key comment 'ID',
+    procurement_mode varchar(255) null comment '采购模式',
+    payment_terms    text         null comment '付款条件',
+    process_id       int          null comment '流程ID',
+    supplier_name    varchar(255) null comment '供应商名称'
 );
 
 # 销售合同
@@ -60,8 +60,8 @@ create table procurement_contract_supplier_material
     total_amount  varchar(255)  null comment '合计金额',
     service_terms varchar(255)  null comment '服务条款',
     payment_terms varchar(255)  null comment '付款条件',
-    taxRate       varchar(255)  null comment '税率',
+    tax_rate      varchar(255)  null comment '税率',
     remark        varchar(255)  null comment '备注',
-    attachment    varchar(1000) null comment '附件'
-
+    attachment    varchar(1000) null comment '附件',
+    process_id    int           null comment '流程ID'
 );
\ No newline at end of file