本次完成科室库入库记录的填写。
第一层:
//first
ReagentInBillVm inBillAll = new ReagentInBillVm();
Long time3 = new Date().getTime();
Random ne3 = new Random();//实例化一个random的对象ne
int x3 = ne3.nextInt(999 - 100 + 1) + 100;//为变量赋随机值100-999
String random_order3 = String.valueOf(x3);
String inBillCode = time3 + random_order3;
inBillAll.setBillCode(inBillCode);
inBillAll.setPreInBillCode(String.valueOf(id));
inBillAll.setBillType("3");
inBillAll.setCreateType("4");
inBillAll.setCreateBy(creater);
inBillAll.setBillDate(timeNow);
inBillAll.setBillStatus("1");
inBillAll.setBranch(destination);
inBillAll.setBillCreator(creater);
inBillAll.setUpdateTime(timeNow);
inBillAll.setCreateTime(timeNow);
inBillDao.insert(inBillAll);
获得当前时间生成随机编号,填写ReagentInBillVm 并使用outBillMapper.insert(inBillAll )写入数据库。
第二层的写入稍微麻烦,但与中心库出库单相似
前置处理:
List<ReagentOutDetailItem> reagentOutDetailItemsList = new ArrayList<>();
List<Map<String,Long>> reagentCollectDetails=stockMapper.getdata(id);
List<List<Map<String,Object>>> findcenter =new ArrayList<>();
for (int i=0;i<reagentCollectDetails.size();i++){
findcenter.add(stockMapper.findFromCentre(destination, String.valueOf(reagentCollectDetails.get(i).get("reagent_code")),reagentCollectDetails.get(i).get("reagent_number")));}
查询需要改动的具体耗材信息,使用stockMapper.getdata(id)获取需要的耗材种类
<select id="getdata" resultType="java.util.HashMap">
select *
from reagent_collect_detail
where collect_no = #{id,jdbcType=BIGINT}
使用两层List储存将要转移的具体信息
<select id="findFromCentre" resultType="java.util.HashMap">
select *
from reagent_stock_detail
where reagent_id=#{reagentcode,jdbcType=VARCHAR}
and branch='中心库'
and reagent_status='1998'
order by remain_day ASC
limit ${number}