|
|
@ -26,33 +26,28 @@ |
|
|
|
package com.yxt.anrui.oa.biz.adexpatriatesapply; |
|
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil; |
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage; |
|
|
|
import com.yxt.anrui.oa.biz.adexpatriatesdetail.AdExpatriatesDetailDto; |
|
|
|
import com.yxt.anrui.oa.biz.adexpatriatesdetail.AdExpatriatesDetailService; |
|
|
|
import com.yxt.anrui.oa.biz.adexpatriatesdetail.AdExpatriatesDetailVo; |
|
|
|
import com.yxt.anrui.oa.biz.adexpatriatesdetail.AdExpatriatesListDetailVo; |
|
|
|
import com.yxt.anrui.oa.biz.oaappendix.OaAppendixService; |
|
|
|
import com.yxt.anrui.oa.biz.oaform.FormCommon; |
|
|
|
import com.yxt.anrui.oa.biz.oaform.OaForm; |
|
|
|
import com.yxt.anrui.oa.biz.oaform.OaFormRuleEnum; |
|
|
|
import com.yxt.anrui.oa.biz.oaform.OaFormService; |
|
|
|
import com.yxt.anrui.oa.biz.oaform.flowable.*; |
|
|
|
import com.yxt.anrui.oa.biz.oamendapply.OaMendApplyDto; |
|
|
|
import com.yxt.anrui.oa.biz.oamendapply.OaMendApplyVo; |
|
|
|
import com.yxt.anrui.oa.feign.file.OaFileEnum; |
|
|
|
import com.yxt.anrui.oa.feign.flowable.flow.ProcDefEnum; |
|
|
|
import com.yxt.anrui.oa.feign.portal.sysorganization.SysOrganizationFeign; |
|
|
|
import com.yxt.anrui.oa.feign.portal.sysorganization.SysOrganizationVo; |
|
|
|
import org.apache.commons.lang3.StringUtils; |
|
|
|
import com.yxt.common.base.service.MybatisBaseService; |
|
|
|
import com.yxt.common.base.utils.PagerUtil; |
|
|
|
import com.yxt.common.core.query.PagerQuery; |
|
|
|
import com.yxt.common.core.result.ResultBean; |
|
|
|
import com.yxt.common.core.vo.PagerVo; |
|
|
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
|
|
|
import java.util.Collections; |
|
|
|
import java.util.HashMap; |
|
|
|
import java.util.List; |
|
|
|
import java.util.Map; |
|
|
|
import java.util.*; |
|
|
|
|
|
|
|
@Service |
|
|
|
public class AdExpatriatesApplyService extends MybatisBaseService<AdExpatriatesApplyMapper, AdExpatriatesApply> { |
|
|
@ -63,19 +58,51 @@ public class AdExpatriatesApplyService extends MybatisBaseService<AdExpatriatesA |
|
|
|
private OaFormService oaFormService; |
|
|
|
@Autowired |
|
|
|
private AdExpatriatesDetailService adExpatriatesDetailService; |
|
|
|
@Autowired |
|
|
|
private SysOrganizationFeign sysOrganizationFeign; |
|
|
|
|
|
|
|
public ResultBean<AdExpatriatesApplyVo> getSaveInit(String userSid, String orgPath) { |
|
|
|
ResultBean<AdExpatriatesApplyVo> rb = ResultBean.fireFail(); |
|
|
|
AdExpatriatesApplyVo adExpatriatesApplyVo = new AdExpatriatesApplyVo(); |
|
|
|
adExpatriatesApplyVo.setCreateBySid(userSid); |
|
|
|
adExpatriatesApplyVo.setOrgSidPath(orgPath); |
|
|
|
return rb.success().setData(adExpatriatesApplyVo); |
|
|
|
} |
|
|
|
|
|
|
|
public PagerVo<AdExpatriatesApplyVo> listPageVo(PagerQuery<AdExpatriatesApplyQuery> pq) { |
|
|
|
AdExpatriatesApplyQuery query = pq.getParams(); |
|
|
|
QueryWrapper<AdExpatriatesApply> qw = new QueryWrapper<>(); |
|
|
|
if (query != null) { |
|
|
|
if (StringUtils.isNotBlank(query.getBillNo())) { |
|
|
|
qw.like("ofm.billNo", query.getBillNo()); |
|
|
|
public ResultBean<AdExpatriatesApplyVo> getUpdateInit(String sid) { |
|
|
|
ResultBean<AdExpatriatesApplyVo> rb = ResultBean.fireFail(); |
|
|
|
AdExpatriatesApplyVo adExpatriatesApplyVo = new AdExpatriatesApplyVo(); |
|
|
|
AdExpatriatesApply adExpatriatesApply = fetchBySid(sid); |
|
|
|
if (adExpatriatesApply == null) { |
|
|
|
return rb.setMsg("该申请不存在"); |
|
|
|
} |
|
|
|
// adExpatriatesApplyVo.setTestPage(adExpatriatesApply.getTestPage());
|
|
|
|
OaForm oaForm = oaFormService.fetchBySid(sid); |
|
|
|
adExpatriatesApplyVo.setTaskId(oaForm.getTaskId()); |
|
|
|
adExpatriatesApplyVo.setProcInsId(oaForm.getProcInstId()); |
|
|
|
//根据部门sid获取orgPath并赋值
|
|
|
|
SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(oaForm.getDeptSid()).getData(); |
|
|
|
String orgSidPath = organizationVo.getOrgSidPath(); |
|
|
|
adExpatriatesApplyVo.setOrgSidPath(orgSidPath); |
|
|
|
adExpatriatesApplyVo.setCreateBySid(oaForm.getCreateBySid()); |
|
|
|
BeanUtil.copyProperties(adExpatriatesApply, adExpatriatesApplyVo); |
|
|
|
List<AdExpatriatesDetailVo> list = adExpatriatesDetailService.getUpdateInit(sid); |
|
|
|
list.removeAll(Collections.singleton(null)); |
|
|
|
if (!list.isEmpty()) { |
|
|
|
list.stream().forEach(details -> { |
|
|
|
FormCommon deptObj = FormCommon.of(details.getDeptKey(), details.getDeptValue()); |
|
|
|
details.setDeptObj(deptObj); |
|
|
|
FormCommon jobObj = FormCommon.of(details.getJobKey(), details.getJobValue()); |
|
|
|
details.setJobObj(jobObj); |
|
|
|
}); |
|
|
|
} |
|
|
|
IPage<AdExpatriatesApply> page = PagerUtil.queryToPage(pq); |
|
|
|
IPage<AdExpatriatesApplyVo> pagging = baseMapper.selectPageVo(page, qw); |
|
|
|
PagerVo<AdExpatriatesApplyVo> p = PagerUtil.pageToVo(pagging, null); |
|
|
|
return p; |
|
|
|
List<String> files = oaAppendixService.selectByLinkSid(sid, "图片"); |
|
|
|
adExpatriatesApplyVo.setFiles(files); |
|
|
|
List<String> appes = oaAppendixService.selectByLinkSid(sid, "文件"); |
|
|
|
adExpatriatesApplyVo.setAppes(appes); |
|
|
|
adExpatriatesApplyVo.setList(list); |
|
|
|
adExpatriatesApplyVo.setSid(sid); |
|
|
|
return rb.success().setData(adExpatriatesApplyVo); |
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean<String> saveOrUpdateDto(AdExpatriatesApplyDto dto) { |
|
|
@ -83,7 +110,7 @@ public class AdExpatriatesApplyService extends MybatisBaseService<AdExpatriatesA |
|
|
|
String sid = dto.getSid(); |
|
|
|
List<String> files = dto.getFiles(); |
|
|
|
List<String> appes = dto.getAppes(); |
|
|
|
List<AdExpatriatesDetailDto> adExpatriatesDetailList = dto.getAdExpatriatesDetailList(); |
|
|
|
List<AdExpatriatesDetailDto> list = dto.getList(); |
|
|
|
if (StringUtils.isBlank(sid)) { |
|
|
|
// 新建操作
|
|
|
|
AdExpatriatesApply entity = new AdExpatriatesApply(); |
|
|
@ -100,24 +127,13 @@ public class AdExpatriatesApplyService extends MybatisBaseService<AdExpatriatesA |
|
|
|
entity.setFormSid(resultBean.getData()); |
|
|
|
baseMapper.insert(entity); |
|
|
|
sid = entity.getSid(); |
|
|
|
//保存认定人员列表信息
|
|
|
|
for (AdExpatriatesDetailDto adExpatriatesDetailDto : adExpatriatesDetailList) { |
|
|
|
adExpatriatesDetailDto.setMainSid(sid); |
|
|
|
adExpatriatesDetailService.insertByDto(adExpatriatesDetailDto); |
|
|
|
} |
|
|
|
} else { |
|
|
|
// 更新操作
|
|
|
|
AdExpatriatesApply entity = fetchBySid(sid); |
|
|
|
BeanUtil.copyProperties(dto, entity, "id", "sid"); |
|
|
|
baseMapper.updateById(entity); |
|
|
|
//删除相关认定人员列表信息
|
|
|
|
adExpatriatesDetailService.delByMainSid(sid); |
|
|
|
//保存认定人员列表信息
|
|
|
|
for (AdExpatriatesDetailDto adExpatriatesDetailDto : adExpatriatesDetailList) { |
|
|
|
adExpatriatesDetailDto.setMainSid(sid); |
|
|
|
adExpatriatesDetailService.insertByDto(adExpatriatesDetailDto); |
|
|
|
} |
|
|
|
} |
|
|
|
adExpatriatesDetailService.saveDetails(list, sid); |
|
|
|
// 处理附件
|
|
|
|
saveFiles(sid, files, OaFileEnum.ADEXPATRIATESAPPLY.getAttachType(), "图片"); |
|
|
|
saveFiles(sid, appes, OaFileEnum.ADEXPATRIATESAPPLY.getAttachType(), "文件"); |
|
|
@ -130,13 +146,42 @@ public class AdExpatriatesApplyService extends MybatisBaseService<AdExpatriatesA |
|
|
|
oaAppendixService.saveFile(sid, files, attachType, fileType); |
|
|
|
} |
|
|
|
|
|
|
|
public AdExpatriatesApplyVo fetchDetailsVoBySid(String sid) { |
|
|
|
AdExpatriatesApplyVo vo = baseMapper.fetchDetailsVoBySid(sid); |
|
|
|
List<String> files = oaAppendixService.selectByLinkSid(sid); |
|
|
|
vo.setFiles(files); |
|
|
|
List<AdExpatriatesDetailVo> adExpatriatesDetailList = adExpatriatesDetailService.fetchByMainSid(sid); |
|
|
|
vo.setAdExpatriatesDetailList(adExpatriatesDetailList); |
|
|
|
return vo; |
|
|
|
public ResultBean delAll(String[] sids) { |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|
//查询该sid中是否有流程不是待提交的
|
|
|
|
int count = baseMapper.selectBySid(StringUtils.join(sids, ",")); |
|
|
|
if (count > 0) { |
|
|
|
return rb.setMsg("删除的数据中包含已提交或已办结审批的数据,删除失败"); |
|
|
|
} |
|
|
|
delBySids(sids); |
|
|
|
return rb.success(); |
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean<AdExpatriatesApplyDetailVo> details(String sid, String application) { |
|
|
|
ResultBean<AdExpatriatesApplyDetailVo> rb = ResultBean.fireFail(); |
|
|
|
AdExpatriatesApplyDetailVo adExpatriatesApplyDetailVo = baseMapper.details(sid); |
|
|
|
if (adExpatriatesApplyDetailVo == null) { |
|
|
|
return rb.setMsg("该申请不存在"); |
|
|
|
} |
|
|
|
List<String> files = oaAppendixService.selectByLinkSid(sid, "图片"); |
|
|
|
List<String> appes = oaAppendixService.selectByLinkSid(sid, "文件"); |
|
|
|
adExpatriatesApplyDetailVo.setFiles(files); |
|
|
|
adExpatriatesApplyDetailVo.setAppes(appes); |
|
|
|
|
|
|
|
List<AdExpatriatesDetailVo> updateInit = adExpatriatesDetailService.getUpdateInit(sid); |
|
|
|
List<AdExpatriatesListDetailVo> adExpatriatesListDetailVos = new ArrayList<>(); |
|
|
|
if (!updateInit.isEmpty()) { |
|
|
|
updateInit.stream().forEach(details -> { |
|
|
|
AdExpatriatesListDetailVo adExpatriatesListDetailVo = new AdExpatriatesListDetailVo(); |
|
|
|
BeanUtil.copyProperties(details,adExpatriatesListDetailVo); |
|
|
|
adExpatriatesListDetailVos.add(adExpatriatesListDetailVo); |
|
|
|
}); |
|
|
|
} |
|
|
|
adExpatriatesApplyDetailVo.setList(adExpatriatesListDetailVos); |
|
|
|
|
|
|
|
//基础字段赋值
|
|
|
|
BeanUtil.copyProperties(oaFormService.getDetails(sid), adExpatriatesApplyDetailVo); |
|
|
|
return rb.success().setData(adExpatriatesApplyDetailVo); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
@ -244,15 +289,4 @@ public class AdExpatriatesApplyService extends MybatisBaseService<AdExpatriatesA |
|
|
|
query.setFormVariables(formVariables); |
|
|
|
return oaFormService.getPreviousNodesForReject(query); |
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean delAll(String[] sids) { |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|
//查询该sid中是否有流程不是待提交的
|
|
|
|
int count = baseMapper.selectBySid(StringUtils.join(sids, ",")); |
|
|
|
if (count > 0) { |
|
|
|
return rb.setMsg("删除的数据中包含已提交或已办结审批的数据,删除失败"); |
|
|
|
} |
|
|
|
delBySids(sids); |
|
|
|
return rb.success(); |
|
|
|
} |
|
|
|
} |