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>