|
|
@@ -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
|