1.存儲過程(表單升級)java
create or replace procedure getMachineUpateVersionProc(new_id in varchar2,//輸入參數 pre_id in varchar2,//輸入參數 new_version in varchar2,//輸入參數 new_formCode in varchar2,//輸入參數 createUser in varchar2,//輸入參數 resultStr out varchar2//返回值 ) is begin declare currentDate date; begin select sysdate into currentDate from dual; insert into test_task_info(ID,CREATE_BY,CREATE_DATE,UPDATE_BY,UPDATE_DATE,VERSION,START_TYPE,FORM_STATE,TEST_TASK_CODE,TEST_TASK_NAME,TEST_TASK_TYPE,PRODUCT_RANGE,PRODUCT_USE,TEST_STAGE,TEST_EXCUTER,TEST_BENCH,TEST_BENCH_LOG,REMARKS,DEL_FLAG,ENGINE_TYPE,sort) select new_id,createUser,currentDate,createUser,currentDate,new_version,'01','01',TEST_TASK_CODE,TEST_TASK_NAME,TEST_TASK_TYPE,PRODUCT_RANGE,PRODUCT_USE,TEST_STAGE,TEST_EXCUTER,TEST_BENCH,TEST_BENCH_LOG,REMARKS,DEL_FLAG,ENGINE_TYPE,SEQ_TASK_SORT.Nextval from test_task_info where id = pre_id; insert into machine_form_info (id, remarks, create_by, create_date, update_by, update_date,form_code,test_task_id, test_name, project_name, work_order, project_leader, product_use, now_state, dvp_code, suggest_time, background_remark, test_purpose, engine_type, engine_bom_code, engine_bom_version, ecu_no, engine_tech, engine_all_tech, engine_out_tech, engine_remark, check_detail, measure_param, special_demand, install_comp_node, test_fuel_no, test_oil_no, antifreeze, test_item1, test_item2, TEST_REQUIRE1, TEST_REQUIRE2, test_comp_node, after_measure_detail, important_parts, other_detail, form_version, extend_1, extend_2, extend_3, extend_4, extend_5, del_flag, exam_type, task_source, work_oder2, design_leader, dvp_code2, USE_MEASURE_PARAM, DURABLE_MEASURE_PARAM, product_range, project_code, project_grade) select (select sys_guid() from dual) as id, remarks, createUser, currentDate, createUser, currentDate,new_formCode, new_id, test_name, project_name, work_order, project_leader, product_use, now_state, dvp_code, suggest_time, background_remark, test_purpose, engine_type, engine_bom_code, engine_bom_version, ecu_no, engine_tech, engine_all_tech, engine_out_tech, engine_remark, check_detail, measure_param, special_demand, install_comp_node, test_fuel_no, test_oil_no, antifreeze, test_item1, test_item2, TEST_REQUIRE1, TEST_REQUIRE2, test_comp_node, after_measure_detail, important_parts, other_detail, form_version, extend_1, extend_2, extend_3, extend_4, extend_5, del_flag, exam_type, task_source, work_oder2, design_leader, dvp_code2, USE_MEASURE_PARAM, DURABLE_MEASURE_PARAM, product_range, project_code, project_grade from machine_form_info where test_task_id = pre_id; insert into machine_form_assign ( id, create_by, create_date, update_by, update_date, assign_no, assign_type, parts_name, parts_no, factory, batch, design_major, assign_time, follow, test_task_id, extend_1, extend_2, extend_3, extend_4, extend_5, remarks, del_flag ) select (select sys_guid() from dual) as id, createUser, currentDate, createUser, currentDate, assign_no, assign_type, parts_name, parts_no, factory, batch, design_major, assign_time, follow, new_id, extend_1, extend_2, extend_3, extend_4, extend_5, remarks, del_flag from machine_form_assign WHERE test_task_id =pre_id and del_flag = '0'; insert into machine_form_measure ( id, create_by, create_date, update_by, update_date, test_task_id, measure_item_no, item_remark, form_version, extend_1, extend_2, remarks, del_flag ) select (select sys_guid() from dual) as id, createUser, currentDate, createUser, currentDate, new_id, measure_item_no, item_remark, form_version, extend_1, extend_2, remarks, del_flag FROM machine_form_measure a WHERE test_task_id = pre_id and del_flag = '0'; insert into machine_form_bench_item ( id, create_by, create_date, update_by, update_date, test_task_id, per_bench_item_no, dur_bench_item_no, item_remark, form_version, extend_1, extend_2, remarks, del_flag ) select (select sys_guid() from dual) as id, createUser, currentDate, createUser, currentDate, new_id, per_bench_item_no, dur_bench_item_no, item_remark, form_version, extend_1, extend_2, remarks, del_flag FROM machine_form_bench_item a WHERE test_task_id =pre_id and del_flag = '0'; COMMIT; resultStr := 'ok'; EXCEPTION WHEN OTHERS THEN ROLLBACK; BEGIN resultStr:=sqlerrm; dbms_output.put_line('錯誤信息:'||resultStr); END; end; end getMachineUpateVersionProc;
MyBatis是如何調用的node
1.controllersql
public ReponseData updateVersion(String testTaskId,String preVersion) { try{ String version = ""; if(null==preVersion){ version="A"; }else{ version = String.valueOf((char)((int)preVersion.toCharArray()[0] + 1)); } String formCode = machineFormInfoService.getFormCodeSeq(); User currentUser = UserUtils.getUser(); Map<String, Object> map = new HashMap<String, Object>(); //定義map,將全部的輸入參數放進map String newId = IdGen.uuid(); map.put("new_id",newId); map.put("pre_id", testTaskId); map.put("new_version", version); map.put("new_formCode", formCode); map.put("createUser", currentUser.getId()); machineIndexService.getMachineUpateVersionProc(map); //調用service,間接調用存儲過程 String resultStr = (String) map.get("resultStr"); //獲取存儲過程執行結束後的返回值 if ("ok".equals(resultStr)) { return new ReponseData.Builder(Constant.SUCCESS_CODE).message(newId).build(); }else{ logger.error("[錯誤信息]", resultStr); return new ReponseData.Builder(Constant.FAIl_CODE).message(Constant.FAIL_TIP).build(); } }catch (Exception e){ e.printStackTrace(); return new ReponseData.Builder(Constant.FAIl_CODE).message(Constant.FAIL_TIP).build(); } }
2.serviceui
public void getMachineUpateVersionProc(Map<String,Object> map){ machineFormInfoDao.getMachineUpateVersionProc(map); }
3.dao code
void getMachineUpateVersionProc(Map<String,Object> map);
4.xml應該這麼寫orm
<select id="getMachineUpateVersionProc" parameterType="java.util.Map" statementType="CALLABLE"> <![CDATA[ {call getMachineUpateVersionProc(#{new_id,mode=IN,jdbcType=VARCHAR},#{pre_id,mode=IN,jdbcType=VARCHAR},#{new_version,mode=IN,jdbcType=VARCHAR},#{new_formCode,mode=IN,jdbcType=VARCHAR},#{createUser,mode=IN,jdbcType=VARCHAR},#{resultStr,mode=OUT,jdbcType=VARCHAR})} ]]> </select>