企业端起草组操作列添加联系人维护

This commit is contained in:
梁琦涛
2024-01-11 09:17:14 +08:00
parent f43a389c6e
commit 38967e1245
6 changed files with 283 additions and 15 deletions
@@ -12,6 +12,10 @@ import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.PasswordUtil;
import com.jero.common.util.ValidUtil;
import com.jero.common.util.oConvertUtils;
import com.jero.contract.entity.PayIncomeContract;
import com.jero.contract.entity.PayIncomeContractAssociated;
import com.jero.contract.service.IPayIncomeContractAssociatedService;
import com.jero.contract.service.IPayIncomeContractService;
import com.jero.drafting.entity.PayDraftingGroup;
import com.jero.drafting.entity.PayDraftingGroupSubItem;
import com.jero.drafting.entity.PayDraftingGroupSubItemContacts;
@@ -20,7 +24,17 @@ import com.jero.drafting.service.IPayDraftingGroupSubItemContactsService;
import com.jero.drafting.service.IPayDraftingGroupSubItemService;
import com.jero.drafting.vo.CheckVo;
import com.jero.drafting.vo.PayDraftingGroupSubItemExcel;
import com.jero.meeting.vo.CheckVO;
import com.jero.mail.entity.PayMailBill;
import com.jero.mail.entity.PayMailBillProject;
import com.jero.mail.service.IPayMailBillProjectService;
import com.jero.mail.service.IPayMailBillService;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.service.ISysUserService;
import com.jero.pack.entity.PayPackCompany;
import com.jero.pack.entity.PayPackCompanyProject;
import com.jero.pack.service.IPayPackCompanyProjectService;
import com.jero.pack.service.IPayPackCompanyService;
import com.jero.project.common.PayProjectCommon;
import com.jero.temporary.entity.PayContactsManagementTemporary;
import com.jero.temporary.service.IPayContactsManagementTemporaryService;
import io.swagger.annotations.Api;
@@ -63,6 +77,20 @@ public class PayDraftingGroupSubItemController extends JeroController<PayDraftin
private RolePermissionService rolePermissionService;
@Resource
private IPayContactsManagementTemporaryService payContactsManagementTemporaryService;
@Resource
private IPayMailBillService payMailBillService;
@Resource
private IPayPackCompanyService payPackCompanyService;
@Resource
private IPayMailBillProjectService payMailBillProjectService;
@Resource
private IPayIncomeContractAssociatedService payIncomeContractAssociatedService;
@Resource
private ISysUserService sysUserService;
@Resource
private IPayPackCompanyProjectService payPackCompanyProjectService;
@Resource
private IPayIncomeContractService payIncomeContractService;
/**
* 分页列表查询
@@ -102,6 +130,156 @@ public class PayDraftingGroupSubItemController extends JeroController<PayDraftin
return Result.OK(pageList);
}
/**
* 企业端-起草组项目-分页列表查询
* 起草组的企业联系人1,2,3、邮寄联系人、打包的企业联系人、打包联系人、关联合同的签订单位联系人
* @param payDraftingGroupSubItem 起草组项目成员
* @param pageNo 页数
* @param pageSize 条数
* @return
*/
@ApiOperation(value="起草组项目-企业端-分页列表查询", notes="起草组项目-企业端-分页列表查询")
@GetMapping(value = "/queryCompanyPageList")
public Result<?> queryCompanyPageList(PayDraftingGroupSubItem payDraftingGroupSubItem,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
if(Objects.isNull(sysUser)){
return Result.error("没有查到用户信息!");
}
Page<PayDraftingGroupSubItem> page = new Page<>(pageNo, pageSize);
List<Integer> listNeedInvoice = new ArrayList<>();
// if(!Objects.isNull(payDraftingGroupSubItem.getNeedInvoice())){
// // 需要发票 : 3为 需要发票,小程序需要
// if(Objects.equals(payDraftingGroupSubItem.getNeedInvoice(), PayProjectCommon.NEED_INVOICE3)){
// listNeedInvoice.add(1);
// listNeedInvoice.add(2);
// }else{
// listNeedInvoice.add(payDraftingGroupSubItem.getNeedInvoice());
// }
// }
if(!StringUtils.isBlank(payDraftingGroupSubItem.getChargeProject())){
payDraftingGroupSubItem.setChargeProject(oConvertUtils.replaceAllPercent(payDraftingGroupSubItem.getChargeProject()));
}
IPage<PayDraftingGroupSubItem> pageList;
//非企业管理员
if (!sysUser.getIsCompanyManager()) {
List<String> listProjectIds = new ArrayList<>();
// 工作组的企业联系人
LambdaQueryWrapper<PayDraftingGroupSubItemContacts> queryPayDraftingGroupSubItemContacts = new LambdaQueryWrapper<>();
queryPayDraftingGroupSubItemContacts.eq(PayDraftingGroupSubItemContacts::getContactsId,sysUser.getId());
List<PayDraftingGroupSubItemContacts> listPayDraftingGroupSubItemContacts = payDraftingGroupSubItemContactsService.list(queryPayDraftingGroupSubItemContacts);
if(!CollectionUtils.isEmpty(listPayDraftingGroupSubItemContacts)){
List<String> listProjectId = listPayDraftingGroupSubItemContacts.stream().map(PayDraftingGroupSubItemContacts::getDraftingGroupSubId).collect(Collectors.toList());
listProjectIds.addAll(listProjectId);
}
// 邮寄联系人
LambdaQueryWrapper<PayMailBill> queryPayMailBill = new LambdaQueryWrapper<>();
queryPayMailBill.eq(PayMailBill::getContactId,sysUser.getId());
List<PayMailBill> listPayMailBill = payMailBillService.list(queryPayMailBill);
if(!CollectionUtils.isEmpty(listPayMailBill)){
List<String> listId = listPayMailBill.stream().map(PayMailBill::getId).collect(Collectors.toList());
LambdaQueryWrapper<PayMailBillProject> queryPayMailBillProject = new LambdaQueryWrapper<>();
queryPayMailBillProject.in(PayMailBillProject::getBillId,listId);
List<PayMailBillProject> listPayMailBillProject = payMailBillProjectService.list(queryPayMailBillProject);
if(!CollectionUtils.isEmpty(listPayMailBillProject)){
List<String> listProjectId = listPayMailBillProject.stream().map(PayMailBillProject::getProjectId).collect(Collectors.toList());
listProjectIds.addAll(listProjectId);
}
}
// 打包的企业联系人和打包联系人
LambdaQueryWrapper<PayPackCompany> queryPayPackCompany = new LambdaQueryWrapper<>();
queryPayPackCompany.eq(PayPackCompany::getCompanyContactId,sysUser.getId()).or()
.eq(PayPackCompany::getPackContactId,sysUser.getId());
List<PayPackCompany> listPayPackCompany = payPackCompanyService.list(queryPayPackCompany);
if(!CollectionUtils.isEmpty(listPayPackCompany)){
List<String> listPayPackCompanyId = listPayPackCompany.stream().map(PayPackCompany::getId).collect(Collectors.toList());
LambdaQueryWrapper<PayPackCompanyProject> queryPayPackCompanyProject = new LambdaQueryWrapper<>();
queryPayPackCompanyProject.in(PayPackCompanyProject::getPackId,listPayPackCompanyId);
queryPayPackCompanyProject.eq(PayPackCompanyProject::getProjectType, PayProjectCommon.PROJECT_TYPE2);
List<PayPackCompanyProject> listPayPackCompanyProject = payPackCompanyProjectService.list(queryPayPackCompanyProject);
if(!CollectionUtils.isEmpty(listPayPackCompanyProject)){
List<String> listId = listPayPackCompanyProject.stream().map(PayPackCompanyProject::getProjectId).collect(Collectors.toList());
listProjectIds.addAll(listId);
}
}
// 关联合同的签订单位联系人
LambdaQueryWrapper<PayIncomeContract> queryPayIncomeContract = new LambdaQueryWrapper<>();
queryPayIncomeContract.eq(PayIncomeContract::getSignedContactsId,sysUser.getId());
List<PayIncomeContract> listPayIncomeContract = payIncomeContractService.list(queryPayIncomeContract);
if(!CollectionUtils.isEmpty(listPayIncomeContract)){
List<String> listId = listPayIncomeContract.stream().map(PayIncomeContract::getId).collect(Collectors.toList());
LambdaQueryWrapper<PayIncomeContractAssociated> queryPayIncomeContractAssociated = new LambdaQueryWrapper<>();
queryPayIncomeContractAssociated.in(PayIncomeContractAssociated::getContractId,listId);
queryPayIncomeContractAssociated.eq(PayIncomeContractAssociated::getProjectType,PayProjectCommon.PROJECT_TYPE2);
List<PayIncomeContractAssociated> listPayIncomeContractAssociated = payIncomeContractAssociatedService.list(queryPayIncomeContractAssociated);
if(!CollectionUtils.isEmpty(listPayIncomeContractAssociated)){
List<String> listProjectId = listPayIncomeContractAssociated.stream().map(PayIncomeContractAssociated::getProjectId).collect(Collectors.toList());
listProjectIds.addAll(listProjectId);
}
}
List<String> listProjectIdsNew = new ArrayList<>();
if(!CollectionUtils.isEmpty(listProjectIds)){
listProjectIdsNew = listProjectIds.stream().distinct().collect(Collectors.toList());
}else{
listProjectIdsNew.add("");
}
pageList = payDraftingGroupSubItemService.queryCompanyPageList(page, payDraftingGroupSubItem,listNeedInvoice,listProjectIdsNew);
}else{
pageList = payDraftingGroupSubItemService.queryCompanyPageListByCompanyManager(page, payDraftingGroupSubItem,listNeedInvoice,sysUser.getCompanyId());
}
if(!CollectionUtils.isEmpty(pageList.getRecords())){
List<PayDraftingGroupSubItem> list = pageList.getRecords();
List<String> listIds = list.stream().map(PayDraftingGroupSubItem::getDraftingGroupId).collect(Collectors.toList());
LambdaQueryWrapper<PayDraftingGroup> queryPayDraftingGroup = new LambdaQueryWrapper<>();
queryPayDraftingGroup.in(PayDraftingGroup::getId,listIds);
List<PayDraftingGroup> listPayDraftingGroup = payDraftingGroupService.list(queryPayDraftingGroup);
if(CollectionUtils.isEmpty(listPayDraftingGroup)){
return Result.error("工作组不存在");
}
List<String> listString = listPayDraftingGroup.stream().map(PayDraftingGroup::getPrincipalIdA).collect(Collectors.toList());
LambdaQueryWrapper<SysUser> querySysUser = new LambdaQueryWrapper<>();
querySysUser.in(SysUser::getId,listString);
List<SysUser> listSysUser = sysUserService.list(querySysUser);
list.forEach(p->{
// if(Objects.isNull(p.getReceivableAmount())){
// p.setReceivableAmount(new BigDecimal("0.00"));
// }
// if(Objects.isNull(p.getPaidAmount())){
// p.setPaidAmount(new BigDecimal("0.00"));
// }
List<PayDraftingGroup> listPrincipalIdA = listPayDraftingGroup.stream().filter(item->Objects.equals(item.getId(),p.getDraftingGroupId())).collect(Collectors.toList());
if(!CollectionUtils.isEmpty(listPrincipalIdA)){
if(!CollectionUtils.isEmpty(listSysUser)){
List<SysUser> listSysUserNew = listSysUser.stream().filter(item->Objects.equals(item.getId(),listPrincipalIdA.get(0).getPrincipalIdA())).collect(Collectors.toList());
if(!CollectionUtils.isEmpty(listSysUserNew)){
if(!StringUtils.isBlank(listSysUserNew.get(0).getPhone())){
p.setPrincipalPhone(PasswordUtil.decrypt(listSysUserNew.get(0).getPhone()));
}
if(!StringUtils.isBlank(listSysUserNew.get(0).getEmail())){
p.setPrincipalEmail(PasswordUtil.decrypt(listSysUserNew.get(0).getEmail()));
}
p.setPrincipalName(listSysUserNew.get(0).getRealname());
}
}
p.setOperationCycle(listPrincipalIdA.get(0).getOperationCycle());
p.setMissionAndObjectives(listPrincipalIdA.get(0).getMissionAndObjectives());
p.setPrincipalName(listPrincipalIdA.get(0).getPrincipalNameA());
p.setYear(listPrincipalIdA.get(0).getYear());
}
});
pageList.setRecords(list);
}
return Result.OK(pageList);
}
/**
* 添加
*
@@ -4,6 +4,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.drafting.entity.PayDraftingGroupSubItem;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* <p>
@@ -33,4 +36,20 @@ public interface PayDraftingGroupSubItemMapper extends BaseMapper<PayDraftingGro
*/
IPage<PayDraftingGroupSubItem> publishReminderList(Page<PayDraftingGroupSubItem> page, PayDraftingGroupSubItem payDraftingGroupSubItem);
/**
* @Description 企业端-我的工作组分页查询
* @Author lqt
* @Date 2021/9/29
* @Param listProjectIds 项目成员id集合
* @Return
* @Exception
*/
IPage<PayDraftingGroupSubItem> queryCompanyPageList(Page<PayDraftingGroupSubItem> page, @Param("payDraftingGroupSubItem") PayDraftingGroupSubItem payDraftingGroupSubItem, @Param("listNeedInvoice") List<Integer> listNeedInvoice, @Param("listProjectIds") List<String> listProjectIds);
IPage<PayDraftingGroupSubItem> queryCompanyPageList(Page<PayDraftingGroupSubItem> page,@Param("payDraftingGroupSubItem") PayDraftingGroupSubItem payDraftingGroupSubItem,@Param("listProjectIds") List<String> listProjectIds);
/**
* 企业端-管理员-我的工作组分页查询
*/
IPage<PayDraftingGroupSubItem> queryCompanyPageListByCompanyManager(Page<PayDraftingGroupSubItem> page, @Param("payDraftingGroupSubItem") PayDraftingGroupSubItem payDraftingGroupSubItem, @Param("listNeedInvoice") List<Integer> listNeedInvoice, @Param("companyId") String companyId);
}
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jero.drafting.mapper.PayDraftingGroupSubItemMapper">
<select id="queryPageList" resultType="com.jero.drafting.entity.PayDraftingGroupSubItem">
SELECT
pdgs.id,
@@ -38,7 +38,7 @@
GROUP BY pdgs.id
ORDER BY pdgs.create_time desc
</select>
<select id="publishReminderList" resultType="com.jero.drafting.entity.PayDraftingGroupSubItem">
select distinct pcm.id as id,pcm.name contactsTemporaryNameOne,pcm.company_name chargeCompanyTemporaryName
,if(pmrr.id,'1','0') remind,
@@ -66,4 +66,59 @@
</if>
</where>
</select>
<select id="queryCompanyPageList" resultType="com.jero.drafting.entity.PayDraftingGroupSubItem">
select pwgs.*,pwg.drafting_group_project as chargeProject from pay_drafting_group_subitem pwgs
left join pay_drafting_group pwg ON pwgs.drafting_group_id = pwg.id
<where>
<if test="payDraftingGroupSubItem.chargeProject != null and payDraftingGroupSubItem.chargeProject != ''">
AND pwg.drafting_group_project like concat('%',concat(#{payDraftingGroupSubItem.chargeProject},'%'))
</if>
<if test="payDraftingGroupSubItem.pack != null">
AND pwgs.pack = #{payDraftingGroupSubItem.pack}
</if>
<if test="payDraftingGroupSubItem.year != null and payDraftingGroupSubItem.year != ''">
AND pwg.year = #{payDraftingGroupSubItem.year}
</if>
<if test="listNeedInvoice != null and listNeedInvoice.size() > 0">
AND pwgs.need_invoice in
<foreach collection="listNeedInvoice" index="index" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
<if test="listProjectIds != null and listProjectIds.size() > 0">
AND pwgs.id in
<foreach collection="listProjectIds" index="index" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
</where>
group by pwgs.id order by pwgs.create_time desc
</select>
<select id="queryCompanyPageListByCompanyManager"
resultType="com.jero.drafting.entity.PayDraftingGroupSubItem">
select pwgs.*,pwg.drafting_group_project as chargeProject from pay_drafting_group_subitem pwgs
left join pay_drafting_group pwg ON pwgs.drafting_group_id = pwg.id
<where>
<if test="payDraftingGroupSubItem.chargeProject != null and payDraftingGroupSubItem.chargeProject != ''">
AND pwg.drafting_group_project like concat('%',concat(#{payDraftingGroupSubItem.chargeProject},'%'))
</if>
<if test="payDraftingGroupSubItem.pack != null">
AND pwgs.pack = #{payDraftingGroupSubItem.pack}
</if>
<if test="payDraftingGroupSubItem.year != null and payDraftingGroupSubItem.year != ''">
AND pwg.year = #{payDraftingGroupSubItem.year}
</if>
<if test="listNeedInvoice != null and listNeedInvoice.size() > 0">
AND pwgs.need_invoice in
<foreach collection="listNeedInvoice" index="index" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
<if test="companyId != null and companyId != ''">
and pwgs.charge_company_id = #{companyId}
</if>
</where>
group by pwgs.id order by pwgs.create_time desc
</select>
</mapper>
@@ -5,9 +5,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.drafting.entity.PayDraftingGroupSubItem;
import com.jero.drafting.vo.CheckVo;
import com.jero.project.entity.PayWorkingGroupSubItem;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
/**
* <p>
@@ -71,4 +71,19 @@ public interface IPayDraftingGroupSubItemService extends IService<PayDraftingGro
* @param checkVO
*/
void checkRegister(CheckVo checkVO);
/**
* @Description 企业端-我的工作组分页查询
* @Author lqt
* @Date 2021/9/29
* @Param listProjectIds 项目成员id集合
* @Return
* @Exception
*/
IPage<PayDraftingGroupSubItem> queryCompanyPageList(Page<PayDraftingGroupSubItem> page, PayDraftingGroupSubItem payWorkingGroupSubItem, List<Integer> listNeedInvoice, List<String> listProjectIds);
/**
* 企业端-管理员-我的工作组分页查询
*/
IPage<PayDraftingGroupSubItem> queryCompanyPageListByCompanyManager(Page<PayDraftingGroupSubItem> page, PayDraftingGroupSubItem payWorkingGroupSubItem, List<Integer> listNeedInvoice, String companyId);
}
@@ -14,7 +14,6 @@ import com.jero.company.entity.PayCompanyManagement;
import com.jero.company.entity.PayContactsManagement;
import com.jero.company.service.IPayCompanyManagementService;
import com.jero.company.service.IPayContactsManagementService;
import com.jero.contract.service.IPayIncomeContractService;
import com.jero.drafting.common.DraftingConstant;
import com.jero.drafting.entity.PayDraftingGroup;
import com.jero.drafting.entity.PayDraftingGroupSubItem;
@@ -25,15 +24,8 @@ import com.jero.drafting.service.IPayDraftingGroupService;
import com.jero.drafting.service.IPayDraftingGroupSubItemContactsService;
import com.jero.drafting.service.IPayDraftingGroupSubItemService;
import com.jero.drafting.vo.CheckVo;
import com.jero.meeting.common.MeetingCommon;
import com.jero.meeting.entity.PayMeeting;
import com.jero.meeting.entity.PayMeetingContacts;
import com.jero.meeting.entity.PayMeetingSituation;
import com.jero.meeting.service.IPayMeetingRemindRecordService;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.service.ISysUserService;
import com.jero.pack.entity.PayPackCompanyProject;
import com.jero.pack.service.IPayPackCompanyProjectService;
import com.jero.temporary.entity.PayCompanyManagementTemporary;
import com.jero.temporary.entity.PayContactsManagementTemporary;
import com.jero.temporary.service.IPayCompanyManagementTemporaryService;
@@ -48,6 +40,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.*;
@@ -703,4 +696,14 @@ public class PayDraftingGroupSubItemServiceImpl extends ServiceImpl<PayDraftingG
throw new JeroBootException("没有审核的权限");
}
}
}
@Override
public IPage<PayDraftingGroupSubItem> queryCompanyPageList(Page<PayDraftingGroupSubItem> page, PayDraftingGroupSubItem payWorkingGroupSubItem, List<Integer> listNeedInvoice, List<String> listProjectIds) {
return payDraftingGroupSubItemMapper.queryCompanyPageList( page, payWorkingGroupSubItem,listNeedInvoice, listProjectIds);
}
@Override
public IPage<PayDraftingGroupSubItem> queryCompanyPageListByCompanyManager(Page<PayDraftingGroupSubItem> page, PayDraftingGroupSubItem payWorkingGroupSubItem, List<Integer> listNeedInvoice, String companyId) {
return payDraftingGroupSubItemMapper.queryCompanyPageListByCompanyManager( page, payWorkingGroupSubItem,listNeedInvoice,companyId);
}
}
@@ -219,7 +219,6 @@ public class PayWorkingGroupDistributionRecordServiceImpl extends ServiceImpl<Pa
throw new JeroBootException("起草组不存在!");
}
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
// todo 权限替换
if(!rolePermissionService.getRolePermission("fileMaintenance:distribute")
&& !Objects.equals(payDraftingGroup.getPrincipalIdA(),sysUser.getId())
&& !Objects.equals(payDraftingGroup.getPrincipalIdB(),sysUser.getId())){
@@ -445,7 +444,6 @@ public class PayWorkingGroupDistributionRecordServiceImpl extends ServiceImpl<Pa
throw new JeroBootException("起草组不存在!");
}
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
// todo 权限修改
if(!rolePermissionService.getRolePermission("fileMaintenance:distribute")
&& !Objects.equals(payDraftingGroup.getPrincipalIdA(),sysUser.getId())
&& !Objects.equals(payDraftingGroup.getPrincipalIdB(),sysUser.getId())){