Commit 14d27f54 by 邓实川

Merge branch 'develop' of http://120.24.24.239:8082/8timerv2/8timerapiv200.git into dsc

parents 6033b2e6 8fbf7b01
......@@ -102,11 +102,11 @@
</dependency>
<!-- optional这个需要为 true 热部署才有效 -->
<dependency>
<!-- <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
</dependency> -->
<!-- swagger2 -->
<dependency>
......@@ -272,7 +272,7 @@
<version>1.1.10</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-boot-starter -->
<!-- mybatis-plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
......
......@@ -37,28 +37,34 @@ public class QyzxEntInfoM extends Model<QyzxEntInfoM> {
@Id
@GeneratedValue
@TableId (type = IdType.AUTO)
@ApiModelProperty(value="组织机构代码 组织机构代码",example="101")
@ApiModelProperty(value="组织机构代码 组织机构代码",example="4")
private Integer id;
@ApiModelProperty(value="企业名称 ",example="企业名称")
@ApiModelProperty(value="企业名称 ",example="优领人才")
private String name;
@ApiModelProperty(value="企业简介 企业简介",example="101")
@ApiModelProperty(value="认证名 ",example="广东优领人才科技服务有限公司")
private String attestName;
@ApiModelProperty(value="简介",example="公司福利好")
private String intro;
@ApiModelProperty(value="法人 ",example="刘德华")
private String operName;
@ApiModelProperty(value="企业规模 10人以下、10-19人、20-99人、100-500人、500人以上",example="101")
@ApiModelProperty(value="企业规模 10人以下、10-19人、20-99人、100-500人、500人以上",example="3")
private Integer size;
@ApiModelProperty(value="电话号码 ",example="18712345678")
private String phone;
@ApiModelProperty(value="办公地址 ",example=" 省/市/区 例:广东省/广州市/白云区")
@ApiModelProperty(value="所在地区",example="440111")
private Integer area;
@ApiModelProperty(value="办公地址 ",example="广从一路5号柏曼酒店3楼")
private String workAddress;
@ApiModelProperty(value="企业编码 ",example=" 例:YLZYCS(YL:优领简写;ZY:版本;CS:账户公司简称)")
@ApiModelProperty(value="企业简写 ",example=" 例:YLZYCS(YL:优领简写;ZY:版本;CS:账户公司简称)")
private String codes;
@ApiModelProperty(value="企业LOGO ",example="企业LOGO")
......@@ -70,13 +76,13 @@ public class QyzxEntInfoM extends Model<QyzxEntInfoM> {
@ApiModelProperty(value="开通渠道 1直属、2总代理、3独家代理、4一般代理商、5区域代理商",example="101")
private Integer openChannel;
@ApiModelProperty(value="联系人 ",example="刘德华")
@ApiModelProperty(value="联系人",example="刘德华")
private String linkMan;
@ApiModelProperty(value="联系人电话 ",example="18712345678")
private String linkManPhone;
@ApiModelProperty(value="统一社会信用代码 ",example=" 统一社会信用代码")
@ApiModelProperty(value="统一社会信用代码 ",example="统一社会信用代码")
private String creditCode;
@ApiModelProperty(value="是否上市 0:否 1:是",example="101")
......@@ -86,7 +92,16 @@ public class QyzxEntInfoM extends Model<QyzxEntInfoM> {
@ApiModelProperty(value="企业注册时间 ",example="企业注册时间")
private Date registerTime;
@ApiModelProperty(value="到期时间 ",example="到期时间")
@ApiModelProperty(value="营业执照 ",example="营业执照url ")
private String licenseUrl;
@ApiModelProperty(value="认证状态 ",example="0未认证,1 认证中,2认证成功,3认证失败 ")
private Integer attestStatus;
@ApiModelProperty(value="认证时间 ",example="2019-12-12 08:00:00")
private Date attestTime;
@ApiModelProperty(value="到期时间 ",example="2039-12-12 08:00:00")
private Date endTime;
@ApiModelProperty(value="企业版本,0试用,1标准,2专业, ",example="0")
......
package cn.timer.api.bean.qyzx;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import com.baomidou.mybatisplus.annotation.FieldFill;
import javax.persistence.Entity;
import javax.persistence.Table;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import cn.timer.api.bean.qyzx.QyzxEmpLogin.QyzxEmpLoginBuilder;
import cn.timer.api.dto.login.QysDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
......@@ -21,10 +25,12 @@ import lombok.NoArgsConstructor;
/**
* @author Tang 2019-11-11
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder(toBuilder=true)
@Table(name="qyzx_feeback_accessory")
@ApiModel("反馈附件表")
public class QyzxFeebackAccessory extends Model<QyzxFeebackAccessory> {
......
/**
* <p>Title: QyzxInvoiceData.java</p>
* <p>Description: </p>
* @author dsc
* @date 2020年4月21日
* @version 1.0
*/
package cn.timer.api.bean.qyzx;
import java.util.Date;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* <p>Title: QyzxInvoiceData.java</p>
* <p>Description: </p>
* @author dsc
* @date 2020年4月21日
* @version 1.0
*/
@Entity
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Table(name="qyzx_invoice_data")
@ApiModel("发票资料表")
public class QyzxInvoiceUsual extends Model<QyzxInvoiceUsual>{
private static final long serialVersionUID = 2890357568571822258L;
@Id
@GeneratedValue
@TableId (type = IdType.AUTO)
@ApiModelProperty(value="主键",example="1")
private Integer id;
@ApiModelProperty(value="发票抬头",example="广东优领")
private String invoiceTitle;
@ApiModelProperty(value="税号",example="915345164")
private String dutyParagraph;
@ApiModelProperty(value="公司地址",example="广东省")
private String companyAddress;
@ApiModelProperty(value="电话号码",example="18152456464")
private String companyPhone;
@ApiModelProperty(value="开户行",example="中信银行广州白云支行")
private String bankName;
@ApiModelProperty(value="银行账号",example="8110901011900785029")
private String bankAccount;
@ApiModelProperty(value="发票类型",example="0-普通 1-专用")
private Integer invoiceType;
@ApiModelProperty(value="收货人",example="翁🐻")
private String consignee;
@ApiModelProperty(value="收货人电话",example="13144400255")
private String consigneePhone;
@ApiModelProperty(value="邮箱",example="13144400255@163.com")
private String email;
@ApiModelProperty(value="收货地址",example="白云东平伯曼酒店")
private String shippingAddress;
@ApiModelProperty(value="邮编",example="510080")
private String zipCode;
@ApiModelProperty(value="企业",example="117")
private Integer orgCode;
@ApiModelProperty(value="模块状态",example="默认0-开启,1-关闭")
private Integer status;
@ApiModelProperty(value="是否删除",example="默认0-未删除,1-删除")
private Integer isDelete;
@TableField(fill = FieldFill.INSERT)
@ApiModelProperty(value="创建时间 ",example="")
private Date createTime;
@ApiModelProperty(value="创建人 ",example="")
private Integer createUser;
@TableField(fill = FieldFill.UPDATE)
@ApiModelProperty(value="修改时间 ",example="")
private Date modifyTime;
@ApiModelProperty(value="修改人 ",example="")
private Integer modifyUser;
}
package cn.timer.api.bean.qyzx;
import java.util.Date;
import javax.persistence.Entity;
import javax.persistence.Table;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
......@@ -16,10 +19,12 @@ import lombok.NoArgsConstructor;
/**
* @author Tang 2019-11-11
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder(toBuilder=true)
@Table(name="qyzx_suggestion_feeback")
@ApiModel("意见反馈表")
public class QyzxSuggestionFeeback extends Model<QyzxSuggestionFeeback> {
......
package cn.timer.api.bean.spmk;
import java.util.Date;
import java.util.List;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
......@@ -57,4 +58,6 @@ public class SpmkApproveExecuteRecord extends Model<SpmkApproveExecuteRecord> {
@ApiModelProperty(value = "创建时间 ", example = "创建时间")
private Date createTime;
private List<SpmkExecutor> spmkExecutors;
}
\ No newline at end of file
......@@ -64,7 +64,7 @@ public class SpmkApproveSummary extends Model<SpmkApproveSummary> {
private String approveName;
@TableField(fill = FieldFill.INSERT)
@ApiModelProperty(value = "状态 0审批中 1审批撤销 2审批拒绝 3审批通过/审批完成", example = "101")
@ApiModelProperty(value = "状态 0审批中 1审批撤销 2审批通过/审批完成 3审批拒绝", example = "101")
private Integer sts;
@ApiModelProperty(value = "当前审批人 ", example = "当前审批人")
......
......@@ -18,7 +18,11 @@ public class MyMetaObjectHandler implements MetaObjectHandler {
log.info("start insert fill ....");
Date date = new Date();
this.strictInsertFill(metaObject, "createTime", Date.class, date); // 起始版本 3.3.0(推荐使用)
this.strictInsertFill(metaObject, "sts", Integer.class, 0); // 起始版本 3.3.0(推荐使用)
this.strictInsertFill(metaObject, "lrsjTime", Date.class, date);
this.strictInsertFill(metaObject, "regTime", Date.class, date);
this.strictInsertFill(metaObject, "registerTime", Date.class, date);
this.strictInsertFill(metaObject, "addtime", Date.class, date);
this.strictInsertFill(metaObject, "sts", int.class, 0); // 起始版本 3.3.0(推荐使用)
}
......@@ -27,6 +31,7 @@ public class MyMetaObjectHandler implements MetaObjectHandler {
log.info("start update fill ....");
Date date = new Date();
this.strictUpdateFill(metaObject, "updateTime", Date.class, date); // 起始版本 3.3.0(推荐使用)
this.strictUpdateFill(metaObject, "modifyTime", Date.class, date);
}
}
......@@ -49,9 +49,10 @@ public enum CommonEnum {
/**
* 企业认证状态
*/
AUTH_TYPE_UNDEREVIEW(1,"审核中"),
AUTH_TYPE_FAILURE(2,"审核失败"),
AUTH_TYPE_SUCCESS(3,"审核成功"),
AUTH_TYPE_NOHADREVIEW(0,"未认证"),
AUTH_TYPE_UNDEREVIEW(1,"认证中"),
AUTH_TYPE_SUCCESS(2,"认证成功"),
AUTH_TYPE_FAILURE(3,"认证失败"),
/**
......
......@@ -40,7 +40,9 @@ public enum Regular {
* 强密码
*/
SHPW("SHPW","^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z])[a-zA-Z0-9]{8,10}$"),
//纯汉字输入
/**
* 纯汉字输入
*/
CHINESE("CHINESE","[\\u4E00-\\u9FA5]*"),
/**
* 邮箱
......
......@@ -28,6 +28,7 @@ import cn.hutool.core.util.StrUtil;
import cn.timer.api.bean.qyzx.QyzxEmpEntAsso;
import cn.timer.api.bean.qyzx.QyzxEmpLogin;
import cn.timer.api.bean.qyzx.QyzxEntInfoM;
import cn.timer.api.bean.yggl.YgglMainEmp;
import cn.timer.api.bean.zzgl.ZzglAuth;
import cn.timer.api.bean.zzgl.ZzglBmgwM;
......
......@@ -36,6 +36,7 @@ import cn.timer.api.bean.dzht.DzhtAssoHtwj;
import cn.timer.api.bean.dzht.DzhtAssoQyrz;
import cn.timer.api.bean.qyzx.QyzxEmpEntAsso;
import cn.timer.api.bean.qyzx.QyzxEntInfoM;
import cn.timer.api.bean.yggl.YgglMainEmp;
import cn.timer.api.config.annotation.CurrentUser;
import cn.timer.api.config.annotation.UserBean;
......
......@@ -34,6 +34,7 @@ import cn.timer.api.bean.qyzx.QyzxEmpLogin;
import cn.timer.api.bean.qyzx.QyzxEntAuth;
import cn.timer.api.bean.qyzx.QyzxEntInfoM;
import cn.timer.api.bean.qyzx.QyzxFeebackAccessory;
import cn.timer.api.bean.qyzx.QyzxInvoiceUsual;
import cn.timer.api.bean.qyzx.QyzxLogBuy;
import cn.timer.api.bean.qyzx.QyzxPayServe;
import cn.timer.api.bean.qyzx.QyzxSuggestionFeeback;
......@@ -48,6 +49,7 @@ import cn.timer.api.dao.qyzx.QyzxEmpLoginMapper;
import cn.timer.api.dao.qyzx.QyzxEntAuthMapper;
import cn.timer.api.dao.qyzx.QyzxEntInfoMMapper;
import cn.timer.api.dao.qyzx.QyzxFeebackAccessoryMapper;
import cn.timer.api.dao.qyzx.QyzxInvoiceUsualMapper;
import cn.timer.api.dao.qyzx.QyzxLogBuyMapper;
import cn.timer.api.dao.qyzx.QyzxPayServeMapper;
import cn.timer.api.dao.qyzx.QyzxSuggestionFeebackMapper;
......@@ -105,6 +107,9 @@ public class QyzxController {
@Autowired
private QyzxFeebackAccessoryMapper qyzxFeebackAccessoryMapper;
@Autowired
private QyzxInvoiceUsualMapper qyzxInvoiceUsualMapper;
/**
* 获取企业信息
*
......@@ -121,6 +126,23 @@ public class QyzxController {
}
/**
* 添加/修改企业信息
*
* @param
* @return
*/
@PostMapping(value = "/ent")
@ApiOperation(value = "添加/修改企业信息", httpMethod = "POST", notes = "接口发布说明")
public Result<QyzxEntInfoM> addent(@CurrentUser UserBean userBean, @RequestBody QyzxEntInfoM qyzxEntInfoM) {
qyzxEntInfoM.setId(userBean.getOrgCode());
QyzxEntInfoM q = new LambdaQueryChainWrapper<QyzxEntInfoM>(qyzxEntInfoMMapper).eq(QyzxEntInfoM::getId, userBean.getOrgCode()).one();
qyzxEntInfoM.setRegisterTime(q.getRegisterTime());
qyzxEntInfoM.insertOrUpdate();
return ResultUtil.data(qyzxEntInfoM, "添加/修改企业");
}
/**
* 企业认证-申请
*
* @param qyzxEntAuth
......@@ -128,14 +150,13 @@ public class QyzxController {
*/
@PostMapping(value = "/entauth")
@ApiOperation(value = "企业认证", httpMethod = "POST", notes = "接口发布说明")
public Result<QyzxEntAuth> entauth(@CurrentUser UserBean userBean, @RequestBody QyzxEntAuth qyzxEntAuth) {
public Result<QyzxEntInfoM> entauth(@CurrentUser UserBean userBean, @RequestBody QyzxEntInfoM qyzxEntInfoM) {
// 设置审核状态
qyzxEntAuth.setAuthType(CommonEnum.AUTH_TYPE_UNDEREVIEW.getType());
qyzxEntAuth.setId(userBean.getOrgCode());
// 插入数据
qyzxEntAuth.insert();
qyzxEntInfoM.setAttestStatus(CommonEnum.AUTH_TYPE_UNDEREVIEW.getType());
qyzxEntInfoM.setId(userBean.getOrgCode());
qyzxEntInfoM.updateById();
// }
return ResultUtil.data(qyzxEntAuth, "申请企业认证中");
return ResultUtil.data(qyzxEntInfoM, "申请企业认证中");
}
/**
......@@ -144,22 +165,18 @@ public class QyzxController {
* @param qyzxEntAuth
* @return
*/
@PostMapping(value = "/entauthcheck")
@ApiOperation(value = "企业认证-审核-通过/未通过", httpMethod = "POST", notes = "接口发布说明")
public Result<QyzxEntAuth> entauthcheck1(@CurrentUser UserBean userBean, @RequestBody QyzxEntAuth qyzxEntAuth) {
Integer id = qyzxEntAuth.getId();
Integer authType = qyzxEntAuth.getAuthType();
if (id == null || authType == null) {
return ResultUtil.error("参数缺少/异常");
}
QyzxEntAuth entAuth = QyzxEntAuth.builder().id(id).authType(authType).build();
boolean b = entAuth.updateById();
if (b) {
return ResultUtil.data(qyzxEntAuth, "企业认证-审批成功");
} else {
return ResultUtil.error("企业认证-审批失败");
}
}
/*
* @PostMapping(value = "/entauthcheck")
*
* @ApiOperation(value = "企业认证-审核-通过/未通过", httpMethod = "POST", notes =
* "接口发布说明") public Result<QyzxEntAuth> entauthcheck1(@CurrentUser UserBean
* userBean, @RequestBody QyzxEntAuth qyzxEntAuth) { Integer id =
* qyzxEntAuth.getId(); Integer authType = qyzxEntAuth.getAuthType(); if (id ==
* null || authType == null) { return ResultUtil.error("参数缺少/异常"); } QyzxEntAuth
* entAuth = QyzxEntAuth.builder().id(id).authType(authType).build(); boolean b
* = entAuth.updateById(); if (b) { return ResultUtil.data(qyzxEntAuth,
* "企业认证-审批成功"); } else { return ResultUtil.error("企业认证-审批失败"); } }
*/
/**
* 运营管理 企业认证-审核-通过/不通过(weng)
......@@ -169,19 +186,51 @@ public class QyzxController {
*/
@PostMapping(value = "/entauthpass")
@ApiOperation(value = "企业认证-审核-通过", httpMethod = "POST", notes = "接口发布说明")
public Result<String> entauthpass(@RequestBody EntauthDto entauthDto) {// 2未通过,3通过
String msg = "企业认证不通过";
public Result<String> entauthpass(@RequestBody EntauthDto entauthDto) {//2未通过,3通过
String msg = "企业未认证";
Integer type = entauthDto.getAuthType();
if (type != 2) {
type = 3;
if(type == CommonEnum.AUTH_TYPE_SUCCESS.getType()) {
msg = "企业认证成功";
}
boolean b = new LambdaUpdateChainWrapper<QyzxEntAuth>(qyzxEntAuthMapper)
.eq(QyzxEntAuth::getId, entauthDto.getOrgCode()).set(QyzxEntAuth::getAuthType, type).update();
if (b) {
if(type == CommonEnum.AUTH_TYPE_FAILURE.getType()) {
msg = "企业认证失败";
}
boolean b = new LambdaUpdateChainWrapper<QyzxEntInfoM>(qyzxEntInfoMMapper).eq(QyzxEntInfoM::getId, entauthDto.getOrgCode())
.set(QyzxEntInfoM::getAttestStatus, type).update();
if (b){
return ResultUtil.data(msg);
}
return ResultUtil.error("企业认证未通过");
return ResultUtil.data("企业认证流程有误");
}
/**
* 新增/编辑常用企业开票资料
*
* @param QyzxInvoiceUsual
* @return
*/
@PostMapping(value = "/invoiceusual")
@ApiOperation(value = "新增/编辑常用企业开票资料", httpMethod = "POST", notes = "接口发布说明")
public Result<QyzxInvoiceUsual> invoiceusual(@CurrentUser UserBean userBean,@RequestBody QyzxInvoiceUsual qyzxInvoiceUsual) {
qyzxInvoiceUsual.setOrgCode(userBean.getOrgCode());
qyzxInvoiceUsual.setModifyUser(userBean.getEmpNum());
boolean tof = qyzxInvoiceUsual.insertOrUpdate();
if (tof) {
return ResultUtil.data(qyzxInvoiceUsual, "常用企业开票资料已修改");
}
return ResultUtil.error("开票资料修改无效");
}
/**
* 显示常用的企业开票资料
*
* @param QyzxInvoiceUsual
* @return
*/
@SuppressWarnings("deprecation")
@GetMapping(value = "/invoiceusual")
@ApiOperation(value = "显示常用的企业开票资料", httpMethod = "GET", notes = "接口发布说明")
public Result<QyzxInvoiceUsual> invoiceusual(@CurrentUser UserBean userBean) {
QyzxInvoiceUsual one = new LambdaQueryChainWrapper<QyzxInvoiceUsual>(qyzxInvoiceUsualMapper).eq(QyzxInvoiceUsual::getOrgCode, userBean.getOrgCode()).one();
return ResultUtil.data(one, "企业超管头像和电话号码");
}
/**
......@@ -447,11 +496,14 @@ public class QyzxController {
* 意见反馈
*/
@PostMapping(value = "/feedback")
@ApiOperation(value = "意见反馈)", httpMethod = "POST", notes = "接口发布说明")
public Result<QyzxLogBuy> feedback(@CurrentUser UserBean userBean, @RequestParam(required = false) String moudle,
@RequestParam(required = false) String opinionText,@Param("files") List<MultipartFile> files) {
@ApiOperation(value = "意见反馈", httpMethod = "POST", notes = "接口发布说明")
public Result<QyzxSuggestionFeeback> feedback(@CurrentUser UserBean userBean,
@RequestParam(required = false) String opinionText,
@RequestParam(required = false) String moudle,
@Param("files") List<MultipartFile> files) {
String url = null;
List<String> list = new ArrayList<String>();
if (files!=null) {
for (MultipartFile file : files) {
String path = "8timer2.0/" + userBean.getOrgCode() + "/" + moudle + "/" + file.getOriginalFilename();
if (file == null || file.getSize() <= 0) {
......@@ -465,6 +517,7 @@ public class QyzxController {
}
}
}
}
QyzxSuggestionFeeback feeback = new QyzxSuggestionFeeback();
feeback.setEmpNum(userBean.getEmpNum());
feeback.setOpinionText(opinionText);
......@@ -588,26 +641,7 @@ public class QyzxController {
return ResultUtil.data(page, logBuyDto, "查询成功");
}
/**
* 添加/修改企业
*
* @param
* @return
*/
@PostMapping(value = "/ent")
@ApiOperation(value = "添加/修改企业", httpMethod = "POST", notes = "接口发布说明")
public Result<QyzxEntInfoM> addent(@CurrentUser UserBean userBean, @RequestBody QyzxEntInfoM qyzxEntInfoM) {
qyzxEntInfoM.insertOrUpdate();
Integer count = qyzxEmpEntAssoMapper.selectCount(new QueryWrapper<QyzxEmpEntAsso>()
.eq("emp_num", userBean.getEmpNum()).eq("org_code", qyzxEntInfoM.getId()));
if (count == null || count <= 0)
QyzxEmpEntAsso.builder().empNum(userBean.getEmpNum()).orgCode(qyzxEntInfoM.getId()).userType(1).status(1)
.build().insert();
// 添加关联表
QyzxEmpEntAsso.builder().empNum(userBean.getEmpNum()).orgCode(qyzxEntInfoM.getId()).userType(1).build()
.insertOrUpdate();
return ResultUtil.data(qyzxEntInfoM, "添加/修改企业");
}
/**
* 账号管理 获取账号
......
......@@ -60,7 +60,9 @@ import cn.timer.api.dao.spmk.SpmkExecutorMapper;
import cn.timer.api.dao.spmk.SpmkInitiatorConfigMapper;
import cn.timer.api.dao.spmk.SpmkSpglMapper;
import cn.timer.api.dao.spmk.SpmkSpzMapper;
import cn.timer.api.dto.spmk.ApprovingDto;
import cn.timer.api.dto.spmk.FlowChildren;
import cn.timer.api.dto.spmk.FromData;
import cn.timer.api.dto.spmk.Router;
import cn.timer.api.dto.spmk.Spmk;
import cn.timer.api.dto.spmk.SpmkApprovalTemplateDto;
......@@ -377,18 +379,6 @@ public class SpmkServiceImpl {
}
/**
* 图标列表
*/
@GetMapping(value = "/icon")
@ApiOperation(value = "图标列表", httpMethod = "GET", notes = "接口发布说明")
public Result<List<SpmkIcon>> selectListIcon(@CurrentUser UserBean userBean){
List<SpmkIcon> spmkIcons = SpmkIcon.builder().build().selectAll();
return ResultUtil.data(spmkIcons,"获取图标列表成功");
}
/**
* 假期规则列表
*/
@GetMapping(value = "/jqgz")
......@@ -475,7 +465,18 @@ public class SpmkServiceImpl {
@Autowired
private SpmkCustomApprovalMapper spmkCustomApprovalMapper;
/**
* 图标列表
*/
@GetMapping(value = "/icon")
@ApiOperation(value = "99.图标列表", httpMethod = "GET", notes = "接口发布说明")
@ApiOperationSupport(order = 99)
public Result<List<SpmkIcon>> selectListIcon(@CurrentUser UserBean userBean){
List<SpmkIcon> spmkIcons = SpmkIcon.builder().build().selectAll();
return ResultUtil.data(spmkIcons,"获取图标列表成功");
}
//TODO 审批模板组
......@@ -488,7 +489,7 @@ public class SpmkServiceImpl {
@ApiOperationSupport(order = 1)
public Result<Object> saveAtg(@RequestBody SpmkApprovalTemplateG spmkApprovalTemplateG){
return spmkApprovalTemplateG.insertOrUpdate() ? ResultUtil.success("操作成功!") : ResultUtil.error("操作失败!");
return spmkApprovalTemplateG.insertOrUpdate() ? ResultUtil.data(spmkApprovalTemplateG, "操作成功!") : ResultUtil.error("操作失败!");
}
......@@ -550,7 +551,13 @@ public class SpmkServiceImpl {
at.setFroms(ObjectUtil.serialize(spmkApprovalTemplateDto.getFroms()));
at.setRouter(ObjectUtil.serialize(spmkApprovalTemplateDto.getRouter()));
return at.insertOrUpdate() ? ResultUtil.success("操作成功!") : ResultUtil.error("操作失败!-2");
if (!at.insertOrUpdate())
return ResultUtil.error("操作失败!-2");
// 清空前端不需要的字段再返回,节省流量
at.setFroms(null);
at.setRouter(null);
return ResultUtil.data(at, "操作成功!");
}
......@@ -601,7 +608,7 @@ public class SpmkServiceImpl {
@ApiOperationSupport(order = 9)
public Result<Object> saveAg(@CurrentUser UserBean userBean,@RequestBody SpmkApprovalG spmkApprovalG){
spmkApprovalG.setOrgCode(userBean.getOrgCode());
return spmkApprovalG.insertOrUpdate() ? ResultUtil.success("操作成功!") : ResultUtil.error("操作失败!");
return spmkApprovalG.insertOrUpdate() ? ResultUtil.data(spmkApprovalG, "操作成功!") : ResultUtil.error("操作失败!");
}
......@@ -639,7 +646,6 @@ public class SpmkServiceImpl {
@ApiOperation(value = "12.排序-审批组", httpMethod = "PUT", notes = "排序-审批组")
@ApiOperationSupport(order = 12)
public Result<Object> ranksAg(@RequestBody List<SpmkApprovalG> list){
return spmkApprovalGMapper.updateListRandsById(list) ? ResultUtil.success("操作成功!") : ResultUtil.error("操作失败!");
}
......@@ -670,9 +676,18 @@ public class SpmkServiceImpl {
Console.log("自定义审批id: " + id);
List<SpmkInitiatorConfig> listIc = spmkCustomApprovalDto.getInitiatorConfigs();
if (listIc != null && listIc.size() > 0) {
for (int i = 0, n = listIc.size(); i < n; i++) {
listIc.get(i).setCustomApprovalId(id);
}
if (!spmkInitiatorConfigMapper.insertList(listIc)) {
// 手动抛出异常,事务回滚
throw new Exception();
}
}
SpmkInitiatorConfig.builder().build().delete(new QueryWrapper<SpmkInitiatorConfig>().lambda().eq(SpmkInitiatorConfig::getCustomApprovalId, id));
//
/**
......@@ -681,27 +696,30 @@ public class SpmkServiceImpl {
* 2.新增 最新的 SpmkInitiatorConfig-审批发起人配置,
* 3.新增 SpmkCustomApproval-自定义审批
*/
if (!SpmkInitiatorConfig.builder().build().delete(new QueryWrapper<SpmkInitiatorConfig>().lambda().eq(SpmkInitiatorConfig::getCustomApprovalId, id)) ||
!spmkInitiatorConfigMapper.insertList(listIc)) {
// 手动抛出异常,事务回滚
throw new Exception();
}
return ResultUtil.success("操作成功!");
// 清空前端不需要的字段再返回,节省流量
ca.setFroms(null);
ca.setRouter(null);
return ResultUtil.data(ca, "操作成功!");
}
/**
* 删除-自定义审批
* @throws Exception
*/
@DeleteMapping(value = "/delete_custom_approval/{id}")
@ApiOperation(value = "14.删除-自定义审批", httpMethod = "DELETE", notes = "删除-自定义审批")
@Transactional(rollbackFor = Exception.class)
@ApiOperationSupport(order = 14)
public Result<Object> deleteCaById(@PathVariable int id){
public Result<Object> deleteCaById(@PathVariable int id) throws Exception{
SpmkInitiatorConfig.builder().build().delete(new QueryWrapper<SpmkInitiatorConfig>().lambda().eq(SpmkInitiatorConfig::getCustomApprovalId, id));
if (!SpmkCustomApproval.builder().id(id).build().deleteById()) {
throw new Exception();
}
return SpmkCustomApproval.builder().id(id).build().deleteById() &&
SpmkInitiatorConfig.builder().build().delete(new QueryWrapper<SpmkInitiatorConfig>().lambda().eq(SpmkInitiatorConfig::getCustomApprovalId, id)) ?
ResultUtil.success("操作成功!") : ResultUtil.error("没有找到该对象");
return ResultUtil.success("操作成功!");
}
......@@ -712,8 +730,14 @@ public class SpmkServiceImpl {
@ApiOperation(value = "15.id查询-自定义审批", httpMethod = "GET", notes = "id查询-自定义审批")
@ApiOperationSupport(order = 15)
public Result<Object> selectCaById(@PathVariable int id){
SpmkCustomApproval ca = SpmkCustomApproval.builder().id(id).build().selectById();
SpmkCustomApprovalDto caD = SpmkCustomApprovalDto.builder()
.froms((List<JSONObject>)ObjectUtil.unserialize(ca.getFroms()))
.router(ObjectUtil.unserialize(ca.getRouter()))
.build();
BeanUtil.copyProperties(ca, caD,"froms","router");
return ResultUtil.data(SpmkCustomApproval.builder().id(id).build().selectById(),"操作成功!");
return ResultUtil.data(caD,"操作成功!");
}
......@@ -756,14 +780,18 @@ public class SpmkServiceImpl {
List<Router> listRouter = new ArrayList<Router>();
listRouter.add(spmkApproveSummaryDto.getRouter());
JSONObject jSONObject = spmkApproveSummaryDto.getRequestData().put("orgCode", userBean.getOrgCode());
JSONObject jSONObject = spmkApproveSummaryDto.getRequestData()
.put("orgCode", FromData.builder().value(String.valueOf(userBean.getOrgCode())).build())
.put("initiator", FromData.builder().value(spmkApproveSummaryDto.getInitiator()).build());
RouterUtils.NextNode(listRouter, jSONObject, ISFIRST);
List<FlowChildren> listFlowChildren = new ArrayList<FlowChildren>();
RouterUtils.getIsFlowChildren(listRouter,listFlowChildren);
System.out.println(jSONObject);
System.out.println(listRouter);
System.out.println(listFlowChildren);
// System.out.println(jSONObject);
// System.out.println(listRouter);
// System.out.println(listFlowChildren);
// 当前审批人
String currentApprover = jSONObject.getStr("current_approver");
......@@ -775,18 +803,22 @@ public class SpmkServiceImpl {
.title(spmkApproveSummaryDto.getTitle())
.initiator(spmkApproveSummaryDto.getInitiator())
.approveName(spmkApproveSummaryDto.getApproveName())
.sts(0)
.currentApprover(currentApprover).build();
if (!as.insert()) {
return ResultUtil.error("操作失败!");
}
// 插入记录
RouterUtils.insertogExecuteRecord(listFlowChildren, as.getId());
// 封装 审批详情
SpmkApproveDetail ad = SpmkApproveDetail.builder().build();
ad.setApproveSummaryId(as.getId());
ad.setName(spmkApproveSummaryDto.getTitle());
ad.setRequestData(ObjectUtil.serialize(spmkApproveSummaryDto.getRequestData()));
ad.setFroms(ObjectUtil.serialize(spmkApproveSummaryDto.getFroms()));
ad.setFroms(ObjectUtil.serialize((List<JSONObject>)spmkApproveSummaryDto.getFroms()));
ad.setRouter(ObjectUtil.serialize(listRouter.get(0)));
ad.setFlowChildren(ObjectUtil.serialize(listFlowChildren));
......@@ -837,6 +869,41 @@ public class SpmkServiceImpl {
return ResultUtil.data(adD, "操作成功!");
}
//TODO 审批人审批
/**
* 审批人审批
*/
@PostMapping(value = "/approving")
@ApiOperation(value = "20.审批人审批", httpMethod = "POST", notes = "审批人审批")
@ApiOperationSupport(order = 19)
public Result<Object> approving(@RequestBody ApprovingDto approvingDto) {
SpmkApproveDetail ad = SpmkApproveDetail.builder().build()
.selectOne(new QueryWrapper<SpmkApproveDetail>()
.lambda()
.eq(SpmkApproveDetail::getApproveSummaryId, approvingDto.getAsId()));
SpmkApproveSummary aSummary = spmkApproveSummaryMapper.selectById(approvingDto.getAsId());
if (aSummary.getSts() == 0) {
List<FlowChildren> listFlowChildren = (List<FlowChildren>)ObjectUtil.unserialize(ad.getFlowChildren());
RouterUtils.approving(
listFlowChildren,
approvingDto.getAsId(),
approvingDto.getExecuteRecordId(),
approvingDto.getExecutorId(),
approvingDto.getOpinion(),
approvingDto.getSts());
System.out.println(listFlowChildren);
// 更新 flowChildren
SpmkApproveDetail.builder().id(ad.getId()).froms(ObjectUtil.serialize(listFlowChildren)).build().updateById();
}else {
return ResultUtil.error("该审批已结束!");
}
return ResultUtil.data(null, "操作成功!");
}
......
......@@ -40,6 +40,7 @@ import com.baomidou.mybatisplus.extension.service.additional.update.impl.LambdaU
import com.github.pagehelper.util.StringUtil;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import cn.hutool.Hutool;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.BetweenFormater.Level;
import cn.hutool.core.date.DateUtil;
......@@ -240,14 +241,15 @@ public class YgglController {
// 添加三张表
// 员工权限表(未定)
// 员工企业关联表和员工档案,员工成长表(未定)
QyzxEmpEntAsso.builder().empNum(qyzxEmpLogin.getId()).orgCode(orgCode).userType(CommonEnum.U_TYPE_EMP.getType()).status(1).build().insert();// usertype2普通员工 status1正常
QyzxEmpEntAsso.builder().empNum(qyzxEmpLogin.getId()).orgCode(orgCode)
.userType(CommonEnum.U_TYPE_EMP.getType()).status(1).build().insert();// usertype2普通员工 status1正常
YgglMainEmp ygglMainEmp = YgglMainEmp.builder().name(name).phone(phone).zjType(zjType).zjNum(zjNum)
.jobType(jobType).rzTime(rzTime).syq(syq).sex(sex).empNum(qyzxEmpLogin.getId()).orgCode(orgCode)
.build();
ygglMainEmp.insert();
new LambdaUpdateChainWrapper<YgglMainEmp>(ygglMainEmpMapper)
.set(addygdaDto.getBmgwId()!=null, YgglMainEmp::getBmgwId, addygdaDto.getBmgwId())
.set(addygdaDto.getBmgwId() != null, YgglMainEmp::getBmgwId, addygdaDto.getBmgwId())
.eq(YgglMainEmp::getOrgCode, orgCode).eq(YgglMainEmp::getId, ygglMainEmp.getId()).update();
return ResultUtil.data(ygglMainEmp, "新添加员工档案成功!");
} else {
......@@ -258,13 +260,14 @@ public class YgglController {
if (ishad == null) {
// 添加三张表
// 员工权限表(未定)
QyzxEmpEntAsso.builder().empNum(login.getId()).orgCode(orgCode).userType(2).status(1).build().insert();// usertype2普通员工 status1正常
QyzxEmpEntAsso.builder().empNum(login.getId()).orgCode(orgCode).userType(2).status(1).build().insert();// usertype2普通员工
// status1正常
YgglMainEmp ygglMainEmp = YgglMainEmp.builder().name(name).phone(phone).zjType(zjType).zjNum(zjNum)
.jobType(jobType).rzTime(rzTime).syq(syq).sex(sex).empNum(login.getId()).orgCode(orgCode)
.build();
ygglMainEmp.insert();
new LambdaUpdateChainWrapper<YgglMainEmp>(ygglMainEmpMapper)
.set(addygdaDto.getBmgwId()!=null, YgglMainEmp::getBmgwId, addygdaDto.getBmgwId())
.set(addygdaDto.getBmgwId() != null, YgglMainEmp::getBmgwId, addygdaDto.getBmgwId())
.eq(YgglMainEmp::getOrgCode, orgCode).eq(YgglMainEmp::getId, ygglMainEmp.getId()).update();
return ResultUtil.data(ygglMainEmp, "添加员工档案成功!");
} else {
......@@ -403,8 +406,8 @@ public class YgglController {
.eq("phone", e.getPhone()).eq("org_code", userBean.getOrgCode()));
if (ishad == null) {
// 员工权限表(未定)
QyzxEmpEntAsso.builder().empNum(login.getId()).orgCode(userBean.getOrgCode()).userType(2).status(1).build()
.insert();// userType2普通员工,status1正常
QyzxEmpEntAsso.builder().empNum(login.getId()).orgCode(userBean.getOrgCode()).userType(2).status(1)
.build().insert();// userType2普通员工,status1正常
YgglMainEmp emp = YgglMainEmp.builder().name(e.getName()).phone(e.getPhone()).zjType(0)
.zjNum(e.getZj()).jobType(jobType).rzTime(rzdate).updateTime(new Date())
.updateMan(userBean.getEmpNum()).syq(syq).sex(sex).jobNum(jobNum).empNum(login.getId())
......@@ -1505,44 +1508,70 @@ public class YgglController {
*
* @param
* @return
*//*
* @PostMapping(value = "/jg")
*
* @ApiOperation(value = "展示籍贯所有省市区", httpMethod = "POST", notes = "接口发布说明")
*
* @ApiOperationSupport(order = 60) public Result<List<YgjgDto>>
* selectjgs(@CurrentUser UserBean userBean, @RequestBody YgjgDto ygjgDto) {
* Integer type = ygjgDto.getType(); Integer upId = ygjgDto.getJgid();
* List<YgjgDto> maps = new ArrayList<YgjgDto>(); if (type == 1) { // 省份
* List<YgProDto> list = new LambdaQueryChainWrapper<YgProDto>(ygProDtoMapper)
* .select(YgProDto::getId, YgProDto::getProvince,
* YgProDto::getName).orderByAsc(YgProDto::getProvince) .list(); for (YgProDto
* pro : list) { maps.add(new YgjgDto(pro.getId(), pro.getProvince(),
* pro.getName(), null)); } } if (type == 2) { // 城市 List<YgCityDto> list = new
* LambdaQueryChainWrapper<YgCityDto>(ygCityDtoMapper) .select(YgCityDto::getId,
* YgCityDto::getCity, YgCityDto::getName).eq(YgCityDto::getProvince, upId)
* .orderByAsc(YgCityDto::getProvince).orderByAsc(YgCityDto::getCity).list();
* for (YgCityDto city : list) { maps.add(new YgjgDto(city.getId(),
* city.getCity(), city.getName(), null)); } } if (type == 3) { // 地区
* List<YgAreaDto> list = new
* LambdaQueryChainWrapper<YgAreaDto>(ygAreaDtoMapper) .select(YgAreaDto::getId,
* YgAreaDto::getName).eq(YgAreaDto::getCity, upId)
* .orderByAsc(YgAreaDto::getProvince).orderByAsc(YgAreaDto::getCity).list();
* for (YgAreaDto area : list) { maps.add(new YgjgDto(area.getId(),
* area.getId(), area.getName(), null)); } } // IYgjgDto iYgjgDto =
* PunishFactory.getPunish(type); // List<String> strings =
* iYgjgDto.exePunish(); // System.out.println(strings); if (!maps.isEmpty())
* return ResultUtil.data(maps, "展示籍贯成功"); return ResultUtil.success(null); }
*/
@PostMapping(value = "/jg")
@ApiOperation(value = "展示籍贯所有省市区", httpMethod = "POST", notes = "接口发布说明")
@ApiOperationSupport(order = 60)
public Result<List<YgjgDto>> selectjgs(@CurrentUser UserBean userBean, @RequestBody YgjgDto ygjgDto) {
Integer type = ygjgDto.getType();
Integer upId = ygjgDto.getJgid();
List<YgjgDto> maps = new ArrayList<YgjgDto>();
if (type == 1) { // 省份
/**
* 展示籍贯/展示所有籍贯(威力增强版)
*
* @param
* @return
*/
@PostMapping(value = "/jgshow/{jgid}")
@ApiOperation(value = "展示籍贯所有省市区威力增强版", httpMethod = "POST", notes = "接口发布说明")
@ApiOperationSupport(order = 388)
public Result<Map<String, String>> selectjgs1(@CurrentUser UserBean userBean, @PathVariable String jgid) {
// public Result<List<YgjgDto>> selectjgs1(@CurrentUser UserBean userBean,
// @RequestBody YgjgDto ygjgDto) {
Integer upId = Integer.valueOf(jgid);
// List<YgjgDto> maps = new ArrayList<YgjgDto>();
Map<String, String> maps = new HashMap<String, String>();
if (upId == null || upId % 100 != 0) { // 省份
List<YgProDto> list = new LambdaQueryChainWrapper<YgProDto>(ygProDtoMapper)
.select(YgProDto::getId, YgProDto::getProvince, YgProDto::getName).orderByAsc(YgProDto::getProvince)
.list();
for (YgProDto pro : list) {
maps.add(new YgjgDto(pro.getId(), pro.getProvince(), pro.getName(), null));
}
}
if (type == 2) { // 城市
list.forEach((item) -> maps.put((item.getId()).toString(), item.getName()));
} else if (upId % 10000 == 0) {
List<YgCityDto> list = new LambdaQueryChainWrapper<YgCityDto>(ygCityDtoMapper)
.select(YgCityDto::getId, YgCityDto::getCity, YgCityDto::getName).eq(YgCityDto::getProvince, upId)
.orderByAsc(YgCityDto::getProvince).orderByAsc(YgCityDto::getCity).list();
for (YgCityDto city : list) {
maps.add(new YgjgDto(city.getId(), city.getCity(), city.getName(), null));
}
}
if (type == 3) { // 地区
.select(YgCityDto::getId, YgCityDto::getProvince, YgCityDto::getCity, YgCityDto::getName)
.eq(YgCityDto::getProvince, upId).orderByAsc(YgCityDto::getProvince).orderByAsc(YgCityDto::getCity)
.list();
list.forEach((item) -> maps.put((item.getId()).toString(), item.getName()));
} else if (upId % 100 == 0) {
List<YgAreaDto> list = new LambdaQueryChainWrapper<YgAreaDto>(ygAreaDtoMapper)
.select(YgAreaDto::getId, YgAreaDto::getName).eq(YgAreaDto::getCity, upId)
.orderByAsc(YgAreaDto::getProvince).orderByAsc(YgAreaDto::getCity).list();
for (YgAreaDto area : list) {
maps.add(new YgjgDto(area.getId(), area.getId(), area.getName(), null));
}
list.forEach((item) -> maps.put((item.getId()).toString(), item.getName()));
}
// IYgjgDto iYgjgDto = PunishFactory.getPunish(type);
// List<String> strings = iYgjgDto.exePunish();
// System.out.println(strings);
if (!maps.isEmpty())
return ResultUtil.data(maps, "展示籍贯成功");
return ResultUtil.success(null);
}
/**
......@@ -1551,7 +1580,7 @@ public class YgglController {
* @param
* @return
*/
@PostMapping(value = "/jgp")
@PostMapping(value = "/jgprint")
@ApiOperation(value = "根据籍贯id显示籍贯城市名", httpMethod = "POST", notes = "接口发布说明")
@ApiOperationSupport(order = 61)
public Result<YgjgDto> selectjg(@CurrentUser UserBean userBean, @RequestBody YgjgDto jgcity) {
......@@ -1672,6 +1701,7 @@ public class YgglController {
/**
* 员工信息统计图
*
* @return 成功信息(weng)
*/
@GetMapping("/Cartogram")
......@@ -1689,51 +1719,55 @@ public class YgglController {
* (bean.getWorkage() == null) { bean.setWorkage(-1); } return true;
* }).collect(Collectors.toList());
*/
Map<String, Long> gw = bintu.stream().collect(Collectors.groupingBy(YgbintuDto::getGw,Collectors.counting()));
Map<String, Long> gw = bintu.stream().collect(Collectors.groupingBy(YgbintuDto::getGw, Collectors.counting()));
List<YgKVDto> gwList = new ArrayList<YgKVDto>();
for(Map.Entry<String, Long> entry : gw.entrySet()) {
gwList.add(new YgKVDto(entry.getKey(),entry.getValue().toString()));
for (Map.Entry<String, Long> entry : gw.entrySet()) {
gwList.add(new YgKVDto(entry.getKey(), entry.getValue().toString()));
}
Map<String, Long> bm = bintu.stream().collect(Collectors.groupingBy(YgbintuDto::getBm,Collectors.counting()));
Map<String, Long> bm = bintu.stream().collect(Collectors.groupingBy(YgbintuDto::getBm, Collectors.counting()));
List<YgKVDto> bmList = new ArrayList<YgKVDto>();
for(Map.Entry<String, Long> entry : bm.entrySet()) {
bmList.add(new YgKVDto(entry.getKey(),entry.getValue().toString()));
for (Map.Entry<String, Long> entry : bm.entrySet()) {
bmList.add(new YgKVDto(entry.getKey(), entry.getValue().toString()));
}
//Map<String, Map<String, Long>> bmgw = bintu.stream().collect(Collectors.groupingBy(YgbintuDto::getBm,Collectors.groupingBy(YgbintuDto::getGw,Collectors.counting())));
Map<String, Long> edu = bintu.stream().collect(Collectors.groupingBy(YgbintuDto::getEduname,Collectors.counting()));
// Map<String, Map<String, Long>> bmgw =
// bintu.stream().collect(Collectors.groupingBy(YgbintuDto::getBm,Collectors.groupingBy(YgbintuDto::getGw,Collectors.counting())));
Map<String, Long> edu = bintu.stream()
.collect(Collectors.groupingBy(YgbintuDto::getEduname, Collectors.counting()));
List<YgKVDto> eduList = new ArrayList<YgKVDto>();
for(Map.Entry<String, Long> entry : edu.entrySet()) {
eduList.add(new YgKVDto(entry.getKey(),entry.getValue().toString()));
for (Map.Entry<String, Long> entry : edu.entrySet()) {
eduList.add(new YgKVDto(entry.getKey(), entry.getValue().toString()));
}
Map<Integer,Long> jobStatus = bintu.stream().collect(Collectors.groupingBy(YgbintuDto::getJobStatus,Collectors.counting()));
Map<Integer, Long> jobStatus = bintu.stream()
.collect(Collectors.groupingBy(YgbintuDto::getJobStatus, Collectors.counting()));
List<YgKVDto> jobStatusList = new ArrayList<YgKVDto>();
for(Entry<Integer, Long> entry : jobStatus.entrySet()) {
jobStatusList.add(new YgKVDto(entry.getKey().toString(),entry.getValue().toString()));
for (Entry<Integer, Long> entry : jobStatus.entrySet()) {
jobStatusList.add(new YgKVDto(entry.getKey().toString(), entry.getValue().toString()));
}
Map<String, Long> proname = bintu.stream().collect(Collectors.groupingBy(YgbintuDto::getProname,Collectors.counting()));
Map<String, Long> proname = bintu.stream()
.collect(Collectors.groupingBy(YgbintuDto::getProname, Collectors.counting()));
List<YgKVDto> pronameList = new ArrayList<YgKVDto>();
for(Entry<String, Long> entry : proname.entrySet()) {
pronameList.add(new YgKVDto(entry.getKey().toString(),entry.getValue().toString()));
for (Entry<String, Long> entry : proname.entrySet()) {
pronameList.add(new YgKVDto(entry.getKey().toString(), entry.getValue().toString()));
}
Map<String, Integer> workage = YgEnumInterface.workage.choose(bintu);
List<YgKVDto> workageList = new ArrayList<YgKVDto>();
for(Entry<String, Integer> entry : workage.entrySet()) {
workageList.add(new YgKVDto(entry.getKey().toString(),entry.getValue().toString()));
for (Entry<String, Integer> entry : workage.entrySet()) {
workageList.add(new YgKVDto(entry.getKey().toString(), entry.getValue().toString()));
}
Map<String, Integer> age = YgEnumInterface.age.choose(bintu);
List<YgKVDto> ageList = new ArrayList<YgKVDto>();
for(Entry<String, Integer> entry : age.entrySet()) {
ageList.add(new YgKVDto(entry.getKey().toString(),entry.getValue().toString()));
for (Entry<String, Integer> entry : age.entrySet()) {
ageList.add(new YgKVDto(entry.getKey().toString(), entry.getValue().toString()));
}
//在职
Integer zaizhi = jobStatus.get(1).intValue()+jobStatus.get(2).intValue();
//本月新入职
// 在职
Integer zaizhi = jobStatus.get(1).intValue() + jobStatus.get(2).intValue();
// 本月新入职
Integer xinruzhi = workage.get("本月新入职").intValue();
//本月离职
// 本月离职
Integer lizhi = ygglMainEmpMapper.benyueLz(orgCode);
//本月转正
// 本月转正
Integer zhuanzhen = ygglMainEmpMapper.benyueZz(orgCode);
//平均年龄
// 平均年龄
Integer nianlin = age.get("平均年龄").intValue();
YgCartogramDto ybp = new YgCartogramDto();
ybp.setOnTheJob(zaizhi);
......@@ -1751,6 +1785,7 @@ public class YgglController {
ybp.setAge(ageList);
return ResultUtil.data(ybp, "获取员工管理统计图信息成功!");
}
/**
* 获取员工社保公积金
*
......
......@@ -5,6 +5,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import cn.timer.api.bean.qyzx.QyzxEntInfoM;
/**
* 企业信息
* @author Tang 2019-11-11
......
......@@ -5,12 +5,14 @@ import org.springframework.stereotype.Repository;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import cn.timer.api.bean.qyzx.QyzxFeebackAccessory;
/**
* 员工企业关联表
* @author Tang 2019-11-11
*/
@Repository
public interface QyzxFeebackAccessoryMapper extends BaseMapper<QyzxFeebackAccessoryMapper> {
public interface QyzxFeebackAccessoryMapper extends BaseMapper<QyzxFeebackAccessory> {
}
/**
* <p>Title: QyzxInvoiceDataMapper.java</p>
* <p>Description: </p>
* @author dsc
* @date 2020年4月21日
* @version 1.0
*/
package cn.timer.api.dao.qyzx;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import cn.timer.api.bean.qyzx.QyzxInvoiceUsual;
/**
* <p>Title: QyzxInvoiceDataMapper.java</p>
* <p>Description: </p>
* @author dsc
* @date 2020年4月21日
* @version 1.0
*/
public interface QyzxInvoiceUsualMapper extends BaseMapper<QyzxInvoiceUsual>{
}
......@@ -5,12 +5,14 @@ import org.springframework.stereotype.Repository;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import cn.timer.api.bean.qyzx.QyzxSuggestionFeeback;
/**
* 员工企业关联表
* @author Tang 2019-11-11
*/
@Repository
public interface QyzxSuggestionFeebackMapper extends BaseMapper<QyzxSuggestionFeebackMapper> {
public interface QyzxSuggestionFeebackMapper extends BaseMapper<QyzxSuggestionFeeback> {
}
......@@ -31,7 +31,7 @@ public class EntauthDto extends Page implements Serializable{
@ApiModelProperty(value="组织机构代码",example="117")
private Integer orgCode;
@ApiModelProperty(value="认证状态",example="2未通过或3通过")
@ApiModelProperty(value="认证状态",example="2通过或3未通过")
private Integer authType;
......
package cn.timer.api.dto.spmk;
import java.util.Date;
import java.util.List;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import cn.hutool.json.JSONObject;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ApprovingDto {
@ApiModelProperty(value = "审批汇总id", example = "2")
private Integer asId;
@ApiModelProperty(value = "审批执行记录id", example = "10")
private Integer executeRecordId;
@ApiModelProperty(value = "执行人记录id", example = "10")
private Integer executorId;
@ApiModelProperty(value = "意见", example = "MMMMMMMM")
private String opinion;
@ApiModelProperty(value = "状态 2同意 3拒绝", example = "2")
private Integer sts;
}
package cn.timer.api.dto.spmk;
import java.io.Serializable;
import java.util.List;
import lombok.AllArgsConstructor;
import lombok.Builder;
......@@ -18,10 +19,14 @@ public class Condition implements Serializable {
*/
private static final long serialVersionUID = 1L;
private String className;
private String displayName;
private String key;
private String format;
private String value;
private List<String> values;
}
......@@ -55,4 +55,9 @@ public class Router extends JSONSupport implements Serializable{
*/
private List<Router> children;
/**
* 名称
*/
private String name;
}
package cn.timer.api.dto.spmk;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.persistence.Entity;
import cn.timer.api.bean.spmk.SpmkApprovalG;
import cn.hutool.json.JSONObject;
import cn.timer.api.bean.spmk.SpmkCustomApproval;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SpmkApprovalGDto extends SpmkApprovalG {
public class SpmkApprovalGDto implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "编号 编号", example = "101")
private Integer id;
@ApiModelProperty(value = "企业组织代码 企业组织代码", example = "101")
private Integer orgCode;
@ApiModelProperty(value = "组名 ", example = "组名")
private String name;
@ApiModelProperty(value = "排序 排序", example = "101")
private Integer ranks;
@ApiModelProperty(value = "是否可编辑 0是 1否", example = "101")
private Integer isEditable;
private List<SpmkCustomApproval> spmkCustomApprovals;
}
package cn.timer.api.dto.spmk;
import java.util.Date;
import java.util.List;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
......@@ -38,7 +39,7 @@ public class SpmkApproveSummaryDto{
private JSONObject requestData;
@ApiModelProperty(value = "审批表单 ", example = "审批表单")
private JSONObject froms;
private List<JSONObject> froms;
@ApiModelProperty(value = "审批流程 ", example = "审批流程")
private Router router;
......
......@@ -54,7 +54,7 @@ public class SpmkCustomApprovalDto {
private Integer assoType;
@ApiModelProperty(value = "审批表单 ", example = "审批表单")
private JSONObject froms;
private List<JSONObject> froms;
@ApiModelProperty(value = "审批流程 ", example = "审批流程")
private Router router;
......@@ -62,5 +62,4 @@ public class SpmkCustomApprovalDto {
@ApiModelProperty(value = "可见发起人配置 ", example = "可见发起人配置 ")
private List<SpmkInitiatorConfig> initiatorConfigs;
}
......@@ -9,9 +9,10 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.lang.Console;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ReflectUtil;
import cn.hutool.json.JSONObject;
import cn.timer.api.bean.spmk.SpmkApproveExecuteRecord;
import cn.timer.api.bean.spmk.SpmkApproveSummary;
import cn.timer.api.bean.spmk.SpmkExecutor;
import cn.timer.api.bean.yggl.YgglMainEmp;
import cn.timer.api.bean.zzgl.ZzglBmgwM;
import cn.timer.api.dto.spmk.Condition;
......@@ -83,6 +84,7 @@ public class RouterUtils {
if (isFirse) {
obj.put("current_approver", listUser.get(i).getName());
}
break user;
// case EXECUTING:
// listUser.get(i).setExecute(EXECUTED);
......@@ -90,7 +92,7 @@ public class RouterUtils {
}
}
isAuditNext = true;
NextNode(router.getChildren(),obj, isFirse, isAuditNext);
NextNode(router.getChildren(), obj , isFirse, isAuditNext);
break;
case COPY:
if (!isAuditNext) {
......@@ -102,7 +104,7 @@ public class RouterUtils {
for (int i = 0; i < listRelations.size(); i++) {
// 装配 部门人员
if (RELATION_TYPE_DEPARTMENT.equals(listRelations.get(i).getType())) {
List<YgglMainEmp> listYgglMainEmp = selectOtherlistent(obj.get("orgCode",Integer.class), Integer.valueOf(listRelations.get(i).getDepartmentId()));
List<YgglMainEmp> listYgglMainEmp = selectOtherlistent(Integer.parseInt(obj.get("orgCode",FromData.class).getValue()), Integer.valueOf(listRelations.get(i).getDepartmentId()));
List<User> listUsers = new ArrayList<User>();
for (YgglMainEmp emp : listYgglMainEmp) {
User user = new User();
......@@ -111,11 +113,12 @@ public class RouterUtils {
listUsers.add(user);
}
listRelations.get(i).setUsers(listUsers);
}else if (RELATION_TYPE_USERS.equals(listRelations.get(i).getType())) {
// 直接跳过,此处 else if代码段 只做说明,可不写
}
}
NextNode(router.getChildren(),obj, isFirse, isAuditNext);
NextNode(router.getChildren(), obj , isFirse, isAuditNext);
break;
}
break;
......@@ -146,13 +149,13 @@ public class RouterUtils {
}
}
NextNode(router.getChildren(),obj, isFirse, isAuditNext);
NextNode(router.getChildren(),obj , isFirse, isAuditNext);
break;
}
break;
case EXECUTED:
Console.log("下一个节点");
NextNode(router.getChildren(),obj, isFirse, isAuditNext);
NextNode(router.getChildren(),obj , isFirse, isAuditNext);
break;
}
......@@ -168,23 +171,25 @@ public class RouterUtils {
routerRule.setFlow(true);
}else {
for (Condition condition : listCondition) {
for (String string : condition.getValues()) {
// 判断条件
if (!stringCompare(obj.get(condition.getKey(),FromData.class).getValue(), condition.getValue(), condition.getFormat())) {
if (!stringCompare(obj.get(condition.getKey(),FromData.class).getValue(), string , condition.getFormat())) {
condition_b = false;
}
}
}
}
routerRule.setFlow(condition_b);
routerRule.setExecute(EXECUTED);
if (routerRule.getFlow()) {
Console.log("条件逻辑");
NextNode(routerRule.getChildren(),obj, isFirse, isAuditNext);
NextNode(routerRule.getChildren(), obj , isFirse, isAuditNext);
}
break;
case EXECUTED:
if (routerRule.getFlow()) {
NextNode(routerRule.getChildren(),obj, isFirse, isAuditNext);
NextNode(routerRule.getChildren(), obj , isFirse, isAuditNext);
}
break rulefor;
}
......@@ -279,21 +284,264 @@ public class RouterUtils {
}
}
};
// 审批执行记录 持久化
public static void insertogExecuteRecord(List<FlowChildren> listFlowChildren,Integer asId) {
for (int i = 0,m = listFlowChildren.size() ; i < m; i++) {
if (UNEXECUTED.equals(listFlowChildren.get(i).getExecute()))
continue;
switch (listFlowChildren.get(i).getClassName()) {
case CREATOR:
SpmkApproveExecuteRecord aer = SpmkApproveExecuteRecord
.builder()
.approveSummaryId(asId)
.name("发起申请")
.type(0)
.sts(2)
.build();
// 新增 审批执行记录
aer.insert();
// 新增 执行人
User user = listFlowChildren.get(i).getRelation().get(0).getUsers().get(0);
SpmkExecutor.builder()
.approveExecuteRecordId(aer.getId())
.empNum(Integer.parseInt(user.getId()))
.executorName(user.getName())
.sts(2)
.build()
.insert();
break;
case AUDIT:
SpmkApproveExecuteRecord aer2 = SpmkApproveExecuteRecord
.builder()
.approveSummaryId(asId)
.name("审批人")
.type(2)
.sts(1)
.build();
// 新增 审批执行记录
aer2.insert();
// 新增 执行人
List<User> listUser = listFlowChildren.get(i).getRelation().get(0).getUsers();
executor:
for (User user2 : listUser) {
SpmkExecutor executor = SpmkExecutor.builder()
.approveExecuteRecordId(aer2.getId())
.empNum(Integer.parseInt(user2.getId()))
.executorName(user2.getName())
.build();
switch (user2.getExecute()) {
case EXECUTING:
executor.setSts(1);
executor.insert();
break executor;
case EXECUTED:
executor.setSts(2);
executor.insert();
break;
}
}
break;
case COPY:
SpmkApproveExecuteRecord aer3 = SpmkApproveExecuteRecord
.builder()
.approveSummaryId(asId)
.name("抄送人")
.type(1)
.sts(2)
.build();
// 新增 审批执行记录
aer3.insert();
List<Relation> listRelation = listFlowChildren.get(i).getRelation();
for (Relation relation : listRelation) {
List<User> listUser2 = relation.getUsers();
// 新增 执行人
for (User user2 : listUser2) {
SpmkExecutor executor = SpmkExecutor.builder()
.approveExecuteRecordId(aer3.getId())
.empNum(Integer.parseInt(user2.getId()))
.executorName(user2.getName())
.sts(2)
.build();
executor.insert();
}
}
break;
}
}
}
/**
* 审批持久化
* @param listFlowChildren 节点
* @param asId 审批汇总Id
* @param executorId 执行人记录Id
* @param opinion 意见
* @param sts 状态 1执行中 2通过 3拒绝
*/
public static void approving(List<FlowChildren> listFlowChildren,Integer asId,Integer executeRecordId, Integer executorId, String opinion,Integer sts ) {
boolean hasNextApprover = false;
for (int i = 0,n = listFlowChildren.size(); i < n; i++) {
// 新增 执行人
List<User> listUser = listFlowChildren.get(i).getRelation().get(0).getUsers();
if (EXECUTED.equals(listFlowChildren.get(i).getExecute())) {
continue;
}else if (EXECUTING.equals(listFlowChildren.get(i).getExecute())) {
// 新增 执行人
// listUser = flowChildren.getRelation().get(0).getUsers();
for (int i_user = 0, n_user = listUser.size(); i_user < n_user; i_user++) {
if (EXECUTED.equals(listUser.get(i_user).getExecute())) {
continue;
}else if (EXECUTING.equals(listUser.get(i_user).getExecute())) {
SpmkExecutor.builder()
.id(executorId)
.opinion(opinion)
.empNum(Integer.parseInt(listUser.get(i_user).getId()))
.executorName(listUser.get(i_user).getName())
.sts(sts)
.build()
.updateById();
listUser.get(i_user).setExecute(EXECUTED);
// 0未执行 1执行中 2同意 3拒绝
if (sts == 3) {
// 更新 审批汇总 状态
SpmkApproveSummary.builder().id(asId).sts(sts).build().updateById();
return;
}
}else if (UNEXECUTED.equals(listUser.get(i_user).getExecute())) {
SpmkExecutor.builder()
.approveExecuteRecordId(executeRecordId)
.empNum(Integer.parseInt(listUser.get(i_user).getId()))
.executorName(listUser.get(i_user).getName())
.sts(1)
.build()
.insert();
hasNextApprover = true;
listUser.get(i_user).setExecute(EXECUTING);
}
}
if (!hasNextApprover) {
SpmkApproveExecuteRecord aer = SpmkApproveExecuteRecord
.builder()
.id(executeRecordId)
.sts(2)
.build();
// 更新 审批执行记录
aer.updateById();
listFlowChildren.get(i).setExecute(EXECUTED);
}
}else if (UNEXECUTED.equals(listFlowChildren.get(i).getExecute())) {
if (!hasNextApprover) {
switch (listFlowChildren.get(i).getClassName()) {
case CREATOR:
SpmkApproveExecuteRecord aer = SpmkApproveExecuteRecord
.builder()
.approveSummaryId(asId)
.name("发起申请")
.type(0)
.sts(2)
.build();
// 新增 审批执行记录
aer.insert();
// 新增 执行人
User user = listFlowChildren.get(i).getRelation().get(0).getUsers().get(0);
SpmkExecutor.builder()
.approveExecuteRecordId(aer.getId())
.empNum(Integer.parseInt(user.getId()))
.executorName(user.getName())
.sts(2)
.build()
.insert();
listFlowChildren.get(i).setExecute(EXECUTED);
break;
case AUDIT:
SpmkApproveExecuteRecord aer2 = SpmkApproveExecuteRecord
.builder()
.approveSummaryId(asId)
.name("审批人")
.type(2)
.sts(1)
.build();
// 新增 审批执行记录
aer2.insert();
// 新增 执行人
// listUser = flowChildren.getRelation().get(0).getUsers();
for (int i_user2 = 0,n_user2 = listUser.size(); i_user2 < n_user2; i_user2++) {
User u = listUser.get(i_user2);
SpmkExecutor executor = SpmkExecutor.builder()
.approveExecuteRecordId(aer2.getId())
.empNum(Integer.parseInt(listUser.get(i_user2).getId()))
.executorName(listUser.get(i_user2).getName())
.sts(1)
.build();
executor.insert();
listUser.get(i_user2).setExecute(EXECUTING);
}
listFlowChildren.get(i).setExecute(EXECUTING);
break;
case COPY:
SpmkApproveExecuteRecord aer3 = SpmkApproveExecuteRecord
.builder()
.approveSummaryId(asId)
.name("抄送人")
.type(1)
.sts(2)
.build();
// 新增 审批执行记录
aer3.insert();
List<Relation> listRelation = listFlowChildren.get(i).getRelation();
for (Relation relation : listRelation) {
List<User> listUser2 = relation.getUsers();
// 新增 执行人
for (User user2 : listUser2) {
SpmkExecutor executor = SpmkExecutor.builder()
.approveExecuteRecordId(aer3.getId())
.empNum(Integer.parseInt(user2.getId()))
.executorName(user2.getName())
.sts(2)
.build();
executor.insert();
}
}
listFlowChildren.get(i).setExecute(EXECUTED);
break;
}
}
}
}
};
}
}
......@@ -141,7 +141,7 @@ pagehelper:
logging:
level:
root: info
cn.timer.api.dao: error
cn.timer.api.dao: debug
pattern:
console: '--%p--%m%n'
......
......@@ -21,6 +21,11 @@
<result column="is_on_stock" property="isOnStock" />
<result column="level" property="level" />
<result column="register_time" property="registerTime" />
<result column="license_url" property="licenseUrl" />
<result column="area" property="area" />
<result column="attest_name" property="attestName" />
<result column="attest_status" property="attestStatus" />
<result column="attest_time" property="attestTime" />
</resultMap>
<sql id="Base_Column_List">
......@@ -40,7 +45,12 @@
credit_code,
is_on_stock,
level,
register_time
register_time,
license_url,
area,
attest_name,
attest_status,
attest_time
</sql>
<!--
......
......@@ -60,9 +60,9 @@
b.is_opinion SpmkCustomApproval_is_opinion,
b.update_time SpmkCustomApproval_update_time,
b.create_time SpmkCustomApproval_create_time,
b.asso_type SpmkCustomApproval_asso_type,
b.asso_type SpmkCustomApproval_asso_type<!-- ,
b.froms SpmkCustomApproval_froms,
b.router SpmkCustomApproval_router
b.router SpmkCustomApproval_router -->
</sql>
<select id="selectListAgInCa" resultMap="BaseResultMapDto">
......@@ -73,16 +73,16 @@
LEFT JOIN spmk_custom_approval b ON a.id = b.approval_g_id
WHERE b.org_code = #{org_code} AND b.id in
(
SELECT custom_approval_id FROM spmk_initiator_config WHERE emp_num = #{emp_num} GROUP BY custom_approval_id
)
WHERE a.org_code = #{org_code}
<!-- AND b.id IN (
SELECT custom_approval_id FROM spmk_initiator_config WHERE asso_id = #{emp_num} AND type = 1 GROUP BY custom_approval_id
) -->
ORDER BY a.ranks, b.ranks
</select>
<update id="updateListRandsById" parameterType="list">
<foreach item="item" index="index" collection="list" open="" separator=";" close="">
UPDATE spmk_approval_template_g
UPDATE spmk_approval_g
<set>
<if test ='null != item.ranks'>ranks = #{item.ranks},</if>
</set>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment