|
@@ -77,8 +77,13 @@ public class CashierProcessService {
|
|
|
}
|
|
|
List<ZyActpatient> list = dao.selectPatientInfoPage(param);
|
|
|
CommonUtil.BeanTrim(list);
|
|
|
- result.put("data", list);
|
|
|
- result.put("total", dao.selectPatientInfoCount(param));
|
|
|
+ if(CollUtil.isNotEmpty(list)){
|
|
|
+ List<ZyActpatient> collect = list.stream().skip((param.getCurrentPage() - 1) * param.getPageSize()).limit(param.getPageSize()).collect(Collectors.toList());
|
|
|
+ result.put("data", collect);
|
|
|
+ }else {
|
|
|
+ result.put("data", list);
|
|
|
+ }
|
|
|
+ result.put("total", list.size());
|
|
|
return result;
|
|
|
}
|
|
|
|
|
@@ -298,6 +303,7 @@ public class CashierProcessService {
|
|
|
public List<ZyReceipt> queryZyReceipt(PatientParam param) {
|
|
|
List<ZyReceipt> zyReceipt = dao.selectZyReceipt(param);
|
|
|
if (CollUtil.isNotEmpty(zyReceipt)) {
|
|
|
+ CommonUtil.BeanTrim(zyReceipt);
|
|
|
ZyReceipt temp = new ZyReceipt();
|
|
|
temp.setTotalCharge(zyReceipt.stream().map(item -> Convert.toBigDecimal(item.getTotalCharge(), BigDecimal.ZERO)).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
zyReceipt.add(temp);
|
|
@@ -373,12 +379,18 @@ public class CashierProcessService {
|
|
|
checkLedgerSn(param);
|
|
|
String fpVersion = Convert.toStr(queryFpVersion().getData());
|
|
|
String fpVersionStr = NumberEnum.ZERO.getCode().equals(fpVersion) ? "打印" : "上传";
|
|
|
+ if(Convert.toInt(NumberEnum.FOUR.getCode()).equals(Convert.toInt(param.getReceiptSn(),1))){
|
|
|
+ param.setResponceUnit("04");
|
|
|
+ }else {
|
|
|
+ param.setResponceUnit("01");
|
|
|
+ }
|
|
|
ZyReceipt zyReceipt = dao.selectPrintZyFpData(param);
|
|
|
AssertUtil.isnotBlank(zyReceipt, "没可打印发票信息");
|
|
|
+ BeanUtil.trimStrFields(zyReceipt);
|
|
|
List<ZyLedgerFile> list = dao.selectZyLedgerFile(param);
|
|
|
AssertUtil.isnotBlank(list, "没有账页信息");
|
|
|
ZyActpatient zyActpatient = dao.selectApatienInfo(param.getInpatientNo());
|
|
|
- zyReceipt.setName(zyActpatient.getName());
|
|
|
+ zyReceipt.setName(Convert.toInt(NumberEnum.FOUR.getCode()).equals(Convert.toInt(param.getReceiptSn(),1)) ? zyActpatient.getName()+"(婴儿)":zyActpatient.getName());
|
|
|
zyReceipt.setStartDate(DateUtil.format(zyReceipt.getDate1(), "yyyy-MM-dd"));
|
|
|
zyReceipt.setEndDate(DateUtil.format(zyReceipt.getDate2(), "yyyy-MM-dd"));
|
|
|
long diff = DateUtil.betweenDay(DateUtil.parseDate(zyReceipt.getStartDate()), DateUtil.parseDate(zyReceipt.getEndDate()), true);
|
|
@@ -393,23 +405,31 @@ public class CashierProcessService {
|
|
|
throw new BizException(ExceptionEnum.LOGICAL_ERROR, "未出纳处理,不能"+fpVersionStr+"发票");
|
|
|
}
|
|
|
}
|
|
|
- zyReceipt.setYbTcZfJe(Convert.toBigDecimal(zyLedgerFile.getFundPaySumamt(), BigDecimal.ZERO).setScale(2, BigDecimal.ROUND_HALF_UP));
|
|
|
- zyReceipt.setGrZhZfJe(Convert.toBigDecimal(zyLedgerFile.getAcctPay(), BigDecimal.ZERO).setScale(2, BigDecimal.ROUND_HALF_UP));
|
|
|
- zyReceipt.setGrZfJe(zyReceipt.getTotalCharge().subtract(zyReceipt.getYbTcZfJe()).subtract(zyReceipt.getGrZhZfJe()));
|
|
|
- zyReceipt.setGrZfHjJe(zyReceipt.getGrZfJe());
|
|
|
- zyReceipt.setGrZfHjJeChinese(Convert.digitToChinese(zyReceipt.getGrZfHjJe()));
|
|
|
- zyReceipt.setResponceTypeName(zyLedgerFile.getResponceTypeName());
|
|
|
- zyReceipt.setYsHjJe(zyLedgerFile.getDeposit());
|
|
|
- if (Convert.toBigDecimal(zyLedgerFile.getSettle(), BigDecimal.ZERO).compareTo(BigDecimal.ZERO) >= 0) {
|
|
|
- zyReceipt.setTkHjJe(zyLedgerFile.getSettle());
|
|
|
- zyReceipt.setBsHjJe(BigDecimal.ZERO);
|
|
|
- } else {
|
|
|
- zyReceipt.setBsHjJe(zyLedgerFile.getSettle().abs());
|
|
|
- zyReceipt.setTkHjJe(BigDecimal.ZERO);
|
|
|
+ if(Convert.toInt(NumberEnum.FOUR.getCode()).equals(Convert.toInt(param.getReceiptSn(),1))){
|
|
|
+ zyReceipt.setGrZfHjJe(zyReceipt.getGrZfJe());
|
|
|
+ zyReceipt.setGrZfHjJeChinese(Convert.digitToChinese(zyReceipt.getGrZfHjJe()));
|
|
|
+ }else {
|
|
|
+ zyReceipt.setYbTcZfJe(Convert.toBigDecimal(zyLedgerFile.getFundPaySumamt(), BigDecimal.ZERO).setScale(2, BigDecimal.ROUND_HALF_UP));
|
|
|
+ zyReceipt.setGrZhZfJe(Convert.toBigDecimal(zyLedgerFile.getAcctPay(), BigDecimal.ZERO).setScale(2, BigDecimal.ROUND_HALF_UP));
|
|
|
+ zyReceipt.setGrZfJe(zyReceipt.getTotalCharge().subtract(zyReceipt.getYbTcZfJe()).subtract(zyReceipt.getGrZhZfJe()));
|
|
|
+ zyReceipt.setGrZfHjJe(zyReceipt.getGrZfJe());
|
|
|
+ zyReceipt.setGrZfHjJeChinese(Convert.digitToChinese(zyReceipt.getGrZfHjJe()));
|
|
|
+ zyReceipt.setResponceTypeName(zyLedgerFile.getResponceTypeName());
|
|
|
+ zyReceipt.setYsHjJe(zyLedgerFile.getDeposit());
|
|
|
+ if (Convert.toBigDecimal(zyLedgerFile.getSettle(), BigDecimal.ZERO).compareTo(BigDecimal.ZERO) >= 0) {
|
|
|
+ zyReceipt.setTkHjJe(zyLedgerFile.getSettle());
|
|
|
+ zyReceipt.setBsHjJe(BigDecimal.ZERO);
|
|
|
+ } else {
|
|
|
+ zyReceipt.setBsHjJe(zyLedgerFile.getSettle().abs());
|
|
|
+ zyReceipt.setTkHjJe(BigDecimal.ZERO);
|
|
|
+ }
|
|
|
+ zyReceipt.setYsHjJe(Convert.toBigDecimal(zyLedgerFile.getDeposit(), BigDecimal.ZERO));
|
|
|
}
|
|
|
- zyReceipt.setYsHjJe(Convert.toBigDecimal(zyLedgerFile.getDeposit(), BigDecimal.ZERO));
|
|
|
- BeanUtil.trimStrFields(zyReceipt);
|
|
|
if(NumberEnum.ONE.getCode().equals(fpVersion)){
|
|
|
+ //小孩 加 $1
|
|
|
+ if(Convert.toInt(NumberEnum.FOUR.getCode()).equals(param.getReceiptSn())){
|
|
|
+ param.setInpatientNo(param.getInpatientNo()+"$1");
|
|
|
+ }
|
|
|
ResultVo resultVo = uploadDzInvoice(param);
|
|
|
String typeFlagName = param.getTypeFlag() == 3 ? "上传电子发票" : "作废电子发票";
|
|
|
if(resultVo == null){
|
|
@@ -489,6 +509,18 @@ public class CashierProcessService {
|
|
|
}
|
|
|
|
|
|
public ResultVo<Map<String, Object>> downDzInvoice(PatientParam param) {
|
|
|
+ if(Convert.toInt(NumberEnum.FOUR.getCode()).equals(Convert.toInt(param.getReceiptSn(),1))){
|
|
|
+ param.setResponceUnit("04");
|
|
|
+ }else {
|
|
|
+ param.setResponceUnit("01");
|
|
|
+ }
|
|
|
+ ZyReceipt zyReceipt = dao.selectPrintZyFpData(param);
|
|
|
+ AssertUtil.isnotBlank(zyReceipt, "没有发票信息");
|
|
|
+ ZyActpatient zyActpatient = dao.selectApatienInfo(param.getInpatientNo());
|
|
|
+ zyReceipt.setName(Convert.toInt(NumberEnum.FOUR.getCode()).equals(Convert.toInt(param.getReceiptSn(),1)) ? zyActpatient.getName()+"(婴儿)":zyActpatient.getName());
|
|
|
+ if(Convert.toInt(NumberEnum.FOUR.getCode()).equals(param.getReceiptSn())){
|
|
|
+ param.setInpatientNo(param.getInpatientNo()+"$1");
|
|
|
+ }
|
|
|
Map<String, Object> paramMap = dealInvoiceParam(param);
|
|
|
ResultVo response = template.postForObject(thmzApiUrl +"/queryInvoiceFile", paramMap, ResultVo.class);
|
|
|
if(response == null ){
|
|
@@ -513,7 +545,10 @@ public class CashierProcessService {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- return ResultVoUtil.success(ExceptionEnum.SUCCESS, (Map)response.getData());
|
|
|
+ Map<String, Object> res = new HashMap<>();
|
|
|
+ res.put("zyReceipt", zyReceipt);
|
|
|
+ res.put("fpInfo", response.getData());
|
|
|
+ return ResultVoUtil.success(ExceptionEnum.SUCCESS,res);
|
|
|
}
|
|
|
|
|
|
public ResultVo<String> queryFpVersion() {
|