|
|
@ -7,15 +7,19 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
import com.google.common.util.concurrent.ThreadFactoryBuilder; |
|
|
|
import com.yxt.anrui.as.api.asbusclaimbill.AsBusclaimBill; |
|
|
|
import com.yxt.anrui.as.api.asbusclaimcheck.AsBusclaimCheckVo; |
|
|
|
import com.yxt.anrui.as.api.asbusclaimcheckapply.*; |
|
|
|
import com.yxt.anrui.as.api.asbusclaimcheckapply.flowable.*; |
|
|
|
import com.yxt.anrui.as.api.asbusclaimcheckapplydetail.AsBusclaimCheckApplyDetailDto; |
|
|
|
import com.yxt.anrui.as.api.asbusclaimcheckapplydetail.AsBusclaimCheckApplyDetailVo; |
|
|
|
import com.yxt.anrui.as.api.asbusclaiminvoicebilldetail.AsBusclaimInvoiceBillDetail; |
|
|
|
import com.yxt.anrui.as.api.asbusrepairbill.AsBusrepairBill; |
|
|
|
import com.yxt.anrui.as.biz.asbusclaimbill.AsBusclaimBillService; |
|
|
|
import com.yxt.anrui.as.biz.asbusclaimcheckapplydetail.AsBusclaimCheckApplyDetailMapper; |
|
|
|
import com.yxt.anrui.as.biz.asbusclaimcheckapplydetail.AsBusclaimCheckApplyDetailService; |
|
|
|
import com.yxt.anrui.as.biz.asbusclaiminvoicebilldetail.AsBusclaimInvoiceBillDetailService; |
|
|
|
import com.yxt.anrui.as.biz.asbusrepairbill.AsBusrepairBillService; |
|
|
|
import com.yxt.anrui.as.feign.base.billno.Rule; |
|
|
|
import com.yxt.anrui.as.feign.flowable.flow.BusinessVariables; |
|
|
|
import com.yxt.anrui.as.feign.flowable.flow.FlowableFeign; |
|
|
|
import com.yxt.anrui.as.feign.flowable.flow.ProcDefEnum; |
|
|
@ -28,8 +32,10 @@ import com.yxt.anrui.as.feign.flowable.flowtask.LatestTaskVo; |
|
|
|
import com.yxt.anrui.as.feign.message.MessageFeign; |
|
|
|
import com.yxt.anrui.as.feign.message.MessageFlowVo; |
|
|
|
import com.yxt.anrui.as.feign.message.MessageFlowableQuery; |
|
|
|
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.sysuser.SysUserFeign; |
|
|
|
import com.yxt.common.base.config.component.FileUploadComponent; |
|
|
|
import com.yxt.common.base.service.MybatisBaseService; |
|
|
|
import com.yxt.common.base.utils.PagerUtil; |
|
|
@ -41,6 +47,7 @@ import org.apache.tomcat.util.threads.ThreadPoolExecutor; |
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
|
|
|
import java.math.BigDecimal; |
|
|
|
import java.util.*; |
|
|
|
import java.util.concurrent.*; |
|
|
|
import java.util.stream.Collectors; |
|
|
@ -60,7 +67,7 @@ public class AsBusclaimCheckApplyService extends MybatisBaseService<AsBusclaimCh |
|
|
|
@Autowired |
|
|
|
private AsBusclaimCheckApplyDetailMapper asBusclaimCheckApplyDetailMapper; |
|
|
|
@Autowired |
|
|
|
private AsBusclaimBillService asBusclaimBillService; |
|
|
|
private AsBusrepairBillService asBusrepairBillService; |
|
|
|
@Autowired |
|
|
|
private AsBusclaimInvoiceBillDetailService asBusclaimInvoiceBillDetailService; |
|
|
|
@Autowired |
|
|
@ -73,19 +80,60 @@ public class AsBusclaimCheckApplyService extends MybatisBaseService<AsBusclaimCh |
|
|
|
private FlowTaskFeign flowTaskFeign; |
|
|
|
@Autowired |
|
|
|
private FlowableFeign flowableFeign; |
|
|
|
@Autowired |
|
|
|
private SysUserFeign sysUserFeign; |
|
|
|
|
|
|
|
|
|
|
|
public PagerVo<AsBusclaimCheckApplyVo> listPage(PagerQuery<AsBusclaimCheckApplyQuery> pagerQuery) { |
|
|
|
AsBusclaimCheckApplyQuery query = pagerQuery.getParams(); |
|
|
|
QueryWrapper<AsBusclaimCheckApply> 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("s.orgSidPath", orgSidPath); |
|
|
|
} else if ("2".equals(orgLevelKey)) { |
|
|
|
orgSidPath = orgSidPath.substring(0, i2); |
|
|
|
qw.like("s.orgSidPath", orgSidPath); |
|
|
|
} else if ("3".equals(orgLevelKey)) { |
|
|
|
orgSidPath = orgSidPath.substring(0, i3); |
|
|
|
qw.like("s.orgSidPath", orgSidPath); |
|
|
|
} else if ("4".equals(orgLevelKey)) { |
|
|
|
orgSidPath = orgSidPath.substring(0, i4); |
|
|
|
qw.like("s.orgSidPath", orgSidPath); |
|
|
|
} else if ("5".equals(orgLevelKey)) { |
|
|
|
qw.eq("a.createBySid", query.getUserSid()); |
|
|
|
} else { |
|
|
|
PagerVo<AsBusclaimCheckApplyVo> p = new PagerVo<>(); |
|
|
|
return p; |
|
|
|
} |
|
|
|
} else { |
|
|
|
PagerVo<AsBusclaimCheckApplyVo> p = new PagerVo<>(); |
|
|
|
return p; |
|
|
|
} |
|
|
|
} |
|
|
|
//ToDo:添加查询条件
|
|
|
|
//分公司
|
|
|
|
if (StringUtils.isNotBlank(query.getUseOrgName())) { |
|
|
|
qw.like("a.useOrgName", query.getUseOrgName()); |
|
|
|
} |
|
|
|
//申请部门
|
|
|
|
if (StringUtils.isNotBlank(query.getCreateDeptName())) { |
|
|
|
qw.like("a.createDeptName", query.getCreateDeptName()); |
|
|
|
if (StringUtils.isNotBlank(query.getDeptName())) { |
|
|
|
qw.like("a.deptName", query.getDeptName()); |
|
|
|
} |
|
|
|
//申请人
|
|
|
|
if (StringUtils.isNotBlank(query.getCreateByName())) { |
|
|
@ -124,36 +172,54 @@ public class AsBusclaimCheckApplyService extends MybatisBaseService<AsBusclaimCh |
|
|
|
public ResultBean<String> saveOrUpdateBill(AsBusclaimCheckApplyDto dto) { |
|
|
|
ResultBean<String> rb = ResultBean.fireFail(); |
|
|
|
String sid = dto.getSid(); |
|
|
|
SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(dto.getUseOrgSid()).getData(); |
|
|
|
dto.setUseOrgSid(dto.getUseOrgSid()); |
|
|
|
dto.setUseOrgName(organizationVo.getName()); |
|
|
|
dto.setCreateOrgSid(dto.getUseOrgSid()); |
|
|
|
if (StringUtils.isBlank(sid)) { |
|
|
|
AsBusclaimCheckApply asBusclaimCheckApply = new AsBusclaimCheckApply(); |
|
|
|
//生成单据编号
|
|
|
|
String billNo = ""; |
|
|
|
String date = DateUtil.format(DateUtil.date(), "yyyyMM"); |
|
|
|
billNo = "SPTZ" + organizationVo.getOrgCode() + date; |
|
|
|
String i = baseMapper.selectNum(billNo); |
|
|
|
if (StringUtils.isNotBlank(i)) { |
|
|
|
billNo = Rule.getBillNo(billNo, Integer.valueOf(i).intValue()); |
|
|
|
} else { |
|
|
|
billNo = Rule.getBillNo(billNo, 0); |
|
|
|
} |
|
|
|
dto.setBillNo(billNo); |
|
|
|
BeanUtil.copyProperties(dto, asBusclaimCheckApply, "sid"); |
|
|
|
asBusclaimCheckApply.setCreateBySid(dto.getCreateBySid()); |
|
|
|
sid = asBusclaimCheckApply.getSid(); |
|
|
|
List<String> fileList = dto.getFileList(); |
|
|
|
List<AsBusclaimCheckApplyFile> fileList = dto.getFileList(); |
|
|
|
fileList.removeAll(Collections.singleton(null)); |
|
|
|
if (!fileList.isEmpty()) { |
|
|
|
String files = String.join(",", fileList).replaceAll(fileUploadComponent.getUrlPrefix(), ""); |
|
|
|
asBusclaimCheckApply.setFile(files); |
|
|
|
String url = ""; |
|
|
|
for (AsBusclaimCheckApplyFile asBusclaimCheckApplyFile : fileList) { |
|
|
|
String filePath = asBusclaimCheckApplyFile.getUrl().replace(fileUploadComponent.getUrlPrefix(), ""); |
|
|
|
url = url + filePath + ","; |
|
|
|
} |
|
|
|
asBusclaimCheckApply.setFile(url); |
|
|
|
List<AsBusclaimCheckApplyDetailDto> detailList = dto.getDetailsList(); |
|
|
|
detailList.removeAll(Collections.singleton(null)); |
|
|
|
if (!detailList.isEmpty()) { |
|
|
|
asBusclaimCheckApplyDetailService.saveOrUpdateDetails(sid, detailList); |
|
|
|
} |
|
|
|
asBusclaimCheckApply.setNodeState("待提交"); |
|
|
|
baseMapper.insert(asBusclaimCheckApply); |
|
|
|
|
|
|
|
} else { |
|
|
|
AsBusclaimCheckApply asBusclaimCheckApply = fetchBySid(sid); |
|
|
|
if (asBusclaimCheckApply == null) { |
|
|
|
return rb.setMsg("该单据不存在"); |
|
|
|
} |
|
|
|
BeanUtil.copyProperties(dto, asBusclaimCheckApply, "sid"); |
|
|
|
List<String> fileList = dto.getFileList(); |
|
|
|
List<AsBusclaimCheckApplyFile> fileList = dto.getFileList(); |
|
|
|
fileList.removeAll(Collections.singleton(null)); |
|
|
|
if (!fileList.isEmpty()) { |
|
|
|
String files = String.join(",", fileList).replaceAll(fileUploadComponent.getUrlPrefix(), ""); |
|
|
|
asBusclaimCheckApply.setFile(files); |
|
|
|
String url = ""; |
|
|
|
for (AsBusclaimCheckApplyFile asBusclaimCheckApplyFile : fileList) { |
|
|
|
String filePath = asBusclaimCheckApplyFile.getUrl().replace(fileUploadComponent.getUrlPrefix(), ""); |
|
|
|
url = url + filePath + ","; |
|
|
|
} |
|
|
|
asBusclaimCheckApply.setFile(url); |
|
|
|
List<AsBusclaimCheckApplyDetailDto> detailList = dto.getDetailsList(); |
|
|
|
detailList.removeAll(Collections.singleton(null)); |
|
|
|
if (!detailList.isEmpty()) { |
|
|
@ -189,21 +255,27 @@ public class AsBusclaimCheckApplyService extends MybatisBaseService<AsBusclaimCh |
|
|
|
BeanUtil.copyProperties(asBusclaimCheckApply, asBusclaimCheckApplyDetailsVo); |
|
|
|
if (StringUtils.isNotBlank(asBusclaimCheckApply.getFile())) { |
|
|
|
List<String> fileList = Arrays.asList(asBusclaimCheckApply.getFile().split(",")).stream().map(c -> fileUploadComponent.getUrlPrefix() + c).collect(Collectors.toList()); |
|
|
|
asBusclaimCheckApplyDetailsVo.setFileList(fileList); |
|
|
|
List<AsBusclaimCheckApplyFile> asBusclaimCheckApplyFiles = new ArrayList<>(); |
|
|
|
for (String s : fileList) { |
|
|
|
AsBusclaimCheckApplyFile asBusclaimCheckApplyFile = new AsBusclaimCheckApplyFile(); |
|
|
|
asBusclaimCheckApplyFile.setUrl(s); |
|
|
|
asBusclaimCheckApplyFiles.add(asBusclaimCheckApplyFile); |
|
|
|
} |
|
|
|
asBusclaimCheckApplyDetailsVo.setFileList(asBusclaimCheckApplyFiles); |
|
|
|
} |
|
|
|
List<AsBusclaimCheckApplyDetailVo> detailList = asBusclaimCheckApplyDetailService.selectDetails(sid); |
|
|
|
detailList.removeAll(Collections.singleton(null)); |
|
|
|
if (!detailList.isEmpty()) { |
|
|
|
for (int i = 0; i < detailList.size(); i++) { |
|
|
|
AsBusclaimCheckApplyDetailVo asBusclaimCheckApplyDetailVo = detailList.get(i); |
|
|
|
String billNo = asBusclaimCheckApplyDetailVo.getClaimBillNo(); |
|
|
|
AsBusclaimBill asBusclaimBill = asBusclaimBillService.selectByBillNo(billNo); |
|
|
|
if (asBusclaimBill != null) { |
|
|
|
asBusclaimCheckApplyDetailVo.setHourAmount1(asBusclaimBill.getHourAmount().toString()); |
|
|
|
asBusclaimCheckApplyDetailVo.setGoodsAmount1(asBusclaimBill.getGoodsAmount().toString()); |
|
|
|
asBusclaimCheckApplyDetailVo.setClaimOutAmount1(asBusclaimBill.getClaimOutAmount().toString()); |
|
|
|
asBusclaimCheckApplyDetailVo.setClaimSubsidyAmount1(asBusclaimBill.getClaimSubsidyAmount().toString()); |
|
|
|
asBusclaimCheckApplyDetailVo.setClaimOtherAmount1(asBusclaimBill.getClaimOtherAmount().toString()); |
|
|
|
AsBusrepairBill asBusrepairBill = asBusrepairBillService.selectByBillNo(asBusclaimCheckApplyDetailVo.getRepairBillNo()); |
|
|
|
if (asBusrepairBill != null) { |
|
|
|
asBusclaimCheckApplyDetailVo.setHourAmount1("0"); |
|
|
|
asBusclaimCheckApplyDetailVo.setGoodsAmount1("0"); |
|
|
|
asBusclaimCheckApplyDetailVo.setClaimOutAmount1("0"); |
|
|
|
asBusclaimCheckApplyDetailVo.setClaimSubsidyAmount1("0"); |
|
|
|
asBusclaimCheckApplyDetailVo.setClaimOtherAmount1("0"); |
|
|
|
asBusclaimCheckApplyDetailVo.setAll1("0"); |
|
|
|
} |
|
|
|
AsBusclaimInvoiceBillDetail asBusclaimInvoiceBillDetail = asBusclaimInvoiceBillDetailService.fetchBySid(asBusclaimCheckApplyDetailVo.getBillInvoiceDetailSid()); |
|
|
|
if (asBusclaimInvoiceBillDetail != null) { |
|
|
@ -212,9 +284,12 @@ public class AsBusclaimCheckApplyService extends MybatisBaseService<AsBusclaimCh |
|
|
|
asBusclaimCheckApplyDetailVo.setClaimOutAmount2(asBusclaimInvoiceBillDetail.getClaimOutAmount().toString()); |
|
|
|
asBusclaimCheckApplyDetailVo.setClaimSubsidyAmount2(asBusclaimInvoiceBillDetail.getClaimSubsidyAmount().toString()); |
|
|
|
asBusclaimCheckApplyDetailVo.setClaimOtherAmount2(asBusclaimInvoiceBillDetail.getClaimOtherAmount().toString()); |
|
|
|
asBusclaimCheckApplyDetailVo.setAll2(asBusclaimInvoiceBillDetail.getClaimHourAmount().add(asBusclaimInvoiceBillDetail.getClaimGoodsAmount()).add(asBusclaimInvoiceBillDetail.getClaimOutAmount()).add(asBusclaimInvoiceBillDetail.getClaimSubsidyAmount()).add(asBusclaimInvoiceBillDetail.getClaimOtherAmount()).toString()); |
|
|
|
} |
|
|
|
asBusclaimCheckApplyDetailVo.setAll3(new BigDecimal(asBusclaimCheckApplyDetailVo.getAll2()).subtract(new BigDecimal(asBusclaimCheckApplyDetailVo.getAll1())).toString()); |
|
|
|
asBusclaimCheckApplyDetailVo.setAll4(new BigDecimal(asBusclaimCheckApplyDetailVo.getClaimHourAmount()).add(new BigDecimal(asBusclaimCheckApplyDetailVo.getClaimGoodsAmount()).add(new BigDecimal(asBusclaimCheckApplyDetailVo.getClaimOutAmount()).add(new BigDecimal(asBusclaimCheckApplyDetailVo.getClaimSubsidyAmount()).add(new BigDecimal(asBusclaimCheckApplyDetailVo.getClaimOtherAmount()).subtract(new BigDecimal(asBusclaimCheckApplyDetailVo.getReserved())))))).toString()); |
|
|
|
} |
|
|
|
asBusclaimCheckApplyDetailsVo.setDetailList(detailList); |
|
|
|
asBusclaimCheckApplyDetailsVo.setDetailsList(detailList); |
|
|
|
} |
|
|
|
return rb.success().setData(asBusclaimCheckApplyDetailsVo); |
|
|
|
} |
|
|
@ -243,7 +318,7 @@ public class AsBusclaimCheckApplyService extends MybatisBaseService<AsBusclaimCh |
|
|
|
appMap.put("sid", businessSid); |
|
|
|
variables.put("app", appMap); |
|
|
|
//用户的部门全路径sid
|
|
|
|
SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(asBusclaimCheckApply.getCreateDeptSid()).getData(); |
|
|
|
SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(asBusclaimCheckApply.getDeptSid()).getData(); |
|
|
|
if (sysOrganization != null) { |
|
|
|
bv.setOrgSidPath(sysOrganization.getOrgSidPath()); |
|
|
|
} |
|
|
@ -336,7 +411,7 @@ public class AsBusclaimCheckApplyService extends MybatisBaseService<AsBusclaimCh |
|
|
|
appMap.put("sid", businessSid); |
|
|
|
variables.put("app", appMap); |
|
|
|
bv.setFormVariables(variables); |
|
|
|
SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(asBusclaimCheckApply.getCreateDeptSid()).getData(); |
|
|
|
SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(asBusclaimCheckApply.getDeptSid()).getData(); |
|
|
|
if (sysOrganization != null) { |
|
|
|
bv.setOrgSidPath(sysOrganization.getOrgSidPath()); |
|
|
|
} |
|
|
|