瀏覽代碼

【思拓微】【OA对接】【估价申请接口】

wub 11 月之前
父節點
當前提交
523ca92f5c

+ 6 - 0
src/main/java/com/uas/eis/controller/STKController.java

@@ -1,6 +1,7 @@
 package com.uas.eis.controller;
 
 import com.uas.eis.beans.result.Result;
+import com.uas.eis.sdk.dto.AppraiseReq;
 import com.uas.eis.sdk.dto.BomReq;
 import com.uas.eis.sdk.dto.ProductPageDTO;
 import com.uas.eis.sdk.dto.ProductReq;
@@ -46,4 +47,9 @@ public class STKController {
     public Result getBomCost(HttpServletRequest request, @RequestBody BomReq bomReq){
         return stkService.getBomCost(bomReq);
     }
+
+    @PostMapping("/api/insertOrUpdateAppraise")
+    public Result insertOrUpdateAppraise(HttpServletRequest request, @RequestBody AppraiseReq appraiseReq){
+        return stkService.insertOrUpdateAppraise(appraiseReq);
+    }
 }

+ 21 - 0
src/main/java/com/uas/eis/sdk/dto/AppraiseDTO.java

@@ -0,0 +1,21 @@
+package com.uas.eis.sdk.dto;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+
+/**
+ * dto说明
+ * */
+
+@Data
+@NoArgsConstructor
+public class AppraiseDTO {
+
+    /**
+     *主键ID
+     * */
+    private Integer ct_id;
+    private String ct_code;
+    private String ct_recorder;
+}

+ 28 - 0
src/main/java/com/uas/eis/sdk/dto/AppraiseDetailDTO.java

@@ -0,0 +1,28 @@
+package com.uas.eis.sdk.dto;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+
+/**
+ * dto说明
+ * */
+
+@Data
+@NoArgsConstructor
+public class AppraiseDetailDTO {
+
+    /**
+     *主键ID
+     * */
+    private Integer cd_id;
+    private Integer cd_ctid;
+    private Integer cd_detno;
+    private String cd_varchar50_2;
+    private String cd_varchar50_3;
+    private String cd_varchar50_1;
+    private Double cd_number_1;
+    private Double cd_number_2;
+    private Double cd_number_3;
+    private Double cd_number_4;
+}

+ 18 - 0
src/main/java/com/uas/eis/sdk/dto/AppraiseReq.java

@@ -0,0 +1,18 @@
+package com.uas.eis.sdk.dto;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@Data
+@NoArgsConstructor
+public class AppraiseReq {
+
+    /**
+     * 期间
+     * */
+    private String code;
+    private String recorder;
+    private List<AppraiseDetailDTO> items;
+}

+ 58 - 0
src/main/java/com/uas/eis/service/Impl/STKServiceImpl.java

@@ -17,6 +17,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import javax.servlet.http.HttpServletRequest;
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -162,6 +163,63 @@ public class STKServiceImpl implements STKService {
         return Result.success(map);
     }
 
+    @Override
+    public Result insertOrUpdateAppraise(AppraiseReq appraiseReq) {
+        String code = appraiseReq.getCode();
+        String recorder = appraiseReq.getRecorder();
+
+        if(code==null){
+            return Result.error("估价申请编号参数错误!");
+        }
+        List<String> sqls = new ArrayList<String>();
+        List<AppraiseDetailDTO> items = appraiseReq.getItems();
+        int count = baseDao.getCount("select count(1) from CUSTOMTABLE where ct_caller='STW-0005' and ct_code='" + code + "'");
+        if (count>0) {
+            count = baseDao.getCount("select count(1) from CUSTOMTABLE where ct_statuscode='ENTERING' and ct_caller='STW-0005' and ct_code='" + code + "'");
+            //修改
+            if (count>0) {
+                Object ctid = baseDao.getFieldDataByCondition("CUSTOMTABLE", "ct_id", "ct_statuscode='ENTERING' and ct_caller='STW-0005' and ct_code='" + code + "'");
+                Object cd_detno_max = baseDao.getFieldDataByCondition("CUSTOMTABLEDETAIL", "max(cd_detno)", "cd_ctid=" + ctid);
+                int detno = 1;
+                for(AppraiseDetailDTO detailDTO : items){
+                    if(detailDTO.getCd_id()>0){
+                        String DetailSql ="update CUSTOMTABLEDETAIL set cd_varchar50_2='"+detailDTO.getCd_number_2()+"',cd_varchar50_3='"+detailDTO.getCd_varchar50_3()+"',cd_varchar50_1='"+detailDTO.getCd_varchar50_1()+
+                                "',cd_number_1="+detailDTO.getCd_number_1()+",cd_number_2="+detailDTO.getCd_number_2()+",cd_number_3="+detailDTO.getCd_number_3()+",cd_number_4="+detailDTO.getCd_number_4()+
+                                " where cd_id="+detailDTO.getCd_id()+" and exists (select 1 from CUSTOMTABLE where ct_id=cd_ctid and ct_statuscode='ENTERING' and ct_caller='STW-0005' and ct_code='"+code+"')";
+                        sqls.add(DetailSql);
+                    }else{
+                        //新增
+                        if (cd_detno_max !=null && detno == 1){
+                            detno = Integer.valueOf(cd_detno_max.toString()) + 1 ;
+                        }
+                        String DetailSql = "insert into CUSTOMTABLEDETAIL(cd_id,cd_ctid,cd_detno,cd_varchar50_2,cd_varchar50_3,cd_varchar50_1,cd_number_1,cd_number_2,cd_number_3,cd_number_4)" +
+                                " values(CUSTOMTABLEDETAIL_seq.nextval,"+ctid+","+detno+",'"+detailDTO.getCd_varchar50_2()+"','"+detailDTO.getCd_varchar50_3()+"','"+detailDTO.getCd_varchar50_1()+
+                                "',"+detailDTO.getCd_number_1()+","+detailDTO.getCd_number_2()+","+detailDTO.getCd_number_3()+","+detailDTO.getCd_number_4()+")";
+                        sqls.add(DetailSql);
+                        detno++;
+                    }
+                }
+            }
+        }else{
+            //新增
+            int ct_id = baseDao.getSeqId("CUSTOMTABLE_SEQ");
+            int detno = 1;
+            String FormSql= "insert into CUSTOMTABLE(CT_ID,CT_CALLER,CT_STATUSCODE,CT_STATUS,CT_CODE,ct_recorder,ct_sourcekind,ct_recorddate)" +
+                    " values("+ct_id+",'STW-0005','ENTERING','在录入','"+code+"','"+recorder+"','估价申请',sysdate)";
+            sqls.add(FormSql);
+            for(AppraiseDetailDTO detailDTO : items){
+                String DetailSql = "insert into CUSTOMTABLEDETAIL(cd_id,cd_ctid,cd_detno,cd_varchar50_2,cd_varchar50_3,cd_varchar50_1,cd_number_1,cd_number_2,cd_number_3,cd_number_4)" +
+                        " values(CUSTOMTABLEDETAIL_seq.nextval,"+ct_id+","+detno+",'"+detailDTO.getCd_varchar50_2()+"','"+detailDTO.getCd_varchar50_3()+"','"+detailDTO.getCd_varchar50_1()+
+                        "',"+detailDTO.getCd_number_1()+","+detailDTO.getCd_number_2()+","+detailDTO.getCd_number_3()+","+detailDTO.getCd_number_4()+")";
+                sqls.add(DetailSql);
+                detno++;
+            }
+
+        }
+        baseDao.execute(sqls);
+        return Result.success();
+    }
+
     /**
      * bom成本计算 打印前执行方法
      * @param id

+ 3 - 0
src/main/java/com/uas/eis/service/STKService.java

@@ -2,6 +2,7 @@ package com.uas.eis.service;
 
 
 import com.uas.eis.beans.result.Result;
+import com.uas.eis.sdk.dto.AppraiseReq;
 import com.uas.eis.sdk.dto.BomReq;
 import com.uas.eis.sdk.dto.ProductPageDTO;
 import com.uas.eis.sdk.dto.ProductReq;
@@ -21,4 +22,6 @@ public interface STKService {
     Result getProject(ProductPageDTO productPageDTO);
 
     Result getBomCost(BomReq bomReq);
+
+    Result insertOrUpdateAppraise(AppraiseReq appraiseReq);
 }