本次完成科室库入库记录的2,3层。由于二三层关联较大,因此一同编写。
//second
List reagentInDetailList = new ArrayList<>();
List reagentInDetailItemList = new ArrayList<>();
for(int i=0;i<findcenter.size();i++) {
Long time4 = new Date().getTime();
Random ne4 = new Random();//实例化一个random的对象ne
int x4 = ne4.nextInt(999 - 100 + 1) + 100;//为变量赋随机值100-999
String random_order4 = String.valueOf(x4);
String inDetailId = time4 + random_order4;
ReagentInBillDetail inDetail = new ReagentInBillDetail();
inDetail.setBillCode(inBillCode);
inDetail.setInDetailId(inDetailId);
inDetail.setReagentId((String) findcenter.get(i).get(0).get("reagent_id"));
inDetail.setReagentName((String) findcenter.get(i).get(0).get("reagent_name"));
inDetail.setReagentUnit((String) findcenter.get(i).get(0).get("reagent_unit"));
inDetail.setReagentSpecification((String) findcenter.get(i).get(0).get("specification"));
inDetail.setFactory((String) findcenter.get(i).get(0).get("manufacturer_name"));
inDetail.setPrice((Double) findcenter.get(i).get(0).get("reagent_price"));
inDetail.setQuantity(reagentCollectDetails.get(i).get("reagent_number"));
Double total = inDetail.getQuantity()*inDetail.getPrice();
inDetail.setTotal(total);
inDetail.setCreateBy(creater);
inDetail.setCreateTime(timeNow);
reagentInDetailList.add(inDetail);
for(int j=0;j<findcenter.get(i).size();j++){
ReagentInDetailItem item = new ReagentInDetailItem();
item.setBillCode(inBillCode);
item.setInDetailId(inDetailId);
item.setStatus("1");
item.setQrCode((String) findcenter.get(i).get(j).get("qr_code"));
item.setCodeValue((String) findcenter.get(i).get(j).get("code_value"));
item.setReagentCode((String) findcenter.get(i).get(j).get("reagent_code"));
item.setCreateTime(timeNow);
item.setCreateBy(creater);
reagentInDetailItemList.add(item);
}
}
inDetailDao.insertInDetail(reagentInDetailList);
inDetailItemDao.insertBillItem(reagentInDetailItemList);
同样是根据时间生成一个具体编号,填写二层,然后找到将要移动的耗材,使用List填写第三层,然后使用outDetailDao.insertOutDetail(outDetailList)和outItemDao.insertItem(reagentOutDetailItemsList)分别增加。
insertItem:
<insert id="insertItem" parameterType="jp.co.nss.hrm.backend.model.ReagentOutDetailItem">
insert into reagent_out_detail_item (bill_code, out_detail_id, reagent_code,
qr_code,code_value, status, create_time,
create_by, update_time, update_by,
delete_flag, delete_time, delete_by
)
values
<foreach collection="outDetailItemList" item="item" index="index" separator=",">
(#{item.billCode,jdbcType=VARCHAR},#{item.outDetailId,jdbcType=VARCHAR},
#{item.reagentCode,jdbcType=VARCHAR}, #{item.qrCode,jdbcType=VARCHAR},#{item.codeValue,jdbcType=VARCHAR},
#{item.status,jdbcType=VARCHAR}, #{item.createTime,jdbcType=TIMESTAMP}, #{item.createBy,jdbcType=VARCHAR},
#{item.updateTime,jdbcType=TIMESTAMP}, #{item.updateBy,jdbcType=VARCHAR},
#{item.deleteFlag,jdbcType=TINYINT},
#{item.deleteTime,jdbcType=TIMESTAMP}, #{item.deleteBy,jdbcType=VARCHAR})
</foreach>
</insert>
insertOutDetail:
<insert id="insertOutDetail" parameterType="jp.co.nss.hrm.backend.model.ReagentOutDetail">
insert into reagent_out_detail (bill_code, out_detail_id, reagent_id,
reagent_name, reagent_specification, batch_no,
factory, registration_no, supplier_short_name,
reagent_unit, expire_date, quantity,
price, total, create_time,
create_by, application_user, update_time,
update_by, delete_flag, delete_time,
delete_by)
values
<foreach collection="outDetailList" item="item" index="index" separator=",">
(#{item.billCode,jdbcType=VARCHAR}, #{item.outDetailId,jdbcType=VARCHAR},
#{item.reagentId,jdbcType=VARCHAR},#{item.reagentName,jdbcType=VARCHAR},
#{item.reagentSpecification,jdbcType=VARCHAR}, #{item.batchNo,jdbcType=VARCHAR},
#{item.factory,jdbcType=VARCHAR}, #{item.registrationNo,jdbcType=VARCHAR},
#{item.supplierShortName,jdbcType=VARCHAR},#{item.reagentUnit,jdbcType=VARCHAR},
#{item.expireDate,jdbcType=TIMESTAMP},#{item.quantity,jdbcType=BIGINT},
#{item.price,jdbcType=DOUBLE}, #{item.total,jdbcType=DOUBLE},
#{item.createTime,jdbcType=TIMESTAMP},#{item.createBy,jdbcType=VARCHAR},
#{item.applicationUser,jdbcType=VARCHAR},#{item.updateTime,jdbcType=TIMESTAMP},
#{item.updateBy,jdbcType=VARCHAR},#{item.deleteFlag,jdbcType=TINYINT},
#{item.deleteTime,jdbcType=TIMESTAMP},#{item.deleteBy,jdbcType=VARCHAR})
</foreach>
</insert>