|
|
@ -26,11 +26,20 @@ |
|
|
|
package com.yxt.anrui.as.biz.asbusreservebill; |
|
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil; |
|
|
|
import cn.hutool.core.date.DateUtil; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
import com.yxt.anrui.as.api.asbusreservebill.*; |
|
|
|
import com.yxt.anrui.as.api.asbusreservebillsitem.AsBusreserveBillSitem; |
|
|
|
import com.yxt.anrui.as.api.enums.AsBillTypeEnum; |
|
|
|
import com.yxt.anrui.as.api.utils.AsRule; |
|
|
|
import com.yxt.anrui.as.api.utils.domain.AsBillNo; |
|
|
|
import com.yxt.anrui.as.biz.asbusreservebillsitem.AsBusreserveBillSitemService; |
|
|
|
import com.yxt.anrui.as.feign.portal.privilege.PrivilegeQuery; |
|
|
|
import com.yxt.anrui.as.feign.portal.sysorganization.SysOrganizationFeign; |
|
|
|
import com.yxt.anrui.as.feign.portal.sysorganization.SysOrganizationVo; |
|
|
|
import com.yxt.anrui.as.feign.portal.sysstafforg.SysStaffOrgFeign; |
|
|
|
import com.yxt.anrui.as.feign.portal.sysuser.SysUserFeign; |
|
|
|
import org.apache.commons.lang3.StringUtils; |
|
|
|
import com.yxt.common.base.service.MybatisBaseService; |
|
|
|
import com.yxt.common.base.utils.PagerUtil; |
|
|
@ -64,14 +73,19 @@ public class AsBusreserveBillService extends MybatisBaseService<AsBusreserveBill |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private AsBusreserveBillSitemService asBusreserveBillSitemService; |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private SysUserFeign sysUserFeign; |
|
|
|
@Autowired |
|
|
|
private SysStaffOrgFeign sysStaffOrgFeign; |
|
|
|
@Autowired |
|
|
|
private SysOrganizationFeign sysOrganizationFeign; |
|
|
|
private QueryWrapper<AsBusreserveBill> createQueryWrapper(AsBusreserveBillQuery query) { |
|
|
|
// todo: 这里根据具体业务调整查询条件
|
|
|
|
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
|
|
|
|
QueryWrapper<AsBusreserveBill> qw = new QueryWrapper<>(); |
|
|
|
if (StringUtils.isNotBlank(query.getUseOrgSid())) { |
|
|
|
qw.eq("useOrgSid",query.getUseOrgSid()); |
|
|
|
} |
|
|
|
// if (StringUtils.isNotBlank(query.getUseOrgSid())) {
|
|
|
|
// qw.eq("useOrgSid",query.getUseOrgSid());
|
|
|
|
// }
|
|
|
|
if (StringUtils.isNotBlank(query.getState())) { |
|
|
|
qw.eq("state",query.getState()); |
|
|
|
} |
|
|
@ -84,21 +98,116 @@ public class AsBusreserveBillService extends MybatisBaseService<AsBusreserveBill |
|
|
|
if (StringUtils.isNotBlank(query.getVehMark())) { |
|
|
|
qw.like("vehMark",query.getVehMark()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getVehModel())) { |
|
|
|
qw.like("vehModel",query.getVehModel()); |
|
|
|
} |
|
|
|
return qw; |
|
|
|
} |
|
|
|
|
|
|
|
public PagerVo<AsBusreserveBillVo> listPageVo(PagerQuery<AsBusreserveBillQuery> pq) { |
|
|
|
AsBusreserveBillQuery query = pq.getParams(); |
|
|
|
QueryWrapper<AsBusreserveBill> qw = createQueryWrapper(query); |
|
|
|
QueryWrapper<AsBusreserveBill> qw = new QueryWrapper<>(); |
|
|
|
//========================================数据授权开始
|
|
|
|
if (StringUtils.isNotBlank(query.getMenuUrl())) { |
|
|
|
PrivilegeQuery privilegeQuery = new PrivilegeQuery(); |
|
|
|
privilegeQuery.setOrgPath(query.getOrgPath()); |
|
|
|
privilegeQuery.setMenuUrl(query.getMenuUrl()); |
|
|
|
privilegeQuery.setUserSid(query.getUserSid()); |
|
|
|
ResultBean<String> defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery); |
|
|
|
if (StringUtils.isNotBlank(defaultIdReltBean.getData())) { |
|
|
|
//数据权限ID(1集团、2事业部、3分公司、4部门、5个人)
|
|
|
|
String orgSidPath = query.getOrgPath(); |
|
|
|
orgSidPath = orgSidPath + "/"; |
|
|
|
int i1 = orgSidPath.indexOf("/"); |
|
|
|
int i2 = orgSidPath.indexOf("/", i1 + 1); |
|
|
|
int i3 = orgSidPath.indexOf("/", i2 + 1); |
|
|
|
int i4 = orgSidPath.indexOf("/", i3 + 1); |
|
|
|
String orgLevelKey = defaultIdReltBean.getData(); |
|
|
|
if ("1".equals(orgLevelKey)) { |
|
|
|
orgSidPath = orgSidPath.substring(0, i1); |
|
|
|
qw.like("orgSidPath", orgSidPath); |
|
|
|
} else if ("2".equals(orgLevelKey)) { |
|
|
|
orgSidPath = orgSidPath.substring(0, i2); |
|
|
|
qw.like("orgSidPath", orgSidPath); |
|
|
|
} else if ("3".equals(orgLevelKey)) { |
|
|
|
orgSidPath = orgSidPath.substring(0, i3); |
|
|
|
qw.like("orgSidPath", orgSidPath); |
|
|
|
} else if ("4".equals(orgLevelKey)) { |
|
|
|
orgSidPath = orgSidPath.substring(0, i4); |
|
|
|
qw.like("orgSidPath", orgSidPath); |
|
|
|
} else if ("5".equals(orgLevelKey)) { |
|
|
|
qw.eq("createBySid", query.getUserSid()); |
|
|
|
} else { |
|
|
|
PagerVo<AsBusreserveBillVo> p = new PagerVo<>(); |
|
|
|
return p; |
|
|
|
} |
|
|
|
} else { |
|
|
|
PagerVo<AsBusreserveBillVo> p = new PagerVo<>(); |
|
|
|
return p; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (StringUtils.isNotBlank(query.getState())) { |
|
|
|
qw.eq("state",query.getState()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getUseOrgName())) { |
|
|
|
qw.like("useOrgName",query.getUseOrgName()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getCreateDept())) { |
|
|
|
qw.like("createDept",query.getCreateDept()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getCreateByName())) { |
|
|
|
qw.like("createByName",query.getCreateByName()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getBillNo())) { |
|
|
|
qw.like("billNo",query.getBillNo()); |
|
|
|
} |
|
|
|
|
|
|
|
if (StringUtils.isNotBlank(query.getCustomerName())) { |
|
|
|
qw.like("customerName",query.getCustomerName()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getVehMark())) { |
|
|
|
qw.like("vehMark",query.getVehMark()); |
|
|
|
} |
|
|
|
|
|
|
|
if (StringUtils.isNotBlank(query.getVinNo())) { |
|
|
|
qw.like("vinNo",query.getVinNo()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getMobile())) { |
|
|
|
qw.like("mobile",query.getMobile()); |
|
|
|
} |
|
|
|
String createStartTime = query.getStartCreateDate(); |
|
|
|
String createEndTime = query.getEndCreateDate(); |
|
|
|
qw.apply(StringUtils.isNotEmpty(createStartTime), "date_format (createTime,'%Y-%m-%d') >= date_format('" + createStartTime + "','%Y-%m-%d')"). |
|
|
|
apply(StringUtils.isNotEmpty(createEndTime), "date_format (createTime,'%Y-%m-%d') <= date_format('" + createEndTime + "','%Y-%m-%d')" |
|
|
|
); |
|
|
|
String startDate = query.getStartDate(); |
|
|
|
String endDate = query.getEndDate(); |
|
|
|
qw.apply(StringUtils.isNotEmpty(startDate), "date_format (reserveStart,'%Y-%m-%d') >= date_format('" + startDate + "','%Y-%m-%d')"). |
|
|
|
apply(StringUtils.isNotEmpty(endDate), "date_format (reserveStart,'%Y-%m-%d') <= date_format('" + endDate + "','%Y-%m-%d')" |
|
|
|
); |
|
|
|
IPage<AsBusreserveBill> page = PagerUtil.queryToPage(pq); |
|
|
|
IPage<AsBusreserveBillVo> pagging = baseMapper.selectPageVo(page, qw); |
|
|
|
PagerVo<AsBusreserveBillVo> p = PagerUtil.pageToVo(pagging, null); |
|
|
|
return p; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 生成单据编号 |
|
|
|
* |
|
|
|
* @param orgSid |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
public String getApplyCode(String orgSid) { |
|
|
|
//获取分公司sid
|
|
|
|
ResultBean<SysOrganizationVo> resultBean1 = sysOrganizationFeign.fetchBySid(orgSid); |
|
|
|
String orgCode = resultBean1.getData().getOrgCode(); |
|
|
|
AsBillNo b = new AsBillNo(); |
|
|
|
b.setOrgCode(orgCode); |
|
|
|
b.setBillType(AsBillTypeEnum.YYD.getBillType()); |
|
|
|
String bill = AsRule.getBill(b); |
|
|
|
int i = baseMapper.selectNum(bill); |
|
|
|
String billNo = AsRule.getBillNo(bill, i); |
|
|
|
return billNo; |
|
|
|
} |
|
|
|
|
|
|
|
public void saveOrUpdateDto(AsBusreserveBillDto dto) { |
|
|
|
String dtoSid = dto.getSid(); |
|
|
|
if (StringUtils.isNotBlank(dtoSid)) { |
|
|
@ -118,6 +227,18 @@ public class AsBusreserveBillService extends MybatisBaseService<AsBusreserveBill |
|
|
|
} else { |
|
|
|
AsBusreserveBill entity = new AsBusreserveBill(); |
|
|
|
BeanUtil.copyProperties(dto, entity, "id", "sid"); |
|
|
|
String orgPath = dto.getOrgPath(); |
|
|
|
entity.setOrgSidPath(orgPath); |
|
|
|
ResultBean<String> orgSidByPath = sysStaffOrgFeign.getOrgSidByPath(orgPath); |
|
|
|
if (orgSidByPath.getSuccess()) { |
|
|
|
entity.setUseOrgSid(orgSidByPath.getData()); |
|
|
|
entity.setCreateOrgSid(orgSidByPath.getData()); |
|
|
|
SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(orgSidByPath.getData()).getData(); |
|
|
|
entity.setCreateOrgName(organizationVo.getName()); |
|
|
|
entity.setUseOrgName(organizationVo.getName()); |
|
|
|
String applyCode = getApplyCode(orgSidByPath.getData()); |
|
|
|
entity.setBillNo(applyCode); |
|
|
|
} |
|
|
|
baseMapper.insert(entity); |
|
|
|
List<AsbillSitemVo> sitemVos = dto.getSitemVos(); |
|
|
|
if (!sitemVos.isEmpty()) { |
|
|
@ -151,23 +272,49 @@ public class AsBusreserveBillService extends MybatisBaseService<AsBusreserveBill |
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
|
|
|
AsBusreserveBill entity = fetchBySid(sid); |
|
|
|
AsBusreserveBillDetailsVo vo = new AsBusreserveBillDetailsVo(); |
|
|
|
BeanUtil.copyProperties(entity, vo); |
|
|
|
if (null != entity.getReserveStart()) { |
|
|
|
vo.setReserveStart(sdf.format(entity.getReserveStart())); |
|
|
|
} |
|
|
|
if (null != entity.getReserveEnd()) { |
|
|
|
vo.setReserveEnd(sdf.format(entity.getReserveEnd())); |
|
|
|
} |
|
|
|
List<AsbillSitemVo> sitemVos = new ArrayList<>(); |
|
|
|
List<AsBusreserveBillSitem> asBusreserveBillSitems = asBusreserveBillSitemService.fetchByMainSid(sid); |
|
|
|
if (!asBusreserveBillSitems.isEmpty()) { |
|
|
|
for (AsBusreserveBillSitem asBusreserveBillSitem : asBusreserveBillSitems) { |
|
|
|
AsbillSitemVo sitemVo = new AsbillSitemVo(); |
|
|
|
BeanUtil.copyProperties(asBusreserveBillSitem, sitemVo); |
|
|
|
sitemVos.add(sitemVo); |
|
|
|
if (null != entity) { |
|
|
|
BeanUtil.copyProperties(entity, vo); |
|
|
|
vo.setCreateTime(DateUtil.formatDate(entity.getCreateTime())); |
|
|
|
if (StringUtils.isNotBlank(entity.getOrgSidPath())) { |
|
|
|
vo.setOrgPath(entity.getOrgSidPath()); |
|
|
|
} |
|
|
|
if (null != entity.getReserveStart()) { |
|
|
|
vo.setReserveStart(sdf.format(entity.getReserveStart())); |
|
|
|
} |
|
|
|
if (null != entity.getReserveEnd()) { |
|
|
|
vo.setReserveEnd(sdf.format(entity.getReserveEnd())); |
|
|
|
} |
|
|
|
List<AsbillSitemVo> sitemVos = new ArrayList<>(); |
|
|
|
List<AsBusreserveBillSitem> asBusreserveBillSitems = asBusreserveBillSitemService.fetchByMainSid(sid); |
|
|
|
if (!asBusreserveBillSitems.isEmpty()) { |
|
|
|
for (AsBusreserveBillSitem asBusreserveBillSitem : asBusreserveBillSitems) { |
|
|
|
AsbillSitemVo sitemVo = new AsbillSitemVo(); |
|
|
|
BeanUtil.copyProperties(asBusreserveBillSitem, sitemVo); |
|
|
|
sitemVos.add(sitemVo); |
|
|
|
} |
|
|
|
vo.setSitemVos(sitemVos); |
|
|
|
} |
|
|
|
vo.setSitemVos(sitemVos); |
|
|
|
} |
|
|
|
return vo; |
|
|
|
} |
|
|
|
|
|
|
|
public void invalid(String sid) { |
|
|
|
AsBusreserveBill bill = fetchBySid(sid); |
|
|
|
if (null != bill) { |
|
|
|
bill.setState(2); |
|
|
|
baseMapper.updateById(bill); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
public void saveTrackingRecord(AsBusreserveBillDto dto) { |
|
|
|
if (StringUtils.isNotBlank(dto.getSid())) { |
|
|
|
AsBusreserveBill bill = fetchBySid(dto.getSid()); |
|
|
|
if (null != bill) { |
|
|
|
if (StringUtils.isNotBlank(dto.getTrackLogs())) { |
|
|
|
bill.setTrackLogs(dto.getTrackLogs()); |
|
|
|
} |
|
|
|
baseMapper.updateById(bill); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |