新增获取可退回步骤已经退回操作

This commit is contained in:
ljl 2023-03-27 17:12:44 +08:00 committed by ljl
parent 604b79b998
commit 1dc1eca1fc
31 changed files with 582 additions and 90 deletions

View File

@ -0,0 +1,118 @@
package com.ruoyi.web.controller.house;
import java.util.List;
import java.util.Arrays;
import java.util.concurrent.TimeUnit;
import com.ruoyi.system.domain.bo.HousesReviewBo;
import lombok.RequiredArgsConstructor;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.core.validate.QueryGroup;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.system.domain.vo.BuyHousesVo;
import com.ruoyi.system.domain.bo.BuyHousesBo;
import com.ruoyi.system.service.IBuyHousesService;
import com.ruoyi.common.core.page.TableDataInfo;
/**
* 请填写功能名称
*
* @author ruoyi
* @date 2023-03-27
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/declare")
public class BuyHousesController extends BaseController {
private final IBuyHousesService iBuyHousesService;
/**
* 查询请填写功能名称列表
*/
@SaCheckPermission("system:houses:list")
@GetMapping("/list")
public TableDataInfo<BuyHousesVo> list(BuyHousesBo bo, PageQuery pageQuery) {
return iBuyHousesService.queryPageList(bo, pageQuery);
}
/**
* 导出请填写功能名称列表
*/
@SaCheckPermission("system:houses:export")
@Log(title = "【请填写功能名称】", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(BuyHousesBo bo, HttpServletResponse response) {
List<BuyHousesVo> list = iBuyHousesService.queryList(bo);
ExcelUtil.exportExcel(list, "【请填写功能名称】", BuyHousesVo.class, response);
}
/**
* 获取请填写功能名称详细信息
*
* @param id 主键
*/
@SaCheckPermission("system:houses:query")
@GetMapping("/{id}")
public R<BuyHousesVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(iBuyHousesService.queryById(id));
}
/**
* 新增请填写功能名称
*/
@SaCheckPermission("system:houses:add")
@Log(title = "【购房申请添加】", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody BuyHousesBo bo) {
return toAjax(iBuyHousesService.insertByBo(bo));
}
/**
* 修改请填写功能名称
*/
@SaCheckPermission("system:houses:edit")
@Log(title = "【请填写功能名称】", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody BuyHousesBo bo) {
return toAjax(iBuyHousesService.updateByBo(bo));
}
/**
* 删除请填写功能名称
*
* @param ids 主键串
*/
@SaCheckPermission("system:houses:remove")
@Log(title = "【请填写功能名称】", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(iBuyHousesService.deleteWithValidByIds(Arrays.asList(ids), true));
}
/**
* 获取申报材料
*/
@Log(title = "获取申报材料",businessType = BusinessType.OTHER)
@PostMapping("/review/material")
public R<?> getMaterialInfo(@RequestBody BuyHousesBo bo){
return iBuyHousesService.getMaterialInfo(bo);
}
}

View File

