a453a57950f078d43c2594ec7696777a1d47dff7.svn-base
5.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
package com.phxl.modules.goods.service.billback;
import java.util.List;
import com.phxl.modules.goods.entity.billback.BillBackWithDetail;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.phxl.common.utils.BaseException;
import com.phxl.common.utils.IdUtil;
import com.phxl.modules.goods.dao.billback.BillBackDao;
import com.phxl.modules.goods.dao.billback.BillBackDetailDao;
import com.phxl.modules.goods.entity.billback.BillBack;
import com.phxl.modules.goods.entity.billback.BillBackDetail;
@Service
public class BillBackService{
@Autowired
private BillBackDao billBackDao;
@Autowired
private BillBackDetailDao billBackDetailDao;
/**
* 日志对象
*/
protected Logger logger = LoggerFactory.getLogger(getClass());
public boolean batchSave(List<BillBackWithDetail> billBacks) {
boolean result = true;
try {
checkBillBack(billBacks);
} catch (Exception e) {
throw new BaseException(e.getMessage());
}
for (BillBackWithDetail backs : billBacks) {
BillBack billBack = backs.getTRMedRPI();
List<BillBackDetail> details = billBack.getTRMedRPIdetail();
billBack.setId(IdUtil.uuid());
if(details != null && details.size() != 0){
for (BillBackDetail billBackDetail : details) {
billBackDetail.setBillNo(billBack.getBillNo());
billBackDetail.setId(IdUtil.uuid());
}
billBackDao.insert(billBack);
billBackDetailDao.batchInsert(details);
}
}
return result;
}
private void checkBillBack(List<BillBackWithDetail> billBacks) {
if(billBacks == null || billBacks.size() == 0){
logger.error("无相应医院退货单据信息");
throw new BaseException("无相应医院退货单据信息");
}
for (BillBackWithDetail backs : billBacks) {
String billNo = backs.getTRMedRPI().getBillNo();
if (StringUtils.isEmpty(billNo)) {
logger.error("医院退货单单据编号不能为空");
throw new BaseException("医院退货单单据编号不能为空");
}
String supplierCode = backs.getTRMedRPI().getSupplierCode();
String supplierbName = backs.getTRMedRPI().getSupplierbName();
if (StringUtils.isEmpty(supplierCode) || StringUtils.isEmpty(supplierbName)) {
logger.error("医院退货单单据编号:"+billNo+"供应商编码以及供应商名称不能为空");
throw new BaseException("医院退货单单据编号:"+billNo+"供应商编码以及供应商名称不能为空");
}
String medCode = backs.getTRMedRPI().getMedCode();
if (StringUtils.isEmpty(medCode)) {
logger.error("医院退货单单据编号:"+billNo+"医疗机构代码不能为空");
throw new BaseException("医院退货单单据编号:"+billNo+"医疗机构代码不能为空");
}
List<BillBackDetail> details = backs.getTRMedRPI().getTRMedRPIdetail();
if(details == null || details.size() == 0){
logger.error("医院退货单单据编号:"+billNo+"无相应退货单明细信息");
throw new BaseException("医院退货单单据编号:"+billNo+"无相应退货单明细信息");
}
for (BillBackDetail billBackDetail : details) {
String detailBillNo = billBackDetail.getBillNo();
if (StringUtils.isEmpty(detailBillNo)) {
logger.error("医院退货单单据编号:"+billNo+"退货单据明细单据编号不能为空");
throw new BaseException("医院退货单单据编号:"+billNo+"退货单据明细单据编号不能为空");
}
int rowNo = billBackDetail.getRowNo();
if (rowNo == 0) {
logger.error("医院退货单单据编号:"+billNo+"退货单据明细行号不能为空");
throw new BaseException("医院退货单单据编号:"+billNo+"退货单据明细行号不能为空");
}
String detailMedMVBillNo = billBackDetail.getMedMVBillNo();
if (StringUtils.isEmpty(detailMedMVBillNo)) {
logger.error("医院退货单单据编号:"+billNo+",行号:"+rowNo+"退货单据明细入库单据编号不能为空");
throw new BaseException("医院退货单单据编号:"+billNo+",行号:"+rowNo+"退货单据明细入库单据编号不能为空");
}
Integer detailMedMVRowNo = billBackDetail.getMedMVRowNo();
if (detailMedMVRowNo == null) {
logger.error("医院退货单单据编号:"+billNo+",行号:"+rowNo+"退货单据明细入库单据明细号不能为空");
throw new BaseException("医院退货单单据编号:"+billNo+",行号:"+rowNo+"退货单据明细入库单据明细不能为空");
}
String goodsCode = billBackDetail.getGoodsCode();
String goodsName = billBackDetail.getGoodsName();
if (StringUtils.isEmpty(goodsCode) || StringUtils.isEmpty(goodsName)) {
logger.error("医院退货单单据编号:"+billNo+",行号:"+rowNo+"退货单据明细商品编码以及商品名称不能为空");
throw new BaseException("医院退货单单据编号:"+billNo+",行号:"+rowNo+"退货单据明细商品编码以及商品名称不能为空");
}
String goodsSpec = billBackDetail.getGoodsSpec();
if (StringUtils.isEmpty(goodsSpec)) {
logger.error("医院退货单单据编号:"+billNo+",行号:"+rowNo+"退货单据明细商品规格不能为空");
throw new BaseException("医院退货单单据编号:"+billNo+",行号:"+rowNo+"退货单据明细商品规格不能为空");
}
}
}
}
}