计量中心项目

This commit is contained in:
2022-07-25 11:09:12 +08:00
parent 5911f42537
commit c8bb34e6cb
2143 changed files with 306192 additions and 0 deletions

View File

@@ -0,0 +1,100 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>com.yxt</groupId>
<artifactId>yxt-parent</artifactId>
<version>0.0.1</version>
<relativePath/>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>jlzx-single-oa-biz</artifactId>
<groupId>com.yxt.jlzx</groupId>
<version>0.0.1</version>
<dependencies>
<dependency>
<groupId>com.yxt.jlzx</groupId>
<artifactId>jlzx-single-oa-api</artifactId>
<version>0.0.1</version>
</dependency>
<dependency>
<groupId>com.yxt</groupId>
<artifactId>yxt-common-base</artifactId>
<version>0.0.1</version>
</dependency>
<dependency>
<groupId>com.yxt.jlzx</groupId>
<artifactId>jlzx-single-jlcyry-api</artifactId>
<version>0.0.1</version>
</dependency>
<dependency>
<groupId>com.yxt.jlzx</groupId>
<artifactId>jlzx-single-system-api</artifactId>
<version>0.0.1</version>
</dependency>
<dependency>
<groupId>com.yxt.workflow</groupId>
<artifactId>yxt-single-workflow-api</artifactId>
<version>0.0.1</version>
</dependency>
<dependency>
<groupId>com.yxt.attend</groupId>
<artifactId>yxt-single-attend-api</artifactId>
<version>0.0.1</version>
</dependency>
<dependency>
<groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
</dependency>-->
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*Mapper.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.*</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
</project>

View File

@@ -0,0 +1,33 @@
package com.yxt.jlzx.oa;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
/**
* Project: oa <br/>
* File: OaApplication.java <br/>
* Class: com.yxt.jlzx.oa.OaApplication <br/>
* Description: <描述类的功能>. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2020/10/12 11:47 <br/>
*
* @author yxt_mtl
* @version 1.0
* @since 1.0
*/
@EnableDiscoveryClient
@SpringBootApplication(scanBasePackages = {
"com.yxt.common.base.config",
"com.yxt.jlzx.oa"
})
@EnableFeignClients(basePackages = {"com.yxt.jlzx.jlcyry","com.yxt.jlzx.system","com.yxt.workflow","com.yxt.attend"})
public class OaApplication {
public static void main(String[] args) {
SpringApplication.run(OaApplication.class, args);
}
}

View File

@@ -0,0 +1,260 @@
package com.yxt.jlzx.oa.biz.cabinetfile;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.config.RedisUtil;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.jlzx.jlcyry.api.staffinfo.StaffBasicDetailsVo;
import com.yxt.jlzx.jlcyry.api.staffinfo.StaffInfoApi;
import com.yxt.jlzx.oa.api.cabinetfile.*;
import com.yxt.jlzx.oa.api.cabinetfolder.CabinetFolder;
import com.yxt.jlzx.oa.api.cabinetfolder.CabinetFolderApi;
import com.yxt.jlzx.oa.api.filesappendix.Filesappendix;
import com.yxt.jlzx.oa.biz.cabinetfolder.CabinetFolderService;
import com.yxt.jlzx.oa.biz.filesappendix.FilesappendixService;
import com.yxt.jlzx.system.api.index.IndexApi;
import com.yxt.jlzx.system.api.index.IndexDetailsUser;
import com.yxt.jlzx.system.api.index.UserBaseInfo;
import com.yxt.jlzx.system.api.user.User;
import com.yxt.jlzx.system.api.user.UserApi;
import io.swagger.annotations.Api;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author dimengzhe
* @date 2020/10/22 11:20
* @description 文件柜中的文件
*/
@Controller
@RequestMapping("v1/cabinetfiles")
@Api(tags = "文件柜中的文件管理")
public class CabinetFileApiImpl implements CabinetFileApi {
@Autowired
private CabinetFileService cabinetFileService;
@Autowired
private CabinetFolderService cabinetFolderService;
@Autowired
private FilesappendixService filesappendixService;
@Autowired(required = false)
private HttpServletRequest httpServletRequest;
@Autowired
private RedisUtil redisUtil;
@Autowired
private StaffInfoApi staffInfoApi;
@Autowired
private UserApi userApi;
@Autowired
private IndexApi indexApi;
/**
* 不分页列表(可带查询参数)
*
* @param query
* @return 不分页列表
*/
@Override
public ResultBean<List<CabinetFileVo>> list(@Valid CabinetFileQuery query) {
return null;
}
/**
* 分页列表(可带查询参数)
*
* @param pagerQuery
* @return
*/
@Override
public ResultBean<PagerVo<CabinetFileVo>> pageList(@Valid PagerQuery<CabinetFileQuery> pagerQuery) {
ResultBean<PagerVo<CabinetFileVo>> rb = ResultBean.fireFail();
PagerVo<CabinetFileVo> pv = new PagerVo<>();
IPage<CabinetFileVo> p2 = cabinetFileService.pageList(pagerQuery);
PagerVo<CabinetFileVo> pv1 = PagerUtil.pageToVo(p2, pv);
List<CabinetFileVo> record = pv1.getRecords();
if (record.size() > 0) {
for (CabinetFileVo vo : record) {
String sid = vo.getCreateBySid();
ResultBean<IndexDetailsUser> indexDetailsUserResultBean = indexApi.indexUserDetails(sid);
if (!indexDetailsUserResultBean.getSuccess()) {
return rb.setMsg("请重新登录");
}
IndexDetailsUser indexDetailsUser = indexDetailsUserResultBean.getData();
UserBaseInfo userBaseInfo = indexDetailsUser.getUserBaseInfo();
vo.setName(userBaseInfo.getName());
}
}
return rb.success().setData(pv1);
}
/**
* 保存
*
* @param dto@return ResultBean
*/
@Override
public ResultBean save(@Valid CabinetFileDto dto) {
String token = httpServletRequest.getHeader("token");
String userName = redisUtil.get(token);
if (StringUtils.isBlank(userName)) {
return ResultBean.fireFail().setMsg("请重新登录");
}
CabinetFile cabinetFile = new CabinetFile();
cabinetFile.setCreateBySid(userName);
/* ResultBean<StaffBasicDetailsVo> staffInfoResultBean = staffInfoApi.selectByUserName(userName); //人员信息
if (staffInfoResultBean == null) {
return ResultBean.fireFail().setMsg("账号错误");
} else {
cabinetFile.setCreateBySid(staffInfoResultBean.getData().getStaffSid());
}*/
//dto.fillEntity(cabinetFile);
//2021.10.14 判断上传附件信息不能为空
//遍历上传的附件信息,进行保存. cabinetFile表
cabinetFile.setTitle(dto.getTitle()); //文件标题
cabinetFile.setFolderSid(dto.getFolderSid()); //文件柜Sid
cabinetFile.setRemarks(dto.getRemarks()); //备注
cabinetFile.setSortNo(dto.getSortNo()); //排序
if (dto.getCabinetFileList() != null && dto.getCabinetFileList().size() > 0) {
for (int i = 0; i < dto.getCabinetFileList().size(); i++) {
cabinetFile.setFileName(dto.getCabinetFileList().get(i).getFileName()); //文件名称
cabinetFile.setFileSize(dto.getCabinetFileList().get(i).getFileSize()); //文件大小
if (!cabinetFileService.save(cabinetFile)) {
return ResultBean.fireFail().setMsg(dto.getCabinetFileList().get(i).getFileName() + "保存失败");
}
//保存附件表中 Filesappendix表
if (StringUtils.isNoneBlank(dto.getCabinetFileList().get(i).getFileUrl())) {
Filesappendix filesappendix = new Filesappendix();
filesappendix.setFilePath(dto.getCabinetFileList().get(i).getFileUrl()); //文件路径
filesappendix.setFileName(dto.getCabinetFileList().get(i).getFileName()); //文件名称
filesappendix.setFileType("cabinetfile"); //文件类型
filesappendix.setLinkSid(cabinetFile.getSid()); //关联文件柜表Sid
filesappendixService.save(filesappendix);
}
}
}
// if (!cabinetFileService.save(cabinetFile)) {
// return ResultBean.fireFail().setMsg("保存失败");
// }
// if (StringUtils.isNoneBlank(dto.getFileUrl())) {
// Filesappendix filesappendix = new Filesappendix();
// filesappendix.setFilePath(dto.getFileUrl());
// filesappendix.setFileType("cabinetfile");
// filesappendix.setLinkSid(cabinetFile.getSid());
// filesappendixService.save(filesappendix);
// }
return ResultBean.fireSuccess().setData("保存成功");
}
/**
* 编辑保存
*
* @param dto
* @param sid
* @return ResultBean
*/
@Override
public ResultBean update(@Valid CabinetFileDto dto, String sid) throws Exception {
String token = httpServletRequest.getHeader("token");
String userName = redisUtil.get(token);
if (StringUtils.isBlank(userName)) {
return ResultBean.fireFail().setMsg("请重新登录");
}
CabinetFile cabinetFile = cabinetFileService.fetchBySid(sid);
ResultBean<StaffBasicDetailsVo> staffInfoResultBean = staffInfoApi.selectByUserName(userName);
if (null == cabinetFile) {
return ResultBean.fireFail().setMsg("该文件不存在");
}
if (0 == cabinetFileService.updateBySid(dto.toMap(), sid)) {
return ResultBean.fireFail();
}
//2021.10.14
// if (StringUtils.isNoneBlank(dto.getFileUrl()) { //原本的
// Filesappendix filesappendix = filesappendixService.selectByLinkSid(sid);
// Map<String, Object> map = new HashMap<>();
// map.put("filePath",dto.getFileUrl());
// map.put("type", "cabinetfile");
// map.put("linkSid", sid);
// map.put("createBySid", staffInfoResultBean.getData().getStaffSid());
// filesappendixService.updateBySid(map, filesappendix.getSid());
// }
//2021.10.14当修改附件时,先判断是否存在,如果存在则删除,然后在保存
QueryWrapper<Filesappendix> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("linkSid", sid);
List<Filesappendix> list = filesappendixService.list(queryWrapper);
if (list.size() > 0) {
for (Filesappendix f : list) {
filesappendixService.deleteBySid(f.getSid());
}
}
//重新保存附件表中filesappendix表
for (int i = 0; i < dto.getCabinetFileList().size(); i++) {
if (StringUtils.isNoneBlank(dto.getCabinetFileList().get(i).getFileUrl())) {
Filesappendix filesappendix = new Filesappendix();
filesappendix.setFilePath(dto.getCabinetFileList().get(i).getFileUrl());
filesappendix.setFileType("cabinetfile");
filesappendix.setLinkSid(cabinetFile.getSid());
filesappendixService.save(filesappendix);
}
}
return ResultBean.fireSuccess().setMsg("修改成功");
}
/**
* 删除
*
* @param sid sid
* @return ResultBean
*/
@Override
public ResultBean delete(String sid) {
CabinetFile cabinetFile = cabinetFileService.fetchBySid(sid);
if (null == cabinetFile) {
return ResultBean.fireFail().setMsg("该文件不存在");
}
//2020.10.16 只允许删除本人上传的附件,管理员可以删除所有的附件
//获取登录登录人员的信息
String token = httpServletRequest.getHeader("token");
String userName = redisUtil.get(token);
User user = userApi.selectByUserNameOne(userName).getData();
//2021.10.16 判断当前用户是否为管理员,或者登录人员是否是上传文件人员
if ("1".equals(user.getIsAdmin()) || cabinetFile.getCreateBySid().equals(user.getStaffSid())) {
} else {
return ResultBean.fireFail().setMsg("您没有权限删除此文件");
}
int iii = cabinetFileService.deleteBySid(sid);
if (iii == 0) {
return ResultBean.fireFail().setMsg("删除失败");
}
filesappendixService.deleteByLinkSid(sid);
return ResultBean.fireSuccess().setMsg("删除成功");
}
/**
* 获取单一对象
*
* @param sid
* @return
*/
@Override
public ResultBean<CabinetFileVo> getVo(String sid) {
return null;
}
}

View File

@@ -0,0 +1,27 @@
package com.yxt.jlzx.oa.biz.cabinetfile;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.jlzx.oa.api.cabinetfile.CabinetFile;
import com.yxt.jlzx.oa.api.cabinetfile.CabinetFileVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* @author dimengzhe
* @date 2020/10/22 11:33
* @description 文件柜中的文件
*/
@Mapper
public interface CabinetFileMapper extends BaseMapper<CabinetFile> {
/**
* 分页列表
*
* @param page 分页
* @param qw 查询条件
* @return
*/
public IPage<CabinetFileVo> pageList(IPage<?> page, @Param(Constants.WRAPPER) Wrapper<CabinetFileVo> qw);
}

View File

@@ -0,0 +1,18 @@
<?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.yxt.jlzx.oa.biz.cabinetfile.CabinetFileMapper">
<select id="pageList" resultType="com.yxt.jlzx.oa.api.cabinetfile.CabinetFileVo">
SELECT cab.sid,
cab.fileName,
cab.fileSize,
cab.createBySid,
DATE_FORMAT(cab.createTime, '%Y-%m-%d') AS createTime,
cab.remarks,
file.filePath
FROM jlzx_oa.cabinetfile cab
LEFT JOIN cabinetfolder cf ON cf.sid = cab.folderSid
LEFT JOIN jlzx_oa.filesappendix file ON file.linkSid = cab.sid and file.filename = cab.filename
${ew.customSqlSegment}
</select>
</mapper>

View File

@@ -0,0 +1,85 @@
package com.yxt.jlzx.oa.biz.cabinetfile;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.jlzx.oa.api.cabinetfile.CabinetFile;
import com.yxt.jlzx.oa.api.cabinetfile.CabinetFileQuery;
import com.yxt.jlzx.oa.api.cabinetfile.CabinetFileVo;
import com.yxt.jlzx.oa.api.cabinetfolder.CabinetFolder;
import com.yxt.jlzx.oa.biz.cabinetfolder.CabinetFolderService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author dimengzhe
* @date 2020/10/22 11:21
* @description 文件柜中的文件
*/
@Service
public class CabinetFileService extends MybatisBaseService<CabinetFileMapper, CabinetFile> {
@Autowired
private CabinetFolderService cabinetFolderService;
public IPage<CabinetFileVo> pageList(PagerQuery<CabinetFileQuery> pagerQuery) {
IPage<CabinetFileQuery> page = PagerUtil.queryToPage(pagerQuery);
CabinetFileQuery params = pagerQuery.getParams();
QueryWrapper<CabinetFileVo> qw = new QueryWrapper<>();
if (params != null) {
String name = params.getName();
if (StringUtils.isNotBlank(name)) {
qw.like("cab.fileName", name);
}
String folderSid = params.getFolderSid();
if (StringUtils.isNotBlank(folderSid)) {
//判断是否是第一级
CabinetFolder cabinetFolder = cabinetFolderService.fetchBySid(folderSid);
//查询该文件夹所有的下级
List<String> list = cabinetFolderService.selectOneBySid(folderSid);
// if (cabinetFolder != null) {
// if (cabinetFolder.getPsid().equals("0")) {
// qw.eq("cf.psid", folderSid);
// } else {
// qw.eq("cab.folderSid", folderSid);
// }
//
// }
list.add(folderSid);
qw.in("cab.folderSid",list);
}
qw.apply(StringUtils.isNotBlank(params.getDateStart()),
"date_format (cab.createTime,'%Y-%m-%d') >= str_to_date('" + params.getDateStart() + "','%Y-%m-%d')");
qw.apply(StringUtils.isNotBlank(params.getDateEnd()),
"date_format (cab.createTime,'%Y-%m-%d') <= str_to_date('" + params.getDateEnd() + "','%Y-%m-%d')");
}
return baseMapper.pageList(page, qw);
}
public IPage<CabinetFileVo> selfAndDeaprtPageList(PagerQuery<CabinetFileQuery> pagerQuery) {
IPage<CabinetFileQuery> page = PagerUtil.queryToPage(pagerQuery);
CabinetFileQuery params = pagerQuery.getParams();
QueryWrapper<CabinetFileVo> qw = new QueryWrapper<>();
if (params != null) {
String name = params.getName();
if (StringUtils.isNotBlank(name)) {
qw.like("cab.fileName", name);
}
String folderSid = params.getFolderSid();
if (StringUtils.isNotBlank(folderSid)) {
qw.eq("cf.psid",folderSid);
}
qw.apply(StringUtils.isNotBlank(params.getDateStart()),
"date_format (cab.createTime,'%Y-%m-%d') >= str_to_date('" + params.getDateStart() + "','%Y-%m-%d')");
qw.apply(StringUtils.isNotBlank(params.getDateEnd()),
"date_format (cab.createTime,'%Y-%m-%d') <= str_to_date('" + params.getDateEnd() + "','%Y-%m-%d')");
}
return baseMapper.pageList(page, qw);
}
}

View File

@@ -0,0 +1,375 @@
package com.yxt.jlzx.oa.biz.cabinetfolder;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.config.RedisUtil;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.jlzx.jlcyry.api.staffinfo.StaffBasicDetailsVo;
import com.yxt.jlzx.jlcyry.api.staffinfo.StaffInfoApi;
import com.yxt.jlzx.oa.api.cabinetfile.*;
import com.yxt.jlzx.oa.api.cabinetfolder.*;
import com.yxt.jlzx.oa.api.filesappendix.Filesappendix;
import com.yxt.jlzx.oa.biz.cabinetfile.CabinetFileService;
import com.yxt.jlzx.oa.biz.filesappendix.FilesappendixService;
import com.yxt.jlzx.system.api.index.IndexApi;
import com.yxt.jlzx.system.api.index.IndexDetailsUser;
import com.yxt.jlzx.system.api.index.UserBaseInfo;
import com.yxt.jlzx.system.api.user.User;
import com.yxt.jlzx.system.api.user.UserApi;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
import java.util.List;
/**
* @author dimengzhe
* @date 2020/10/23 8:49
* @description
*/
@Controller
@RequestMapping("v1/cabinetfolders")
@Api(tags = "文件柜管理")
public class CabinetFolderApiImpl implements CabinetFolderApi {
@Autowired
private RedisUtil redisUtil;
@Autowired
private CabinetFolderService cabinetFolderService;
@Autowired(required = false)
private HttpServletRequest httpServletRequest;
@Autowired
private StaffInfoApi staffInfoApi;
@Autowired
private CabinetFileService cabinetFileService;
@Autowired
private FilesappendixService filesappendixService;
@Autowired
private UserApi userApi;
@Autowired
private IndexApi indexApi;
/**
* 不分页列表(可带查询参数)
*
* @param query
* @return 不分页列表
*/
@Override
public ResultBean<List<CabinetFolderVo>> list(@Valid CabinetFolderQuery query) {
return null;
}
/**
* 分页列表(可带查询参数)
*
* @param pagerQuery
* @return
*/
@Override
public ResultBean<PagerVo<CabinetFolderVo>> pageList(@Valid PagerQuery<CabinetFolderQuery> pagerQuery) {
return null;
}
/**
* 保存
*
* @param dto@return ResultBean
*/
@Override
public ResultBean save(@Valid CabinetFolderDto dto) {
CabinetFolder cabinetFolder = new CabinetFolder();
cabinetFolder.setState(1);
dto.fillEntity(cabinetFolder);
if (StringUtils.isBlank(cabinetFolder.getPsid())) {
cabinetFolder.setPsid("0");
}
if (cabinetFolder.getPsid().equals("0")) {
CabinetFolder cabinetFolder1 = cabinetFolderService.selectByOrgSid(cabinetFolder.getOrgSid());
if (cabinetFolder1 != null) {
return ResultBean.fireFail().setMsg("此单位已有最外层文件柜");
}
}
if (!cabinetFolderService.save(cabinetFolder)) {
return ResultBean.fireFail().setMsg("保存失败");
}
return ResultBean.fireSuccess().setData("保存成功");
}
/**
* 编辑保存
*
* @param dto 参数dto对象
* @param sid 文件夹sid
* @return ResultBean
*/
@Override
public ResultBean update(@Valid CabinetFolderDto dto, String sid) throws Exception {
// CabinetFolder cabinetFolder = cabinetFolderService.fetchBySid(sid);
// if (null == cabinetFolder) {
// return ResultBean.fireFail().setMsg("该文件夹不存在");
// }
// if (0 == cabinetFolderService.updateBySid(dto.toMap(), sid)) {
// return ResultBean.fireFail();
// }
// return ResultBean.fireSuccess().setMsg("修改成功");
return null;
}
/**
* 删除
*
* @param sid sid
* @return ResultBean
*/
@Override
public ResultBean delete(String sid) {
CabinetFolder cabinetFolder = cabinetFolderService.fetchBySid(sid);
if (null == cabinetFolder) {
return ResultBean.fireFail().setMsg("该文件夹不存在");
}
//2021.10.16 只允许管理员删除,文件目录
//获取登录登录人员的信息
String token = httpServletRequest.getHeader("token");
String userName = redisUtil.get(token);
User user = userApi.selectByUserNameOne(userName).getData();
//2021.10.16 判断当前用户是否为管理员,只有管理员才可以删除文件夹
if ("1".equals(user.getIsAdmin())) {
} else {
return ResultBean.fireFail().setMsg("您没有权限删除此文件");
}
int i = cabinetFolderService.selectBySid(sid);
if (i > 0) {
return ResultBean.fireFail().setMsg("该文件夹存在下级,请删除下级后再操作");
}
int ii = cabinetFolderService.selectFileBySid(sid);
if (ii > 0) {
return ResultBean.fireFail().setMsg("该文件夹中存在文件,请删除文件后再操作");
}
int iii = cabinetFolderService.deleteBySid(sid);
if (iii == 0) {
return ResultBean.fireFail().setMsg("删除失败");
}
return ResultBean.fireSuccess().setMsg("删除成功");
}
/**
* 获取单一对象
*
* @param sid
* @return
*/
@Override
public ResultBean<CabinetFolderVo> getVo(String sid) {
return null;
}
/**
* 文件夹的树形列表
*
* @return
*/
@Override
public ResultBean<List<CabinetFolderVo>> cabinetFolderList(@Valid CabinetFolderQuery query) {
List<CabinetFolderVo> cabinetFolderVoList = cabinetFolderService.cabinetFolderList(query);
return new ResultBean<List<CabinetFolderVo>>().success().setData(cabinetFolderVoList);
}
@Override
public ResultBean<CabinetFolerOneVo> getFolderOne(String sid) {
CabinetFolerOneVo cabinetFolerOneVo = cabinetFolderService.selectByFolderName(sid);
return new ResultBean<CabinetFolerOneVo>().success().setData(cabinetFolerOneVo);
}
@Override
public ResultBean updateSave(String sid, String folderName) {
CabinetFolder cabinetFolder = cabinetFolderService.fetchBySid(sid);
if (null == cabinetFolder) {
return ResultBean.fireFail().setMsg("该文件夹不存在");
}
int i = cabinetFolderService.updateNameBySid(sid, folderName);
if (i == 0) {
return ResultBean.fireFail().setMsg("修改失败");
}
return ResultBean.fireSuccess().setMsg("修改成功");
}
@Override
public ResultBean saveDepartment(@Valid CabinetFileDtoOne dto) {
String token = httpServletRequest.getHeader("token");
String userName = redisUtil.get(token);
if (StringUtils.isBlank(userName)) {
return ResultBean.fireFail().setMsg("请重新登录");
}
CabinetFile cabinetFile = new CabinetFile();
cabinetFile.setCreateBySid(userName);
ResultBean<IndexDetailsUser> indexDetailsUserResultBean = indexApi.indexUserDetails(userName);
if (!indexDetailsUserResultBean.getSuccess()) {
return ResultBean.fireFail().setMsg("请重新登录");
}
IndexDetailsUser indexDetailsUser = indexDetailsUserResultBean.getData();
UserBaseInfo userBaseInfo = indexDetailsUser.getUserBaseInfo();
/* ResultBean<StaffBasicDetailsVo> staffInfoResultBean = staffInfoApi.selectByUserName(userName);
if (staffInfoResultBean == null) {
return ResultBean.fireFail().setMsg("账号错误");
} else {
cabinetFile.setCreateBySid(staffInfoResultBean.getData().getStaffSid());
}*/
QueryWrapper<CabinetFolder> wrapper = new QueryWrapper<>();
// wrapper.eq("psid",staffInfoResultBean.getData().getOrganizationSid()); //部门
wrapper.eq("psid", userBaseInfo.getOrganizationId()); //部门
CabinetFolder one = cabinetFolderService.getOne(wrapper);
String folwerSid = null;
//如果有此部门文件柜,则直接再文件表中添加数据。 如果没有则先新建一条数据,然后再保存
if (one != null) {
folwerSid = one.getSid();
} else {
CabinetFolder cabinetFolder = new CabinetFolder();
cabinetFolder.setFolderName("部门文件柜");
// cabinetFolder.setPsid(staffInfoResultBean.getData().getOrganizationSid());
cabinetFolder.setPsid(userBaseInfo.getOrganizationId());
cabinetFolder.setState(2);
// cabinetFolder.setOrgSid(staffInfoResultBean.getData().getOrganizationSid());
cabinetFolder.setOrgSid(userBaseInfo.getOrganizationId());
cabinetFolderService.save(cabinetFolder);
folwerSid = cabinetFolder.getSid();
}
// dto.fillEntity(cabinetFile);
// cabinetFile.setFolderSid(folwerSid);
// if (!cabinetFileService.save(cabinetFile)) {
// return ResultBean.fireFail().setMsg("保存失败");
// }
// if (StringUtils.isNoneBlank(dto.getFileUrl())) {
// Filesappendix filesappendix = new Filesappendix();
// filesappendix.setFilePath(dto.getFileUrl());
// filesappendix.setFileType("cabinetfile");
// filesappendix.setLinkSid(cabinetFile.getSid());
// filesappendixService.save(filesappendix);
// }
//2021.10.16 如果上传多个附件,则循环保存
cabinetFile.setTitle(dto.getTitle()); //文件标题
cabinetFile.setFolderSid(folwerSid); //关联部门文件柜 Psid
cabinetFile.setRemarks(dto.getRemarks()); //备注
cabinetFile.setSortNo(dto.getSortNo()); //文件排序
if (dto.getCabinetFileList() != null && dto.getCabinetFileList().size() > 0) {
for (int i = 0; i < dto.getCabinetFileList().size(); i++) {
cabinetFile.setFileName(dto.getCabinetFileList().get(i).getFileName());
cabinetFile.setFileSize(dto.getCabinetFileList().get(i).getFileSize());
if (!cabinetFileService.save(cabinetFile)) {
return ResultBean.fireFail().setMsg(dto.getCabinetFileList().get(i).getFileName() + "保存失败");
}
//保存到附件表中 Filesappendix表中
if (org.apache.commons.lang3.StringUtils.isNoneBlank(dto.getCabinetFileList().get(i).getFileUrl())) {
Filesappendix filesappendix = new Filesappendix(); //保存附件表
filesappendix.setFileName(dto.getCabinetFileList().get(i).getFileName());
filesappendix.setFilePath(dto.getCabinetFileList().get(i).getFileUrl());
filesappendix.setFileType("cabinetfile");
filesappendix.setLinkSid(cabinetFile.getSid()); //关联文件柜表Sid
filesappendixService.save(filesappendix);
}
}
}
return ResultBean.fireSuccess().setData("保存成功");
}
@Override
public ResultBean saveMySelf(@Valid CabinetFileDtoOne dto) {
String token = httpServletRequest.getHeader("token");
String userName = redisUtil.get(token);
if (StringUtils.isBlank(userName)) {
return ResultBean.fireFail().setMsg("请重新登录");
}
CabinetFile cabinetFile = new CabinetFile();
/*ResultBean<StaffBasicDetailsVo> staffInfoResultBean = staffInfoApi.selectByUserName(userName);
if (staffInfoResultBean == null) {
return ResultBean.fireFail().setMsg("账号错误");
} else {
dto.fillEntity(cabinetFile);
cabinetFile.setCreateBySid(staffInfoResultBean.getData().getStaffSid());
}*/
dto.fillEntity(cabinetFile);
cabinetFile.setCreateBySid(userName);
ResultBean<IndexDetailsUser> indexDetailsUserResultBean = indexApi.indexUserDetails(userName);
if (!indexDetailsUserResultBean.getSuccess()) {
return ResultBean.fireFail().setMsg("请重新登录");
}
IndexDetailsUser indexDetailsUser = indexDetailsUserResultBean.getData();
UserBaseInfo userBaseInfo = indexDetailsUser.getUserBaseInfo();
QueryWrapper<CabinetFolder> wrapper = new QueryWrapper<>();
// wrapper.eq("orgSid",staffInfoResultBean.getData().getStaffSid());
wrapper.eq("orgSid", userBaseInfo.getUserId());
CabinetFolder one = cabinetFolderService.getOne(wrapper);
if (one != null) {
cabinetFile.setFolderSid(one.getSid());
} else {
CabinetFolder cabinetFolder = new CabinetFolder();
cabinetFolder.setFolderName("个人文件柜");
// cabinetFolder.setPsid(staffInfoResultBean.getData().getStaffSid());
cabinetFolder.setPsid(userBaseInfo.getUserId());
cabinetFolder.setState(3);
// cabinetFolder.setOrgSid(staffInfoResultBean.getData().getStaffSid());
cabinetFolder.setOrgSid(userBaseInfo.getUserId());
cabinetFile.setFolderSid(cabinetFolder.getSid());
cabinetFolderService.save(cabinetFolder);
}
//2021.10.16 如果上传多个附件,则循环保存
cabinetFile.setTitle(dto.getTitle()); //文件标题
//cabinetFile.setFolderSid(one.getSid()); //关联部门文件柜 Psid
cabinetFile.setRemarks(dto.getRemarks()); //备注
cabinetFile.setSortNo(dto.getSortNo()); //文件排序
if (dto.getCabinetFileList() != null && dto.getCabinetFileList().size() > 0) {
for (int i = 0; i < dto.getCabinetFileList().size(); i++) {
cabinetFile.setFileName(dto.getCabinetFileList().get(i).getFileName());
cabinetFile.setFileSize(dto.getCabinetFileList().get(i).getFileSize());
if (!cabinetFileService.save(cabinetFile)) {
return ResultBean.fireFail().setMsg(dto.getCabinetFileList().get(i).getFileName() + "保存失败");
}
//保存到附件表中 Filesappendix表中
if (org.apache.commons.lang3.StringUtils.isNoneBlank(dto.getCabinetFileList().get(i).getFileUrl())) {
Filesappendix filesappendix = new Filesappendix(); //保存附件表
filesappendix.setFileName(dto.getCabinetFileList().get(i).getFileName());
filesappendix.setFilePath(dto.getCabinetFileList().get(i).getFileUrl());
filesappendix.setFileType("cabinetfile");
filesappendix.setLinkSid(cabinetFile.getSid()); //关联文件柜表Sid
filesappendixService.save(filesappendix);
}
}
}
return ResultBean.fireSuccess().setData("保存成功");
}
@Override
public ResultBean<PagerVo<CabinetFileVo>> selfAndDeaprtPageList(PagerQuery<CabinetFileQuery> pagerQuery) {
ResultBean<PagerVo<CabinetFileVo>> rb = ResultBean.fireFail();
PagerVo<CabinetFileVo> pv = new PagerVo<>();
IPage<CabinetFileVo> p2 = cabinetFileService.selfAndDeaprtPageList(pagerQuery);
PagerVo<CabinetFileVo> pv1 = PagerUtil.pageToVo(p2, pv);
List<CabinetFileVo> record = pv1.getRecords();
if (record.size() > 0) {
for (CabinetFileVo vo : record) {
String sid = vo.getCreateBySid();
ResultBean<IndexDetailsUser> indexDetailsUserResultBean = indexApi.indexUserDetails(sid);
if (!indexDetailsUserResultBean.getSuccess()) {
return rb.setMsg("请重新登录");
}
IndexDetailsUser indexDetailsUser = indexDetailsUserResultBean.getData();
UserBaseInfo userBaseInfo = indexDetailsUser.getUserBaseInfo();
vo.setName(userBaseInfo.getName());
}
}
return rb.success().setData(pv1);
}
}

View File

@@ -0,0 +1,37 @@
package com.yxt.jlzx.oa.biz.cabinetfolder;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.jlzx.oa.api.cabinetfolder.CabinetFolder;
import com.yxt.jlzx.oa.api.cabinetfolder.CabinetFolderVo;
import com.yxt.jlzx.oa.api.cabinetfolder.CabinetFolerOneVo;
import com.yxt.workflow.api.process.WfProcessVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @author dimengzhe
* @date 2020/10/23 8:52
* @description
*/
@Mapper
public interface CabinetFolderMapper extends BaseMapper<CabinetFolder> {
public List<CabinetFolderVo> cabinetFolderList(@Param(Constants.WRAPPER) Wrapper<CabinetFolderVo> qw);
public int selectBySid(String sid);
public int selectFileBySid(String sid);
public CabinetFolerOneVo selectByFolderName(String sid);
public int updateNameBySid(@Param("sid") String sid, @Param("name") String name);
public CabinetFolder selectByOrgSid(String orgSid);
public List<String> selectOneBySid(String sid);
}

View File

@@ -0,0 +1,75 @@
<?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.yxt.jlzx.oa.biz.cabinetfolder.CabinetFolderMapper">
<resultMap id="cabinetFolderListMap" type="com.yxt.jlzx.oa.api.cabinetfolder.CabinetFolderVo">
<result column="sid" jdbcType="VARCHAR" property="sid"/>
<result column="psid" jdbcType="VARCHAR" property="psid"/>
<collection property="cabinetFolderListVoList" ofType="CabinetFolderListVo"
select="cabinetFolderListVoList" column="sid">
</collection>
</resultMap>
<resultMap id="cabinetFolderListVoListMap" type="com.yxt.jlzx.oa.api.cabinetfolder.CabinetFolderListVo">
<result column="name" jdbcType="VARCHAR" property="name"/>
<result column="sid" jdbcType="VARCHAR" property="sid"/>
<result column="psid" jdbcType="VARCHAR" property="psid"/>
<collection property="cabinetFolderListVoList" ofType="CabinetFolderListVo"
select="cabinetFolderListVoList" column="sid">
</collection>
</resultMap>
<select id="cabinetFolderListVoList" resultType="com.yxt.jlzx.oa.api.cabinetfolder.CabinetFolderListVo"
resultMap="cabinetFolderListVoListMap">
SELECT cab.sid, cab.psid, cab.folderName name
FROM cabinetfolder cab
LEFT JOIN cabinetfolder cab1 ON cab.pSid = cab1.sid
WHERE cab.pSid = #{sid}
</select>
<select id="cabinetFolderList" resultType="com.yxt.jlzx.oa.api.cabinetfolder.CabinetFolderVo"
resultMap="cabinetFolderListMap">
SELECT cab.sid, cab.folderName name, cab.psid
FROM cabinetfolder cab
${ew.customSqlSegment}
</select>
<select id="selectBySid" resultType="java.lang.Integer">
SELECT COUNT(cab.id)
FROM cabinetfolder cab
WHERE cab.psid = #{sid}
</select>
<select id="selectFileBySid" resultType="java.lang.Integer">
SELECT COUNT(cab.id)
FROM cabinetfile cab
WHERE cab.folderSid = #{sid}
</select>
<select id="selectByFolderName" resultType="com.yxt.jlzx.oa.api.cabinetfolder.CabinetFolerOneVo">
SELECT folderName
FROM cabinetfolder
WHERE sid = #{sid}
</select>
<update id="updateNameBySid">
UPDATE cabinetfolder
SET folderName = #{name}
WHERE sid = #{sid}
</update>
<select id="selectByOrgSid" resultType="com.yxt.jlzx.oa.api.cabinetfolder.CabinetFolder">
SELECT *
FROM cabinetfolder
WHERE orgSid = #{orgSid}
AND pSid = '0'
</select>
<select id="selectOneBySid" resultType="java.lang.String">
SELECT cab1.sid
FROM jlzx_oa.cabinetfolder cab
LEFT JOIN jlzx_oa.cabinetfolder cab1 ON cab.sid = cab1.psid
WHERE cab.sid = #{sid}
</select>
</mapper>

View File

@@ -0,0 +1,68 @@
package com.yxt.jlzx.oa.biz.cabinetfolder;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.jlzx.oa.api.cabinetfolder.CabinetFolder;
import com.yxt.jlzx.oa.api.cabinetfolder.CabinetFolderQuery;
import com.yxt.jlzx.oa.api.cabinetfolder.CabinetFolderVo;
import com.yxt.jlzx.oa.api.cabinetfolder.CabinetFolerOneVo;
import com.yxt.workflow.api.process.WfProcessVo;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author dimengzhe
* @date 2020/10/23 8:53
* @description
*/
@Service
public class CabinetFolderService extends MybatisBaseService<CabinetFolderMapper, CabinetFolder> {
/**
* 文件夹的树形列表
*
* @return
*/
public List<CabinetFolderVo> cabinetFolderList(CabinetFolderQuery query) {
// mybits所用的查询条件封装类
QueryWrapper<CabinetFolderVo> qw = new QueryWrapper<>();
if (query != null) {
if (org.apache.commons.lang3.StringUtils.isNotBlank(query.getOrgSid()))
qw.eq("cab.orgSid", query.getOrgSid());
qw.eq("cab.pSid", '0');
qw.orderByAsc("cab.sortNo");
}
return baseMapper.cabinetFolderList(qw);
}
public int selectBySid(String sid) {
return baseMapper.selectBySid(sid);
}
public int selectFileBySid(String sid) {
return baseMapper.selectFileBySid(sid);
}
public CabinetFolerOneVo selectByFolderName(String sid) {
return baseMapper.selectByFolderName(sid);
}
public int updateNameBySid(String sid, String name) {
return baseMapper.updateNameBySid(sid, name);
}
public CabinetFolder selectByOrgSid(String orgSid) {
return baseMapper.selectByOrgSid(orgSid);
}
public List<String> selectOneBySid(String folderSid) {
return baseMapper.selectOneBySid(folderSid);
}
}

View File

@@ -0,0 +1,287 @@
package com.yxt.jlzx.oa.biz.car;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import javax.validation.Valid;
import com.yxt.jlzx.system.api.dictcommon.DictCommonApi;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.jlzx.oa.api.car.Car;
import com.yxt.jlzx.oa.api.car.CarApi;
import com.yxt.jlzx.oa.api.car.CarDto;
import com.yxt.jlzx.oa.api.car.CarQuery;
import com.yxt.jlzx.oa.api.car.CarVo;
import com.yxt.jlzx.oa.api.filesappendix.FilesappendixVo;
import com.yxt.jlzx.oa.api.form.FormDto;
import com.yxt.jlzx.oa.api.form.FormResultVo;
import com.yxt.jlzx.oa.api.project.ProjectDoVo;
import com.yxt.jlzx.oa.api.car.Car;
import com.yxt.jlzx.oa.api.car.CarDidVo;
import com.yxt.jlzx.oa.api.car.CarDoVo;
import com.yxt.jlzx.oa.api.work.WorkQuery;
import com.yxt.jlzx.oa.biz.filesappendix.FilesappendixService;
import com.yxt.jlzx.oa.biz.workflow.WorkFlowService;
import com.yxt.jlzx.system.api.dictcommon.DictCommonVo;
import com.yxt.jlzx.system.api.user.UserApi;
import com.yxt.jlzx.system.api.user.UserInfoVo;
import com.yxt.workflow.api.histtask.WfHistTaskDidVo;
import com.yxt.workflow.api.histtask.WfHistTaskQuery;
import com.yxt.workflow.api.task.WfTaskQuery;
import com.yxt.workflow.api.task.WfTaskVo;
import com.yxt.workflow.api.wfmanger.WfManagerApi;
import io.swagger.annotations.Api;
/**
* @author yxt_hwj
* @date 2020/9/29 13:30
* @description
*/
@Controller
@RequestMapping("v1/cars")
@Api(tags = "车辆管理")
public class CarApiImpl implements CarApi {
@Autowired
private CarService carService;
@Autowired
private WorkFlowService wfservice;
@Autowired
private WfManagerApi wfManagerApi;
@Autowired
private FilesappendixService filesappendixservice;
@Autowired
private UserApi userApi;
@Autowired
private DictCommonApi dictCommonApi;
@Override
public ResultBean<List<CarVo>> list(@Valid CarQuery query) {
return new ResultBean().setData(null).setMsg("暂不对外开发!");
}
@Override
public ResultBean<PagerVo<CarVo>> pageList(@Valid PagerQuery<CarQuery> pagerQuery) {
ResultBean<PagerVo<CarVo>> rb = ResultBean.fireFail();
IPage<CarVo> page = carService.pageList(pagerQuery);
//把Ipage转换为PageVo
PagerVo<CarVo> pv_result = PagerUtil.pageToVo(page, null);
List<CarVo> list = pv_result.getRecords();
for (int i = 0; i < list.size(); i++) {
String remarks = list.get(i).getRemarks();
ResultBean<DictCommonVo> dictCommonVoResultBean = dictCommonApi.selectBykey(remarks, "ycsyOA");
list.get(i).setRemarks(dictCommonVoResultBean.getData().getDictValue());
}
return rb.success().setData(pv_result);
}
@Override
public ResultBean<FormResultVo> save(@Valid CarDto carDto) {
ResultBean<FormResultVo> resultBean = ResultBean.fireFail();
FormResultVo formResultVo = new FormResultVo();
// 首次保存,二次修改
if (carDto != null && StringUtils.isNotBlank(carDto.getFormSid())) {
if (update(carDto, carDto.getFormSid()).getSuccess()) {
return resultBean.success().setData(formResultVo);
} else {
return resultBean;
}
}
Car car = new Car();
// 调用远程
carDto.setFormSid(car.getSid());
SimpleDateFormat sdf = new SimpleDateFormat();
String s = sdf.format(carDto.getStartDate());
carDto.setTitle(carDto.getCreaterName() + "" + s + "发起用车申请");
carDto.fillEntity(car);
WfTaskVo taskVo = wfservice.startProcess((FormDto) carDto);
if (taskVo == null)
return resultBean;
car.setOrderSid(taskVo.getOrderSid());
UserInfoVo userInfoVo = userApi.fetchUserInfoBysid(car.getCreateBySid()).getData();
if (null != userInfoVo) {
car.setCreateOrgSid(userInfoVo.getOrganizationSid());
}
if (carService.save(car)) {
filesappendixservice.uploadFiles(carDto.getFilePathlist(), car.getSid(),
car.getClass().getSimpleName());
formResultVo.setFormSid(car.getSid());
formResultVo.setTaskSid(taskVo.getTaskSid());
return resultBean.success().setData(formResultVo);
}
return resultBean;
}
@Override
public ResultBean update(@Valid CarDto carDto, String s) {
ResultBean<String> rb = ResultBean.fireFail();
Car car = carService.fetchBySid(s);
if (null == car) {
return rb.setMsg("该申请不存在");
}
if (0 == carService.updateBySid(carDto.toMap(), s)) {
return rb.setData(null);
}
carDto.setOrderSid(car.getOrderSid());
if (wfservice.updateMfOrderFormInfo((FormDto) carDto)) {
filesappendixservice.reUploadFiles(carDto.getFilePathlist(),
car.getSid(), car.getClass().getSimpleName());
return rb.success().setData(s);
}
return ResultBean.fireSuccess().setMsg("修改成功");
}
@Override
public ResultBean delete(String sid) {
Car car = carService.fetchBySid(sid);
if (null == car) {
return ResultBean.fireFail().setMsg("该记录不存在");
}
if (0 == carService.deleteBySid(sid)) {
return ResultBean.fireFail();
}
return ResultBean.fireSuccess();
}
@Override
public ResultBean<CarVo> getVo(String sid) {
ResultBean<CarVo> resultBean = ResultBean.fireFail();
Car car = carService.fetchBySid(sid);
if (null == car) {
return resultBean;
}
CarVo vo = new CarVo();
vo.fromEntity(car);
//2021.10.11
ResultBean<DictCommonVo> selectBykey = dictCommonApi.selectBykey(vo.getRemarks(), "ycsyOA");
if(selectBykey.getData()!=null) {
vo.setRemarks(selectBykey.getData().getDictValue());
}
List<FilesappendixVo> list_appendix = filesappendixservice
.queryBylinkSid(sid);
if (list_appendix == null) {
vo.setFilePathlist(new ArrayList<FilesappendixVo>());
} else {
vo.setFilePathlist(list_appendix);
}
return resultBean.success().setData(vo);
}
// 待办工作列表
@Override
public ResultBean<PagerVo<CarDoVo>> doingWorks(PagerQuery<WorkQuery> pagerQuery) {
pagerQuery.getParams().setProcessSid("d529b7ae-2975-4d93-84d9-1bd0432530e7");
ResultBean<PagerVo<CarDoVo>> resultBean = ResultBean.fireFail();
// 参数转换
PagerQuery<WfTaskQuery> task_query = new PagerQuery<>();
task_query.setParams(new WfTaskQuery());
task_query.fromPagerQuery(pagerQuery);
// 直接调用流程任务
ResultBean<PagerVo<WfTaskVo>> task_rb = wfManagerApi.webTaskPageList(task_query);
PagerVo<CarDoVo> workVo_pager = new PagerVo<CarDoVo>();
if (null == task_rb.getData()) {
return resultBean;
}
// 结果转换
workVo_pager = PagerUtil.switchPagerVo(task_rb
.getData());
for (int i = 0; i < task_rb.getData().getRecords().size(); i++) {
CarDoVo workDoVo = new CarDoVo();
Car car = carService.fetchBySid(task_rb.getData().getRecords().get(i).getFormSid());
workDoVo.fromMap(task_rb.getData().getRecords().get(i).toMap());
if (car != null) {
Map map = JSON.parseObject(JSON.toJSONString(car), Map.class);
workDoVo.fromMap(map);
ResultBean<DictCommonVo> selectBykey = dictCommonApi.selectBykey(workDoVo.getRemarks(), "ycsyOA");
if(selectBykey.getData()!=null) {
workDoVo.setRemarks(selectBykey.getData().getDictValue());
}
}
workVo_pager.getRecords().add(workDoVo);
}
String name = pagerQuery.getParams().getCreaterName();
List<CarDoVo> records = workVo_pager.getRecords();
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
for (int i = 0; i < records.size(); i++) {
if (StringUtils.isNoneBlank(name) && records.get(i).getCreaterName() != null && records.get(i).getCreaterName().indexOf(name) < 0) {
records.remove(i);
i = i - 1;
continue;
}
}
return resultBean.success().setData(workVo_pager);
}
// 已办工作列表
@Override
public ResultBean<PagerVo<CarDidVo>> didWorks(PagerQuery<WorkQuery> pagerQuery) {
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
pagerQuery.getParams().setProcessSid("d529b7ae-2975-4d93-84d9-1bd0432530e7");
ResultBean<PagerVo<CarDidVo>> resultBean = ResultBean.fireFail();
// 参数转换
PagerQuery<WfHistTaskQuery> histtask_query = new PagerQuery<>();
histtask_query.setParams(new WfHistTaskQuery());
histtask_query.fromPagerQuery(pagerQuery);
// 直接调用流程任务
ResultBean<PagerVo<WfHistTaskDidVo>> task_rb = wfManagerApi.histTaskPageList(histtask_query);
PagerVo<CarDidVo> workVo_pager = new PagerVo<CarDidVo>();
if (null == task_rb.getData())
return resultBean;
// 结果转换
workVo_pager = PagerUtil.switchPagerVo(task_rb.getData());
for (int i = 0; i < task_rb.getData().getRecords().size(); i++) {
CarDidVo workDidVo = new CarDidVo();
workDidVo.fromMap(task_rb.getData().getRecords().get(i).toMap());
Car car = carService.fetchBySid(task_rb.getData().getRecords().get(i).getFormSid());
if (car != null) {
Map map = JSON.parseObject(JSON.toJSONString(car), Map.class);
workDidVo.fromMap(map);
ResultBean<DictCommonVo> selectBykey = dictCommonApi.selectBykey(workDidVo.getRemarks(), "ycsyOA");
if(selectBykey.getData()!=null) {
workDidVo.setRemarks(selectBykey.getData().getDictValue());
}
}
workVo_pager.getRecords().add(workDidVo);
}
String name = pagerQuery.getParams().getCreaterName();//物品名称
List<CarDidVo> records = workVo_pager.getRecords();
for (int i = 0; i < records.size(); i++) {
if (StringUtils.isNoneBlank(name) && records.get(i).getCreaterName() != null && records.get(i).getCreaterName().indexOf(name) < 0) {
records.remove(i);
i = i - 1;
continue;
}
}
return resultBean.success().setData(workVo_pager);
}
}

View File

@@ -0,0 +1,26 @@
package com.yxt.jlzx.oa.biz.car;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.jlzx.oa.api.car.Car;
import com.yxt.jlzx.oa.api.car.CarQuery;
import com.yxt.jlzx.oa.api.car.CarVo;
import com.yxt.jlzx.oa.api.contract.Contract;
import com.yxt.jlzx.oa.api.contract.ContractQuery;
import com.yxt.jlzx.oa.api.contract.ContractVo;
/**
* @author yxt_mtl
* @date 2020/10/12 11:14
* @description
*/
@Mapper
public interface CarMapper extends BaseMapper<Car>{
//分页列表
IPage<CarVo> pageList(IPage<CarQuery> page,@Param(Constants.WRAPPER) Wrapper<CarVo> qw);
}

View File

@@ -0,0 +1,9 @@
<?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.yxt.jlzx.oa.biz.car.CarMapper">
<select id="pageList" resultType="com.yxt.jlzx.oa.api.car.CarVo">
select * from car
${ew.customSqlSegment}
</select>
</mapper>

View File

@@ -0,0 +1,238 @@
package com.yxt.jlzx.oa.biz.car;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.DateUtils;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.jlzx.jlcyry.api.staffinfo.StaffBasicDetailsVo;
import com.yxt.jlzx.jlcyry.api.staffinfo.StaffInfoApi;
import com.yxt.jlzx.oa.api.car.Car;
import com.yxt.jlzx.oa.api.car.CarQuery;
import com.yxt.jlzx.oa.api.car.CarVo;
import com.yxt.jlzx.oa.api.form.FormDto;
import com.yxt.jlzx.oa.api.form.FormItems;
import com.yxt.jlzx.oa.api.form.FormSelectLinkDto;
import com.yxt.jlzx.oa.api.form.MaxFileNumDto;
import com.yxt.jlzx.oa.api.index.AppDailyDto;
import com.yxt.jlzx.oa.api.index.AppDailyVo;
import com.yxt.jlzx.oa.api.index.DailyDto;
import com.yxt.jlzx.oa.api.project.ProjectVo;
import com.yxt.jlzx.oa.biz.filesappendix.FilesappendixService;
import com.yxt.jlzx.oa.biz.form.IFormService;
import com.yxt.jlzx.oa.biz.workflow.WorkFlowService;
import com.yxt.jlzx.system.api.department.DepartmentApi;
import com.yxt.jlzx.system.api.department.DepartmentListVo;
import com.yxt.jlzx.system.api.departmentstaff.DepartmentStaff;
import com.yxt.jlzx.system.api.departmentstaff.DepartmentStaffApi;
import com.yxt.jlzx.system.api.dictcommon.DictCommonApi;
import com.yxt.jlzx.system.api.user.UserApi;
import com.yxt.jlzx.system.api.user.UserInfoVo;
import com.yxt.workflow.api.task.WfTaskVo;
import org.apache.commons.beanutils.ConvertUtils;
import org.apache.commons.beanutils.converters.DateConverter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.List;
import java.util.Map;
/**
* @author yxt_mtl
* @date 2020/10/12 11:12
* @description
*/
@Service("d529b7ae-2975-4d93-84d9-1bd0432530e7")
public class CarService extends MybatisBaseService<CarMapper, Car> implements IFormService {
@Autowired
private DictCommonApi dictCommonApi;
@Autowired
private FilesappendixService filesappendixservice;
@Autowired
private WorkFlowService wfservice;
@Autowired
private UserApi userApi;
@Autowired
private StaffInfoApi staffInfoApi;
@Autowired
private DepartmentStaffApi departmentStaffApi;
@Autowired
private DepartmentApi departmentApi;
// 分页列表
public IPage<CarVo> pageList(PagerQuery<CarQuery> pagerQuery) {
// mybits所用的分页对对象
IPage<CarQuery> page = PagerUtil.queryToPage(pagerQuery);
// mybits所用的查询条件封装类
QueryWrapper<CarVo> qw = buildQueryWrapper(pagerQuery.getParams());
return baseMapper.pageList(page, qw);
}
/**
* 解析和组装查询条件封装在qw中
*
* @param pagerQuery
* @return
*/
private QueryWrapper<CarVo> buildQueryWrapper(CarQuery pagerQuery) {
QueryWrapper<CarVo> qw = new QueryWrapper<>();
if (pagerQuery != null) {
if (StringUtils.isNotBlank(pagerQuery.getCreaterName())) {
qw.like("createrName", pagerQuery.getCreaterName());
}
if (null != pagerQuery.getStartDate() && StringUtils.isNotBlank(pagerQuery
.getStartDate().toString())) {
qw.ge("startDate", pagerQuery.getStartDate());
}
if (null != pagerQuery.getEndDate() && StringUtils.isNotBlank(pagerQuery
.getEndDate().toString())) {
qw.le("endDate", pagerQuery.getEndDate());
}
qw.orderByDesc("createTime");
}
return qw;
}
/**
* 获取动态表单
*
* @param sid
* @return
*/
@Override
public Map<String, Object> getFormItemsVo(String sid) {
Car t = fetchBySid(sid);
if (null == t) {
return null;
}
CarVo vo = new CarVo();
vo.fromEntity(t);
return vo.toFormItemsMap();
}
@Override
public Map<String, Object> getMaxFileNum(MaxFileNumDto dto) {
// TODO Auto-generated method stub
return null;
}
@Override
public AppDailyVo isSave(AppDailyDto appDailyDto) {
AppDailyVo appDailyVo = new AppDailyVo();
Car car = new Car();
appDailyDto.setProcessSid(appDailyDto.getProcessSid());
appDailyDto.setCreateBySid(appDailyDto.getCreateBySid());
SimpleDateFormat sdf = new SimpleDateFormat();
String s = sdf.format(car.getCreateTime());
UserInfoVo userInfoVo = userApi.selectBysid(appDailyDto.getCreateBySid()).getData();
StaffBasicDetailsVo staffBasicDetailsVo = staffInfoApi.selectByUserName(userInfoVo.getUserName()).getData();
appDailyDto.setTitle(staffBasicDetailsVo.getName() + "" + s + "发起用车申请");
appDailyDto.setFormSid(car.getSid());
//查询在哪个部门
DepartmentStaff departmentStaff = departmentStaffApi.selectByStaffSid(staffBasicDetailsVo.getStaffSid()).getData();
DepartmentListVo departmentListVo = departmentApi.getVo(departmentStaff.getDepartmentSid()).getData();
appDailyDto.setCreaterName(staffBasicDetailsVo.getName());
appDailyDto.setCreateDeptName(departmentListVo.getName());
appDailyDto.setCreateDeptSid(departmentListVo.getSid());
appDailyDto.setFilePath("");
appDailyDto.setFileNum("");
appDailyDto.fillEntity(car);
WfTaskVo taskVo = wfservice.startProcess((FormDto) appDailyDto);
if (taskVo == null) {
return appDailyVo;
}
car.setOrderSid(taskVo.getOrderSid());
UserInfoVo userInfoVo1 = userApi.fetchUserInfoBysid(car.getCreateBySid()).getData();
if (null != userInfoVo1) {
car.setCreateOrgSid(userInfoVo1.getOrganizationSid());
}
if (save(car)) {
filesappendixservice.uploadFiles(appDailyDto.getFilePathlist(), car.getSid(),
car.getClass().getSimpleName());
appDailyVo.setTaskSid(taskVo.getTaskSid());
appDailyVo.setFormSid(car.getSid());
appDailyVo.setOrderSid(taskVo.getOrderSid());
}
return appDailyVo;
}
@Override
public AppDailyVo update(AppDailyDto appDailyDto) throws Exception {
ConvertUtils.register(new DateConverter(null), java.util.Date.class);
AppDailyVo appDailyVo = new AppDailyVo();
String sid = appDailyDto.getFormSid();
Car car = fetchBySid(sid);
if (car == null) {
return appDailyVo;
}
if (0 == updateBySid(appDailyDto.toMap(), sid)) {
return appDailyVo;
} else {
DailyDto dailyDto = new DailyDto();
dailyDto.setProcessSid(appDailyDto.getProcessSid());
dailyDto.setCreateBySid(appDailyDto.getCreateBySid());
SimpleDateFormat sdf = new SimpleDateFormat();
String s = sdf.format(car.getCreateTime());
UserInfoVo userInfoVo = userApi.selectBysid(appDailyDto.getCreateBySid()).getData();
StaffBasicDetailsVo staffBasicDetailsVo = staffInfoApi.selectByUserName(userInfoVo.getUserName()).getData();
dailyDto.setTitle(staffBasicDetailsVo.getName() + "" + s + "发起用车申请");
dailyDto.setFormSid(car.getSid());
if (wfservice.updateMfOrderFormInfo((FormDto) dailyDto)) {
filesappendixservice.reUploadFiles(appDailyDto.getFilePathlist(),
car.getSid(), car.getClass().getSimpleName());
appDailyVo.setFormSid(sid);
}
}
return appDailyVo;
}
@Override
public Map<String, Object> getNewFormItemsVo() {
Map<String, Object> map = new CarVo().getFormItemsMap();
//获取数据字典的内容
List<FormItems> formList = (List<FormItems>) map.get("formItems");
return map;
}
@Override
public Map<String, Object> getEditFormItemsVo(String formSid) {
Car car = this.fetchBySid(formSid);
if (null == car)
return null;
Map<String, Object> map = new ProjectVo().getFormItemsMap();
//获取数据字典的内容
List<FormItems> formList = (List<FormItems>) map.get("formItems");
formList.get(0).getRight_text().setDefaultText(car.getCreaterName());
formList.get(1).getRight_text().setDefaultText(DateUtils.dateConvertDayStr(car.getCreateTime()));
formList.get(2).getRight_text().setDefaultText(car.getCreateDeptName());
formList.get(3).getRight_text().setDefaultText(car.getPersonCount() + "");
formList.get(4).getRight_text().setDefaultText(DateUtils.dateConvertDayStr(car.getStartDate()));
formList.get(5).getRight_text().setDefaultText(DateUtils.dateConvertDayStr(car.getEndDate()));
formList.get(6).getRight_text().setDefaultText(car.getRemarks());
formList.get(7).getRight_text().setDefaultText(car.getOrigin());
formList.get(8).getRight_text().setDefaultText(car.getDestination());
return map;
}
@Override
public Map<String, Object> getLinkAge(FormSelectLinkDto dto) {
// TODO Auto-generated method stub
return null;
}
}

View File

@@ -0,0 +1,187 @@
package com.yxt.jlzx.oa.biz.contract;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.yxt.jlzx.oa.api.filesappendix.Filesappendix;
import com.yxt.jlzx.oa.api.filesappendix.FilesappendixOneVo;
import com.yxt.jlzx.oa.biz.filesappendix.FilesappendixService;
import io.swagger.annotations.Api;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.validation.Valid;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.jlzx.oa.api.contract.Contract;
import com.yxt.jlzx.oa.api.contract.ContractApi;
import com.yxt.jlzx.oa.api.contract.ContractDto;
import com.yxt.jlzx.oa.api.contract.ContractQuery;
import com.yxt.jlzx.oa.api.contract.ContractVo;
import com.yxt.jlzx.system.api.dictcommon.DictCommonApi;
import com.yxt.jlzx.system.api.dictcommon.DictCommonVo;
/**
* @author yxt_mtl
* @date 2020/9/29 13:30
* @description 角色信息
*/
@Controller
@RequestMapping("v1/contracts")
@Api(tags = "合同管理")
public class ContractApiImpl implements ContractApi{
@Autowired
private ContractService contractService;
@Autowired
private DictCommonApi dictCommonApi;
@Autowired
private FilesappendixService filesappendixService;
@Override
public ResultBean<PagerVo<ContractVo>> pageList(PagerQuery<ContractQuery> pagerQuery) {
ResultBean<PagerVo<ContractVo>> rb = ResultBean.fireFail();
IPage<ContractVo> page = contractService.pageList(pagerQuery);
//把Ipage转换为PageVo
PagerVo<ContractVo> pv_result = PagerUtil.pageToVo(page, null);
return rb.success().setData(pv_result);
}
@Override
public ResultBean save(ContractDto contractDto)
{
Contract contract=new Contract();
contractDto.fillEntity(contract);
if(!contractService.save(contract))
return ResultBean.fireFail();
//向附件表添加附件数据
String[] split = contract.getFileUrl().split(",");
List<String> fileList = Arrays.asList(split);
// for (String s:fileList) {
// Filesappendix filesappendix = new Filesappendix();
// filesappendix.setLinkSid(contract.getSid());
// filesappendix.setFileType("contract");
// filesappendix.setFilePath(s);
// String[] split1 = s.split("/");
// List<String> stringList = Arrays.asList(split1);
// String s1 = stringList.get(stringList.size() - 1);
// filesappendix.setFileName(s1);
// filesappendixService.save(filesappendix);
// }
//2021.10.14保存上传附件信息
List<FilesappendixOneVo> filelistinfo = contractDto.getFilePathlist();
if(filelistinfo != null && filelistinfo.size()>0){
for(int i =0;i<filelistinfo.size();i++){
Filesappendix filesappendix1 = new Filesappendix();
filesappendix1.setLinkSid(contract.getSid()); //关联合同信息的Sid
filesappendix1.setFileType("contract"); //类型表示为合同管理
filesappendix1.setFilePath(filelistinfo.get(i).getFilePath()); //附件信息路径
filesappendix1.setFileName(filelistinfo.get(i).getFileName()); //附件源名称
filesappendixService.save(filesappendix1);
}
}
return ResultBean.fireSuccess().setData(contract.getSid());
}
@Override
public ResultBean update(ContractDto contractDto, String sid) throws Exception
{
Contract contract=contractService.fetchBySid(sid);
if(null==contract)
return ResultBean.fireFail().setMsg("该记录不存在");
if(0==contractService.updateBySid(contractDto.toMap(), sid))
return ResultBean.fireFail();
//2021.10.14当修改附件时,先判断是否存在,如果存在则删除,然后再保存。
QueryWrapper<Filesappendix> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("linkSid",contract.getSid());
List<Filesappendix> list = filesappendixService.list(queryWrapper);
if (list.size()>0){
for (Filesappendix f : list) {
filesappendixService.deleteBySid(f.getSid());
}
}
List<FilesappendixOneVo> filelistinfo = contractDto.getFilePathlist();
if(filelistinfo != null && filelistinfo.size()>0){
for(int i =0;i<filelistinfo.size();i++){
Filesappendix filesappendix1 = new Filesappendix();
filesappendix1.setLinkSid(contract.getSid()); //关联合同信息的Sid
filesappendix1.setFileType("contract"); //类型表示为合同管理
filesappendix1.setFilePath(filelistinfo.get(i).getFilePath()); //附件信息路径
filesappendix1.setFileName(filelistinfo.get(i).getFileName()); //附件源名称
filesappendixService.save(filesappendix1);
}
}
return ResultBean.fireSuccess().setData(sid);
}
@Override
public ResultBean delete(String sid)
{
Contract contract=contractService.fetchBySid(sid);
if(null==contract)
return ResultBean.fireFail().setMsg("该记录不存在");
if(0==contractService.deleteBySid(sid))
return ResultBean.fireFail();
QueryWrapper<Filesappendix> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("linkSid",contract.getSid());
List<Filesappendix> list = filesappendixService.list(queryWrapper);
for (Filesappendix f : list) {
filesappendixService.deleteBySid(f.getSid());
}
return ResultBean.fireSuccess();
}
@Override
public ResultBean<ContractVo> getVo(String sid)
{
ResultBean<ContractVo> resultBean=ResultBean.fireFail();
Contract contract=contractService.fetchBySid(sid);
if(null==contract)
return resultBean;
ContractVo vo=new ContractVo();
if(StringUtils.isNotBlank(vo.getContractTypeSid())) {
ResultBean<DictCommonVo> v=dictCommonApi.selectBykey(vo.getContractTypeSid(), "contract");
if(v.getData()!=null&&StringUtils.isNotBlank(v.getData().getDictValue())) {
vo.setContractTypeSid(v.getData().getDictValue());
}
}
vo.fromEntity(contract);
QueryWrapper<Filesappendix> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("linkSid",contract.getSid());
List<Filesappendix> list = filesappendixService.list(queryWrapper);
if (list.size()>0){
vo.setFilesappendixList(list);
}
return resultBean.success().setData(vo);
}
@Override
public ResultBean<List<ContractVo>> list(@Valid ContractQuery query) {
return new ResultBean().setData(null).setMsg("暂不对外开发!");
}
@Override
public ResultBean<Map<String, Object>> dictSelect() {
Map<String, Object> map = new HashMap<>();
ResultBean<Map<String, Object>> dictCommonInitVoResultBean = dictCommonApi.dictCommonContract();
map.put("dictCommonList", dictCommonInitVoResultBean.getData());
return new ResultBean().success().setData(map);
}
}

View File

@@ -0,0 +1,23 @@
package com.yxt.jlzx.oa.biz.contract;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.jlzx.oa.api.contract.Contract;
import com.yxt.jlzx.oa.api.contract.ContractVo;
/**
* @author yxt_mtl
* @date 2020/10/12 11:14
* @description
*/
@Mapper
public interface ContractMapper extends BaseMapper<Contract>{
//分页列表
IPage<ContractVo> pageList(IPage<ContractVo> page,@Param(Constants.WRAPPER) Wrapper<ContractVo> qw);
}

View File

@@ -0,0 +1,20 @@
<?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.yxt.jlzx.oa.biz.contract.ContractMapper">
<select id="pageList" resultType="com.yxt.jlzx.oa.api.contract.ContractVo">
SELECT sid,
contractTypeSid,
contractNo,
title,
DATE_FORMAT(startDay, '%Y-%m-%d') AS startDay,
DATE_FORMAT(endDay, '%Y-%m-%d') AS endDay,
amount,
agent,
contractPosition,
partner,
remarks,
fileUrl
FROM contract ${ew.customSqlSegment}
</select>
</mapper>

View File

@@ -0,0 +1,95 @@
package com.yxt.jlzx.oa.biz.contract;
import java.util.List;
import com.yxt.jlzx.oa.api.filesappendix.Filesappendix;
import com.yxt.jlzx.oa.biz.filesappendix.FilesappendixService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.jlzx.oa.api.contract.Contract;
import com.yxt.jlzx.oa.api.contract.ContractQuery;
import com.yxt.jlzx.oa.api.contract.ContractVo;
import com.yxt.jlzx.system.api.dictcommon.DictCommonApi;
import com.yxt.jlzx.system.api.dictcommon.DictCommonVo;
/**
* @author yxt_mtl
* @date 2020/10/12 11:12
* @description
*/
@Service
public class ContractService extends
MybatisBaseService<ContractMapper, Contract> {
@Autowired
private DictCommonApi dictcommonApi;
@Autowired
private FilesappendixService filesappendixService;
// 分页列表
public IPage<ContractVo> pageList(PagerQuery<ContractQuery> pagerQuery) {
// mybits所用的分页对对象
IPage<ContractVo> page = PagerUtil.queryToPage(pagerQuery);
// mybits所用的查询条件封装类
QueryWrapper<ContractVo> qw = buildQueryWrapper(pagerQuery.getParams());
page=baseMapper.pageList(page, qw);
List<ContractVo> l=page.getRecords();
if(l!=null) {
for (ContractVo contractVo : l) {
String str=contractVo.getContractTypeSid();
if(StringUtils.isNotBlank(str)) {
ResultBean<DictCommonVo> v=dictcommonApi.selectBykey(str, "contract");
if(v.getData()!=null&&StringUtils.isNotBlank(v.getData().getDictValue())) {
contractVo.setContractTypeSid(v.getData().getDictValue());
}
}
QueryWrapper<Filesappendix> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("linkSid",contractVo.getSid());
List<Filesappendix> list = filesappendixService.list(queryWrapper);
if (list.size()>0){
contractVo.setFilesappendixList(list);
}
}
}
page.setRecords(l);
return page;
}
/**
* 解析和组装查询条件封装在qw中
*
* @param pagerQuery
* @return
*/
private QueryWrapper<ContractVo> buildQueryWrapper(ContractQuery pagerQuery) {
QueryWrapper<ContractVo> qw = new QueryWrapper<>();
if (pagerQuery != null) {
if (org.apache.commons.lang3.StringUtils.isNotBlank(pagerQuery
.getContractTypeSid()))
qw.eq("contractTypeSid", pagerQuery.getContractTypeSid());
if (org.apache.commons.lang3.StringUtils.isNotBlank(pagerQuery
.getTitle()))
qw.like("title", pagerQuery.getTitle());
if (null!=pagerQuery.getStartDay() && org.apache.commons.lang3.StringUtils.isNotBlank(pagerQuery
.getStartDay().toString()))
qw.ge("startDay", pagerQuery.getStartDay());
if (null!=pagerQuery.getEndDay() && org.apache.commons.lang3.StringUtils.isNotBlank(pagerQuery
.getEndDay().toString()))
qw.le("endDay", pagerQuery.getEndDay());
qw.orderByDesc("createTime");
}
return qw;
}
}

View File

@@ -0,0 +1,110 @@
package com.yxt.jlzx.oa.biz.filesappendix;
import java.util.List;
import javax.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.jlzx.oa.api.filesappendix.Filesappendix;
import com.yxt.jlzx.oa.api.filesappendix.FilesappendixApi;
import com.yxt.jlzx.oa.api.filesappendix.FilesappendixDto;
import com.yxt.jlzx.oa.api.filesappendix.FilesappendixQuery;
import com.yxt.jlzx.oa.api.filesappendix.FilesappendixVo;
import io.swagger.annotations.Api;
/**
* @author dimengzhe
* @date 2020/10/14 14:29
* @description
*/
@Controller
@RequestMapping("v1/filesappendix")
@Api(tags = "保存附件")
public class FilesappendixApiImpl implements FilesappendixApi{
@Autowired
private FileUploadComponent fileUploadComponent;
@Autowired
private FilesappendixService oafileAccessoryService;
@Override
public ResultBean<List<FilesappendixVo>> list(@Valid FilesappendixQuery query) {
// TODO Auto-generated method stub
return null;
}
@Override
public ResultBean<PagerVo<FilesappendixVo>> pageList(@Valid PagerQuery<FilesappendixQuery> pagerQuery) {
// TODO Auto-generated method stub
return null;
}
@Override
public ResultBean save(@Valid FilesappendixDto dto) {
Filesappendix oafileAccessory=dto.toEntity();
String path=fileUploadComponent.getUrlPrefix();
if(oafileAccessory.getFilePath().indexOf(path)>-1) {
oafileAccessory.setFilePath(oafileAccessory.getFilePath().replace(path, ""));
}
boolean isSave = oafileAccessoryService.save(oafileAccessory);
if (!isSave) {
return ResultBean.fireFail().setMsg("保存失败");
}
return ResultBean.fireSuccess().setMsg("保存成功");
}
@Override
public ResultBean update(@Valid FilesappendixDto dto, String sid) throws Exception {
return null;
}
@Override
public ResultBean delete(String sid) {
Filesappendix t=oafileAccessoryService.fetchBySid(sid);
if(null==t)
return ResultBean.fireFail().setMsg("该记录不存在");
if(0==oafileAccessoryService.deleteBySid(sid))
return ResultBean.fireFail();
return ResultBean.fireSuccess();
}
@Override
public ResultBean<FilesappendixVo> getVo(String sid) {
ResultBean<FilesappendixVo> resultBean=ResultBean.fireFail();
Filesappendix t=oafileAccessoryService.fetchBySid(sid);
if(null==t)
return resultBean;
FilesappendixVo vo=new FilesappendixVo();
vo.fromEntity(t);
return resultBean.success().setData(vo);
}
@Override
public ResultBean<List<FilesappendixVo>> queryBylinkSid(String linkSid) {
List<FilesappendixVo> page = oafileAccessoryService.queryBylinkSid(linkSid);
return new ResultBean().success().setData(page);
}
@Override
public ResultBean deleteByLinkSid(String linkSid) {
List<FilesappendixVo> page = oafileAccessoryService.queryBylinkSid(linkSid);
int i=oafileAccessoryService.deleteByLinkSid(linkSid);
if(i>0) {
return ResultBean.fireSuccess();
}else {
return ResultBean.fireFail();
}
}
}

View File

@@ -0,0 +1,27 @@
package com.yxt.jlzx.oa.biz.filesappendix;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yxt.jlzx.oa.api.filesappendix.Filesappendix;
import com.yxt.jlzx.oa.api.filesappendix.FilesappendixVo;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* @author dimengzhe
* @date 2020/10/14 14:29
* @description
*/
@Mapper
public interface FilesappendixMapper extends BaseMapper<Filesappendix> {
public Filesappendix selectByLinkSid(@Param("linkSid") String linkSid,@Param("path") String path);
public int deleteByLinkSid(String linkSid);
public List<FilesappendixVo> queryBylinkSid(@Param("linkSid") String linkSid,@Param("path") String path);
public int deleteByLinkSidAndType(@Param("linkSid") String linkSid,@Param("type") String type);
}

View File

@@ -0,0 +1,30 @@
<?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.yxt.jlzx.oa.biz.filesappendix.FilesappendixMapper">
<select id="selectByLinkSid" resultType="com.yxt.jlzx.oa.api.filesappendix.Filesappendix">
SELECT sid,fileName, concat(#{path},filePath) as filePath,fileType,linkSid
FROM filesappendix oa
WHERE oa.linkSid = #{linkSid}
</select>
<select id="queryBylinkSid" resultType="com.yxt.jlzx.oa.api.filesappendix.FilesappendixVo">
SELECT sid,fileName, concat(#{path},filePath) as filePath,fileType,linkSid
FROM filesappendix
WHERE linkSid = #{linkSid}
</select>
<delete id="deleteByLinkSid">
DELETE
FROM filesappendix
WHERE linkSid = #{linkSid}
</delete>
<delete id="deleteByLinkSidAndType">
DELETE
FROM filesappendix
WHERE linkSid = #{linkSid} and fileType=#{type}
</delete>
</mapper>

View File

@@ -0,0 +1,81 @@
package com.yxt.jlzx.oa.biz.filesappendix;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.jlzx.oa.api.filesappendix.Filesappendix;
import com.yxt.jlzx.oa.api.filesappendix.FilesappendixOneVo;
import com.yxt.jlzx.oa.api.filesappendix.FilesappendixVo;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* @author dimengzhe
* @date 2020/10/14 14:29
* @description
*/
@Service
public class FilesappendixService extends MybatisBaseService<FilesappendixMapper, Filesappendix> {
@Autowired
private FileUploadComponent fileUploadComponent;
public Filesappendix selectByLinkSid(String linkSid) {
String path=fileUploadComponent.getUrlPrefix();
return baseMapper.selectByLinkSid(linkSid,path);
}
public int deleteByLinkSid(String linkSid) {
return baseMapper.deleteByLinkSid(linkSid);
}
public List<FilesappendixVo> queryBylinkSid(String linkSid) {
String path=fileUploadComponent.getUrlPrefix();
return baseMapper.queryBylinkSid(linkSid,path);
}
public int deleteByLinkSidAndType(String linkSid,String type) {
return baseMapper.deleteByLinkSidAndType(linkSid,type);
}
/**
* 上传附件
* @param list_files
* @param linkSid
* @param fileType
*/
public void uploadFiles(List<FilesappendixOneVo> list_files,String linkSid,String fileType)
{
//上传附件
String path = fileUploadComponent.getUrlPrefix();
if (list_files != null && list_files.size() > 0) {
for (int i = 0; i < list_files.size(); i++) {
Filesappendix oafileAccessory = new Filesappendix();
if (list_files.get(i).getFilePath()
.indexOf(path) > -1) {
oafileAccessory.setFilePath(list_files.get(i).getFilePath().replace(path, ""));
}
oafileAccessory.setFileType(fileType);
oafileAccessory.setFileName(list_files.get(i).getFileName());
oafileAccessory.setLinkSid(linkSid);
save(oafileAccessory);
}
}
}
/**
* 重新上传附件,修改附件
* @param list_files
* @param linkSid
* @param fileType
*/
public void reUploadFiles(List<FilesappendixOneVo> list_files,String linkSid,String fileType)
{
deleteByLinkSid(linkSid);
uploadFiles(list_files,linkSid,fileType);
}
}

View File

@@ -0,0 +1,222 @@
package com.yxt.jlzx.oa.biz.form;
import io.swagger.annotations.Api;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.validation.Valid;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.utils.DateUtils;
import com.yxt.common.core.result.ResultBean;
import com.yxt.jlzx.oa.api.filesappendix.FilesappendixVo;
import com.yxt.jlzx.oa.api.form.FormApi;
import com.yxt.jlzx.oa.api.form.FormItemDto;
import com.yxt.jlzx.oa.api.form.FormItems;
import com.yxt.jlzx.oa.api.form.FormItemsDto;
import com.yxt.jlzx.oa.api.form.FormSelectLinkDto;
import com.yxt.jlzx.oa.api.form.MaxFileNumDto;
import com.yxt.jlzx.oa.api.goodslib.GoodslibVo;
import com.yxt.jlzx.oa.biz.filesappendix.FilesappendixService;
import com.yxt.jlzx.oa.biz.goodslib.GoodslibService;
import com.yxt.jlzx.system.api.user.UserApi;
import com.yxt.jlzx.system.api.user.UserInfoVo;
import com.yxt.workflow.api.process.WfProcessApi;
import com.yxt.workflow.api.process.WfProcessVo;
/**
* @author yxt_mtl
* @date 2020/9/29 13:30
* @description 角色信息
*/
@Controller
@RequestMapping("v1/forms")
@Api(tags = "表单通用接口")
public class FormApiImpl implements FormApi {
// @Autowired
// private IFormService formService;
@Autowired
private FilesappendixService appendixService;
@Autowired
private FileUploadComponent fileUploadComponent;
@Autowired
private UserApi userApi;
@Autowired
private WfProcessApi processApi;
@Autowired
private GoodslibService goodslibService;
/**
* 动态获取form中字段项信息
*/
@Override
public ResultBean<Map<String, Object>> getFormItemsVo(FormItemDto dto) {
ResultBean<Map<String, Object>> resultBean = ResultBean.fireFail();
//ProcessSid 流程的id
IFormService formService = FormServiceCreator.creator(dto.getProcessSid());
if (formService == null)
return resultBean.setData(null);
Map<String, Object> map = formService.getFormItemsVo(dto.getFormSid());
if (map == null)
return resultBean.setData(null);
// String filePath=map.get("filePath").toString();
// String pdfFilePath=map.get("pdfFilePath").toString();
// String path=fileUploadComponent.getUrlPrefix().replace("upload", "oadoc");
// //将oapdf的路径保存map中
// String pdfPath=fileUploadComponent.getUrlPrefix().replace("upload", "oapdf");
// map.put("filePath",path+filePath);
// map.put("pdfFilePath",pdfPath+pdfFilePath);
if (map.get("filePath") != null){
String path=fileUploadComponent.getUrlPrefix().replace("upload", "oadoc");
map.put("filePath",path+map.get("filePath").toString()) ;
} else{
map.put("filePath","");
}
if(map.get("pdfFilePath")!= null) {
String pdfFilePath=map.get("pdfFilePath").toString();
//将oapdf的路径保存map中
String pdfPath=fileUploadComponent.getUrlPrefix().replace("upload", "oapdf");
map.put("pdfFilePath",pdfPath+pdfFilePath);
}else {
map.put("pdfFilePath","");
}
// 需要增加文件的附件列表
List<FilesappendixVo> list_appendix = appendixService
.queryBylinkSid(dto.getFormSid());
map.put("fileList", list_appendix);
return resultBean.setData(map).success();
}
@Override
public ResultBean<Map<String, Object>> getMaxFileNum(MaxFileNumDto dto) {
String processSid=dto.getProcessSid();
ResultBean<Map<String, Object>> resultBean = ResultBean.fireFail();
IFormService formService = FormServiceCreator.creator(processSid);
if (formService == null)
return resultBean.setData(null);
Map<String, Object> map = formService.getMaxFileNum(dto);
if (map == null)
return resultBean.setData(null);
return resultBean.setData(map).success();
}
@Override
public ResultBean<Map<String, Object>> getNewFormItemsVo(@Valid FormItemsDto dto) {
ResultBean<Map<String, Object>> resultBean = ResultBean.fireFail();
IFormService formService = FormServiceCreator.creator(dto.getProcessSid());
if (formService == null)
return resultBean.setData(null);
Map<String, Object> map= formService.getNewFormItemsVo();
if (map == null)
return resultBean.setData(null);
ResultBean<UserInfoVo> rb_user=userApi.fetchUserInfoBysid(dto.getUserSid());
if(!rb_user.getSuccess())
return resultBean.setData(null);
List<FormItems> list=(List<FormItems>)map.get("formItems");
//初始化form中的公共内容发起人姓名、创建日期、创建部门
list.get(0).getRight_text().setDefaultText(rb_user.getData().getName());
list.get(1).getRight_text().setDefaultText(DateUtils.getNowDateDayStr());
list.get(2).getRight_text().setDefaultText(rb_user.getData().getDepartmentName());
//需要调用流程中是否有附件的
ResultBean<WfProcessVo> rb=processApi.getVo(dto.getProcessSid());
if(rb.getSuccess())
{
map.put("isFileList",rb.getData().getIsAppendix());
}
return resultBean.setData(map).success();
}
@Override
public ResultBean<Map<String, Object>> getEditFormItemsVo(FormItemDto dto) {
ResultBean<Map<String, Object>> resultBean = ResultBean.fireFail();
IFormService formService = FormServiceCreator.creator(dto.getProcessSid());
if (formService == null)
return resultBean.setData(null);
Map<String, Object> map= formService.getEditFormItemsVo(dto.getFormSid());
if (map == null)
return resultBean.setData(null);
// String filePath=map.get("filePath").toString();
// String pdfFilePath=map.get("pdfFilePath").toString();
// String path=fileUploadComponent.getUrlPrefix().replace("upload", "oadoc");
// //将oapdf的路径保存map中
// String pdfPath=fileUploadComponent.getUrlPrefix().replace("upload", "oapdf");
// map.put("filePath",path+filePath);
// map.put("pdfFilePath",pdfPath+pdfFilePath);
if (map.get("filePath") != null){
String path=fileUploadComponent.getUrlPrefix().replace("upload", "oadoc");
map.put("filePath",path+map.get("filePath").toString()) ;
} else{
map.put("filePath","");
}
if(map.get("pdfFilePath")!= null) {
String pdfFilePath=map.get("pdfFilePath").toString();
//将oapdf的路径保存map中
String pdfPath=fileUploadComponent.getUrlPrefix().replace("upload", "oapdf");
map.put("pdfFilePath",pdfPath+pdfFilePath);
}else {
if (map.get("filePath") != null){
String path=fileUploadComponent.getUrlPrefix().replace("upload", "oadoc");
map.put("pdfFilePath",path+map.get("filePath").toString());
} else{
map.put("pdfFilePath","");
}
}
//需要调用流程中是否有附件的
ResultBean<WfProcessVo> rb=processApi.getVo(dto.getProcessSid());
if(rb.getSuccess())
{
map.put("isFileList",rb.getData().getIsAppendix());
if(rb.getData().getIsAppendix().equals("1"))
{
// 需要增加文件的附件列表
List<FilesappendixVo> list_appendix = appendixService
.queryBylinkSid(dto.getFormSid());
map.put("fileList", list_appendix);
}
}
return resultBean.setData(map).success();
}
@Override
public ResultBean<Map<String, Object> > getLinkAge(FormSelectLinkDto dto) {
ResultBean<Map<String, Object>> resultBean = ResultBean.fireFail();
IFormService formService = FormServiceCreator.creator(dto.getProcessSid());
if (formService == null)
return resultBean.setData(null);
Map<String, Object> map= formService.getLinkAge(dto);
if (map == null)
return resultBean.setData(null).fail().setMessage("下级下拉框数据未获取到!");
return resultBean.setData(map).success();
}
}

View File

@@ -0,0 +1,28 @@
package com.yxt.jlzx.oa.biz.form;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.jlzx.oa.api.form.Form;
import com.yxt.jlzx.oa.api.form.FormQuery;
import com.yxt.jlzx.oa.api.form.FormVo;
/**
* @author yxt_mtl
* @date 2020/10/16 15:50
* @description
*/
@Mapper
public interface FormMapper<T extends Form,V extends FormVo,Q extends FormQuery> extends BaseMapper<T>{
//分页列表
IPage<V> pageList(IPage<Q> page,@Param(Constants.WRAPPER) Wrapper<V> qw);
//不分页列表
List<V> list(@Param(Constants.WRAPPER) Wrapper<V> qw);
}

View File

@@ -0,0 +1,44 @@
package com.yxt.jlzx.oa.biz.form;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.jlzx.oa.api.form.FileNumVo;
import com.yxt.jlzx.oa.api.formfile.FormFile;
import com.yxt.jlzx.oa.api.formfile.FormFileQuery;
import com.yxt.jlzx.oa.api.formfile.FormFileVo;
import com.yxt.jlzx.oa.api.formtzgg.FormTzgg;
import com.yxt.jlzx.oa.api.formtzgg.FormTzggVo;
import com.yxt.jlzx.oa.biz.form.IFormService;
import com.yxt.jlzx.system.api.filenumrule.FilenumruleApi;
import com.yxt.jlzx.system.api.filenumrule.FilenumruleVo;
@Service
public class FormService {
@Autowired
private FilenumruleApi filenumruleApi;
// public Map<String, Object> getMaxFileNum(String processSid) {
//
// ResultBean<List<FilenumruleVo>> bean = filenumruleApi.getVoByProcessSid(processSid);
// List<FilenumruleVo> list=bean.getData();
// if(list!=null&&list.size()>0) {
//
// }
//// FileNumVo vo=baseMapper.getMaxFileNum(map);
// }
}

View File

@@ -0,0 +1,38 @@
package com.yxt.jlzx.oa.biz.form;
import com.yxt.common.base.config.utils.SpringUtil;
/**
* 表单service生成器
*
* @author yxt_mtl
*
*/
public class FormServiceCreator {
/**
* 根据流程sid生成对应表单的service
*
* @param processSid
* @return
*/
public static IFormService creator(String processSid) {
//Map<String,IFormService> formServices=SpringUtil.getBeansOfType(IFormService.class);
// for(Map.Entry<String, IFormService> entry:formServices.entrySet()){
//if(entry.getValue().getProcessSid().equals(processSid))
//return entry.getValue();
//}
//return null;
return (IFormService)SpringUtil.getBean(processSid);
}
}

View File

@@ -0,0 +1,59 @@
package com.yxt.jlzx.oa.biz.form;
import java.util.Map;
import com.yxt.jlzx.oa.api.index.AppDailyDto;
import com.yxt.jlzx.oa.api.index.AppDailyVo;
import com.yxt.jlzx.oa.api.form.FormItems;
import com.yxt.jlzx.oa.api.form.FormSelectLinkDto;
import com.yxt.jlzx.oa.api.form.MaxFileNumDto;
public interface IFormService {
/**
* 获取表单信息
* @param sid
* @return
*/
//Map<String,Object> getFormVo(String sid);
/**
* 获取动态表单(详情)
*
* @param sid
* @return
*/
Map<String, Object> getFormItemsVo(String sid);
/**
* 获取动态表单(新建)
*
* @param sid
* @return
*/
Map<String, Object> getNewFormItemsVo();
/**
* 获取动态表单(修改)
*
* @param sid
* @return
*/
Map<String, Object> getEditFormItemsVo(String formSid);
Map<String, Object> getMaxFileNum(MaxFileNumDto dto);
//APP_保存表单信息
AppDailyVo isSave(AppDailyDto appDailyDto) throws Exception;
AppDailyVo update(AppDailyDto appDailyDto) throws Exception;
Map<String, Object> getLinkAge(FormSelectLinkDto dto);
}

View File

@@ -0,0 +1,244 @@
package com.yxt.jlzx.oa.biz.formfile;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.utils.StringUtils;
import io.swagger.annotations.Api;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.utils.DateUtils;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.jlzx.oa.api.filesappendix.FilesappendixVo;
import com.yxt.jlzx.oa.api.form.FormDto;
import com.yxt.jlzx.oa.api.form.FormResultVo;
import com.yxt.jlzx.oa.api.form.OpinionRow;
import com.yxt.jlzx.oa.api.formfile.FormFile;
import com.yxt.jlzx.oa.api.formfile.FormFileApi;
import com.yxt.jlzx.oa.api.formfile.FormFileDto;
import com.yxt.jlzx.oa.api.formfile.FormFileQuery;
import com.yxt.jlzx.oa.api.formfile.FormFileRedHeadPaperVo;
import com.yxt.jlzx.oa.api.formfile.FormFileVo;
import com.yxt.jlzx.oa.biz.filesappendix.FilesappendixService;
import com.yxt.jlzx.oa.biz.work.WorkService;
import com.yxt.jlzx.oa.biz.workflow.WorkFlowService;
import com.yxt.jlzx.system.api.user.UserApi;
import com.yxt.jlzx.system.api.user.UserInfoVo;
import com.yxt.workflow.api.task.WfTaskVo;
/**
* @author hanweijai
* @date 2020/10/19
* @description 角色信息
*/
@Controller
@RequestMapping("v1/formfiles")
@Api(tags = "发文表单")
public class FormFileApiImpl implements FormFileApi {
@Autowired
private FormFileService service;
@Autowired
private WorkFlowService wfservice;
@Autowired
private WorkService workService;
@Autowired
private FilesappendixService filesappendixservice;
@Autowired
private UserApi userApi;
//2021.10.08
@Autowired
private FileUploadComponent fileUploadComponent;
@Override
public ResultBean<List<FormFileVo>> list(FormFileQuery query) {
ResultBean<List<FormFileVo>> resultBean = ResultBean.fireFail();
List<FormFileVo> list = service.list(query);
if (null == list)
return resultBean;
return resultBean.success().setData(list);
}
@Override
public ResultBean<PagerVo<FormFileVo>> pageList(
PagerQuery<FormFileQuery> pagerQuery) {
ResultBean<PagerVo<FormFileVo>> rb = ResultBean.fireFail();
IPage<FormFileVo> page = service.pageList(pagerQuery);
// 把Ipage转换为PageVo
PagerVo<FormFileVo> pv_result = PagerUtil.pageToVo(page, null);
return rb.success().setData(pv_result);
}
@Override
public ResultBean<FormResultVo> save(FormFileDto dto) {
ResultBean<FormResultVo> resultBean = ResultBean.fireFail();
FormResultVo formResultVo = new FormResultVo();
// 首次保存,二次修改
if (StringUtils.isNotBlank(dto.getFormSid())) {
if (update(dto, dto.getFormSid()).getSuccess()) {
formResultVo.setFormSid(dto.getFormSid());
return resultBean.success().setData(formResultVo);
} else {
return resultBean.setData(null);
}
}
FormFile t = new FormFile();
// 调用远程
dto.setFormSid(t.getSid());
WfTaskVo taskVo = wfservice.startProcess((FormDto) dto);
if (taskVo == null)
return resultBean.setData(null);
dto.fillEntity(t);
UserInfoVo userInfoVo = userApi.fetchUserInfoBysid(t.getCreateBySid()).getData();
if (null != userInfoVo)
t.setCreateOrgSid(userInfoVo.getOrganizationSid());
t.setOrderSid(taskVo.getOrderSid());
// 保存表单信息
if (service.save(t)) {
// 上传附件
filesappendixservice.uploadFiles(dto.getFilePathlist(), t.getSid(),
t.getClass().getSimpleName());
formResultVo.setFormSid(t.getSid());
formResultVo.setTaskSid(taskVo.getTaskSid());
return resultBean.success().setData(formResultVo);
}
return resultBean.setData(null);
}
@Override
public ResultBean<String> update(FormFileDto dto, String sid) {
ResultBean<String> rb = ResultBean.fireFail();
FormFile t = service.fetchBySid(sid);
if (null == t)
return rb.setMsg("该记录不存在").setData("");
//if issueUserSid 包含"签发"则设置签发人sid签发人姓名签发日期
Map<String, Object> map = dto.toMap();
if (dto.getMotif() == null || !dto.getMotif().contains("签发")) {
//不是签发环节,不更新签发信息
map.remove("issueUserSid");
map.remove("issuePersonName");
map.remove("issueTime");
} else {
//签发人姓名和签发人sid是前端传回来的当前操作人的信息
//dto.setIssueUserSid(issueUserSid);
//dto.setIssuePersonName(issuePersonName);
//dto.setIssueTime(new Date());
map.put("issueTime", DateUtils.getNowDateDayStr());
}
if (0 == service.updateBySid(map, sid))
return rb.setData("");
// 修改流程实例中的title和紧急紧急程度
dto.setOrderSid(t.getOrderSid());
if (wfservice.updateMfOrderFormInfo((FormDto) dto)) {
// 修改附件
filesappendixservice.reUploadFiles(dto.getFilePathlist(),
t.getSid(), t.getClass().getSimpleName());
return rb.success().setData(sid);
}
return rb.setData("");
}
@Override
public ResultBean delete(String sid) {
FormFile t = service.fetchBySid(sid);
if (null == t)
return ResultBean.fireFail().setMsg("该记录不存在");
if (0 == service.deleteBySid(sid))
return ResultBean.fireFail();
filesappendixservice.deleteByLinkSid(sid);
return ResultBean.fireSuccess();
}
@Override
public ResultBean<FormFileVo> getVo(String sid) {
ResultBean<FormFileVo> resultBean = ResultBean.fireFail();
FormFile t = service.fetchBySid(sid);
if (null == t)
return resultBean;
FormFileVo vo = new FormFileVo();
vo.fromEntity(t);
List<FilesappendixVo> list_appendix = filesappendixservice
.queryBylinkSid(sid);
vo.setFilePathlist(list_appendix);
//2021.10.08 添加本地pdf的保存路径
if(t.getPdfFilePath()!=null && t.getPdfFilePath().length()>0){
String pdfPath=fileUploadComponent.getUrlPrefix().replace("upload", "oapdf");
vo.setLocalhostpdfFilePath(pdfPath+t.getPdfFilePath());
}else{
vo.setLocalhostpdfFilePath("");
}
return resultBean.success().setData(vo);
}
/**
* 获取发文审批笺
*/
@Override
public ResultBean<FormFileRedHeadPaperVo> getRedHeadPaper(String formSid) {
ResultBean<FormFileRedHeadPaperVo> resultBean = ResultBean.fireFail();
FormFile t = service.fetchBySid(formSid);
if (null == t)
return resultBean;
FormFileRedHeadPaperVo vo = new FormFileRedHeadPaperVo();
vo.fromEntity(t);
/* List<OpinionRow> list_rows=workService.getOpinioRows(t.getOrderSid(), "单位领导签发");
List<OpinionRow> list_row=new ArrayList<OpinionRow>();
if(list_rows!=null && list_rows.size()>0)
list_row.add(list_rows.get(0));
vo.setIssueOpinions(list_row);*/
vo.setIssueOpinions(workService.getOpinioRows(t.getOrderSid(), "单位领导签发"));
vo.setOfficeOpinions(workService.getOpinioRows(t.getOrderSid(),
"办公室主任审核"));
vo.setOtherOpinions(workService.getOpinioRows(t.getOrderSid(), "其他部门会签"));
vo.setDeptOpinions(workService.getOpinioRows(t.getOrderSid(), "部门负责人审核"));
return resultBean.success().setData(vo);
}
/**
* 获取发文会商笺
*/
@Override
public ResultBean<FormFileRedHeadPaperVo> getHsRedHeadPaper(String formSid) {
ResultBean<FormFileRedHeadPaperVo> resultBean = ResultBean.fireFail();
FormFile t = service.fetchBySid(formSid);
if (null == t)
return resultBean;
FormFileRedHeadPaperVo vo = new FormFileRedHeadPaperVo();
vo.fromEntity(t);
vo.setIssueOpinions(workService.getOpinioRows(t.getOrderSid(), "签发人意见"));
vo.setOtherOpinions(workService.getOpinioRows(t.getOrderSid(), "会商部门意见"));
vo.setDeptOpinions(workService.getOpinioRows(t.getOrderSid(), "部门负责人意见"));
return resultBean.success().setData(vo);
}
}

View File

@@ -0,0 +1,26 @@
package com.yxt.jlzx.oa.biz.formfile;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.jlzx.oa.api.form.FileNumVo;
import com.yxt.jlzx.oa.api.formfile.FormFile;
import com.yxt.jlzx.oa.api.formfile.FormFileQuery;
import com.yxt.jlzx.oa.api.formfile.FormFileVo;
@Mapper
public interface FormFileMapper extends BaseMapper<FormFile>{
//分页列表
IPage<FormFileVo> pageList(IPage<FormFileQuery> page,@Param(Constants.WRAPPER) Wrapper<FormFileVo> qw);
List<FormFileVo> list(@Param(Constants.WRAPPER) QueryWrapper<FormFileVo> qw);
List<FileNumVo> getMaxFileNum(String ruleName);
}

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.yxt.jlzx.oa.biz.formfile.FormFileMapper">
<select id="pageList" resultType="com.yxt.jlzx.oa.api.formfile.FormFileVo">
select * from form_file
${ew.customSqlSegment}
</select>
<select id="list" resultType="com.yxt.jlzx.oa.api.formfile.FormFileVo">
select * from form_file
${ew.customSqlSegment}
</select>
<!-- <select id="getMaxFileNum" resultType="com.yxt.jlzx.oa.api.form.FileNumVo">
SELECT
(SELECT fileNum FROM form_file WHERE id IN( SELECT MAX(id) FROM `form_file` WHERE fileNum LIKE concat("%",#{ruleName},"%")))filenum
FROM
form_file f LIMIT 1
</select> -->
<select id="getMaxFileNum" resultType="com.yxt.jlzx.oa.api.form.FileNumVo">
SELECT fileNum FROM form_file
where fileNum LIKE concat("%",#{ruleName},"%")
</select>
</mapper>

View File

@@ -0,0 +1,219 @@
package com.yxt.jlzx.oa.biz.formfile;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import com.yxt.jlzx.oa.api.index.AppDailyDto;
import com.yxt.jlzx.oa.api.index.AppDailyVo;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.jlzx.jlcyry.api.datadictionary.DictCommonVo;
import com.yxt.jlzx.oa.api.form.FileNumVo;
import com.yxt.jlzx.oa.api.form.FormSelectLinkDto;
import com.yxt.jlzx.oa.api.form.MaxFileNumDto;
import com.yxt.jlzx.oa.api.formfile.FormFile;
import com.yxt.jlzx.oa.api.formfile.FormFileQuery;
import com.yxt.jlzx.oa.api.formfile.FormFileVo;
import com.yxt.jlzx.oa.biz.form.IFormService;
import com.yxt.jlzx.system.api.filenumrule.FilenumruleApi;
import com.yxt.jlzx.system.api.filenumrule.FilenumruleOneVo;
@Service("000002")
public class FormFileService extends MybatisBaseService<FormFileMapper, FormFile> implements IFormService{
@Autowired
private FilenumruleApi filenumruleApi;
// 分页列表
public IPage<FormFileVo> pageList(PagerQuery<FormFileQuery> pagerQuery) {
// mybits所用的分页对对象
IPage<FormFileQuery> page = PagerUtil.queryToPage(pagerQuery);
// mybits所用的查询条件封装类
QueryWrapper<FormFileVo> qw = buildQueryWrapper(pagerQuery.getParams());
return baseMapper.pageList(page, qw);
}
// 不分页列表
public List<FormFileVo> list(FormFileQuery pagerQuery) {
// mybits所用的查询条件封装类
QueryWrapper<FormFileVo> qw = buildQueryWrapper(pagerQuery);
return baseMapper.list(qw);
}
/**
* 解析和组装查询条件封装在qw中,虚方法,需要在子类中定义具体实现
* @param pagerQuery
* @return
*/
private QueryWrapper<FormFileVo> buildQueryWrapper(FormFileQuery pagerQuery)
{
QueryWrapper<FormFileVo> qw = new QueryWrapper<FormFileVo>();
if (pagerQuery != null) {
if (org.apache.commons.lang3.StringUtils.isNotBlank(pagerQuery
.getCreateDeptSid()))
qw.eq("createDeptSid", pagerQuery.getCreateDeptSid());
if (org.apache.commons.lang3.StringUtils.isNotBlank(pagerQuery
.getProcessSid()))
qw.eq("processSid", pagerQuery.getProcessSid());
if (null!=pagerQuery.getIssueTime() && org.apache.commons.lang3.StringUtils.isNotBlank(pagerQuery
.getIssueTime().toString()))
qw.eq("issueTime", pagerQuery.getIssueTime());//大于等于
if (org.apache.commons.lang3.StringUtils.isNotBlank(pagerQuery.getPublicType()))
qw.eq("issueTime", pagerQuery.getPublicType());
if (org.apache.commons.lang3.StringUtils.isNotBlank(pagerQuery.getCreaterName()))
qw.eq("createrName", pagerQuery.getCreaterName());
qw.orderByDesc("createTime");
}
return qw;
}
/**
* 获取动态表单
* @param sid
* @return
*/
@Override
public Map<String,Object> getFormItemsVo(String sid)
{
FormFile t=fetchBySid(sid);
if(null==t)
return null;
FormFileVo vo=new FormFileVo();
vo.fromEntity(t);
return vo.toFormItemsMap();
}
@Override
public Map<String, Object> getMaxFileNum(MaxFileNumDto dto) {
Map<String,Object> map=new HashMap<String,Object>();
String filenum="";
String filenum1="";
String processSid=dto.getProcessSid();
String formSid=dto.getFormSid();
if(StringUtils.isNoneBlank(formSid)) {
FormFile fetchBySid = fetchBySid(formSid);
filenum1=fetchBySid.getFileNum();
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
Date date = new Date();
String year=sdf.format(date);
ResultBean<List<FilenumruleOneVo>> bean = filenumruleApi.getVoByProcessSid(processSid);//查询编号规则都有哪些
List<FilenumruleOneVo> list=bean.getData();
List<DictCommonVo> list1= new ArrayList<DictCommonVo>();
String startNum="";
if(list!=null&&list.size()>0) {//遍历编号规则,查询数据库中编号规则
for (int i = 0; i< list.size();i++) {
String ruleName=list.get(i).getRuleName();
startNum=list.get(i).getStartNumber();
if(StringUtils.isNotBlank(ruleName)) {
ruleName=ruleName+""+year+"";
if(filenum1.contains(ruleName)) {
filenum=filenum1;
break;
}
List<FileNumVo> voList=baseMapper.getMaxFileNum(ruleName);//通过编号规则模糊查询数据库中数据
List<Integer> filenumList=new ArrayList<Integer>();
if(voList!=null&&voList.size()>0) {//遍历这些数据查询数据最中大的一条在最大一条数据中加1
for(int s=0;s<voList.size();s++) {
filenum=voList.get(s).getFilenum();
if(StringUtils.isNoneBlank(filenum)) {
filenum=filenum.replace(ruleName, "");
filenum=filenum.replace("", "");
try{
int j=Integer.parseInt(filenum);
filenumList.add(j);//将查询的编号添加到list中在list中通过Collections.max(filenumList)方法获取最大一条
}catch(NumberFormatException e){
System.out.println("异常:\""+filenum + "\"不是数字/整数...");
}
}
}
int j= Collections.max(filenumList);//获取最大一条
j=j+1;//最大一条+1
filenum=ruleName+j+"";
}else {
if((startNum).equals("")) {
filenum=ruleName+"1号";
}else {
try{
int j=Integer.parseInt(startNum);
filenum=ruleName+j+"";
}catch(NumberFormatException e){
System.out.println("异常:\""+filenum + "\"不是数字/整数...");
}
}
}
// map.put("filenum"+(i+1), filenum);
DictCommonVo vo1=new DictCommonVo();
vo1.setDictValue(filenum);
list1.add(vo1);
}
}
}
map.put("list",list1);
return map;
}
@Override
public AppDailyVo isSave(AppDailyDto appDailyDto) {
AppDailyVo appDailyVo = new AppDailyVo();
return appDailyVo;
}
@Override
public AppDailyVo update(AppDailyDto appDailyDto) throws Exception {
return null;
}
@Override
public Map<String, Object> getNewFormItemsVo() {
// TODO Auto-generated method stub
return null;
}
@Override
public Map<String, Object> getEditFormItemsVo(String formSid) {
// TODO Auto-generated method stub
return null;
}
@Override
public Map<String, Object> getLinkAge(FormSelectLinkDto dto) {
// TODO Auto-generated method stub
return null;
}
}

View File

@@ -0,0 +1,22 @@
package com.yxt.jlzx.oa.biz.formgzqs;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.jlzx.oa.api.formgzqs.FormGzqs;
import com.yxt.jlzx.oa.api.formgzqs.FormGzqsQuery;
import com.yxt.jlzx.oa.api.formgzqs.FormGzqsVo;
@Mapper
public interface FormGzqsMapper extends BaseMapper<FormGzqs>{
//分页列表
IPage<FormGzqsVo> pageList(IPage<FormGzqsQuery> page,@Param(Constants.WRAPPER) Wrapper<FormGzqsVo> qw);
List<FormGzqsVo> list(@Param(Constants.WRAPPER) QueryWrapper<FormGzqsVo> qw);
}

View File

@@ -0,0 +1,12 @@
<?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.yxt.jlzx.oa.biz.formgzqs.FormGzqsMapper">
<select id="pageList" resultType="com.yxt.jlzx.oa.api.formgzqs.FormGzqsVo">
select * from form_gzqs
${ew.customSqlSegment}
</select>
<select id="list" resultType="com.yxt.jlzx.oa.api.formgzqs.FormGzqsVo">
select * from form_gzqs
${ew.customSqlSegment}
</select>
</mapper>

View File

@@ -0,0 +1,124 @@
package com.yxt.jlzx.oa.biz.formgzqs;
import java.util.List;
import java.util.Map;
import com.yxt.jlzx.oa.api.index.AppDailyDto;
import com.yxt.jlzx.oa.api.index.AppDailyVo;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.jlzx.oa.api.form.FormSelectLinkDto;
import com.yxt.jlzx.oa.api.formgzqs.FormGzqs;
import com.yxt.jlzx.oa.api.formgzqs.FormGzqsQuery;
import com.yxt.jlzx.oa.api.formgzqs.FormGzqsVo;
import com.yxt.jlzx.oa.api.formtzgg.FormTzgg;
import com.yxt.jlzx.oa.api.formtzgg.FormTzggVo;
import com.yxt.jlzx.oa.biz.form.IFormService;
@Service("42ba56a8-370e-4a8b-8365-581f18f2e1fa")
public class FormGzqsService extends MybatisBaseService<FormGzqsMapper, FormGzqs> implements IFormService{
// 分页列表
public IPage<FormGzqsVo> pageList(PagerQuery<FormGzqsQuery> pagerQuery) {
// mybits所用的分页对对象
IPage<FormGzqsQuery> page = PagerUtil.queryToPage(pagerQuery);
// mybits所用的查询条件封装类
QueryWrapper<FormGzqsVo> qw = buildQueryWrapper(pagerQuery.getParams());
return baseMapper.pageList(page, qw);
}
// 不分页列表
public List<FormGzqsVo> list(FormGzqsQuery pagerQuery) {
// mybits所用的查询条件封装类
QueryWrapper<FormGzqsVo> qw = buildQueryWrapper(pagerQuery);
return baseMapper.list(qw);
}
/**
* 解析和组装查询条件封装在qw中,虚方法,需要在子类中定义具体实现
* @param pagerQuery
* @return
*/
private QueryWrapper<FormGzqsVo> buildQueryWrapper(FormGzqsQuery pagerQuery)
{
QueryWrapper<FormGzqsVo> qw = new QueryWrapper<FormGzqsVo>();
if (pagerQuery != null) {
if (org.apache.commons.lang3.StringUtils.isNotBlank(pagerQuery
.getCreateDeptSid()))
qw.eq("createDeptSid", pagerQuery.getCreateDeptSid());
if (org.apache.commons.lang3.StringUtils.isNotBlank(pagerQuery
.getProcessSid()))
qw.eq("processSid", pagerQuery.getProcessSid());
if (org.apache.commons.lang3.StringUtils.isNotBlank(pagerQuery.getCreaterName()))
qw.eq("createrName", pagerQuery.getCreaterName());
qw.orderByDesc("createTime");
}
return qw;
}
/**
* 获取动态表单
* @param sid
* @return
*/
public Map<String,Object> getFormItemsVo(String sid)
{
FormGzqs t=fetchBySid(sid);
if(null==t)
return null;
FormGzqsVo vo=new FormGzqsVo();
vo.fromEntity(t);
return vo.toFormItemsMap();
}
@Override
public Map<String, Object> getMaxFileNum(com.yxt.jlzx.oa.api.form.MaxFileNumDto dto) {
// TODO Auto-generated method stub
return null;
}
@Override
public AppDailyVo isSave(AppDailyDto appDailyDto) {
AppDailyVo appDailyVo = new AppDailyVo();
return appDailyVo;
}
@Override
public AppDailyVo update(AppDailyDto appDailyDto) throws Exception {
return null;
}
@Override
public Map<String, Object> getNewFormItemsVo() {
// TODO Auto-generated method stub
return null;
}
@Override
public Map<String, Object> getEditFormItemsVo(String formSid) {
// TODO Auto-generated method stub
return null;
}
@Override
public Map<String, Object> getLinkAge(FormSelectLinkDto dto) {
// TODO Auto-generated method stub
return null;
}
}

View File

@@ -0,0 +1,184 @@
package com.yxt.jlzx.oa.biz.formgzqs;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.jlzx.oa.api.filesappendix.FilesappendixVo;
import com.yxt.jlzx.oa.api.form.FormDto;
import com.yxt.jlzx.oa.api.form.FormResultVo;
import com.yxt.jlzx.oa.api.formgzqs.*;
import com.yxt.jlzx.oa.biz.filesappendix.FilesappendixService;
import com.yxt.jlzx.oa.biz.work.WorkService;
import com.yxt.jlzx.oa.biz.workflow.WorkFlowService;
import com.yxt.jlzx.system.api.user.UserApi;
import com.yxt.jlzx.system.api.user.UserInfoVo;
import com.yxt.workflow.api.task.WfTaskVo;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.List;
/**
* @author yxt_mtl
* @date 2020/9/29 13:30
* @description 角色信息
*/
@Controller
@RequestMapping("v1/formgzqss")
@Api(tags = "工作请示表单")
public class FormgzqsApiImpl implements FormGzqsApi {
@Autowired
private FormGzqsService service;
@Autowired
private WorkFlowService wfservice;
@Autowired
private FilesappendixService filesappendixservice;
@Autowired
private FileUploadComponent fileUploadComponent;
@Autowired
private UserApi userApi;
@Autowired
private WorkService workService;
@Override
public ResultBean<List<FormGzqsVo>> list(FormGzqsQuery query) {
ResultBean<List<FormGzqsVo>> resultBean = ResultBean.fireFail();
List<FormGzqsVo> list = service.list(query);
if (null == list) {
return resultBean;
}
return resultBean.success().setData(list);
}
@Override
public ResultBean<PagerVo<FormGzqsVo>> pageList(
PagerQuery<FormGzqsQuery> pagerQuery) {
ResultBean<PagerVo<FormGzqsVo>> rb = ResultBean.fireFail();
IPage<FormGzqsVo> page = service.pageList(pagerQuery);
// 把Ipage转换为PageVo
PagerVo<FormGzqsVo> pv_result = PagerUtil.pageToVo(page, null);
return rb.success().setData(pv_result);
}
@Override
public ResultBean<FormResultVo> save(FormGzqsDto dto) {
ResultBean<FormResultVo> resultBean = ResultBean.fireFail();
FormResultVo formResultVo = new FormResultVo();
// 首次保存,二次修改
if (!dto.getFormSid().equals("")) {
if (update(dto, dto.getFormSid()).getSuccess()) {
return resultBean.success().setData(formResultVo);
} else {
return resultBean.setData(null);
}
}
FormGzqs t = new FormGzqs();
// 开始流程
dto.setFormSid(t.getSid());
WfTaskVo taskVo = wfservice.startProcess((FormDto) dto);
if (taskVo == null) {
return resultBean;
}
dto.fillEntity(t);
t.setOrderSid(taskVo.getOrderSid());
UserInfoVo userInfoVo = userApi.fetchUserInfoBysid(t.getCreateBySid()).getData();
if (null != userInfoVo) {
t.setCreateOrgSid(userInfoVo.getOrganizationSid());
}
if (service.save(t)) {
filesappendixservice.uploadFiles(dto.getFilePathlist(), t.getSid(),
t.getClass().getSimpleName());
formResultVo.setFormSid(t.getSid());
formResultVo.setTaskSid(taskVo.getTaskSid());
return resultBean.success().setData(formResultVo);
}
return resultBean.setData(null);
}
@Override
public ResultBean<String> update(FormGzqsDto dto, String sid) {
ResultBean<String> rb = ResultBean.fireFail();
FormGzqs t = service.fetchBySid(sid);
if (null == t)
return rb.setMsg("该记录不存在").setData("");
if (0 == service.updateBySid(dto.toMap(), sid)) {
return rb.setData("");
}
// 修改流程实例中的title和紧急紧急程度
dto.setOrderSid(t.getOrderSid());
if (wfservice.updateMfOrderFormInfo((FormDto) dto)) {
filesappendixservice.reUploadFiles(dto.getFilePathlist(),
t.getSid(), t.getClass().getSimpleName());
return rb.success().setData(sid);
}
return rb.setData("");
}
@Override
public ResultBean delete(String sid) {
FormGzqs t = service.fetchBySid(sid);
if (null == t) {
return ResultBean.fireFail().setMsg("该记录不存在");
}
if (0 == service.deleteBySid(sid)) {
return ResultBean.fireFail();
}
filesappendixservice.deleteByLinkSid(sid);
return ResultBean.fireSuccess();
}
@Override
public ResultBean<FormGzqsVo> getVo(String sid) {
ResultBean<FormGzqsVo> resultBean = ResultBean.fireFail();
FormGzqs t = service.fetchBySid(sid);
if (null == t) {
return resultBean;
}
FormGzqsVo vo = new FormGzqsVo();
vo.fromEntity(t);
List<FilesappendixVo> list_appendix = filesappendixservice
.queryBylinkSid(sid);
vo.setFilePathlist(list_appendix);
//2021.10.08 添加本地pdf的保存路径
if(t.getPdfFilePath()!=null && t.getPdfFilePath().length()>0){
String pdfPath=fileUploadComponent.getUrlPrefix().replace("upload", "oapdf");
vo.setLocalhostpdfFilePath(pdfPath+t.getPdfFilePath());
}else{
vo.setLocalhostpdfFilePath("");
}
return resultBean.success().setData(vo);
}
@Override
public ResultBean<FormGzqsHeadPaperVo> getRedHeadPaper(String formSid) {
ResultBean<FormGzqsHeadPaperVo> resultBean = ResultBean.fireFail();
FormGzqs t = service.fetchBySid(formSid);
if (null == t) {
return resultBean;
}
FormGzqsHeadPaperVo vo = new FormGzqsHeadPaperVo();
vo.fromEntity(t);
vo.setIssueOpinions(workService.getOpinioRows(t.getOrderSid(), "单位领导批示"));
vo.setDeptOpinions(workService.getOpinioRows(t.getOrderSid(), "部门负责人审核"));
return resultBean.success().setData(vo);
}
}

View File

@@ -0,0 +1,209 @@
package com.yxt.jlzx.oa.biz.formhyjy;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.jlzx.oa.api.filesappendix.FilesappendixVo;
import com.yxt.jlzx.oa.api.form.FormDto;
import com.yxt.jlzx.oa.api.form.FormResultVo;
import com.yxt.jlzx.oa.api.formhyjy.*;
import com.yxt.jlzx.oa.biz.filesappendix.FilesappendixService;
import com.yxt.jlzx.oa.biz.work.WorkService;
import com.yxt.jlzx.oa.biz.workflow.WorkFlowService;
import com.yxt.jlzx.system.api.dictcommon.DictCommonApi;
import com.yxt.jlzx.system.api.dictcommon.DictCommonVo;
import com.yxt.jlzx.system.api.user.UserApi;
import com.yxt.jlzx.system.api.user.UserInfoVo;
import com.yxt.workflow.api.task.WfTaskVo;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.List;
import java.util.Map;
/**
* @author yxt_mtl
* @date 2020/9/29 13:30
* @description 角色信息
*/
@Controller
@RequestMapping("v1/formhyjys")
@Api(tags = "会议纪要表单")
public class FormHyjyApiImpl implements FormHyjyApi {
@Autowired
private FormHyjyService service;
@Autowired
private WorkFlowService wfservice;
@Autowired
private FilesappendixService filesappendixservice;
@Autowired
private FileUploadComponent fileUploadComponent;
@Autowired
private UserApi userApi;
@Autowired
private WorkService workService;
@Autowired
private DictCommonApi dictCommonApi;
@Override
public ResultBean<List<FormHyjyVo>> list(FormHyjyQuery query) {
ResultBean<List<FormHyjyVo>> resultBean = ResultBean.fireFail();
List<FormHyjyVo> list = service.list(query);
if (null == list)
return resultBean;
return resultBean.success().setData(list);
}
@Override
public ResultBean<PagerVo<FormHyjyVo>> pageList(
PagerQuery<FormHyjyQuery> pagerQuery) {
ResultBean<PagerVo<FormHyjyVo>> rb = ResultBean.fireFail();
IPage<FormHyjyVo> page = service.pageList(pagerQuery);
// 把Ipage转换为PageVo
PagerVo<FormHyjyVo> pv_result = PagerUtil.pageToVo(page, null);
return rb.success().setData(pv_result);
}
@Override
public ResultBean<FormResultVo> save(FormHyjyDto dto) {
ResultBean<FormResultVo> resultBean = ResultBean.fireFail();
FormResultVo formResultVo = new FormResultVo();
// 首次保存,二次修改
if (!dto.getFormSid().equals("")) {
if (update(dto, dto.getFormSid()).getSuccess())
return resultBean.success().setData(formResultVo);
else
return resultBean.setData(null);
}
ResultBean<DictCommonVo> selectBykey = dictCommonApi.selectBykey(dto.getMeetingType(), "hylx");
if (selectBykey.getData() != null) {
dto.setTitle(selectBykey.getData().getDictValue() + dto.getFileNum());
} else {
dto.setTitle("会议纪要");
}
FormHyjy t = new FormHyjy();
// 开始流程
dto.setFormSid(t.getSid());
WfTaskVo taskVo = wfservice.startProcess((FormDto) dto);
if (taskVo == null)
return resultBean.setData(null);
dto.fillEntity(t);
t.setOrderSid(taskVo.getOrderSid());
UserInfoVo userInfoVo = userApi.fetchUserInfoBysid(t.getCreateBySid()).getData();
if (null != userInfoVo)
t.setCreateOrgSid(userInfoVo.getOrganizationSid());
if (service.save(t)) {
filesappendixservice.uploadFiles(dto.getFilePathlist(), t.getSid(),
t.getClass().getSimpleName());
formResultVo.setFormSid(t.getSid());
formResultVo.setTaskSid(taskVo.getTaskSid());
return resultBean.success().setData(formResultVo);
}
return resultBean.setData(null);
}
@Override
public ResultBean<String> update(FormHyjyDto dto, String sid) {
ResultBean<String> rb = ResultBean.fireFail();
FormHyjy t = service.fetchBySid(sid);
if (null == t)
return rb.setMsg("该记录不存在").setData("");
//会议纪要赋值标题 2021.09.10
ResultBean<DictCommonVo> selectBykey = dictCommonApi.selectBykey(dto.getMeetingType(), "hylx");
if (selectBykey.getData() != null) {
dto.setTitle(selectBykey.getData().getDictValue() + dto.getFileNum());
} else {
dto.setTitle("会议纪要");
}
if (0 == service.updateBySid(dto.toMap(), sid))
return rb.setData("");
// 修改流程实例中的title和紧急紧急程度
dto.setOrderSid(t.getOrderSid());
if (wfservice.updateMfOrderFormInfo((FormDto) dto)) {
filesappendixservice.reUploadFiles(dto.getFilePathlist(),
t.getSid(), t.getClass().getSimpleName());
return rb.success().setData(sid);
}
return rb.setData("");
}
@Override
public ResultBean delete(String sid) {
FormHyjy t = service.fetchBySid(sid);
if (null == t)
return ResultBean.fireFail().setMsg("该记录不存在");
if (0 == service.deleteBySid(sid))
return ResultBean.fireFail();
filesappendixservice.deleteByLinkSid(sid);
return ResultBean.fireSuccess();
}
@Override
public ResultBean<FormHyjyVo> getVo(String sid) {
ResultBean<FormHyjyVo> resultBean = ResultBean.fireFail();
FormHyjy t = service.fetchBySid(sid);
if (null == t)
return resultBean;
FormHyjyVo vo = new FormHyjyVo();
vo.fromEntity(t);
List<FilesappendixVo> list_appendix = filesappendixservice
.queryBylinkSid(sid);
vo.setFilePathlist(list_appendix);
//2021.10.08 添加本地pdf的保存路径
if(t.getPdfFilePath()!=null && t.getPdfFilePath().length()>0){
String pdfPath=fileUploadComponent.getUrlPrefix().replace("upload", "oapdf");
vo.setLocalhostpdfFilePath(pdfPath+t.getPdfFilePath());
}else{
vo.setLocalhostpdfFilePath("");
}
return resultBean.success().setData(vo);
}
@Override
public ResultBean<Map<String, Object>> getMaxFileNum(MaxFileNumDto dto) {
ResultBean<Map<String, Object>> resultBean = ResultBean.fireFail();
Map<String, Object> map = service.getMaxFileNum1(dto);
if (map == null)
return resultBean.setData(null);
return resultBean.setData(map).success();
}
/**
* 获取会议纪要审批笺中意见
*/
@Override
public ResultBean<FormHyjyHeadPaperVo> getRedHeadPaper(String formSid) {
ResultBean<FormHyjyHeadPaperVo> resultBean = ResultBean.fireFail();
FormHyjy t = service.fetchBySid(formSid);
if (null == t) {
return resultBean;
}
FormHyjyHeadPaperVo vo = new FormHyjyHeadPaperVo();
vo.fromEntity(t);
vo.setIssueOpinions(workService.getOpinioRows(t.getOrderSid(), "会议主持人签发"));
vo.setOfficeOpinions(workService.getOpinioRows(t.getOrderSid(),
"承办部门负责人审核"));
return resultBean.success().setData(vo);
}
}

View File

@@ -0,0 +1,25 @@
package com.yxt.jlzx.oa.biz.formhyjy;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.jlzx.oa.api.form.FileNumVo;
import com.yxt.jlzx.oa.api.formhyjy.FormHyjy;
import com.yxt.jlzx.oa.api.formhyjy.FormHyjyQuery;
import com.yxt.jlzx.oa.api.formhyjy.FormHyjyVo;
@Mapper
public interface FormHyjyMapper extends BaseMapper<FormHyjy>{
//分页列表
IPage<FormHyjyVo> pageList(IPage<FormHyjyQuery> page,@Param(Constants.WRAPPER) Wrapper<FormHyjyVo> qw);
List<FormHyjyVo> list( @Param(Constants.WRAPPER) QueryWrapper<FormHyjyVo> qw);
List<FileNumVo> getMaxFileNum(@Param("params") Map<String, Object> map);
}

View File

@@ -0,0 +1,26 @@
<?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.yxt.jlzx.oa.biz.formhyjy.FormHyjyMapper">
<select id="pageList" resultType="com.yxt.jlzx.oa.api.formhyjy.FormHyjyVo">
select * from form_hyjy
${ew.customSqlSegment}
</select>
<select id="list" resultType="com.yxt.jlzx.oa.api.formhyjy.FormHyjyVo">
select * from form_hyjy
${ew.customSqlSegment}
</select>
<!-- <select id="getMaxFileNum" resultType="com.yxt.jlzx.oa.api.form.FileNumVo">
SELECT
(SELECT fileNum FROM form_hyjy WHERE id IN( SELECT MAX(id) FROM `form_hyjy` WHERE meetingType=#{params.hyType} and createTime LIKE concat("%",#{params.str1},"%")) )filenum
FROM form_hyjy f LIMIT 1
</select> -->
<select id="getMaxFileNum" resultType="com.yxt.jlzx.oa.api.form.FileNumVo">
SELECT
fileNum
FROM form_hyjy
where
meetingType=#{params.hyType} and createTime LIKE concat("%",#{params.str1},"%")
</select>
</mapper>

View File

@@ -0,0 +1,238 @@
package com.yxt.jlzx.oa.biz.formhyjy;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.jlzx.oa.api.form.FileNumVo;
import com.yxt.jlzx.oa.api.form.FormSelectLinkDto;
import com.yxt.jlzx.oa.api.formhyjy.FormHyjy;
import com.yxt.jlzx.oa.api.formhyjy.FormHyjyQuery;
import com.yxt.jlzx.oa.api.formhyjy.FormHyjyVo;
import com.yxt.jlzx.oa.api.formhyjy.MaxFileNumDto;
import com.yxt.jlzx.oa.api.index.AppDailyDto;
import com.yxt.jlzx.oa.api.index.AppDailyVo;
import com.yxt.jlzx.oa.biz.form.IFormService;
import com.yxt.jlzx.system.api.dictcommon.DictCommonApi;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.*;
@Service("baef623c-3e45-494f-bc95-c3231d8b1f67")
public class FormHyjyService extends MybatisBaseService<FormHyjyMapper, FormHyjy> implements IFormService {
@Autowired
private DictCommonApi dictCommonApi;
// 分页列表
public IPage<FormHyjyVo> pageList(PagerQuery<FormHyjyQuery> pagerQuery) {
// mybits所用的分页对对象
IPage<FormHyjyQuery> page = PagerUtil.queryToPage(pagerQuery);
// mybits所用的查询条件封装类
QueryWrapper<FormHyjyVo> qw = buildQueryWrapper(pagerQuery.getParams());
return baseMapper.pageList(page, qw);
}
// 不分页列表
public List<FormHyjyVo> list(FormHyjyQuery pagerQuery) {
// mybits所用的查询条件封装类
QueryWrapper<FormHyjyVo> qw = buildQueryWrapper(pagerQuery);
return baseMapper.list(qw);
}
/**
* 解析和组装查询条件封装在qw中,虚方法,需要在子类中定义具体实现
*
* @param pagerQuery
* @return
*/
private QueryWrapper<FormHyjyVo> buildQueryWrapper(FormHyjyQuery pagerQuery) {
QueryWrapper<FormHyjyVo> qw = new QueryWrapper<FormHyjyVo>();
if (pagerQuery != null) {
if (org.apache.commons.lang3.StringUtils.isNotBlank(pagerQuery
.getCreateDeptSid()))
qw.eq("createDeptSid", pagerQuery.getCreateDeptSid());
if (org.apache.commons.lang3.StringUtils.isNotBlank(pagerQuery
.getProcessSid()))
qw.eq("processSid", pagerQuery.getProcessSid());
if (null != pagerQuery.getMeetingType() && org.apache.commons.lang3.StringUtils.isNotBlank(pagerQuery
.getMeetingType()))
qw.eq("meetingType", pagerQuery.getMeetingType());
/*
if (null!=pagerQuery.getEndDay() && org.apache.commons.lang3.StringUtils.isNotBlank(pagerQuery
.getEndDay().toString()))
qw.lt("endDay", pagerQuery.getEndDay());
*/
if (org.apache.commons.lang3.StringUtils.isNotBlank(pagerQuery.getCreaterName()))
qw.eq("createrName", pagerQuery.getCreaterName());
qw.orderByDesc("createTime");
}
return qw;
}
/**
* 获取动态表单
*
* @param sid
* @return
*/
public Map<String, Object> getFormItemsVo(String sid) {
FormHyjy t = fetchBySid(sid);
if (null == t)
return null;
FormHyjyVo vo = new FormHyjyVo();
vo.fromEntity(t);
return vo.toFormItemsMap();
}
@Override
public Map<String, Object> getMaxFileNum(com.yxt.jlzx.oa.api.form.MaxFileNumDto dto) {
// int i=0;
// SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
// Date date = new Date();
// String year=sdf.format(date);
//
// String str1=""+year+"〕第";
// Map<String,Object> map=new HashMap<String,Object>();
// map.put("str1", str1);
// FileNumVo vo=baseMapper.getMaxFileNum(map);
// String filenum1="";
// if(vo!=null) {
// filenum1=vo.getFilenum();
// if(StringUtils.isNoneBlank(filenum1)) {
// filenum1=filenum1.replace(str1, "");
// filenum1=filenum1.replace("号", "");
// try{
// i=Integer.parseInt(filenum1)+1;
// filenum1=str1+i+"号";
// }catch(NumberFormatException e){
// System.out.println("异常:\""+filenum1 + "\"不是数字/整数...");
// }
// }else {
// filenum1=str1+"1号";
// }
// }else {
// filenum1=str1+"1号";
// }
//
//
// map.clear();
// map.put("filenum1", filenum1);
Map<String, Object> map = new HashMap<String, Object>();
return map;
}
public Map<String, Object> getMaxFileNum1(MaxFileNumDto dto) {
Map<String, Object> map = new HashMap<String, Object>();
String filenum1 = "";
String formSid = dto.getFormSid();
String hyType = dto.getHyType();
String hyType1 = "";
if (StringUtils.isNotBlank(formSid)) {
FormHyjy formHyjy = fetchBySid(formSid);
hyType1 = formHyjy.getMeetingType();
filenum1 = formHyjy.getFileNum();
}
if (hyType1.equals(hyType)) {
map.put("filenum1", filenum1);
return map;
}
int i = 0;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
Date date = new Date();
String year = sdf.format(date);
String str1 = "" + year + "";
// String str1="第";
map.put("str1", year);
map.put("hyType", hyType);
List<FileNumVo> voList = baseMapper.getMaxFileNum(map);
if (voList != null && voList.size() > 0) {
List<Integer> filenumList = new ArrayList<Integer>();
for (int j = 0; voList.size() > j; j++) {
filenum1 = voList.get(j).getFilenum();
if (StringUtils.isNoneBlank(filenum1)) {
filenum1 = filenum1.replace(str1, "");
filenum1 = filenum1.replace("", "");
try {
i = Integer.parseInt(filenum1);
filenumList.add(i);//将查询的编号添加到list中在list中通过Collections.max(filenumList)方法获取最大一条
} catch (NumberFormatException e) {
System.out.println("异常:\"" + filenum1 + "\"不是数字/整数...");
}
}
}
if (filenumList.size() > 0) {
i = Collections.max(filenumList);//获取最大一条
i = i + 1;//最大一条+1
filenum1 = str1 + i + "";
} else {
filenum1 = str1 + "1号";
}
//
// filenum1=vo.getFilenum();
// if(StringUtils.isNoneBlank(filenum1)) {
// filenum1=filenum1.replace(str1, "");
// filenum1=filenum1.replace("号", "");
// try{
// i=Integer.parseInt(filenum1)+1;
// filenum1=str1+i+"号";
// }catch(NumberFormatException e){
// System.out.println("异常:\""+filenum1 + "\"不是数字/整数...");
// }
// }else {
// filenum1=str1+"1号";
// }
} else {
filenum1 = str1 + "1号";
}
map.clear();
map.put("filenum1", filenum1);
return map;
}
@Override
public AppDailyVo isSave(AppDailyDto appDailyDto) {
AppDailyVo appDailyVo = new AppDailyVo();
return appDailyVo;
}
@Override
public AppDailyVo update(AppDailyDto appDailyDto) throws Exception {
return null;
}
@Override
public Map<String, Object> getNewFormItemsVo() {
// TODO Auto-generated method stub
return null;
}
@Override
public Map<String, Object> getEditFormItemsVo(String formSid) {
// TODO Auto-generated method stub
return null;
}
@Override
public Map<String, Object> getLinkAge(FormSelectLinkDto dto) {
// TODO Auto-generated method stub
return null;
}
}

View File

@@ -0,0 +1,161 @@
package com.yxt.jlzx.oa.biz.formjournal;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.jlzx.oa.api.filesappendix.Filesappendix;
import com.yxt.jlzx.oa.api.filesappendix.FilesappendixVo;
import com.yxt.jlzx.oa.api.form.FormDto;
import com.yxt.jlzx.oa.api.form.FormResultVo;
import com.yxt.jlzx.oa.api.formjournal.FormJournal;
import com.yxt.jlzx.oa.api.formjournal.FormJournalApi;
import com.yxt.jlzx.oa.api.formjournal.FormJournalDto;
import com.yxt.jlzx.oa.api.formjournal.FormJournalQuery;
import com.yxt.jlzx.oa.api.formjournal.FormJournalVo;
import com.yxt.jlzx.oa.biz.filesappendix.FilesappendixService;
import com.yxt.jlzx.oa.biz.workflow.WorkFlowService;
import com.yxt.jlzx.system.api.user.UserApi;
import com.yxt.jlzx.system.api.user.UserInfoVo;
import com.yxt.workflow.api.task.WfTaskVo;
import io.swagger.annotations.Api;
/**
* @author hanweijia
* @date 2020/9/19
* @description
*/
@Controller
@RequestMapping("v1/formjournals")
@Api(tags = "刊物审批表单")
public class FormJournalApiImpl implements FormJournalApi{
@Autowired
private FormJournalService service;
@Autowired
private WorkFlowService wfservice;
@Autowired
private FilesappendixService filesappendixservice;
@Autowired
private FileUploadComponent fileUploadComponent;
@Autowired
private UserApi userApi;
@Override
public ResultBean<List<FormJournalVo>> list(FormJournalQuery query) {
ResultBean<List<FormJournalVo>> resultBean=ResultBean.fireFail();
List<FormJournalVo> list=service.list(query);
if(null==list)
return resultBean;
return resultBean.success().setData(list);
}
@Override
public ResultBean<PagerVo<FormJournalVo>> pageList(PagerQuery<FormJournalQuery> pagerQuery) {
ResultBean<PagerVo<FormJournalVo>> rb = ResultBean.fireFail();
IPage<FormJournalVo> page = service.pageList(pagerQuery);
//把Ipage转换为PageVo
PagerVo<FormJournalVo> pv_result = PagerUtil.pageToVo(page, null);
return rb.success().setData(pv_result);
}
@Override
public ResultBean<FormResultVo> save(FormJournalDto dto) {
ResultBean<FormResultVo> resultBean = ResultBean.fireFail();
FormResultVo formResultVo = new FormResultVo();
// 首次保存,二次修改
if (!dto.getFormSid().equals("")) {
if (update(dto, dto.getFormSid()).getSuccess())
return resultBean.success().setData(formResultVo);
else
return resultBean.setData(null);
}
FormJournal t=new FormJournal();
// 开始流程
dto.setFormSid(t.getSid());
WfTaskVo taskVo=wfservice.startProcess((FormDto) dto);
if(taskVo==null)
return resultBean.setData(null);
dto.fillEntity(t);
t.setOrderSid(taskVo.getOrderSid());
UserInfoVo userInfoVo = userApi.fetchUserInfoBysid(t.getCreateBySid()).getData();
if (null != userInfoVo)
t.setCreateOrgSid(userInfoVo.getOrganizationSid());
if (service.save(t)) {
filesappendixservice.uploadFiles(dto.getFilePathlist(), t.getSid(),
t.getClass().getSimpleName());
formResultVo.setFormSid(t.getSid());
formResultVo.setTaskSid(taskVo.getTaskSid());
return resultBean.success().setData(formResultVo);
}
return resultBean.setData(null);
}
@Override
public ResultBean<String> update(FormJournalDto dto, String sid){
ResultBean<String> rb = ResultBean.fireFail();
FormJournal t=service.fetchBySid(sid);
if (null == t)
return rb.setMsg("该记录不存在").setData("");
if (0 == service.updateBySid(dto.toMap(), sid))
return rb.setData("");
// 修改流程实例中的title和紧急紧急程度
dto.setOrderSid(t.getOrderSid());
if (wfservice.updateMfOrderFormInfo((FormDto) dto)) {
filesappendixservice.reUploadFiles(dto.getFilePathlist(),
t.getSid(), t.getClass().getSimpleName());
return rb.success().setData(sid);
}
return rb.setData("");
}
@Override
public ResultBean delete(String sid) {
FormJournal t=service.fetchBySid(sid);
if(null==t)
return ResultBean.fireFail().setMsg("该记录不存在");
if(0==service.deleteBySid(sid))
return ResultBean.fireFail();
filesappendixservice.deleteByLinkSid(sid);
return ResultBean.fireSuccess();
}
@Override
public ResultBean<FormJournalVo> getVo(String sid) {
ResultBean<FormJournalVo> resultBean=ResultBean.fireFail();
FormJournal t=service.fetchBySid(sid);
if(null==t)
return resultBean;
FormJournalVo vo=new FormJournalVo();
vo.fromEntity(t);
List<FilesappendixVo> list_appendix = filesappendixservice
.queryBylinkSid(sid);
vo.setFilePathlist(list_appendix);
//2021.10.08 添加本地pdf的保存路径 判断pdf的路径不能为空
if(t.getPdfFilePath()!=null && t.getPdfFilePath().length()>0){
String pdfPath=fileUploadComponent.getUrlPrefix().replace("upload", "oapdf");
vo.setLocalhostpdfFilePath(pdfPath+t.getPdfFilePath());
}else{
vo.setLocalhostpdfFilePath("");
}
return resultBean.success().setData(vo);
}
}

View File

@@ -0,0 +1,24 @@
package com.yxt.jlzx.oa.biz.formjournal;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.jlzx.oa.api.form.FileNumVo;
import com.yxt.jlzx.oa.api.formjournal.FormJournal;
import com.yxt.jlzx.oa.api.formjournal.FormJournalQuery;
import com.yxt.jlzx.oa.api.formjournal.FormJournalVo;
@Mapper
public interface FormJournalMapper extends BaseMapper<FormJournal>{
//分页列表
IPage<FormJournalVo> pageList(IPage<FormJournalQuery> page,@Param(Constants.WRAPPER) Wrapper<FormJournalVo> qw);
List<FormJournalVo> list(@Param(Constants.WRAPPER) QueryWrapper<FormJournalVo> qw);
FileNumVo getMaxFileNum(@Param("params") Map<String, Object> map);
}

View File

@@ -0,0 +1,29 @@
<?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.yxt.jlzx.oa.biz.formjournal.FormJournalMapper">
<select id="pageList" resultType="com.yxt.jlzx.oa.api.formjournal.FormJournalVo">
select fj.*,fj.sid formSid,t.sid taskSid,
p.instanceUrl2,
p.instanceUrl3 from form_journal fj
LEFT JOIN workflow.wf_order o ON o.sid = fj.orderSid
LEFT JOIN workflow.wf_task t ON t.orderSid = o.sid
LEFT JOIN workflow.wf_process p ON t.processSid = p.sid
${ew.customSqlSegment}
</select>
<select id="list" resultType="com.yxt.jlzx.oa.api.formjournal.FormJournalVo">
select fj.*,fj.sid formSid,
t.sid taskSid,
p.instanceUrl2,
p.instanceUrl3
from form_journal fj
LEFT JOIN workflow.wf_order o ON o.sid = fj.orderSid
LEFT JOIN workflow.wf_task t ON t.orderSid = o.sid
LEFT JOIN workflow.wf_process p ON t.processSid = p.sid
${ew.customSqlSegment}
</select>
<select id="getMaxFileNum" resultType="com.yxt.jlzx.oa.api.form.FileNumVo">
SELECT
(SELECT fileNum FROM form_journal WHERE id IN( SELECT MAX(id) FROM `form_journal` WHERE fileNum LIKE concat("%",#{params.str1},"%")))filenum
FROM form_journal f LIMIT 1
</select>
</mapper>

View File

@@ -0,0 +1,158 @@
package com.yxt.jlzx.oa.biz.formjournal;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.yxt.jlzx.oa.api.index.AppDailyDto;
import com.yxt.jlzx.oa.api.index.AppDailyVo;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.jlzx.oa.api.form.FileNumVo;
import com.yxt.jlzx.oa.api.form.FormSelectLinkDto;
import com.yxt.jlzx.oa.api.formjournal.FormJournal;
import com.yxt.jlzx.oa.api.formjournal.FormJournalQuery;
import com.yxt.jlzx.oa.api.formjournal.FormJournalVo;
import com.yxt.jlzx.oa.biz.form.IFormService;
@Service("71800412-6488-4453-8034-27bd824337de")
public class FormJournalService extends MybatisBaseService<FormJournalMapper, FormJournal> implements IFormService{
// 分页列表
public IPage<FormJournalVo> pageList(PagerQuery<FormJournalQuery> pagerQuery) {
//mybits所用的分页对对象
IPage<FormJournalQuery> page = PagerUtil.queryToPage(pagerQuery);
//mybits所用的查询条件封装类
QueryWrapper<FormJournalVo> qw = buildQueryWrapper(pagerQuery.getParams());
return baseMapper.pageList(page, qw);
}
// 不分页列表
public List<FormJournalVo> list(FormJournalQuery pagerQuery) {
// mybits所用的查询条件封装类
QueryWrapper<FormJournalVo> qw = buildQueryWrapper(pagerQuery);
return baseMapper.list(qw);
}
/**
* 解析和组装查询条件封装在qw中,虚方法,需要在子类中定义具体实现
* @param pagerQuery
* @return
*/
private QueryWrapper<FormJournalVo> buildQueryWrapper(FormJournalQuery pagerQuery)
{
QueryWrapper<FormJournalVo> qw = new QueryWrapper<FormJournalVo>();
if (pagerQuery != null) {
if (org.apache.commons.lang3.StringUtils.isNotBlank(pagerQuery
.getCreateDeptSid()))
qw.eq("createDeptSid", pagerQuery.getCreateDeptSid());
if (org.apache.commons.lang3.StringUtils.isNotBlank(pagerQuery
.getProcessSid()))
qw.eq("processSid", pagerQuery.getProcessSid());
if (org.apache.commons.lang3.StringUtils.isNotBlank(pagerQuery
.getProcessSid()))
qw.eq("createOrgSid", pagerQuery.getCreateOrgSid());
qw.orderByDesc("createTime");
}
return qw;
}
/**
* 获取动态表单
* @param sid
* @return
*/
public Map<String,Object> getFormItemsVo(String sid)
{
FormJournal t=fetchBySid(sid);
if(null==t)
return null;
FormJournalVo vo=new FormJournalVo();
vo.fromEntity(t);
return vo.toFormItemsMap();
}
@Override
public Map<String, Object> getMaxFileNum(com.yxt.jlzx.oa.api.form.MaxFileNumDto dto) {
int i=0;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
Date date = new Date();
String year=sdf.format(date);
String str1=year+"年第";
Map<String,Object> map=new HashMap<String,Object>();
map.put("str1", str1);
FileNumVo vo=baseMapper.getMaxFileNum(map);
String filenum1="";
if(vo!=null) {
filenum1=vo.getFilenum();
if(StringUtils.isNoneBlank(filenum1)) {
filenum1=filenum1.replace(str1, "");
filenum1=filenum1.replace("", "");
try{
i=Integer.parseInt(filenum1)+1;
filenum1=str1+i+"";
}catch(NumberFormatException e){
System.out.println("异常:\""+filenum1 + "\"不是数字/整数...");
}
}else {
filenum1=str1+"1期";
}
}else {
filenum1=str1+"1期";
}
map.clear();
map.put("filenum1", filenum1);
return map;
}
@Override
public AppDailyVo isSave(AppDailyDto appDailyDto) {
AppDailyVo appDailyVo = new AppDailyVo();
return appDailyVo;
}
@Override
public AppDailyVo update(AppDailyDto appDailyDto) throws Exception {
return null;
}
@Override
public Map<String, Object> getNewFormItemsVo() {
// TODO Auto-generated method stub
return null;
}
@Override
public Map<String, Object> getEditFormItemsVo(String formSid) {
// TODO Auto-generated method stub
return null;
}
@Override
public Map<String, Object> getLinkAge(FormSelectLinkDto dto) {
// TODO Auto-generated method stub
return null;
}
}

View File

@@ -0,0 +1,182 @@
package com.yxt.jlzx.oa.biz.formjsw;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.jlzx.oa.api.filesappendix.FilesappendixVo;
import com.yxt.jlzx.oa.api.form.FormDto;
import com.yxt.jlzx.oa.api.form.FormResultVo;
import com.yxt.jlzx.oa.api.formjsw.*;
import com.yxt.jlzx.oa.biz.filesappendix.FilesappendixService;
import com.yxt.jlzx.oa.biz.work.WorkService;
import com.yxt.jlzx.oa.biz.workflow.WorkFlowService;
import com.yxt.jlzx.system.api.user.UserApi;
import com.yxt.jlzx.system.api.user.UserInfoVo;
import com.yxt.workflow.api.task.WfTaskVo;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.List;
/**
* @author yxt_mtl
* @date 2020/9/29 13:30
* @description 角色信息
*/
@Controller
@RequestMapping("v1/formjsws")
@Api(tags = "收文表单")
public class FormJswApiImpl implements FormJswApi {
@Autowired
private FormJswService service;
@Autowired
private WorkFlowService wfservice;
@Autowired
private FilesappendixService filesappendixservice;
@Autowired
private WorkService workService;
@Autowired
private UserApi userApi;
//2021.10.08
@Autowired
private FileUploadComponent fileUploadComponent;
@Override
public ResultBean<List<FormJswVo>> list(FormJswQuery query) {
ResultBean<List<FormJswVo>> resultBean = ResultBean.fireFail();
List<FormJswVo> list = service.list(query);
if (null == list)
return resultBean;
return resultBean.success().setData(list);
}
@Override
public ResultBean<PagerVo<FormJswVo>> pageList(
PagerQuery<FormJswQuery> pagerQuery) {
ResultBean<PagerVo<FormJswVo>> rb = ResultBean.fireFail();
IPage<FormJswVo> page = service.pageList(pagerQuery);
// 把Ipage转换为PageVo
PagerVo<FormJswVo> pv_result = PagerUtil.pageToVo(page, null);
return rb.success().setData(pv_result);
}
@Override
public ResultBean<FormResultVo> save(FormJswDto dto) {
ResultBean<FormResultVo> resultBean = ResultBean.fireFail();
FormResultVo formResultVo = new FormResultVo();
// 首次保存,二次修改
if (!dto.getFormSid().equals("")) {
if (update(dto, dto.getFormSid()).getSuccess())
return resultBean.success().setData(formResultVo);
else
return resultBean.setData(null);
}
FormJsw t = new FormJsw();
// 开始流程
dto.setFormSid(t.getSid());
WfTaskVo taskVo = wfservice.startProcess((FormDto) dto);
if (taskVo == null)
return resultBean.setData(null);
dto.fillEntity(t);
t.setOrderSid(taskVo.getOrderSid());
UserInfoVo userInfoVo = userApi.fetchUserInfoBysid(t.getCreateBySid()).getData();
if (null != userInfoVo)
t.setCreateOrgSid(userInfoVo.getOrganizationSid());
if (service.save(t)) {
filesappendixservice.uploadFiles(dto.getFilePathlist(), t.getSid(),
t.getClass().getSimpleName());
formResultVo.setFormSid(t.getSid());
formResultVo.setTaskSid(taskVo.getTaskSid());
return resultBean.success().setData(formResultVo);
}
return resultBean.setData(null);
}
@Override
public ResultBean<String> update(FormJswDto dto, String sid) {
ResultBean<String> rb = ResultBean.fireFail();
FormJsw t = service.fetchBySid(sid);
if (null == t)
return rb.setMsg("该记录不存在").setData("");
if (0 == service.updateBySid(dto.toMap(), sid))
return rb.setData("");
// 修改流程实例中的title和紧急紧急程度
dto.setOrderSid(t.getOrderSid());
if (wfservice.updateMfOrderFormInfo((FormDto) dto)) {
filesappendixservice.reUploadFiles(dto.getFilePathlist(),
t.getSid(), t.getClass().getSimpleName());
return rb.success().setData(sid);
}
return rb.setData("");
}
@Override
public ResultBean delete(String sid) {
FormJsw t = service.fetchBySid(sid);
if (null == t)
return ResultBean.fireFail().setMsg("该记录不存在");
if (0 == service.deleteBySid(sid))
return ResultBean.fireFail();
filesappendixservice.deleteByLinkSid(sid);
return ResultBean.fireSuccess();
}
@Override
public ResultBean<FormJswVo> getVo(String sid) {
ResultBean<FormJswVo> resultBean = ResultBean.fireFail();
FormJsw t = service.fetchBySid(sid);
if (null == t)
return resultBean;
FormJswVo vo = new FormJswVo();
vo.fromEntity(t);
List<FilesappendixVo> list_appendix = filesappendixservice
.queryBylinkSid(sid);
vo.setFilePathlist(list_appendix);
//2021.10.08 添加本地pdf的保存路径
if(t.getPdfFilePath()!=null && t.getPdfFilePath().length()>0){
String pdfPath=fileUploadComponent.getUrlPrefix().replace("upload", "oapdf");
vo.setLocalhostpdfFilePath(pdfPath+t.getPdfFilePath());
}else{
vo.setLocalhostpdfFilePath("");
}
return resultBean.success().setData(vo);
}
/**
* 获取收文审批笺
*/
@Override
public ResultBean<FormJswRedHeadPaperVo> getRedHeadPaper(String formSid) {
ResultBean<FormJswRedHeadPaperVo> resultBean = ResultBean.fireFail();
FormJsw t = service.fetchBySid(formSid);
if (null == t)
return resultBean;
FormJswRedHeadPaperVo vo = new FormJswRedHeadPaperVo();
vo.fromEntity(t);
// 办理结果
vo.setResult("");
// 分发情况
vo.setSendersInfo("");
vo.setLeaderOpinions(workService.getOpinioRows(t.getOrderSid(),
"单位领导批阅"));
vo.setNbOpinions(workService.getOpinioRows(t.getOrderSid(), "办公室主任批示"));
return resultBean.success().setData(vo);
}
}

View File

@@ -0,0 +1,24 @@
package com.yxt.jlzx.oa.biz.formjsw;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.jlzx.oa.api.form.FileNumVo;
import com.yxt.jlzx.oa.api.formjsw.FormJsw;
import com.yxt.jlzx.oa.api.formjsw.FormJswQuery;
import com.yxt.jlzx.oa.api.formjsw.FormJswVo;
@Mapper
public interface FormJswMapper extends BaseMapper<FormJsw>{
//分页列表
IPage<FormJswVo> pageList(IPage<FormJswQuery> page,@Param(Constants.WRAPPER) Wrapper<FormJswVo> qw);
List<FormJswVo> list(@Param(Constants.WRAPPER) QueryWrapper<FormJswVo> qw);
List<FileNumVo> getMaxFileNum(String ruleName);
}

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.yxt.jlzx.oa.biz.formjsw.FormJswMapper">
<select id="pageList" resultType="com.yxt.jlzx.oa.api.formjsw.FormJswVo">
select * from form_jsw
${ew.customSqlSegment}
</select>
<select id="list" resultType="com.yxt.jlzx.oa.api.formjsw.FormJswVo">
select * from form_jsw
${ew.customSqlSegment}
</select>
<!-- <select id="getMaxFileNum" resultType="com.yxt.jlzx.oa.api.form.FileNumVo">
SELECT
(SELECT fileNum FROM form_jsw WHERE id IN( SELECT MAX(id) FROM `form_jsw` WHERE fileNum LIKE concat("%",#{ruleName},"%")))filenum
FROM
form_jsw f LIMIT 1
</select> -->
<select id="getMaxFileNum" resultType="com.yxt.jlzx.oa.api.form.FileNumVo">
SELECT fileNum FROM form_jsw
where fileNum LIKE concat("%",#{ruleName},"%")
</select>
</mapper>

View File

@@ -0,0 +1,241 @@
package com.yxt.jlzx.oa.biz.formjsw;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.yxt.jlzx.oa.api.index.AppDailyDto;
import com.yxt.jlzx.oa.api.index.AppDailyVo;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.jlzx.jlcyry.api.datadictionary.DictCommonVo;
import com.yxt.jlzx.oa.api.form.FileNumVo;
import com.yxt.jlzx.oa.api.form.FormSelectLinkDto;
import com.yxt.jlzx.oa.api.formjournal.FormJournal;
import com.yxt.jlzx.oa.api.formjournal.FormJournalVo;
import com.yxt.jlzx.oa.api.formjsw.FormJsw;
import com.yxt.jlzx.oa.api.formjsw.FormJswQuery;
import com.yxt.jlzx.oa.api.formjsw.FormJswVo;
import com.yxt.jlzx.oa.biz.form.IFormService;
import com.yxt.jlzx.system.api.filenumrule.FilenumruleApi;
import com.yxt.jlzx.system.api.filenumrule.FilenumruleOneVo;
@Service("c8cc5917-a835-47ee-99aa-8ee34385fd82")
public class FormJswService extends MybatisBaseService<FormJswMapper, FormJsw> implements IFormService{
@Autowired
private FilenumruleApi filenumruleApi;
// 分页列表
public IPage<FormJswVo> pageList(PagerQuery<FormJswQuery> pagerQuery) {
// mybits所用的分页对对象
IPage<FormJswQuery> page = PagerUtil.queryToPage(pagerQuery);
// mybits所用的查询条件封装类
QueryWrapper<FormJswVo> qw = buildQueryWrapper(pagerQuery.getParams());
return baseMapper.pageList(page, qw);
}
// 不分页列表
public List<FormJswVo> list(FormJswQuery pagerQuery) {
// mybits所用的查询条件封装类
QueryWrapper<FormJswVo> qw = buildQueryWrapper(pagerQuery);
return baseMapper.list(qw);
}
/**
* 解析和组装查询条件封装在qw中,虚方法,需要在子类中定义具体实现
* @param pagerQuery
* @return
*/
private QueryWrapper<FormJswVo> buildQueryWrapper(FormJswQuery pagerQuery)
{
QueryWrapper<FormJswVo> qw = new QueryWrapper<FormJswVo>();
if (pagerQuery != null) {
if (org.apache.commons.lang3.StringUtils.isNotBlank(pagerQuery
.getCreateDeptSid()))
qw.eq("createDeptSid", pagerQuery.getCreateDeptSid());
if (org.apache.commons.lang3.StringUtils.isNotBlank(pagerQuery
.getProcessSid()))
qw.eq("processSid", pagerQuery.getProcessSid());
if (null!=pagerQuery.getReceiveTime() && org.apache.commons.lang3.StringUtils.isNotBlank(pagerQuery
.getReceiveTime()))
qw.eq("receiveTime", pagerQuery.getReceiveTime());
if (org.apache.commons.lang3.StringUtils.isNotBlank(pagerQuery.getCreaterName()))
qw.eq("createrName", pagerQuery.getCreaterName());
qw.orderByDesc("createTime");
}
return qw;
}
/**
* 获取动态表单
* @param sid
* @return
*/
public Map<String,Object> getFormItemsVo(String sid){
FormJsw t=fetchBySid(sid);
if(null==t)
return null;
FormJswVo vo=new FormJswVo();
vo.fromEntity(t);
return vo.toFormItemsMap();
}
@Override
public Map<String, Object> getMaxFileNum(com.yxt.jlzx.oa.api.form.MaxFileNumDto dto) {
String processSid=dto.getProcessSid();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
Date date = new Date();
String year=sdf.format(date);
ResultBean<List<FilenumruleOneVo>> bean = filenumruleApi.getVoByProcessSid(processSid);
List<FilenumruleOneVo> list=bean.getData();
Map<String,Object> map=new HashMap<String,Object>();
String filenum="";
String ruleName=""+year+"";
String startNum="";
if(list!=null&&list.size()>0) {
for (int i = 0; i< list.size();i++) {
startNum=list.get(i).getStartNumber();
List<FileNumVo> voList=baseMapper.getMaxFileNum(ruleName);//通过编号规则模糊查询数据库中数据
List<Integer> filenumList=new ArrayList<Integer>();
if(voList!=null&&voList.size()>0) {//遍历这些数据查询数据最中大的一条在最大一条数据中加1
for(int s=0;s<voList.size();s++) {
filenum=voList.get(s).getFilenum();
if(StringUtils.isNoneBlank(filenum)) {
filenum=filenum.replace(ruleName, "");
filenum=filenum.replace("", "");
try{
int j=Integer.parseInt(filenum);
filenumList.add(j);//将查询的编号添加到list中在list中通过Collections.max(filenumList)方法获取最大一条
}catch(NumberFormatException e){
System.out.println("异常:\""+filenum + "\"不是数字/整数...");
}
}
}
int j= Collections.max(filenumList);//获取最大一条
j=j+1;//最大一条+1
filenum=ruleName+j+"";
}else {
if((startNum).equals("")) {
filenum=ruleName+"1号";
}else {
try{
int j=Integer.parseInt(startNum);
filenum=ruleName+j+"";
}catch(NumberFormatException e){
System.out.println("异常:\""+filenum + "\"不是数字/整数...");
}
}
}
map.put("filenum"+(i+1), filenum);
}
}
return map;
}
// @Override
// public Map<String, Object> getMaxFileNum(String processSid) {
// SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
// Date date = new Date();
// String year=sdf.format(date);
// ResultBean<List<FilenumruleOneVo>> bean = filenumruleApi.getVoByProcessSid(processSid);//查询编号规则都有哪些
// List<FilenumruleOneVo> list=bean.getData();
// Map<String,Object> map=new HashMap<String,Object>();
// String filenum="";
// List<DictCommonVo> list1= new ArrayList<DictCommonVo>();
// if(list!=null&&list.size()>0) {//遍历编号规则,查询数据库中编号规则
// for (int i = 0; i< list.size();i++) {
// String ruleName=list.get(i).getRuleName();
// if(StringUtils.isNotBlank(ruleName)) {
// ruleName=ruleName+""+year+"";
// List<FileNumVo> voList=baseMapper.getMaxFileNum(ruleName);//通过编号规则模糊查询数据库中数据
// List<Integer> filenumList=new ArrayList<Integer>();
// if(voList!=null&&voList.size()>0) {//遍历这些数据查询数据最中大的一条在最大一条数据中加1
// for(int s=0;s<voList.size();s++) {
// filenum=voList.get(s).getFilenum();
// if(StringUtils.isNoneBlank(filenum)) {
// filenum=filenum.replace(ruleName, "");
// filenum=filenum.replace("号", "");
// try{
// int j=Integer.parseInt(filenum);
// filenumList.add(j);//将查询的编号添加到list中在list中通过Collections.max(filenumList)方法获取最大一条
// }catch(NumberFormatException e){
// System.out.println("异常:\""+filenum + "\"不是数字/整数...");
// }
// }
// }
// int j= Collections.max(filenumList);//获取最大一条
// j=j+1;//最大一条+1
// filenum=ruleName+j+"号";
//
// }else {
// filenum=ruleName+"1号";
// }
//
// // map.put("filenum"+(i+1), filenum);
// DictCommonVo vo1=new DictCommonVo();
// vo1.setDictValue(filenum);
// list1.add(vo1);
// }
//
// }
//
// }
//
//
// map.put("list",list1);
// return map;
// }
@Override
public AppDailyVo isSave(AppDailyDto appDailyDto) {
AppDailyVo appDailyVo = new AppDailyVo();
return appDailyVo;
}
@Override
public AppDailyVo update(AppDailyDto appDailyDto) throws Exception {
return null;
}
@Override
public Map<String, Object> getNewFormItemsVo() {
// TODO Auto-generated method stub
return null;
}
@Override
public Map<String, Object> getEditFormItemsVo(String formSid) {
// TODO Auto-generated method stub
return null;
}
@Override
public Map<String, Object> getLinkAge(FormSelectLinkDto dto) {
// TODO Auto-generated method stub
return null;
}
}

View File

@@ -0,0 +1,181 @@
package com.yxt.jlzx.oa.biz.formqkbg;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.jlzx.oa.api.filesappendix.FilesappendixVo;
import com.yxt.jlzx.oa.api.form.FormDto;
import com.yxt.jlzx.oa.api.form.FormResultVo;
import com.yxt.jlzx.oa.api.formqkbg.*;
import com.yxt.jlzx.oa.biz.filesappendix.FilesappendixService;
import com.yxt.jlzx.oa.biz.work.WorkService;
import com.yxt.jlzx.oa.biz.workflow.WorkFlowService;
import com.yxt.jlzx.system.api.user.UserApi;
import com.yxt.jlzx.system.api.user.UserInfoVo;
import com.yxt.workflow.api.task.WfTaskVo;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.List;
/**
* @author hanweijia
* @date 2020/9/19
* @description
*/
@Controller
@RequestMapping("v1/formqkbgs")
@Api(tags = "情况报告表单")
public class FormQkbgApiImpl implements FormQkbgApi {
@Autowired
private FormQkbgService service;
@Autowired
private WorkFlowService wfservice;
@Autowired
private FilesappendixService filesappendixservice;
@Autowired
private FileUploadComponent fileUploadComponent;
@Autowired
private UserApi userApi;
@Autowired
private WorkService workService;
@Override
public ResultBean<List<FormQkbgVo>> list(FormQkbgQuery query) {
ResultBean<List<FormQkbgVo>> resultBean = ResultBean.fireFail();
List<FormQkbgVo> list = service.list(query);
if (null == list) {
return resultBean;
}
return resultBean.success().setData(list);
}
@Override
public ResultBean<PagerVo<FormQkbgVo>> pageList(PagerQuery<FormQkbgQuery> pagerQuery) {
ResultBean<PagerVo<FormQkbgVo>> rb = ResultBean.fireFail();
IPage<FormQkbgVo> page = service.pageList(pagerQuery);
//把Ipage转换为PageVo
PagerVo<FormQkbgVo> pv_result = PagerUtil.pageToVo(page, null);
return rb.success().setData(pv_result);
}
@Override
public ResultBean<FormResultVo> save(FormQkbgDto dto) {
ResultBean<FormResultVo> resultBean = ResultBean.fireFail();
FormResultVo formResultVo = new FormResultVo();
// 首次保存,二次修改
if (!dto.getFormSid().equals("")) {
if (update(dto, dto.getFormSid()).getSuccess()) {
formResultVo.setFormSid(dto.getFormSid());
return resultBean.success().setData(formResultVo);
} else {
return resultBean.setData(null);
}
}
FormQkbg t = new FormQkbg();
// 开始流程
dto.setFormSid(t.getSid());
WfTaskVo taskVo = wfservice.startProcess((FormDto) dto);
if (taskVo == null) {
return resultBean.setData(null);
}
dto.fillEntity(t);
t.setOrderSid(taskVo.getOrderSid());
UserInfoVo userInfoVo = userApi.fetchUserInfoBysid(t.getCreateBySid()).getData();
if (null != userInfoVo) {
t.setCreateOrgSid(userInfoVo.getOrganizationSid());
}
if (service.save(t)) {
filesappendixservice.uploadFiles(dto.getFilePathlist(), t.getSid(),
t.getClass().getSimpleName());
formResultVo.setFormSid(t.getSid());
formResultVo.setTaskSid(taskVo.getTaskSid());
return resultBean.success().setData(formResultVo);
}
return resultBean.setData(null);
}
@Override
public ResultBean<String> update(FormQkbgDto dto, String sid) {
ResultBean<String> rb = ResultBean.fireFail();
FormQkbg t = service.fetchBySid(sid);
if (null == t)
return rb.setMsg("该记录不存在").setData("");
if (0 == service.updateBySid(dto.toMap(), sid)) {
return rb.setData("");
}
// 修改流程实例中的title和紧急紧急程度
dto.setOrderSid(t.getOrderSid());
if (wfservice.updateMfOrderFormInfo((FormDto) dto)) {
filesappendixservice.reUploadFiles(dto.getFilePathlist(),
t.getSid(), t.getClass().getSimpleName());
return rb.success().setData(sid);
}
return rb.setData("");
}
@Override
public ResultBean delete(String sid) {
FormQkbg t = service.fetchBySid(sid);
if (null == t) {
return ResultBean.fireFail().setMsg("该记录不存在");
}
if (0 == service.deleteBySid(sid)) {
return ResultBean.fireFail();
}
filesappendixservice.deleteByLinkSid(sid);
return ResultBean.fireSuccess();
}
@Override
public ResultBean<FormQkbgVo> getVo(String sid) {
ResultBean<FormQkbgVo> resultBean = ResultBean.fireFail();
FormQkbg t = service.fetchBySid(sid);
if (null == t) {
return resultBean;
}
FormQkbgVo vo = new FormQkbgVo();
vo.fromEntity(t);
List<FilesappendixVo> list_appendix = filesappendixservice
.queryBylinkSid(sid);
vo.setFilePathlist(list_appendix);
//2021.10.08 添加本地pdf的保存路径
if(t.getPdfFilePath()!=null && t.getPdfFilePath().length()>0){
String pdfPath=fileUploadComponent.getUrlPrefix().replace("upload", "oapdf");
vo.setLocalhostpdfFilePath(pdfPath+t.getPdfFilePath());
}else{
vo.setLocalhostpdfFilePath("");
}
return resultBean.success().setData(vo);
}
@Override
public ResultBean<FormQkbgHeadPaperVo> getRedHeadPaper(String formSid) {
ResultBean<FormQkbgHeadPaperVo> resultBean = ResultBean.fireFail();
FormQkbg t = service.fetchBySid(formSid);
if (null == t) {
return resultBean;
}
FormQkbgHeadPaperVo vo = new FormQkbgHeadPaperVo();
vo.fromEntity(t);
vo.setIssueOpinions(workService.getOpinioRows(t.getOrderSid(), "单位领导批示"));
vo.setDeptOpinions(workService.getOpinioRows(t.getOrderSid(), "部门负责人审核"));
return resultBean.success().setData(vo);
}
}

View File

@@ -0,0 +1,21 @@
package com.yxt.jlzx.oa.biz.formqkbg;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.jlzx.oa.api.formqkbg.FormQkbg;
import com.yxt.jlzx.oa.api.formqkbg.FormQkbgQuery;
import com.yxt.jlzx.oa.api.formqkbg.FormQkbgVo;
@Mapper
public interface FormQkbgMapper extends BaseMapper<FormQkbg>{
//分页列表
IPage<FormQkbgVo> pageList(IPage<FormQkbgQuery> page,@Param(Constants.WRAPPER) Wrapper<FormQkbgVo> qw);
List<FormQkbgVo> list(@Param(Constants.WRAPPER) QueryWrapper<FormQkbgVo> qw);
}

View File

@@ -0,0 +1,12 @@
<?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.yxt.jlzx.oa.biz.formqkbg.FormQkbgMapper">
<select id="pageList" resultType="com.yxt.jlzx.oa.api.formqkbg.FormQkbgVo">
select * from form_qkbg
${ew.customSqlSegment}
</select>
<select id="list" resultType="com.yxt.jlzx.oa.api.formqkbg.FormQkbgVo">
select * from form_qkbg
${ew.customSqlSegment}
</select>
</mapper>

View File

@@ -0,0 +1,120 @@
package com.yxt.jlzx.oa.biz.formqkbg;
import java.util.List;
import java.util.Map;
import com.yxt.jlzx.oa.api.index.AppDailyDto;
import com.yxt.jlzx.oa.api.index.AppDailyVo;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.jlzx.oa.api.form.FormSelectLinkDto;
import com.yxt.jlzx.oa.api.formqkbg.FormQkbg;
import com.yxt.jlzx.oa.api.formqkbg.FormQkbgQuery;
import com.yxt.jlzx.oa.api.formqkbg.FormQkbgVo;
import com.yxt.jlzx.oa.biz.form.IFormService;
@Service("000004")
public class FormQkbgService extends MybatisBaseService<FormQkbgMapper, FormQkbg> implements IFormService{
// 分页列表
public IPage<FormQkbgVo> pageList(PagerQuery<FormQkbgQuery> pagerQuery) {
// mybits所用的分页对对象
IPage<FormQkbgQuery> page = PagerUtil.queryToPage(pagerQuery);
// mybits所用的查询条件封装类
QueryWrapper<FormQkbgVo> qw = buildQueryWrapper(pagerQuery.getParams());
return baseMapper.pageList(page, qw);
}
// 不分页列表
public List<FormQkbgVo> list(FormQkbgQuery pagerQuery) {
// mybits所用的查询条件封装类
QueryWrapper<FormQkbgVo> qw = buildQueryWrapper(pagerQuery);
return baseMapper.list(qw);
}
/**
* 解析和组装查询条件封装在qw中,虚方法,需要在子类中定义具体实现
* @param pagerQuery
* @return
*/
private QueryWrapper<FormQkbgVo> buildQueryWrapper(FormQkbgQuery pagerQuery)
{
QueryWrapper<FormQkbgVo> qw = new QueryWrapper<FormQkbgVo>();
if (pagerQuery != null) {
if (org.apache.commons.lang3.StringUtils.isNotBlank(pagerQuery
.getCreateDeptSid()))
qw.eq("createDeptSid", pagerQuery.getCreateDeptSid());
if (org.apache.commons.lang3.StringUtils.isNotBlank(pagerQuery
.getProcessSid()))
qw.eq("processSid", pagerQuery.getProcessSid());
if (org.apache.commons.lang3.StringUtils.isNotBlank(pagerQuery.getCreaterName()))
qw.eq("createrName", pagerQuery.getCreaterName());
qw.orderByDesc("createTime");
}
return qw;
}
/**
* 获取动态表单
* @param sid
* @return
*/
public Map<String,Object> getFormItemsVo(String sid)
{
FormQkbg t=fetchBySid(sid);
if(null==t)
return null;
FormQkbgVo vo=new FormQkbgVo();
vo.fromEntity(t);
return vo.toFormItemsMap();
}
@Override
public Map<String, Object> getMaxFileNum(com.yxt.jlzx.oa.api.form.MaxFileNumDto dto) {
// TODO Auto-generated method stub
return null;
}
@Override
public AppDailyVo isSave(AppDailyDto appDailyDto) {
AppDailyVo appDailyVo = new AppDailyVo();
return appDailyVo;
}
@Override
public AppDailyVo update(AppDailyDto appDailyDto) throws Exception {
return null;
}
@Override
public Map<String, Object> getNewFormItemsVo() {
// TODO Auto-generated method stub
return null;
}
@Override
public Map<String, Object> getEditFormItemsVo(String formSid) {
// TODO Auto-generated method stub
return null;
}
@Override
public Map<String, Object> getLinkAge(FormSelectLinkDto dto) {
// TODO Auto-generated method stub
return null;
}
}

View File

@@ -0,0 +1,38 @@
package com.yxt.jlzx.oa.biz.formtzgg;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.jlzx.jlcyry.api.staffinfo.StaffUnitVo;
import com.yxt.jlzx.oa.api.formtzgg.AppFormTzgg.AppFormTzggQuery;
import com.yxt.jlzx.oa.api.formtzgg.AppFormTzgg.AppFormTzggVo;
import com.yxt.jlzx.oa.api.formtzgg.AppFormTzggApi;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* @author dimengzhe
* @date 2020/11/12 9:47
* @description
*/
@Controller
@RequestMapping("v1/appformtzggs")
@Api(tags = "app-通知公告")
public class AppFormTzggApiImpl implements AppFormTzggApi {
@Autowired
private FormTzggService formTzggService;
@Override
public ResultBean<PagerVo<AppFormTzggVo>> formTzggPageList(PagerQuery<AppFormTzggQuery> pagerQuery) {
ResultBean<PagerVo<AppFormTzggVo>> rb = ResultBean.fireFail();
PagerVo<AppFormTzggVo> pv = new PagerVo<>();
IPage<AppFormTzggVo> p2 = formTzggService.formTzggPageList(pagerQuery);
PagerVo<AppFormTzggVo> pv1 = PagerUtil.pageToVo(p2, pv);
return rb.success().setData(pv1);
}
}

View File

@@ -0,0 +1,166 @@
package com.yxt.jlzx.oa.biz.formtzgg;
import io.swagger.annotations.Api;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.jlzx.oa.api.filesappendix.Filesappendix;
import com.yxt.jlzx.oa.api.filesappendix.FilesappendixVo;
import com.yxt.jlzx.oa.api.form.FormDto;
import com.yxt.jlzx.oa.api.form.FormResultVo;
import com.yxt.jlzx.oa.api.formtzgg.FormTzgg;
import com.yxt.jlzx.oa.api.formtzgg.FormTzggApi;
import com.yxt.jlzx.oa.api.formtzgg.FormTzggDto;
import com.yxt.jlzx.oa.api.formtzgg.FormTzggQuery;
import com.yxt.jlzx.oa.api.formtzgg.FormTzggVo;
import com.yxt.jlzx.oa.biz.filesappendix.FilesappendixService;
import com.yxt.jlzx.oa.biz.workflow.WorkFlowService;
import com.yxt.jlzx.system.api.user.UserApi;
import com.yxt.jlzx.system.api.user.UserInfoVo;
import com.yxt.workflow.api.task.WfTaskVo;
/**
* @author yxt_mtl
* @date 2020/9/29 13:30
* @description 角色信息
*/
@Controller
@RequestMapping("v1/formtzggs")
@Api(tags = "通知公告表单")
public class FormTzggApiImpl implements FormTzggApi {
@Autowired
private FormTzggService service;
@Autowired
private WorkFlowService wfservice;
@Autowired
private FilesappendixService filesappendixservice;
@Autowired
private FileUploadComponent fileUploadComponent;
@Autowired
private UserApi userApi;
@Override
public ResultBean<List<FormTzggVo>> list(FormTzggQuery query) {
ResultBean<List<FormTzggVo>> resultBean = ResultBean.fireFail();
List<FormTzggVo> list = service.list(query);
if (null == list)
return resultBean;
return resultBean.success().setData(list);
}
@Override
public ResultBean<PagerVo<FormTzggVo>> pageList(
PagerQuery<FormTzggQuery> pagerQuery) {
ResultBean<PagerVo<FormTzggVo>> rb = ResultBean.fireFail();
UserInfoVo userInfoVo = userApi.fetchUserInfoBysid(pagerQuery.getParams().getCreateBySid()).getData();
if (userInfoVo!=null){
//判断是不是管理员是的话显示所有
if (userInfoVo.getIsAdmin()==1){
pagerQuery.getParams().setCreateBySid("");
}
}
IPage<FormTzggVo> page = service.pageList(pagerQuery);
// 把Ipage转换为PageVo
PagerVo<FormTzggVo> pv_result = PagerUtil.pageToVo(page, null);
return rb.success().setData(pv_result);
}
@Override
public ResultBean<FormResultVo> save(FormTzggDto dto) {
ResultBean<FormResultVo> resultBean=ResultBean.fireFail();
FormResultVo formResultVo = new FormResultVo();
// 首次保存,二次修改
if (!dto.getFormSid().equals("")) {
if (update(dto, dto.getFormSid()).getSuccess())
return resultBean.success().setData(formResultVo);
else
return resultBean.setData(null);
}
FormTzgg t = new FormTzgg();
// 开始流程
dto.setFormSid(t.getSid());
WfTaskVo taskVo = wfservice.startProcess((FormDto) dto);
if (taskVo == null)
return resultBean.setData(null);
dto.fillEntity(t);
t.setOrderSid(taskVo.getOrderSid());
UserInfoVo userInfoVo = userApi.fetchUserInfoBysid(t.getCreateBySid()).getData();
if (null != userInfoVo)
t.setCreateOrgSid(userInfoVo.getOrganizationSid());
if (service.save(t)) {
filesappendixservice.uploadFiles(dto.getFilePathlist(), t.getSid(),
t.getClass().getSimpleName());
formResultVo.setFormSid(t.getSid());
formResultVo.setTaskSid(taskVo.getTaskSid());
return resultBean.success().setData(formResultVo);
}
return resultBean.setData(null);
}
@Override
public ResultBean<String> update(FormTzggDto dto, String sid){
ResultBean<String> rb = ResultBean.fireFail();
FormTzgg t = service.fetchBySid(sid);
if (null == t)
return rb.setMsg("该记录不存在").setData("");
if (0 == service.updateBySid(dto.toMap(), sid))
return rb.setData("");
// 修改流程实例中的title和紧急紧急程度
dto.setOrderSid(t.getOrderSid());
if (wfservice.updateMfOrderFormInfo((FormDto) dto)) {
filesappendixservice.reUploadFiles(dto.getFilePathlist(),
t.getSid(), t.getClass().getSimpleName());
return rb.success().setData(sid);
}
return rb.setData("");
}
@Override
public ResultBean delete(String sid) {
FormTzgg t = service.fetchBySid(sid);
if (null == t)
return ResultBean.fireFail().setMsg("该记录不存在");
if (0 == service.deleteBySid(sid))
return ResultBean.fireFail();
filesappendixservice.deleteByLinkSid(sid);
return ResultBean.fireSuccess();
}
@Override
public ResultBean<FormTzggVo> getVo(String sid) {
ResultBean<FormTzggVo> resultBean = ResultBean.fireFail();
FormTzgg t = service.fetchBySid(sid);
if (null == t)
return resultBean;
FormTzggVo vo = new FormTzggVo();
vo.fromEntity(t);
List<FilesappendixVo> list_appendix = filesappendixservice
.queryBylinkSid(sid);
vo.setFilePathlist(list_appendix);
//2021.10.08 添加本地pdf的保存路径
if(t.getPdfFilePath()!=null && t.getPdfFilePath().length()>0){
String pdfPath=fileUploadComponent.getUrlPrefix().replace("upload", "oapdf");
vo.setLocalhostpdfFilePath(pdfPath+t.getPdfFilePath());
}else{
vo.setLocalhostpdfFilePath("");
}
return resultBean.success().setData(vo);
}
}

View File

@@ -0,0 +1,41 @@
package com.yxt.jlzx.oa.biz.formtzgg;
import java.util.List;
import java.util.Map;
import com.yxt.jlzx.jlcyry.api.staffinfo.StaffUnitVo;
import com.yxt.jlzx.oa.api.formtzgg.AppFormTzgg.AppFormTzggVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.jlzx.oa.api.form.FileNumVo;
import com.yxt.jlzx.oa.api.formtzgg.FormTzgg;
import com.yxt.jlzx.oa.api.formtzgg.FormTzggQuery;
import com.yxt.jlzx.oa.api.formtzgg.FormTzggVo;
@Mapper
public interface FormTzggMapper extends BaseMapper<FormTzgg> {
//分页列表
IPage<FormTzggVo> pageList(IPage<FormTzggQuery> page, @Param(Constants.WRAPPER) Wrapper<FormTzggVo> qw);
IPage<FormTzggVo> pageList1(IPage<FormTzggQuery> page, @Param(Constants.WRAPPER) Wrapper<FormTzggVo> qw);
List<FormTzggVo> list(@Param(Constants.WRAPPER) QueryWrapper<FormTzggVo> qw);
/**
* app通知公告分页列表
*
* @param page 分页
* @param qw 参数
* @return 通知公告分页列表
*/
public IPage<AppFormTzggVo> formTzggPageList(
IPage<?> page, @Param(Constants.WRAPPER) Wrapper<AppFormTzggVo> qw);
FileNumVo getMaxFileNum(String ruleName);
}

View File

@@ -0,0 +1,130 @@
<?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.yxt.jlzx.oa.biz.formtzgg.FormTzggMapper">
<select id="pageList" resultType="com.yxt.jlzx.oa.api.formtzgg.FormTzggVo">
SELECT fz.sid,
fz.title,
fz.sid formSid,
fz.createBySid,
fz.createrName,
fz.createDeptSid,
DATE_FORMAT(fz.createTime, '%Y-%m-%d %H:%m:%s') AS createTime,
fz.createDeptName,
fz.orderSid,
fz.processSid,
fz.filePath,
fz.fileNum,
fz.closingDate,
t.sid taskSid,
p.instanceUrl2,
p.instanceUrl3
FROM form_tzgg fz
LEFT JOIN workflow.wf_order o ON o.sid = fz.orderSid
LEFT JOIN workflow.wf_task t ON t.orderSid = o.sid
LEFT JOIN workflow.wf_process p ON t.processSid = p.sid
${ew.customSqlSegment}
</select>
<select id="pageList1" resultType="com.yxt.jlzx.oa.api.formtzgg.FormTzggVo">
SELECT a.*
FROM (SELECT fz.sid,
fz.title,
fz.sid formSid,
fz.createBySid,
fz.createrName,
fz.createDeptSid,
DATE_FORMAT(fz.createTime, '%Y-%m-%d %H:%m:%s') AS createTime,
fz.createDeptName,
fz.orderSid,
fz.processSid,
fz.filePath,
fz.fileNum,
fz.closingDate,
t.sid taskSid,
p.instanceUrl2,
p.instanceUrl3,
fz.createOrgSid,
t.taskType,
t.createBySid actorSid
FROM form_tzgg fz
LEFT JOIN workflow.wf_hist_order o ON o.sid = fz.orderSid
LEFT JOIN workflow.wf_task t ON t.orderSid = o.sid
LEFT JOIN workflow.wf_process p ON t.processSid = p.sid
UNION ALL
SELECT fz.sid,
fz.title,
fz.sid formSid,
fz.createBySid,
fz.createrName,
fz.createDeptSid,
DATE_FORMAT(fz.createTime, '%Y-%m-%d %H:%m:%s') AS createTime,
fz.createDeptName,
fz.orderSid,
fz.processSid,
fz.filePath,
fz.fileNum,
fz.closingDate,
t.sid taskSid,
p.instanceUrl2,
p.instanceUrl3,
fz.createOrgSid,
t.taskType,
t.createBySid actorSid
FROM form_tzgg fz
LEFT JOIN workflow.wf_hist_order o ON o.sid = fz.orderSid
LEFT JOIN workflow.wf_hist_task t ON t.orderSid = o.sid
LEFT JOIN workflow.wf_process p ON t.processSid = p.sid) a ${ew.customSqlSegment}
</select>
<select id="list" resultType="com.yxt.jlzx.oa.api.formtzgg.FormTzggVo">
SELECT fz.sid,
fz.sid formSid,
t.sid taskSid,
fz.title,
fz.createBySid,
fz.createrName,
fz.createDeptSid,
DATE_FORMAT(fz.createTime, '%Y-%m-%d %H:%m:%s') AS createTime,
fz.createDeptName,
fz.orderSid,
fz.processSid,
fz.filePath,
fz.fileNum,
fz.closingDate,
fz.sid formSid,
t.sid taskSid,
p.instanceUrl2,
p.instanceUrl3
FROM form_tzgg fz
LEFT JOIN workflow.wf_order o ON o.sid = fz.orderSid
LEFT JOIN workflow.wf_task t ON t.orderSid = o.sid
LEFT JOIN workflow.wf_process p ON t.processSid = p.sid
${ew.customSqlSegment}
</select>
<select id="formTzggPageList" resultType="com.yxt.jlzx.oa.api.formtzgg.AppFormTzgg.AppFormTzggVo">
SELECT ft.title,
ft.createDeptName writeDepartment,
ft.createrName writeUser,
ft.closingDate invalidTime,
ft.sid,
ft.sid formSid,
ft.orderSid,
t.sid taskSid,
ft.processSid
FROM form_tzgg ft
LEFT JOIN workflow.wf_order o ON o.sid = ft.orderSid
LEFT JOIN workflow.wf_task t ON t.orderSid = o.sid
${ew.customSqlSegment}
</select>
<select id="getMaxFileNum" resultType="com.yxt.jlzx.oa.api.form.FileNumVo">
SELECT (SELECT fileNum
FROM form_tzgg
WHERE id IN (SELECT MAX(id) FROM `form_tzgg` WHERE fileNum LIKE concat("%", #{ruleName}, "%"))) filenum
FROM form_tzgg f
LIMIT 1
</select>
</mapper>

View File

@@ -0,0 +1,245 @@
package com.yxt.jlzx.oa.biz.formtzgg;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.jlzx.oa.api.form.FileNumVo;
import com.yxt.jlzx.oa.api.form.FormSelectLinkDto;
import com.yxt.jlzx.oa.api.formtzgg.AppFormTzgg.AppFormTzggQuery;
import com.yxt.jlzx.oa.api.formtzgg.AppFormTzgg.AppFormTzggVo;
import com.yxt.jlzx.oa.api.formtzgg.FormTzgg;
import com.yxt.jlzx.oa.api.formtzgg.FormTzggQuery;
import com.yxt.jlzx.oa.api.formtzgg.FormTzggVo;
import com.yxt.jlzx.oa.api.index.AppDailyDto;
import com.yxt.jlzx.oa.api.index.AppDailyVo;
import com.yxt.jlzx.oa.biz.form.IFormService;
import com.yxt.jlzx.system.api.filenumrule.FilenumruleApi;
import com.yxt.jlzx.system.api.filenumrule.FilenumruleOneVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
//service的别名为流程sid
@Service("000001")
public class FormTzggService extends MybatisBaseService<FormTzggMapper, FormTzgg> implements IFormService {
@Autowired
private FilenumruleApi filenumruleApi;
// 分页列表
public IPage<FormTzggVo> pageList(PagerQuery<FormTzggQuery> pagerQuery) {
// mybits所用的分页对对象
IPage<FormTzggQuery> page = PagerUtil.queryToPage(pagerQuery);
// mybits所用的查询条件封装类
QueryWrapper<FormTzggVo> qw = buildQueryWrapper(pagerQuery.getParams());
return baseMapper.pageList(page, qw);
}
public IPage<FormTzggVo> pageList1(PagerQuery<FormTzggQuery> pagerQuery) {
// mybits所用的分页对对象
IPage<FormTzggQuery> page = PagerUtil.queryToPage(pagerQuery);
// mybits所用的查询条件封装类
QueryWrapper<FormTzggVo> qw = buildQueryWrapper1(pagerQuery.getParams());
return baseMapper.pageList1(page, qw);
}
private QueryWrapper<FormTzggVo> buildQueryWrapper1(FormTzggQuery pagerQuery) {
QueryWrapper<FormTzggVo> qw = new QueryWrapper<FormTzggVo>();
if (pagerQuery != null) {
if (StringUtils.isNotBlank(pagerQuery.getCreateBySid())) {
qw.eq("a.createBySid", pagerQuery.getCreateBySid());
}
if (StringUtils.isNotBlank(pagerQuery.getCreateDeptSid())) {
qw.eq("a.createDeptSid", pagerQuery.getCreateDeptSid());
}
if (StringUtils.isNotBlank(pagerQuery.getProcessSid())) {
qw.eq("a.processSid", pagerQuery.getProcessSid());
}
if (StringUtils.isNotBlank(pagerQuery.getTitle())) {
qw.like("a.title", pagerQuery.getTitle());
}
if (null != pagerQuery.getClosingDate() && StringUtils.isNotBlank(pagerQuery.getClosingDate())) {
qw.gt("a.closingDate", pagerQuery.getClosingDate());
}
if (org.apache.commons.lang3.StringUtils.isNotBlank(pagerQuery.getCreaterName())) {
qw.eq("a.createrName", pagerQuery.getCreaterName());
}
if (StringUtils.isNotBlank(pagerQuery.getCreateOrgSid())) {
qw.eq("a.createOrgSid", pagerQuery.getCreateOrgSid());
} else {
qw.eq("a.createOrgSid", "-1");
}
if (org.apache.commons.lang3.StringUtils.isNotBlank(pagerQuery.getUserSid())) {
qw.eq("a.actorSid", pagerQuery.getUserSid());
}
qw.groupBy("a.sid");
qw.eq("a.taskType", 1);
qw.orderByDesc("a.createTime");
}
return qw;
}
// 不分页列表
public List<FormTzggVo> list(FormTzggQuery pagerQuery) {
// mybits所用的查询条件封装类
QueryWrapper<FormTzggVo> qw = buildQueryWrapper(pagerQuery);
return baseMapper.list(qw);
}
/**
* 解析和组装查询条件封装在qw中,虚方法,需要在子类中定义具体实现
*
* @param pagerQuery
* @return
*/
private QueryWrapper<FormTzggVo> buildQueryWrapper(FormTzggQuery pagerQuery) {
QueryWrapper<FormTzggVo> qw = new QueryWrapper<FormTzggVo>();
if (pagerQuery != null) {
if (StringUtils.isNotBlank(pagerQuery.getCreateBySid())) {
qw.eq("fz.createBySid", pagerQuery.getCreateBySid());
}
if (StringUtils.isNotBlank(pagerQuery.getCreateDeptSid())) {
qw.eq("fz.createDeptSid", pagerQuery.getCreateDeptSid());
}
if (StringUtils.isNotBlank(pagerQuery.getProcessSid())) {
qw.eq("fz.processSid", pagerQuery.getProcessSid());
}
if (StringUtils.isNotBlank(pagerQuery.getTitle())) {
qw.like("fz.title", pagerQuery.getTitle());
}
if (null != pagerQuery.getClosingDate() && StringUtils.isNotBlank(pagerQuery.getClosingDate())) {
qw.gt("fz.closingDate", pagerQuery.getClosingDate());
}
/* if (org.apache.commons.lang3.StringUtils.isNotBlank(pagerQuery.getCreaterName())) {
qw.eq("createrName", pagerQuery.getCreaterName());
}*/
if (StringUtils.isNotBlank(pagerQuery.getCreateOrgSid())) {
qw.eq("fz.createOrgSid", pagerQuery.getCreateOrgSid());
} else {
qw.eq("fz.createOrgSid", "-1");
}
qw.orderByDesc("fz.createTime");
}
return qw;
}
/**
* 获取动态表单
*
* @param sid
* @return
*/
@Override
public Map<String, Object> getFormItemsVo(String sid) {
FormTzgg t = fetchBySid(sid);
if (null == t) {
return null;
}
FormTzggVo vo = new FormTzggVo();
vo.fromEntity(t);
return vo.toFormItemsMap();
}
/**
* app通知公告分页列表
*
* @param pagerQuery 参数
* @return
*/
public IPage<AppFormTzggVo> formTzggPageList(PagerQuery<AppFormTzggQuery> pagerQuery) {
IPage<AppFormTzggQuery> page = PagerUtil.queryToPage(pagerQuery);
AppFormTzggQuery params = pagerQuery.getParams();
QueryWrapper<AppFormTzggVo> qw = new QueryWrapper<>();
if (params != null) {
// String userSid = params.getUserSid();
// if (StringUtils.isNotBlank(userSid)) {
// qw.eq("ft.createBySid", userSid);
// }
}
qw.orderByDesc("ft.createTime");
return baseMapper.formTzggPageList(page, qw);
}
@Override
public Map<String, Object> getMaxFileNum(com.yxt.jlzx.oa.api.form.MaxFileNumDto dto) {
String processSid = dto.getProcessSid();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
Date date = new Date();
String year = sdf.format(date);
ResultBean<List<FilenumruleOneVo>> bean = filenumruleApi.getVoByProcessSid(processSid);
List<FilenumruleOneVo> list = bean.getData();
Map<String, Object> map = new HashMap<String, Object>();
String filenum = "";
if (list != null && list.size() > 0) {
for (int i = 0; i < list.size(); i++) {
String ruleName = list.get(i).getRuleName();
if (StringUtils.isNotBlank(ruleName)) {
ruleName = ruleName + "" + year + "";
FileNumVo vo = baseMapper.getMaxFileNum(ruleName);
if (vo != null) {
filenum = vo.getFilenum();
if (StringUtils.isNoneBlank(filenum)) {
filenum = filenum.replace(ruleName, "");
filenum = filenum.replace("", "");
try {
int j = Integer.parseInt(filenum) + 1;
filenum = ruleName + j + "";
} catch (NumberFormatException e) {
System.out.println("异常:\"" + filenum + "\"不是数字/整数...");
}
} else {
filenum = ruleName + "1号";
}
} else {
filenum = ruleName + "1号";
}
map.put("filenum" + (i + 1), filenum);
}
}
}
return map;
}
@Override
public AppDailyVo isSave(AppDailyDto appDailyDto) {
AppDailyVo appDailyVo = new AppDailyVo();
return appDailyVo;
}
@Override
public AppDailyVo update(AppDailyDto appDailyDto) throws Exception {
return null;
}
@Override
public Map<String, Object> getNewFormItemsVo() {
// TODO Auto-generated method stub
return null;
}
@Override
public Map<String, Object> getEditFormItemsVo(String formSid) {
// TODO Auto-generated method stub
return null;
}
@Override
public Map<String, Object> getLinkAge(FormSelectLinkDto dto) {
// TODO Auto-generated method stub
return null;
}
}

View File

@@ -0,0 +1,167 @@
package com.yxt.jlzx.oa.biz.formweixin;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.jlzx.oa.api.filesappendix.Filesappendix;
import com.yxt.jlzx.oa.api.filesappendix.FilesappendixVo;
import com.yxt.jlzx.oa.api.form.FormDto;
import com.yxt.jlzx.oa.api.form.FormResultVo;
import com.yxt.jlzx.oa.api.formweixin.FormWeixin;
import com.yxt.jlzx.oa.api.formweixin.FormWeixinApi;
import com.yxt.jlzx.oa.api.formweixin.FormWeixinDto;
import com.yxt.jlzx.oa.api.formweixin.FormWeixinQuery;
import com.yxt.jlzx.oa.api.formweixin.FormWeixinVo;
import com.yxt.jlzx.oa.biz.filesappendix.FilesappendixService;
import com.yxt.jlzx.oa.biz.workflow.WorkFlowService;
import com.yxt.jlzx.system.api.user.UserApi;
import com.yxt.jlzx.system.api.user.UserInfoVo;
import com.yxt.workflow.api.task.WfTaskVo;
import io.swagger.annotations.Api;
/**
* @author yxt_mtl
* @date 2020/9/29 13:30
* @description 角色信息
*/
@Controller
@RequestMapping("v1/formweixins")
@Api(tags = "微信审核表单")
public class FormWeixinApiImpl implements FormWeixinApi{
@Autowired
private FormWeixinService service;
@Autowired
private WorkFlowService wfservice;
@Autowired
private FilesappendixService filesappendixservice;
@Autowired
private FileUploadComponent fileUploadComponent;
@Autowired
private UserApi userApi;
@Override
public ResultBean<List<FormWeixinVo>> list(FormWeixinQuery query) {
ResultBean<List<FormWeixinVo>> resultBean=ResultBean.fireFail();
List<FormWeixinVo> list=service.list(query);
if(null==list)
return resultBean;
return resultBean.success().setData(list);
}
@Override
public ResultBean<PagerVo<FormWeixinVo>> pageList(PagerQuery<FormWeixinQuery> pagerQuery) {
ResultBean<PagerVo<FormWeixinVo>> rb = ResultBean.fireFail();
IPage<FormWeixinVo> page = service.pageList(pagerQuery);
//把Ipage转换为PageVo
PagerVo<FormWeixinVo> pv_result = PagerUtil.pageToVo(page, null);
return rb.success().setData(pv_result);
}
@Override
public ResultBean<FormResultVo> save(FormWeixinDto dto) {
ResultBean<FormResultVo> resultBean=ResultBean.fireFail();
FormResultVo formResultVo = new FormResultVo();
// 首次保存,二次修改
if (!dto.getFormSid().equals("")) {
if (update(dto, dto.getFormSid()).getSuccess())
return resultBean.success().setData(formResultVo);
else
return resultBean.setData(null);
}
FormWeixin t=new FormWeixin();
// 开始流程
dto.setFormSid(t.getSid());
WfTaskVo taskVo = wfservice.startProcess((FormDto) dto);
if (taskVo == null)
return resultBean.setData(null);
dto.fillEntity(t);
t.setOrderSid(taskVo.getOrderSid());
UserInfoVo userInfoVo = userApi.fetchUserInfoBysid(t.getCreateBySid()).getData();
if (null != userInfoVo)
t.setCreateOrgSid(userInfoVo.getOrganizationSid());
if (service.save(t)) {
filesappendixservice.uploadFiles(dto.getFilePathlist(), t.getSid(),
t.getClass().getSimpleName());
formResultVo.setFormSid(t.getSid());
formResultVo.setTaskSid(taskVo.getTaskSid());
return resultBean.success().setData(formResultVo);
}
return resultBean.setData(null);
}
@Override
public ResultBean<String> update(FormWeixinDto dto, String sid){
ResultBean<String> rb = ResultBean.fireFail();
FormWeixin t=service.fetchBySid(sid);
if (null == t)
return rb.setMsg("该记录不存在").setData("");
if (0 == service.updateBySid(dto.toMap(), sid))
return rb.setData("");
// 修改流程实例中的title和紧急紧急程度
dto.setOrderSid(t.getOrderSid());
if (wfservice.updateMfOrderFormInfo((FormDto) dto)) {
filesappendixservice.reUploadFiles(dto.getFilePathlist(),
t.getSid(), t.getClass().getSimpleName());
return rb.success().setData(sid);
}
return rb.setData("");
}
@Override
public ResultBean delete(String sid) {
FormWeixin t=service.fetchBySid(sid);
if(null==t)
return ResultBean.fireFail().setMsg("该记录不存在");
if(0==service.deleteBySid(sid))
return ResultBean.fireFail();
filesappendixservice.deleteByLinkSid(sid);
return ResultBean.fireSuccess();
}
@Override
public ResultBean<FormWeixinVo> getVo(String sid) {
ResultBean<FormWeixinVo> resultBean=ResultBean.fireFail();
FormWeixin t=service.fetchBySid(sid);
if(null==t)
return resultBean;
FormWeixinVo vo=new FormWeixinVo();
vo.fromEntity(t);
List<FilesappendixVo> list_appendix = filesappendixservice
.queryBylinkSid(sid);
vo.setFilePathlist(list_appendix);
//2021.10.08 添加本地pdf的保存路径
if(t.getPdfFilePath()!=null && t.getPdfFilePath().length()>0){
String pdfPath=fileUploadComponent.getUrlPrefix().replace("upload", "oapdf");
vo.setLocalhostpdfFilePath(pdfPath+t.getPdfFilePath());
}else{
vo.setLocalhostpdfFilePath("");
}
return resultBean.success().setData(vo);
}
}

View File

@@ -0,0 +1,21 @@
package com.yxt.jlzx.oa.biz.formweixin;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.jlzx.oa.api.formweixin.FormWeixin;
import com.yxt.jlzx.oa.api.formweixin.FormWeixinQuery;
import com.yxt.jlzx.oa.api.formweixin.FormWeixinVo;
@Mapper
public interface FormWeixinMapper extends BaseMapper<FormWeixin>{
//分页列表
IPage<FormWeixinVo> pageList(IPage<FormWeixinQuery> page,@Param(Constants.WRAPPER) Wrapper<FormWeixinVo> qw);
List<FormWeixinVo> list(@Param(Constants.WRAPPER) QueryWrapper<FormWeixinVo> qw);
}

View File

@@ -0,0 +1,12 @@
<?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.yxt.jlzx.oa.biz.formweixin.FormWeixinMapper">
<select id="pageList" resultType="com.yxt.jlzx.oa.api.formweixin.FormWeixinVo">
select * from form_weixin
${ew.customSqlSegment}
</select>
<select id="list" resultType="com.yxt.jlzx.oa.api.formweixin.FormWeixinVo">
select * from form_weixin
${ew.customSqlSegment}
</select>
</mapper>

View File

@@ -0,0 +1,122 @@
package com.yxt.jlzx.oa.biz.formweixin;
import java.util.List;
import java.util.Map;
import com.yxt.jlzx.oa.api.index.AppDailyDto;
import com.yxt.jlzx.oa.api.index.AppDailyVo;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.jlzx.oa.api.form.FormSelectLinkDto;
import com.yxt.jlzx.oa.api.formweixin.FormWeixin;
import com.yxt.jlzx.oa.api.formweixin.FormWeixinQuery;
import com.yxt.jlzx.oa.api.formweixin.FormWeixinVo;
import com.yxt.jlzx.oa.biz.form.IFormService;
@Service("d7286500-e528-433b-a03c-1ced60899e44")
public class FormWeixinService extends MybatisBaseService<FormWeixinMapper, FormWeixin> implements IFormService{
// 分页列表
public IPage<FormWeixinVo> pageList(PagerQuery<FormWeixinQuery> pagerQuery) {
// mybits所用的分页对对象
IPage<FormWeixinQuery> page = PagerUtil.queryToPage(pagerQuery);
// mybits所用的查询条件封装类
QueryWrapper<FormWeixinVo> qw = buildQueryWrapper(pagerQuery.getParams());
return baseMapper.pageList(page, qw);
}
// 不分页列表
public List<FormWeixinVo> list(FormWeixinQuery pagerQuery) {
// mybits所用的查询条件封装类
QueryWrapper<FormWeixinVo> qw = buildQueryWrapper(pagerQuery);
return baseMapper.list(qw);
}
/**
* 解析和组装查询条件封装在qw中,虚方法,需要在子类中定义具体实现
* @param pagerQuery
* @return
*/
private QueryWrapper<FormWeixinVo> buildQueryWrapper(FormWeixinQuery pagerQuery)
{
QueryWrapper<FormWeixinVo> qw = new QueryWrapper<FormWeixinVo>();
if (pagerQuery != null) {
if (org.apache.commons.lang3.StringUtils.isNotBlank(pagerQuery
.getCreateDeptSid()))
qw.eq("createDeptSid", pagerQuery.getCreateDeptSid());
if (org.apache.commons.lang3.StringUtils.isNotBlank(pagerQuery
.getProcessSid()))
qw.eq("processSid", pagerQuery.getProcessSid());
if (org.apache.commons.lang3.StringUtils.isNotBlank(pagerQuery.getCreaterName()))
qw.eq("createrName", pagerQuery.getCreaterName());
qw.orderByDesc("createTime");
}
return qw;
}
/**
* 获取动态表单
* @param sid
* @return
*/
public Map<String,Object> getFormItemsVo(String sid)
{
FormWeixin t=fetchBySid(sid);
if(null==t)
return null;
FormWeixinVo vo=new FormWeixinVo();
vo.fromEntity(t);
return vo.toFormItemsMap();
}
@Override
public Map<String, Object> getMaxFileNum(com.yxt.jlzx.oa.api.form.MaxFileNumDto dto) {
// TODO Auto-generated method stub
return null;
}
@Override
public AppDailyVo isSave(AppDailyDto appDailyDto) {
AppDailyVo appDailyVo = new AppDailyVo();
return appDailyVo;
}
@Override
public AppDailyVo update(AppDailyDto appDailyDto) throws Exception {
return null;
}
@Override
public Map<String, Object> getNewFormItemsVo() {
// TODO Auto-generated method stub
return null;
}
@Override
public Map<String, Object> getEditFormItemsVo(String formSid) {
// TODO Auto-generated method stub
return null;
}
@Override
public Map<String, Object> getLinkAge(FormSelectLinkDto dto) {
// TODO Auto-generated method stub
return null;
}
}

View File

@@ -0,0 +1,184 @@
package com.yxt.jlzx.oa.biz.formzzfw;
import java.util.Date;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.jlzx.oa.api.filesappendix.Filesappendix;
import com.yxt.jlzx.oa.api.filesappendix.FilesappendixDto;
import com.yxt.jlzx.oa.api.filesappendix.FilesappendixVo;
import com.yxt.jlzx.oa.api.form.FormDto;
import com.yxt.jlzx.oa.api.form.FormResultVo;
import com.yxt.jlzx.oa.api.formzzfw.FormZzfw;
import com.yxt.jlzx.oa.api.formzzfw.FormZzfwApi;
import com.yxt.jlzx.oa.api.formzzfw.FormZzfwDto;
import com.yxt.jlzx.oa.api.formzzfw.FormZzfwQuery;
import com.yxt.jlzx.oa.api.formzzfw.FormZzfwVo;
import com.yxt.jlzx.oa.biz.filesappendix.FilesappendixService;
import com.yxt.jlzx.oa.biz.workflow.WorkFlowService;
import com.yxt.jlzx.system.api.user.UserApi;
import com.yxt.jlzx.system.api.user.UserInfoVo;
import com.yxt.workflow.api.task.WfTaskVo;
import io.swagger.annotations.Api;
/**
* @author yxt_mtl
* @date 2020/9/29 13:30
* @description 角色信息
*/
@Controller
@RequestMapping("v1/formzzfws")
@Api(tags = "党总支发文表单")
public class FormZzfwApiImpl implements FormZzfwApi{
@Autowired
private FormZzfwService service;
@Autowired
private WorkFlowService wfservice;
@Autowired
private FilesappendixService filesappendixservice;
@Autowired
private FileUploadComponent fileUploadComponent;
@Autowired
private UserApi userApi;
@Override
public ResultBean<List<FormZzfwVo>> list(FormZzfwQuery query) {
ResultBean<List<FormZzfwVo>> resultBean=ResultBean.fireFail();
List<FormZzfwVo> list=service.list(query);
if(null==list)
return resultBean;
return resultBean.success().setData(list);
}
@Override
public ResultBean<PagerVo<FormZzfwVo>> pageList(PagerQuery<FormZzfwQuery> pagerQuery) {
ResultBean<PagerVo<FormZzfwVo>> rb = ResultBean.fireFail();
IPage<FormZzfwVo> page = service.pageList(pagerQuery);
//把Ipage转换为PageVo
PagerVo<FormZzfwVo> pv_result = PagerUtil.pageToVo(page, null);
return rb.success().setData(pv_result);
}
@Override
public ResultBean<FormResultVo> save(FormZzfwDto dto) {
ResultBean<FormResultVo> resultBean=ResultBean.fireFail();
FormResultVo formResultVo = new FormResultVo();
// 首次保存,二次修改
if (!dto.getFormSid().equals("")) {
if (update(dto, dto.getFormSid()).getSuccess())
return resultBean.success().setData(formResultVo);
else
return resultBean.setData(null);
}
FormZzfw t=new FormZzfw();
// 开始流程
dto.setFormSid(t.getSid());
WfTaskVo taskVo = wfservice.startProcess((FormDto) dto);
if (taskVo == null)
return resultBean.setData(null);
dto.fillEntity(t);
t.setOrderSid(taskVo.getOrderSid());
UserInfoVo userInfoVo = userApi.fetchUserInfoBysid(t.getCreateBySid()).getData();
if (null != userInfoVo)
t.setCreateOrgSid(userInfoVo.getOrganizationSid());
if (service.save(t)) {
filesappendixservice.uploadFiles(dto.getFilePathlist(), t.getSid(),
t.getClass().getSimpleName());
formResultVo.setFormSid(t.getSid());
formResultVo.setTaskSid(taskVo.getTaskSid());
return resultBean.success().setData(formResultVo);
}
return resultBean.setData(null);
}
@Override
public ResultBean<String> update(FormZzfwDto dto, String sid) {
ResultBean<String> rb = ResultBean.fireFail();
FormZzfw t=service.fetchBySid(sid);
if (null == t)
return rb.setMsg("该记录不存在").setData("");
//if issueUserSid 包含"签发"则设置签发人sid签发人姓名签发日期
Map<String,Object> map= dto.toMap();
if(!dto.getMotif().contains("签发"))
{
//不是签发环节,不更新签发信息
map.remove("issueUserSid");
map.remove("issuePersonName");
map.remove("issueTime");
}
else
{
//签发人姓名和签发人sid是前端传回来的当前操作人的信息
//dto.setIssueUserSid(issueUserSid);
//dto.setIssuePersonName(issuePersonName);
//dto.setIssueTime(new Date());
map.put("issueTime", new Date());
}
if (0 == service.updateBySid(map, sid))
return rb.setData("");
// 修改流程实例中的title和紧急紧急程度
dto.setOrderSid(t.getOrderSid());
if (wfservice.updateMfOrderFormInfo((FormDto) dto)) {
filesappendixservice.reUploadFiles(dto.getFilePathlist(),
t.getSid(), t.getClass().getSimpleName());
return rb.success().setData(sid);
}
return rb.setData("");
}
@Override
public ResultBean delete(String sid) {
FormZzfw t=service.fetchBySid(sid);
if(null==t)
return ResultBean.fireFail().setMsg("该记录不存在");
if(0==service.deleteBySid(sid))
return ResultBean.fireFail();
filesappendixservice.deleteByLinkSid(sid);
return ResultBean.fireSuccess();
}
@Override
public ResultBean<FormZzfwVo> getVo(String sid) {
ResultBean<FormZzfwVo> resultBean=ResultBean.fireFail();
FormZzfw t=service.fetchBySid(sid);
if(null==t)
return resultBean;
FormZzfwVo vo=new FormZzfwVo();
vo.fromEntity(t);
List<FilesappendixVo> list_appendix = filesappendixservice
.queryBylinkSid(sid);
vo.setFilePathlist(list_appendix);
//2021.10.08 添加本地pdf的保存路径
if(t.getPdfFilePath()!=null && t.getPdfFilePath().length()>0){
String pdfPath=fileUploadComponent.getUrlPrefix().replace("upload", "oapdf");
vo.setLocalhostpdfFilePath(pdfPath+t.getPdfFilePath());
}else{
vo.setLocalhostpdfFilePath("");
}
return resultBean.success().setData(vo);
}
}

View File

@@ -0,0 +1,25 @@
package com.yxt.jlzx.oa.biz.formzzfw;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.jlzx.oa.api.form.FileNumVo;
import com.yxt.jlzx.oa.api.formzzfw.FormZzfw;
import com.yxt.jlzx.oa.api.formzzfw.FormZzfwQuery;
import com.yxt.jlzx.oa.api.formzzfw.FormZzfwVo;
@Mapper
public interface FormZzfwMapper extends BaseMapper<FormZzfw>{
//分页列表
IPage<FormZzfwVo> pageList(IPage<FormZzfwQuery> page,@Param(Constants.WRAPPER) Wrapper<FormZzfwVo> qw);
List<FormZzfwVo> list(@Param(Constants.WRAPPER) QueryWrapper<FormZzfwVo> qw);
FileNumVo getMaxFileNum(String ruleName);
}

View File

@@ -0,0 +1,21 @@
<?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.yxt.jlzx.oa.biz.formzzfw.FormZzfwMapper">
<select id="pageList" resultType="com.yxt.jlzx.oa.api.formzzfw.FormZzfwVo">
select * from form_zzfw
${ew.customSqlSegment}
</select>
<select id="list" resultType="com.yxt.jlzx.oa.api.formzzfw.FormZzfwVo">
select * from form_zzfw
${ew.customSqlSegment}
</select>
<select id="getMaxFileNum" resultType="com.yxt.jlzx.oa.api.form.FileNumVo">
SELECT
(SELECT fileNum FROM form_zzfw WHERE id IN( SELECT MAX(id) FROM `form_zzfw` WHERE fileNum LIKE concat("%",#{ruleName},"%")))filenum
FROM form_zzfw f LIMIT 1
</select>
</mapper>

View File

@@ -0,0 +1,184 @@
package com.yxt.jlzx.oa.biz.formzzfw;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.yxt.jlzx.oa.api.index.AppDailyDto;
import com.yxt.jlzx.oa.api.index.AppDailyVo;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.jlzx.jlcyry.api.datadictionary.DictCommonVo;
import com.yxt.jlzx.oa.api.form.FileNumVo;
import com.yxt.jlzx.oa.api.form.FormSelectLinkDto;
import com.yxt.jlzx.oa.api.formzzfw.FormZzfw;
import com.yxt.jlzx.oa.api.formzzfw.FormZzfwQuery;
import com.yxt.jlzx.oa.api.formzzfw.FormZzfwVo;
import com.yxt.jlzx.oa.biz.form.IFormService;
import com.yxt.jlzx.system.api.filenumrule.FilenumruleApi;
import com.yxt.jlzx.system.api.filenumrule.FilenumruleOneVo;
@Service("000003")
public class FormZzfwService extends MybatisBaseService<FormZzfwMapper, FormZzfw> implements IFormService{
@Autowired
private FilenumruleApi filenumruleApi;
// 分页列表
public IPage<FormZzfwVo> pageList(PagerQuery<FormZzfwQuery> pagerQuery) {
// mybits所用的分页对对象
IPage<FormZzfwQuery> page = PagerUtil.queryToPage(pagerQuery);
// mybits所用的查询条件封装类
QueryWrapper<FormZzfwVo> qw = buildQueryWrapper(pagerQuery.getParams());
return baseMapper.pageList(page, qw);
}
// 不分页列表
public List<FormZzfwVo> list(FormZzfwQuery pagerQuery) {
// mybits所用的查询条件封装类
QueryWrapper<FormZzfwVo> qw = buildQueryWrapper(pagerQuery);
return baseMapper.list(qw);
}
/**
* 解析和组装查询条件封装在qw中,虚方法,需要在子类中定义具体实现
* @param pagerQuery
* @return
*/
private QueryWrapper<FormZzfwVo> buildQueryWrapper(FormZzfwQuery pagerQuery)
{
QueryWrapper<FormZzfwVo> qw = new QueryWrapper<FormZzfwVo>();
if (pagerQuery != null) {
if (org.apache.commons.lang3.StringUtils.isNotBlank(pagerQuery
.getCreateDeptSid()))
qw.eq("createDeptSid", pagerQuery.getCreateDeptSid());
if (org.apache.commons.lang3.StringUtils.isNotBlank(pagerQuery
.getProcessSid()))
qw.eq("processSid", pagerQuery.getProcessSid());
if (org.apache.commons.lang3.StringUtils.isNotBlank(pagerQuery.getCreaterName()))
qw.eq("createrName", pagerQuery.getCreaterName());
if (null!=pagerQuery.getIssueTime() && org.apache.commons.lang3.StringUtils.isNotBlank(pagerQuery
.getIssueTime().toString()))
qw.eq("issueTime", pagerQuery.getIssueTime());//大于等于
if (org.apache.commons.lang3.StringUtils.isNotBlank(pagerQuery.getPublicType()))
qw.eq("issueTime", pagerQuery.getPublicType());
qw.orderByDesc("createTime");
}
return qw;
}
/**
* 获取动态表单
* @param sid
* @return
*/
public Map<String,Object> getFormItemsVo(String sid)
{
FormZzfw t=fetchBySid(sid);
if(null==t)
return null;
FormZzfwVo vo=new FormZzfwVo();
vo.fromEntity(t);
return vo.toFormItemsMap();
}
@Override
public Map<String, Object> getMaxFileNum(com.yxt.jlzx.oa.api.form.MaxFileNumDto dto) {
String processSid=dto.getProcessSid();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
Date date = new Date();
String year=sdf.format(date);
ResultBean<List<FilenumruleOneVo>> bean = filenumruleApi.getVoByProcessSid(processSid);
List<FilenumruleOneVo> list=bean.getData();
Map<String,Object> map=new HashMap<String,Object>();
List<DictCommonVo> list1= new ArrayList();
String filenum="";
if(list!=null&&list.size()>0) {
for (int i = 0; i< list.size();i++) {
String ruleName=list.get(i).getRuleName();
if(StringUtils.isNotBlank(ruleName)) {
ruleName=ruleName+""+year+"";
FileNumVo vo=baseMapper.getMaxFileNum(ruleName);
if(vo!=null) {
filenum=vo.getFilenum();
if(StringUtils.isNoneBlank(filenum)) {
filenum=filenum.replace(ruleName, "");
filenum=filenum.replace("", "");
try{
int j=Integer.parseInt(filenum)+1;
filenum=ruleName+j+"";
}catch(NumberFormatException e){
System.out.println("异常:\""+filenum + "\"不是数字/整数...");
}
}else {
filenum=ruleName+"1号";
}
}else {
filenum=ruleName+"1号";
}
// map.put("filenum"+(i+1), filenum);
DictCommonVo vo1=new DictCommonVo();
vo1.setDictValue(filenum);
list1.add(vo1);
}
}
}
map.put("list",list1);
return map;
}
@Override
public AppDailyVo isSave(AppDailyDto appDailyDto) {
AppDailyVo appDailyVo = new AppDailyVo();
return appDailyVo;
}
@Override
public AppDailyVo update(AppDailyDto appDailyDto) throws Exception {
return null;
}
@Override
public Map<String, Object> getNewFormItemsVo() {
// TODO Auto-generated method stub
return null;
}
@Override
public Map<String, Object> getEditFormItemsVo(String formSid) {
// TODO Auto-generated method stub
return null;
}
@Override
public Map<String, Object> getLinkAge(FormSelectLinkDto dto) {
// TODO Auto-generated method stub
return null;
}
}

View File

@@ -0,0 +1,403 @@
package com.yxt.jlzx.oa.biz.goodsform;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.RequestMapping;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.utils.DateUtils;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.jlzx.oa.api.form.FormDto;
import com.yxt.jlzx.oa.api.form.FormResultVo;
import com.yxt.jlzx.oa.api.goodsform.GoodsForm;
import com.yxt.jlzx.oa.api.goodsform.GoodsFormApi;
import com.yxt.jlzx.oa.api.goodsform.GoodsFormDidVo;
import com.yxt.jlzx.oa.api.goodsform.GoodsFormDoVo;
import com.yxt.jlzx.oa.api.goodsform.GoodsFormDto;
import com.yxt.jlzx.oa.api.goodsform.GoodsFormQuery;
import com.yxt.jlzx.oa.api.goodsform.GoodsFormVo;
import com.yxt.jlzx.oa.api.goodsformlist.GoodsFormList;
import com.yxt.jlzx.oa.api.goodsformlist.GoodsFormListDto;
import com.yxt.jlzx.oa.api.goodsformlist.GoodsFormListQuery;
import com.yxt.jlzx.oa.api.goodsformlist.GoodsFormListVo;
import com.yxt.jlzx.oa.api.goodslib.GoodslibVo;
import com.yxt.jlzx.oa.api.work.WorkQuery;
import com.yxt.jlzx.oa.biz.goodsformlist.GoodsFormListService;
import com.yxt.jlzx.oa.biz.goodslib.GoodslibService;
import com.yxt.jlzx.oa.biz.workflow.WorkFlowService;
import com.yxt.jlzx.system.api.dictcommon.DictCommonApi;
import com.yxt.jlzx.system.api.user.UserApi;
import com.yxt.jlzx.system.api.user.UserInfoVo;
import com.yxt.workflow.api.histtask.WfHistTaskDidVo;
import com.yxt.workflow.api.histtask.WfHistTaskQuery;
import com.yxt.workflow.api.task.WfTaskQuery;
import com.yxt.workflow.api.task.WfTaskVo;
import com.yxt.workflow.api.wfmanger.WfManagerApi;
import io.swagger.annotations.Api;
/**
* @author yxt_hwj
* @date 2020/9/29 13:30
* @description 角色信息
*/
@Controller
@RequestMapping("v1/goodsforms")
@Api(tags = "物品领用申请单")
public class GoodsFormApiImpl implements GoodsFormApi {
@Autowired
private GoodsFormService service;
@Autowired
private WorkFlowService wfservice;
@Autowired
private GoodsFormListService goodsFormListService;
@Autowired
private UserApi userApi;
@Autowired
private DictCommonApi dictCommonApi;
@Autowired
private WfManagerApi wfManagerApi;
@Autowired
private GoodsFormService goodsFormService;
@Autowired
private GoodslibService goodslibService;
@Override
public ResultBean<List<GoodsFormVo>> list(GoodsFormQuery query) {
ResultBean<List<GoodsFormVo>> resultBean = ResultBean.fireFail();
List<GoodsFormVo> list = service.list(query);
if (null == list) {
return resultBean;
}
return resultBean.success().setData(list);
}
@Override
public ResultBean<PagerVo<GoodsFormVo>> pageList(PagerQuery<GoodsFormQuery> pagerQuery) {
ResultBean<PagerVo<GoodsFormVo>> rb = ResultBean.fireFail();
IPage<GoodsFormVo> page = service.pageList(pagerQuery);
//把Ipage转换为PageVo
PagerVo<GoodsFormVo> pv_result = PagerUtil.pageToVo(page, null);
return rb.success().setData(pv_result);
}
@Override
public ResultBean<FormResultVo> save(GoodsFormDto dto) {//修改时须同时修改app端的保存接口
ResultBean<FormResultVo> resultBean = ResultBean.fireFail();
FormResultVo formResultVo = new FormResultVo();
// 首次保存,二次修改
if (dto != null && StringUtils.isNotBlank(dto.getFormSid())) {
if (update(dto, dto.getFormSid()).getSuccess()) {
return resultBean.success().setData(formResultVo);
} else {
return resultBean;
}
}
GoodsForm t = new GoodsForm();
UserInfoVo vo = userApi.fetchUserInfoBysid(dto.getCreateBySid()).getData();
String title = vo.getName() + "" + DateUtils.getNowDateDayStr() + "申请物品领用";
dto.setTitle(title);
dto.setFormSid(t.getSid());
dto.fillEntity(t);
// 开始流程
WfTaskVo taskVo = wfservice.startProcess((FormDto) dto);
if (taskVo == null) {
return resultBean;
}
t.setOrderSid(taskVo.getOrderSid());
UserInfoVo userInfoVo = userApi.fetchUserInfoBysid(t.getCreateBySid()).getData();
if (null != userInfoVo)
t.setCreateOrgSid(userInfoVo.getOrganizationSid());
if (!service.save(t)) {
return resultBean;
}
List<GoodsFormListDto> goodsFormLists = dto.getGoodsFormList();
if (goodsFormLists != null && goodsFormLists.size() > 0) {
for (int i = 0; i < goodsFormLists.size(); i++) {
GoodsFormListDto goodsFormListDto = goodsFormLists.get(i);
GoodsFormList goodsFormList = new GoodsFormList();
String code=goodsFormListDto.getCode();
GoodslibVo goodslibVo = goodslibService.selectByGoodsCode(code);
goodsFormList.setGoodsFormSid(t.getSid());
goodsFormList.setGoodsType(goodsFormListDto.getGoodsType());
goodsFormList.setGoodsName(goodslibVo.getName());
goodsFormList.setUnit(goodsFormListDto.getUnit());
goodsFormList.setNum(goodsFormListDto.getNum());
goodsFormList.setRemarks(goodsFormListDto.getRemarks());
goodsFormList.setCode(goodsFormListDto.getCode());
goodsFormList.setBrand(goodslibVo.getBrand());
goodsFormList.setPattern(goodslibVo.getPattern());
goodsFormListService.save(goodsFormList);
}
}
formResultVo.setFormSid(t.getSid());
formResultVo.setTaskSid(taskVo.getTaskSid());
return resultBean.success().setData(formResultVo);
}
@Override
@Transactional(rollbackFor = Exception.class)
public ResultBean update(GoodsFormDto dto, String sid) {
ResultBean<String> rb = ResultBean.fireFail();
GoodsForm t = service.fetchBySid(sid);
if (null == t) {
return ResultBean.fireFail().setMsg("该记录不存在");
}
SimpleDateFormat format0 = new SimpleDateFormat("yyyy-MM-dd");
Date date = new Date();
String createTime = format0.format(date);
UserInfoVo vo = userApi.fetchUserInfoBysid(dto.getCreateBySid()).getData();
String title = vo.getName() + "" + createTime + "申请物品领用";
dto.setTitle(title);
if (0 == service.updateBySid(dto.toMap(), sid)) {
return ResultBean.fireFail();
}
//修改流程实例中的title和紧急紧急程度
wfservice.updateMfOrderFormInfo((FormDto) dto);
goodsFormListService.deleteByGoodsSid(sid);
List<GoodsFormListDto> goodsFormLists = dto.getGoodsFormList();
if (goodsFormLists != null && goodsFormLists.size() > 0) {
for (int i = 0; i < goodsFormLists.size(); i++) {
GoodsFormListDto goodsFormListDto = goodsFormLists.get(i);
GoodsFormList goodsFormList = new GoodsFormList();
goodsFormList.setGoodsFormSid(t.getSid());
goodsFormList.setGoodsType(goodsFormListDto.getGoodsType());
goodsFormList.setGoodsName(goodsFormListDto.getGoodsName());
goodsFormList.setUnit(goodsFormListDto.getUnit());
goodsFormList.setRemarks(goodsFormListDto.getRemarks());
goodsFormList.setCode(goodsFormListDto.getCode());
goodsFormList.setBrand(goodsFormListDto.getBrand());
goodsFormList.setNum(goodsFormListDto.getNum());
goodsFormList.setPattern(goodsFormListDto.getPattern());
goodsFormListService.save(goodsFormList);
}
}
dto.setOrderSid(t.getOrderSid());
if (wfservice.updateMfOrderFormInfo((FormDto) dto)) {
return rb.success().setData(sid);
}
return rb.setData("");
}
@Override
public ResultBean delete(String sid) {
GoodsForm t = service.fetchBySid(sid);
if (null == t) {
return ResultBean.fireFail().setMsg("该记录不存在");
}
if (0 == service.deleteBySid(sid)) {
return ResultBean.fireFail();
}
// GoodsFormListQuery q=new GoodsFormListQuery();
// q.setGoodsSid(sid);
// List<GoodsFormListVo> list=goodsFormListService.list(q);
// if(null!=list) {
// for(int i=0;list.size()>i;i++) {
// GoodsFormListVo vo=list.get(i);
// service.deleteBySid(vo.getSid());
// }
// }
goodsFormListService.deleteByGoodsSid(sid);
return ResultBean.fireSuccess();
}
@Override
public ResultBean<GoodsFormVo> getVo(String sid) {
ResultBean<GoodsFormVo> resultBean = ResultBean.fireFail();
GoodsForm t = service.fetchBySid(sid);
if (null == t) {
return resultBean;
}
GoodsFormVo vo = new GoodsFormVo();
vo.fromEntity(t);
GoodsFormListQuery q = new GoodsFormListQuery();
q.setGoodsSid(sid);
List<GoodsFormListVo> goodsFormList = goodsFormListService.list(q);
for (int i = 0; i < goodsFormList.size(); i++) {
String goodsType=goodsFormList.get(i).getGoodsType();
List<GoodslibVo> goodslibVolist = goodslibService.selectByGoodsType(goodsType);
goodsFormList.get(i).setGoodslibVolist(goodslibVolist);
}
vo.setGoodsFormList(goodsFormList);
return resultBean.success().setData(vo);
}
@Override
public ResultBean<Map<String, Object>> dictSelect() {
Map<String, Object> map = new HashMap<>();
ResultBean<Map<String, Object>> dictCommonInitVoResultBean = dictCommonApi.dictCommonGoodsform();
map.put("dictCommonList", dictCommonInitVoResultBean.getData());
return new ResultBean().success().setData(map);
}
// 待办工作列表
@Override
public ResultBean<PagerVo<GoodsFormDoVo>> doingWorks(PagerQuery<WorkQuery> pagerQuery) {
pagerQuery.getParams().setProcessSid("dc2ec394-663d-4d5e-a6b2-69a3ccdf4253");
ResultBean<PagerVo<GoodsFormDoVo>> resultBean = ResultBean.fireFail();
// 参数转换
PagerQuery<WfTaskQuery> task_query = new PagerQuery<>();
task_query.setParams(new WfTaskQuery());
task_query.fromPagerQuery(pagerQuery);
// 直接调用流程任务
ResultBean<PagerVo<WfTaskVo>> task_rb = wfManagerApi
.webTaskPageList(task_query);
PagerVo<GoodsFormDoVo> workVo_pager = new PagerVo<GoodsFormDoVo>();
if (null == task_rb.getData()) {
return resultBean;
}
// 结果转换
workVo_pager = PagerUtil.switchPagerVo(task_rb
.getData());
for (int i = 0; i < task_rb.getData().getRecords().size(); i++) {
GoodsFormDoVo workDoVo = new GoodsFormDoVo();
GoodsForm goodsForm = goodsFormService.fetchBySid(task_rb.getData().getRecords().get(i).getFormSid());
GoodsFormListQuery query=new GoodsFormListQuery();
query.setGoodsSid(goodsForm.getSid());
List<GoodsFormListVo> lists = goodsFormListService.list(query);
workDoVo.fromMap(task_rb.getData().getRecords().get(i).toMap());
workDoVo.setGoodsFormList(lists);
List<GoodsFormDoVo> records = workVo_pager.getRecords();
records.add(workDoVo);
records.get(i).setRemarks(goodsForm.getRemarks());
records.get(i).setCreateTime(goodsForm.getCreateTime());
records.get(i).setNum(lists.size());
}
// String createrName=pagerQuery.getParams().getCreaterName();//申请人
// List<GoodsFormDoVo> records = workVo_pager.getRecords();
// for (int i = 0; i < records.size(); i++) {
// if(StringUtils.isNoneBlank(createrName)&&createrName.indexOf(records.get(i).getCreaterName())<0) {
// records.remove(i);
// i=i-1;
// continue;
// }
// List<GoodsFormListVo> goodsFormList = records.get(i).getGoodsFormList();
// records.get(i).setNum(goodsFormList.size());
// int k=0;
// int s=0;
// for (int j = 0; j < goodsFormList.size(); j++) {
// if(StringUtils.isNoneBlank(goodsType)&&goodsType.equals(goodsFormList.get(j).getGoodsType())) {
// break;
// }else if(StringUtils.isNoneBlank(goodsType)&&!goodsType.equals(goodsFormList.get(j).getGoodsType())){
// k++;
// }
//
// }
// for (int j = 0; j < goodsFormList.size(); j++) {
// if(StringUtils.isNoneBlank(name)&&goodsFormList.get(j).getGoodsName().indexOf(name)>-1) {
// break;
// }else if(StringUtils.isNoneBlank(name)&&goodsFormList.get(j).getGoodsName().indexOf(name)<0){
// s++;
// }
//
// }
// if(k==goodsFormList.size()||s==goodsFormList.size()) {
// records.remove(i);
// i=i-1;
// continue;
// }
// }
// workVo_pager.setRecords(records);
return resultBean.success().setData(workVo_pager);
}
// 已办工作列表
@Override
public ResultBean<PagerVo<GoodsFormDidVo>> didWorks(PagerQuery<WorkQuery> pagerQuery) {
pagerQuery.getParams().setProcessSid("dc2ec394-663d-4d5e-a6b2-69a3ccdf4253");
ResultBean<PagerVo<GoodsFormDidVo>> resultBean = ResultBean.fireFail();
// 参数转换
PagerQuery<WfHistTaskQuery> histtask_query = new PagerQuery<>();
histtask_query.setParams(new WfHistTaskQuery());
histtask_query.fromPagerQuery(pagerQuery);
// 直接调用流程任务
ResultBean<PagerVo<WfHistTaskDidVo>> task_rb = wfManagerApi.histTaskPageList(histtask_query);
PagerVo<GoodsFormDidVo> workVo_pager = new PagerVo<GoodsFormDidVo>();
if (null == task_rb.getData()) {
return resultBean;
}
// 结果转换
workVo_pager = PagerUtil.switchPagerVo(task_rb.getData());
for (int i = 0; i < task_rb.getData().getRecords().size(); i++) {
GoodsFormDidVo workDidVo = new GoodsFormDidVo();
workDidVo.fromMap(task_rb.getData().getRecords().get(i).toMap());
GoodsForm goodsForm = goodsFormService.fetchBySid(task_rb.getData().getRecords().get(i).getFormSid());
GoodsFormListQuery query=new GoodsFormListQuery();
query.setGoodsSid(goodsForm.getSid());
List<GoodsFormListVo> lists = goodsFormListService.list(query);
workDidVo.setGoodsFormList(lists);
workVo_pager.getRecords().add(workDidVo);
workVo_pager.getRecords().get(i).setRemarks(goodsForm.getRemarks());
workVo_pager.getRecords().get(i).setNum(lists.size());
}
// String createrName=pagerQuery.getParams().getCreaterName();//申请人
//
//
// List<GoodsFormDidVo> records = workVo_pager.getRecords();
// for (int i = 0; i < records.size(); i++) {
// if(StringUtils.isNoneBlank(createrName)&&createrName.indexOf(records.get(i).getCreaterName())<0) {
// records.remove(i);
// i=i-1;
// continue;
// }
// List<GoodsFormListVo> goodsFormList = records.get(i).getGoodsFormList();
// records.get(i).setNum(goodsFormList.size());
// int k=0;
// int s=0;
// for (int j = 0; j < goodsFormList.size(); j++) {
// if(StringUtils.isNoneBlank(goodsType)&&goodsType.equals(goodsFormList.get(j).getGoodsType())) {
// break;
// }else if(StringUtils.isNoneBlank(goodsType)&&!goodsType.equals(goodsFormList.get(j).getGoodsType())){
// k++;
// }
//
// }
// for (int j = 0; j < goodsFormList.size(); j++) {
// if(StringUtils.isNoneBlank(name)&&goodsFormList.get(j).getGoodsName()!=null&&goodsFormList.get(j).getGoodsName().indexOf(name)>-1) {
// break;
// }else if(StringUtils.isNoneBlank(name)&&goodsFormList.get(j).getGoodsName().indexOf(name)<0){
// s++;
// }
//
// }
// if(k==goodsFormList.size()||s==goodsFormList.size()) {
// records.remove(i);
// i=i-1;
// continue;
// }
//
// }
// workVo_pager.setRecords(records);
return resultBean.success().setData(workVo_pager);
}
}

View File

@@ -0,0 +1,21 @@
package com.yxt.jlzx.oa.biz.goodsform;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.jlzx.oa.api.goodsform.GoodsForm;
import com.yxt.jlzx.oa.api.goodsform.GoodsFormQuery;
import com.yxt.jlzx.oa.api.goodsform.GoodsFormVo;
@Mapper
public interface GoodsFormMapper extends BaseMapper<GoodsForm>{
//分页列表
IPage<GoodsFormVo> pageList(IPage<?> page,@Param(Constants.WRAPPER) Wrapper<GoodsFormVo> qw);
List<GoodsFormVo> list(@Param(Constants.WRAPPER) QueryWrapper<GoodsFormVo> qw);
}

View File

@@ -0,0 +1,13 @@
<?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.yxt.jlzx.oa.biz.goodsform.GoodsFormMapper">
<select id="pageList" resultType="com.yxt.jlzx.oa.api.goodsform.GoodsFormVo">
select sid,title,createBySid,createrName,createDeptSid,DATE_FORMAT(createTime, '%Y-%m-%d %H:%m:%s') AS createTime,createDeptName,orderSid,processSid,filePath,fileNum,remarks from goods_form
${ew.customSqlSegment}
</select>
<select id="list" resultType="com.yxt.jlzx.oa.api.goodsform.GoodsFormVo">
select sid,title,createBySid,createrName,createDeptSid,DATE_FORMAT(createTime, '%Y-%m-%d %H:%m:%s') AS createTime,createDeptName,orderSid,processSid,filePath,fileNum,remarks from goods_form
${ew.customSqlSegment}
</select>
</mapper>

View File

@@ -0,0 +1,315 @@
package com.yxt.jlzx.oa.biz.goodsform;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.jlzx.jlcyry.api.staffinfo.StaffBasicDetailsVo;
import com.yxt.jlzx.jlcyry.api.staffinfo.StaffInfoApi;
import com.yxt.jlzx.oa.api.form.FormDto;
import com.yxt.jlzx.oa.api.form.FormItems;
import com.yxt.jlzx.oa.api.form.FormItems2;
import com.yxt.jlzx.oa.api.form.FormSelectLinkDto;
import com.yxt.jlzx.oa.api.goodsform.GoodsForm;
import com.yxt.jlzx.oa.api.goodsform.GoodsFormQuery;
import com.yxt.jlzx.oa.api.goodsform.GoodsFormVo;
import com.yxt.jlzx.oa.api.goodsformlist.GoodsFormList;
import com.yxt.jlzx.oa.api.goodsformlist.GoodsFormListDto;
import com.yxt.jlzx.oa.api.goodslib.GoodslibVo;
import com.yxt.jlzx.oa.api.index.AppDailyDto;
import com.yxt.jlzx.oa.api.index.AppDailyVo;
import com.yxt.jlzx.oa.api.index.DailyDto;
import com.yxt.jlzx.oa.biz.filesappendix.FilesappendixService;
import com.yxt.jlzx.oa.biz.form.IFormService;
import com.yxt.jlzx.oa.biz.goodsformlist.GoodsFormListService;
import com.yxt.jlzx.oa.biz.goodslib.GoodslibService;
import com.yxt.jlzx.oa.biz.workflow.WorkFlowService;
import com.yxt.jlzx.system.api.department.DepartmentApi;
import com.yxt.jlzx.system.api.department.DepartmentListVo;
import com.yxt.jlzx.system.api.departmentstaff.DepartmentStaff;
import com.yxt.jlzx.system.api.departmentstaff.DepartmentStaffApi;
import com.yxt.jlzx.system.api.dictcommon.DictCommonApi;
import com.yxt.jlzx.system.api.dictcommon.DictCommonListVo;
import com.yxt.jlzx.system.api.user.UserApi;
import com.yxt.jlzx.system.api.user.UserInfoVo;
import com.yxt.workflow.api.task.WfTaskVo;
import org.apache.commons.beanutils.ConvertUtils;
import org.apache.commons.beanutils.converters.DateConverter;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service("dc2ec394-663d-4d5e-a6b2-69a3ccdf4253")
public class GoodsFormService extends MybatisBaseService<GoodsFormMapper, GoodsForm> implements IFormService {
@Autowired
private FilesappendixService filesappendixservice;
@Autowired
private WorkFlowService wfservice;
@Autowired
private UserApi userApi;
@Autowired
private StaffInfoApi staffInfoApi;
@Autowired
private DepartmentStaffApi departmentStaffApi;
@Autowired
private DepartmentApi departmentApi;
@Autowired
private DictCommonApi dictCommonApi;
@Autowired
private GoodslibService goodslibService;
@Autowired
private GoodsFormListService goodsFormListService;
// 分页列表
public IPage<GoodsFormVo> pageList(PagerQuery<GoodsFormQuery> pagerQuery) {
// mybits所用的分页对对象
IPage<GoodsFormQuery> page = PagerUtil.queryToPage(pagerQuery);
// mybits所用的查询条件封装类
QueryWrapper<GoodsFormVo> qw = buildQueryWrapper(pagerQuery.getParams());
return baseMapper.pageList(page, qw);
}
// 不分页列表
public List<GoodsFormVo> list(GoodsFormQuery pagerQuery) {
// mybits所用的查询条件封装类
QueryWrapper<GoodsFormVo> qw = buildQueryWrapper(pagerQuery);
return baseMapper.list(qw);
}
/**
* 解析和组装查询条件封装在qw中,虚方法,需要在子类中定义具体实现
*
* @param pagerQuery
* @return
*/
private QueryWrapper<GoodsFormVo> buildQueryWrapper(GoodsFormQuery pagerQuery) {
QueryWrapper<GoodsFormVo> qw = new QueryWrapper<GoodsFormVo>();
if (pagerQuery != null) {
if (org.apache.commons.lang3.StringUtils.isNotBlank(pagerQuery
.getCreaterName())) {
qw.eq("createrName", pagerQuery.getCreaterName());
}
if (pagerQuery.getCreateTime() != null && !"".equals(pagerQuery.getCreateTime())) {
qw.eq("createTime", pagerQuery.getCreateTime());
}
qw.orderByDesc("createTime");
}
return qw;
}
@Override
public Map<String, Object> getFormItemsVo(String sid) {
GoodsForm goodsForm = fetchBySid(sid);
List<GoodsFormList> goodsFormlist = goodsFormListService.selectByGoodsFormSid(sid);
if (null == goodsForm) {
return null;
}
// FormFileVo vo = new FormFileVo();
GoodsFormVo vo = new GoodsFormVo();
vo.fromEntity(goodsForm);
return vo.toFormItemsMap();
}
@Override
public Map<String, Object> getNewFormItemsVo() {
Map<String, Object> map = new GoodsFormVo().getFormItemsMap();
//获取数据字典的内容
List<FormItems> formList = (List<FormItems>) map.get("formItems");
List<DictCommonListVo> dicts = dictCommonApi.getDictsByTypeCode("wplx").getData();
List<String> list_key = new ArrayList<>();
List<String> list_value = new ArrayList<>();
if (null != dicts) {
for (int i = 0; i < dicts.size(); i++) {
list_key.add(dicts.get(i).getDictKey());
list_value.add(dicts.get(i).getDictValue());
}
}
List<String> linkIds = new ArrayList<>();
linkIds.add("goodsType");
linkIds.add("code");
linkIds.add("unit");
List<FormItems2> formList1 = formList.get(4).getRight_text().getListDate();
formList1.get(0).getRight_text().setList_key(list_key);
formList1.get(0).getRight_text().setList_value(list_value);
formList1.get(0).getRight_text().setLinkIds(linkIds);
formList1.get(1).getRight_text().setLinkIds(linkIds);
formList1.get(2).getRight_text().setLinkIds(linkIds);
return map;
}
@Override
public Map<String, Object> getLinkAge(FormSelectLinkDto dto) {
Map<String, Object> map = new GoodsFormVo().getFormItemsMap();
Map<String, Object> map1 = new HashMap<String, Object>();
//获取数据字典的内容
List<FormItems> formList = (List<FormItems>) map.get("formItems");
String controlId = dto.getControlId();
List<String> list_key = new ArrayList<>();
List<String> list_value = new ArrayList<>();
if ("goodsType".equals(controlId)) {
List<GoodslibVo> selectByGoodsType = goodslibService.selectByGoodsType(dto.getDictKey());
if (selectByGoodsType != null && selectByGoodsType.size() > 0) {
for (int i = 0; i < selectByGoodsType.size(); i++) {
list_key.add(selectByGoodsType.get(i).getCode());
list_value.add(selectByGoodsType.get(i).getNameText());
}
} else {
return null;
}
FormItems2 formItems2 = formList.get(4).getRight_text().getListDate().get(1);
formItems2.getRight_text().setList_key(list_key);
formItems2.getRight_text().setList_value(list_value);
List<String> linkIds = new ArrayList<>();
linkIds.add("goodsType");
linkIds.add("code");
linkIds.add("unit");
formItems2.getRight_text().setLinkIds(linkIds);
BeanUtils.copyProperties(this, formItems2);
map1 = JSON.parseObject(JSON.toJSONString(formItems2), Map.class);
}
if ("code".equals(controlId)) {
FormItems2 formItems2 = formList.get(4).getRight_text().getListDate().get(2);
GoodslibVo selectByGoodsCode = goodslibService.selectByGoodsCode(dto.getDictKey());
list_key.add(selectByGoodsCode.getUnit());
list_value.add(selectByGoodsCode.getUnit());
formItems2.getRight_text().setDefaultText(selectByGoodsCode.getUnit());
List<String> linkIds = new ArrayList<>();
linkIds.add("goodsType");
linkIds.add("code");
linkIds.add("unit");
formItems2.getRight_text().setLinkIds(linkIds);
BeanUtils.copyProperties(this, formItems2);
map1 = JSON.parseObject(JSON.toJSONString(formItems2), Map.class);
}
return map1;
}
@Override
public Map<String, Object> getEditFormItemsVo(String formSid) {
return null;
}
@Override
public Map<String, Object> getMaxFileNum(com.yxt.jlzx.oa.api.form.MaxFileNumDto dto) {
return null;
}
@Override
public AppDailyVo isSave(AppDailyDto appDailyDto) throws Exception {
AppDailyVo appDailyVo = new AppDailyVo();
GoodsForm goodsForm = new GoodsForm();
appDailyDto.setProcessSid(appDailyDto.getProcessSid());
appDailyDto.setCreateBySid(appDailyDto.getCreateBySid());
SimpleDateFormat sdf = new SimpleDateFormat();
String s = sdf.format(goodsForm.getCreateTime());
UserInfoVo userInfoVo = userApi.selectBysid(appDailyDto.getCreateBySid()).getData();
StaffBasicDetailsVo staffBasicDetailsVo = staffInfoApi.selectByUserName(userInfoVo.getUserName()).getData();
appDailyDto.setTitle(staffBasicDetailsVo.getName() + "" + s + "发起物品领用申请");
appDailyDto.setFormSid(goodsForm.getSid());
//查询在哪个部门
DepartmentStaff departmentStaff = departmentStaffApi.selectByStaffSid(staffBasicDetailsVo.getStaffSid()).getData();
DepartmentListVo departmentListVo = departmentApi.getVo(departmentStaff.getDepartmentSid()).getData();
appDailyDto.setCreaterName(staffBasicDetailsVo.getName());
appDailyDto.setCreateDeptName(departmentListVo.getName());
appDailyDto.setCreateDeptSid(departmentListVo.getSid());
appDailyDto.setFilePath("");
appDailyDto.setFileNum("");
appDailyDto.fillEntity(goodsForm);
WfTaskVo taskVo = wfservice.startProcess((FormDto) appDailyDto);
if (taskVo == null) {
return appDailyVo;
}
goodsForm.setOrderSid(taskVo.getOrderSid());
UserInfoVo userInfoVo1 = userApi.fetchUserInfoBysid(goodsForm.getCreateBySid()).getData();
if (null != userInfoVo1) {
goodsForm.setCreateOrgSid(userInfoVo1.getOrganizationSid());
}
List<GoodsFormListDto> goodsFormLists = appDailyDto.getGoodsFormList();
if (goodsFormLists != null && goodsFormLists.size() > 0) {
for (int i = 0; i < goodsFormLists.size(); i++) {
GoodsFormListDto goodsFormListDto = goodsFormLists.get(i);
GoodsFormList goodsFormList = new GoodsFormList();
String code = goodsFormListDto.getCode();
GoodslibVo goodslibVo = goodslibService.selectByGoodsCode(code);
goodsFormList.setGoodsFormSid(goodsForm.getSid());
goodsFormList.setGoodsType(goodsFormListDto.getGoodsType());
goodsFormList.setUnit(goodsFormListDto.getUnit());
goodsFormList.setNum(goodsFormListDto.getNum());
goodsFormList.setRemarks(goodsFormListDto.getRemarks());
goodsFormList.setCode(goodsFormListDto.getCode());
goodsFormList.setGoodsName(goodslibVo.getName());
goodsFormList.setBrand(goodslibVo.getBrand());
goodsFormList.setPattern(goodslibVo.getPattern());
goodsFormListService.save(goodsFormList);
}
}
if (save(goodsForm)) {
filesappendixservice.uploadFiles(appDailyDto.getFilePathlist(), goodsForm.getSid(),
goodsForm.getClass().getSimpleName());
appDailyVo.setTaskSid(taskVo.getTaskSid());
appDailyVo.setFormSid(goodsForm.getSid());
appDailyVo.setOrderSid(taskVo.getOrderSid());
}
return appDailyVo;
}
@Override
public AppDailyVo update(AppDailyDto appDailyDto) throws Exception {
ConvertUtils.register(new DateConverter(null), java.util.Date.class);
AppDailyVo appDailyVo = new AppDailyVo();
String sid = appDailyDto.getFormSid();
GoodsForm goodsForm = fetchBySid(sid);
if (goodsForm == null) {
return appDailyVo;
}
if (0 == updateBySid(appDailyDto.toMap(), sid)) {
return appDailyVo;
} else {
DailyDto dailyDto = new DailyDto();
dailyDto.setProcessSid(appDailyDto.getProcessSid());
dailyDto.setCreateBySid(appDailyDto.getCreateBySid());
SimpleDateFormat sdf = new SimpleDateFormat();
String s = sdf.format(goodsForm.getCreateTime());
UserInfoVo userInfoVo = userApi.selectBysid(appDailyDto.getCreateBySid()).getData();
StaffBasicDetailsVo staffBasicDetailsVo = staffInfoApi.selectByUserName(userInfoVo.getUserName()).getData();
dailyDto.setTitle(staffBasicDetailsVo.getName() + "" + s + "发起物品领用申请");
dailyDto.setFormSid(goodsForm.getSid());
if (wfservice.updateMfOrderFormInfo((FormDto) dailyDto)) {
filesappendixservice.reUploadFiles(appDailyDto.getFilePathlist(),
goodsForm.getSid(), goodsForm.getClass().getSimpleName());
appDailyVo.setFormSid(sid);
}
}
return appDailyVo;
}
}

View File

@@ -0,0 +1,107 @@
package com.yxt.jlzx.oa.biz.goodsformlist;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.yxt.common.core.result.ResultBean;
import com.yxt.jlzx.oa.api.goodsformlist.GoodsFormListApi;
import com.yxt.jlzx.oa.api.goodsformlist.GoodsFormListQuery;
import com.yxt.jlzx.oa.api.goodsformlist.GoodsFormListVo;
import com.yxt.jlzx.system.api.dictcommon.DictCommonApi;
import com.yxt.jlzx.system.api.dictcommon.DictCommonVo;
import io.swagger.annotations.Api;
/**
* @author yxt_mtl
* @date 2020/9/29 13:30
* @description 角色信息
*/
@Controller
@RequestMapping("v1/goodsformlists")
@Api(tags = "物品清单信息")
public class GoodsFormListApiImpl implements GoodsFormListApi {
@Autowired
private GoodsFormListService service;
@Autowired
private DictCommonApi dictCommonApi;
@Override
public ResultBean<List<GoodsFormListVo>> list(GoodsFormListQuery query) {
ResultBean<List<GoodsFormListVo>> resultBean = ResultBean.fireFail();
List<GoodsFormListVo> list = service.list(query);
if (null == list)
return resultBean;
for (int j = 0; j < list.size(); j++) {
String goodsType=list.get(j).getGoodsType();
ResultBean<DictCommonVo> ret = dictCommonApi.selectBykey(goodsType, "wplx");
if(ret!=null) {
list.get(j).setGoodsType(ret.getData().getDictValue());
}
}
return resultBean.success().setData(list);
}
/*
* @Override public ResultBean<PagerVo<GoodsFormListVo>>
* pageList(PagerQuery<GoodsFormListQuery> pagerQuery) {
* ResultBean<PagerVo<GoodsFormListVo>> rb = ResultBean.fireFail();
*
*
* IPage<GoodsFormListVo> page = service.pageList(pagerQuery);
*
* //把Ipage转换为PageVo PagerVo<GoodsFormListVo> pv_result =
* PagerUtil.pageToVo(page, null);
*
* return rb.success().setData(pv_result); }
*
* @Override public ResultBean save(GoodsFormListDto dto) {
*
* GoodsFormList t=new GoodsFormList(); dto.fillEntity(t); if(!service.save(t))
* return ResultBean.fireFail(); return
* ResultBean.fireSuccess().setData(t.getSid());
*
* return ResultBean.fireSuccess().setMsg("接口暂未使用"); }
*
* @Override public ResultBean update(GoodsFormListDto dto, String sid) throws
* Exception {
*
* GoodsFormList t=service.fetchBySid(sid); if(null==t) return
* ResultBean.fireFail().setMsg("该记录不存在");
*
* if(0==service.updateBySid(dto.toMap(), sid)) return ResultBean.fireFail();
* return ResultBean.fireSuccess().setData(sid);
*
*
* return ResultBean.fireSuccess().setMsg("接口暂未使用"); }
*
* @Override public ResultBean delete(String sid) { GoodsFormList
* t=service.fetchBySid(sid); if(null==t) return
* ResultBean.fireFail().setMsg("该记录不存在"); if(0==service.deleteBySid(sid))
* return ResultBean.fireFail(); return ResultBean.fireSuccess(); }
*
* @Override public ResultBean<GoodsFormListVo> getVo(String sid) {
* ResultBean<GoodsFormListVo> resultBean=ResultBean.fireFail(); GoodsFormList
* t=service.fetchBySid(sid); if(null==t) return resultBean; GoodsFormListVo
* vo=new GoodsFormListVo(); vo.fromEntity(t);
*
* return resultBean.success().setData(vo); }
*
* @Override public ResultBean deleteByGoodsSid(String goodsSid) { return
* service.deleteByGoodsSid(goodsSid);
*
* }
*
* @Override public ResultBean<List<GoodsFormListVo>> selectByGoodsSid(String
* goodsSid) { GoodsFormListQuery q=new GoodsFormListQuery();
* q.setGoodsSid(goodsSid); ResultBean<List<GoodsFormListVo>>
* resultBean=ResultBean.fireFail(); List<GoodsFormListVo> list=service.list(q);
* if(null==list) return resultBean; return resultBean.success().setData(list);
* }
*/
}

View File

@@ -0,0 +1,25 @@
package com.yxt.jlzx.oa.biz.goodsformlist;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.jlzx.oa.api.goodsformlist.GoodsFormList;
import com.yxt.jlzx.oa.api.goodsformlist.GoodsFormListQuery;
import com.yxt.jlzx.oa.api.goodsformlist.GoodsFormListVo;
@Mapper
public interface GoodsFormListMapper extends BaseMapper<GoodsFormList> {
//分页列表
IPage<GoodsFormListVo> pageList(IPage<?> page, @Param(Constants.WRAPPER) Wrapper<GoodsFormListVo> qw);
List<GoodsFormListVo> list(@Param(Constants.WRAPPER) QueryWrapper<GoodsFormListVo> qw);
public List<GoodsFormList> selectByGoodsFormSid(String formSid);
}

View File

@@ -0,0 +1,18 @@
<?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.yxt.jlzx.oa.biz.goodsformlist.GoodsFormListMapper">
<select id="pageList" resultType="com.yxt.jlzx.oa.api.goodsformlist.GoodsFormListVo">
SELECT sid, goodsType, goodsName, unit, num, goodsFormSid, remarks,pattern,brand,code
FROM goods_form_list ${ew.customSqlSegment}
</select>
<select id="list" resultType="com.yxt.jlzx.oa.api.goodsformlist.GoodsFormListVo">
SELECT sid, goodsType, code, goodsName, unit, num, goodsFormSid, remarks,pattern,brand
FROM goods_form_list ${ew.customSqlSegment}
</select>
<select id="selectByGoodsFormSid" resultType="com.yxt.jlzx.oa.api.goodsformlist.GoodsFormList">
SELECT *
FROM jlzx_oa.goods_form_list
WHERE goodsFormSid = #{formSid}
</select>
</mapper>

View File

@@ -0,0 +1,97 @@
package com.yxt.jlzx.oa.biz.goodsformlist;
import java.util.List;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.jlzx.oa.api.goodsformlist.GoodsFormList;
import com.yxt.jlzx.oa.api.goodsformlist.GoodsFormListQuery;
import com.yxt.jlzx.oa.api.goodsformlist.GoodsFormListVo;
@Service
public class GoodsFormListService extends MybatisBaseService<GoodsFormListMapper, GoodsFormList> {
// // 分页列表
// public IPage<GoodsFormListVo> pageList(PagerQuery<GoodsFormListQuery> pagerQuery) {
// // mybits所用的分页对对象
// IPage<GoodsFormListQuery> page = PagerUtil.queryToPage(pagerQuery);
// // mybits所用的查询条件封装类
// QueryWrapper<GoodsFormListVo> qw = buildQueryWrapper(pagerQuery.getParams());
// return baseMapper.pageList(page, qw);
//
// }
// 不分页列表
public List<GoodsFormListVo> list(GoodsFormListQuery pagerQuery) {
// mybits所用的查询条件封装类
QueryWrapper<GoodsFormListVo> qw = buildQueryWrapper(pagerQuery);
return baseMapper.list(qw);
}
/**
* 解析和组装查询条件封装在qw中,虚方法,需要在子类中定义具体实现
*
* @param pagerQuery
* @return
*/
private QueryWrapper<GoodsFormListVo> buildQueryWrapper(GoodsFormListQuery pagerQuery) {
QueryWrapper<GoodsFormListVo> qw = new QueryWrapper<GoodsFormListVo>();
if (pagerQuery != null) {
if (org.apache.commons.lang3.StringUtils.isNotBlank(pagerQuery
.getGoodsSid()))
qw.eq("goodsFormSid", pagerQuery.getGoodsSid());
/*
if (null!=pagerQuery.getEndDay() && org.apache.commons.lang3.StringUtils.isNotBlank(pagerQuery
.getEndDay().toString()))
qw.lt("endDay", pagerQuery.getEndDay());
*/
qw.orderByDesc("createTime");
}
return qw;
}
public void selectByGoodsSid(String goodsSid) {
// TODO Auto-generated method stub
}
public ResultBean deleteByGoodsSid(String goodsSid) {
ResultBean resultBean = ResultBean.fireFail();
GoodsFormListQuery q = new GoodsFormListQuery();
q.setGoodsSid(goodsSid);
List<GoodsFormListVo> list = list(q);
if (null == list) {
return resultBean;
} else {
int num = 0;
for (int i = 0; list.size() > i; i++) {
GoodsFormListVo vo = list.get(i);
num = deleteBySid(vo.getSid());
if (num > 0)
num = num + 1;
}
if (num > 0 && num == list.size()) {
return ResultBean.fireSuccess();
} else {
return ResultBean.fireFail();
}
}
}
public List<GoodsFormList> selectByGoodsFormSid(String formsSid) {
return baseMapper.selectByGoodsFormSid(formsSid);
}
}

View File

@@ -0,0 +1,116 @@
package com.yxt.jlzx.oa.biz.goodsinventory;
import java.util.List;
import javax.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.RequestMapping;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.jlzx.oa.api.goodsinventory.GoodsInventory;
import com.yxt.jlzx.oa.api.goodsinventory.GoodsInventoryApi;
import com.yxt.jlzx.oa.api.goodsinventory.GoodsInventoryDto;
import com.yxt.jlzx.oa.api.goodsinventory.GoodsInventoryQuery;
import com.yxt.jlzx.oa.api.goodsinventory.GoodsInventoryVo;
import com.yxt.jlzx.oa.biz.goodslib.GoodslibService;
import com.yxt.jlzx.oa.biz.storagin.StoragInService;
import com.yxt.jlzx.oa.biz.storagout.StoragOutService;
import io.swagger.annotations.Api;
/**
* @author yxt_hwj
* @date 2020/9/29 13:30
* @description
*/
@Controller
@RequestMapping("v1/goodsinventorys")
@Api(tags = "物品库存信息")
public class GoodsInventoryApiImpl implements GoodsInventoryApi{
@Autowired
private GoodsInventoryService goodsInventoryService;
@Autowired
private GoodslibService goodslibService;
@Autowired
private StoragInService storagInService;
@Autowired
private StoragOutService storagOutService;
@Override
public ResultBean<List<GoodsInventoryVo>> list(@Valid GoodsInventoryQuery query) {
return new ResultBean().setData(null).setMsg("暂不对外开发!");
}
@Override
public ResultBean<PagerVo<GoodsInventoryVo>> pageList(@Valid PagerQuery<GoodsInventoryQuery> pagerQuery) {
ResultBean<PagerVo<GoodsInventoryVo>> rb = ResultBean.fireFail();
IPage<GoodsInventoryVo> page = goodsInventoryService.pageList(pagerQuery);
//把Ipage转换为PageVo
PagerVo<GoodsInventoryVo> pv_result = PagerUtil.pageToVo(page, null);
return rb.success().setData(pv_result);
}
@Override
public ResultBean save(@Valid GoodsInventoryDto goodsinventoryDto) {
/*
* int num=goodsInventoryService.selectCode(goodsinventoryDto.getCode());
* if(num>0) { return ResultBean.fireFail().setMsg("该物品编码已存在"); } GoodsInventory
* goodsinventory=new GoodsInventory();
* goodsinventoryDto.fillEntity(goodsinventory);
* if(!goodsInventoryService.save(goodsinventory)) return ResultBean.fireFail();
* return ResultBean.fireSuccess().setData(goodsinventory.getSid());
*/
return new ResultBean().setData(null).setMsg("暂不对外开发,物品管理保存时已对物品库存信息做保存!");
}
@Override
public ResultBean update(@Valid GoodsInventoryDto goodsinventoryDto, String sid) throws Exception {
GoodsInventory goodsinventory=goodsInventoryService.fetchBySid(sid);
if(null==goodsinventory)
return ResultBean.fireFail().setMsg("该记录不存在");
if(0==goodsInventoryService.updateBySid(goodsinventoryDto.toMap(), sid))
return ResultBean.fireFail();
return ResultBean.fireSuccess().setData(sid);
}
@Override
@Transactional
public ResultBean delete(String sid) {
GoodsInventory goodsinventory=goodsInventoryService.fetchBySid(sid);
if(null==goodsinventory)
return ResultBean.fireFail().setMsg("该记录不存在");
String goodslibSid= goodsinventory.getGoodslibSid();
if(goodslibSid!=null&&!"".equals(goodslibSid)) {
goodslibService.deleteBySid(goodslibSid);
storagInService.deleteByInventorySid(sid);//出库记录删除
storagOutService.deleteByInventorySid(sid);//入库记录删除
}
if(0==goodsInventoryService.deleteBySid(sid))
return ResultBean.fireFail();
return ResultBean.fireSuccess();
}
@Override
public ResultBean<GoodsInventoryVo> getVo(String sid) {
ResultBean<GoodsInventoryVo> resultBean=ResultBean.fireFail();
GoodsInventoryVo vo=goodsInventoryService.selectVoBysid(sid);
if(null==vo)
return resultBean;
return resultBean.success().setData(vo);
}
}

View File

@@ -0,0 +1,29 @@
package com.yxt.jlzx.oa.biz.goodsinventory;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.jlzx.oa.api.goodsinventory.GoodsInventory;
import com.yxt.jlzx.oa.api.goodsinventory.GoodsInventoryQuery;
import com.yxt.jlzx.oa.api.goodsinventory.GoodsInventoryVo;
/**
* @author yxt_mtl
* @date 2020/10/12 11:14
* @description
*/
@Mapper
public interface GoodsInventoryMapper extends BaseMapper<GoodsInventory>{
//分页列表
IPage<GoodsInventoryVo> pageList(IPage<GoodsInventoryVo> page,@Param(Constants.WRAPPER) Wrapper<GoodsInventoryVo> qw);
GoodsInventoryVo selectVoBysid(String sid);
GoodsInventoryVo selectVoByGoodslibsid(String sid);
}

View File

@@ -0,0 +1,23 @@
<?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.yxt.jlzx.oa.biz.goodsinventory.GoodsInventoryMapper">
<select id="pageList" resultType="com.yxt.jlzx.oa.api.goodsinventory.GoodsInventoryVo">
select l.code,l.goodsType,l.name,l.brand,l.unit,l.pattern,i.count,ROUND(i.cost,1) cost,i.sid,i.goodslibSid
FROM`goods_inventory` i LEFT JOIN `goodslib` l ON l.sid=i.goodslibSid
${ew.customSqlSegment}
</select>
<select id="selectVoBysid" resultType="com.yxt.jlzx.oa.api.goodsinventory.GoodsInventoryVo">
SELECT
l.code,l.goodsType,l.name,l.brand,l.unit,l.pattern,i.count,ROUND(i.cost,1) cost,i.sid,i.goodslibSid
FROM`goods_inventory` i LEFT JOIN `goodslib` l ON l.sid=i.goodslibSid
WHERE i.sid=#{sid}
</select>
<select id="selectVoByGoodslibsid" resultType="com.yxt.jlzx.oa.api.goodsinventory.GoodsInventoryVo">
SELECT
l.code,l.goodsType,l.name,l.brand,l.unit,l.pattern,i.count,ROUND(i.cost,1) cost,i.sid,i.goodslibSid
FROM`goods_inventory` i LEFT JOIN `goodslib` l ON l.sid=i.goodslibSid
WHERE i.goodslibSid=#{sid}
</select>
</mapper>

View File

@@ -0,0 +1,90 @@
package com.yxt.jlzx.oa.biz.goodsinventory;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.jlzx.oa.api.goodsinventory.GoodsInventory;
import com.yxt.jlzx.oa.api.goodsinventory.GoodsInventoryQuery;
import com.yxt.jlzx.oa.api.goodsinventory.GoodsInventoryVo;
import com.yxt.jlzx.oa.api.goodslib.GoodslibVo;
import com.yxt.jlzx.system.api.dictcommon.DictCommonApi;
import com.yxt.jlzx.system.api.dictcommon.DictCommonVo;
import com.yxt.jlzx.oa.api.contract.Contract;
import com.yxt.jlzx.oa.api.contract.ContractQuery;
import com.yxt.jlzx.oa.api.contract.ContractVo;
/**
* @author yxt_mtl
* @date 2020/10/12 11:12
* @description
*/
@Service
public class GoodsInventoryService extends MybatisBaseService<GoodsInventoryMapper, GoodsInventory> {
@Autowired
private DictCommonApi dictcommonApi;
// 分页列表
public IPage<GoodsInventoryVo> pageList(PagerQuery<GoodsInventoryQuery> pagerQuery) {
// mybits所用的分页对对象
IPage<GoodsInventoryVo> page = PagerUtil.queryToPage(pagerQuery);
// mybits所用的查询条件封装类
QueryWrapper<GoodsInventoryVo> qw = buildQueryWrapper(pagerQuery.getParams());
page=baseMapper.pageList(page, qw);
List<GoodsInventoryVo> l=page.getRecords();
if(l!=null) {
for (GoodsInventoryVo goodsInventoryVo : l) {
String str=goodsInventoryVo.getGoodsType();
ResultBean<DictCommonVo> v1=dictcommonApi.selectBykey(str, "wplx");
if(v1.getData()!=null&&StringUtils.isNotBlank(v1.getData().getDictValue())) {
goodsInventoryVo.setGoodsType(v1.getData().getDictValue());
}
}
}
page.setRecords(l);
return page;
}
/**
* 解析和组装查询条件封装在qw中
*
* @param pagerQuery
* @return
*/
private QueryWrapper<GoodsInventoryVo> buildQueryWrapper(GoodsInventoryQuery pagerQuery) {
QueryWrapper<GoodsInventoryVo> qw = new QueryWrapper<>();
if (pagerQuery != null) {
if (org.apache.commons.lang3.StringUtils.isNotBlank(pagerQuery.getGoodsType()))
qw.eq("l.goodsType", pagerQuery.getGoodsType());
if (org.apache.commons.lang3.StringUtils.isNotBlank(pagerQuery.getName()))
qw.like("l.name", pagerQuery.getName());
qw.orderByDesc("i.createTime");
}
return qw;
}
public GoodsInventoryVo selectVoBysid(String sid) {
// TODO Auto-generated method stub
return baseMapper.selectVoBysid(sid);
}
public GoodsInventoryVo selectVoByGoodslibsid(String sid) {
// TODO Auto-generated method stub
return baseMapper.selectVoByGoodslibsid(sid);
}
}

View File

@@ -0,0 +1,146 @@
package com.yxt.jlzx.oa.biz.goodslib;
import java.util.List;
import javax.validation.Valid;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.RequestMapping;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.jlzx.oa.api.goodsinventory.GoodsInventory;
import com.yxt.jlzx.oa.api.goodsinventory.GoodsInventoryVo;
import com.yxt.jlzx.oa.api.goodslib.Goodslib;
import com.yxt.jlzx.oa.api.goodslib.GoodslibApi;
import com.yxt.jlzx.oa.api.goodslib.GoodslibDto;
import com.yxt.jlzx.oa.api.goodslib.GoodslibQuery;
import com.yxt.jlzx.oa.api.goodslib.GoodslibVo;
import com.yxt.jlzx.oa.biz.goodsinventory.GoodsInventoryService;
import com.yxt.jlzx.oa.biz.storagin.StoragInService;
import com.yxt.jlzx.oa.biz.storagout.StoragOutService;
import io.swagger.annotations.Api;
/**
* @author yxt_hwj
* @date 2020/9/29 13:30
* @description
*/
@Controller
@RequestMapping("v1/goodslibs")
@Api(tags = "物品管理")
public class GoodslibApiImpl implements GoodslibApi{
@Autowired
private GoodslibService goodslibService;
@Autowired
private GoodsInventoryService goodsInventoryService;
@Autowired
private StoragInService storagInService;
@Autowired
private StoragOutService storagOutService;
@Override
public ResultBean<List<GoodslibVo>> list(@Valid GoodslibQuery query) {
return new ResultBean().setData(null).setMsg("暂不对外开发!");
}
@Override
public ResultBean<PagerVo<GoodslibVo>> pageList(@Valid PagerQuery<GoodslibQuery> pagerQuery) {
ResultBean<PagerVo<GoodslibVo>> rb = ResultBean.fireFail();
IPage<GoodslibVo> page = goodslibService.pageList(pagerQuery);
//把Ipage转换为PageVo
PagerVo<GoodslibVo> pv_result = PagerUtil.pageToVo(page, null);
return rb.success().setData(pv_result);
}
@Override
@Transactional
public ResultBean save(@Valid GoodslibDto goodslibDto) {
int num=goodslibService.selectCode(goodslibDto.getCode());
if(num>0) {
return ResultBean.fireFail().setMsg("该物品编码已存在");
}
Goodslib goodslib=new Goodslib();
goodslibDto.fillEntity(goodslib);
if(!goodslibService.save(goodslib))
return ResultBean.fireFail();
GoodsInventory goodsInventory=new GoodsInventory();
goodsInventory.setGoodslibSid(goodslib.getSid());
goodsInventoryService.save(goodsInventory);
return ResultBean.fireSuccess().setData(goodslib.getSid());
}
@Override
public ResultBean update(@Valid GoodslibDto goodslibDto, String sid) throws Exception {
Goodslib goodslib=goodslibService.fetchBySid(sid);
if(null==goodslib)
return ResultBean.fireFail().setMsg("该记录不存在");
if(0==goodslibService.updateBySid(goodslibDto.toMap(), sid))
return ResultBean.fireFail();
return ResultBean.fireSuccess().setData(sid);
}
@Override
@Transactional
public ResultBean delete(String sid) {
Goodslib goodslib=goodslibService.fetchBySid(sid);
if(null==goodslib)
return ResultBean.fireFail().setMsg("该记录不存在");
GoodsInventoryVo vo=goodsInventoryService.selectVoByGoodslibsid(sid);
if(vo!=null)
goodsInventoryService.deleteBySid(vo.getSid());//库存删除
storagInService.deleteByInventorySid(sid);//出库记录删除
storagOutService.deleteByInventorySid(sid);//入库记录删除
if(0==goodslibService.deleteBySid(sid))
return ResultBean.fireFail();
return ResultBean.fireSuccess();
}
@Override
public ResultBean<GoodslibVo> getVo(String sid) {
ResultBean<GoodslibVo> resultBean=ResultBean.fireFail();
Goodslib goodslib=goodslibService.fetchBySid(sid);
if(null==goodslib)
return resultBean;
GoodslibVo vo=new GoodslibVo();
vo.fromEntity(goodslib);
return resultBean.success().setData(vo);
}
@Override
public ResultBean selectCode(String code) {
int codeNum=goodslibService.selectCode(code);
if(codeNum>0) {
return ResultBean.fireFail().setMsg("该物品编码已存在");
}
return ResultBean.fireSuccess();
}
@Override
public ResultBean<List<GoodslibVo>> selectByGoodsType(String goodsType) {
ResultBean<List<GoodslibVo>> resultBean=ResultBean.fireFail();
// TODO Auto-generated method stub
List<GoodslibVo> list=goodslibService.selectByGoodsType(goodsType);
if(list!=null) {
return resultBean.success().setData(list);
}
return resultBean.success().setData(null);
}
}

View File

@@ -0,0 +1,32 @@
package com.yxt.jlzx.oa.biz.goodslib;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.common.core.result.ResultBean;
import com.yxt.jlzx.oa.api.goodslib.Goodslib;
import com.yxt.jlzx.oa.api.goodslib.GoodslibQuery;
import com.yxt.jlzx.oa.api.goodslib.GoodslibVo;
/**
* @author yxt_mtl
* @date 2020/10/12 11:14
* @description
*/
@Mapper
public interface GoodslibMapper extends BaseMapper<Goodslib>{
//分页列表
IPage<GoodslibVo> pageList(IPage<GoodslibVo> page,@Param(Constants.WRAPPER) Wrapper<GoodslibVo> qw);
public int selectCode(@Param("code") String code);
List<GoodslibVo> selectByGoodsType(String goodsType);
GoodslibVo selectByGoodsCode(String goodsCode);
}

View File

@@ -0,0 +1,23 @@
<?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.yxt.jlzx.oa.biz.goodslib.GoodslibMapper">
<select id="pageList" resultType="com.yxt.jlzx.oa.api.goodslib.GoodslibVo">
select * from goodslib
${ew.customSqlSegment}
</select>
<select id="selectCode" resultType="java.lang.Integer">
select count(id) from goodslib
where code=#{code}
</select>
<select id="selectByGoodsType" resultType="com.yxt.jlzx.oa.api.goodslib.GoodslibVo">
select * from goodslib
where goodsType=#{goodsType}
</select>
<select id="selectByGoodsCode" resultType="com.yxt.jlzx.oa.api.goodslib.GoodslibVo">
select * from goodslib
where code=#{goodsCode}
</select>
</mapper>

View File

@@ -0,0 +1,118 @@
package com.yxt.jlzx.oa.biz.goodslib;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.jlzx.oa.api.goodslib.Goodslib;
import com.yxt.jlzx.oa.api.goodslib.GoodslibQuery;
import com.yxt.jlzx.oa.api.goodslib.GoodslibVo;
import com.yxt.jlzx.system.api.dictcommon.DictCommonApi;
import com.yxt.jlzx.system.api.dictcommon.DictCommonVo;
import com.yxt.jlzx.oa.api.contract.Contract;
import com.yxt.jlzx.oa.api.contract.ContractQuery;
import com.yxt.jlzx.oa.api.contract.ContractVo;
import com.yxt.jlzx.oa.api.goodsformlist.GoodsFormListVo;
/**
* @author yxt_mtl
* @date 2020/10/12 11:12
* @description
*/
@Service
public class GoodslibService extends MybatisBaseService<GoodslibMapper, Goodslib> {
@Autowired
private DictCommonApi dictcommonApi;
// 分页列表
public IPage<GoodslibVo> pageList(PagerQuery<GoodslibQuery> pagerQuery) {
// mybits所用的分页对对象
IPage<GoodslibVo> page = PagerUtil.queryToPage(pagerQuery);
// mybits所用的查询条件封装类
QueryWrapper<GoodslibVo> qw = buildQueryWrapper(pagerQuery.getParams());
page=baseMapper.pageList(page, qw);
List<GoodslibVo> l=page.getRecords();
if(l!=null) {
for (GoodslibVo goodslibVo : l) {
String str=goodslibVo.getGoodsType();
if(StringUtils.isNotBlank(str)) {
ResultBean<DictCommonVo> v1=dictcommonApi.selectBykey(str, "wplx");
if(v1.getData()!=null&&StringUtils.isNotBlank(v1.getData().getDictValue())) {
goodslibVo.setGoodsType(v1.getData().getDictValue());
}
}
}
}
page.setRecords(l);
return page;
}
/**
* 解析和组装查询条件封装在qw中
*
* @param pagerQuery
* @return
*/
private QueryWrapper<GoodslibVo> buildQueryWrapper(GoodslibQuery pagerQuery) {
QueryWrapper<GoodslibVo> qw = new QueryWrapper<>();
if (pagerQuery != null) {
if (org.apache.commons.lang3.StringUtils.isNotBlank(pagerQuery.getGoodsType()))
qw.eq("goodsType", pagerQuery.getGoodsType());
if (org.apache.commons.lang3.StringUtils.isNotBlank(pagerQuery.getName()))
qw.like("name", pagerQuery.getName());
qw.orderByDesc("createTime");
}
return qw;
}
public int selectCode(String code) {
// TODO Auto-generated method stub
return baseMapper.selectCode(code);
}
public List<GoodslibVo> selectByGoodsType(String goodsType) {
// TODO Auto-generated method stub
List<GoodslibVo> list=baseMapper.selectByGoodsType(goodsType);
for (int i = 0; i < list.size(); i++) {
String goodsName="";
if(StringUtils.isNoneBlank(list.get(i).getCode())) {
goodsName=goodsName+list.get(i).getCode();
}
if(StringUtils.isNoneBlank(list.get(i).getBrand())) {
goodsName=goodsName+","+list.get(i).getBrand();
}
if(StringUtils.isNoneBlank(list.get(i).getPattern())) {
goodsName=goodsName+","+list.get(i).getPattern();
}
if(!"".equals(goodsName)) {
list.get(i).setNameText(list.get(i).getName()+"("+goodsName+")");
}else {
list.get(i).setNameText(list.get(i).getName());
}
}
return list;
}
public GoodslibVo selectByGoodsCode(String goodsCode) {
// TODO Auto-generated method stub
return baseMapper.selectByGoodsCode(goodsCode);
}
}

View File

@@ -0,0 +1,64 @@
package com.yxt.jlzx.oa.biz.index;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.result.ResultBean;
import com.yxt.jlzx.oa.api.index.AppDailyApi;
import com.yxt.jlzx.oa.api.index.AppDailyDto;
import com.yxt.jlzx.oa.api.index.AppDailyVo;
import com.yxt.jlzx.oa.biz.form.FormServiceCreator;
import com.yxt.jlzx.oa.biz.form.IFormService;
import io.swagger.annotations.Api;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* @author dimengzhe
* @date 2020/12/17 16:52
* @description
*/
@Controller
@RequestMapping("v1/app/daily")
@Api(tags = "APP-移动端日常管理")
public class AppDailyApiImpl implements AppDailyApi {
@Override
public ResultBean<AppDailyVo> save(AppDailyDto appDailyDto) throws Exception {
String processSid = appDailyDto.getProcessSid();
if (StringUtils.isBlank(processSid)) {
return new ResultBean<AppDailyVo>().fail().setMsg("流程sid不允许为空");
}
String createBySid = appDailyDto.getCreateBySid();
if (StringUtils.isBlank(createBySid)) {
return new ResultBean<AppDailyVo>().fail().setMsg("用户sid不允许为空");
}
IFormService formService = FormServiceCreator.creator(appDailyDto.getProcessSid());
if (formService == null) {
return new ResultBean<AppDailyVo>().fail().setData(null);
}
AppDailyVo appDailyVo = formService.isSave(appDailyDto);
if (appDailyVo == null) {
return new ResultBean<AppDailyVo>().fail().setMsg("保存失败");
}
return new ResultBean<AppDailyVo>().success().setData(appDailyVo);
}
@Override
public ResultBean<AppDailyVo> update(AppDailyDto appDailyDto) throws Exception {
String processSid = appDailyDto.getProcessSid();
if (StringUtils.isBlank(processSid)) {
return new ResultBean<AppDailyVo>().fail().setMsg("流程sid不允许为空");
}
String createBySid = appDailyDto.getCreateBySid();
if (StringUtils.isBlank(createBySid)) {
return new ResultBean<AppDailyVo>().fail().setMsg("用户sid不允许为空");
}
IFormService formService = FormServiceCreator.creator(appDailyDto.getProcessSid());
if (formService == null) {
return new ResultBean<AppDailyVo>().fail().setData(null);
}
AppDailyVo appDailyVo = formService.update(appDailyDto);
if (appDailyVo == null) {
return new ResultBean<AppDailyVo>().success().setMsg("修改失败");
}
return new ResultBean<AppDailyVo>().success().setMsg("修改成功");
}
}

View File

@@ -0,0 +1,191 @@
package com.yxt.jlzx.oa.biz.index;
import com.alibaba.fastjson.JSONObject;
import com.yxt.attend.api.attenderrand.AttendErrandApi;
import com.yxt.jlzx.oa.api.index.*;
import com.yxt.jlzx.oa.biz.oafilereceive.OafileReceiveService;
import com.yxt.jlzx.system.api.appsubset2.AppSubsetApi;
import com.yxt.jlzx.system.api.appsubset2.AppSubsetVo;
import com.yxt.jlzx.system.api.banner.BannerApi;
import com.yxt.jlzx.system.api.user.UserInfoVo;
import io.swagger.annotations.Api;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.yxt.common.base.utils.DateUtils;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.jlzx.oa.api.formtzgg.FormTzggQuery;
import com.yxt.jlzx.oa.api.formtzgg.FormTzggVo;
import com.yxt.jlzx.oa.biz.formtzgg.FormTzggService;
import com.yxt.jlzx.system.api.banner.BannerVo;
import com.yxt.jlzx.system.api.source.SourceApi;
import com.yxt.jlzx.system.api.source.SourceQuery;
import com.yxt.jlzx.system.api.source.SourceVo;
import com.yxt.jlzx.system.api.user.UserApi;
import com.yxt.workflow.api.task.WfTaskCountQuery;
import com.yxt.workflow.api.task.WfTaskCountVo;
import com.yxt.workflow.api.task.WfTaskQuery;
import com.yxt.workflow.api.task.WfTaskVo;
import com.yxt.workflow.api.wfmanger.WfManagerApi;
/**
* @author yxt_mtl
* @date 2020/10/16 11:55
* @description 移动端首页
*/
@Controller
@RequestMapping("v1/app/index")
@Api(tags = "APP-移动端首页")
public class AppIndexApiImpl implements AppIndexApi {
@Autowired
private SourceApi sourceApi;
@Autowired
private WfManagerApi wfManagerApi;
@Autowired
private UserApi userApi;
@Autowired
private FormTzggService tzggSerivce;
@Autowired
private BannerApi bannerApi;
@Autowired
private AppSubsetApi appSubsetApi;
@Autowired
private AttendErrandApi attendErrandApi;
@Autowired
private OafileReceiveService oafileReceiveService;
@Override
public ResultBean<AppIndexVo> index(AppIndexQuery query) {
ResultBean<AppIndexVo> rb = ResultBean.fireFail();
AppIndexVo vo = new AppIndexVo();
Map<String, Object> map = new HashMap<String, Object>();
vo.setUserSid(query.getUserSid());
//noWork待办数量 流程中的任务
WfTaskCountQuery taskQuery = new WfTaskCountQuery();
taskQuery.setActorSid(query.getUserSid());
taskQuery.setTaskType("0");
ResultBean<List<WfTaskCountVo>> resultBean_tasks = wfManagerApi.getTaskCounts(taskQuery);
if (resultBean_tasks.getSuccess()) {
if (resultBean_tasks.getData() != null && resultBean_tasks.getData().size() > 0) {
vo.setNoWork(resultBean_tasks.getData().get(0).getCount());
// //noRead待阅数量,与消息关联
// if (resultBean_tasks.getData().size() > 1){
// vo.setNoRead(resultBean_tasks.getData().get(1).getCount());
// }
}
}
taskQuery.setTaskType("1");
ResultBean<List<WfTaskCountVo>> resultBean_tasks1 = wfManagerApi.getTaskCounts(taskQuery);
if (resultBean_tasks1.getSuccess()) {
if (resultBean_tasks1.getData() != null && resultBean_tasks1.getData().size() > 0) {
vo.setNoRead(resultBean_tasks1.getData().get(0).getCount());
}
}
//tips列表
FormTzggQuery tzggQuery1 = new FormTzggQuery();
// tzggQuery.setClosingDate(DateUtils.dateConvertStr(new Date()));
PagerQuery<FormTzggQuery> tzggQuery = new PagerQuery<>();
tzggQuery.setParams(tzggQuery1);
tzggQuery.getParams().setClosingDate(DateUtils.dateConvertStr(new Date()));
UserInfoVo userInfoVo = userApi.fetchUserInfoBysid(query.getUserSid()).getData();
if (null != userInfoVo) {
tzggQuery.getParams().setCreateOrgSid(userInfoVo.getOrganizationSid());
} else {
tzggQuery.getParams().setCreateOrgSid("-1");
}
//取前6条
tzggQuery.setSize(6);
// List<FormTzggVo> list_tzgg = tzggSerivce.list(tzggQuery);
List<FormTzggVo> list_tzgg = tzggSerivce.pageList(tzggQuery).getRecords();
map.put("tips", list_tzgg);
//apps列表
/*SourceQuery sourceQuery = new SourceQuery();
sourceQuery.setPsid("oasid");
ResultBean<List<SourceVo>> resultBean_sources = sourceApi.list(sourceQuery);
if (resultBean_sources.getSuccess() && resultBean_sources.getData() != null) {
for (int i = 0; i < resultBean_sources.getData().size(); i++) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("userSid", query.getUserSid());
String jsonStr = JSONObject.toJSONString(jsonObject);
resultBean_sources.getData().get(i).setSourceExtra(jsonStr);
}
map.put("apps", resultBean_sources.getData());
} else {
map.put("apps", "[]");
}*/
String linkSid = query.getLinkSid();
ResultBean<List<AppSubsetVo>> appSubsetVoResultBean = appSubsetApi.selectVersionList(linkSid);
if (appSubsetVoResultBean.getSuccess() && appSubsetVoResultBean.getData() != null) {
map.put("apps", appSubsetVoResultBean.getData());
} else {
map.put("apps", "[]");
}
//banners列表
List<BannerVo> list_banner = new ArrayList<BannerVo>();
ResultBean<List<BannerVo>> list_banner1 = bannerApi.selectBannerList();
for (int i = 0; i < list_banner1.getData().size(); i++) {
BannerVo bannerVo = new BannerVo();
bannerVo.setPic(list_banner1.getData().get(i).getPic());
bannerVo.setSid(list_banner1.getData().get(i).getSid());
bannerVo.setUrl(list_banner1.getData().get(i).getUrl());
list_banner.add(bannerVo);
}
map.put("banners", list_banner);
vo.setMapsExtra(map);
return rb.setData(vo).success();
}
@Override
public ResultBean<AppIndexVo> Apphandle(IndexQuery query) throws ParseException {
AppIndexVo appIndexVo = new AppIndexVo();
//考勤申请
int attendApply = 0;
//文件传送待阅读
int fileDelivery = 0;
//查询考勤申请待办的
ResultBean hanld = attendErrandApi.getHanld(query.getUserSid());
if(StringUtils.isNotBlank(hanld.getData().toString())) {
attendApply=Integer.valueOf(hanld.getData().toString());
}else {
attendApply=0;
}
//文件传送待阅读
fileDelivery = oafileReceiveService.selectUnReadNum(query.getUserSid());
Map<String, Object> map = new HashMap<String, Object>();
map.put("3617e81e-5ce4-481e-9cae-33e110a26d77",fileDelivery);
map.put("d81b4a78-59cd-4f84-bfea-23cdba0ffb1e",attendApply);
appIndexVo.setMapsExtra(map);
return new ResultBean<AppIndexVo>().success().setData(appIndexVo);
}
}

View File

@@ -0,0 +1,238 @@
package com.yxt.jlzx.oa.biz.index;
import com.yxt.attend.api.attenderrand.AttendErrandApi;
import com.yxt.common.base.utils.DateUtils;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.jlzx.oa.api.dutyschedule.DutyScheduleApi;
import com.yxt.jlzx.oa.api.formtzgg.FormTzggQuery;
import com.yxt.jlzx.oa.api.formtzgg.FormTzggVo;
import com.yxt.jlzx.oa.api.index.IndexApi;
import com.yxt.jlzx.oa.api.index.IndexQuery;
import com.yxt.jlzx.oa.api.index.IndexVo;
import com.yxt.jlzx.oa.api.work.WorkDoAppVo;
import com.yxt.jlzx.oa.api.work.WorkDoVo;
import com.yxt.jlzx.oa.api.work.WorkQuery;
import com.yxt.jlzx.oa.biz.formjournal.FormJournalService;
import com.yxt.jlzx.oa.biz.formtzgg.FormTzggService;
import com.yxt.jlzx.oa.biz.oafilereceive.OafileReceiveService;
import com.yxt.jlzx.oa.biz.orgduty.OrgDutyService;
import com.yxt.jlzx.oa.biz.work.WorkService;
import com.yxt.jlzx.system.api.source.SourceApi;
import com.yxt.jlzx.system.api.user.UserApi;
import com.yxt.jlzx.system.api.user.UserInfoVo;
import com.yxt.workflow.api.task.WfTaskCountQuery;
import com.yxt.workflow.api.task.WfTaskCountVo;
import com.yxt.workflow.api.wfmanger.WfManagerApi;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.servlet.http.HttpServletRequest;
import java.text.ParseException;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Controller
@RequestMapping("v1/pc/index")
@Api(tags = "pc-首页")
public class IndexApiImpl implements IndexApi {
@Autowired
private SourceApi sourceApi;
@Autowired
private WfManagerApi wfManagerApi;
@Autowired
private UserApi userApi;
@Autowired
private FormTzggService tzggSerivce;
@Autowired
private DutyScheduleApi dutyScheduleApi;
@Autowired
private FormJournalService formJournalService;
@Autowired
private OrgDutyService orgDutyService;
@Autowired
private AttendErrandApi attendErrandApi;
@Autowired
private OafileReceiveService oafileReceiveService;
@Autowired
private WorkService workService;
@Autowired
private HttpServletRequest request;
@Override
public ResultBean<IndexVo> index(IndexQuery query) throws ParseException {
ResultBean<IndexVo> rb = ResultBean.fireFail();
IndexVo vo = new IndexVo();
Map<String, Object> map = new HashMap<String, Object>();
vo.setUserSid(query.getUserSid());
//1.我的工作数量
//2.通知公告列表
//3.值班表列表
//4.省局信息(多个选择页)
//5.内部刊物封面
//1.公文中心(待办)
WfTaskCountQuery taskQuery = new WfTaskCountQuery();
taskQuery.setActorSid(query.getUserSid());
taskQuery.setTaskType("0");
ResultBean<List<WfTaskCountVo>> resultBean_tasks = wfManagerApi.getTaskCounts(taskQuery);
// if (resultBean_tasks.getSuccess()) {
// if (resultBean_tasks.getData() != null && resultBean_tasks.getData().size() > 0) {
// vo.setWorkCount(resultBean_tasks.getData().get(0).getCount());
// }
// }
PagerQuery<WorkQuery> pagerQuery=new PagerQuery<WorkQuery>();
WorkQuery wq=new WorkQuery();
wq.setActorSid(query.getUserSid());
wq.setState("0");
wq.setTaskType("0");
wq.setProcessTypeSid("0001");
pagerQuery.setParams(wq);
PagerVo<WorkDoVo> workdovo = workService.doingWorks(pagerQuery);
// 结果转换
PagerVo<WorkDoAppVo> workdoappVo_pager = PagerUtil.switchPagerVo(workdovo);
for (int i = 0; i < workdovo.getRecords().size(); i++) {
WorkDoAppVo workDoVo = new WorkDoAppVo();
workdoappVo_pager.getRecords().add(workDoVo.fromMap(workdovo.getRecords().get(i).toMap()));
}
//2021.10.15 查询待阅的数量
PagerQuery<WorkQuery> pagerQuery1=new PagerQuery<WorkQuery>();
WorkQuery wq1 = new WorkQuery();
wq1.setActorSid(query.getUserSid());
wq1.setState("0");
wq1.setTaskType("1");
wq1.setProcessTypeSid("0001");
pagerQuery1.setParams(wq1);
PagerVo<WorkDoVo> workdovo1 = workService.doingWorks(pagerQuery1);
// 结果转换
PagerVo<WorkDoAppVo> workdoappVo_pager1 = PagerUtil.switchPagerVo(workdovo1);
for (int i = 0; i < workdovo1.getRecords().size(); i++) {
WorkDoAppVo workDoVo1 = new WorkDoAppVo();
workdoappVo_pager1.getRecords().add(workDoVo1.fromMap(workdovo1.getRecords().get(i).toMap()));
}
int allCount = (int) workdoappVo_pager.getTotal() + (int) workdoappVo_pager1.getTotal();
vo.setWorkCount(allCount);
// vo.setWorkCount( (int) workdoappVo_pager.getTotal());
//文件传送的待办数量
int fileDelivery = oafileReceiveService.selectUnReadNum(query.getUserSid());
vo.setFileDelivery(fileDelivery);
//日常管理的待办数量
if (resultBean_tasks.getSuccess()) {
if (resultBean_tasks.getData() != null && resultBean_tasks.getData().size() > 0) {
vo.setRcglCount( resultBean_tasks.getData().get(0).getCount()-(int)workService.doingWorks(pagerQuery).getTotal());
}
}
//2.通知公告列表(返回前六条)
FormTzggQuery tzggQuery1 = new FormTzggQuery();
PagerQuery<FormTzggQuery> tzggQuery = new PagerQuery<>();
tzggQuery.setParams(tzggQuery1);
tzggQuery.getParams().setClosingDate(DateUtils.dateConvertStr(new Date()));
tzggQuery.getParams().setUserSid(query.getUserSid());
// String token = request.getHeader("token");
UserInfoVo userInfoVo = userApi.fetchUserInfoBysid(query.getUserSid()).getData();
if (null != userInfoVo) {
//如果是管理员则显示所有
if (userInfoVo.getIsAdmin()==1){
tzggQuery.getParams().setUserSid("");
}
tzggQuery.getParams().setCreateOrgSid(userInfoVo.getOrganizationSid());
} else {
tzggQuery.getParams().setCreateOrgSid("-1");
}
//取前6条
tzggQuery.setSize(6);
// List<FormTzggVo> list_tzgg = tzggSerivce.list(tzggQuery);
List<FormTzggVo> list_tzgg = tzggSerivce.pageList1(tzggQuery).getRecords();
map.put("tips", list_tzgg);
//3.值班表列表
//List<DutyScheduleVo> list_duty = dutyScheduleApi.list(null);
// List<DutyScheduleVo> list_duty = new ArrayList<DutyScheduleVo>();
Map<String, Object> mapNew = orgDutyService.selectList(query.getOrgSid()).getData();
// for (int i = 0; i < 3; i++) {
// DutyScheduleVo dutyScheduleVo = new DutyScheduleVo();
// dutyScheduleVo.setName("name" + i);
// Map<String, Object> map1 = new HashMap<>();
// map1.put("sid", i);
// map1.put("nameOne",i);
// dutyScheduleVo.setMapList(map1);
// list_duty.add(dutyScheduleVo);
// }
map.put("dutyschedules", mapNew);
//4.省局信息(多个选择页)
Map<String, Object> map_notices = new HashMap<>();
/* String jslist = "{\"data\":[{\"title\":\"信息1\",\"createTime\":\"2021-01-01\",\"url\":\"\",\"extra\":\"\"}," +
"{\"title\":\"信息2\",\"createTime\":\"2021-01-02\",\"url\":\"\",\"extra\":\"\"}],\"title\":\"省局信息1\"}";
JSONObject jsonToArray = JSONObject.parseObject(jslist);
JSONArray data = jsonToArray.getJSONArray("data");
Map<String, Object> map1 = new HashMap<>();
map1.put("date", data.toArray());
map1.put("title", "省局信息1");
map_notices.put("page1", map1);
Map<String, Object> map2 = new HashMap<>();
map2.put("date", data.toArray());
map2.put("title", "省局信息2");
map_notices.put("page2", map2);*/
map.put("notices", map_notices);
//5.内部刊物封面
// FormJournalQuery journalQuery1 = new FormJournalQuery();
// PagerQuery<FormJournalQuery> journalQuery = new PagerQuery<>();
// journalQuery.setParams(journalQuery1);
//
// if (null != userInfoVo) {
// journalQuery.getParams().setCreateOrgSid(userInfoVo.getOrganizationSid());
// } else {
// journalQuery.getParams().setCreateOrgSid("-1");
// }
// //取前6条
// journalQuery.setSize(1);
// List<FormJournalVo> list_journal = formJournalService.pageList(journalQuery).getRecords();
// map.put("journal", list_journal.get(0));
vo.setMapsExtra(map);
return rb.setData(vo).success();
}
@Override
public ResultBean<IndexVo> handle(IndexQuery query) throws ParseException {
IndexVo indexVo = new IndexVo();
//考勤申请
int attendApply = 0;
//文件传送待阅读
int fileDelivery = 0;
//查询考勤申请待办的
ResultBean hanld = attendErrandApi.getHanld(query.getUserSid());
attendApply=Integer.valueOf(hanld.getData().toString());
//文件传送待阅读
fileDelivery = oafileReceiveService.selectUnReadNum(query.getUserSid());
indexVo.setAttendApply(attendApply);
indexVo.setFileDelivery(fileDelivery);
return new ResultBean<IndexVo>().success().setData(indexVo);
}
}

View File

@@ -0,0 +1,187 @@
package com.yxt.jlzx.oa.biz.oafile;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.jlzx.jlcyry.api.education.EducationVo;
import com.yxt.jlzx.oa.api.filesappendix.FilesappendixApi;
import com.yxt.jlzx.oa.api.filesappendix.FilesappendixDto;
import com.yxt.jlzx.oa.api.filesappendix.FilesappendixVo;
import com.yxt.jlzx.oa.api.oafile.*;
import com.yxt.jlzx.oa.api.oafilereceive.OafileReceive;
import com.yxt.jlzx.oa.api.oafilereceive.OafileReceiveDto;
import com.yxt.jlzx.oa.api.oafilesend.OafileSendVo;
import com.yxt.jlzx.oa.biz.filesappendix.FilesappendixApiImpl;
import com.yxt.jlzx.oa.biz.filesappendix.FilesappendixService;
import com.yxt.jlzx.oa.biz.oafilereceive.OafileReceiveApiImpl;
import com.yxt.jlzx.oa.biz.oafilereceive.OafileReceiveService;
import com.yxt.jlzx.oa.biz.oafilesend.OafileSendApiImpl;
import com.yxt.jlzx.oa.biz.oafilesend.OafileSendService;
import com.yxt.jlzx.oa.api.oafilesend.OafileSend;
import com.yxt.jlzx.oa.api.oafilesend.OafileSendDto;
import io.swagger.annotations.Api;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.validation.Valid;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author hanweijia
* @date 2020/9/29 13:30
* @description 角色信息
*/
@Controller
@RequestMapping("v1/oafiles")
@Api(tags = "发送文件")
public class OafileApiImpl implements OafileApi {
@Autowired
private OafileService oafileService;
@Autowired
private OafileSendApiImpl oafileSendApiImpl;
@Autowired
private OafileReceiveApiImpl oafileReceiveApiImpl;
@Autowired
private FilesappendixApiImpl filesappendixApiImpl;
@Autowired
private
OafileReceiveService OafileReceiveService;
@Autowired
private OafileSendService oafileSendService;
@Autowired
private FilesappendixService filesappendixService;
@Autowired
private FileUploadComponent fileUploadComponent;
@Override
public ResultBean<List<OafileVo>> list(@Valid OafileQuery query) {
return null;
}
@Override
public ResultBean<PagerVo<OafileVo>> pageList(@Valid PagerQuery<OafileQuery> pagerQuery) {
return null;
}
@Override
public ResultBean save(@Valid OafileDto oafiledto) {
Oafile oafile = new Oafile();
oafiledto.fillEntity(oafile);
if (!oafileService.save(oafile)) {
return ResultBean.fireFail();
}
if (oafiledto.getFilePathlist() != null && oafiledto.getFilePathlist().size() > 0) {
for (int i = 0; i < oafiledto.getFilePathlist().size(); i++) {
FilesappendixDto oafileAccessory = new FilesappendixDto();
oafileAccessory.setFilePath(oafiledto.getFilePathlist().get(i).getFilePath());
oafileAccessory.setFileType("sendFile");
oafileAccessory.setFileName(oafiledto.getFilePathlist().get(i).getFileName());
oafileAccessory.setLinkSid(oafile.getSid());
filesappendixApiImpl.save(oafileAccessory);
}
}
OafileSendDto sendDto = new OafileSendDto();
sendDto.setFileSid(oafile.getSid());
sendDto.setReceiveNames(oafiledto.getReceiveNames());
sendDto.setRemindWay(oafiledto.getRemindWay());
sendDto.setSenderName(oafiledto.getCreateMen());
sendDto.setSenderSid(oafiledto.getCreateBySid());
sendDto.setSendTime(oafile.getCreateTime());
sendDto.setRemarks(oafile.getRemarks());
oafileSendApiImpl.save(sendDto);
OafileReceiveDto receiveDto = new OafileReceiveDto();
receiveDto.setFileSid(oafile.getSid());
receiveDto.setReceiveTime(oafile.getCreateTime());
receiveDto.setReceiveUser(oafiledto.getReceiveNames());
receiveDto.setReceiveUserSid(oafiledto.getReceiveSids());
receiveDto.setRemindWay(oafiledto.getRemindWay());
receiveDto.setSenderName(oafiledto.getCreateMen());
receiveDto.setSenderSid(oafiledto.getCreateBySid());
receiveDto.setRemarks(oafile.getRemarks());
oafileReceiveApiImpl.save(receiveDto);
return ResultBean.fireSuccess().setData(oafile.getSid());
}
@Override
public ResultBean update(@Valid OafileDto dto, String sid) throws Exception {
return null;
}
@Override
public ResultBean delete(String sid) {
return null;
}
@Override
public ResultBean<OafileVo> getVo(String sid) {
return null;
}
@Override
public ResultBean<Map<String, Object>> selectByfileSid(String sid, String type) {
Map<String, Object> map = new HashMap<String, Object>();
Oafile oa = oafileService.fetchBySid(sid);
OafileVo vo = new OafileVo();
vo.setRemarks(oa.getRemarks());
if (StringUtils.isNoneBlank(type)) {
if ("cf".equals(type)) {//重发
vo.setTitle(oa.getTitle());
List<OafileReceive> receiveList = OafileReceiveService.fetchByFileSid(sid);
String receiveSids = "";
if (receiveList != null && receiveList.size() > 0) {
for (int i = 0; i < receiveList.size(); i++) {
if (receiveList.size() == i + 1) {
receiveSids = receiveSids + receiveList.get(i).getReceiveUserSid();
} else {
receiveSids = receiveSids + receiveList.get(i).getReceiveUserSid() + ",";
}
}
}
OafileSend Send = oafileSendService.fetchByFileSid(sid);
vo.setReceiveSids(receiveSids);
vo.setReceiveNames(Send.getReceiveNames());
List<FilesappendixVo> FilesappendixVolist = filesappendixService.queryBylinkSid(sid);
map.put("Oafile", vo);
map.put("fileList", FilesappendixVolist);
return new ResultBean<Map<String, Object>>().success().setData(map);
} else if ("zf".equals(type)) {//转发
vo.setTitle("转发:" + oa.getTitle());
List<FilesappendixVo> FilesappendixVolist = filesappendixService.queryBylinkSid(sid);
map.put("Oafile", vo);
map.put("fileList", FilesappendixVolist);
return new ResultBean<Map<String, Object>>().success().setData(map);
} else if ("hf".equals(type)) {//回复
vo.setTitle("回复:" + oa.getTitle());
OafileSend Send = oafileSendService.fetchByFileSid(sid);
List<FilesappendixVo> FilesappendixVolist = new ArrayList<FilesappendixVo>();
vo.setReceiveNames(Send.getSenderName());
vo.setReceiveSids(Send.getSenderSid());
map.put("Oafile", vo);
map.put("fileList", FilesappendixVolist);
return new ResultBean<Map<String, Object>>().success().setData(map);
} else {
return new ResultBean<Map<String, Object>>().fail().setData(map);
}
} else {
return new ResultBean<Map<String, Object>>().fail().setData(map);
}
}
}

View File

@@ -0,0 +1,17 @@
package com.yxt.jlzx.oa.biz.oafile;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yxt.jlzx.oa.api.filesappendix.Filesappendix;
import com.yxt.jlzx.oa.api.oafile.Oafile;
import org.apache.ibatis.annotations.Mapper;
/**
* @author dimengzhe
* @date 2020/10/14 14:29
* @description
*/
@Mapper
public interface OafileMaper extends BaseMapper<Oafile> {
}

View File

@@ -0,0 +1,6 @@
<?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.yxt.jlzx.oa.biz.oafile.Oafile">
</mapper>

View File

@@ -0,0 +1,17 @@
package com.yxt.jlzx.oa.biz.oafile;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.jlzx.oa.api.filesappendix.Filesappendix;
import com.yxt.jlzx.oa.api.oafile.Oafile;
import org.springframework.stereotype.Service;
/**
* @author dimengzhe
* @date 2020/10/14 14:29
* @description
*/
@Service
public class OafileService extends MybatisBaseService<OafileMaper, Oafile> {
}

View File

@@ -0,0 +1,53 @@
package com.yxt.jlzx.oa.biz.oafilereceive;
import com.yxt.common.core.result.ResultBean;
import com.yxt.jlzx.oa.api.oafilereceive.AppOafileReceiveApi;
import com.yxt.jlzx.oa.api.oafilereceive.OafileReceiveTwoVo;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author dimengzhe
* @date 2021/1/13 16:37
* @description
*/
@Controller
@RequestMapping("v1/appoafileReceives")
@Api(tags = "app接收文件")
public class AppOafileReceiveApiImpl implements AppOafileReceiveApi {
@Autowired
private OafileReceiveService oafileReceiveService;
@Override
public ResultBean unReadNum(String userSid) {
int i = oafileReceiveService.selectUnReadNum(userSid);
return ResultBean.fireSuccess().setData(i);
}
@Override
public ResultBean<List<Map<String, Object>>> oafileReceiveThreeList(String fileSid) {
//未读
int state = 0;
List<OafileReceiveTwoVo> oafileReceives = oafileReceiveService.selectByFileSidAndStateOne(fileSid, state);
List oaFileReceiveThreeVo = new ArrayList<>();
Map<String, Object> map = new HashMap<>();
map.put("list", oafileReceives);
map.put("title", "未读(" + oafileReceives.size() + ")");
oaFileReceiveThreeVo.add(map);
Map<String, Object> map1 = new HashMap<>();
state = 1;
List<OafileReceiveTwoVo> oafileReceiveList = oafileReceiveService.selectByFileSidAndStateOne(fileSid, state);
map1.put("list", oafileReceiveList);
map1.put("title", "已读(" + oafileReceiveList.size() + ")");
oaFileReceiveThreeVo.add(map1);
return new ResultBean<List<Map<String, Object>>>().success().setData(oaFileReceiveThreeVo);
}
}

View File

@@ -0,0 +1,235 @@
package com.yxt.jlzx.oa.biz.oafilereceive;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.utils.DateUtils;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.jlzx.oa.api.filesappendix.FilesappendixVo;
import com.yxt.jlzx.oa.api.oafile.Oafile;
import com.yxt.jlzx.oa.api.oafile.OafileVo;
import com.yxt.jlzx.oa.api.oafilereceive.*;
import com.yxt.jlzx.oa.biz.filesappendix.FilesappendixService;
import com.yxt.jlzx.oa.biz.oafile.OafileService;
import com.yxt.jlzx.oa.biz.oafilesend.OafileSendService;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author yxt_mtl
* @date 2020/9/29 13:30
* @description 角色信息
*/
@Controller
@RequestMapping("v1/oafileReceives")
@Api(tags = "接收文件")
public class OafileReceiveApiImpl implements OafileReceiveApi {
@Autowired
private OafileReceiveService oafileReceiveService;
@Autowired
private OafileService oafileService;
@Autowired
private FilesappendixService filesappendixService;
@Autowired
private OafileSendService oafileSendService;
@Autowired(required = false)
private HttpServletResponse response;
@Autowired
private FileUploadComponent fileUploadComponent;
@Autowired(required = false)
private HttpServletRequest request;
@Override
public ResultBean<List<OafileReceiveVo>> list(@Valid OafileReceiveQuery query) {
// TODO Auto-generated method stub
return null;
}
@Override
public ResultBean<PagerVo<OafileReceiveVo>> pageList(@Valid PagerQuery<OafileReceiveQuery> pagerQuery) {
ResultBean<PagerVo<OafileReceiveVo>> rb = ResultBean.fireFail();
IPage<OafileReceiveVo> page = oafileReceiveService.pageList(pagerQuery);
//把Ipage转换为PageVo
PagerVo<OafileReceiveVo> pv_result = PagerUtil.pageToVo(page, null);
return rb.success().setData(pv_result);
}
@Override
public ResultBean save(@Valid OafileReceiveDto dto) {
if (dto != null && StringUtils.isNotBlank(dto.getReceiveUserSid())) {
int ii = dto.getReceiveUserSid().indexOf(",");
if (dto.getReceiveUserSid().indexOf(",") >= -1) {
String[] ReceiveUserSids = dto.getReceiveUserSid().split(",");
String[] receiveUsers = dto.getReceiveUser().split(",");
for (int i = 0; ReceiveUserSids.length > i; i++) {
OafileReceive oafileReceive = new OafileReceive();
dto.fillEntity(oafileReceive);
oafileReceive.setReceiveUserSid(ReceiveUserSids[i]);
oafileReceive.setReceiveUser(receiveUsers[i]);
oafileReceive.setState(0);
Date receiveTime = dto.getReceiveTime();
String dateStr = new SimpleDateFormat("yyyy-MM-dd").format(receiveTime);
oafileReceive.setReceiveTimeStr(dateStr);
if (!oafileReceiveService.save(oafileReceive)) {
return ResultBean.fireFail();
}
}
}
}
return ResultBean.fireSuccess().setMsg("保存成功");
}
@Override
public ResultBean update(@Valid OafileReceiveDto dto, String sid) throws Exception {
return null;
}
@Override
public ResultBean delete(String sid) {
OafileReceive oafileReceive = oafileReceiveService.fetchBySid(sid);
if (oafileReceive == null) {
return ResultBean.fireFail().setMsg("该文件不存在");
}
int i = oafileReceiveService.deleteBySid(sid);
if (i == 0) {
return ResultBean.fireFail().setMsg("删除失败");
}
return ResultBean.fireSuccess().setMsg("删除成功");
}
@Override
public ResultBean<OafileReceiveVo> getVo(String sid) {
return null;
}
@Override
public ResultBean<Map<String, Object>> fileDtail(String sid) {
Map<String, Object> map = new HashMap<String, Object>();
OafileReceive receive = oafileReceiveService.fetchBySid(sid);
Oafile oafile = oafileService.fetchBySid(receive.getFileSid());
OafileVo vo = new OafileVo();
vo.setTitle(oafile.getTitle());
vo.setRemarks(oafile.getRemarks());
vo.setSid(oafile.getSid());
List<OafileReceive> receiveList = oafileReceiveService.fetchByFileSid(receive.getFileSid());
String receiveSids = "";
if (receiveList != null && receiveList.size() > 0) {
for (int i = 0; i < receiveList.size(); i++) {
receiveSids = receiveSids + ";" + receiveList.get(i).getReceiveUserSid();
}
}
String receiveTime = "";
if (receive != null && receive.getReceiveTime() != null) {
receiveTime = DateUtils.dateConvertStr(receive.getReceiveTime());
}
vo.setReceiveNames(receive.getReceiveUser());
vo.setReceiveSids(receive.getReceiveUserSid());
vo.setCreateTime(receiveTime);
vo.setSenderName(receive.getSenderName());
vo.setSenderSid(receive.getSenderSid());
List<FilesappendixVo> FilesappendixVolist = filesappendixService.queryBylinkSid(receive.getFileSid());
map.put("Oafile", vo);
map.put("fileList", FilesappendixVolist);
map.put("sendRemarks", "");
if (receive.getState() != 1) {
receive.setModifyTime(new Date());//修改已阅时间
receive.setState(1);//点击详情 为已阅
oafileReceiveService.updateById(receive);
}
//将已发文件表中的已读描述修改
//根据receive的fileSid和state为1查询已读数量
int size = oafileReceiveService.selectByFileSidAndState(receive.getFileSid(), 1);
String sendRemarks = "";
if (size == receiveList.size()) {
sendRemarks = "全部已读";
} else {
sendRemarks = "已读 " + size + "/" + receiveList.size();
}
//根据fileSid更新已发文件的
oafileSendService.updateByFileSid(receive.getFileSid(), sendRemarks);
return new ResultBean<Map<String, Object>>().success().setData(map);
}
@Override
public ResultBean<List<OafileReceiveOneVo>> selectByFileSid(String fileSid) {
List<OafileReceiveOneVo> list = oafileReceiveService.selectByFileSid(fileSid);
if (list != null) {
for (int i = 0; i < list.size(); i++) {
if ("未阅".equals(list.get(i).getState())) {
list.get(i).setModifyTime("");
}
}
}
return new ResultBean<List<OafileReceiveOneVo>>().success().setData(list);
}
@Override
public void exportOrder(String filePath) throws IOException {
String path = fileUploadComponent.getUrlPrefix();
File file = null;
InputStream inputStream = null;
ServletOutputStream out = null;
if (filePath.indexOf(path) > -1) {
filePath = filePath.replace(path, "");
}
try {
request.setCharacterEncoding("UTF-8");
String realPath = fileUploadComponent.getUploadPath();
file = new File(realPath + filePath);
inputStream = new FileInputStream(file);
response.setCharacterEncoding("utf-8");
response.setContentType("application/pdf");
response.setHeader("content-disposition", "attachment;filename="
+ URLEncoder.encode(filePath, "UTF-8"));
out = response.getOutputStream();
byte[] buffer = new byte[512]; // 缓冲区
int bytesToRead = -1;
// 通过循环将读入的Excel文件的内容输出到浏览器中
while ((bytesToRead = inputStream.read(buffer)) != -1) {
out.write(buffer, 0, bytesToRead);
}
out.flush();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (inputStream != null) {
inputStream.close();
}
if (out != null) {
out.close();
}
if (file != null) {
}
}
}
}

View File

@@ -0,0 +1,48 @@
package com.yxt.jlzx.oa.biz.oafilereceive;
import java.util.List;
import com.yxt.jlzx.oa.api.oafilereceive.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.jlzx.oa.api.car.Car;
import com.yxt.jlzx.oa.api.car.CarQuery;
import com.yxt.jlzx.oa.api.car.CarVo;
import com.yxt.jlzx.oa.api.contract.Contract;
import com.yxt.jlzx.oa.api.contract.ContractQuery;
import com.yxt.jlzx.oa.api.contract.ContractVo;
import com.yxt.jlzx.oa.api.oafile.Oafile;
import com.yxt.jlzx.oa.api.oafile.OafileQuery;
import com.yxt.jlzx.oa.api.oafile.OafileVo;
import com.yxt.jlzx.oa.api.oafilesend.OafileSend;
import com.yxt.jlzx.oa.api.oafilesend.OafileSendQuery;
import com.yxt.jlzx.oa.api.oafilesend.OafileSendVo;
/**
* @author yxt_mtl
* @date 2020/10/12 11:14
* @description
*/
@Mapper
public interface OafileReceiveMapper extends BaseMapper<OafileReceive> {
//分页列表
IPage<OafileReceiveVo> pageList(IPage<OafileReceiveQuery> page, @Param(Constants.WRAPPER) Wrapper<OafileReceiveVo> qw);
List<OafileReceive> fetchByFileSid(String fileSid);
void updateState(String sid);
List<OafileReceiveOneVo> selectByFileSid(String fileSid);
public int selectUnReadNum(String userSid);
public int selectByFileSidAndState(@Param("fileSid") String fileSid, @Param("state") int state);
public List<OafileReceiveTwoVo> selectByFileSidAndStateOne(@Param("fileSid") String fileSid, @Param("state") int state);
}

View File

@@ -0,0 +1,68 @@
<?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.yxt.jlzx.oa.biz.oafilereceive.OafileReceiveMapper">
<select id="pageList" resultType="com.yxt.jlzx.oa.api.oafilereceive.OafileReceiveVo">
SELECT r.fileSid,
r.senderSid,
r.senderName,
r.receiveUserSid,
r.receiveUser,
DATE_FORMAT(r.receiveTime, '%Y-%m-%d %H:%m:%s') AS receiveTime,
r.remindWay,
r.state,
r.sid,
r.remarks,
o.title,
r.receiveTimeStr,
r.sendRemarks
FROM oafile_receive r
LEFT JOIN oafile o ON o.sid = r.fileSid
${ew.customSqlSegment}
</select>
<select id="fetchByFileSid" resultType="com.yxt.jlzx.oa.api.oafilereceive.OafileReceive">
SELECT *
FROM oafile_receive
WHERE fileSid = #{fileSid}
</select>
<select id="selectByFileSid" resultType="com.yxt.jlzx.oa.api.oafilereceive.OafileReceiveOneVo">
SELECT (SELECT senderName FROM oafile_send WHERE fileSid = r.fileSid) senderName,
r.receiveUser,
r.receiveUserSid,
modifyTime,
r.sid,
(CASE WHEN r.state = 1 THEN "已阅" ELSE "未阅" END) state
FROM oafile_receive r
WHERE fileSid = #{fileSid}
</select>
<update id="updateState">
UPDATE oafile_receive
SET state =1
WHERE sid = #{sid}
</update>
<select id="selectUnReadNum" resultType="java.lang.Integer">
SELECT count(*)
FROM oafile_receive
WHERE receiveUserSid = #{userSid}
AND state = 0
</select>
<select id="selectByFileSidAndState" resultType="java.lang.Integer">
SELECT count(*)
FROM oafile_receive
WHERE fileSid = #{fileSid}
AND state = #{state}
</select>
<select id="selectByFileSidAndStateOne" resultType="com.yxt.jlzx.oa.api.oafilereceive.OafileReceiveTwoVo">
SELECT receiveUser name
FROM oafile_receive
WHERE fileSid = #{fileSid}
AND state = #{state}
</select>
</mapper>

View File

@@ -0,0 +1,106 @@
package com.yxt.jlzx.oa.biz.oafilereceive;
import java.util.List;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.jlzx.oa.api.oafilereceive.*;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.jlzx.oa.api.contract.Contract;
import com.yxt.jlzx.oa.api.contract.ContractQuery;
import com.yxt.jlzx.oa.api.contract.ContractVo;
import com.yxt.jlzx.oa.api.oafile.Oafile;
import com.yxt.jlzx.oa.api.oafile.OafileQuery;
import com.yxt.jlzx.oa.api.oafile.OafileVo;
/**
* @author yxt_mtl
* @date 2020/10/12 11:12
* @description
*/
@Service
public class OafileReceiveService extends MybatisBaseService<OafileReceiveMapper, OafileReceive> {
// 分页列表
public IPage<OafileReceiveVo> pageList(PagerQuery<OafileReceiveQuery> pagerQuery) {
IPage<OafileReceiveQuery> page = PagerUtil.queryToPage(pagerQuery);
QueryWrapper<OafileReceiveVo> qw = buildQueryWrapper(pagerQuery.getParams());
return baseMapper.pageList(page, qw);
}
/**
* 解析和组装查询条件封装在qw中
*
* @param pagerQuery
* @return
*/
private QueryWrapper<OafileReceiveVo> buildQueryWrapper(OafileReceiveQuery pagerQuery) {
QueryWrapper<OafileReceiveVo> qw = new QueryWrapper<>();
if (pagerQuery != null) {
if (org.apache.commons.lang3.StringUtils.isNotBlank(pagerQuery.getTitle())) {
qw.like("o.title", pagerQuery.getTitle());
}
if (org.apache.commons.lang3.StringUtils.isNotBlank(pagerQuery.getSenderName())) {
qw.like("r.senderName", pagerQuery.getSenderName());
}
if (pagerQuery.getStartDate() != null && pagerQuery.getStartDate() != "") {
qw.apply(StringUtils.isNotBlank(pagerQuery.getStartDate()),
"date_format (r.receiveTime,'%Y-%m-%d') >= str_to_date('" + pagerQuery.getStartDate() + "','%Y-%m-%d')");
}
if (pagerQuery.getEndDate() != "" && pagerQuery.getEndDate() != null) {
qw.apply(StringUtils.isNotBlank(pagerQuery.getEndDate()),
"date_format (r.receiveTime,'%Y-%m-%d') <= str_to_date('" + pagerQuery.getEndDate() + "','%Y-%m-%d')");
}
if (StringUtils.isNotBlank(pagerQuery.getUserSid())) {
qw.eq("r.receiveUserSid", pagerQuery.getUserSid());
}
if (StringUtils.isNotBlank(pagerQuery.getState())) {
qw.eq("r.state", pagerQuery.getState());
}
qw.orderByDesc("r.createTime");
}
return qw;
}
public List<OafileReceive> fetchByFileSid(String fileSid) {
// TODO Auto-generated method stub
return baseMapper.fetchByFileSid(fileSid);
}
public void updateState(String sid) {
baseMapper.updateState(sid);
}
public List<OafileReceiveOneVo> selectByFileSid(String fileSid) {
// TODO Auto-generated method stub
return baseMapper.selectByFileSid(fileSid);
}
public int selectUnReadNum(String userSid) {
return baseMapper.selectUnReadNum(userSid);
}
/**
* 根据文件sid和已读状态查询该文件已读的个数
*
* @param fileSid 文件sid
* @param state 状态
* @return
*/
public int selectByFileSidAndState(String fileSid, int state) {
return baseMapper.selectByFileSidAndState(fileSid, state);
}
public List<OafileReceiveTwoVo> selectByFileSidAndStateOne(String fileSid, int state) {
return baseMapper.selectByFileSidAndStateOne(fileSid,state);
}
}

View File

@@ -0,0 +1,164 @@
package com.yxt.jlzx.oa.biz.oafilesend;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.validation.Valid;
import com.alibaba.fastjson.JSON;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.utils.DateUtils;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.jlzx.oa.api.filesappendix.FilesappendixVo;
import com.yxt.jlzx.oa.api.oafile.Oafile;
import com.yxt.jlzx.oa.api.oafile.OafileVo;
import com.yxt.jlzx.oa.api.oafilereceive.OafileReceive;
import com.yxt.jlzx.oa.api.oafilesend.OafileSend;
import com.yxt.jlzx.oa.api.oafilesend.OafileSendApi;
import com.yxt.jlzx.oa.api.oafilesend.OafileSendDto;
import com.yxt.jlzx.oa.api.oafilesend.OafileSendQuery;
import com.yxt.jlzx.oa.api.oafilesend.OafileSendVo;
import com.yxt.jlzx.oa.biz.filesappendix.FilesappendixService;
import com.yxt.jlzx.oa.biz.oafile.OafileService;
import com.yxt.jlzx.oa.biz.oafilereceive.OafileReceiveService;
import com.yxt.jlzx.oa.biz.workflow.WorkFlowService;
import io.swagger.annotations.Api;
/**
* @author yxt_mtl
* @date 2020/9/29 13:30
* @description 角色信息
*/
@Controller
@RequestMapping("v1/oafileSends")
@Api(tags = "已发文件")
public class OafileSendApiImpl implements OafileSendApi {
@Autowired
private OafileSendService oafileSendService;
@Autowired
private WorkFlowService wfservice;
@Autowired
private OafileReceiveService oafileReceiveService;
@Autowired
private OafileService oafileService;
@Autowired
private FilesappendixService filesappendixService;
@Override
public ResultBean<List<OafileSendVo>> list(@Valid OafileSendQuery query) {
// TODO Auto-generated method stub
return null;
}
@Override
public ResultBean<PagerVo<OafileSendVo>> pageList(@Valid PagerQuery<OafileSendQuery> pagerQuery) {
ResultBean<PagerVo<OafileSendVo>> rb = ResultBean.fireFail();
IPage<OafileSendVo> page = oafileSendService.pageList(pagerQuery);
List<OafileSendVo> records = page.getRecords();
if(records!=null) {
for (int i = 0; i < records.size(); i++) {
int stuNum=records.get(i).getStuNum();
int conNum=records.get(i).getConNum();
if(stuNum==0) {
records.get(i).setStu("全部未阅");
}else if(stuNum==conNum) {
records.get(i).setStu("全部已阅");
}else{
records.get(i).setStu("部分已阅");
}
}
}
//把Ipage转换为PageVo
PagerVo<OafileSendVo> pv_result = PagerUtil.pageToVo(page, null);
return rb.success().setData(pv_result);
}
@Override
public ResultBean save(@Valid OafileSendDto dto) {
OafileSend oafileSend = new OafileSend();
dto.fillEntity(oafileSend);
Date sendTime = dto.getSendTime();
String dateStr = new SimpleDateFormat("yyyy-MM-dd").format(sendTime);
oafileSend.setSendTimeStr(dateStr);
//
String receiveNames = dto.getReceiveNames();
String[] a = receiveNames.split(",");
// List<String> addressList = JSON.parseArray(receiveNames, String.class);
int size = a.length;
String sendRemarks = "已读 0/" + size;
oafileSend.setSendRemarks(sendRemarks);
if (!oafileSendService.save(oafileSend)) {
return ResultBean.fireFail();
}
return ResultBean.fireSuccess().setData(oafileSend.getSid());
}
@Override
public ResultBean update(@Valid OafileSendDto dto, String sid) throws Exception {
return null;
}
@Override
public ResultBean delete(String sid) {
OafileSend oafileSend = oafileSendService.fetchBySid(sid);
if (oafileSend == null) {
return ResultBean.fireFail().setMsg("该已发文件不存在");
}
int i = oafileSendService.deleteBySid(sid);
if (i == 0) {
return ResultBean.fireFail().setMsg("删除失败");
}
return ResultBean.fireSuccess().setMsg("删除成功");
}
@Override
public ResultBean<OafileSendVo> getVo(String sid) {
return null;
}
@Override
public ResultBean<Map<String, Object>> fileDtail(String sid) {
Map<String, Object> map = new HashMap<String, Object>();
OafileSend send = oafileSendService.fetchBySid(sid);
String sendtime = "";
if (send != null && send.getSendTime() != null) {
sendtime = DateUtils.dateConvertStr(send.getSendTime());
}
Oafile oafile = oafileService.fetchBySid(send.getFileSid());
OafileVo vo = new OafileVo();
vo.setTitle(oafile.getTitle());
vo.setCreateTime(sendtime);
vo.setRemarks(oafile.getRemarks());
vo.setSid(oafile.getSid());
List<OafileReceive> receiveList = oafileReceiveService.fetchByFileSid(send.getFileSid());
String receiveSids = "";
if (receiveList != null && receiveList.size() > 0) {
for (int i = 0; i < receiveList.size(); i++) {
receiveSids = receiveSids + ";" + receiveList.get(i).getReceiveUserSid();
}
}
vo.setSenderName(send.getSenderName());
vo.setSenderSid(send.getSenderSid());
vo.setReceiveNames(send.getReceiveNames());
vo.setReceiveSids(receiveSids);
List<FilesappendixVo> FilesappendixVolist = filesappendixService.queryBylinkSid(send.getFileSid());
map.put("Oafile", vo);
map.put("fileList", FilesappendixVolist);
map.put("sendRemarks", send.getSendRemarks());
return new ResultBean<Map<String, Object>>().success().setData(map);
}
}

View File

@@ -0,0 +1,37 @@
package com.yxt.jlzx.oa.biz.oafilesend;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.jlzx.oa.api.car.Car;
import com.yxt.jlzx.oa.api.car.CarQuery;
import com.yxt.jlzx.oa.api.car.CarVo;
import com.yxt.jlzx.oa.api.contract.Contract;
import com.yxt.jlzx.oa.api.contract.ContractQuery;
import com.yxt.jlzx.oa.api.contract.ContractVo;
import com.yxt.jlzx.oa.api.oafile.Oafile;
import com.yxt.jlzx.oa.api.oafile.OafileQuery;
import com.yxt.jlzx.oa.api.oafile.OafileVo;
import com.yxt.jlzx.oa.api.oafilesend.OafileSend;
import com.yxt.jlzx.oa.api.oafilesend.OafileSendQuery;
import com.yxt.jlzx.oa.api.oafilesend.OafileSendVo;
/**
* @author yxt_mtl
* @date 2020/10/12 11:14
* @description
*/
@Mapper
public interface OafileSendMapper extends BaseMapper<OafileSend> {
//分页列表
IPage<OafileSendVo> pageList(IPage<OafileSendQuery> page, @Param(Constants.WRAPPER) Wrapper<OafileSendVo> qw);
OafileSend fetchByFileSid(String fileSid);
public int updateByFileSid(@Param("fileSid") String fileSid, @Param("sendRemarks") String sendRemarks);
}

View File

@@ -0,0 +1,34 @@
<?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.yxt.jlzx.oa.biz.oafilesend.OafileSendMapper">
<select id="pageList" resultType="com.yxt.jlzx.oa.api.oafilesend.OafileSendVo">
SELECT s.fileSid,
s.senderName,
s.senderSid,
s.receiveNames,
s.sendTime,
s.remindWay,
s.sid,
s.remarks,
o.title,
(SELECT count(id) FROM oafile_receive WHERE fileSid = s.fileSid AND state = 1) AS stuNum,
(SELECT count(id) FROM oafile_receive WHERE fileSid = s.fileSid ) AS conNum,
s.sendRemarks,
s.sendTimeStr
FROM oafile_send s
LEFT JOIN oafile o ON o.sid = s.fileSid
${ew.customSqlSegment}
</select>
<select id="fetchByFileSid" resultType="com.yxt.jlzx.oa.api.oafilesend.OafileSend">
SELECT *
FROM oafile_send
WHERE fileSid = #{fileSid}
</select>
<update id="updateByFileSid">
UPDATE oafile_send
SET sendRemarks = #{sendRemarks}
WHERE fileSid = #{fileSid}
</update>
</mapper>

View File

@@ -0,0 +1,88 @@
package com.yxt.jlzx.oa.biz.oafilesend;
import com.yxt.common.base.utils.StringUtils;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.jlzx.oa.api.contract.Contract;
import com.yxt.jlzx.oa.api.contract.ContractQuery;
import com.yxt.jlzx.oa.api.contract.ContractVo;
import com.yxt.jlzx.oa.api.oafile.Oafile;
import com.yxt.jlzx.oa.api.oafile.OafileQuery;
import com.yxt.jlzx.oa.api.oafile.OafileVo;
import com.yxt.jlzx.oa.api.oafilesend.OafileSend;
import com.yxt.jlzx.oa.api.oafilesend.OafileSendQuery;
import com.yxt.jlzx.oa.api.oafilesend.OafileSendVo;
/**
* @author yxt_mtl
* @date 2020/10/12 11:12
* @description
*/
@Service
public class OafileSendService extends MybatisBaseService<OafileSendMapper, OafileSend> {
// 分页列表
public IPage<OafileSendVo> pageList(PagerQuery<OafileSendQuery> pagerQuery) {
IPage<OafileSendQuery> page = PagerUtil.queryToPage(pagerQuery);
QueryWrapper<OafileSendVo> qw = buildQueryWrapper(pagerQuery.getParams());
return baseMapper.pageList(page, qw);
}
/**
* 解析和组装查询条件封装在qw中
*
* @param pagerQuery
* @return
*/
private QueryWrapper<OafileSendVo> buildQueryWrapper(OafileSendQuery pagerQuery) {
QueryWrapper<OafileSendVo> qw = new QueryWrapper<>();
if (pagerQuery != null) {
if (org.apache.commons.lang3.StringUtils.isNotBlank(pagerQuery.getTitle())) {
qw.like("o.title", pagerQuery.getTitle());
}
if (StringUtils.isNotBlank(pagerQuery.getSenderName())) {
qw.like("s.receiveNames", pagerQuery.getSenderName());
}
if (StringUtils.isNotBlank(pagerQuery.getStartDate())) {
// qw.ge("s.sendTime", pagerQuery.getStartDate());
qw.apply(StringUtils.isNotBlank(pagerQuery.getStartDate()),
"date_format (s.sendTime,'%Y-%m-%d') >= str_to_date('" + pagerQuery.getStartDate() + "','%Y-%m-%d')");
}
if (StringUtils.isNotBlank(pagerQuery.getEndDate())) {
// qw.le("s.sendTime", pagerQuery.getEndDate());
qw.apply(StringUtils.isNotBlank(pagerQuery.getEndDate()),
"date_format (s.sendTime,'%Y-%m-%d') <= str_to_date('" + pagerQuery.getEndDate() + "','%Y-%m-%d')");
}
if (StringUtils.isNotBlank(pagerQuery.getUserSid())) {
qw.eq("s.senderSid", pagerQuery.getUserSid());
}
qw.orderByDesc("s.createTime");
}
return qw;
}
public OafileSend fetchByFileSid(String fileSid) {
// TODO Auto-generated method stub
return baseMapper.fetchByFileSid(fileSid);
}
public int updateByFileSid(String fileSid, String sendRemarks) {
return baseMapper.updateByFileSid(fileSid, sendRemarks);
}
}

View File

@@ -0,0 +1,38 @@
package com.yxt.jlzx.oa.biz.orgduty;
import com.yxt.common.core.result.ResultBean;
import com.yxt.jlzx.oa.api.filesappendix.Filesappendix;
import com.yxt.jlzx.oa.api.form.FormDto;
import com.yxt.jlzx.oa.api.orgduty.OrgDuty;
import com.yxt.jlzx.oa.api.orgduty.OrgDutyApi;
import com.yxt.jlzx.oa.api.orgduty.OrgDutyDto;
import com.yxt.jlzx.oa.api.project.Project;
import com.yxt.workflow.api.task.WfTaskVo;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* @author dimengzhe
* @date 2021/1/15 10:48
* @description
*/
@Controller
@RequestMapping("v1/orgduty")
@Api(tags = "值班")
public class OrgDutyApiImpl implements OrgDutyApi {
@Autowired
private OrgDutyService orgDutyService;
@Override
public ResultBean save(OrgDutyDto orgDutyDto) {
OrgDuty orgDuty = new OrgDuty();
orgDutyDto.fillEntity(orgDuty);
if (!orgDutyService.save(orgDuty)) {
return ResultBean.fireFail().setMsg("保存失败");
}
return ResultBean.fireSuccess().setData(orgDuty.getSid());
}
}

View File

@@ -0,0 +1,36 @@
package com.yxt.jlzx.oa.biz.orgduty;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.jlzx.oa.api.orgduty.OrgDuty;
import com.yxt.jlzx.oa.api.orgdutys.OrgDutysListVo;
import com.yxt.jlzx.oa.api.orgdutys.OrgDutysOneDto;
import com.yxt.jlzx.system.api.user.UserVerifyVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @author dimengzhe
* @date 2021/1/16 14:52
* @description
*/
@Mapper
public interface OrgDutyMapper extends BaseMapper<OrgDuty> {
public OrgDuty selectByOrgSid(String organizationSid);
public OrgDuty selectByOrgSidOne(@Param("organizationSid") String organizationSid, @Param("type") String type);
public List<OrgDuty> selectByOrgSidList(String orgSid);
public List<OrgDuty> selectByOrgSidList1(@Param("orgSid") String orgSid,@Param("typeSid") String typeSid);
public List<OrgDuty> listOne(String orgSid);
public IPage<OrgDutysListVo> pagerList(
IPage<?> page, @Param(Constants.WRAPPER) Wrapper<OrgDutysListVo> qw);
}

View File

@@ -0,0 +1,47 @@
<?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.yxt.jlzx.oa.biz.orgduty.OrgDutyMapper">
<select id="selectByOrgSid" resultType="com.yxt.jlzx.oa.api.orgduty.OrgDuty">
SELECT *
FROM org_duty
WHERE orgSid = #{organizationSid}
</select>
<select id="selectByOrgSidOne" resultType="com.yxt.jlzx.oa.api.orgduty.OrgDuty">
SELECT *
FROM org_duty
WHERE orgSid = #{organizationSid}
AND dutyTypeSid = #{type}
</select>
<select id="selectByOrgSidList" resultType="com.yxt.jlzx.oa.api.orgduty.OrgDuty">
SELECT *
FROM org_duty
WHERE orgSid = #{orgSid}
ORDER BY createTime DESC
</select>
<select id="selectByOrgSidList1" resultType="com.yxt.jlzx.oa.api.orgduty.OrgDuty">
SELECT *
FROM org_duty
WHERE orgSid = #{orgSid}
AND dutyTypeSid = #{typeSid}
ORDER BY createTime DESC
</select>
<select id="listOne" resultType="com.yxt.jlzx.oa.api.orgduty.OrgDuty">
SELECT *
FROM jlzx_oa.org_duty
WHERE orgSid = #{orgSid}
</select>
<select id="pagerList" resultType="com.yxt.jlzx.oa.api.orgdutys.OrgDutysListVo">
SELECT od.sid,od.startTime,od.endTime,od.dutyDay day
FROM org_duty_date od
LEFT JOIN jlzx_oa.org_duty o ON o.sid = od.orgDutySid
${ew.customSqlSegment}
</select>
</mapper>

View File

@@ -0,0 +1,286 @@
package com.yxt.jlzx.oa.biz.orgduty;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.jlzx.oa.api.orgduty.OrgDuty;
import com.yxt.jlzx.oa.api.orgdutydate.OrgDutyDate;
import com.yxt.jlzx.oa.api.orgdutygroup.OrgDutyGroup;
import com.yxt.jlzx.oa.api.orgdutygroupmember.OrgDutyGroupMember;
import com.yxt.jlzx.oa.api.orgdutys.OrgDutysListVo;
import com.yxt.jlzx.oa.api.orgdutys.OrgDutysOneDto;
import com.yxt.jlzx.oa.api.orgdutys.OrgDutysQuery;
import com.yxt.jlzx.oa.biz.orgdutydate.OrgDutyDateService;
import com.yxt.jlzx.oa.biz.orgdutygroup.OrgDutyGroupService;
import com.yxt.jlzx.oa.biz.orgdutygroupmember.OrgDutyGroupMemberService;
import com.yxt.jlzx.system.api.user.UserApi;
import com.yxt.jlzx.system.api.user.UserStaffOneVo;
import com.yxt.jlzx.system.api.user.UserVerifyQuery;
import com.yxt.jlzx.system.api.user.UserVerifyVo;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
/**
* @author dimengzhe
* @date 2021/1/16 14:52
* @description
*/
@Service
public class OrgDutyService extends MybatisBaseService<OrgDutyMapper, OrgDuty> {
@Autowired
private OrgDutyDateService orgDutyDateService;
@Autowired
private OrgDutyGroupService orgDutyGroupService;
@Autowired
private OrgDutyGroupMemberService orgDutyGroupMemberService;
@Autowired
private UserApi userApi;
public OrgDuty selectByOrgSid(String organizationSid) {
return baseMapper.selectByOrgSid(organizationSid);
}
public OrgDuty selectByOrgSidOne(String organizationSid, String type) {
return baseMapper.selectByOrgSidOne(organizationSid, type);
}
public List<OrgDuty> selectByOrgSidList(String orgSid) {
return baseMapper.selectByOrgSidList(orgSid);
}
public List<OrgDuty> selectByOrgSidList1(String orgSid, String typeSid) {
return baseMapper.selectByOrgSidList1(orgSid, typeSid);
}
public List<OrgDuty> listOne(String orgSid) {
return baseMapper.listOne(orgSid);
}
public IPage<OrgDutysListVo> pagerList(PagerQuery<OrgDutysQuery> pagerQuery) {
IPage<OrgDutysQuery> page = PagerUtil.queryToPage(pagerQuery);
OrgDutysQuery params = pagerQuery.getParams();
QueryWrapper<OrgDutysListVo> qw = new QueryWrapper<>();
if (params != null) {
String orgSid = params.getOrgSid();
String dutyTypeSid = params.getDutyTypeSid();
String startTime = params.getStartTime();
String endTime = params.getEndTime();
if (StringUtils.isNotBlank(orgSid)) {
qw.eq("o.orgSid", orgSid);
}
if (StringUtils.isNotBlank(dutyTypeSid)) {
qw.eq("o.dutyTypeSid", dutyTypeSid);
}
if (StringUtils.isNotBlank(startTime)) {
qw.eq("od.startTime", startTime);
}
if (StringUtils.isNotBlank(endTime)) {
qw.eq("od.endTime", endTime);
}
}
return baseMapper.pagerList(page, qw);
}
public ResultBean<Map<String, Object>> selectList(String organizationSid) throws ParseException {
Map<String, Object> mapNew = new HashMap<>();
Date date = new Date();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
String dateString = format.format(date);
List list = date2(dateString);
List ls1 = new ArrayList();
//根据orgSid查询
List<OrgDuty> orgDuties = selectByOrgSidList(organizationSid);
String sid = "";
if (orgDuties.size() > 1) {
if (orgDuties.get(0).getDutyTypeSid().equals("gzrzb")) {
sid = orgDuties.get(0).getSid();
} else {
sid = orgDuties.get(1).getSid();
}
} else if (orgDuties.size() == 1) {
sid = orgDuties.get(0).getSid();
}
if (orgDuties.size() != 0) {
List<OrgDutyDate> L = orgDutyDateService.selectByOrgDutySidOne(sid);
//两个日期之间相差天数。
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
if (L.size() > 0) {
int a = daysBetween(date, sdf.parse(L.get(0).getDutyDay()));
for (int i = 0; i < a + 1; i++) {
Map<String, Object> map1 = new HashMap<>();
List<OrgDutyDate> orgDutyDateList = orgDutyDateService.selectByOrgDutySid(organizationSid, list.get(i).toString());
map1.put("day", list.get(i).toString());
List list1 = new ArrayList();
for (int iii = 0; iii < orgDutyDateList.size(); iii++) {
List<OrgDutyGroup> orgDutyGroupList = orgDutyGroupService.selectByDateSid(orgDutyDateList.get(iii).getSid());
List ls2 = new ArrayList();
Map<String, Object> map2 = new HashMap<>();
for (int ii = 0; ii < orgDutyGroupList.size(); ii++) {
List ls = new ArrayList();
Map<String, Object> map3 = new HashMap<>();
List<OrgDutyGroupMember> orgDutyGroupMemberList = orgDutyGroupMemberService.selectByGroupSid(orgDutyGroupList.get(ii).getSid());
for (int j = 0; j < orgDutyGroupMemberList.size(); j++) {
Map<String, Object> map = new HashMap<>();
String name = orgDutyGroupMemberList.get(j).getName();
String userSid = orgDutyGroupMemberList.get(j).getUserSid();
UserStaffOneVo user = userApi.selectBySid(userSid).getData();
map.put("name", name);
map.put("mobile", user.getMobile());
ls.add(map);
}
map3.put("list1", ls);
map3.put("groupName", orgDutyGroupList.get(ii).getGroupName());
ls2.add(map3);
}
map2.put("list", ls2);
map2.put("startTime", orgDutyDateList.get(iii).getStartTime());
map2.put("endTime", orgDutyDateList.get(iii).getEndTime());
list1.add(map2);
}
map1.put("list1", list1);
ls1.add(map1);
}
}
mapNew.put("listNew", ls1);
}
return new ResultBean<Map<String, Object>>().success().setData(mapNew);
}
/**
* 查询两个时间之间相差的天数
*
* @param smdate 开始时间
* @param bdate 结束时间
* @return
* @throws ParseException
*/
public int daysBetween(Date smdate, Date bdate) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
smdate = sdf.parse(sdf.format(smdate));
bdate = sdf.parse(sdf.format(bdate));
Calendar cal = Calendar.getInstance();
cal.setTime(smdate);
long time1 = cal.getTimeInMillis();
cal.setTime(bdate);
long time2 = cal.getTimeInMillis();
long between_days = (time2 - time1) / (1000 * 3600 * 24);
return Integer.parseInt(String.valueOf(between_days));
}
/**
* 指定开始时间和结束时间的时间的集合
*
* @param startTime 开始时间
* @param endTime 结束时间
* @return
* @throws ParseException
*/
public List date(String startTime, String endTime) throws ParseException {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Date daystart = df.parse(startTime); //按照yyyy-MM-dd格式转换为日期
Date dayend = df.parse(endTime);
List lDate = new ArrayList();
lDate.add(startTime);// 把开始时间加入集合
Calendar cal = Calendar.getInstance();
// 使用给定的 Date 设置此 Calendar 的时间
cal.setTime(daystart);
boolean bContinue = true;
while (bContinue) {
// 根据日历的规则,为给定的日历字段添加或减去指定的时间量
cal.add(Calendar.DAY_OF_MONTH, 1);
// 测试此日期是否在指定日期之后
if (dayend.after(cal.getTime())) {
String dateString = formatter.format(cal.getTime());
lDate.add(dateString);
} else {
break;
}
}
lDate.add(endTime);// 把结束时间加入集合
return lDate;
}
/**
* 取开始时间至往后7天的日期的集合
*
* @param startTime 开始日期
* @return
* @throws ParseException
*/
public List date2(String startTime) throws ParseException {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Date daystart = df.parse(startTime); //按照yyyy-MM-dd格式转换为日期
Calendar cal = Calendar.getInstance();
cal.set(Calendar.DAY_OF_YEAR, cal.get(Calendar.DAY_OF_YEAR) + 7);
Date endTime = cal.getTime();
List lDate = new ArrayList();
lDate.add(startTime);// 把开始时间加入集合
// 使用给定的 Date 设置此 Calendar 的时间
cal.setTime(daystart);
boolean bContinue = true;
while (bContinue) {
// 根据日历的规则,为给定的日历字段添加或减去指定的时间量
cal.add(Calendar.DAY_OF_MONTH, 1);
// 测试此日期是否在指定日期之后
if (endTime.after(cal.getTime())) {
String dateString = formatter.format(cal.getTime());
lDate.add(dateString);
} else {
break;
}
}
lDate.add(endTime);// 把结束时间加入集合
return lDate;
}
/**
* 日期转星期
*
* @param datetime
* @return
*/
public String dateToWeek(String datetime) {
SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
String[] weekDays = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
// 获得一个日历
Calendar cal = Calendar.getInstance();
Date datet = null;
try {
datet = f.parse(datetime);
cal.setTime(datet);
} catch (ParseException e) {
e.printStackTrace();
}
// 指示一个星期中的某天。
int w = cal.get(Calendar.DAY_OF_WEEK) - 1;
if (w < 0) {
w = 0;
}
return weekDays[w];
}
}

Some files were not shown because too many files have changed in this diff Show More