|
|
@@ -382,39 +382,6 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
|
|
|
public HttpResult saveOrders(InsOrdersAdd ordersAdd) {
|
|
|
log.info("补录订单:ordersAdd=[{}]", JSONUtil.toJsonStr(ordersAdd));
|
|
|
ordersAdd.getFeeOrdersVo().setIsrecordByLeader(ordersAdd.getInsOrdersOtherInfo().isIsrecordByLeader());
|
|
|
-
|
|
|
- // 检查输入参数是否为空,如果为空则返回错误信息
|
|
|
-
|
|
|
- if(ordersAdd.getInsOrders().getCompanyId().isEmpty()){
|
|
|
- return HttpResult.error("请填写报价公司信息!");
|
|
|
- }
|
|
|
- if(ordersAdd.getInsOrders().getAgreementId().isEmpty()){
|
|
|
- return HttpResult.error("请填写报价协议信息");
|
|
|
- }
|
|
|
- if(ordersAdd.getIsTemporarily() ==0){
|
|
|
- InsOrdersExternalPolicy insOrdersExternalPolicy = ordersAdd.getInsOrdersExternalPolicy();
|
|
|
- if(insOrdersExternalPolicy == null || (insOrdersExternalPolicy.getJqPolicy().isEmpty() && insOrdersExternalPolicy.getSyPolicy().isEmpty()) ){
|
|
|
- return HttpResult.error("商业险保单和交强险保单不能都为空!");
|
|
|
- }
|
|
|
- if(!insOrdersExternalPolicy.getJqPolicy().isEmpty()){
|
|
|
- LambdaQueryWrapper<InsOrdersPolicy> wrapper = new LambdaQueryWrapper<>();
|
|
|
- wrapper.eq(InsOrdersPolicy::getJqPolicyNo, insOrdersExternalPolicy.getJqPolicy());
|
|
|
- List<InsOrdersPolicy> list = insOrdersPolicyService.list(wrapper);
|
|
|
- if(list != null && !list.isEmpty()){
|
|
|
- return HttpResult.error("该交强险保单号信息已存在!");
|
|
|
- }
|
|
|
- }
|
|
|
- if(!insOrdersExternalPolicy.getSyPolicy().isEmpty()){
|
|
|
- LambdaQueryWrapper<InsOrdersPolicy> wrapper = new LambdaQueryWrapper<>();
|
|
|
- wrapper.eq(InsOrdersPolicy::getSyPolicyNo, insOrdersExternalPolicy.getSyPolicy());
|
|
|
- List<InsOrdersPolicy> list = insOrdersPolicyService.list(wrapper);
|
|
|
- if(list != null && !list.isEmpty()){
|
|
|
- return HttpResult.error("该商业保单号信息已存在!");
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
try {
|
|
|
// 获取订单对象并设置引用编号
|
|
|
InsOrders insOrders = ordersAdd.getInsOrders();
|
|
|
@@ -543,6 +510,8 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
|
|
|
|
|
|
// 发送订单状态变更消息
|
|
|
this.orderStatusMessage(insOrders, insOrdersCarInfo, insOrdersCosts, baseController.getToken(), MessageCodeEnum.TEMPLATE_9);
|
|
|
+
|
|
|
+ // 生成子订单
|
|
|
if (nullOrders) {
|
|
|
InsOrders orders = insOrdersAdd.getInsOrders();
|
|
|
orders.setQuoteNo(insOrders.getQuoteNo());
|
|
|
@@ -712,34 +681,6 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public HttpResult updateOrders(InsOrdersEnd ordersEnd) {
|
|
|
|
|
|
- if(ordersEnd.getIsTemporarily() ==0){
|
|
|
- InsOrdersExternalPolicy insOrdersExternalPolicy = ordersEnd.getInsOrdersExternalPolicy();
|
|
|
- if(insOrdersExternalPolicy == null || (insOrdersExternalPolicy.getJqPolicy().isEmpty() && insOrdersExternalPolicy.getSyPolicy().isEmpty()) ){
|
|
|
- return HttpResult.error("商业险保单和交强险保单不能都为空!");
|
|
|
- }
|
|
|
- if(!insOrdersExternalPolicy.getJqPolicy().isEmpty()){
|
|
|
- LambdaQueryWrapper<InsOrdersPolicy> wrapper = new LambdaQueryWrapper<>();
|
|
|
- wrapper.eq(InsOrdersPolicy::getJqPolicyNo, insOrdersExternalPolicy.getJqPolicy());
|
|
|
- List<InsOrdersPolicy> list = insOrdersPolicyService.list(wrapper);
|
|
|
- if(list != null && !list.isEmpty()){
|
|
|
- // 修改订单时,排除原订单的问题
|
|
|
- if(!list.get(0).getOrderNo().equals(ordersEnd.getInsOrders().getId())){
|
|
|
- return HttpResult.error("该交强险保单号信息已存在!");
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- if(!insOrdersExternalPolicy.getSyPolicy().isEmpty()){
|
|
|
- LambdaQueryWrapper<InsOrdersPolicy> wrapper = new LambdaQueryWrapper<>();
|
|
|
- wrapper.eq(InsOrdersPolicy::getSyPolicyNo, insOrdersExternalPolicy.getSyPolicy());
|
|
|
- List<InsOrdersPolicy> list = insOrdersPolicyService.list(wrapper);
|
|
|
- if(list != null && !list.isEmpty()){
|
|
|
- if(!list.get(0).getOrderNo().equals(ordersEnd.getInsOrders().getId())){
|
|
|
- return HttpResult.error("该商业保单号信息已存在!");
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
try {
|
|
|
// 获取订单对象并设置引用编号
|
|
|
InsOrders insOrders = ordersEnd.getInsOrders();
|
|
|
@@ -1169,15 +1110,16 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
|
|
|
|
|
|
Page<OrderListVo> orderListVoPage;
|
|
|
if (baseController.getUserSystemCode().equals("APP")) {
|
|
|
- // 手动分页:以主订单为主,按车牌+状态分组去重,先统计总数再取当前页(避免 MP 自动 count 解析窗口函数报错)
|
|
|
+ // APP 端统一走手动分页:按车牌+状态分组去重(避免 MP 自动 count 解析窗口函数报错)。
|
|
|
+ // SQL 中根据 isLargeOrder 动态切换 parent_id 条件:大订单查主订单(parent_id='0'),否则只查从订单(parent_id!='0')
|
|
|
Page<OrderListVo> page = insOrdersParam.getPage();
|
|
|
long current = page.getCurrent();
|
|
|
long size = page.getSize();
|
|
|
long offset = (current - 1) * size;
|
|
|
long total = insOrdersMapper.countOrderListDistinct(insOrdersParam);
|
|
|
List<OrderListVo> records = insOrdersMapper.queryOrderListDistinct(insOrdersParam, offset, size);
|
|
|
- // 以主订单为主:查询主订单下的从订单并挂载
|
|
|
- if (CollUtil.isNotEmpty(records)) {
|
|
|
+ // 大订单:以主订单为主,查询主订单下的从订单并挂载
|
|
|
+ if (StringUtils.equals("1", insOrdersParam.getIsLargeOrder()) && CollUtil.isNotEmpty(records)) {
|
|
|
List<String> parentIds = records.stream().map(OrderListVo::getOrderNo).collect(Collectors.toList());
|
|
|
List<OrderListVo> childOrders = insOrdersMapper.queryChildOrderListByParentIds(parentIds, insOrdersParam);
|
|
|
if (CollUtil.isNotEmpty(childOrders)) {
|
|
|
@@ -1189,7 +1131,7 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
|
|
|
orderListVoPage = new Page<>(current, size, total);
|
|
|
orderListVoPage.setRecords(records != null ? records : java.util.Collections.emptyList());
|
|
|
} else {
|
|
|
- // 非 APP 走原 MP 自动分页查询
|
|
|
+ // 非 APP 走原 MP 自动分页查询(queryOrderList 仅查询从订单 parent_id != '0',不查主订单)
|
|
|
orderListVoPage = insOrdersMapper.queryOrderList(insOrdersParam.getPage(), insOrdersParam);
|
|
|
}
|
|
|
// modify by lipf, 2026年4月29日11:06:02 解决业务员类型缺失的问题
|
|
|
@@ -1566,8 +1508,24 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
|
|
|
@Override
|
|
|
public String exportDynamicFields(InsOrdersParamVO insOrdersParam) {
|
|
|
log.info("导出订单列表。支持动态选择要导出的字段:导出车险订单=[{}]", JSONUtil.toJsonStr(insOrdersParam));
|
|
|
- insOrdersParam.setSystemCode(baseController.getSystemCode());
|
|
|
- List<OrderListVo> orderListVos = insOrdersMapper.queryOrderListAll(insOrdersParam);
|
|
|
+ // 分页无限大
|
|
|
+ insOrdersParam.getPage().setPages(1);
|
|
|
+ insOrdersParam.getPage().setSize(Integer.MAX_VALUE);
|
|
|
+ insOrdersParam.setPages(1);
|
|
|
+ insOrdersParam.setSize(Integer.MAX_VALUE);
|
|
|
+
|
|
|
+ String systemCode = "";
|
|
|
+ //如果是APP登录的话 则传递SystemCode的头部字段
|
|
|
+ if (baseController.getUserSystemCode().equals("APP")) {
|
|
|
+ HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
|
|
|
+ systemCode = request.getHeader("system_code");
|
|
|
+ } else {
|
|
|
+ systemCode = baseController.getUserSystemCode();
|
|
|
+ }
|
|
|
+ insOrdersParam.setSystemCode(systemCode);
|
|
|
+ Page<OrderListVo> orderListVoPage = queryMainOrderList(insOrdersParam);
|
|
|
+ List<OrderListVo> orderListVos = orderListVoPage.getRecords();
|
|
|
+
|
|
|
log.info("导出订单列表,导出[{}]条记录", CollUtil.size(orderListVos));
|
|
|
// 动态设置要导出的字段
|
|
|
String exportDynamicFields = insOrdersParam.getExportDynamicFields();
|
|
|
@@ -2819,4 +2777,56 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
|
|
|
public InsOrdersCarInfo getByOrderId(String orderNo) {
|
|
|
return ordersCarInfoService.getByOrderId(orderNo);
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional
|
|
|
+ public void deleteOrderAllByOrderNo(String orderNo) {
|
|
|
+ // 订单信息删除
|
|
|
+ insOrdersMapper.deleteById(orderNo);
|
|
|
+ // 订单车辆信息表删除
|
|
|
+ LambdaUpdateWrapper<InsOrdersCarInfo> iciWrapper = new LambdaUpdateWrapper<>();
|
|
|
+ iciWrapper.eq(InsOrdersCarInfo::getOrderNo,orderNo);
|
|
|
+ iciWrapper.set(InsOrdersCarInfo::getIsDelete,1);
|
|
|
+ ordersCarInfoService.update(iciWrapper);
|
|
|
+ // 订单车辆人员信息表删除
|
|
|
+ LambdaUpdateWrapper<InsOrdersCarUserInfo> icuiWrapper = new LambdaUpdateWrapper<>();
|
|
|
+ icuiWrapper.eq(InsOrdersCarUserInfo::getOrderNo,orderNo);
|
|
|
+ icuiWrapper.set(InsOrdersCarUserInfo::getIsDelete,1);
|
|
|
+ ordersCarUserInfoService.update(icuiWrapper);
|
|
|
+ // 订单其他属性表删除
|
|
|
+ LambdaUpdateWrapper<InsOrdersOther> iooWrapper = new LambdaUpdateWrapper<>();
|
|
|
+ iooWrapper.eq(InsOrdersOther::getOrderNo,orderNo);
|
|
|
+ iooWrapper.set(InsOrdersOther::getIsDelete,1);
|
|
|
+ insOrdersOtherService.update(iooWrapper);
|
|
|
+ // 订单费用表删除
|
|
|
+ LambdaUpdateWrapper<InsOrdersCosts> iocWrapper = new LambdaUpdateWrapper<>();
|
|
|
+ iocWrapper.eq(InsOrdersCosts::getOrderNo,orderNo);
|
|
|
+ iocWrapper.set(InsOrdersCosts::getIsDelete,1);
|
|
|
+ insOrdersCostsService.update(iocWrapper);
|
|
|
+ //订单保单号关联删除
|
|
|
+ LambdaUpdateWrapper<InsOrdersPolicy> iopWrapper = new LambdaUpdateWrapper<>();
|
|
|
+ iopWrapper.eq(InsOrdersPolicy::getOrderNo,orderNo);
|
|
|
+ iopWrapper.set(InsOrdersPolicy::getIsDelete,1);
|
|
|
+ insOrdersPolicyService.update(iopWrapper);
|
|
|
+ // 订单费用表删除
|
|
|
+ LambdaUpdateWrapper<InsFeeOrders> ifoWrapper = new LambdaUpdateWrapper<>();
|
|
|
+ ifoWrapper.eq(InsFeeOrders::getOrderNo,orderNo);
|
|
|
+ ifoWrapper.set(InsFeeOrders::getIsDelete,1);
|
|
|
+ insFeeOrdersMapper.update(ifoWrapper);
|
|
|
+ // 保险种类信息删除
|
|
|
+ LambdaUpdateWrapper<InsOrdersKind> iokWrapper = new LambdaUpdateWrapper<>();
|
|
|
+ iokWrapper.eq(InsOrdersKind::getOrderNo,orderNo);
|
|
|
+ iokWrapper.set(InsOrdersKind::getIsDelete,1);
|
|
|
+ insOrdersKindService.update(iokWrapper);
|
|
|
+ // 税费信息删除
|
|
|
+ LambdaUpdateWrapper<InsOrdersTax> iotWrapper = new LambdaUpdateWrapper<>();
|
|
|
+ iotWrapper.eq(InsOrdersTax::getOrderNo,orderNo);
|
|
|
+ iotWrapper.set(InsOrdersTax::getIsDelete,1);
|
|
|
+ insOrdersTaxService.update(iotWrapper);
|
|
|
+ // 订单险种信息删除
|
|
|
+ LambdaUpdateWrapper<InsOrdersRisk> iorWrapper = new LambdaUpdateWrapper<>();
|
|
|
+ iorWrapper.eq(InsOrdersRisk::getOrderNo,orderNo);
|
|
|
+ iorWrapper.set(InsOrdersRisk::getIsDelete,1);
|
|
|
+ insOrdersRiskService.update(iorWrapper);
|
|
|
+ }
|
|
|
}
|