@ -1,5 +1,4 @@
package com.ruoyi.web.controller.house;
import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil;
@ -26,7 +25,6 @@ import org.springframework.http.MediaType;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
@ -48,7 +46,6 @@ import java.util.stream.Collectors;
public class HousesReviewController extends BaseController {
private final IHousesReviewService iHousesReviewService;
private final BuyHousesMapper buyHousesMapper;

View File

@ -11,13 +11,12 @@ import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.helper.DataBaseHelper;
import com.ruoyi.common.utils.spring.SpringUtils;
import com.ruoyi.system.domain.BuyHouses;
import com.ruoyi.system.domain.MaterialTalents;
import com.ruoyi.system.domain.*;
import com.ruoyi.system.domain.vo.HousesReviewVo;
import com.ruoyi.system.domain.vo.MaterialModuleVo;
import com.ruoyi.system.domain.vo.MaterialTalentsVo;
import com.ruoyi.system.mapper.BuyHousesMapper;
import com.ruoyi.system.mapper.HousesReviewMapper;
import com.ruoyi.system.mapper.MaterialTalentsMapper;
import com.ruoyi.system.mapper.*;
import com.ruoyi.system.service.impl.MaterialModuleServiceImpl;
import com.ruoyi.system.service.impl.SysConfigServiceImpl;
import com.ruoyi.work.domain.ActProcess;
import com.ruoyi.work.domain.HisProcess;
@ -77,6 +76,15 @@ public class DemoUnitTest {
@Autowired
private SysConfigServiceImpl sysConfigService;
@Autowired
private MaterialModuleMapper materialModuleMapper;
@Autowired
private MaterialProofMapper materialProofMapper;
@Autowired
private MaterialModuleServiceImpl materialModuleService;
@DisplayName("测试 @SpringBootTest @Test @DisplayName 注解")
@Test
@ -176,10 +184,11 @@ public class DemoUnitTest {
@Test
public void test004(){
BusinessDTO businessDTO = new BusinessDTO();
BuyHouses buyHouses = buyHousesMapper.selectById("2");
Map<String, Object> map = BeanUtil.beanToMap(buyHouses);
// BuyHouses buyHouses = buyHousesMapper.selectById("1011");
HousesReview housesReview = housesReviewMapper.selectById("1633344911078064130");
Map<String, Object> map = BeanUtil.beanToMap(housesReview);
businessDTO.setParams(map);
businessDTO.setBusinessId(buyHouses.getId().toString());
businessDTO.setBusinessId(housesReview.getId().toString());
WorkComplyUtils.getStep(businessDTO);
}
@ -304,4 +313,40 @@ public class DemoUnitTest {
public void test00000(){
processMapper.updateCommonByBusinessId("buy_houses", Constants.FAILD,"2");
}
@Test
public void tests1245545(){
List<MaterialModule> materialModules = materialModuleMapper.selectList();
List<BuyHouses> buyHouses = buyHousesMapper.selectList();
ArrayList<MaterialProof> list = new ArrayList<>();
for (BuyHouses buyHouse : buyHouses) {
Map<String, Object> map = BeanUtil.beanToMap(buyHouse);
for (MaterialModule materialModule : materialModules) {
if (ObjectUtil.isNotNull(map.get(materialModule.getMaterialKey()))){
MaterialProof materialProof = new MaterialProof();
materialProof.setHouseId(buyHouse.getId().toString());
materialProof.setModulePathId(materialModule.getId().toString());
materialProof.setFile( map.get(materialModule.getMaterialKey()).toString());
materialProof.setMaterialKey(materialModule.getMaterialKey());
materialProof.setAuditDept(materialModule.getAuditDept());
materialProof.setMaterialName(materialModule.getMaterialName());
materialProof.setDescription(materialModule.getDescription());
materialProof.setProcessKey("apply_house");
list.add(materialProof);
String o = map.get(materialModule.getMaterialKey()).toString();
System.out.println(buyHouse.getId()+":"+materialModule.getMaterialName() +":" + o);
}
}
}
materialProofMapper.insertBatch(list);
}
@Test
public void tesst00000(){
BuyHouses buyHouses = buyHousesMapper.selectById(1011L);
Map<String, Object> map = BeanUtil.beanToMap(buyHouses);
List<MaterialModuleVo> materialInfo = materialModuleService.getMaterialInfo(map);
System.out.println("materialInfo = " + materialInfo);
}
}

View File

@ -153,9 +153,13 @@ public class BuyHouses {
*/
private String workAddress;
public String processKey;
private String processKey;
private String processStatus;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date updateTime;
private String version;
}

View File

@ -59,5 +59,7 @@ public class MaterialProof extends BaseEntity {
private String materialName;
private String processKey;
}

View File

@ -1,14 +1,17 @@
package com.ruoyi.system.domain.bo;
import com.baomidou.mybatisplus.annotation.TableField;
import com.ruoyi.common.core.domain.BaseEntity;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.system.domain.BuyHousesMember;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;
/**
* 请填写功能名称业务对象 buy_houses
@ -219,6 +222,13 @@ public class BuyHousesBo extends BaseEntity {
@NotBlank(message = "不能为空", groups = { AddGroup.class, EditGroup.class })
private String workAddress;
public String processKey;
private String processKey;
@TableField(exist = false)
private List<BuyHousesMember> buyHousesMemberList;
private String version;
}

View File

@ -4,6 +4,7 @@ import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.TableField;
import com.ruoyi.system.domain.BuyHousesMember;
import com.ruoyi.system.domain.MaterialProof;
import lombok.Data;
import java.util.Date;
@ -225,5 +226,10 @@ public class BuyHousesVo {
@TableField(exist = false)
private List<BuyHousesMember> buyHousesMemberList;
private String version;
@TableField(exist = false)
private List<MaterialProof> materialProofList;
}

View File

@ -6,6 +6,7 @@ import com.ruoyi.common.core.domain.BaseEntity;
import com.ruoyi.system.domain.BuyHousesReviewMember;
import lombok.Data;
import java.util.Date;
import java.util.List;
@ -171,6 +172,8 @@ public class HousesReviewVo {
private List<BuyHousesReviewMember> buyHousesMemberList;
private Date updateTime;
}

View File

@ -1,6 +1,7 @@
package com.ruoyi.system.service;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.system.domain.bo.BuyHousesBo;
import com.ruoyi.system.domain.vo.BuyHousesVo;
@ -45,4 +46,6 @@ public interface IBuyHousesService {
* 校验并批量删除请填写功能名称信息
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
R<?> getMaterialInfo(BuyHousesBo bo);
}

View File

@ -5,14 +5,18 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.system.domain.BuyHouses;
import com.ruoyi.system.domain.BuyHousesMember;
import com.ruoyi.system.domain.MaterialProof;
import com.ruoyi.system.domain.bo.BuyHousesBo;
import com.ruoyi.system.domain.vo.BuyHousesVo;
import com.ruoyi.system.domain.vo.MaterialModuleVo;
import com.ruoyi.system.mapper.BuyHousesMapper;
import com.ruoyi.system.mapper.BuyHousesMemberMapper;
import com.ruoyi.system.mapper.MaterialProofMapper;
import com.ruoyi.system.service.IBuyHousesService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
@ -35,12 +39,21 @@ public class BuyHousesServiceImpl implements IBuyHousesService {
private final BuyHousesMemberMapper buyHousesMemberMapper;
private final MaterialProofMapper materialProofMapper;
private final MaterialModuleServiceImpl materialModuleService;
/**
* 查询请填写功能名称
*/
@Override
public BuyHousesVo queryById(Long id){
BuyHousesVo buyHousesVo = baseMapper.selectVoById(id);
LambdaQueryWrapper<MaterialProof> wrapper = new LambdaQueryWrapper<MaterialProof>()
.eq(MaterialProof::getHouseId, buyHousesVo.getId())
.eq(MaterialProof::getProcessKey, buyHousesVo.getProcessKey());
List<MaterialProof> materialProofs = materialProofMapper.selectList(wrapper);
buyHousesVo.setMaterialProofList(materialProofs);
LambdaQueryWrapper<BuyHousesMember> queryWrapper = new LambdaQueryWrapper<BuyHousesMember>()
.eq(BuyHousesMember::getBuyHousesId, id);
List<BuyHousesMember> buyHousesMembers = buyHousesMemberMapper.selectList(queryWrapper);
@ -146,4 +159,11 @@ public class BuyHousesServiceImpl implements IBuyHousesService {
}
return baseMapper.deleteBatchIds(ids) > 0;
}
@Override
public R<?> getMaterialInfo(BuyHousesBo bo) {
Map<String, Object> map = BeanUtil.beanToMap(bo);
List<MaterialModuleVo> materialInfo = materialModuleService.getMaterialInfo(map);
return R.ok(materialInfo);
}
}

View File

@ -155,10 +155,6 @@ public class HousesReviewServiceImpl implements IHousesReviewService {
List<Long> list = new ArrayList<>();
if (ObjectUtil.isNotNull(buyHousesMemberList) && buyHousesMemberList.size()>0) {
buyHousesReviewMembers.forEach(e -> {
/*boolean b1 = buyHousesMemberList.stream().noneMatch(b -> b.getFrontUrl().equals(e.getFrontUrl()));
boolean b1 = buyHousesMemberList.stream().noneMatch(b -> b.getInsidepageUrl().equals(e.getInsidepageUrl()));
boolean b1 = buyHousesMemberList.stream().noneMatch(b -> b.getHomeRecordUrl().equals(e.getHomeRecordUrl()));
boolean b1 = buyHousesMemberList.stream().noneMatch(b -> b.getReverseUrl().equals(e.getReverseUrl()));*/
if (ObjectUtil.isNotNull(e.getFrontUrl())){
if (!buyHousesMemberList.stream().anyMatch(b -> e.getFrontUrl().equals(b.getFrontUrl()))){
list.add(new Long(e.getFrontUrl()));
@ -297,7 +293,8 @@ public class HousesReviewServiceImpl implements IHousesReviewService {
*/
@Override
public R<?> getMaterialInfo(HousesReviewBo bo) {
List<MaterialModuleVo> materialInfo = materialModuleService.getMaterialInfo(bo);
Map<String, Object> map = BeanUtil.beanToMap(bo);
List<MaterialModuleVo> materialInfo = materialModuleService.getMaterialInfo(map);
return R.ok(materialInfo);
}

View File

@ -126,8 +126,7 @@ public class MaterialModuleServiceImpl implements IMaterialModuleService {
return R.ok(baseMapper.selectVoList(lqw));
}
public List<MaterialModuleVo> getMaterialInfo(HousesReviewBo bo){
Map<String, Object> map = BeanUtil.beanToMap(bo);
public List<MaterialModuleVo> getMaterialInfo(Map<String, Object> map){
Set<String> keys = map.keySet();
LambdaQueryWrapper<MaterialTalents> eq = new LambdaQueryWrapper<MaterialTalents>()
.eq(MaterialTalents::getTalentsValue, map.get("processKey"));
@ -137,6 +136,9 @@ public class MaterialModuleServiceImpl implements IMaterialModuleService {
.apply(DataBaseHelper.findInSet(materialTalentsVo.getId(), "selected"));
List<MaterialTalents> materialTalents = materialTalentsMapper.selectList(wrapper);
ArrayList<String> list = new ArrayList<>();
if (ObjectUtil.isNotNull(materialTalentsVo.getMaterials())){
list.add(materialTalentsVo.getMaterials());
}
for (MaterialTalents materialTalent : materialTalents) {
if (keys.contains(materialTalent.getTalentsValue())){
//获取当前目录下的数据
@ -149,13 +151,17 @@ public class MaterialModuleServiceImpl implements IMaterialModuleService {
}
}
List<Long> collect = list.stream().distinct().map(Long ::parseLong).collect(Collectors.toList());
String join = String.join(",", list);
List<String> strings = Arrays.asList(join.split(","));
List<Long> collect = strings.stream().distinct().map(Long ::parseLong).collect(Collectors.toList());
List<MaterialModuleVo> materialTalentsVos = baseMapper.selectVoBatchIds(collect);
LambdaQueryWrapper<MaterialProof> queryWrapper = new LambdaQueryWrapper<MaterialProof>()
.eq(MaterialProof::getHouseId, bo.getId());
.eq(MaterialProof::getHouseId, map.get("id"))
.eq(MaterialProof::getProcessKey,map.get("processKey"));
List<MaterialProof> materialProofs = materialProofMapper.selectList(queryWrapper);
materialTalentsVos.forEach(e -> {
materialProofs.forEach(m ->{
if (e.getId().toString().equals(m.getModulePathId())){

View File

@ -62,18 +62,21 @@ public class MaterialTalentsServiceImpl implements IMaterialTalentsService {
LambdaQueryWrapper<MaterialTalents> wrapper = new LambdaQueryWrapper<MaterialTalents>()
.eq(MaterialTalents::getId, bo.getParentId());
MaterialTalents materialTalents = baseMapper.selectOne(wrapper);
String selected = materialTalents.getSelected();
if (ObjectUtil.isNull(selected)){
bo.setSelected(materialTalents.getId().toString());
}else {
ArrayList<String> list = new ArrayList<>();
List<String> strings = Arrays.asList(materialTalents.getSelected().split(","));
list.addAll(strings);
list.add(materialTalents.getId().toString());
String join = StringUtils.join(list, ",");
bo.setSelected(join);
if (!bo.getParentId().equals(0L)){
String selected = materialTalents.getSelected();
if (ObjectUtil.isNull(selected)){
bo.setSelected(materialTalents.getId().toString());
}else {
ArrayList<String> list = new ArrayList<>();
List<String> strings = Arrays.asList(materialTalents.getSelected().split(","));
list.addAll(strings);
list.add(materialTalents.getId().toString());
String join = StringUtils.join(list, ",");
bo.setSelected(join);
}
}
}
MaterialTalents add = BeanUtil.toBean(bo, MaterialTalents.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;

View File

@ -0,0 +1,16 @@
<?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.ruoyi.system.mapper.BuyHouseCheckMapper">
<resultMap type="com.ruoyi.system.domain.BuyHouseCheck" id="BuyHouseCheckResult">
<result property="id" column="id"/>
<result property="remark" column="remark"/>
<result property="person" column="person"/>
<result property="otherKey" column="other_key"/>
<result property="cruxKey" column="crux_key"/>
</resultMap>
</mapper>

View File

@ -0,0 +1,49 @@
<?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.ruoyi.system.mapper.BuyHousesMapper">
<resultMap type="com.ruoyi.system.domain.BuyHouses" id="BuyHousesResult">
<result property="id" column="id"/>
<result property="insidepageUrl" column="insidepage_url"/>
<result property="cardId" column="card_id"/>
<result property="commitmentUrl" column="commitment_url"/>
<result property="companyAddress" column="company_address"/>
<result property="companyName" column="company_name"/>
<result property="createTime" column="create_time"/>
<result property="declarationUrl" column="declaration_url"/>
<result property="district" column="district"/>
<result property="education" column="education"/>
<result property="frontUrl" column="front_url"/>
<result property="gyStatus" column="gy_status"/>
<result property="homeRecordUrl" column="home_record_url"/>
<result property="homepageUrl" column="homepage_url"/>
<result property="laborContractUrl" column="labor_contract_url"/>
<result property="licenseUrl" column="license_url"/>
<result property="maritalStatus" column="marital_status"/>
<result property="maritalUrl" column="marital_url"/>
<result property="nationality" column="nationality"/>
<result property="phone" column="phone"/>
<result property="qyStatus" column="qy_status"/>
<result property="reverseUrl" column="reverse_url"/>
<result property="sex" column="sex"/>
<result property="shStatus" column="sh_status"/>
<result property="socialCode" column="social_code"/>
<result property="socialSecurityUrl" column="social_security_url"/>
<result property="status" column="status"/>
<result property="type" column="type"/>
<result property="userId" column="user_id"/>
<result property="userName" column="user_name"/>
<result property="affTime" column="aff_time"/>
<result property="pictureInformationUrl" column="picture_information_url"/>
<result property="workAddress" column="work_address"/>
<result property="updateTime" column="update_time"/>
<result property="processKey" column="process_key"/>
<result property="processStatus" column="process_status"/>
<result property="version" column="version"/>
</resultMap>
</mapper>

View File

@ -0,0 +1,24 @@
<?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.ruoyi.system.mapper.BuyHousesMemberMapper">
<resultMap type="com.ruoyi.system.domain.BuyHousesMember" id="BuyHousesMemberResult">
<result property="id" column="id"/>
<result property="insidepageUrl" column="insidepage_url"/>
<result property="buyHousesId" column="buy_houses_id"/>
<result property="frontUrl" column="front_url"/>
<result property="relation" column="relation"/>
<result property="reverseUrl" column="reverse_url"/>
<result property="homeRecordUrl" column="home_record_url"/>
<result property="cardId" column="card_id"/>
<result property="name" column="name"/>
<result property="createTime" column="create_time"/>
<result property="createBy" column="create_by"/>
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
</resultMap>
</mapper>

View File

@ -0,0 +1,24 @@
<?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.ruoyi.system.mapper.BuyHousesReviewMemberMapper">
<resultMap type="com.ruoyi.system.domain.BuyHousesReviewMember" id="BuyHousesReviewMemberResult">
<result property="id" column="id"/>
<result property="insidepageUrl" column="insidepage_url"/>
<result property="buyHousesId" column="buy_houses_id"/>
<result property="frontUrl" column="front_url"/>
<result property="relation" column="relation"/>
<result property="reverseUrl" column="reverse_url"/>
<result property="homeRecordUrl" column="home_record_url"/>
<result property="cardId" column="card_id"/>
<result property="name" column="name"/>
<result property="createTime" column="create_time"/>
<result property="createBy" column="create_by"/>
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
</resultMap>
</mapper>

View File

@ -0,0 +1,41 @@
<?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.ruoyi.system.mapper.HousesReviewMapper">
<resultMap type="com.ruoyi.system.domain.HousesReview" id="HousesReviewResult">
<result property="id" column="id"/>
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
<result property="createBy" column="create_by"/>
<result property="updateBy" column="update_by"/>
<result property="cardType" column="card_type"/>
<result property="card" column="card"/>
<result property="name" column="name"/>
<result property="qualification" column="qualification"/>
<result property="auditTime" column="audit_time"/>
<result property="presellCard" column="presell_card"/>
<result property="dealType" column="deal_type"/>
<result property="projectName" column="project_name"/>
<result property="projectArea" column="project_area"/>
<result property="qualificationConfirmTime" column="qualification_confirm_time"/>
<result property="qualificationPreApplyTime" column="qualification_pre_apply_time"/>
<result property="familyType" column="family_type"/>
<result property="status" column="status"/>
<result property="registerFailureTime" column="register_failure_time"/>
<result property="nationality" column="nationality"/>
<result property="maritalStatus" column="marital_status"/>
<result property="companyType" column="company_type"/>
<result property="companyName" column="company_name"/>
<result property="talentsType" column="talents_type"/>
<result property="creditCode" column="credit_code"/>
<result property="companyAddress" column="company_address"/>
<result property="sourceBy" column="source_by"/>
<result property="processKey" column="process_key"/>
<result property="processStatus" column="process_status"/>
<result property="companyAddressArea" column="company_address_area"/>
</resultMap>
</mapper>

View File

@ -1,19 +0,0 @@
<?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.ruoyi.system.mapper.SysConfigMapper">
<resultMap type="SysConfig" id="SysConfigResult">
<id property="configId" column="config_id"/>
<result property="configName" column="config_name"/>
<result property="configKey" column="config_key"/>
<result property="configValue" column="config_value"/>
<result property="configType" column="config_type"/>
<result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/>
<result property="updateBy" column="update_by"/>
<result property="updateTime" column="update_time"/>
</resultMap>
</mapper>

View File

@ -0,0 +1,28 @@
<?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.ruoyi.system.mapper.MaterialModuleMapper">
<resultMap type="com.ruoyi.system.domain.MaterialModule" id="MaterialModuleResult">
<result property="id" column="id"/>
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
<result property="createBy" column="create_by"/>
<result property="updateBy" column="update_by"/>
<result property="materialName" column="material_name"/>
<result property="materialKey" column="material_key"/>
<result property="auditDept" column="audit_dept"/>
<result property="description" column="description"/>
<result property="sort" column="sort"/>
<result property="isMust" column="is_must"/>
</resultMap>
<select id="selectVoPageList" resultMap="MaterialModuleResult">
SELECT m.id,material_name,`material_key`,s.dept_name AS audit_dept,description,m.sort,m.is_must
FROM `material_module` m
INNER JOIN sys_dept s ON s.dept_id = m.audit_dept
${ew.getCustomSqlSegment}
</select>
</mapper>

View File

@ -0,0 +1,25 @@
<?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.ruoyi.system.mapper.MaterialProofMapper">
<resultMap type="com.ruoyi.system.domain.MaterialProof" id="MaterialProofResult">
<result property="id" column="id"/>
<result property="houseId" column="house_id"/>
<result property="getCreateTime" column="create_time"/>
<result property="status" column="status"/>
<result property="modulePathId" column="module_path_id"/>
<result property="file" column="file"/>
<result property="materialKey" column="material_key"/>
<result property="description" column="description"/>
<result property="auditDept" column="audit_dept"/>
<result property="checkType" column="check_type"/>
<result property="updateTime" column="update_time"/>
<result property="updateBy" column="update_by"/>
<result property="createBy" column="create_by"/>
<result property="materialName" column="material_name"/>
</resultMap>
</mapper>

View File

@ -0,0 +1,40 @@
<?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.ruoyi.system.mapper.MaterialTalentsMapper">
<resultMap type="com.ruoyi.system.domain.MaterialTalents" id="MaterialTalentsResult">
<result property="id" column="id"/>
<result property="parentId" column="parent_id"/>
<result property="talentsValue" column="talents_value"/>
<result property="talentsName" column="talents_name"/>
<result property="version" column="version"/>
<result property="createTime" column="create_time"/>
<result property="createBy" column="create_by"/>
<result property="updateTime" column="update_time"/>
<result property="updateBy" column="update_by"/>
<result property="delFlag" column="del_flag"/>
<result property="selected" column="selected"/>
<result property="materials" column="materials"/>
</resultMap>
<select id="selectVoListSpecial" resultMap="MaterialTalentsResult">
SELECT
mt.id,
mt.parent_id,
mt.talents_name,
mt.talents_value,
mt.selected,
GROUP_CONCAT( mm.material_name ) AS materials
FROM
`material_talents` mt
LEFT JOIN material_module mm ON FIND_IN_SET( mm.id, mt.materials )
<where>
<if test="talentsName!='' and talentsName != null"> and mt.talents_name like concat('%', #{talentsName}, '%') </if>
</where>
GROUP BY mt.id
</select>
</mapper>

View File

@ -12,9 +12,11 @@ import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.work.domain.ActProcess;
import com.ruoyi.work.domain.HisProcess;
import com.ruoyi.work.domain.RollBackLog;
import com.ruoyi.work.domain.TProcess;
import com.ruoyi.work.domain.vo.ProcessVo;
import com.ruoyi.work.dto.BusinessDTO;
import com.ruoyi.work.dto.HisProcessVoResultDto;
import com.ruoyi.work.dto.ProcessVoResultDto;
import com.ruoyi.work.mapper.ProcessMapper;
import com.ruoyi.work.utils.WorkComplyUtils;
@ -84,7 +86,7 @@ public class WorkController extends BaseController {
*/
@Log(title = "获取可退回步骤",businessType = BusinessType.OTHER)
@PostMapping("/getStep")
public void getStep(@RequestBody BusinessDTO businessDTO){
public R<?> getStep(@RequestBody BusinessDTO businessDTO){
LambdaQueryWrapper<TProcess> wrapper = new LambdaQueryWrapper<TProcess>()
.eq(TProcess::getProcessKey, businessDTO.getProcessKey());
List<TProcess> tProcesses = processMapper.selectList(wrapper);
@ -93,7 +95,8 @@ public class WorkController extends BaseController {
}
Map<String, Object> map = WorkUtils.getInfoToMap(tProcesses.get(0).getBean(),businessDTO.getBusinessId());
businessDTO.setParams(map);
WorkComplyUtils.getStep(businessDTO);
List<HisProcessVoResultDto> step = WorkComplyUtils.getStep(businessDTO);
return R.ok(step);
}
@ -155,5 +158,13 @@ public class WorkController extends BaseController {
return WorkComplyUtils.getAuditLogListByOtherId(businessDTO);
}
@Log(title = "回退",businessType = BusinessType.OTHER)
@PostMapping("/rollBackLog")
public R<?> rollBackLog(@RequestBody RollBackLog rollBackLog){
return toAjax(WorkComplyUtils.rollBack(rollBackLog));
}
}

View File

@ -47,7 +47,6 @@ public class HisProcess{
*/
private String status;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
@ -57,7 +56,6 @@ public class HisProcess{
@TableField(exist = false)
private Map params;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date endTime;
private String step;
@ -66,17 +64,22 @@ public class HisProcess{
private String startUser;
@TableField(exist = false)
private String userId;
@TableField(exist = false)
private String roleId;
@TableField(exist = false)
private String deptId;
@TableField(exist = false)
private String companyUserId;
/**
* 相隔时间差
*/
@TableField(exist = false)
private String timeBetween;
private String companyName;
@ -90,6 +93,12 @@ public class HisProcess{
@TableField(exist = false)
private String bean;
@TableField(exist = false)
private String description;
@TableField(exist = false)
private String audit1;
}

View File

@ -1,5 +1,6 @@
package com.ruoyi.work.domain;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.core.domain.BaseEntity;
@ -38,14 +39,19 @@ public class RollBackLog extends BaseEntity {
*/
private String param;
@TableField(exist = false)
private String businessId;
@TableField(exist = false)
private String step;
@TableField(exist = false)
private String checked;
@TableField(exist = false)
private String checkType;
@TableField(exist = false)
private String audit;
}

View File

@ -71,10 +71,15 @@ public class HisProcessVo {
private Date createTime;
private Date endTime;
private String startUser;
@TableField(exist = false)
private String bean;
@TableField(exist = false)
private String description;
}

View File

@ -104,6 +104,9 @@ public class ProcessVo {
@TableField(exist = false)
private String checked;
@TableField(exist = false)
private String audit1;
private String bean;
private String description;

View File

@ -1,5 +1,6 @@
package com.ruoyi.work.dto;
import com.ruoyi.work.domain.HisProcess;
import com.ruoyi.work.domain.vo.HisProcessVo;
import lombok.AllArgsConstructor;
import lombok.Data;
@ -14,6 +15,6 @@ import java.util.List;
@NoArgsConstructor
public class HisProcessVoResultDto {
private String step;
private List<HisProcessVo> hisProcessVoList;
private List<HisProcess> hisProcessVoList;
}

View File

@ -1,11 +1,17 @@
package com.ruoyi.work.mapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.mapper.BaseMapperPlus;
import com.ruoyi.work.domain.HisProcess;
import com.ruoyi.work.domain.vo.HisProcessVo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 历史运作Mapper接口
*
@ -16,4 +22,6 @@ public interface HisProcessMapper extends BaseMapperPlus<HisProcessMapper, HisPr
Page<HisProcess> selectVoListPage(@Param("page") Page<HisProcess> page, @Param("hisProcess") HisProcess hisProcess);
List<HisProcess> selectVoHisList( @Param(Constants.WRAPPER) Wrapper<HisProcess> queryWrapper);
}

View File

@ -6,6 +6,7 @@ import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.constant.Constants;
@ -28,6 +29,7 @@ import com.ruoyi.work.domain.vo.ActProcessVo;
import com.ruoyi.work.domain.vo.HisProcessVo;
import com.ruoyi.work.domain.vo.ProcessVo;
import com.ruoyi.work.dto.BusinessDTO;
import com.ruoyi.work.dto.HisProcessVoResultDto;
import com.ruoyi.work.dto.ProcessVoResultDto;
import com.ruoyi.work.mapper.*;
import com.ruoyi.work.service.IWorkSysDeptService;
@ -323,7 +325,7 @@ public class WorkComplyUtils {
* 先判断这条流程走到那一步了,可以撤回到那几步
*/
public static Map<String, List<HisProcessVo>>getStep(BusinessDTO businessDTO){
public static List<HisProcessVoResultDto> getStep(BusinessDTO businessDTO){
//获取当前任务执行到那一步了
LambdaQueryWrapper<ActProcess> lwq = new LambdaQueryWrapper<>();
lwq.eq(ActProcess::getBusinessId,businessDTO.getBusinessId());
@ -337,46 +339,45 @@ public class WorkComplyUtils {
if (!"1".equals(step)){
//获取历史表中在该业务流程步骤之前的人员数据,根据业务表的更新时间为节点
Object updateTime = businessDTO.getParams().get("updateTime");
LambdaQueryWrapper<HisProcess> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(HisProcess::getBusinessId,businessDTO.getBusinessId());
wrapper.ge(HisProcess::getStep,"1");
wrapper.lt(HisProcess::getStep,step);
wrapper.ge(HisProcess::getCreateTime,updateTime);
wrapper.orderByAsc(HisProcess::getStep);
List<HisProcessVo> hisProcessVos = hisProcessMapper.selectVoList(wrapper);
for (HisProcessVo hisProcessVo : hisProcessVos) {
if ("4".equals(hisProcessVo)){//企业
String companyName = businessDTO.getParams().get("companyName").toString();
hisProcessVo.setAudit(companyName);
}else{
if ("1".equals(hisProcessVo.getCheckType())){//人才
String username = LoginHelper.getUsername();
hisProcessVo.setAudit1(username);
}else if ("2".equals(hisProcessVo.getCheckType())){//部门
String deptName = LoginHelper.getLoginUser().getDeptName();
hisProcessVo.setAudit1(deptName);
}else if ("3".equals(hisProcessVo.getCheckType())){//角色
Long roleId = LoginHelper.getLoginUser().getRoleId();
SysRole sysRole = sysRoleMapper.selectRoleById(roleId);
hisProcessVo.setAudit1(sysRole.getRoleName());
}else if ("4".equals(hisProcessVo.getCheckType())){//公司
hisProcessVo.setAudit1(hisProcessVo.getCompanyName());
}
if (ObjectUtil.isNull(updateTime)){
throw new ServiceException("updateTime不可为空");
}
QueryWrapper<HisProcess> wrapper = new QueryWrapper<>();
wrapper.eq("business_id",businessDTO.getBusinessId());
wrapper.ge("h.step","1");
wrapper.le("h.step",step);
wrapper.ge("h.create_time",updateTime);
wrapper.orderByAsc("h.step");
List<HisProcess> hisProcessVos = hisProcessMapper.selectVoHisList(wrapper);
for (HisProcess hisProcessVo : hisProcessVos) {
if ("4".equals(hisProcessVo.getCheckType())) {//企业审核
hisProcessVo.setAudit1(hisProcessVo.getCompanyName());
} else if ("1".equals(hisProcessVo.getCheckType())) {
//根据id获取人员信息
SysUser sysUser = sysUserMapper.selectUserById(new Long(hisProcessVo.getAudit()));
hisProcessVo.setAudit1(sysUser.getUserName());
} else if ("2".equals(hisProcessVo.getCheckType())) {
SysDept sysDept = sysDeptMapper.selectDeptById(new Long(hisProcessVo.getAudit()));
hisProcessVo.setAudit1(sysDept.getDeptName());
} else if ("3".equals(hisProcessVo.getCheckType())) {
SysRole sysRole = sysRoleMapper.selectRoleById(new Long(hisProcessVo.getAudit()));
hisProcessVo.setAudit1(sysRole.getRoleName());
}
}
//将每个步骤处理为单个对象
Map<String, List<HisProcessVo>> collect = hisProcessVos.stream().collect(Collectors.groupingBy(HisProcessVo::getStep));
System.out.println("collect = " + collect);
/* List<HisProcessVoResultDto> collect1 = collect.entrySet()
Map<String, List<HisProcess>> collect = hisProcessVos.stream().collect(Collectors.groupingBy(HisProcess::getStep));
List<HisProcessVoResultDto> collect1 = collect.entrySet()
.stream()
.map(e -> new HisProcessVoResultDto(e.getKey(), e.getValue()))
.collect(Collectors.toList());
collect1.forEach(e ->{
String s = e.getHisProcessVoList().stream().map(ProcessVo::getDescription).collect(Collectors.toList()).get(0);
String s = e.getHisProcessVoList().stream().map(HisProcess::getDescription).collect(Collectors.toList()).get(0);
e.setStep(s);
});*/
return collect;
});
System.out.println("collect = " + collect1);
return collect1;
}
}
return null;

View File

@ -43,6 +43,12 @@
</where>
ORDER BY d.end_time DESC
</select>
<select id="selectVoHisList" resultType="com.ruoyi.work.domain.HisProcess">
SELECT h.id,p.description,h.audit,h.check_type AS checkType,h.step,h.type,h.start_user AS startUser,h.company_name AS companyName,p.bean
,h.business_id AS businessId
FROM `his_process` h INNER JOIN process p ON p.id = h.process_id
${ew.getCustomSqlSegment}
</select>
</mapper>