会签管理,库管员多选
This commit is contained in:
parent
cc9662b2d9
commit
9946989992
|
|
@ -65,9 +65,9 @@ public class signProcessController extends BaseController {
|
|||
*/
|
||||
@ApiOperation(value = "获取会签流程配置管理详细信息")
|
||||
@RequiresPermissions("signProcess:info:query")
|
||||
@GetMapping(value = "/{id}")
|
||||
public AjaxResult getInfo(@PathVariable("id") Long id) {
|
||||
return success(signProcessService.selectProcessInfoById(id));
|
||||
@GetMapping(value = "/{ids}")
|
||||
public AjaxResult getInfo(@PathVariable("ids") Long[] ids) {
|
||||
return success(signProcessService.selectProcessInfoById(ids));
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -94,8 +94,8 @@ public class signProcessController extends BaseController {
|
|||
@PreventRepeatSubmit
|
||||
@RequiresPermissions("signProcess:info:remove")
|
||||
@SysLog(title = "会签流程配置管理", businessType = OperaType.DELETE, module = "会签流程配置管理->删除会签流程配置管理")
|
||||
@PostMapping("/delProcess/{id}")
|
||||
public AjaxResult delProcess(@PathVariable("id") Long id) {
|
||||
return signProcessService.delProcess(id);
|
||||
@PostMapping("/delProcess/{ids}")
|
||||
public AjaxResult delProcess(@PathVariable("ids") Long[] ids) {
|
||||
return signProcessService.delProcess(ids);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,6 +21,10 @@ public class SignProcessVo extends BaseEntity {
|
|||
@ApiModelProperty(value = "id")
|
||||
private Long id;
|
||||
|
||||
private Long[] ids;
|
||||
|
||||
private String idStr;
|
||||
|
||||
/** 会签流程id */
|
||||
@ApiModelProperty(value = "会签流程id")
|
||||
private String processId;
|
||||
|
|
@ -33,6 +37,12 @@ public class SignProcessVo extends BaseEntity {
|
|||
@ApiModelProperty(value = "组织id")
|
||||
private Long orgId;
|
||||
|
||||
private String orgIdStr;
|
||||
|
||||
/** 组织id */
|
||||
@ApiModelProperty(value = "组织ids")
|
||||
private Long[] orgIds;
|
||||
|
||||
/** 会签流程名称 */
|
||||
@ApiModelProperty(value = "会签流程名称")
|
||||
private String processName;
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package com.bonus.material.countersign.mapper;
|
|||
import com.bonus.material.countersign.domain.SignConfigVo;
|
||||
import com.bonus.material.countersign.domain.SignProcessVo;
|
||||
import com.bonus.material.purchase.domain.PurchaseSignRecord;
|
||||
import feign.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
|
@ -40,6 +41,14 @@ public interface SignProcessMapper
|
|||
*/
|
||||
List<SignProcessVo> getList(SignProcessVo signProcessVo);
|
||||
|
||||
/**
|
||||
* 查询会签流程配置管理列表
|
||||
*
|
||||
* @param signProcessVo 会签流程配置管理
|
||||
* @return 会签流程配置管理集合
|
||||
*/
|
||||
List<SignProcessVo> getListNew(SignProcessVo signProcessVo);
|
||||
|
||||
/**
|
||||
* 新增时查询流程id和会签类型下会签组织是否重复
|
||||
*
|
||||
|
|
@ -62,7 +71,7 @@ public interface SignProcessMapper
|
|||
* @param id 主键
|
||||
* @return 会签流程配置管理
|
||||
*/
|
||||
SignProcessVo selectProcessInfoById(Long id);
|
||||
SignProcessVo selectProcessInfoById(@Param("id") Long[] id);
|
||||
|
||||
/**
|
||||
* 修改时查询查询流程id和会签类型下会签组织是否重复
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ public interface ISignProcessService {
|
|||
* @param id 主键
|
||||
* @return 会签流程配置管理
|
||||
*/
|
||||
SignProcessVo selectProcessInfoById(Long id);
|
||||
SignProcessVo selectProcessInfoById(Long[] id);
|
||||
|
||||
|
||||
/**
|
||||
|
|
@ -50,8 +50,8 @@ public interface ISignProcessService {
|
|||
/**
|
||||
* 删除会签流程配置管理信息
|
||||
*
|
||||
* @param id 主键
|
||||
* @param ids 主键
|
||||
* @return 结果
|
||||
*/
|
||||
AjaxResult delProcess(Long id);
|
||||
AjaxResult delProcess(Long[] ids);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,8 +7,11 @@ import com.bonus.material.countersign.mapper.SignConfigMapper;
|
|||
import com.bonus.material.countersign.mapper.SignProcessMapper;
|
||||
import com.bonus.material.countersign.service.ISignConfigService;
|
||||
import com.bonus.material.countersign.service.ISignProcessService;
|
||||
import org.hibernate.validator.internal.util.StringHelper;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
|
@ -32,7 +35,26 @@ public class SignProcessServiceImpl implements ISignProcessService
|
|||
*/
|
||||
@Override
|
||||
public List<SignProcessVo> getList(SignProcessVo signProcessVo) {
|
||||
return signProcessMapper.getList(signProcessVo);
|
||||
List<SignProcessVo> list = signProcessMapper.getListNew(signProcessVo);
|
||||
if (list.size()>0){
|
||||
for (SignProcessVo signProcessVos : list) {
|
||||
//将idStr用逗号分割,放入ids数组中
|
||||
String[] split = signProcessVos.getIdStr().split(",");
|
||||
Long[] ids = new Long[split.length];
|
||||
for (int i = 0; i < split.length; i++) {
|
||||
ids[i] = Long.parseLong(split[i].trim());
|
||||
}
|
||||
signProcessVos.setIds(ids);
|
||||
//将orgIdStr用逗号分割,放入orgIds数组中
|
||||
String[] splitTwo = signProcessVos.getOrgIdStr().split(",");
|
||||
Long[] orgIds = new Long[splitTwo.length];
|
||||
for (int i = 0; i < splitTwo.length; i++) {
|
||||
orgIds[i] = Long.parseLong(splitTwo[i].trim());
|
||||
}
|
||||
signProcessVos.setOrgIds(orgIds);
|
||||
}
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -42,18 +64,24 @@ public class SignProcessServiceImpl implements ISignProcessService
|
|||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public AjaxResult insertProcessInfo(SignProcessVo signProcessVo)
|
||||
{
|
||||
public AjaxResult insertProcessInfo(SignProcessVo signProcessVo) {
|
||||
try {
|
||||
if (signProcessVo != null && signProcessVo.getOrgIds() != null) {
|
||||
for (Long orgId : signProcessVo.getOrgIds()) {
|
||||
signProcessVo.setOrgId(orgId);
|
||||
int count = signProcessMapper.selectProcessRepeat(signProcessVo);
|
||||
if (count > 0) {
|
||||
return AjaxResult.error("该会签流程和类型下已有该会签组织,请重新选择新增");
|
||||
}
|
||||
int countTwo = signProcessMapper.insertProcessInfo(signProcessVo);
|
||||
if(countTwo == 1){
|
||||
return AjaxResult.success();
|
||||
}
|
||||
if (countTwo <= 0) {
|
||||
return AjaxResult.error("会签流程配置新增失败");
|
||||
}
|
||||
}
|
||||
return AjaxResult.success();
|
||||
} else {
|
||||
return AjaxResult.error("请选择会签组织");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
return AjaxResult.error();
|
||||
}
|
||||
|
|
@ -62,13 +90,30 @@ public class SignProcessServiceImpl implements ISignProcessService
|
|||
/**
|
||||
* 查询会签流程配置管理详情
|
||||
*
|
||||
* @param id 主键
|
||||
* @param ids 主键
|
||||
* @return 会签流程配置管理
|
||||
*/
|
||||
@Override
|
||||
public SignProcessVo selectProcessInfoById(Long id)
|
||||
public SignProcessVo selectProcessInfoById(Long[] ids)
|
||||
{
|
||||
return signProcessMapper.selectProcessInfoById(id);
|
||||
SignProcessVo signProcessVo = signProcessMapper.selectProcessInfoById(ids);
|
||||
if (signProcessVo != null && !StringHelper.isNullOrEmptyString(signProcessVo.getOrgIdStr())){
|
||||
//将orgIdStr用逗号分割,放入orgIds数组中
|
||||
String[] split = signProcessVo.getOrgIdStr().split(",");
|
||||
Long[] orgIds = new Long[split.length];
|
||||
for (int i = 0; i < split.length; i++) {
|
||||
orgIds[i] = Long.parseLong(split[i].trim());
|
||||
}
|
||||
signProcessVo.setOrgIds(orgIds);
|
||||
//将idStr用逗号分割,放入ids数组中
|
||||
String[] splitTwo = signProcessVo.getIdStr().split(",");
|
||||
Long[] id = new Long[splitTwo.length];
|
||||
for (int i = 0; i < splitTwo.length; i++) {
|
||||
id[i] = Long.parseLong(splitTwo[i].trim());
|
||||
}
|
||||
signProcessVo.setIds(id);
|
||||
}
|
||||
return signProcessVo;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -79,19 +124,32 @@ public class SignProcessServiceImpl implements ISignProcessService
|
|||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public AjaxResult updateProcessInfo(SignProcessVo signProcessVo)
|
||||
{
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public AjaxResult updateProcessInfo(SignProcessVo signProcessVo) {
|
||||
try {
|
||||
int count = signProcessMapper.selectProcessRepeatEdit(signProcessVo);
|
||||
//先将数据删除
|
||||
for (Long id : signProcessVo.getIds()) {
|
||||
int count = signProcessMapper.delProcess(id);
|
||||
if (count <= 0) {
|
||||
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
||||
return AjaxResult.error("会签流程配置修改失败");
|
||||
}
|
||||
}
|
||||
for (Long orgId : signProcessVo.getOrgIds()) {
|
||||
signProcessVo.setOrgId(orgId);
|
||||
int count = signProcessMapper.selectProcessRepeat(signProcessVo);
|
||||
if (count > 0) {
|
||||
return AjaxResult.error("该会签流程和类型下已有该会签组织,请重新选择修改");
|
||||
}
|
||||
int countTwo = signProcessMapper.updateProcessInfo(signProcessVo);
|
||||
if(countTwo == 1){
|
||||
return AjaxResult.success();
|
||||
}
|
||||
int countTwo = signProcessMapper.insertProcessInfo(signProcessVo);
|
||||
if (countTwo <= 0) {
|
||||
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
||||
return AjaxResult.error("会签流程配置修改失败");
|
||||
}
|
||||
}
|
||||
return AjaxResult.success();
|
||||
} catch (Exception e) {
|
||||
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
||||
return AjaxResult.error();
|
||||
}
|
||||
}
|
||||
|
|
@ -99,18 +157,23 @@ public class SignProcessServiceImpl implements ISignProcessService
|
|||
/**
|
||||
* 删除会签流程配置管理信息
|
||||
*
|
||||
* @param id 主键
|
||||
* @param ids 主键
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public AjaxResult delProcess(Long id)
|
||||
{
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public AjaxResult delProcess(Long[] ids) {
|
||||
try {
|
||||
if (ids != null || ids.length > 0) {
|
||||
for (Long id : ids) {
|
||||
int count = signProcessMapper.delProcess(id);
|
||||
if(count == 1){
|
||||
return AjaxResult.success();
|
||||
}
|
||||
if (count <= 0) {
|
||||
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
||||
return AjaxResult.error("会签流程配置删除失败");
|
||||
}
|
||||
}
|
||||
}
|
||||
return AjaxResult.success();
|
||||
} catch (Exception e) {
|
||||
return AjaxResult.error();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,6 +4,56 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.bonus.material.countersign.mapper.SignProcessMapper">
|
||||
|
||||
<select id="getListNew" resultType="com.bonus.material.countersign.domain.SignProcessVo">
|
||||
select
|
||||
sc.id as id,sc.id as idStr,sc.process_id as processId,sc.sign_type as signType,sc.org_id as orgIdStr,
|
||||
sd.dept_name as orgName,sdd.dict_label as processName,sdd2.dict_label as signTypeName
|
||||
from sign_config sc
|
||||
left join sys_dict_data sdd on sc.process_id = sdd.dict_value
|
||||
left join sys_dict_data sdd2 on sc.sign_type = sdd2.dict_value
|
||||
left join sys_dept sd on sc.org_id = sd.dept_id and sd.del_flag = 0
|
||||
where
|
||||
sc.del_flag = 0
|
||||
and sdd.dict_type = 'countersign_process_config_name' and sdd.status = 0
|
||||
and sdd2.dict_type = 'countersign_process_type_name' and sdd2.status = 0
|
||||
<if test="keyWord != null and keyWord != ''">
|
||||
and (sdd.dict_label like concat('%', #{keyWord}, '%') or sdd2.dict_label like concat('%', #{keyWord}, '%')
|
||||
or sd.dept_name like concat('%', #{keyWord}, '%'))
|
||||
</if>
|
||||
AND sd.dept_name NOT LIKE '%库管%'
|
||||
union
|
||||
SELECT
|
||||
sc.id AS id,
|
||||
GROUP_CONCAT(sc.id) AS idStr,
|
||||
sc.process_id AS processId,
|
||||
sc.sign_type AS signType,
|
||||
GROUP_CONCAT(sc.org_id) AS orgIdStr,
|
||||
GROUP_CONCAT(sd.dept_name) AS orgName,
|
||||
sdd.dict_label AS processName,
|
||||
sdd2.dict_label AS signTypeName
|
||||
FROM
|
||||
sign_config sc
|
||||
LEFT JOIN sys_dict_data sdd ON sc.process_id = sdd.dict_value
|
||||
LEFT JOIN sys_dict_data sdd2 ON sc.sign_type = sdd2.dict_value
|
||||
LEFT JOIN sys_dept sd ON sc.org_id = sd.dept_id AND sd.del_flag = 0
|
||||
WHERE
|
||||
sc.del_flag = 0
|
||||
AND sdd.dict_type = 'countersign_process_config_name'
|
||||
AND sdd.status = 0
|
||||
AND sdd2.dict_type = 'countersign_process_type_name'
|
||||
AND sdd2.status = 0
|
||||
<if test="keyWord != null and keyWord != ''">
|
||||
and (sdd.dict_label like concat('%', #{keyWord}, '%') or sdd2.dict_label like concat('%', #{keyWord}, '%')
|
||||
or sd.dept_name like concat('%', #{keyWord}, '%'))
|
||||
</if>
|
||||
AND sd.dept_name LIKE '%库管%'
|
||||
GROUP BY
|
||||
sc.process_id,
|
||||
sc.sign_type,
|
||||
sdd.dict_label,
|
||||
sdd2.dict_label
|
||||
</select>
|
||||
|
||||
<select id="getList" resultType="com.bonus.material.countersign.domain.SignProcessVo">
|
||||
select
|
||||
sc.id as id,sc.process_id as processId,sc.sign_type as signType,sc.org_id as orgId,
|
||||
|
|
@ -55,11 +105,22 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
)
|
||||
</insert>
|
||||
|
||||
<select id="selectProcessInfoById" parameterType="Long" resultType="com.bonus.material.countersign.domain.SignProcessVo">
|
||||
select
|
||||
sc.id as id,sc.process_id as processId,sc.sign_type as signType,sc.org_id as orgId
|
||||
from sign_config sc
|
||||
where sc.id = #{id} and sc.del_flag = 0
|
||||
<select id="selectProcessInfoById" resultType="com.bonus.material.countersign.domain.SignProcessVo">
|
||||
SELECT
|
||||
sc.id AS id,
|
||||
GROUP_CONCAT(sc.id) AS idStr,
|
||||
sc.process_id AS processId,
|
||||
sc.sign_type AS signType,
|
||||
GROUP_CONCAT(sc.org_id) AS orgIdStr
|
||||
FROM
|
||||
sign_config sc
|
||||
WHERE
|
||||
sc.del_flag = 0
|
||||
AND sc.id IN
|
||||
<foreach collection="array" item="id" open="(" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
GROUP BY sc.process_id,sc.sign_type
|
||||
</select>
|
||||
|
||||
<select id="selectProcessRepeatEdit" resultType="int">
|
||||
|
|
|
|||
Loading…
Reference in New Issue