package com.ltkj.web.controller.system;
|
|
import java.math.BigDecimal;
|
import java.util.*;
|
import java.util.stream.Collectors;
|
import javax.annotation.Resource;
|
import javax.servlet.http.HttpServletResponse;
|
|
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.util.IdUtil;
|
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.extra.pinyin.PinyinUtil;
|
import cn.hutool.json.JSONArray;
|
import cn.hutool.json.JSONObject;
|
import cn.hutool.json.JSONUtil;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.ltkj.common.annotation.RepeatSubmit;
|
import com.ltkj.common.core.domain.entity.SysDept;
|
import com.ltkj.common.core.domain.entity.SysUser;
|
import com.ltkj.common.utils.SecurityUtils;
|
import com.ltkj.framework.config.MatchUtils;
|
import com.ltkj.hosp.domain.*;
|
import com.ltkj.hosp.mapper.TjSamplingMapper;
|
import com.ltkj.hosp.service.*;
|
import com.ltkj.hosp.vodomain.TjCollectFeesVo;
|
import com.ltkj.hosp.vodomain.TjRefundProInfoVo;
|
import com.ltkj.hosp.vodomain.TjRefundVo;
|
import com.ltkj.system.service.ISysConfigService;
|
import com.ltkj.system.service.ISysDeptService;
|
import com.ltkj.system.service.ISysUserService;
|
import com.ltkj.web.wxUtils.HttpClientUtils;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiParam;
|
import jodd.util.StringUtil;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.security.access.prepost.PreAuthorize;
|
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
import org.springframework.web.bind.annotation.*;
|
import com.ltkj.common.annotation.Log;
|
import com.ltkj.common.core.controller.BaseController;
|
import com.ltkj.common.core.domain.AjaxResult;
|
import com.ltkj.common.enums.BusinessType;
|
import com.ltkj.common.utils.poi.ExcelUtil;
|
import com.ltkj.common.core.page.TableDataInfo;
|
|
/**
|
* 体检流水Controller
|
*
|
* @author ltkj
|
* @date 2022-11-25
|
*/
|
@RestController
|
@RequestMapping("/hosp/water")
|
@Api(tags = "体检流水接口")
|
public class TjFlowingWaterController extends BaseController {
|
@Resource
|
private ITjFlowingWaterService tjFlowingWaterService;
|
@Resource
|
private ITjOrderService orderService;
|
@Resource
|
private ITjOrderDetailService detailService;
|
@Resource
|
private ITjChargingStandardService chargingStandardService;
|
@Resource
|
private ISysUserService userService;
|
@Resource
|
private ITjCustomerService customerService;
|
@Resource
|
private ITbTransitionService transitionService;
|
@Resource
|
private ITjProjectService projectService;
|
@Resource
|
private IDictCompService compService;
|
@Resource
|
private TjProConsumablesService proConsumablesService;
|
@Resource
|
private ITjConsumablesService consumablesService;
|
@Resource
|
private ITjOrderRemarkService remarkService;
|
@Resource
|
private TjAsyncService asyncService;
|
@Resource
|
private IJimuOnlineReportService reportService;
|
@Resource
|
private ITjPackageProjectService tjPackageProjectService;
|
@Autowired
|
private ISysConfigService configService;
|
@Autowired
|
private ISysDeptService sysDeptService;
|
@Autowired
|
private TjFlowingWaterHisService tjFlowingWaterHisService;
|
@Autowired
|
private ITjSamplingService tjSamplingService;
|
@Autowired
|
private TjOrderController tjOrderController;
|
@Autowired
|
private ITbTransitionService tbTransitionService;
|
@Autowired
|
private TjSamplingMapper tjSamplingMapper;
|
@Autowired
|
private TjProBlService blService;
|
|
/**
|
* 查询该体检号对应的订单流水列表
|
*/
|
@GetMapping("/flowingWaterByTjNumber/{TjNumber}")
|
@ApiOperation(value = "查询该体检号对应的订单流水列表")
|
public AjaxResult FlowingWaterByTjNumber(@ApiParam(value = "体检号") @PathVariable("TjNumber") String TjNumber) {
|
Map<String, Object> map = new HashMap<>();
|
LambdaQueryWrapper<TjOrder> wq1 = new LambdaQueryWrapper<>();
|
wq1.eq(TjOrder::getTjNumber, TjNumber);
|
TjOrder one = orderService.getOne(wq1);
|
if (one != null) {
|
LambdaQueryWrapper<TjFlowingWater> wq2 = new LambdaQueryWrapper<>();
|
wq2.eq(TjFlowingWater::getOrderId, one.getOrderId());
|
List<TjFlowingWater> list = tjFlowingWaterService.list(wq2);
|
map.put("water", list);
|
}
|
LambdaQueryWrapper<TjChargingStandard> wq3 = new LambdaQueryWrapper<>();
|
wq3.eq(TjChargingStandard::getTjNum, TjNumber);
|
List<TjChargingStandard> list = chargingStandardService.list(wq3);
|
if (null != list && !list.isEmpty()) {
|
for (TjChargingStandard standard : list) {
|
TjProject project = projectService.getById(standard.getProId());
|
if (null != project && null != project.getProCheckType()) {
|
standard.setProCheckType(project.getProCheckType());
|
}
|
}
|
}
|
map.put("charging", list);
|
return AjaxResult.success(map);
|
}
|
|
/**
|
* 查询体检流水列表
|
*/
|
// @PreAuthorize("@ss.hasPermi('hosp:water:list')")
|
@GetMapping("/list")
|
@ApiOperation(value = "查询体检流水列表")
|
public TableDataInfo list(TjFlowingWater tjFlowingWater) {
|
startPage();
|
List<TjFlowingWater> list = tjFlowingWaterService.selectTjFlowingWaterList(tjFlowingWater);
|
if (null != list) {
|
for (TjFlowingWater flowingWater : list) {
|
if (null != userService.getById(flowingWater.getTollCollectorId())) {
|
flowingWater.setTollCollectorName(userService.getById(flowingWater.getTollCollectorId()).getNickName());
|
}
|
TjOrder order = orderService.getById(flowingWater.getOrderId());
|
if (null != order) {
|
if (null != customerService.getById(order.getUserId())) {
|
flowingWater.setCustomer(customerService.getById(order.getUserId()));
|
}
|
}
|
flowingWater.setDiscount(flowingWater.getDiscount() + "%");
|
}
|
}
|
return getDataTable(list);
|
}
|
|
|
/**
|
* 查询体检退费列表
|
*/
|
@GetMapping("/getRefundList")
|
@ApiOperation(value = "查询体检退费列表")
|
public AjaxResult getRefundList() {
|
LambdaQueryWrapper<TjFlowingWater> wq = new LambdaQueryWrapper<>();
|
wq.eq(TjFlowingWater::getPayStasus, 2);
|
List<TjFlowingWater> list = tjFlowingWaterService.list(wq);
|
if (null != list) {
|
Map<String, Object> map = new HashMap<>();
|
BigDecimal bigDecimal = new BigDecimal("0.00");
|
for (TjFlowingWater flowingWater : list) {
|
if (null != userService.getById(flowingWater.getTollCollectorId())) {
|
flowingWater.setTollCollectorName(userService.getById(flowingWater.getTollCollectorId()).getNickName());
|
}
|
TjOrder order = orderService.getById(flowingWater.getOrderId());
|
if (null != order) {
|
if (null != customerService.getById(order.getUserId())) {
|
flowingWater.setCustomer(customerService.getById(order.getUserId()));
|
}
|
}
|
flowingWater.setDiscount(flowingWater.getDiscount() + "%");
|
bigDecimal = bigDecimal.add(flowingWater.getPaidIn());
|
}
|
map.put("list", list);
|
map.put("amountTo", bigDecimal);
|
return AjaxResult.success(map);
|
}
|
return AjaxResult.success(list);
|
}
|
|
/**
|
* 导出体检流水列表
|
*/
|
//@PreAuthorize("@ss.hasPermi('hosp:water:export')")
|
@Log(title = "体检流水", businessType = BusinessType.EXPORT)
|
@PostMapping("/export")
|
public void export(HttpServletResponse response, TjFlowingWater tjFlowingWater) {
|
List<TjFlowingWater> list = tjFlowingWaterService.selectTjFlowingWaterList(tjFlowingWater);
|
ExcelUtil<TjFlowingWater> util = new ExcelUtil<TjFlowingWater>(TjFlowingWater.class);
|
util.exportExcel(response, list, "体检流水数据");
|
}
|
|
/**
|
* 获取体检流水详细信息
|
*/
|
//@PreAuthorize("@ss.hasPermi('hosp:water:query')")
|
@GetMapping(value = "/{id}")
|
@ApiOperation(value = "获取体检流水列表")
|
public AjaxResult getInfo(@PathVariable("id") String id) {
|
TjFlowingWater flowingWater = tjFlowingWaterService.selectTjFlowingWaterById(id);
|
if (null != flowingWater) {
|
if (null != userService.getById(flowingWater.getTollCollectorId())) {
|
flowingWater.setTollCollectorName(userService.getById(flowingWater.getTollCollectorId()).getNickName());
|
}
|
return success(flowingWater);
|
}
|
return AjaxResult.error("暂无信息");
|
}
|
|
/**
|
* 体检点击收费按钮接口
|
*/
|
@PutMapping
|
@ApiOperation(value = "体检点击收费按钮接口")
|
@Transactional
|
@RepeatSubmit
|
public AjaxResult edit(@RequestBody TjFlowingWater tjFlowingWater) {
|
Long userId = Long.valueOf(SecurityUtils.getLoginUser().getUserId());
|
SysUser sysUser = userService.getById(userId);
|
|
TjFlowingWater flowingWater = tjFlowingWaterService.getById(tjFlowingWater.getTjSerialNumber());
|
// tjFlowingWater.setTollCollectorId(String.valueOf(SecurityUtils.getLoginUser().getUserId()));
|
// tjFlowingWater.setPayStasus(1L);
|
TjOrder order = orderService.getById(tjFlowingWater.getOrderId());
|
|
if (order.getPrintLastTime() != null) {
|
return AjaxResult.error("该人员报告已打印,不可补录项目!");
|
}
|
|
TjCustomer customer = customerService.getById(order.getUserId());
|
if (null != tjFlowingWater.getTjProIds() && tjFlowingWater.getTjProIds().length > 0) {
|
tjFlowingWater.setWaterId(PinyinUtil.getFirstLetter(customer.getCusName(), "").toUpperCase() + SecurityUtils.getUsername() + DateUtil.format(new Date(), "yyMMddHHmmssSSS"));
|
tjFlowingWater.setIsAddition("Y");
|
if (tjFlowingWater.getPayStasus().toString().equals("0")) {
|
tjFlowingWater.setPayStasus(0L);
|
} else {
|
tjFlowingWater.setPayStasus(1L);
|
}
|
if (tjFlowingWaterService.save(tjFlowingWater)) {
|
|
Date dates = new Date();
|
String jxbz = DateUtil.format(dates, "yyyyMMddHHmmss") + order.getOrderId();
|
//异步单项收费明细
|
Boolean b = asyncService.iundividualCharges(tjFlowingWater, order, customer, sysUser, jxbz);
|
if (!b) {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
return AjaxResult.error();
|
}
|
|
if (tjFlowingWater.getPayStasus().equals(1L)) {
|
detailService.updateTjOrderDetailsFlowingWaterIdByJxbz(order.getOrderId().toString(), jxbz, tjFlowingWater.getTjSerialNumber().toString());
|
remarkService.updateTjOrderRemarkSfbzByJxbz(order.getOrderId().toString(), jxbz, tjFlowingWater.getTjSerialNumber().toString());
|
} else {
|
String s = configService.selectConfigByKey("is_request_common_his_api");
|
if (null != s && s.equals("Y")) {
|
String apiUrl = configService.selectConfigByKey("common_api_url");
|
String hospbm = configService.selectConfigByKey("common_api_service_hospbm");
|
HashMap<String, Object> map = new HashMap<>();
|
map.put("pationId", customer.getPationId());
|
map.put("cardId", customer.getHisJzkh());
|
map.put("tjNum", tjFlowingWater.getTjSerialNumber());
|
map.put("kaiDanKs", "7805");
|
// 收费标志 1待售费 2待退费
|
map.put("shouTuiStatus", "1");
|
|
JSONArray array = JSONUtil.createArray();
|
LambdaQueryWrapper<TbTransition> wrapper = new LambdaQueryWrapper<>();
|
wrapper.eq(TbTransition::getTjNum, order.getTjNumber());
|
wrapper.eq(TbTransition::getCusId, customer.getCusIdcard());
|
wrapper.eq(TbTransition::getCardId, customer.getCardId());
|
wrapper.eq(TbTransition::getJxbz, jxbz);
|
wrapper.isNotNull(TbTransition::getNowPrice);
|
wrapper.gt(TbTransition::getNowPrice, 0);
|
|
List<TbTransition> list = transitionService.list(wrapper);
|
|
List<TbTransition> transitions = transitionService.getBlTbTransitionListByCusId(customer.getCusIdcard(), order.getCardId(), jxbz);
|
|
|
|
if(null==transitions || transitions.isEmpty()){
|
remarkService.deleteTjOrderDetailByjxbz(jxbz);
|
detailService.deleteTjOrderDetailByjxbz(jxbz);
|
tjFlowingWaterService.deleteTjOrderDetailByjxbz(jxbz);
|
transitionService.deleteTjOrderDetailByjxbz(jxbz);
|
blService.remove(new LambdaQueryWrapper<TjProBl>().eq(TjProBl::getTjh,order.getTjNumber()).eq(TjProBl::getBldh, jxbz));
|
List<String> ids=new ArrayList<>();
|
ids.add(jxbz);
|
tjSamplingMapper.deleteByTjNumAndCusIdAndJxbz(order.getTjNumber(), order.getUserId(),ids);
|
return AjaxResult.error("补录失败,所选项目可能已存在 不可补录!");
|
}
|
|
for (TbTransition transition : list) {
|
LambdaQueryWrapper<TjProject> wrapper1 = new LambdaQueryWrapper<>();
|
wrapper1.eq(TjProject::getProId, transition.getProId());
|
TjProject project = projectService.getOne(wrapper1);
|
|
LambdaQueryWrapper<SysDept> wrapper2 = new LambdaQueryWrapper<>();
|
wrapper2.eq(SysDept::getDeptId, project.getDeptId());
|
SysDept dept = sysDeptService.getOne(wrapper2);
|
|
JSONObject obj = JSONUtil.createObj();
|
BigDecimal danjia = transition.getNowPrice();
|
Integer sl = project.getSl();
|
BigDecimal allPrice = danjia.multiply(new BigDecimal(sl));
|
obj.putOpt("danJia", danjia);
|
obj.putOpt("jieSuanJe", allPrice);
|
obj.putOpt("shuliang", sl);
|
obj.putOpt("zhiXingKs", dept.getDeptId());
|
obj.putOpt("zhiXingKsMc", dept.getDeptName());
|
obj.putOpt("shouFeiXmId", project.getHisXmbm());
|
obj.putOpt("shouFeiXmMc", project.getHisXmmc());
|
|
// obj.putOpt("zhiXingKs","7805");
|
// obj.putOpt("zhiXingKsMc","体检科");
|
// obj.putOpt("shouFeiXmId","4735346");
|
// obj.putOpt("shouFeiXmMc","体检费");
|
array.add(obj);
|
}
|
map.put("feiYongInfoList", array);
|
|
String post = HttpClientUtils.sendPost(apiUrl + "/api/his/" + hospbm + "/creatCostInfo", map);
|
JSONObject object = JSONUtil.parseObj(post);
|
if (object.getInt("code") == 200) {
|
JSONObject data = object.getJSONObject("data");
|
tjFlowingWater.setHisWaterId(data.getStr("feiYongId"));
|
JSONArray mxList = data.getJSONArray("mxList");
|
if (mxList != null && !mxList.isEmpty()) {
|
List<TjFlowingWaterHis> his = mxList.toList(TjFlowingWaterHis.class);
|
tjFlowingWaterHisService.saveBatch(his);
|
}
|
tjFlowingWaterService.updateById(tjFlowingWater);
|
} else {
|
return AjaxResult.error();
|
}
|
}
|
}
|
Map<String, Object> map = new HashMap<>();
|
map.put("waterId", tjFlowingWater.getWaterId());
|
map.put("mobanId", reportService.getMoBanIds());
|
return AjaxResult.success("收费成功", map);
|
}
|
}
|
|
if (flowingWater.getPayStasus() == 1) {
|
return AjaxResult.success("该订单已付款 无须再付");
|
}
|
if (tjFlowingWaterService.updateById(tjFlowingWater)) {
|
// LambdaQueryWrapper<TjOrderDetail> wq2 = new LambdaQueryWrapper<>();
|
// wq2.eq(TjOrderDetail::getOrderId, tjFlowingWater.getOrderId());
|
// wq2.isNull(TjOrderDetail::getFlowingWaterId);
|
List<TjConsumables> list2 = new ArrayList<>();
|
// for (TjOrderDetail tjOrderDetail : detailService.list(wq2)) {
|
// tjOrderDetail.setFlowingWaterId(String.valueOf(tjFlowingWater.getTjSerialNumber()));
|
// detailService.updateById(tjOrderDetail);
|
// }
|
detailService.updateTjOrderDetailsFlowingWaterIdByJxbzisnull(String.valueOf(order.getOrderId()), String.valueOf(tjFlowingWater.getTjSerialNumber()));
|
remarkService.updateTjOrderRemarkSfbzByJxbzisnull(order.getOrderId().toString(), tjFlowingWater.getTjSerialNumber().toString());
|
LambdaQueryWrapper<TjOrderDetail> wq3 = new LambdaQueryWrapper<>();
|
wq3.eq(TjOrderDetail::getOrderId, tjFlowingWater.getOrderId());
|
wq3.isNotNull(TjOrderDetail::getFlowingWaterId);
|
List<TjOrderDetail> detailList = detailService.list(wq3);
|
if (null != detailList && !detailList.isEmpty()) {
|
LambdaQueryWrapper<TbTransition> wqq = new LambdaQueryWrapper<>();
|
wqq.eq(TbTransition::getCusId, customer.getCusIdcard());
|
wqq.in(TbTransition::getProId, detailList.stream().map(TjOrderDetail::getProId).collect(Collectors.toList()));
|
List<TbTransition> tbTransitionList = transitionService.list(wqq);
|
if (null != tbTransitionList && !tbTransitionList.isEmpty()) {
|
// extracted(order, list2, tbTransitionList);
|
//异步添加收费明细
|
asyncService.collectFees(order, list2, tbTransitionList, sysUser, tjFlowingWater.getDiscount());
|
Map<String, Object> map = new HashMap<>();
|
map.put("waterId", tjFlowingWater.getWaterId());
|
map.put("mobanId", reportService.getMoBanIds());
|
return AjaxResult.success("收费成功", map);
|
}
|
}
|
return AjaxResult.success("该用户已收费不可重复收费");
|
}
|
return AjaxResult.error();
|
}
|
|
@PutMapping("supper")
|
@ApiOperation(value = "体检点击强制收费按钮接口")
|
@Transactional
|
@RepeatSubmit
|
public AjaxResult supperEdit(@RequestBody TjFlowingWater tjFlowingWater) {
|
Long userId = Long.valueOf(SecurityUtils.getLoginUser().getUserId());
|
SysUser sysUser = userService.getById(userId);
|
|
TjFlowingWater flowingWater = tjFlowingWaterService.getById(tjFlowingWater.getTjSerialNumber());
|
// tjFlowingWater.setTollCollectorId(String.valueOf(SecurityUtils.getLoginUser().getUserId()));
|
// tjFlowingWater.setPayStasus(1L);
|
TjOrder order = orderService.getById(tjFlowingWater.getOrderId());
|
|
if (order.getFinishTime() != null) {
|
return AjaxResult.error("该人员已签离,不可补录项目!");
|
}
|
|
TjCustomer customer = customerService.getById(order.getUserId());
|
if (null != tjFlowingWater.getTjProIds() && tjFlowingWater.getTjProIds().length > 0) {
|
tjFlowingWater.setWaterId(PinyinUtil.getFirstLetter(customer.getCusName(), "").toUpperCase() + SecurityUtils.getUsername() + DateUtil.format(new Date(), "yyMMddHHmmssSSS"));
|
tjFlowingWater.setIsAddition("Y");
|
if (tjFlowingWaterService.save(tjFlowingWater)) {
|
|
Date dates = new Date();
|
String jxbz = DateUtil.format(dates, "yyyyMMddHHmmss") + order.getOrderId();
|
//异步单项收费明细
|
Boolean b = asyncService.iundividualCharges(tjFlowingWater, order, customer, sysUser, jxbz);
|
if (!b) {
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
return AjaxResult.error();
|
}
|
Map<String, Object> map = new HashMap<>();
|
map.put("waterId", tjFlowingWater.getWaterId());
|
map.put("mobanId", reportService.getMoBanIds());
|
return AjaxResult.success("收费成功", map);
|
}
|
}
|
|
// if (flowingWater.getPayStasus() == 1) {
|
// return AjaxResult.success("该订单已付款 无须再付");
|
// }
|
String s = configService.selectConfigByKey("is_request_common_his_api");
|
// if (null != s && s.equals("Y") && order.getTjType().equals("2") && StrUtil.isNotBlank(tjFlowingWater.getHisWaterId())) {
|
tjFlowingWater.setPayStasus(1L);
|
tjFlowingWater.setCopeWith(null);
|
tjFlowingWater.setPaidIn(null);
|
// }
|
if (tjFlowingWaterService.updateById(tjFlowingWater)) {
|
// LambdaQueryWrapper<TjOrderDetail> wq2 = new LambdaQueryWrapper<>();
|
// wq2.eq(TjOrderDetail::getOrderId, tjFlowingWater.getOrderId());
|
// wq2.isNull(TjOrderDetail::getFlowingWaterId);
|
List<TjConsumables> list2 = new ArrayList<>();
|
// for (TjOrderDetail tjOrderDetail : detailService.list(wq2)) {
|
// tjOrderDetail.setFlowingWaterId(String.valueOf(tjFlowingWater.getTjSerialNumber()));
|
// detailService.updateById(tjOrderDetail);
|
// }
|
if (StrUtil.isBlank(flowingWater.getJxbz())) {
|
detailService.updateTjOrderDetailsFlowingWaterIdByJxbzisnull(String.valueOf(order.getOrderId()), String.valueOf(tjFlowingWater.getTjSerialNumber()));
|
remarkService.updateTjOrderRemarkSfbzByJxbzisnull(order.getOrderId().toString(), tjFlowingWater.getTjSerialNumber().toString());
|
} else {
|
detailService.updateTjOrderDetailsFlowingWaterIdByJxbz(String.valueOf(order.getOrderId()), flowingWater.getJxbz(), String.valueOf(tjFlowingWater.getTjSerialNumber()));
|
remarkService.updateTjOrderRemarkSfbzByJxbz(order.getOrderId().toString(), flowingWater.getJxbz(), tjFlowingWater.getTjSerialNumber().toString());
|
}
|
|
LambdaQueryWrapper<TjOrderDetail> wq3 = new LambdaQueryWrapper<>();
|
wq3.eq(TjOrderDetail::getOrderId, tjFlowingWater.getOrderId());
|
wq3.isNotNull(TjOrderDetail::getFlowingWaterId);
|
List<TjOrderDetail> detailList = detailService.list(wq3);
|
if (null != detailList && !detailList.isEmpty()) {
|
LambdaQueryWrapper<TbTransition> wqq = new LambdaQueryWrapper<>();
|
wqq.eq(TbTransition::getCusId, customer.getCusIdcard());
|
wqq.in(TbTransition::getProId, detailList.stream().map(TjOrderDetail::getProId).collect(Collectors.toList()));
|
List<TbTransition> tbTransitionList = transitionService.list(wqq);
|
if (null != tbTransitionList && !tbTransitionList.isEmpty()) {
|
// extracted(order, list2, tbTransitionList);
|
//异步添加收费明细
|
// asyncService.collectFees(order, list2, tbTransitionList, sysUser, tjFlowingWater.getDiscount());
|
Map<String, Object> map = new HashMap<>();
|
map.put("waterId", tjFlowingWater.getWaterId());
|
map.put("mobanId", reportService.getMoBanIds());
|
|
SysUser user = null;
|
if (flowingWater.getCreateId() != null)
|
user = userService.getById(flowingWater.getCreateId());
|
else user = userService.getById(1L);
|
TjOrder tjOrder = orderService.getById(flowingWater.getOrderId());
|
List<TjOrderDetail> detailList1 = detailService.getCaiYangDengJi(flowingWater.getOrderId());
|
tjOrderController.addCaiYangDengJi(detailList1, !detailList1.isEmpty(), tjOrder, user, null);
|
return AjaxResult.success("收费成功", map);
|
}
|
}
|
return AjaxResult.success("该用户已收费不可重复收费");
|
}
|
return AjaxResult.error();
|
}
|
|
@PutMapping("refund")
|
@ApiOperation(value = "体检点击强制退费按钮接口")
|
@Transactional
|
@RepeatSubmit
|
public AjaxResult refundEdit(@RequestBody String json) {
|
JSONObject parseObj = JSONUtil.parseObj(json);
|
String tjSerialNumber = parseObj.getStr("tjSerialNumber");
|
TjFlowingWater tjFlowingWater = tjFlowingWaterService.getById(tjSerialNumber);
|
Long orderId = tjFlowingWater.getOrderId();
|
LambdaQueryWrapper<TjOrderRemark> wrapper = new LambdaQueryWrapper<>();
|
wrapper.eq(TjOrderRemark::getSfbz, tjSerialNumber);
|
List<TjOrderRemark> list = remarkService.list(wrapper);
|
if (list.isEmpty()) {
|
return AjaxResult.error("该人员没有已收费项目");
|
}
|
String tjNumber = list.get(0).getTjNumber();
|
List<Long> proIds = list.stream().map(TjOrderRemark::getProId).collect(Collectors.toList());
|
LambdaQueryWrapper<TjSampling> wrapper1 = new LambdaQueryWrapper<>();
|
wrapper1.eq(TjSampling::getTjNum, tjNumber);
|
wrapper1.in(TjSampling::getProId, proIds);
|
wrapper1.eq(TjSampling::getIsSignFor, "0");
|
List<TjSampling> samplings = tjSamplingService.list(wrapper1);
|
if (!samplings.isEmpty())
|
return AjaxResult.error("该人员此单中存在已做的化验项目,不可退费");
|
|
if (StrUtil.isBlank(tjFlowingWater.getJxbz())) {
|
|
LambdaUpdateWrapper<TjOrderDetail> wrapper2 = new LambdaUpdateWrapper<>();
|
wrapper2.set(TjOrderDetail::getFlowingWaterId, null)
|
.set(TjOrderDetail::getUpdateTime, new Date())
|
.eq(TjOrderDetail::getOrderId, orderId)
|
.isNull(TjOrderDetail::getJxbz);
|
detailService.update(wrapper2);
|
|
LambdaUpdateWrapper<TjOrderRemark> wrapper3 = new LambdaUpdateWrapper<>();
|
// wrapper3
|
} else {
|
// detailService.updateTjOrderDetailsFlowingWaterIdByJxbz(String.valueOf(order.getOrderId()), flowingWater.getJxbz(), String.valueOf(tjFlowingWater.getTjSerialNumber()));
|
// remarkService.updateTjOrderRemarkSfbzByJxbz(order.getOrderId().toString(), flowingWater.getJxbz(), tjFlowingWater.getTjSerialNumber().toString());
|
}
|
return AjaxResult.success();
|
}
|
|
|
/**
|
* 删除体检流水
|
*/
|
// @PreAuthorize("@ss.hasPermi('hosp:water:remove')")
|
@Log(title = "体检流水", businessType = BusinessType.DELETE)
|
@DeleteMapping("/{ids}")
|
public AjaxResult remove(@PathVariable String[] ids) {
|
return toAjax(tjFlowingWaterService.deleteTjFlowingWaterByIds(ids));
|
}
|
|
|
/**
|
* 体检(退费)页面查询接口
|
*/
|
@GetMapping("/findTjRefundListByNameAndTjNumAndPhone")
|
@ApiOperation(value = "体检(退费)页面查询接口")
|
public AjaxResult findTjRefundListByNameAndTjNumAndPhone(@RequestParam(required = false) @ApiParam(value = "体检号") String tjNum,
|
@RequestParam(required = false) @ApiParam(value = "体检人姓名") String tjName,
|
@RequestParam(required = false) @ApiParam(value = "体检人手机号") String tjPhone) {
|
|
if (null != tjName || null != tjPhone) {
|
LambdaQueryWrapper<TjCustomer> wq0 = new LambdaQueryWrapper<>();
|
wq0.like(TjCustomer::getCusName, tjName)
|
.or()
|
.eq(TjCustomer::getCusPhone, tjPhone);
|
List<TjCustomer> customerList = customerService.list(wq0);
|
if (null != customerList && customerList.size() > 0) {
|
List<TjRefundVo> tjRefundVoList = new ArrayList<>();
|
for (TjCustomer customer : customerList) {
|
LambdaQueryWrapper<TjOrder> wq1 = new LambdaQueryWrapper<>();
|
wq1.eq(TjOrder::getUserId, customer.getCusId());
|
wq1.eq(TjOrder::getCheckStatus, 0);
|
wq1.orderByDesc(TjOrder::getCreateTime);
|
List<TjOrder> tjOrders = orderService.list(wq1);
|
TjOrder order = null;
|
if (null != tjOrders && tjOrders.size() > 0) {
|
order = tjOrders.get(0);
|
}
|
if (null == order) {
|
continue;
|
}
|
|
LambdaQueryWrapper<TjOrderDetail> wq2 = new LambdaQueryWrapper<>();
|
wq2.eq(TjOrderDetail::getOrderId, order.getOrderId());
|
wq2.isNotNull(TjOrderDetail::getFlowingWaterId);
|
List<TjOrderDetail> detailList = detailService.list(wq2);
|
if (null != detailList && detailList.size() > 0) {
|
TjRefundVo tjRefundVo = new TjRefundVo();
|
tjRefundVo.setTjName(customer.getCusName());
|
tjRefundVo.setTjPhone(customer.getCusPhone());
|
tjRefundVo.setTjNumber(order.getTjNumber());
|
tjRefundVo.setTjOrderId(String.valueOf(order.getOrderId()));
|
if (null != order.getDictCompName()) tjRefundVo.setTjComp(order.getDictCompName());
|
if (null != order.getTjType()) tjRefundVo.setTjType(order.getTjType());
|
tjRefundVo.setRegisterTime(order.getCreateTime());
|
tjRefundVo.setDrawerTime(order.getCreateTime());
|
tjRefundVo.setReportTime(order.getReportTime());
|
List<TjFlowingWater> list = tjFlowingWaterService.list(new LambdaQueryWrapper<TjFlowingWater>().eq(TjFlowingWater::getOrderId, order.getOrderId()));
|
if (null != list) {
|
BigDecimal bigDecimal = new BigDecimal("0.00");
|
for (TjFlowingWater flowingWater : list) {
|
// if (flowingWater.getIsAddition().equals("N")) {
|
// tjRefundVo.setTjFlowingWater(flowingWater);
|
// }
|
bigDecimal = bigDecimal.add(flowingWater.getPaidIn());
|
}
|
tjRefundVo.setTotalAmount(bigDecimal);
|
}
|
TjFlowingWater flowingWater = new TjFlowingWater();
|
flowingWater.setOrderId(order.getOrderId());
|
tjRefundVo.setTjFlowingWater(flowingWater);
|
tjRefundVoList.add(tjRefundVo);
|
}
|
}
|
return AjaxResult.success(tjRefundVoList);
|
}
|
return AjaxResult.error("该用户不存在");
|
}
|
|
if (null != tjNum) {
|
LambdaQueryWrapper<TjOrder> wq1 = new LambdaQueryWrapper<>();
|
wq1.likeLeft(TjOrder::getTjNumber, tjNum);
|
wq1.eq(TjOrder::getCheckStatus, 0);
|
List<TjOrder> orderList = orderService.list(wq1);
|
if (null != orderList && orderList.size() > 0) {
|
List<TjRefundVo> tjRefundVoList = new ArrayList<>();
|
for (TjOrder order : orderList) {
|
LambdaQueryWrapper<TjOrderDetail> wq2 = new LambdaQueryWrapper<>();
|
wq2.eq(TjOrderDetail::getOrderId, order.getOrderId());
|
wq2.isNotNull(TjOrderDetail::getFlowingWaterId);
|
List<TjOrderDetail> detailList = detailService.list(wq2);
|
if (null != detailList && detailList.size() > 0) {
|
TjCustomer customer = customerService.getById(order.getUserId());
|
if (null != customer) {
|
TjRefundVo tjRefundVo = new TjRefundVo();
|
tjRefundVo.setTjName(customer.getCusName());
|
tjRefundVo.setTjPhone(customer.getCusPhone());
|
tjRefundVo.setTjNumber(order.getTjNumber());
|
tjRefundVo.setTjOrderId(String.valueOf(order.getOrderId()));
|
if (null != order.getDictCompName()) tjRefundVo.setTjComp(order.getDictCompName());
|
if (null != order.getTjType()) tjRefundVo.setTjType(order.getTjType());
|
tjRefundVo.setRegisterTime(order.getCreateTime());
|
tjRefundVo.setDrawerTime(order.getCreateTime());
|
tjRefundVo.setReportTime(order.getReportTime());
|
List<TjFlowingWater> list = tjFlowingWaterService.list(new LambdaQueryWrapper<TjFlowingWater>().eq(TjFlowingWater::getOrderId, order.getOrderId()));
|
if (null != list) {
|
BigDecimal bigDecimal = new BigDecimal("0.00");
|
for (TjFlowingWater flowingWater : list) {
|
// if (flowingWater.getIsAddition().equals("N")) {
|
// tjRefundVo.setTjFlowingWater(flowingWater);
|
// }
|
bigDecimal = bigDecimal.add(flowingWater.getPaidIn());
|
}
|
tjRefundVo.setTotalAmount(bigDecimal);
|
}
|
TjFlowingWater flowingWater = new TjFlowingWater();
|
flowingWater.setOrderId(order.getOrderId());
|
tjRefundVo.setTjFlowingWater(flowingWater);
|
tjRefundVoList.add(tjRefundVo);
|
}
|
}
|
}
|
return AjaxResult.success(tjRefundVoList);
|
}
|
return AjaxResult.success("该用户不存在或已体检完成");
|
}
|
return AjaxResult.error("请输入要查询条件");
|
}
|
|
@GetMapping("/findTjRefundListByNameAndTjNumAndPhone2")
|
@ApiOperation(value = "体检(退费)页面查询接口")
|
public AjaxResult findTjRefundListByNameAndTjNumAndPhone2(@RequestParam(required = false) @ApiParam(value = "体检号") String tjNum,
|
@RequestParam(required = false) @ApiParam(value = "体检人姓名") String tjName,
|
@RequestParam(required = false) @ApiParam(value = "体检人手机号") String tjPhone) {
|
|
if (null != tjName || null != tjPhone) {
|
LambdaQueryWrapper<TjCustomer> wq0 = new LambdaQueryWrapper<>();
|
wq0.like(TjCustomer::getCusName, tjName)
|
.or()
|
.eq(TjCustomer::getCusPhone, tjPhone);
|
List<TjCustomer> customerList = customerService.list(wq0);
|
if (null != customerList && !customerList.isEmpty()) {
|
List<TjRefundVo> tjRefundVoList = new ArrayList<>();
|
for (TjCustomer customer : customerList) {
|
LambdaQueryWrapper<TjOrder> wq1 = new LambdaQueryWrapper<>();
|
wq1.eq(TjOrder::getUserId, customer.getCusId());
|
wq1.eq(TjOrder::getCheckStatus, 0);
|
wq1.orderByDesc(TjOrder::getCreateTime);
|
List<TjOrder> tjOrders = orderService.list(wq1);
|
TjOrder order = null;
|
if (null != tjOrders && !tjOrders.isEmpty()) {
|
order = tjOrders.get(0);
|
}
|
if (null == order) {
|
continue;
|
}
|
LambdaQueryWrapper<TjFlowingWater> wrapper = new LambdaQueryWrapper<>();
|
wrapper.eq(TjFlowingWater::getOrderId, order.getOrderId());
|
wrapper.eq(TjFlowingWater::getPayStasus, 1L);
|
List<TjFlowingWater> list = tjFlowingWaterService.list(wrapper);
|
for (TjFlowingWater water : list) {
|
TjRefundVo tjRefundVo = new TjRefundVo();
|
tjRefundVo.setTjName(customer.getCusName());
|
tjRefundVo.setTjPhone(customer.getCusPhone());
|
tjRefundVo.setTjNumber(order.getTjNumber());
|
tjRefundVo.setTjOrderId(String.valueOf(order.getOrderId()));
|
if (null != order.getDictCompName()) tjRefundVo.setTjComp(order.getDictCompName());
|
if (null != order.getTjType()) tjRefundVo.setTjType(order.getTjType());
|
tjRefundVo.setRegisterTime(order.getCreateTime());
|
tjRefundVo.setDrawerTime(order.getCreateTime());
|
tjRefundVo.setReportTime(order.getReportTime());
|
tjRefundVo.setTotalAmount(water.getPaidIn());
|
tjRefundVo.setTjFlowingWater(water);
|
tjRefundVoList.add(tjRefundVo);
|
}
|
}
|
return AjaxResult.success(tjRefundVoList);
|
}
|
return AjaxResult.error("该用户不存在");
|
}
|
|
if (null != tjNum) {
|
LambdaQueryWrapper<TjOrder> wq1 = new LambdaQueryWrapper<>();
|
wq1.likeLeft(TjOrder::getTjNumber, tjNum);
|
wq1.eq(TjOrder::getCheckStatus, 0);
|
List<TjOrder> orderList = orderService.list(wq1);
|
if (null != orderList && !orderList.isEmpty()) {
|
List<TjRefundVo> tjRefundVoList = new ArrayList<>();
|
for (TjOrder order : orderList) {
|
LambdaQueryWrapper<TjFlowingWater> wrapper = new LambdaQueryWrapper<>();
|
wrapper.eq(TjFlowingWater::getOrderId, order.getOrderId());
|
wrapper.eq(TjFlowingWater::getPayStasus, 1L);
|
List<TjFlowingWater> list = tjFlowingWaterService.list(wrapper);
|
TjCustomer customer = customerService.getById(order.getUserId());
|
for (TjFlowingWater water : list) {
|
TjRefundVo tjRefundVo = new TjRefundVo();
|
tjRefundVo.setTjName(customer.getCusName());
|
tjRefundVo.setTjPhone(customer.getCusPhone());
|
tjRefundVo.setTjNumber(order.getTjNumber());
|
tjRefundVo.setTjOrderId(String.valueOf(order.getOrderId()));
|
if (null != order.getDictCompName()) tjRefundVo.setTjComp(order.getDictCompName());
|
if (null != order.getTjType()) tjRefundVo.setTjType(order.getTjType());
|
tjRefundVo.setRegisterTime(order.getCreateTime());
|
tjRefundVo.setDrawerTime(order.getCreateTime());
|
tjRefundVo.setReportTime(order.getReportTime());
|
tjRefundVo.setTotalAmount(water.getPaidIn());
|
tjRefundVo.setTjFlowingWater(water);
|
tjRefundVoList.add(tjRefundVo);
|
}
|
}
|
return AjaxResult.success(tjRefundVoList);
|
}
|
return AjaxResult.success("该用户不存在或已体检完成");
|
}
|
return AjaxResult.error("请输入要查询条件");
|
}
|
|
|
/**
|
* 体检(收费)页面查询接口
|
*/
|
@GetMapping("/findTjCollectFeesByNameAndTjNumAndPhone")
|
@ApiOperation(value = "体检(收费)页面查询接口")
|
public AjaxResult findTjCollectFeesByNameAndTjNumAndPhone(@RequestParam(required = false) @ApiParam(value = "体检号") String tjNum,
|
@RequestParam(required = false) @ApiParam(value = "体检人姓名") String tjName,
|
@RequestParam(required = false) @ApiParam(value = "体检人手机号") String tjPhone) {
|
List<TjCollectFeesVo> tjCollectFeesVoList = new ArrayList<>();
|
if (null != tjName || null != tjPhone) {
|
LambdaQueryWrapper<TjCustomer> wq0 = new LambdaQueryWrapper<>();
|
wq0.like(TjCustomer::getCusName, tjName)
|
.or()
|
.like(TjCustomer::getCusPhone, tjPhone);
|
List<TjCustomer> customerList = customerService.list(wq0);
|
if (null != customerList && !customerList.isEmpty()) {
|
for (TjCustomer customer : customerList) {
|
LambdaQueryWrapper<TjOrder> wq1 = new LambdaQueryWrapper<>();
|
wq1.eq(TjOrder::getUserId, customer.getCusId());
|
wq1.eq(TjOrder::getCheckStatus, 0);
|
wq1.orderByDesc(TjOrder::getCreateTime);
|
List<TjOrder> tjOrders = orderService.list(wq1);
|
if (null != tjOrders && !tjOrders.isEmpty()) {
|
for (TjOrder order : tjOrders) {
|
LambdaQueryWrapper<TjOrderDetail> wq2 = new LambdaQueryWrapper<>();
|
wq2.eq(TjOrderDetail::getOrderId, order.getOrderId());
|
List<TjOrderDetail> detailList = detailService.list(wq2);
|
if (null != detailList && !detailList.isEmpty()) {
|
TjCollectFeesVo tjRefundVo = new TjCollectFeesVo();
|
tjRefundVo.setTjCusId(String.valueOf(customer.getCusId()));
|
tjRefundVo.setTjName(customer.getCusName());
|
tjRefundVo.setTjPhone(customer.getCusPhone());
|
tjRefundVo.setSex(String.valueOf(customer.getCusSex()));
|
if (null != customer.getCusIdcard()) tjRefundVo.setIdCard(customer.getCusIdcard());
|
DictComp dictComp = compService.getById(order.getFirmId());
|
if (null != dictComp) {
|
tjRefundVo.setTjComp(dictComp.getCnName());
|
} else {
|
tjRefundVo.setTjComp("无");
|
}
|
if (null != order.getTjType()) tjRefundVo.setTjType(order.getTjType());
|
LambdaQueryWrapper<TjFlowingWater> wq = new LambdaQueryWrapper<>();
|
wq.eq(TjFlowingWater::getOrderId, order.getOrderId());
|
wq.eq(TjFlowingWater::getIsAddition, "N");
|
wq.ne(TjFlowingWater::getPayStasus, 2);
|
TjFlowingWater one = tjFlowingWaterService.getOne(wq);
|
// tjRefundVo.setPaidIn(String.valueOf(one.getPaidIn()));
|
tjRefundVo.setTjFlowingWater(one);
|
tjRefundVo.setTjNumber(order.getTjNumber());
|
tjRefundVo.setTjOrderId(String.valueOf(order.getOrderId()));
|
tjCollectFeesVoList.add(tjRefundVo);
|
}
|
}
|
}
|
}
|
return AjaxResult.success(tjCollectFeesVoList);
|
}
|
return AjaxResult.error("该用户不存在");
|
}
|
|
if (null != tjNum) {
|
LambdaQueryWrapper<TjOrder> wq1 = new LambdaQueryWrapper<>();
|
wq1.likeLeft(TjOrder::getTjNumber, tjNum);
|
// wq1.eq(TjOrder::getCheckStatus, 0);
|
List<TjOrder> orderList = orderService.list(wq1);
|
if (null != orderList && !orderList.isEmpty()) {
|
for (TjOrder order : orderList) {
|
LambdaQueryWrapper<TjOrderDetail> wq2 = new LambdaQueryWrapper<>();
|
wq2.eq(TjOrderDetail::getOrderId, order.getOrderId());
|
//wq2.isNull(TjOrderDetail::getFlowingWaterId);
|
List<TjOrderDetail> detailList = detailService.list(wq2);
|
if (null != detailList && !detailList.isEmpty()) {
|
TjCustomer customer = customerService.getById(order.getUserId());
|
if (null != customer) {
|
TjCollectFeesVo tjRefundVo = new TjCollectFeesVo();
|
tjRefundVo.setTjCusId(String.valueOf(customer.getCusId()));
|
tjRefundVo.setTjName(customer.getCusName());
|
tjRefundVo.setTjPhone(customer.getCusPhone());
|
tjRefundVo.setSex(String.valueOf(customer.getCusSex()));
|
tjRefundVo.setIdCard(customer.getCusIdcard());
|
if (null != order.getFirmId()) {
|
DictComp byId = compService.getById(order.getFirmId());
|
if (null != byId) {
|
tjRefundVo.setTjComp(byId.getCnName());
|
}
|
}
|
if (null != order.getTjType()) tjRefundVo.setTjType(order.getTjType());
|
TjFlowingWater one = tjFlowingWaterService.getOne(new LambdaQueryWrapper<TjFlowingWater>()
|
.eq(TjFlowingWater::getOrderId, order.getOrderId())
|
.eq(TjFlowingWater::getIsAddition, "N")
|
.ne(TjFlowingWater::getPayStasus, 2));
|
tjRefundVo.setTjFlowingWater(one);
|
tjRefundVo.setTjNumber(order.getTjNumber());
|
tjRefundVo.setTjOrderId(String.valueOf(order.getOrderId()));
|
tjCollectFeesVoList.add(tjRefundVo);
|
}
|
}
|
}
|
return AjaxResult.success(tjCollectFeesVoList);
|
}
|
return AjaxResult.success("该用户不存在或已体检完成");
|
}
|
return AjaxResult.error("请输入要查询条件");
|
}
|
|
/**
|
* 体检(收费)页面查询接口
|
*/
|
@GetMapping("/findTjCollectFeesByNameAndTjNumAndPhoneN")
|
@ApiOperation(value = "体检(收费)页面查询接口")
|
public AjaxResult findTjCollectFeesByNameAndTjNumAndPhoneNew(@RequestParam(required = false) @ApiParam(value = "体检号") String tjNum,
|
@RequestParam(required = false) @ApiParam(value = "体检人姓名") String tjName,
|
@RequestParam(required = false) @ApiParam(value = "体检人手机号") String tjPhone) {
|
List<TjCollectFeesVo> tjCollectFeesVoList = new ArrayList<>();
|
if (null != tjName || null != tjPhone) {
|
LambdaQueryWrapper<TjCustomer> wq0 = new LambdaQueryWrapper<>();
|
wq0.like(TjCustomer::getCusName, tjName)
|
.or()
|
.like(TjCustomer::getCusPhone, tjPhone);
|
List<TjCustomer> customerList = customerService.list(wq0);
|
if (null != customerList && !customerList.isEmpty()) {
|
LambdaQueryWrapper<TjOrder> wq1 = new LambdaQueryWrapper<>();
|
wq1.in(TjOrder::getUserId, customerList.stream().map(TjCustomer::getCusId).collect(Collectors.toList()));
|
List<TjOrder> tjOrders = orderService.list(wq1);
|
if (null != tjOrders && !tjOrders.isEmpty()) {
|
for (TjOrder order : tjOrders) {
|
LambdaQueryWrapper<TjFlowingWater> wq = new LambdaQueryWrapper<>();
|
wq.eq(TjFlowingWater::getOrderId, order.getOrderId());
|
List<TjFlowingWater> list = tjFlowingWaterService.list(wq);
|
for (TjFlowingWater water : list) {
|
TjCustomer customer = customerService.getById(order.getUserId());
|
TjCollectFeesVo tjRefundVo = new TjCollectFeesVo();
|
tjRefundVo.setTjType(order.getTjType());
|
tjRefundVo.setTjCusId(String.valueOf(customer.getCusId()));
|
tjRefundVo.setTjName(customer.getCusName());
|
tjRefundVo.setTjPhone(customer.getCusPhone());
|
tjRefundVo.setSex(String.valueOf(customer.getCusSex()));
|
tjRefundVo.setIdCard(customer.getCusIdcard());
|
tjRefundVo.setTjComp(order.getFirmName());
|
tjRefundVo.setTjFlowingWater(water);
|
tjRefundVo.setTjNumber(order.getTjNumber());
|
tjRefundVo.setTjOrderId(String.valueOf(order.getOrderId()));
|
tjCollectFeesVoList.add(tjRefundVo);
|
}
|
|
}
|
}
|
|
return AjaxResult.success(tjCollectFeesVoList);
|
}
|
return AjaxResult.error("该用户不存在");
|
}
|
|
if (null != tjNum) {
|
LambdaQueryWrapper<TjOrder> wq1 = new LambdaQueryWrapper<>();
|
wq1.likeLeft(TjOrder::getTjNumber, tjNum);
|
List<TjOrder> orderList = orderService.list(wq1);
|
if (null != orderList && !orderList.isEmpty()) {
|
for (TjOrder order : orderList) {
|
LambdaQueryWrapper<TjFlowingWater> wq = new LambdaQueryWrapper<>();
|
wq.eq(TjFlowingWater::getOrderId, order.getOrderId());
|
List<TjFlowingWater> list = tjFlowingWaterService.list(wq);
|
for (TjFlowingWater water : list) {
|
TjCustomer customer = customerService.getById(order.getUserId());
|
TjCollectFeesVo tjRefundVo = new TjCollectFeesVo();
|
tjRefundVo.setTjType(order.getTjType());
|
tjRefundVo.setTjCusId(String.valueOf(customer.getCusId()));
|
tjRefundVo.setTjName(customer.getCusName());
|
tjRefundVo.setTjPhone(customer.getCusPhone());
|
tjRefundVo.setSex(String.valueOf(customer.getCusSex()));
|
tjRefundVo.setIdCard(customer.getCusIdcard());
|
tjRefundVo.setTjComp(order.getFirmName());
|
tjRefundVo.setTjFlowingWater(water);
|
tjRefundVo.setTjNumber(order.getTjNumber());
|
tjRefundVo.setTjOrderId(String.valueOf(order.getOrderId()));
|
// TjCollectFeesVo vo = BeanUtil.copyProperties(tjRefundVo, TjCollectFeesVo.class);
|
tjCollectFeesVoList.add(tjRefundVo);
|
}
|
|
|
}
|
return AjaxResult.success(tjCollectFeesVoList);
|
}
|
return AjaxResult.success("该用户不存在或已体检完成");
|
}
|
return AjaxResult.error("请输入要查询条件");
|
}
|
|
|
/**
|
* 体检已收费未收费信息查询接口
|
*/
|
@GetMapping("/findTjChargedButNotChargedByTjNum")
|
@ApiOperation(value = "体检已收费未收费信息查询接口")
|
public AjaxResult findTjChargedButNotChargedByTjNum(@RequestParam @ApiParam(value = "0未缴费1已缴费") Integer type,
|
@RequestParam @ApiParam(value = "体检号") String OrderId) {
|
if (null != OrderId) {
|
TjOrder order = orderService.getById(OrderId);
|
if (null != order) {
|
List<TjProject> tjProjectList = null;
|
if (type == 0) {
|
tjProjectList = detailService.selectTjOrderDetailListByFlowingWaterIdIsNull(OrderId);
|
} else {
|
tjProjectList = detailService.selectTjOrderDetailListByFlowingWaterIdIsNotNull(OrderId);
|
}
|
String pacId = transitionService.selectPacIdByTbTransitionTjNumAndProId(order.getTjNumber(), order.getCardId());
|
String s = tjFlowingWaterService.getDiscount(OrderId);
|
if (null != tjProjectList && !tjProjectList.isEmpty()) {
|
for (TjProject project : tjProjectList) {
|
if (project.getProParentId() == 0) {
|
if (null != pacId) {
|
TjPackageProject pp = tjPackageProjectService.getOne(new LambdaQueryWrapper<TjPackageProject>().eq(TjPackageProject::getPacId, pacId)
|
.eq(TjPackageProject::getProId, String.valueOf(project.getProId())));
|
if (null != pp) {
|
project.setProPrice(pp.getPriceNow());
|
project.setProOrdPrice(pp.getPriceNow().multiply(new BigDecimal(s)));
|
} else {
|
project.setProPrice(project.getProPrice().setScale(2));
|
project.setProOrdPrice(project.getProPrice().multiply(new BigDecimal(s)).setScale(2));
|
}
|
} else {
|
project.setProPrice(project.getProPrice().setScale(2));
|
project.setProOrdPrice(project.getProPrice().multiply(new BigDecimal(s)).setScale(2));
|
}
|
}
|
}
|
|
List<TjFlowingWater> list = tjFlowingWaterService.list(new LambdaQueryWrapper<TjFlowingWater>()
|
.eq(TjFlowingWater::getOrderId, order)
|
.eq(TjFlowingWater::getPayStasus, 2));
|
if (null != list && !list.isEmpty()) {
|
List<TjProject> projectList = projectService.getTjProListByPacIdAndDeptId(pacId);
|
if (null != projectList && !projectList.isEmpty()) {
|
for (TjProject project : projectList) {
|
project.setProOrdPrice(tjPackageProjectService.getPacProPriceByPacIdAndPro(project.getProId(), pacId)
|
.multiply(new BigDecimal(s)).setScale(2));
|
tjProjectList.add(project);
|
}
|
}
|
|
}
|
}
|
return AjaxResult.success(tjProjectList);
|
}
|
}
|
return AjaxResult.error("暂时没有数据");
|
}
|
|
/**
|
* 体检已收费未收费信息查询接口
|
*/
|
@GetMapping("/findTjChargedButNotChargedByTjNumN")
|
@ApiOperation(value = "体检已收费未收费信息查询接口")
|
public AjaxResult findTjChargedButNotChargedByTjNumN(@RequestParam @ApiParam(value = "0未缴费1已缴费") Integer type,
|
@RequestParam @ApiParam(value = "体检号") String OrderId,
|
@RequestParam String tjSerialNumber) {
|
if (StringUtil.isNotBlank(OrderId)) {
|
TjOrder order = orderService.getById(OrderId);
|
if (null != order) {
|
List<TjProject> tjProjectList = new ArrayList<>();
|
List<TjOrderRemark> remarkList = null;
|
LambdaQueryWrapper<TjFlowingWater> wrapper = new LambdaQueryWrapper<>();
|
wrapper.eq(TjFlowingWater::getTjSerialNumber, tjSerialNumber);
|
// wrapper.eq(TjFlowingWater::getPayStasus,type);
|
TjFlowingWater water = tjFlowingWaterService.getOne(wrapper);
|
if (water == null)
|
return AjaxResult.success(tjProjectList);
|
if (type == 0) {
|
if (StrUtil.isBlank(water.getJxbz()))
|
// tjProjectList = detailService.selectTjOrderDetailListByFlowingWaterIdIsNullAndJxbzIsNull(OrderId);
|
remarkList = remarkService.shoufeiyemianweishoufei(order.getTjNumber(), null);
|
// else tjProjectList = detailService.selectTjOrderDetailListByFlowingWaterIdIsNullN(OrderId,water.getJxbz());
|
else remarkList = remarkService.shoufeiyemianweishoufei(order.getTjNumber(), water.getJxbz());
|
} else {
|
if (StrUtil.isBlank(water.getJxbz()))
|
// tjProjectList = detailService.selectTjOrderDetailListByFlowingWaterIdIsNotNullAndJxbzIsNull(OrderId);
|
remarkList = remarkService.shoufeiyemianyishoufei(order.getTjNumber(), null);
|
// else tjProjectList = detailService.selectTjOrderDetailListByFlowingWaterIdIsNotNullN(OrderId,water.getJxbz());
|
else remarkList = remarkService.shoufeiyemianyishoufei(order.getTjNumber(), water.getJxbz());
|
}
|
// String pacId = transitionService.selectPacIdByTbTransitionTjNumAndProId(order.getTjNumber(),order.getCardId());
|
// String s = tjFlowingWaterService.getDiscount(OrderId);
|
/*
|
if (null != tjProjectList && !tjProjectList.isEmpty()) {
|
for (TjProject project : tjProjectList) {
|
if (project.getProParentId() == 0) {
|
if (null != pacId) {
|
TjPackageProject pp = tjPackageProjectService.getOne(new LambdaQueryWrapper<TjPackageProject>().eq(TjPackageProject::getPacId, pacId)
|
.eq(TjPackageProject::getProId, String.valueOf(project.getProId())));
|
if (null != pp) {
|
project.setProPrice(pp.getPriceNow());
|
project.setProOrdPrice(pp.getPriceNow().multiply(new BigDecimal(s)));
|
} else {
|
project.setProPrice(project.getProPrice());
|
project.setProOrdPrice(project.getProPrice().multiply(new BigDecimal(s)));
|
}
|
} else {
|
project.setProPrice(project.getProPrice());
|
project.setProOrdPrice(project.getProPrice().multiply(new BigDecimal(s)));
|
}
|
}
|
}
|
|
List<TjFlowingWater> list = tjFlowingWaterService.list(new LambdaQueryWrapper<TjFlowingWater>()
|
.eq(TjFlowingWater::getOrderId, order)
|
.eq(TjFlowingWater::getPayStasus, 2));
|
if (null != list && !list.isEmpty()) {
|
List<TjProject> projectList = projectService.getTjProListByPacIdAndDeptId(pacId);
|
if(null !=projectList && !projectList.isEmpty()){
|
for (TjProject project : projectList) {
|
project.setProOrdPrice(tjPackageProjectService.getPacProPriceByPacIdAndPro(project.getProId(),pacId)
|
.multiply(new BigDecimal(s)));
|
tjProjectList.add(project);
|
}
|
}
|
|
}
|
}
|
*/
|
|
if (!remarkList.isEmpty()) {
|
for (TjOrderRemark remark : remarkList) {
|
TjProject tjProject = projectService.getById(remark.getProId());
|
BigDecimal newdecimal = transitionService.getTbTransitionNewPriceByTjNumAndParentId(remark.getTjNumber(), remark.getProId().toString());
|
BigDecimal orddecimal = transitionService.getTbTransitionOrdPriceByTjNumAndParentId(remark.getTjNumber(), remark.getProId().toString());
|
tjProject.setProOrdPrice(orddecimal);
|
tjProject.setProPrice(newdecimal);
|
tjProjectList.add(tjProject);
|
}
|
|
}
|
return AjaxResult.success(tjProjectList);
|
}
|
}
|
return AjaxResult.error("暂时没有数据");
|
}
|
|
|
/**
|
* 体检退费项目查询接口
|
*/
|
@GetMapping("/getTjRefundProInfoVoList")
|
@ApiOperation(value = "体检退费项目详情查询接口")
|
@Transactional
|
public AjaxResult getTjRefundProInfoVoList(@RequestParam @ApiParam(value = "体检订单id") String orderId) {
|
TjOrder tjOrder = orderService.getById(orderId);
|
if (null == tjOrder) return AjaxResult.error("该体检记录不存在");
|
// TjCustomer customer = customerService.getById(tjOrder.getUserId());
|
if (tjOrder.getCheckStatus() == 0 && tjOrder.getReportTime() == null) {
|
LambdaQueryWrapper<TjOrderDetail> wq = new LambdaQueryWrapper<>();
|
wq.eq(TjOrderDetail::getOrderId, orderId);
|
//wq.eq(TjOrderDetail::getTjStatus, 0);
|
wq.ne(TjOrderDetail::getTjStatus, 1);
|
wq.ne(TjOrderDetail::getTjStatus, 3);
|
wq.isNotNull(TjOrderDetail::getFlowingWaterId);
|
List<TjOrderDetail> detailList = detailService.list(wq);
|
String pacId = transitionService.selectPacIdByTbTransitionTjNumAndProId(tjOrder.getTjNumber(), tjOrder.getCardId());
|
if (null != detailList && !detailList.isEmpty()) {
|
List<TjRefundProInfoVo> tjRefundProInfoVoList = new ArrayList<>();
|
for (TjOrderDetail detail : detailList) {
|
TjProject project = projectService.getById(detail.getProId());
|
if (project.getProParentId() == 0) {
|
// LambdaQueryWrapper<TbTransition> wqq1 = new LambdaQueryWrapper<>();
|
// wqq1.eq(TbTransition::getCusId, customer.getCusIdcard());
|
// wqq1.eq(TbTransition::getParentProId, project.getProId());
|
// List<TbTransition> tbTransitionList = transitionService.list(wqq1);
|
// BigDecimal bigDecimal = new BigDecimal("0.00");
|
// BigDecimal bigDecimal1 = new BigDecimal("0.00");
|
// for (TbTransition transition : tbTransitionList) {
|
// bigDecimal = bigDecimal.add(transition.getNowPrice());
|
// bigDecimal1 = bigDecimal1.add(transition.getOrdPrice());
|
// }
|
String s = tjFlowingWaterService.getDiscount(orderId);
|
TjRefundProInfoVo proInfoVo = new TjRefundProInfoVo();
|
|
if (null != pacId) {
|
TjPackageProject pp = tjPackageProjectService.getOne(new LambdaQueryWrapper<TjPackageProject>().eq(TjPackageProject::getPacId, pacId)
|
.eq(TjPackageProject::getProId, String.valueOf(project.getProId())));
|
if (null != pp) {
|
proInfoVo.setNetReceipts(pp.getPriceNow().multiply(new BigDecimal(s)));
|
proInfoVo.setPrice(pp.getPriceNow());
|
} else {
|
proInfoVo.setNetReceipts(project.getProPrice().multiply(new BigDecimal(s)));
|
proInfoVo.setPrice(project.getProPrice());
|
}
|
} else {
|
proInfoVo.setNetReceipts(project.getProPrice().multiply(new BigDecimal(s)));
|
proInfoVo.setPrice(project.getProPrice());
|
}
|
proInfoVo.setCollectFeesTime(tjFlowingWaterService.getById(detail.getFlowingWaterId()).getUpdateTime());
|
// TjFlowingWater water = tjFlowingWaterService.getById(detail.getFlowingWaterId());
|
// String tollCollectorId = water.getTollCollectorId();
|
// SysUser user = userService.getById(tollCollectorId);
|
// proInfoVo.setTollCollector(user.getNickName());
|
proInfoVo.setProName(project.getProName());
|
proInfoVo.setProId(String.valueOf(project.getProId()));
|
tjRefundProInfoVoList.add(proInfoVo);
|
}
|
}
|
return AjaxResult.success(tjRefundProInfoVoList);
|
}
|
}
|
return AjaxResult.success("体检已全部完成或已失效");
|
}
|
|
/**
|
* 体检退费项目查询接口
|
*/
|
@GetMapping("/getTjRefundProInfoVoList2")
|
@ApiOperation(value = "体检退费项目详情查询接口")
|
@Transactional
|
public AjaxResult getTjRefundProInfoVoList2(@RequestParam @ApiParam(value = "体检订单id") String orderId) {
|
TjOrder tjOrder = orderService.getById(orderId);
|
if (null == tjOrder) return AjaxResult.error("该体检记录不存在");
|
if (tjOrder.getCheckStatus() == 0 && tjOrder.getReportTime() == null) {
|
List<TjRefundProInfoVo> tjRefundProInfoVoList = new ArrayList<>();
|
LambdaQueryWrapper<TjFlowingWater> wrapper = new LambdaQueryWrapper<>();
|
wrapper.eq(TjFlowingWater::getOrderId, tjOrder.getOrderId());
|
wrapper.eq(TjFlowingWater::getPayStasus, 1L);
|
List<TjFlowingWater> list = tjFlowingWaterService.list(wrapper);
|
if (list.isEmpty())
|
return AjaxResult.error("没有收费项目");
|
for (TjFlowingWater water : list) {
|
LambdaQueryWrapper<TjOrderRemark> wrapper1 = new LambdaQueryWrapper<>();
|
wrapper1.eq(TjOrderRemark::getTjNumber, tjOrder.getTjNumber());
|
if (StrUtil.isNotBlank(water.getJxbz()))
|
wrapper1.eq(TjOrderRemark::getJxbz, water.getJxbz());
|
else wrapper1.isNull(TjOrderRemark::getJxbz);
|
wrapper1.isNotNull(TjOrderRemark::getSfbz);
|
List<TjOrderRemark> list1 = remarkService.list(wrapper1);
|
for (TjOrderRemark remark : list1) {
|
TjProject project = projectService.getById(remark.getProId());
|
QueryWrapper<TbTransition> wrapper2 = new QueryWrapper<>();
|
wrapper2.select("sum(now_price) as now_price");
|
wrapper2.eq("tj_num", remark.getTjNumber());
|
wrapper2.eq("parent_pro_id", remark.getProId());
|
wrapper2.groupBy("parent_pro_id");
|
TbTransition transition = tbTransitionService.getOne(wrapper2);
|
TjRefundProInfoVo proInfoVo = new TjRefundProInfoVo();
|
proInfoVo.setNetReceipts(transition.getNowPrice());
|
proInfoVo.setPrice(project.getProPrice());
|
proInfoVo.setCollectFeesTime(water.getUpdateTime());
|
proInfoVo.setProName(project.getProName());
|
proInfoVo.setProId(String.valueOf(project.getProId()));
|
tjRefundProInfoVoList.add(proInfoVo);
|
}
|
}
|
if (!tjRefundProInfoVoList.isEmpty())
|
return AjaxResult.success(tjRefundProInfoVoList);
|
}
|
return AjaxResult.success("体检已全部完成或已失效");
|
}
|
|
|
/**
|
* 体检退费接口
|
*/
|
@PostMapping("/tjRefund")
|
@ApiOperation(value = "体检退费按钮接口")
|
public AjaxResult tjRefund(@RequestBody @ApiParam(value = "流水对象") TjFlowingWater tjFlowingWater) {
|
if (null == tjFlowingWater.getRefundPros() || tjFlowingWater.getRefundPros().size() == 0)
|
return AjaxResult.error("请选择退费项目");
|
tjFlowingWater.setTollCollectorId(String.valueOf(SecurityUtils.getLoginUser().getUserId()));
|
tjFlowingWater.setRefundPersonId(String.valueOf(SecurityUtils.getLoginUser().getUserId()));
|
tjFlowingWater.setRefundTime(new Date());
|
tjFlowingWater.setIsAddition("N");
|
tjFlowingWater.setPayStasus(2L);
|
tjFlowingWater.setWaterId("TF" + SecurityUtils.getUsername() + DateUtil.format(new Date(), "yyMMddHHmmssSSS"));
|
tjFlowingWater.setPaidIn(BigDecimal.valueOf(0.00).subtract(tjFlowingWater.getRefundPrice()));
|
tjFlowingWater.setCopeWith(tjFlowingWater.getRefundPrice());
|
if (tjFlowingWaterService.save(tjFlowingWater)) {
|
TjOrder order = orderService.getById(tjFlowingWater.getOrderId());
|
for (TjProject refundPro : tjFlowingWater.getRefundPros()) {
|
LambdaQueryWrapper<TjProject> wq = new LambdaQueryWrapper<>();
|
wq.eq(TjProject::getProParentId, refundPro.getProId());
|
List<Long> collect = projectService.list(wq).stream().map(TjProject::getProId).collect(Collectors.toList());
|
LambdaQueryWrapper<TjOrderDetail> wq1 = new LambdaQueryWrapper<>();
|
wq1.in(TjOrderDetail::getProId, collect);
|
wq1.eq(TjOrderDetail::getOrderId, tjFlowingWater.getOrderId());
|
wq1.isNotNull(TjOrderDetail::getFlowingWaterId);
|
wq1.eq(TjOrderDetail::getTjStatus, 0);
|
List<TjOrderDetail> list = detailService.list(wq1);
|
if (null != list && list.size() > 0) {
|
for (TjOrderDetail orderDetail : list) {
|
orderDetail.setFlowingWaterId(null);
|
detailService.updateById(orderDetail);
|
LambdaQueryWrapper<TjChargingStandard> wqq = new LambdaQueryWrapper<>();
|
wqq.eq(TjChargingStandard::getTjNum, order.getTjNumber());
|
wqq.eq(TjChargingStandard::getProId, orderDetail.getProId());
|
chargingStandardService.remove(wqq);
|
}
|
}
|
LambdaQueryWrapper<TjOrderDetail> wq2 = new LambdaQueryWrapper<>();
|
wq2.eq(TjOrderDetail::getProId, refundPro.getProId());
|
wq2.eq(TjOrderDetail::getOrderId, tjFlowingWater.getOrderId());
|
wq2.isNotNull(TjOrderDetail::getFlowingWaterId);
|
wq2.eq(TjOrderDetail::getTjStatus, 0);
|
TjOrderDetail detail = detailService.getOne(wq2);
|
if (null != detail) {
|
detail.setFlowingWaterId(null);
|
detailService.updateById(detail);
|
LambdaQueryWrapper<TjProConsumables> wqqq = new LambdaQueryWrapper<>();
|
wqqq.eq(TjProConsumables::getProId, detail.getProId());
|
List<TjProConsumables> proConsumables = proConsumablesService.list(wqqq);
|
List<TjConsumables> list2 = new ArrayList<>();
|
if (null != proConsumables && proConsumables.size() > 0) {
|
for (TjProConsumables tjProConsumables : proConsumables) {
|
TjConsumables tjConsumables = consumablesService.selectTjConsumablesById(tjProConsumables.getConsumablesId());
|
list2.add(tjConsumables);
|
}
|
}
|
if (null != list && list.size() > 0) {
|
ArrayList<TjConsumables> collectw = list2.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(TjConsumables::getId))), ArrayList::new));
|
for (TjConsumables tjConsumables : collectw) {
|
LambdaQueryWrapper<TjChargingStandard> wqq = new LambdaQueryWrapper<>();
|
wqq.eq(TjChargingStandard::getTjNum, order.getTjNumber());
|
wqq.eq(TjChargingStandard::getConsumablesId, tjConsumables.getId());
|
chargingStandardService.remove(wqq);
|
}
|
}
|
}
|
LambdaQueryWrapper<TjOrderRemark> wqz = new LambdaQueryWrapper<>();
|
wqz.eq(TjOrderRemark::getTjNumber, order.getTjNumber());
|
wqz.eq(TjOrderRemark::getProId, refundPro.getProId());
|
remarkService.remove(wqz);
|
}
|
List<TjProject> refundPros = tjFlowingWater.getRefundPros();
|
asyncService.tjRefund(refundPros, order.getTjNumber());
|
Map<String, Object> map = new HashMap<>();
|
map.put("waterId", tjFlowingWater.getWaterId());
|
map.put("mobanId", reportService.getMoBanId());
|
return AjaxResult.success("退费成功", map);
|
}
|
return AjaxResult.error();
|
}
|
|
/**
|
* 体检退费接口
|
*/
|
@PostMapping("/tjRefund2")
|
@ApiOperation(value = "体检退费按钮接口")
|
@Transactional
|
public AjaxResult tjRefund2(@RequestBody @ApiParam(value = "流水对象") TjFlowingWater tjFlowingWater) {
|
if (null == tjFlowingWater.getRefundPros() || tjFlowingWater.getRefundPros().size() == 0)
|
return AjaxResult.error("请选择退费项目");
|
TjOrder order = orderService.getById(tjFlowingWater.getOrderId());
|
List<TjProject> refundPros = tjFlowingWater.getRefundPros();
|
List<Long> proIds = refundPros.stream().map(TjProject::getProId).collect(Collectors.toList());
|
LambdaQueryWrapper<TjSampling> wrapper = new LambdaQueryWrapper<>();
|
wrapper.in(TjSampling::getProId, proIds);
|
wrapper.eq(TjSampling::getTjNum, order.getTjNumber());
|
wrapper.eq(TjSampling::getIsSignFor, "0");
|
List<TjSampling> list1 = tjSamplingService.list(wrapper);
|
if (!list1.isEmpty())
|
return AjaxResult.error("所选项目中包含已做检验项目无法退费");
|
tjFlowingWater.setTollCollectorId(String.valueOf(SecurityUtils.getLoginUser().getUserId()));
|
tjFlowingWater.setRefundPersonId(String.valueOf(SecurityUtils.getLoginUser().getUserId()));
|
tjFlowingWater.setRefundTime(new Date());
|
tjFlowingWater.setIsAddition("N");
|
tjFlowingWater.setPayStasus(2L);
|
tjFlowingWater.setWaterId("TF" + SecurityUtils.getUsername() + DateUtil.format(new Date(), "yyMMddHHmmssSSS"));
|
tjFlowingWater.setPaidIn(BigDecimal.valueOf(0.00).subtract(tjFlowingWater.getRefundPrice()));
|
tjFlowingWater.setCopeWith(tjFlowingWater.getRefundPrice());
|
tjFlowingWater.setTjSerialNumber(IdUtil.getSnowflake().nextId());
|
if (tjFlowingWaterService.save(tjFlowingWater)) {
|
for (TjProject refundPro : tjFlowingWater.getRefundPros()) {
|
LambdaQueryWrapper<TjProject> wq = new LambdaQueryWrapper<>();
|
wq.eq(TjProject::getProParentId, refundPro.getProId());
|
List<Long> collect = projectService.list(wq).stream().map(TjProject::getProId).collect(Collectors.toList());
|
LambdaQueryWrapper<TjOrderDetail> wq1 = new LambdaQueryWrapper<>();
|
wq1.in(TjOrderDetail::getProId, collect);
|
wq1.eq(TjOrderDetail::getOrderId, tjFlowingWater.getOrderId());
|
wq1.isNotNull(TjOrderDetail::getFlowingWaterId);
|
wq1.eq(TjOrderDetail::getTjStatus, 0);
|
List<TjOrderDetail> list = detailService.list(wq1);
|
if (null != list && list.size() > 0) {
|
for (TjOrderDetail orderDetail : list) {
|
orderDetail.setFlowingWaterId(null);
|
detailService.updateById(orderDetail);
|
LambdaQueryWrapper<TjChargingStandard> wqq = new LambdaQueryWrapper<>();
|
wqq.eq(TjChargingStandard::getTjNum, order.getTjNumber());
|
wqq.eq(TjChargingStandard::getProId, orderDetail.getProId());
|
chargingStandardService.remove(wqq);
|
}
|
}
|
LambdaQueryWrapper<TjOrderDetail> wq2 = new LambdaQueryWrapper<>();
|
wq2.eq(TjOrderDetail::getProId, refundPro.getProId());
|
wq2.eq(TjOrderDetail::getOrderId, tjFlowingWater.getOrderId());
|
wq2.isNotNull(TjOrderDetail::getFlowingWaterId);
|
wq2.eq(TjOrderDetail::getTjStatus, 0);
|
TjOrderDetail detail = detailService.getOne(wq2);
|
if (null != detail) {
|
detail.setFlowingWaterId(null);
|
detailService.updateById(detail);
|
LambdaQueryWrapper<TjProConsumables> wqqq = new LambdaQueryWrapper<>();
|
wqqq.eq(TjProConsumables::getProId, detail.getProId());
|
List<TjProConsumables> proConsumables = proConsumablesService.list(wqqq);
|
List<TjConsumables> list2 = new ArrayList<>();
|
if (null != proConsumables && proConsumables.size() > 0) {
|
for (TjProConsumables tjProConsumables : proConsumables) {
|
TjConsumables tjConsumables = consumablesService.selectTjConsumablesById(tjProConsumables.getConsumablesId());
|
list2.add(tjConsumables);
|
}
|
}
|
if (null != list && list.size() > 0) {
|
ArrayList<TjConsumables> collectw = list2.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(TjConsumables::getId))), ArrayList::new));
|
for (TjConsumables tjConsumables : collectw) {
|
LambdaQueryWrapper<TjChargingStandard> wqq = new LambdaQueryWrapper<>();
|
wqq.eq(TjChargingStandard::getTjNum, order.getTjNumber());
|
wqq.eq(TjChargingStandard::getConsumablesId, tjConsumables.getId());
|
chargingStandardService.remove(wqq);
|
}
|
}
|
}
|
LambdaUpdateWrapper<TjOrderRemark> wqz = new LambdaUpdateWrapper<>();
|
wqz.eq(TjOrderRemark::getTjNumber, order.getTjNumber());
|
wqz.eq(TjOrderRemark::getProId, refundPro.getProId());
|
wqz.set(TjOrderRemark::getSfbz, null);
|
remarkService.update(wqz);
|
}
|
|
asyncService.tjRefund(refundPros, order.getTjNumber());
|
Map<String, Object> map = new HashMap<>();
|
map.put("waterId", tjFlowingWater.getWaterId());
|
map.put("mobanId", reportService.getMoBanId());
|
return AjaxResult.success("退费成功", map);
|
}
|
return AjaxResult.error();
|
}
|
}
|