中心库出库记录的二三层
老样子,根据时间生成具体编号
List<ReagentOutDetail> outDetailList = new ArrayList<>();
for(int i=0;i<findcenter.size();i++) {
//生成出库单详情号
Long time2 = new Date().getTime();
Random ne2 = new Random();//实例化一个random的对象ne
int x2 = ne2.nextInt(999 - 100 + 1) + 100;//为变量赋随机值100-999
String random_order2 = String.valueOf(x2);
String outDetailId = time2 + random_order2;
ReagentOutDetail outDetail = new ReagentOutDetail();
outDetail.setId(outBill.getId());
outDetail.setReagentName((String) findcenter.get(i).get(0).get("reagent_name"));
outDetail.setBillCode(billCode);
outDetail.setOutDetailId(outDetailId);
outDetail.setReagentId((String) findcenter.get(i).get(0).get("reagent_id"));
outDetail.setReagentSpecification((String) findcenter.get(i).get(0).get("specification"));
outDetail.setFactory((String) findcenter.get(i).get(0).get("manufacturer_name"));
outDetail.setRegistrationNo((String) findcenter.get(i).get(0).get("registration_no"));
outDetail.setSupplierShortName((String) findcenter.get(i).get(0).get("supplier_short_name"));
outDetail.setReagentUnit((String) findcenter.get(i).get(0).get("reagent_unit"));
outDetail.setPrice((Double) findcenter.get(i).get(0).get("reagent_price"));
outDetail.setQuantity(reagentCollectDetails.get(i).get("reagent_number"));
Double total = (Double) findcenter.get(i).get(0).get("reagent_price")*reagentCollectDetails.get(i).get("reagent_number");
outDetail.setTotal(total);
outDetail.setCreateTime(timeNow);
outDetail.setCreateBy(creater);
outDetail.setApplicationUser(recevier);
outDetail.setUpdateTime(timeNow);
outDetail.setUpdateBy(creater);
outDetailList.add(outDetail);
//third
for(int j=0;j<findcenter.get(i).size();j++){
ReagentOutDetailItem item = new ReagentOutDetailItem();
item.setBillCode(billCode);
item.setOutDetailId(outDetailId);
item.setCreateTime(timeNow);
item.setCreateBy(creater);
item.setUpdateBy(creater);
item.setUpdateTime(timeNow);
item.setReagentCode((String) findcenter.get(i).get(j).get("reagent_code"));
item.setQrCode((String) findcenter.get(i).get(j).get("qr_code"));
item.setCodeValue((String) findcenter.get(i).get(j).get("code_value"));
reagentOutDetailItemsList.add(item);
}
}
outItemDao.insertItem(reagentOutDetailItemsList);
outDetailDao.insertOutDetail(outDetailList);
同样是根据时间生成一个具体编号,填写二层,然后找到将要移动的耗材,使用List填写第三层,然后使用outItemDao.insertItem(reagentOutDetailItemsList)和outDetailDao.insertOutDetail(outDetailList)分别增加。
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>