Merge remote-tracking branch 'origin/master'

This commit is contained in:
zhangqinlin
2021-09-08 13:41:50 +08:00
19 changed files with 676 additions and 92 deletions
@@ -34,17 +34,16 @@ public class BaseUtil {
/** /**
* 修改封装 * 修改封装
* @param db 查询数据库得到的对象
* @param object 任意继承JeroEntity的对象 * @param object 任意继承JeroEntity的对象
* @param userId token解析得到的id * @param userId token解析得到的id
*/ */
public static void update(Object db,Object object, String userId){ public static void update(Object object, String userId){
JeroEntity baseDb = (JeroEntity) db;//查询数据库得到的对象 //要被封装的对象
JeroEntity jeroEntity = (JeroEntity) object;//要被封装的对象 JeroEntity jeroEntity = (JeroEntity) object;
jeroEntity.setCreateBy(baseDb.getCreateBy());//封装创建人 //封装修改人
jeroEntity.setCreateTime(baseDb.getCreateTime());//封装创建时间 jeroEntity.setUpdateBy(userId);
jeroEntity.setUpdateBy(userId);//封装修改人 //封装修改时间
jeroEntity.setUpdateTime(new Date());//封装修改时间 jeroEntity.setUpdateTime(new Date());
} }
/** /**
@@ -123,13 +123,12 @@ public class PayContactsManagementController extends JeroController<PayContactsM
return Result.error("企业不存在!"); return Result.error("企业不存在!");
} }
payContactsManagement.setCompanyName(payCompanyManagement.getCompanyName()); payContactsManagement.setCompanyName(payCompanyManagement.getCompanyName());
PayContactsManagement payContactsManagementNew;
try { try {
String phone = PasswordUtil.encrypt(payContactsManagement.getPhone()); String phone = PasswordUtil.encrypt(payContactsManagement.getPhone());
// 新增联系人前在次校验手机号是否存在 // 新增联系人前在次校验手机号是否存在
LambdaQueryWrapper<PayContactsManagement> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<PayContactsManagement> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(PayContactsManagement::getPhone,phone); queryWrapper.eq(PayContactsManagement::getPhone,phone);
payContactsManagementNew = payContactsManagementService.getOne(queryWrapper); PayContactsManagement payContactsManagementNew = payContactsManagementService.getOne(queryWrapper);
// 手机号存在,并且编辑id与查询不同,则校验不通过 // 手机号存在,并且编辑id与查询不同,则校验不通过
if(!Objects.isNull(payContactsManagementNew)) { if(!Objects.isNull(payContactsManagementNew)) {
return Result.error("手机号已存在!"); return Result.error("手机号已存在!");
@@ -138,6 +137,20 @@ public class PayContactsManagementController extends JeroController<PayContactsM
log.info("联系人管理-添加异常",e); log.info("联系人管理-添加异常",e);
return Result.error("手机号已存在!"); return Result.error("手机号已存在!");
} }
try {
// 新增联系人前校验同企业下联系人是否存在
LambdaQueryWrapper<PayContactsManagement> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(PayContactsManagement::getName,payContactsManagement.getName());
queryWrapper.eq(PayContactsManagement::getCompanyId,payContactsManagement.getCompanyId());
PayContactsManagement payContactsManagementNew = payContactsManagementService.getOne(queryWrapper);
// 姓名存在,则校验不通过
if(!Objects.isNull(payContactsManagementNew)) {
return Result.error("联系人姓名已存在!");
}
}catch (Exception e){
log.info("联系人管理-添加异常",e);
return Result.error("联系人姓名已存在!");
}
// 存在数据 // 存在数据
try { try {
if (!StringUtils.isBlank(payContactsManagement.getPhone())){ if (!StringUtils.isBlank(payContactsManagement.getPhone())){
@@ -185,6 +198,20 @@ public class PayContactsManagementController extends JeroController<PayContactsM
log.info("联系人管理-编辑异常",e); log.info("联系人管理-编辑异常",e);
return Result.error("手机号已存在!"); return Result.error("手机号已存在!");
} }
try {
// 新增联系人前校验同企业下联系人是否存在
LambdaQueryWrapper<PayContactsManagement> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(PayContactsManagement::getName,payContactsManagement.getName());
queryWrapper.eq(PayContactsManagement::getCompanyId,payContactsManagement.getCompanyId());
PayContactsManagement payContactsManagementNew = payContactsManagementService.getOne(queryWrapper);
// 姓名存在,并且编辑id与查询不同,则校验不通过
if(!Objects.isNull(payContactsManagementNew) && !Objects.equals(payContactsManagementNew.getId(),payContactsManagement.getId())) {
return Result.error("联系人姓名已存在!");
}
}catch (Exception e){
log.info("联系人管理-编辑异常",e);
return Result.error("联系人姓名已存在!");
}
try { try {
if (!StringUtils.isBlank(payContactsManagement.getPhone())){ if (!StringUtils.isBlank(payContactsManagement.getPhone())){
payContactsManagement.setPhone(PasswordUtil.encrypt(payContactsManagement.getPhone())); payContactsManagement.setPhone(PasswordUtil.encrypt(payContactsManagement.getPhone()));
@@ -266,9 +293,42 @@ public class PayContactsManagementController extends JeroController<PayContactsM
} }
}catch (Exception e){ }catch (Exception e){
log.info("联系人管理-通过手机号查询异常",e); log.info("联系人管理-通过手机号查询异常",e);
return Result.error("该机号已存在!"); return Result.error("该手机号已存在!");
} }
return Result.error("该机号已存在!"); return Result.error("该手机号已存在!");
}
/**
* 通过联系人姓名查询
*
* @param name 联系人姓名
* @return
*/
@ApiOperation(value="联系人管理-通过联系人姓名查询", notes="联系人管理-通过联系人姓名查询")
@GetMapping(value = "/queryByName")
public Result<?> queryByName(@RequestParam(name="name") String name,@RequestParam(name="companyId") String companyId) {
if(StringUtils.isBlank(name)){
return Result.error("联系人姓名不能为空!");
}
if(StringUtils.isBlank(companyId)){
return Result.error("企业id不能为空!");
}
if(name.length() > 20){
return Result.error("姓名长度不能大于20个字符!");
}
try {
LambdaQueryWrapper<PayContactsManagement> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(PayContactsManagement::getName,name);
queryWrapper.eq(PayContactsManagement::getCompanyId,companyId);
queryWrapper.eq(PayContactsManagement::getDataSource,PayContactsManagementCommon.DATA_SOURCE1);
PayContactsManagement payContactsManagement = payContactsManagementService.getOne(queryWrapper);
if(Objects.isNull(payContactsManagement)) {
return Result.OK("没有该联系人姓名!");
}
}catch (Exception e){
log.info("联系人管理-通过联系人姓名查询异常",e);
return Result.error("该联系人姓名已存在!");
}
return Result.error("该联系人姓名已存在!");
} }
/** /**
@@ -20,14 +20,10 @@ import com.jero.contract.entity.PayIncomeContract;
import com.jero.contract.entity.PayIncomeContractAssociated; import com.jero.contract.entity.PayIncomeContractAssociated;
import com.jero.contract.entity.PayIncomeContractAudit; import com.jero.contract.entity.PayIncomeContractAudit;
import com.jero.contract.entity.PayIncomeContractInstallment; import com.jero.contract.entity.PayIncomeContractInstallment;
import com.jero.contract.service.IPayIncomeContractAssociatedService;
import com.jero.contract.service.IPayIncomeContractAuditService; import com.jero.contract.service.IPayIncomeContractAuditService;
import com.jero.contract.service.IPayIncomeContractInstallmentService; import com.jero.contract.service.IPayIncomeContractInstallmentService;
import com.jero.contract.service.IPayIncomeContractService; import com.jero.contract.service.IPayIncomeContractService;
import com.jero.contract.vo.*; import com.jero.contract.vo.*;
import com.jero.project.service.IPayCommonProjectService;
import com.jero.project.service.IPayWorkingGroupService;
import com.jero.project.service.IPayWorkingGroupSubItemService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@@ -41,7 +37,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment; import org.springframework.core.env.Environment;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
@@ -1,24 +1,20 @@
package com.jero.contract.controller; package com.jero.contract.controller;
import java.util.Arrays; import java.util.Arrays;
import java.util.List;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.common.api.vo.Result; import com.jero.common.api.vo.Result;
import com.jero.common.aspect.annotation.AutoLog; import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.system.base.controller.JeroController; import com.jero.common.system.base.controller.JeroController;
import com.jero.common.system.query.QueryGenerator;
import com.jero.contract.entity.PayIncomeContract;
import com.jero.contract.entity.PaySpendingContract; import com.jero.contract.entity.PaySpendingContract;
import com.jero.contract.service.IPaySpendingContractService; import com.jero.contract.service.IPaySpendingContractService;
import com.jero.contract.vo.PayIncomeContractOutput; import com.jero.contract.vo.PaySpendingContractInput;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@@ -57,49 +53,49 @@ public class PaySpendingContractController extends JeroController<PaySpendingCon
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize, @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
@RequestParam(name="startTime",required = false) String startTime, @RequestParam(name="startTime",required = false) String startTime,
@RequestParam(name="endTime",required = false) String endTime) { @RequestParam(name="endTime",required = false) String endTime,
HttpServletRequest req) {
if(!StringUtils.isBlank(paySpendingContract.getContractNum()) && paySpendingContract.getContractNum().length() > 50){ if(!StringUtils.isBlank(paySpendingContract.getContractNum()) && paySpendingContract.getContractNum().length() > 50){
return Result.error("合同编号长度不能大于50个字符!"); return Result.error("合同编号长度不能大于50个字符!");
} }
if(!StringUtils.isBlank(paySpendingContract.getContractName()) && paySpendingContract.getContractName().length() > 50){ if(!StringUtils.isBlank(paySpendingContract.getContractName()) && paySpendingContract.getContractName().length() > 50){
return Result.error("合同名称长度不能大于50个字符!"); return Result.error("合同名称长度不能大于50个字符!");
} }
// Page<PaySpendingContractOutput> page = new Page<>(pageNo, pageSize); LambdaQueryWrapper<PaySpendingContract> queryWrapper = new LambdaQueryWrapper<>();
// IPage<PaySpendingContract> pageList = payIncomeContractService.queryPageList(page, payIncomeContract,chargeStatus,projectName,startTime,endTime); queryWrapper.eq(PaySpendingContract::getContractNum,paySpendingContract.getContractNum());
// if(!CollectionUtils.isEmpty(pageList.getRecords())){ queryWrapper.eq(PaySpendingContract::getContractName,paySpendingContract.getContractName());
// List<PayIncomeContractOutput> list = pageList.getRecords(); queryWrapper.ge(PaySpendingContract::getCreateTime,startTime);
// list.forEach(p->{ queryWrapper.le(PaySpendingContract::getCreateTime,endTime);
// Page<PaySpendingContract> page = new Page<>(pageNo, pageSize);
// }); IPage<PaySpendingContract> pageList = paySpendingContractService.page(page, queryWrapper);
// } return Result.OK(pageList);
return Result.OK(null);
} }
/** /**
* 添加 * 添加
* *
* @param paySpendingContract * @param input 支出合同
* @return * @return
*/ */
@AutoLog(value = "支出合同-添加") @AutoLog(value = "支出合同-添加")
@ApiOperation(value="支出合同-添加", notes="支出合同-添加") @ApiOperation(value="支出合同-添加", notes="支出合同-添加")
@PostMapping(value = "/add") @PostMapping(value = "/add")
public Result<?> add(@RequestBody PaySpendingContract paySpendingContract) { public Result<?> add(@RequestBody PaySpendingContractInput input) {
paySpendingContractService.save(paySpendingContract); PaySpendingContract paySpendingContract = paySpendingContractService.addPaySpendingContractInput(input);
return Result.OK("添加成功!"); return Result.OK("添加成功!",paySpendingContract);
} }
/** /**
* 编辑 * 编辑
* *
* @param paySpendingContract * @param input 支出合同
* @return * @return
*/ */
@AutoLog(value = "支出合同-编辑") @AutoLog(value = "支出合同-编辑")
@ApiOperation(value="支出合同-编辑", notes="支出合同-编辑") @ApiOperation(value="支出合同-编辑", notes="支出合同-编辑")
@PostMapping(value = "/edit") @PostMapping(value = "/edit")
public Result<?> edit(@RequestBody PaySpendingContract paySpendingContract) { public Result<?> edit(@RequestBody PaySpendingContractInput input) {
paySpendingContractService.updateById(paySpendingContract); paySpendingContractService.editPayIncomeContractInput(input);
return Result.OK("编辑成功!"); return Result.OK("编辑成功!");
} }
@@ -112,8 +108,11 @@ public class PaySpendingContractController extends JeroController<PaySpendingCon
@AutoLog(value = "支出合同-通过id删除") @AutoLog(value = "支出合同-通过id删除")
@ApiOperation(value="支出合同-通过id删除", notes="支出合同-通过id删除") @ApiOperation(value="支出合同-通过id删除", notes="支出合同-通过id删除")
@GetMapping(value = "/delete") @GetMapping(value = "/delete")
public Result<?> delete(@RequestParam(name="id",required=true) String id) { public Result<?> delete(@RequestParam(name="id") String id) {
paySpendingContractService.removeById(id); if(StringUtils.isBlank(id)){
return Result.error("id不能为空!");
}
paySpendingContractService.deletePaySpendingContractInputById(id);
return Result.OK("删除成功!"); return Result.OK("删除成功!");
} }
@@ -126,8 +125,17 @@ public class PaySpendingContractController extends JeroController<PaySpendingCon
@AutoLog(value = "支出合同-批量删除") @AutoLog(value = "支出合同-批量删除")
@ApiOperation(value="支出合同-批量删除", notes="支出合同-批量删除") @ApiOperation(value="支出合同-批量删除", notes="支出合同-批量删除")
@GetMapping(value = "/deleteBatch") @GetMapping(value = "/deleteBatch")
public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) { public Result<?> deleteBatch(@RequestParam(name="ids") String ids) {
this.paySpendingContractService.removeByIds(Arrays.asList(ids.split(","))); if(StringUtils.isBlank(ids)){
return Result.error("id不能为空!");
}
String[] s = ids.split(",");
for (String s1 : s) {
if(StringUtils.isBlank(s1)){
return Result.error("id不能为空!");
}
}
paySpendingContractService.deleteSpendingContractInputByIds(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!"); return Result.OK("批量删除成功!");
} }
@@ -136,10 +136,6 @@ public class PaySpendingContract implements Serializable {
@Excel(name = "打包年份", width = 15) @Excel(name = "打包年份", width = 15)
@ApiModelProperty(value = "打包年份") @ApiModelProperty(value = "打包年份")
private String packYear; private String packYear;
/**合同状态(1:草稿,2:已通过,3:未通过,4:已归档)*/
@Excel(name = "合同状态(1:草稿,2:已通过,3:未通过,4:已归档)", width = 15)
@ApiModelProperty(value = "合同状态(1:草稿,2:已通过,3:未通过,4:已归档)")
private Integer contractStatus;
/**创建人*/ /**创建人*/
@ApiModelProperty(value = "创建人") @ApiModelProperty(value = "创建人")
private String createBy; private String createBy;
@@ -2,6 +2,9 @@ package com.jero.contract.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.contract.entity.PaySpendingContract; import com.jero.contract.entity.PaySpendingContract;
import com.jero.contract.vo.PaySpendingContractInput;
import java.util.List;
/** /**
* @Description: pay_spending_contract * @Description: pay_spending_contract
@@ -11,4 +14,40 @@ import com.jero.contract.entity.PaySpendingContract;
*/ */
public interface IPaySpendingContractService extends IService<PaySpendingContract> { public interface IPaySpendingContractService extends IService<PaySpendingContract> {
/**
* @Description 添加
* @Author lqt
* @Date 2021/9/7
* @Param
* @Return
* @Exception
*/
PaySpendingContract addPaySpendingContractInput(PaySpendingContractInput input);
/**
* @Description 编辑
* @Author lqt
* @Date 2021/9/7
* @Param
* @Return
* @Exception
*/
void editPayIncomeContractInput(PaySpendingContractInput input);
/**
* @Description 通过id删除
* @Author lqt
* @Date 2021/9/7
* @Param
* @Return
* @Exception
*/
void deletePaySpendingContractInputById(String id);
/**
* @Description 批量删除
* @Author lqt
* @Date 2021/9/7
* @Param
* @Return
* @Exception
*/
void deleteSpendingContractInputByIds(List<String> ids);
} }
@@ -1,18 +1,226 @@
package com.jero.contract.service.impl; package com.jero.contract.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.exception.JeroBootException;
import com.jero.common.util.ValidUtil;
import com.jero.contract.common.PayIncomeContractCommon;
import com.jero.contract.entity.PayIncomeContract;
import com.jero.contract.entity.PayIncomeContractInstallment;
import com.jero.contract.entity.PaySpendingContract; import com.jero.contract.entity.PaySpendingContract;
import com.jero.contract.entity.PaySpendingContractInstallment;
import com.jero.contract.mapper.PaySpendingContractMapper; import com.jero.contract.mapper.PaySpendingContractMapper;
import com.jero.contract.service.IPaySpendingContractInstallmentService;
import com.jero.contract.service.IPaySpendingContractService; import com.jero.contract.service.IPaySpendingContractService;
import com.jero.contract.vo.PaySpendingContractInput;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.service.ISysUserService;
import com.jero.temporary.entity.PayCompanyManagementTemporary;
import com.jero.temporary.entity.PayContactsManagementTemporary;
import com.jero.temporary.service.IPayCompanyManagementTemporaryService;
import com.jero.temporary.service.IPayContactsManagementTemporaryService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/** /**
* @Description: pay_spending_contract * @Description: pay_spending_contract
* @Author: jeecg-boot * @Author: jeecg-boot
* @Date: 2021-09-07 * @Date: 2021-09-07
* @Version: V1.0 * @Version: V1.0
*/ */
@Slf4j
@Service @Service
public class PaySpendingContractServiceImpl extends ServiceImpl<PaySpendingContractMapper, PaySpendingContract> implements IPaySpendingContractService { public class PaySpendingContractServiceImpl extends ServiceImpl<PaySpendingContractMapper, PaySpendingContract> implements IPaySpendingContractService {
@Autowired
private IPaySpendingContractInstallmentService paySpendingContractInstallmentService;
@Autowired
private IPaySpendingContractService paySpendingContractService;
@Autowired
private IPayCompanyManagementTemporaryService payCompanyManagementTemporaryService;
@Autowired
private IPayContactsManagementTemporaryService payContactsManagementTemporaryService;
@Autowired
private ISysUserService sysUserService;
@Override
public PaySpendingContract addPaySpendingContractInput(PaySpendingContractInput input) {
if(Objects.isNull(input)){
throw new JeroBootException("支出合同信息不能为空!");
}
PaySpendingContract paySpendingContract = input.getContract();
if(Objects.isNull(paySpendingContract)){
throw new JeroBootException("支出合同信息不能为空!");
}
StringBuilder msgPayIncomeContract = ValidUtil.validateAll(paySpendingContract);
if(!StringUtils.isBlank(msgPayIncomeContract)){
throw new JeroBootException(msgPayIncomeContract.toString());
}
List<PaySpendingContractInstallment> listPaySpendingContractInstallment = new ArrayList<>();
if(!CollectionUtils.isEmpty(input.getInstallment())){
listPaySpendingContractInstallment = input.getInstallment();
}
try {
LambdaQueryWrapper<PaySpendingContract> query = new LambdaQueryWrapper<>();
query.eq(PaySpendingContract::getContractNum,paySpendingContract.getContractNum());
PaySpendingContract paySpendingContractNew = paySpendingContractService.getOne(query);
if(!Objects.isNull(paySpendingContractNew)){
throw new JeroBootException("合同编号已存在!");
}
}catch (Exception e){
log.info("支出合同-添加异常",e);
throw new JeroBootException("合同编号已存在!");
}
setPaySpendingContract(paySpendingContract);
paySpendingContractService.save(paySpendingContract);
StringBuilder msgPaySpendingContractInstallment = new StringBuilder();
if(!CollectionUtils.isEmpty(listPaySpendingContractInstallment)){
List<PaySpendingContractInstallment> finalListPaySpendingContractInstallment = listPaySpendingContractInstallment;
listPaySpendingContractInstallment.forEach(p->{
p.setContractId(paySpendingContract.getId());
StringBuilder sb = ValidUtil.validateAll(p);
if(!StringUtils.isBlank(sb)){
msgPaySpendingContractInstallment.append("第").append(finalListPaySpendingContractInstallment.indexOf(p)).append("阶段:").append(sb);
}
});
paySpendingContractInstallmentService.saveBatch(listPaySpendingContractInstallment);
}
if(!StringUtils.isBlank(msgPaySpendingContractInstallment)){
throw new JeroBootException(msgPaySpendingContractInstallment.toString());
}
return paySpendingContract;
}
@Override
public void editPayIncomeContractInput(PaySpendingContractInput input) {
if(Objects.isNull(input)){
throw new JeroBootException("支出合同信息不能为空!");
}
PaySpendingContract paySpendingContract = input.getContract();
if(Objects.isNull(input.getContract())){
throw new JeroBootException("支出合同信息不能为空!");
}
StringBuilder msgPayIncomeContract = ValidUtil.validateAll(paySpendingContract);
if(!StringUtils.isBlank(msgPayIncomeContract)){
throw new JeroBootException(msgPayIncomeContract.toString());
}
if(StringUtils.isBlank(paySpendingContract.getId())){
throw new JeroBootException("支出合同id不能为空!");
}
PaySpendingContract paySpendingContractStatus = paySpendingContractService.getById(paySpendingContract.getId());
if(Objects.isNull(paySpendingContractStatus)){
throw new JeroBootException("支出合同不存在!");
}
List<PaySpendingContractInstallment> listPaySpendingContractInstallment = new ArrayList<>();
if(!CollectionUtils.isEmpty(input.getInstallment())){
listPaySpendingContractInstallment = input.getInstallment();
}
try {
LambdaQueryWrapper<PaySpendingContract> query = new LambdaQueryWrapper<>();
query.eq(PaySpendingContract::getContractNum,paySpendingContract.getContractNum());
PaySpendingContract payIncomeContractNew = paySpendingContractService.getOne(query);
if(!Objects.isNull(payIncomeContractNew) && !Objects.equals(payIncomeContractNew.getId(),paySpendingContract.getId())){
throw new JeroBootException("合同编号已存在!");
}
}catch (Exception e){
log.info("支出合同-添加异常",e);
throw new JeroBootException("合同编号已存在!");
}
StringBuilder msgPaySpendingContractInstallment = new StringBuilder();
// 删除历史
LambdaQueryWrapper<PaySpendingContractInstallment> queryPaySpendingContractInstallmentService = new LambdaQueryWrapper<>();
queryPaySpendingContractInstallmentService.eq(PaySpendingContractInstallment::getContractId,paySpendingContract.getId());
List<PaySpendingContractInstallment> listPaySpendingContractInstallmentOld = paySpendingContractInstallmentService.list(queryPaySpendingContractInstallmentService);
if(!CollectionUtils.isEmpty(listPaySpendingContractInstallmentOld)){
List<String> list = listPaySpendingContractInstallmentOld.stream().map(PaySpendingContractInstallment::getId).collect(Collectors.toList());
paySpendingContractInstallmentService.removeByIds(list);
}
// 新增
if(!CollectionUtils.isEmpty(listPaySpendingContractInstallment)){
List<PaySpendingContractInstallment> finalListPayIncomeContractInstallment = listPaySpendingContractInstallment;
listPaySpendingContractInstallment.forEach(p->{
p.setContractId(paySpendingContract.getId());
StringBuilder sb = ValidUtil.validateAll(p);
if(!StringUtils.isBlank(sb)){
msgPaySpendingContractInstallment.append("第").append(finalListPayIncomeContractInstallment.indexOf(p)).append("阶段:").append(sb);
}
});
paySpendingContractInstallmentService.saveBatch(listPaySpendingContractInstallment);
}
if(!StringUtils.isBlank(msgPaySpendingContractInstallment)){
throw new JeroBootException(msgPaySpendingContractInstallment.toString());
}
setPaySpendingContract(paySpendingContract);
paySpendingContractService.updateById(paySpendingContract);
}
@Override
public void deletePaySpendingContractInputById(String id) {
PaySpendingContract paySpendingContractStatus = paySpendingContractService.getById(id);
if(Objects.isNull(paySpendingContractStatus)){
throw new JeroBootException("支出合同不存在!");
}
paySpendingContractService.removeById(id);
LambdaUpdateWrapper<PaySpendingContractInstallment> updatePaySpendingContractInstallment = new LambdaUpdateWrapper<>();
updatePaySpendingContractInstallment.eq(PaySpendingContractInstallment::getContractId,id);
paySpendingContractInstallmentService.remove(updatePaySpendingContractInstallment);
}
@Override
public void deleteSpendingContractInputByIds(List<String> ids) {
LambdaQueryWrapper<PaySpendingContract> query = new LambdaQueryWrapper<>();
query.in(PaySpendingContract::getId,ids);
List<PaySpendingContract> listPaySpendingContractStatus = paySpendingContractService.list(query);
if(CollectionUtils.isEmpty(listPaySpendingContractStatus)){
throw new JeroBootException("收入合同不存在!");
}
paySpendingContractService.removeByIds(ids);
LambdaUpdateWrapper<PaySpendingContractInstallment> updatePaySpendingContractInstallment = new LambdaUpdateWrapper<>();
updatePaySpendingContractInstallment.in(PaySpendingContractInstallment::getContractId,ids);
paySpendingContractInstallmentService.remove(updatePaySpendingContractInstallment);
}
/**
* @Description 插入企业信息,联系人信息到临时表,更新项目记录
* @Author lqt
* @Date 2021/8/31
* @Param payCommonProject
* @Return
* @Exception
*/
private void setPaySpendingContract(PaySpendingContract paySpendingContract){
// 企业
PayCompanyManagementTemporary chargeCompanyName = payCompanyManagementTemporaryService.insertCompanyManagementTemporary(paySpendingContract.getSignedCompanyId());
if(Objects.isNull(chargeCompanyName)){
throw new JeroBootException("企业名称为空!");
}
// 联系人
PayContactsManagementTemporary contactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(paySpendingContract.getSignedContactsId());
if(Objects.isNull(contactsName)){
throw new JeroBootException("联系人名称为空!");
}
// 负责人名称
SysUser principalName = sysUserService.getById(paySpendingContract.getPrincipalId());
if(Objects.isNull(principalName)){
throw new JeroBootException("负责人名称为空!");
}
paySpendingContract.setPrincipalId(principalName.getId());
paySpendingContract.setPrincipalName(principalName.getRealname());
paySpendingContract.setSignedContactsTemporaryId(contactsName.getId());
paySpendingContract.setSignedContactsTemporaryName(contactsName.getName());
paySpendingContract.setSignedCompanyTemporaryId(chargeCompanyName.getId());
paySpendingContract.setSignedCompanyTemporaryName(chargeCompanyName.getCompanyName());
}
} }
@@ -0,0 +1,23 @@
package com.jero.contract.vo;
import com.jero.contract.entity.PaySpendingContract;
import com.jero.contract.entity.PaySpendingContractInstallment;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
public class PaySpendingContractInput implements Serializable {
/**
* 合同数据
*/
@ApiModelProperty(value = "合同数据")
private PaySpendingContract contract;
/**
* 分期信息
*/
@ApiModelProperty(value = "分期信息")
private List<PaySpendingContractInstallment> installment;
}
@@ -26,6 +26,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.meeting.vo.PayMeetingVO; import com.jero.meeting.vo.PayMeetingVO;
import com.jero.meeting.vo.WorkingGroupMeetingExel;
import com.jero.modules.system.volid.group.UpdateGroup; import com.jero.modules.system.volid.group.UpdateGroup;
import com.jero.project.entity.PayWorkingGroup; import com.jero.project.entity.PayWorkingGroup;
import com.jero.project.service.IPayWorkingGroupService; import com.jero.project.service.IPayWorkingGroupService;
@@ -255,6 +256,40 @@ public class PayMeetingController extends JeroController<PayMeeting, IPayMeeting
} }
return super.exportListXls(exportList, PayMeetingVO.class, "会议管理"); return super.exportListXls(exportList, PayMeetingVO.class, "会议管理");
} }
/**
* 导出excel
*/
@GetMapping(value = "/exportWorkingGroupXls")
public ModelAndView exportWorkingGroupXls(HttpServletRequest request, PayMeeting payMeeting) {
QueryWrapper<PayMeeting> queryWrapper = QueryGenerator.initQueryWrapper(payMeeting, request.getParameterMap());
List<PayMeeting> pageList = payMeetingService.list(queryWrapper);
List<WorkingGroupMeetingExel> exportList = new ArrayList<>();
// 过滤选中数据
String selections = request.getParameter("selections");
if (oConvertUtils.isNotEmpty(selections)) {
List<String> selectionList = Arrays.asList(selections.split(","));
pageList = pageList.stream().filter(item -> selectionList.contains(item.getId())).collect(Collectors.toList());
}
for (PayMeeting meeting : pageList) {
//查询会议负责人
LoginUser user = sysBaseApi.getUserById(meeting.getDirectorId());
meeting.setDirectorName(user.getUsername());
meeting.setDirectorPhone(PasswordUtil.decrypt(user.getPhone()));
WorkingGroupMeetingExel workingGroupMeetingExel = new WorkingGroupMeetingExel();
BeanUtils.copyProperties(meeting, workingGroupMeetingExel);
String meetingType = meeting.getMeetingType().toString();
String meetingType1 = sysBaseApi.translateDict("meeting_type", meetingType);
workingGroupMeetingExel.setMeetingType(meetingType1);
// 工作组项目查询工作组项目名
if (meetingType.equals(MeetingCommon.WORKING_GROUP_MEETING)) {
String workingGroupId = meeting.getWorkingGroupId();
PayWorkingGroup workingGroup = payWorkingGroupService.getById(workingGroupId);
workingGroupMeetingExel.setWorkingGroupName(workingGroup.getWorkingGroupProject());
}
exportList.add(workingGroupMeetingExel);
}
return super.exportListXls(exportList, WorkingGroupMeetingExel.class, "会议管理");
}
/** /**
* 导出excel模板 * 导出excel模板
@@ -57,6 +57,7 @@ public class PayMeetingServiceImpl extends ServiceImpl<PayMeetingMapper, PayMeet
public void add(PayMeetingVO payMeetingVO) { public void add(PayMeetingVO payMeetingVO) {
//酒店联系人列表 //酒店联系人列表
List<PayMeetingHotelContacts> hotelContactsList = payMeetingVO.getHotelContactsList(); List<PayMeetingHotelContacts> hotelContactsList = payMeetingVO.getHotelContactsList();
//进行校验,赋值操作
PayMeeting payMeeting = getPayMeeting(payMeetingVO,hotelContactsList); PayMeeting payMeeting = getPayMeeting(payMeetingVO,hotelContactsList);
save(payMeeting); save(payMeeting);
//如果酒店联系人列表不为空,就新增 //如果酒店联系人列表不为空,就新增
@@ -68,7 +69,7 @@ public class PayMeetingServiceImpl extends ServiceImpl<PayMeetingMapper, PayMeet
meetingHotelContactsService.saveBatch(hotelContactsList); meetingHotelContactsService.saveBatch(hotelContactsList);
} }
if (payMeeting.getMeetingType().equals(Integer.parseInt(MeetingCommon.STANDARD_MEETING))) { if (payMeeting.getMeetingType().equals(Integer.parseInt(MeetingCommon.STANDARD_MEETING))) {
stableCrossTrainingService.push(payMeeting,hotelContactsList); stableCrossTrainingService.add(payMeeting,hotelContactsList);
} }
} }
@@ -77,7 +78,8 @@ public class PayMeetingServiceImpl extends ServiceImpl<PayMeetingMapper, PayMeet
*/ */
@Override @Override
public void editById(PayMeetingVO payMeetingVO) { public void editById(PayMeetingVO payMeetingVO) {
List<PayMeetingHotelContacts> hotelContactsList = new ArrayList<>(); List<PayMeetingHotelContacts> hotelContactsList = payMeetingVO.getHotelContactsList();
//进行校验,赋值操作
PayMeeting payMeeting = getPayMeeting(payMeetingVO, hotelContactsList); PayMeeting payMeeting = getPayMeeting(payMeetingVO, hotelContactsList);
saveOrUpdate(payMeeting); saveOrUpdate(payMeeting);
//如果酒店联系人列表不为空,就更新 //如果酒店联系人列表不为空,就更新
@@ -92,7 +94,9 @@ public class PayMeetingServiceImpl extends ServiceImpl<PayMeetingMapper, PayMeet
); );
meetingHotelContactsService.saveBatch(hotelContactsList); meetingHotelContactsService.saveBatch(hotelContactsList);
} }
if (payMeeting.getMeetingType().equals(Integer.parseInt(MeetingCommon.STANDARD_MEETING))) {
stableCrossTrainingService.edit(payMeeting,hotelContactsList);
}
} }
@NotNull @NotNull
@@ -146,6 +150,7 @@ public class PayMeetingServiceImpl extends ServiceImpl<PayMeetingMapper, PayMeet
if (standardMeetingType == null){ if (standardMeetingType == null){
throw new JeroBootException("标协会议类型不存在"); throw new JeroBootException("标协会议类型不存在");
} }
payMeeting.setTbMeetingType(Integer.parseInt(tbMeetingType));
for (PayMeetingHotelContacts hotelContacts : hotelContactsList) { for (PayMeetingHotelContacts hotelContacts : hotelContactsList) {
ValidUtil.validate(hotelContacts, StandardMeeting.class); ValidUtil.validate(hotelContacts, StandardMeeting.class);
} }
@@ -192,6 +197,10 @@ public class PayMeetingServiceImpl extends ServiceImpl<PayMeetingMapper, PayMeet
*/ */
@Override @Override
public void deleteById(String id) { public void deleteById(String id) {
PayMeeting payMeeting = getById(id);
if (payMeeting.getMeetingType().equals(Integer.parseInt(MeetingCommon.STANDARD_MEETING))) {
stableCrossTrainingService.delete(id);
}
removeById(id); removeById(id);
LambdaQueryWrapper<PayMeetingHotelContacts> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<PayMeetingHotelContacts> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(PayMeetingHotelContacts::getMeetingId,id); wrapper.eq(PayMeetingHotelContacts::getMeetingId,id);
@@ -203,6 +212,12 @@ public class PayMeetingServiceImpl extends ServiceImpl<PayMeetingMapper, PayMeet
*/ */
@Override @Override
public void deleteByIds(List<String> ids) { public void deleteByIds(List<String> ids) {
for (String id : ids) {
PayMeeting payMeeting = getById(id);
if (payMeeting.getMeetingType().equals(Integer.parseInt(MeetingCommon.STANDARD_MEETING))) {
stableCrossTrainingService.delete(id);
}
}
removeByIds(ids); removeByIds(ids);
LambdaQueryWrapper<PayMeetingHotelContacts> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<PayMeetingHotelContacts> wrapper = new LambdaQueryWrapper<>();
wrapper.in(PayMeetingHotelContacts::getMeetingId,ids); wrapper.in(PayMeetingHotelContacts::getMeetingId,ids);
@@ -0,0 +1,154 @@
package com.jero.meeting.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jero.meeting.entity.PayMeetingHotelContacts;
import com.jero.meeting.valid.group.InternationalMeeting;
import com.jero.meeting.valid.group.StandardMeeting;
import com.jero.meeting.valid.group.WorkingGroupMeeting;
import com.jero.modules.system.volid.group.UpdateGroup;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecgframework.poi.excel.annotation.ExcelCollection;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.Max;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.List;
/**
* @author liJiaRao
* @date 2021-09-07 18:29
*/
@Data
public class WorkingGroupMeetingExel {
private static final long serialVersionUID = 1L;
/**会议名称*/
@Excel(name = "会议名称", width = 15)
@ApiModelProperty(value = "会议名称")
@NotBlank(message = "会议名称不能为空")
@Size(max = 50,message = "会议名称最长为50字符")
private String meetingName;
/**会议类型*/
@Excel(name = "会议类型", width = 15)
@ApiModelProperty(value = "会议类型")
@NotBlank(message = "会议类型不能为空")
private String meetingType;
/**工作组项目id*/
@ApiModelProperty(value = "工作组项目id")
@NotBlank(message = "工作组项目名称不能为空")
private String workingGroupId;
/**工作组项目名称*/
@Excel(name = "工作组项目名称", width = 15)
@ApiModelProperty(value = "工作组项目名称")
private String workingGroupName;
/**开始时间*/
@Excel(name = "会议开始时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "会议开始时间")
@NotNull(message = "会议召开时间不能为空")
private java.util.Date startTime;
/**结束时间*/
@Excel(name = "会议结束时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "会议结束时间")
@NotNull(message = "会议召开时间不能为空")
private java.util.Date endTime;
/**年份*/
@Excel(name = "年份", width = 15)
@ApiModelProperty(value = "年份")
@NotBlank(message = "年份不能为空")
private String particularYear;
/**召开地点*/
@Excel(name = "召开地点", width = 15)
@ApiModelProperty(value = "召开地点")
@NotBlank(message = "召开地点不能为空")
@Size(max = 50, message = "召开地点最大为50字符")
private String venue;
/**召开地点对照码*/
@ApiModelProperty(value = "召开地点对照码")
@NotBlank(message = "召开地点对照码不能为空")
private String convokeLocale;
/**详细地址*/
@Excel(name = "详细地址", width = 15)
@ApiModelProperty(value = "详细地址")
@NotBlank(message = "详细地址不能为空")
@Size(max = 100, message = "召开地点最大为100字符")
private String address;
/**预计参加人数*/
@Excel(name = "预计参加人数", width = 15)
@ApiModelProperty(value = "预计参加人数")
private String estimatedNumber;
/**会议内容*/
@Excel(name = "会议内容", width = 15)
@ApiModelProperty(value = "会议内容")
@NotBlank(message = "会议内容不能为空")
@Size(max = 200, message = "会议内容最大为200字符")
private String meetingContent;
/**报名截止时间*/
@Excel(name = "报名截止时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "报名截止时间")
@NotNull(message = "报名截止时间不能为空")
private java.util.Date registerDeadline;
/**会议费用*/
@Excel(name = "会议费用", width = 15)
@ApiModelProperty(value = "会议费用")
@NotNull(message = "会议费用不能为空")
@Max(value = 999999999,message = "会议费用格式错误")
private Integer meetingCosts;
/**会议负责人id*/
@ApiModelProperty(value = "会议负责人id")
@NotBlank(message = "会议负责人不能为空")
private String directorId;
/**会议负责人*/
@Excel(name = "会议负责人", width = 15)
@ApiModelProperty(value = "会议负责人")
private String directorName;
/**会议负责人手机号*/
@Excel(name = "会议负责人手机号", width = 15)
@ApiModelProperty(value = "会议负责人手机号")
private String directorPhone;
/**备注*/
@Excel(name = "备注", width = 15)
@ApiModelProperty(value = "备注")
@Size(max = 200, message = "备注最大为200字符")
private String remark;
/**会议通知文件*/
@ApiModelProperty(value = "会议通知文件")
@Size(max = 1000, message = "会议通知文件数量超出最大限制")
private String meetingFiles;
/**会议资料*/
@ApiModelProperty(value = "会议资料")
@Size(max = 1000, message = "会议资料数量超出最大限制")
private String meetingData;
/**是否提醒*/
@ApiModelProperty(value = "是否提醒")
private Integer remind;
}
@@ -6,6 +6,10 @@ public class PayProjectCommon {
* 打包(1:是,0:否) * 打包(1:是,0:否)
*/ */
public final static Integer PACKAGING0 = 0; public final static Integer PACKAGING0 = 0;
/**
* 打包(1:是,0:否)
*/
public final static Integer PACKAGING1 = 1;
/** /**
* 到账(1:全额(对勾),0:0(X),2:>0 && <总金额(半满标志)) * 到账(1:全额(对勾),0:0(X),2:>0 && <总金额(半满标志))
*/ */
@@ -19,8 +19,11 @@ import com.jero.common.system.api.ISysBaseAPI;
import com.jero.common.system.base.controller.JeroController; import com.jero.common.system.base.controller.JeroController;
import com.jero.common.system.query.QueryGenerator; import com.jero.common.system.query.QueryGenerator;
import com.jero.common.util.ValidUtil; import com.jero.common.util.ValidUtil;
import com.jero.contract.entity.PayIncomeContract;
import com.jero.contract.entity.PayIncomeContractAssociated; import com.jero.contract.entity.PayIncomeContractAssociated;
import com.jero.contract.service.IPayIncomeContractAssociatedService; import com.jero.contract.service.IPayIncomeContractAssociatedService;
import com.jero.contract.service.IPayIncomeContractService;
import com.jero.pack.service.IPayPackCompanyService;
import com.jero.project.common.PayProjectCommon; import com.jero.project.common.PayProjectCommon;
import com.jero.project.entity.PayWorkingGroup; import com.jero.project.entity.PayWorkingGroup;
import com.jero.project.service.IPayCommonProjectService; import com.jero.project.service.IPayCommonProjectService;
@@ -56,6 +59,10 @@ public class PayCommonProjectController extends JeroController<PayCommonProject,
private ISysBaseAPI sysBaseAPI; private ISysBaseAPI sysBaseAPI;
@Autowired @Autowired
private IPayIncomeContractAssociatedService payIncomeContractAssociatedService; private IPayIncomeContractAssociatedService payIncomeContractAssociatedService;
@Autowired
private IPayIncomeContractService payIncomeContractService;
@Autowired
private IPayPackCompanyService payPackCompanyService;
/** /**
* 分页列表查询 * 分页列表查询
* *
@@ -86,19 +93,26 @@ public class PayCommonProjectController extends JeroController<PayCommonProject,
* 收入合同-列表 * 收入合同-列表
* *
* @param payCommonProject 普通项目管理 * @param payCommonProject 普通项目管理
* @param contractId 合同id
* @return * @return
*/ */
@ApiOperation(value="普通项目管理-列表", notes="普通项目管理-列表") @ApiOperation(value="普通项目管理-列表", notes="普通项目管理-列表")
@GetMapping(value = "/listAll") @GetMapping(value = "/listAll")
public Result<?> listAll(PayCommonProject payCommonProject,HttpServletRequest req) { public Result<?> listAll(PayCommonProject payCommonProject,String contractId,HttpServletRequest req) {
if(StringUtils.isBlank(payCommonProject.getChargeCompanyId())){ if(StringUtils.isBlank(payCommonProject.getChargeCompanyId())){
return Result.error("企业id不能为空!"); return Result.error("企业id不能为空!");
} }
PayIncomeContract payIncomeContract = payIncomeContractService.getById(contractId);
if(Objects.isNull(payIncomeContract)){
return Result.error("合同不存在!");
}
QueryWrapper<PayCommonProject> queryWrapper = QueryGenerator.initQueryWrapper(payCommonProject, req.getParameterMap()); QueryWrapper<PayCommonProject> queryWrapper = QueryGenerator.initQueryWrapper(payCommonProject, req.getParameterMap());
List<PayCommonProject> list = payCommonProjectService.list(queryWrapper); List<PayCommonProject> list = payCommonProjectService.list(queryWrapper);
List<PayCommonProjectOutput> listNew = new ArrayList<>(); List<PayCommonProjectOutput> listNew = new ArrayList<>();
List<PayCommonProjectOutput> listPayCommonProjectOutputNew = new ArrayList<>(); List<PayCommonProjectOutput> listPayCommonProjectOutputNew = new ArrayList<>();
if(!CollectionUtils.isEmpty(list)){ if(!CollectionUtils.isEmpty(list)){
// todo 获取打包项目对比数据
// payPackCompanyService.list();
List<String> listProjectId = list.stream().map(PayCommonProject::getId).collect(Collectors.toList()); List<String> listProjectId = list.stream().map(PayCommonProject::getId).collect(Collectors.toList());
// 获取已经关联合同的普通项目 // 获取已经关联合同的普通项目
LambdaQueryWrapper<PayIncomeContractAssociated> queryPayIncomeContractAssociated = new LambdaQueryWrapper<>(); LambdaQueryWrapper<PayIncomeContractAssociated> queryPayIncomeContractAssociated = new LambdaQueryWrapper<>();
@@ -113,6 +127,7 @@ public class PayCommonProjectController extends JeroController<PayCommonProject,
listNew = JSONArray.parseArray(str,PayCommonProjectOutput.class); listNew = JSONArray.parseArray(str,PayCommonProjectOutput.class);
List<String> finalListProjectId = listProjectIdNew; List<String> finalListProjectId = listProjectIdNew;
listNew.forEach(p->{ listNew.forEach(p->{
// 没有关联合同 // 没有关联合同
if(!CollectionUtils.isEmpty(finalListProjectId) && finalListProjectId.contains(p.getId())){ if(!CollectionUtils.isEmpty(finalListProjectId) && finalListProjectId.contains(p.getId())){
return; return;
@@ -23,7 +23,7 @@ public interface IHotelManagementService extends IService<HotelManagement> {
/** /**
* 编辑 * 编辑
*/ */
Boolean edit(HotelManagement hotelManagement) throws Exception; Boolean edit(HotelManagement hotelManagement);
/** /**
* 根据会议id查询酒店 * 根据会议id查询酒店
@@ -81,7 +81,7 @@ public class HotelManagementServiceImpl extends ServiceImpl<HotelManagementMappe
* 编辑 * 编辑
*/ */
@Override @Override
public Boolean edit(HotelManagement hotelManagement) throws Exception { public Boolean edit(HotelManagement hotelManagement) {
//判断主键是否存在 //判断主键是否存在
if (StringUtils.isBlank(hotelManagement.getId())) { if (StringUtils.isBlank(hotelManagement.getId())) {
throw new JeroBootException(Result.NULL_ID); throw new JeroBootException(Result.NULL_ID);
@@ -93,7 +93,11 @@ public class HotelManagementServiceImpl extends ServiceImpl<HotelManagementMappe
HotelManagement hotelManagementDB = hotelManagementService.getById(hotelManagement.getId()); HotelManagement hotelManagementDB = hotelManagementService.getById(hotelManagement.getId());
//获取召开时间 //获取召开时间
try {
this.isZhi(hotelManagement); this.isZhi(hotelManagement);
}catch (Exception e){
throw new JeroBootException(e);
}
Boolean resFlag = Boolean.TRUE; Boolean resFlag = Boolean.TRUE;
LambdaUpdateWrapper<HotelManagement> updateWrapper = new LambdaUpdateWrapper(); LambdaUpdateWrapper<HotelManagement> updateWrapper = new LambdaUpdateWrapper();
updateWrapper.eq(HotelManagement::getId, hotelManagement.getId()) updateWrapper.eq(HotelManagement::getId, hotelManagement.getId())
@@ -19,17 +19,17 @@ public interface IStableCrossTrainingService extends IService<StableCrossTrainin
/** /**
* 添加 * 添加
*/ */
Boolean add(StableCrossTraining stableCrossTraining); Boolean add(PayMeeting payMeeting, List<PayMeetingHotelContacts> hotelContactsList);
/** /**
* 编辑 * 编辑
*/ */
Boolean edit(StableCrossTraining stableCrossTraining) throws Exception; Boolean edit(PayMeeting payMeeting, List<PayMeetingHotelContacts> hotelContactsList);
/** /**
* 通过id删除 * 通过id删除
*/ */
Boolean delete(String id) throws Exception; Boolean delete(String id);
/** /**
* 批量删除 * 批量删除
@@ -46,5 +46,5 @@ public interface IStableCrossTrainingService extends IService<StableCrossTrainin
*/ */
List<StableCrossTraining> queryList(StableCrossTraining stableCrossTraining) throws Exception; List<StableCrossTraining> queryList(StableCrossTraining stableCrossTraining) throws Exception;
void push(PayMeeting payMeeting, List<PayMeetingHotelContacts> hotelContactsList); StableCrossTraining push(PayMeeting payMeeting, List<PayMeetingHotelContacts> hotelContactsList);
} }
@@ -4,7 +4,6 @@ import cn.hutool.core.date.DateUtil;
import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.api.vo.Result; import com.jero.common.api.vo.Result;
import com.jero.common.exception.JeroBootException; import com.jero.common.exception.JeroBootException;
@@ -19,10 +18,8 @@ import com.jero.standards.jiudian.hotelcontact.entity.HotelContact;
import com.jero.standards.jiudian.hotelcontact.mapper.HotelContactMapper; import com.jero.standards.jiudian.hotelcontact.mapper.HotelContactMapper;
import com.jero.standards.jiudian.hotelcontact.service.IHotelContactService; import com.jero.standards.jiudian.hotelcontact.service.IHotelContactService;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.poi.hssf.usermodel.*;
import com.jero.standards.xuanguan.attendmeetings.entity.AttendMeetings; import com.jero.standards.xuanguan.attendmeetings.entity.AttendMeetings;
import com.jero.standards.xuanguan.attendmeetings.service.IAttendMeetingsService; import com.jero.standards.xuanguan.attendmeetings.service.IAttendMeetingsService;
import com.jero.standards.xuanguan.stablecrosstraining.entity.OSSFileVO;
import com.jero.standards.xuanguan.stablecrosstraining.entity.StableCrossTraining; import com.jero.standards.xuanguan.stablecrosstraining.entity.StableCrossTraining;
import com.jero.standards.xuanguan.stablecrosstraining.mapper.StableCrossTrainingMapper; import com.jero.standards.xuanguan.stablecrosstraining.mapper.StableCrossTrainingMapper;
import com.jero.standards.xuanguan.stablecrosstraining.service.IStableCrossTrainingService; import com.jero.standards.xuanguan.stablecrosstraining.service.IStableCrossTrainingService;
@@ -31,15 +28,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
/** /**
* @Description: 宣贯培训 * @Description: 宣贯培训
@@ -67,8 +56,9 @@ public class StableCrossTrainingServiceImpl extends ServiceImpl<StableCrossTrain
private IStableCrossTrainingService stableCrossTrainingService; private IStableCrossTrainingService stableCrossTrainingService;
@Override @Override
public void push(PayMeeting payMeeting, List<PayMeetingHotelContacts> hotelContactsList) { public StableCrossTraining push(PayMeeting payMeeting, List<PayMeetingHotelContacts> hotelContactsList) {
StableCrossTraining stableCrossTraining = new StableCrossTraining(); StableCrossTraining stableCrossTraining = new StableCrossTraining();
stableCrossTraining.setId(payMeeting.getId());
stableCrossTraining.setName(payMeeting.getMeetingName()); stableCrossTraining.setName(payMeeting.getMeetingName());
stableCrossTraining.setMeetingType(payMeeting.getMeetingType()); stableCrossTraining.setMeetingType(payMeeting.getMeetingType());
stableCrossTraining.setYear(payMeeting.getParticularYear()); stableCrossTraining.setYear(payMeeting.getParticularYear());
@@ -99,15 +89,22 @@ public class StableCrossTrainingServiceImpl extends ServiceImpl<StableCrossTrain
hotelList.add(hotelContact); hotelList.add(hotelContact);
} }
stableCrossTraining.setHotelList(hotelList); stableCrossTraining.setHotelList(hotelList);
add(stableCrossTraining); return stableCrossTraining;
} }
/** /**
* 添加 * 添加
*/ */
@Override @Override
public Boolean add(StableCrossTraining stableCrossTraining) { public Boolean add(PayMeeting payMeeting, List<PayMeetingHotelContacts> hotelContactsList) {
StableCrossTraining stableCrossTraining = push(payMeeting, hotelContactsList);
// 会议名称唯一校验
LambdaQueryWrapper<StableCrossTraining> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(StableCrossTraining::getName,stableCrossTraining.getName());
int count = stableCrossTrainingService.count(wrapper);
if (count>0){
throw new JeroBootException("会议名称与标协会员系统重复");
}
//配置培训状态 //配置培训状态
this.isTrainingState(stableCrossTraining); this.isTrainingState(stableCrossTraining);
Boolean resFlag = stableCrossTrainingService.save(stableCrossTraining); Boolean resFlag = stableCrossTrainingService.save(stableCrossTraining);
@@ -221,23 +218,22 @@ public class StableCrossTrainingServiceImpl extends ServiceImpl<StableCrossTrain
* 编辑 * 编辑
*/ */
@Override @Override
public Boolean edit(StableCrossTraining stableCrossTraining) throws Exception { public Boolean edit(PayMeeting payMeeting, List<PayMeetingHotelContacts> hotelContactsList){
//判断是否为管理员 StableCrossTraining stableCrossTraining = push(payMeeting, hotelContactsList);
// sysBaseAPI.isAuthentication();
//判断主键是否存在 // 会议名称唯一校验
if (StringUtils.isBlank(stableCrossTraining.getId())) { LambdaQueryWrapper<StableCrossTraining> wrapper = new LambdaQueryWrapper<>();
throw new JeroBootException(Result.NULL_ID); wrapper.eq(StableCrossTraining::getName,stableCrossTraining.getName());
wrapper.ne(StableCrossTraining::getId,stableCrossTraining.getId());
int count = stableCrossTrainingService.count(wrapper);
if (count>0){
throw new JeroBootException("会议名称与标协会员系统重复");
} }
StableCrossTraining stableCrossTrainingDB = this.queryById(stableCrossTraining.getId());
//判空
this.ifEntityIsEmpty(stableCrossTraining);
//TODO 会议名称唯一校验
//sysBaseAPI.checkValue("1", "web_stable_cross_training", "name",
// stableCrossTraining.getName(), stableCrossTraining.getId());
//配置培训状态 //配置培训状态
this.isTrainingState(stableCrossTraining); this.isTrainingState(stableCrossTraining);
//修改时间/修改人 //创建时间/创建人/修改时间/修改人
// this.update(stableCrossTraining); LoginUser user = TokenUtils.getUserByToken();
BaseUtil.update(stableCrossTraining, user.getId());
//添加宣贯培训 //添加宣贯培训
LambdaUpdateWrapper<StableCrossTraining> updateWrapper = new LambdaUpdateWrapper<>(); LambdaUpdateWrapper<StableCrossTraining> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(StableCrossTraining::getId, stableCrossTraining.getId()) updateWrapper.eq(StableCrossTraining::getId, stableCrossTraining.getId())
@@ -284,7 +280,7 @@ public class StableCrossTrainingServiceImpl extends ServiceImpl<StableCrossTrain
* 通过id删除 * 通过id删除
*/ */
@Override @Override
public Boolean delete(String id) throws Exception { public Boolean delete(String id) {
//判断主键是否存在 //判断主键是否存在
if (StringUtils.isBlank(id)) { if (StringUtils.isBlank(id)) {
throw new JeroBootException(Result.NULL_ID); throw new JeroBootException(Result.NULL_ID);
@@ -109,13 +109,12 @@ public class SysUserController {
@RequiresPermissions("sys:user:list") @RequiresPermissions("sys:user:list")
@PermissionData(pageComponent = "system/UserList") @PermissionData(pageComponent = "system/UserList")
@RequestMapping(value = "/pageRoleAndDepart", method = RequestMethod.GET) @RequestMapping(value = "/pageRoleAndDepart", method = RequestMethod.GET)
public Result<IPage<SysUserVo>> queryPageListByRoleAndDepart(SysUser user, public Result<IPage<SysUserVo>> queryPageByRoleAndDepart(SysUser user,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize, @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) { HttpServletRequest req) {
String roleId = req.getParameter("roleId"); String roleId = req.getParameter("roleId");
String departId = req.getParameter("departId"); String departId = req.getParameter("departId");
//TODO 外部模拟登陆临时账号,列表不显示
Page<SysUserVo> page = new Page<>(pageNo, pageSize); Page<SysUserVo> page = new Page<>(pageNo, pageSize);
IPage<SysUserVo> pageList = sysUserService.queryPageListByRoleAndDepart(page, user, roleId, departId); IPage<SysUserVo> pageList = sysUserService.queryPageListByRoleAndDepart(page, user, roleId, departId);
List<SysUserVo> userList = new ArrayList<>(); List<SysUserVo> userList = new ArrayList<>();
@@ -141,6 +140,37 @@ public class SysUserController {
return Result.OK(pageList); return Result.OK(pageList);
} }
/**
* 根据角色id和部门id获取用户列表数据
*/
@RequiresPermissions("sys:user:list")
@RequestMapping(value = "/listRoleAndDepart", method = RequestMethod.GET)
public Result<List<SysUserVo>> queryListByRoleAndDepart(SysUser user,HttpServletRequest req) {
String roleId = req.getParameter("roleId");
String departId = req.getParameter("departId");
Page<SysUserVo> page = new Page<>(-1, -1);
IPage<SysUserVo> pageList = sysUserService.queryPageListByRoleAndDepart(page, user, roleId, departId);
List<SysUserVo> userList = new ArrayList<>();
for (SysUserVo record : pageList.getRecords()) {
//处理邮箱和手机号的加密
UserUtil.decryptUser(record);
userList.add(record);
}
//批量查询用户的所属部门
//step.1 先拿到全部的 useids
//step.2 通过 useids,一次性查询用户的所属部门名字
List<String> userIds = userList.stream().map(SysUser::getId).collect(Collectors.toList());
if (userIds != null && userIds.size() > 0) {
Map<String, String> useDepNames = sysUserService.getDepNamesByUserIds(userIds);
Map<String, String> roleNames = sysUserService.getRoleNameByUserIds(userIds);
userList.forEach(item -> {
item.setOrgCodeTxt(useDepNames.get(item.getId()));
item.setRoleName(roleNames.get(item.getId()));
});
}
return Result.OK(userList);
}
/** /**
* 获取用户列表数据 * 获取用户列表数据
* @param user * @param user
@@ -25,6 +25,9 @@ public class UserUtil {
if (StringUtils.isNotBlank(phone)){ if (StringUtils.isNotBlank(phone)){
record.setPhone(PasswordUtil.decrypt(phone)); record.setPhone(PasswordUtil.decrypt(phone));
} }
//接口调用查询返回结果不能返回密码相关信息
record.setSalt("");
record.setPassword("");
} }
/** /**