소스 검색

feature: 技术合同和销售合同分开编号

liuyaqi 2 년 전
부모
커밋
3e7716d1aa
2개의 변경된 파일28개의 추가작업 그리고 3개의 파일을 삭제
  1. 14 3
      opms_parent/app/service/contract/ctr_contract.go
  2. 14 0
      opms_parent/schema/function.sql

+ 14 - 3
opms_parent/app/service/contract/ctr_contract.go

@@ -375,10 +375,21 @@ func (s CtrContractService) Add(ctx context.Context, req *model.CtrContractAddRe
 	// 	return 0, myerrors.TipsError("所选项目已添加合同")
 	// }
 
-	sequence, err := service.SequenceYearRest(s.Dao.DB, "contract_code")
-	if err != nil {
-		return 0, err
+	var sequence int
+	if req.ContractType == "XS" { // 销售合同
+		sequence, err = service.SequenceYearRest(s.Dao.DB, "contract_code_xs")
+		if err != nil {
+			return 0, err
+		}
+	} else if req.ContractType == "JS" { // 技术合同
+		sequence, err = service.SequenceYearRest(s.Dao.DB, "contract_code_js")
+		if err != nil {
+			return 0, err
+		}
+	} else {
+		return 0, myerrors.TipsError("不支持的合同类型")
 	}
+
 	if req.ContractCode == "" {
 		req.ContractCode = fmt.Sprintf("DH%s%s-%03d", req.ContractType, time.Now().Format("0601"), sequence)
 	}

+ 14 - 0
opms_parent/schema/function.sql

@@ -36,6 +36,20 @@ RETURN currval(seq_name);
 END $
 DELIMITER ;
 
+DROP FUNCTION IF EXISTS currval;
+DELIMITER $
+CREATE FUNCTION `currval`(seq_name VARCHAR(50)) RETURNS int(11)
+    DETERMINISTIC
+BEGIN
+    DECLARE VALUE INTEGER;
+    SET VALUE = 0;
+    SELECT current_value INTO VALUE
+        FROM plat_sequence
+        WHERE NAME = seq_name;
+    RETURN VALUE;
+END $
+DELIMITER ;
+
 -- INSERT INTO plat_sequence VALUES ('customer_code', 1000, 1, '', 1000, '系统管理员', '2023-02-09 10:27:42', null, null, null, null);
 -- INSERT INTO plat_sequence VALUES ('contract_code', 1000, 1, '', 1000, '系统管理员', '2023-02-09 10:27:42', null, null, null, null);
 -- select `nextval`('customer_code');