Commit a6c3e9fc authored by 刘林's avatar 刘林

Merge remote-tracking branch 'origin/develop_tzs_register' into develop_tzs_register

parents 68ac92bc 686e16c9
......@@ -53,6 +53,11 @@ public class BaseController {
return JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
}
protected String getCompanyCode() {
String unitCode = getSelectedOrgInfo().getCompany().getCompanyCode();
return unitCode.contains("_") ? unitCode.substring(unitCode.indexOf("_") + 1) : unitCode;
}
/**
* 用户选择信息保存redis
......
package com.yeejoin.amos.boot.module.common.api.dto;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import com.yeejoin.amos.boot.module.common.api.entity.BaseEnterpriseCert;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
import java.util.List;
/**
* 单位资质证书表
*
* @author system_generator
* @date 2025-07-21
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "BaseEnterpriseCertDto", description = "单位资质证书表")
public class BaseEnterpriseCertDto extends BaseDto {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "单位编码")
private String unitCode;
@ApiModelProperty(value = "证书类型")
private String certType;
@ApiModelProperty(value = "证书类型code")
private String certTypeCode;
@ApiModelProperty(value = "证书编号(核准证编号)")
private String certNo;
@ApiModelProperty(value = "有效期至")
private Date expiryDate;
@ApiModelProperty(value = "发证日期")
private Date issueDate;
@ApiModelProperty(value = "发证机关")
private String approvedOrgan;
@ApiModelProperty(value = "发证机关code")
private String approvedOrganCode;
@ApiModelProperty(value = "企业资质证书照片")
private String qualificationCertificateAttachment;
@ApiModelProperty(value = "备注")
private String remark;
@ApiModelProperty(value = "许可项目信息code")
List<String> itemCodes;
}
package com.yeejoin.amos.boot.module.common.api.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.util.Date;
/**
* 单位资质证书表
*
* @author system_generator
* @date 2025-07-21
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("tz_base_enterprise_cert")
public class BaseEnterpriseCert extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* 单位编码
*/
@TableField("unit_code")
private String unitCode;
/**
* 证书类型
*/
@TableField("cert_type")
private String certType;
/**
* 证书类型code
*/
@TableField("cert_type_code")
private String certTypeCode;
/**
* 证书编号(核准证编号)
*/
@TableField("cert_no")
private String certNo;
/**
* 有效期至
*/
@TableField("expiry_date")
private Date expiryDate;
/**
* 发证日期
*/
@TableField("issue_date")
private Date issueDate;
/**
* 发证机关
*/
@TableField("approved_organ")
private String approvedOrgan;
/**
* 发证机关code
*/
@TableField("approved_organ_code")
private String approvedOrganCode;
/**
* 企业资质证书照片
*/
@TableField("qualification_certificate_attachment")
private String qualificationCertificateAttachment;
/**
* 备注
*/
@TableField("remark")
private String remark;
}
package com.yeejoin.amos.boot.module.common.api.mapper;
import com.yeejoin.amos.boot.module.common.api.entity.BaseEnterpriseCert;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* 单位资质证书表 Mapper 接口
*
* @author system_generator
* @date 2025-07-21
*/
public interface BaseEnterpriseCertMapper extends BaseMapper<BaseEnterpriseCert> {
}
package com.yeejoin.amos.boot.module.common.api.service;
/**
* 单位资质证书表接口类
*
* @author system_generator
* @date 2025-07-21
*/
public interface IBaseEnterpriseCertService {
}
<?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.yeejoin.amos.boot.module.common.api.mapper.BaseEnterpriseCertMapper">
</mapper>
package com.yeejoin.amos.boot.module.common.biz.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.RestController;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import java.util.List;
import com.yeejoin.amos.boot.module.common.biz.service.impl.BaseEnterpriseCertServiceImpl;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import org.springframework.beans.factory.annotation.Autowired;
import javax.servlet.http.HttpServletRequest;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.common.api.dto.BaseEnterpriseCertDto;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
/**
* 单位资质证书表
*
* @author system_generator
* @date 2025-07-21
*/
@RestController
@Api(tags = "单位资质证书表Api")
@RequestMapping(value = "/base-enterprise-cert")
public class BaseEnterpriseCertController extends BaseController {
@Autowired
BaseEnterpriseCertServiceImpl baseEnterpriseCertServiceImpl;
/**
* 新增单位资质证书表
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/save")
@ApiOperation(httpMethod = "POST", value = "新增单位资质证书表", notes = "新增单位资质证书表")
public ResponseModel<BaseEnterpriseCertDto> save(@RequestBody BaseEnterpriseCertDto model) {
model = baseEnterpriseCertServiceImpl.createWithModel(model);
return ResponseHelper.buildResponse(model);
}
/**
* 根据sequenceNbr更新
*
* @param sequenceNbr 主键
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PutMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "PUT", value = "根据sequenceNbr更新单位资质证书表", notes = "根据sequenceNbr更新单位资质证书表")
public ResponseModel<BaseEnterpriseCertDto> updateBySequenceNbrBaseEnterpriseCert(@RequestBody BaseEnterpriseCertDto model,@PathVariable(value = "sequenceNbr") Long sequenceNbr) {
model.setSequenceNbr(sequenceNbr);
return ResponseHelper.buildResponse(baseEnterpriseCertServiceImpl.updateWithModel(model));
}
/**
* 根据sequenceNbr删除
*
* @param sequenceNbr 主键
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@DeleteMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "DELETE", value = "根据sequenceNbr删除单位资质证书表", notes = "根据sequenceNbr删除单位资质证书表")
public ResponseModel<Boolean> deleteBySequenceNbr(HttpServletRequest request, @PathVariable(value = "sequenceNbr") Long sequenceNbr){
return ResponseHelper.buildResponse(baseEnterpriseCertServiceImpl.removeById(sequenceNbr));
}
/**
* 根据sequenceNbr查询
*
* @param sequenceNbr 主键
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "GET",value = "根据sequenceNbr查询单个单位资质证书表", notes = "根据sequenceNbr查询单个单位资质证书表")
public ResponseModel<BaseEnterpriseCertDto> selectOne(@PathVariable Long sequenceNbr) {
return ResponseHelper.buildResponse(baseEnterpriseCertServiceImpl.queryBySeq(sequenceNbr));
}
/**
* 列表分页查询
*
* @param current 当前页
* @param current 每页大小
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/page")
@ApiOperation(httpMethod = "GET",value = "单位资质证书表分页查询", notes = "单位资质证书表分页查询")
public ResponseModel<Page<BaseEnterpriseCertDto>> queryForPage(@RequestParam(value = "current") int current,@RequestParam
(value = "size") int size) {
Page<BaseEnterpriseCertDto> page = new Page<BaseEnterpriseCertDto>();
page.setCurrent(current);
page.setSize(size);
return ResponseHelper.buildResponse(baseEnterpriseCertServiceImpl.queryForBaseEnterpriseCertPage(page));
}
/**
* 列表全部数据查询
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET",value = "单位资质证书表列表全部数据查询", notes = "单位资质证书表列表全部数据查询")
@GetMapping(value = "/list")
public ResponseModel<List<BaseEnterpriseCertDto>> selectForList() {
return ResponseHelper.buildResponse(baseEnterpriseCertServiceImpl.queryForBaseEnterpriseCertList());
}
}
package com.yeejoin.amos.boot.module.common.biz.service.impl;
import com.yeejoin.amos.boot.module.common.api.entity.BaseEnterpriseCert;
import com.yeejoin.amos.boot.module.common.api.mapper.BaseEnterpriseCertMapper;
import com.yeejoin.amos.boot.module.common.api.service.IBaseEnterpriseCertService;
import com.yeejoin.amos.boot.module.common.api.dto.BaseEnterpriseCertDto;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import java.util.List;
/**
* 单位资质证书表服务实现类
*
* @author system_generator
* @date 2025-07-21
*/
@Service
public class BaseEnterpriseCertServiceImpl extends BaseService<BaseEnterpriseCertDto,BaseEnterpriseCert,BaseEnterpriseCertMapper> implements IBaseEnterpriseCertService {
/**
* 分页查询
*/
public Page<BaseEnterpriseCertDto> queryForBaseEnterpriseCertPage(Page<BaseEnterpriseCertDto> page) {
return this.queryForPage(page, null, false);
}
/**
* 列表查询 示例
*/
public List<BaseEnterpriseCertDto> queryForBaseEnterpriseCertList() {
return this.queryForList("" , false);
}
}
\ No newline at end of file
......@@ -79,7 +79,16 @@ public enum WorkFlowStatusEnum {
* 停用启用流程
*/
ENABLE_SUBMIT("使用单位提交", "enableSubmit", "待提交", "已驳回", "已撤回"),
ENABLE_RECEIVE("监管受理", "enableReceive", "待受理", "", "");
ENABLE_RECEIVE("监管受理", "enableReceive", "待受理", "", ""),
/**
* 检验检测业务开通流程
*/
OPENING_APPLICATION_SUBMIT("开通申请提交", "openingApplicationSubmit", "开通申请待提交", "资料校对受理已退回", "申请单位已撤回"),
OPENING_APPLICATION_RECEIVE("资料校对", "openingApplicationReceive", "资料校对待受理", "业务开通确认已退回", "资料校对受理已撤回"),
OPENING_APPLICATION_PRELIMINARY("系统对接", "openingApplicationPreliminary", "系统对接中", "", "系统对接受理已撤回"),
OPENING_APPLICATION_REEXAMINE("业务开通确认", "openingApplicationReexamine", "业务开通确认待受理", "", "");
private final String name;
......
......@@ -2251,7 +2251,7 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
commonServiceImpl.saveExecuteFlowData2Redis(instanceId, this.buildInstanceRuntimeData(data));
this.clearDataForCheckEquipRepeatUsed(data);
} catch (InterruptedException e) {
e.printStackTrace();
log.error(e.getMessage(), e);
} finally {
if (lock.isHeldByCurrentThread()) {
lock.unlock();
......
......@@ -11,4 +11,21 @@ public interface BizCommonConstant {
* 所有平台企业数据redisKey
*/
String COMPANY_TREE_REDIS_KEY = "REGULATOR_UNIT_TREE";
/**
* 检验检测人员信息
*/
String JYJC_USER_LIST_KEY = "jyjcUserInfos";
/**
* 检验检测区域负责人信息
*/
String CHAGRE_USER_LIST_KEY = "chargeUserInfos";
/**
* 资质信息key
*/
String UNIT_LICENCE_KEY = "baseUnitLicences";
}
......@@ -82,17 +82,20 @@ public class JyjcOpeningApplication extends BaseEntity {
*/
@TableField("status")
private String status;
/**
* 状态
*/
@TableField("status_name")
private String statusName;
/**
* 备注
*/
@TableField("remark")
private String remark;
/**
* 状态
*/
@Deprecated
@TableField("status_name")
private String statusName;
/**
* 申请时间
*/
......@@ -147,4 +150,10 @@ public class JyjcOpeningApplication extends BaseEntity {
*/
@TableField(value = "open_biz_type")
private String openBizType;
/**
* 机构分类
*/
@TableField(value = "agency_classify")
private String agencyClassify;
}
package com.yeejoin.amos.boot.module.jyjc.api.enums;
import lombok.Getter;
import java.util.Arrays;
import java.util.Optional;
/**
* @author Administrator
*/
@Getter
public enum OpenBizTypeEnumV2 {
/**
* 业务类型
*/
JY("jy", "检验机构", "检验业务"),
JC("jc", "检测机构", "检测业务"),
SYDW("jc-sydw", "使用单位", "使用单位电梯检测"),
AGW("jc-agw", "安装改造维修单位", "安改维电梯检测");
private String code;
private String unitType;
private String description;
private OpenBizTypeEnumV2(String code, String unitType, String description) {
this.code = code;
this.unitType = unitType;
this.description = description;
}
public static OpenBizTypeEnumV2 getOneByCode(String code) {
Optional<OpenBizTypeEnumV2> op = Arrays.stream(OpenBizTypeEnumV2.values()).filter(e -> e.getCode().equals(code)).findFirst();
return op.orElse(null);
}
public static OpenBizTypeEnumV2 getOneByUnitType(String unitType) {
Optional<OpenBizTypeEnumV2> op = Arrays.stream(OpenBizTypeEnumV2.values()).filter(e -> e.getUnitType().equals(unitType)).findFirst();
return op.orElse(null);
}
}
package com.yeejoin.amos.boot.module.jyjc.api.enums;
/**
* 人员类型
*/
public enum PersonTypeEnum {
jy,
jc,
charge
}
......@@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yeejoin.amos.boot.module.common.api.dto.AttachmentDto;
import com.yeejoin.amos.boot.module.ymt.api.dto.TzBaseUnitLicenceDto;
import com.yeejoin.amos.boot.module.common.api.dto.BaseEnterpriseCertDto;
import com.yeejoin.amos.boot.module.ymt.api.vo.TzsUserInfoVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
......@@ -44,6 +44,7 @@ public class JyjcOpeningApplicationModel extends BaseModel {
@ApiModelProperty(value = "申请单号")
private String applicationSeq;
@Deprecated
@ApiModelProperty(value = "检验结果方式")
private String resultType;
......@@ -58,6 +59,7 @@ public class JyjcOpeningApplicationModel extends BaseModel {
@ApiModelProperty(value = "状态")
private String status;
@Deprecated
@ApiModelProperty(value = "状态Name")
private String statusName;
......@@ -86,12 +88,12 @@ public class JyjcOpeningApplicationModel extends BaseModel {
@ApiModelProperty(value = "创建人ID")
private String createUserId;
@ApiModelProperty(value = "检验检测人员信息")
List<TzsUserInfoVo> jyjcUserInfos;
@ApiModelProperty(value = "企业资质信息")
List<TzBaseUnitLicenceDto> baseUnitLicences;
@ApiModelProperty(value = "检验检测区域负责人信息")
List<TzsUserInfoVo> chargeUserInfos;
@ApiModelProperty(value = "检验人员信息")
List<TzsUserInfoVo> userInfos;
@ApiModelProperty(value = "使用单位联系人")
private String useContact;
......@@ -135,4 +137,19 @@ public class JyjcOpeningApplicationModel extends BaseModel {
@ApiModelProperty("开通的业务类型名称")
private String openBizTypeName;
@ApiModelProperty("机构分类")
private String agencyClassify;
@ApiModelProperty(value = "企业资质证书信息")
List<BaseEnterpriseCertDto> baseUnitLicences;
@ApiModelProperty(value = "省内办公地址省#市#区")
private String officeRegion;
@ApiModelProperty(value = "省内详细办公地址")
private String officeAddress;
@ApiModelProperty(value = "单位所在地:陕西省内企业,省外企业")
private String dataSources;
}
package com.yeejoin.amos.boot.module.jyjc.biz.controller;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.module.common.api.dto.BaseEnterpriseCertDto;
import com.yeejoin.amos.boot.module.jyjc.api.dto.InspectionCompanyPublicityDto;
import com.yeejoin.amos.boot.module.jyjc.api.entity.JyjcOpeningApplication;
import com.yeejoin.amos.boot.module.jyjc.api.model.JyjcOpeningApplicationModel;
......@@ -25,9 +27,7 @@ import org.springframework.util.Assert;
import org.springframework.web.bind.annotation.*;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
......@@ -66,7 +66,11 @@ public class JyjcOpeningApplicationController extends BaseController {
// 详情保存逻辑
BeanUtil.copyProperties(model, jyjcOpeningApplicationModel);
}
return ResponseHelper.buildResponse(jyjcOpeningApplicationServiceImpl.saveOrUpdate(jyjcOpeningApplicationModel));
if(model.containsKey("buniessInfo")){
List<BaseEnterpriseCertDto> baseEnterpriseCertDtos = JSONArray.parseArray(JSONObject.toJSONString(model.get("buniessInfo")), BaseEnterpriseCertDto.class);
jyjcOpeningApplicationModel.setBaseUnitLicences(baseEnterpriseCertDtos);
}
return ResponseHelper.buildResponse(jyjcOpeningApplicationServiceImpl.saveOrUpdate(jyjcOpeningApplicationModel, getCompanyCode()));
}
......@@ -80,14 +84,12 @@ public class JyjcOpeningApplicationController extends BaseController {
} else {
BeanUtil.copyProperties(jsonObject, model);
}
model.setSequenceNbr(sequenceNbr);
if (sequenceNbr != null) {
JyjcOpeningApplicationModel jyjcOpeningApplicationModel = jyjcOpeningApplicationServiceImpl.queryDetail(sequenceNbr);
if (jyjcOpeningApplicationModel == null || ValidationUtil.isEmpty(jyjcOpeningApplicationModel.getBaseUnitLicences()) || ValidationUtil.isEmpty(jyjcOpeningApplicationModel.getUserInfos())) {
throw new BadRequest("企业资质信息和检验人员信息为空,无法提交!");
}
if(jsonObject.containsKey("buniessInfo")){
List<BaseEnterpriseCertDto> baseEnterpriseCertDtos = JSONArray.parseArray(JSONObject.toJSONString(jsonObject.get("buniessInfo")), BaseEnterpriseCertDto.class);
model.setBaseUnitLicences(baseEnterpriseCertDtos);
}
JyjcOpeningApplicationModel data = jyjcOpeningApplicationServiceImpl.submitApplication(model);
model.setSequenceNbr(sequenceNbr);
JyjcOpeningApplicationModel data = jyjcOpeningApplicationServiceImpl.submitApplication(model, getCompanyCode());
return ResponseHelper.buildResponse(Collections.singletonList(data));
}
......@@ -168,10 +170,9 @@ public class JyjcOpeningApplicationController extends BaseController {
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "POST", value = "接收或者驳回业务开通申请", notes = "接收或者驳回业务开通申请")
@ApiOperation(httpMethod = "POST", value = "流程节点执行", notes = "流程节点执行")
@PostMapping(value = "/execueFlow")
public ResponseModel<HashMap<String, String>> execueFlow(@RequestBody Map<String, Object> params) {
public ResponseModel<HashMap<String, String>> executeFlow(@RequestBody Map<String, Object> params) {
jyjcOpeningApplicationServiceImpl.executeFlow(params);
HashMap<String, String> result = new HashMap<>();
result.put("result", "success");
......@@ -189,7 +190,7 @@ public class JyjcOpeningApplicationController extends BaseController {
public ResponseModel<Object> overflow(@RequestParam("sequenceNbr") String sequenceNbr,
@RequestParam("instanceId") String instanceId,
@RequestParam("nextTaskId") String nextTaskId) {
return ResponseHelper.buildResponse(jyjcOpeningApplicationServiceImpl.stopFlow(sequenceNbr, instanceId, nextTaskId));
return ResponseHelper.buildResponse(jyjcOpeningApplicationServiceImpl.rollBackFlow(sequenceNbr, instanceId, nextTaskId));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
......@@ -263,8 +264,7 @@ public class JyjcOpeningApplicationController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/user-list")
@ApiOperation(httpMethod = "GET", value = "查询指定公司、指定人员类型的人员列表,默认当前登录人所在公司", notes = "查询指定公司、指定人员类型的人员列表,默认当前登录人所在公司")
public ResponseModel<List<TzsUserInfoVo>> getBizUserInfosByUnitCode(@ApiParam(value = "公司编码") @RequestParam(required = false) String unitCode,
@ApiParam(value = "人员类型", allowableValues = "jy,jc") @RequestParam String personType) {
public ResponseModel<List<TzsUserInfoVo>> getBizUserInfosByUnitCode(@ApiParam(value = "公司编码") @RequestParam(required = false) String unitCode, @ApiParam(value = "人员类型", allowableValues = "jy,jc") @RequestParam String personType) {
if (StringUtils.isEmpty(unitCode)) {
ReginParams reginParams = getSelectedOrgInfo();
unitCode = reginParams.getCompany().getCompanyCode();
......@@ -273,6 +273,13 @@ public class JyjcOpeningApplicationController extends BaseController {
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/v2/users")
@ApiOperation(httpMethod = "GET", value = "查询当前登录人、指定人员类型的人员map结构", notes = "查询当前登录人、指定人员类型的人员map结构,key为jyjcUserInfos代表检验检测人员,chargeUserInfos为检验检测区域负责人")
public ResponseModel<Map<String, List<TzsUserInfoVo>>> getBizUserInfosByUnitCodeV2(@ApiParam(value = "人员类型", allowableValues = "jy,jc,charge" , defaultValue = "jy,jc,charge") @RequestParam String personType) {
return ResponseHelper.buildResponse(jyjcOpeningApplicationServiceImpl.getUserListByUnitCodeAndPostV2(getCompanyCode(), personType));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/user-map")
@ApiOperation(httpMethod = "GET", value = "查询指定公司、指定人员类型的人员列表,默认当前登录人所在公司,map", notes = "查询指定公司、指定人员类型的人员列表,默认当前登录人所在公司,map")
public ResponseModel<Map<String, List<TzsUserInfoVo>>> getBizUserInfosByUnitCodeMap(@ApiParam(value = "公司编码") @RequestParam(required = false) String unitCode,
......@@ -297,6 +304,7 @@ public class JyjcOpeningApplicationController extends BaseController {
/**
* 检验业务开通列表导出
*
* @param response
* @param ids
*/
......@@ -304,8 +312,8 @@ public class JyjcOpeningApplicationController extends BaseController {
@GetMapping(value = "/exportdata")
@ApiOperation(httpMethod = "GET", value = "检验业务开通列表导出", notes = "检验业务开通列表导出")
public void dataExport(HttpServletResponse response, String ids) {
Assert.hasText(ids,"未选择导出数据");
jyjcOpeningApplicationServiceImpl.exportData(response,Arrays.asList(ids.split(",")));
Assert.hasText(ids, "未选择导出数据");
jyjcOpeningApplicationServiceImpl.exportData(response, Arrays.asList(ids.split(",")));
}
}
package com.yeejoin.amos.boot.module.jyjc.biz.service.impl;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
......@@ -10,8 +11,11 @@ import com.yeejoin.amos.boot.biz.common.entity.DataDictionary;
import com.yeejoin.amos.boot.biz.common.service.impl.DataDictionaryServiceImpl;
import com.yeejoin.amos.boot.biz.common.utils.RedisKey;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.module.jg.api.entity.JgRegistrationHistory;
import com.yeejoin.amos.boot.module.jg.api.vo.SortVo;
import com.yeejoin.amos.boot.module.jyjc.api.entity.JyjcInspectionHistory;
import com.yeejoin.amos.boot.module.jyjc.api.enums.OpenBizTypeEnum;
import com.yeejoin.amos.boot.module.jyjc.api.enums.PersonTypeEnum;
import com.yeejoin.amos.boot.module.jyjc.api.mapper.JyjcBaseMapper;
import com.yeejoin.amos.boot.module.jyjc.api.model.InstanceRuntimeData;
import com.yeejoin.amos.boot.module.ymt.api.dto.TzBaseEnterpriseInfoDto;
......@@ -31,6 +35,7 @@ import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import javax.annotation.Resource;
import java.util.List;
import java.util.Optional;
......@@ -52,6 +57,11 @@ public class CommonServiceImpl {
@Value("${jc.user-post:66152}")
private String jcUserPost;
@Value("${jyjc.charge.user-post:6667}")
private String chargeUserPost;
@Autowired
RedisUtils redisUtils;
@Autowired
......@@ -69,6 +79,9 @@ public class CommonServiceImpl {
@Autowired
private DataDictionaryServiceImpl dictionaryService;
@Resource
private JyjcInspectionHistoryServiceImpl inspectionHistoryService;
/**
* @return ReginParams
......@@ -98,14 +111,13 @@ public class CommonServiceImpl {
public void castPersonType2Post(LambdaQueryWrapper<TzsUserInfo> userInfoQueryWrapper, String personType) {
if (personType.contains(OpenBizTypeEnum.JY.getCode()) && personType.contains(OpenBizTypeEnum.JC.getCode())) {
userInfoQueryWrapper.and(w-> w.like(TzsUserInfo::getPost, jyUserPost).or().like(TzsUserInfo::getPost, jcUserPost));
if (personType.contains(PersonTypeEnum.jc.name()) && personType.contains(PersonTypeEnum.jy.name()) && personType.contains(PersonTypeEnum.charge.name())) {
userInfoQueryWrapper.and(w-> w.like(TzsUserInfo::getPost, jyUserPost).or().like(TzsUserInfo::getPost, jcUserPost).or().like(TzsUserInfo::getPost, chargeUserPost));
return;
}
if (personType.equals(OpenBizTypeEnum.JY.getCode())) {
//userInfoQueryWrapper.like(TzsUserInfo::getPost, jcUserPost);
userInfoQueryWrapper.like(TzsUserInfo::getPost, jyUserPost);
return;
}
if (personType.equals(OpenBizTypeEnum.JC.getCode())) {
userInfoQueryWrapper.like(TzsUserInfo::getPost, jcUserPost);
......@@ -187,6 +199,40 @@ public class CommonServiceImpl {
redissonClient.getBucket(buildJcInstanceDataKey(instanceId)).set(instanceData);
}
/**
* 根据流程状态name 获取流程状态code
*
* @param name 流程状态name
* @return 流程状态code
*/
public Integer getDictionaryCodeByName(String name) {
List<DataDictionary> jggzzz = dictionaryService.getByType("JGGZZZ");
for (DataDictionary item : jggzzz) {
if (item.getName().equals(name)) {
return Integer.parseInt(item.getCode());
}
}
return null;
}
public void saveOrUpdateHistory(String type, JSONObject json, Long currentDocumentId) {
JyjcInspectionHistory jyjcInspectionHistory = new JyjcInspectionHistory();
LambdaQueryWrapper<JyjcInspectionHistory> lambda = new QueryWrapper<JyjcInspectionHistory>().lambda();
lambda.eq(JyjcInspectionHistory::getSSeq, currentDocumentId);
Integer integer = inspectionHistoryService.getBaseMapper().selectCount(lambda);
jyjcInspectionHistory.setHistoryData(json);
if (integer > 0) {
inspectionHistoryService.update(jyjcInspectionHistory, lambda);
} else {
jyjcInspectionHistory.setSType(type);
jyjcInspectionHistory.setSSeq(currentDocumentId);
inspectionHistoryService.save(jyjcInspectionHistory);
}
}
/**
* 撤回时校验流程是否已经执行
......
package com.yeejoin.amos.boot.module.jyjc.biz.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.map.MapBuilder;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
......@@ -17,24 +18,29 @@ import com.yeejoin.amos.boot.biz.common.dao.mapper.DataDictionaryMapper;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import com.yeejoin.amos.boot.biz.common.entity.DataDictionary;
import com.yeejoin.amos.boot.biz.common.excel.ExcelUtil;
import com.yeejoin.amos.boot.biz.common.utils.SnowflakeIdUtil;
import com.yeejoin.amos.boot.module.common.api.dto.AttachmentDto;
import com.yeejoin.amos.boot.module.common.api.dto.BaseEnterpriseCertDto;
import com.yeejoin.amos.boot.module.common.api.dto.TzsUserPermissionDto;
import com.yeejoin.amos.boot.module.common.api.entity.BaseEnterpriseCert;
import com.yeejoin.amos.boot.module.common.biz.service.impl.BaseEnterpriseCertServiceImpl;
import com.yeejoin.amos.boot.module.jg.api.enums.WorkFlowStatusEnum;
import com.yeejoin.amos.boot.module.jyjc.api.common.BizCommonConstant;
import com.yeejoin.amos.boot.module.jyjc.api.dto.InspectionCompanyPublicityDto;
import com.yeejoin.amos.boot.module.jyjc.api.entity.JyjcInspectionHistory;
import com.yeejoin.amos.boot.module.jyjc.api.entity.JyjcOpeningApplication;
import com.yeejoin.amos.boot.module.jyjc.api.enums.BizTypeEnum;
import com.yeejoin.amos.boot.module.jyjc.api.enums.BusinessTypeEnum;
import com.yeejoin.amos.boot.module.jyjc.api.enums.OpenBizTypeEnum;
import com.yeejoin.amos.boot.module.jyjc.api.enums.OpenBizTypeEnumV2;
import com.yeejoin.amos.boot.module.jyjc.api.mapper.JyjcOpeningApplicationMapper;
import com.yeejoin.amos.boot.module.jyjc.api.model.*;
import com.yeejoin.amos.boot.module.jyjc.api.service.IJyjcOpeningApplicationService;
import com.yeejoin.amos.boot.module.jyjc.api.vo.JyjcInspectionApplicationVo;
import com.yeejoin.amos.boot.module.jyjc.api.vo.JyjcOpeningApplicationVo;
import com.yeejoin.amos.boot.module.jyjc.biz.action.RuleActionHandler;
import com.yeejoin.amos.boot.module.jyjc.biz.config.BaseException;
import com.yeejoin.amos.boot.module.jyjc.biz.feign.TzsServiceFeignClient;
import com.yeejoin.amos.boot.module.jyjc.biz.service.TaskModelServiceImpl;
import com.yeejoin.amos.boot.module.ymt.api.dto.TzBaseEnterpriseInfoDto;
import com.yeejoin.amos.boot.module.ymt.api.dto.TzBaseUnitLicenceDto;
import com.yeejoin.amos.boot.module.ymt.api.entity.BaseUnitLicence;
import com.yeejoin.amos.boot.module.ymt.api.entity.TzBaseEnterpriseInfo;
import com.yeejoin.amos.boot.module.ymt.api.entity.TzBaseUnitLicence;
......@@ -43,6 +49,7 @@ import com.yeejoin.amos.boot.module.ymt.api.enums.ApplicationFormTypeEnum;
import com.yeejoin.amos.boot.module.ymt.api.enums.FlowStatusEnum;
import com.yeejoin.amos.boot.module.ymt.api.mapper.BaseUnitLicenceMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.TzBaseEnterpriseInfoMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.TzBaseUnitLicenceMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.TzsUserInfoMapper;
import com.yeejoin.amos.boot.module.ymt.api.vo.TzsUserInfoVo;
import com.yeejoin.amos.component.feign.model.FeignClientResult;
......@@ -68,9 +75,8 @@ import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.function.Function;
......@@ -111,8 +117,6 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
@Autowired
DataDictionaryMapper dataDictionaryMapper;
@Autowired
RuleActionHandler ruleActionHandler;
@Autowired
RedissonClient redissonClient;
@Autowired
private TzsServiceFeignClient tzsServiceFeignClient;
......@@ -120,14 +124,13 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
private String processDefinitionKey;
@Value("${jy.user-post:66151}")
private String jyUserPost;
@Value("${jy.cert.type.code:1233-1}")
private String jyCertTypeCode;
@Value("${jc.user-post:66152}")
private String jcUserPost;
@Value("${jc.cert.type.code:1233-2}")
private String jcCertTypeCode;
@Value("classpath:/json/bizTypeInfo.json")
private org.springframework.core.io.Resource bizTypeInfo;
@Value("${jyjc.charge.user-post:6667}")
private String chargeUserPost;
@Autowired
private TzBaseEnterpriseInfoMapper enterpriseInfoMapper;
@Autowired
......@@ -136,6 +139,14 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
private RuleCommonServiceImpl ruleCommonService;
@Autowired
private TzBaseEnterpriseInfoMapper tzBaseEnterpriseInfoMapper;
@Autowired
private BaseEnterpriseCertServiceImpl enterpriseCertService;
@Resource
private JyjcInspectionHistoryServiceImpl inspectionHistoryService;
@Resource
private SnowflakeIdUtil sequence;
/**
* 编辑、工作台暂存逻辑
......@@ -144,8 +155,10 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
* @return JyjcOpeningApplicationModel
*/
@Transactional(rollbackFor = {Exception.class, BaseException.class})
public JyjcOpeningApplicationModel saveOrUpdate(JyjcOpeningApplicationModel model) {
public JyjcOpeningApplicationModel saveOrUpdate(JyjcOpeningApplicationModel model, String unitCode) {
if (model.getSequenceNbr() != null) {
// 存json
commonService.saveOrUpdateHistory(model.getOpenBizType(),JSONObject.parseObject(JSONObject.toJSONString(model)), model.getSequenceNbr());
// 编辑逻辑
return this.updateWithModel(model);
} else {
......@@ -154,16 +167,16 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
List<String> codes = tzsServiceFeignClient.applicationFormCode(ApplicationFormTypeEnum.JY.getCode(), 1).getResult();
model.setApplicationSeq(codes.get(0));
CompanyBo companyBo = commonService.getReginParamsOfCurrentUser().getCompany();
model.setUnitCode(companyBo.getCompanyCode());
model.setUnitCode(unitCode);
model.setUnitCodeName(companyBo.getCompanyName());
model.setCreateUserId(RequestContext.getExeUserId());
model.setStatus(FlowStatusEnum.TO_BE_SUBMITTED.getCode() + "");
model.setStatusName(FlowStatusEnum.TO_BE_SUBMITTED.getName());
model.setStatus(WorkFlowStatusEnum.OPENING_APPLICATION_SUBMIT.getPass());
this.createWithModel(model);
// 2.创建待办
createDraftTask(model);
// 3.存json
commonService.saveOrUpdateHistory(model.getOpenBizType(),JSONObject.parseObject(JSONObject.toJSONString(model)), model.getSequenceNbr());
}
model.setStatusName(FlowStatusEnum.getNameByType(Long.parseLong((model.getStatus()))));
return this.updateWithModel(model);
}
......@@ -171,12 +184,13 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
* 提交、保存并提交逻辑
*
* @param model 对象
* @param companyCode
* @return JyjcOpeningApplicationModel
*/
@Transactional(rollbackFor = {Exception.class, BaseException.class})
public JyjcOpeningApplicationModel submitApplication(JyjcOpeningApplicationModel model) {
public JyjcOpeningApplicationModel submitApplication(JyjcOpeningApplicationModel model, String companyCode) {
String instanceId = model.getWorkflowProstanceId();
this.setDefaultFieldValue(model);
this.setDefaultFieldValue(model, companyCode);
if (StringUtils.isBlank(instanceId)) {
// 未开启过工作流则进行开启 startProcess
ActWorkflowBatchDTO actWorkflowBatchDTO = new ActWorkflowBatchDTO();
......@@ -191,8 +205,9 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
List<ProcessTaskDTO> processTaskDTOS = cmWorkflowService.startBatch(actWorkflowBatchDTO);
List<WorkflowResultDto> resultDto = taskModelService.buildWorkFlowInfo(processTaskDTOS);
WorkflowResultDto workflowResultDto = resultDto.get(0);
model.setStatus(String.valueOf(FlowStatusEnum.TO_BE_PROCESSED.getCode()));
model.setStatusName(String.valueOf(FlowStatusEnum.TO_BE_PROCESSED.getName()));
if (!org.springframework.util.ObjectUtils.isEmpty(workflowResultDto.getNextTaskCode())) {
model.setStatus( WorkFlowStatusEnum.getMessage(workflowResultDto.getNextTaskCode()).getPass());
}
model.setPromoter(RequestContext.getExeUserId());
model.setWorkflowProstanceId(workflowResultDto.getInstanceId());
model.setNextExecuteIds(workflowResultDto.getNextExecutorRoleIds());
......@@ -205,13 +220,17 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
buildTask(model, workflowResultDto);
// 缓存流程数据
commonService.saveExecuteFlowData2Redis(workflowResultDto.getInstanceId(), this.buildInstanceRuntimeData(model));
// 存json
commonService.saveOrUpdateHistory(model.getOpenBizType(),JSONObject.parseObject(JSONObject.toJSONString(model)), model.getSequenceNbr());
return model;
} else {
// 首次提交时删除暂存的待办
this.deleteDraftTask(model);
// 存在流程,执行
executeOneStep(model);
executeOneStep(model, "0");
saveModel(model);
// 存json
commonService.saveOrUpdateHistory(model.getOpenBizType(),JSONObject.parseObject(JSONObject.toJSONString(model)), model.getSequenceNbr());
return model;
}
}
......@@ -222,10 +241,10 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
}
}
private void setDefaultFieldValue(JyjcOpeningApplicationModel model) {
private void setDefaultFieldValue(JyjcOpeningApplicationModel model, String companyCode) {
CompanyBo companyBo = commonService.getReginParamsOfCurrentUser().getCompany();
model.setApplyTime(new Date());
model.setUnitCode(companyBo.getCompanyCode());
model.setUnitCode(companyCode);
model.setUnitCodeName(companyBo.getCompanyName());
if (model.getSequenceNbr() == null) {
model.setCreateUserId(RequestContext.getExeUserId());
......@@ -291,15 +310,14 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
.eq(JyjcOpeningApplication::getUnitCode, unitCode)
.eq(JyjcOpeningApplication::getOpenBizType, openBizType)
.ne(JyjcOpeningApplication::getSequenceNbr, sequenceNbr)
.eq(JyjcOpeningApplication::getStatus, FlowStatusEnum.TO_BE_FINISHED.getCode())
.list().stream().filter(o -> !o.getSequenceNbr().equals(sequenceNbr))
.map(JyjcOpeningApplication::getSequenceNbr).collect(Collectors.toList());
.eq(JyjcOpeningApplication::getStatus, FlowStatusEnum.TO_BE_FINISHED.getName())
.list().stream().map(JyjcOpeningApplication::getSequenceNbr)
.filter(nbr -> !nbr.equals(sequenceNbr)).collect(Collectors.toList());
if (ValidationUtil.isEmpty(ids)) {
return;
}
LambdaUpdateWrapper<JyjcOpeningApplication> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.set(JyjcOpeningApplication::getStatus, FlowStatusEnum.TO_BE_DISCARD.getCode())
.set(JyjcOpeningApplication::getStatusName, FlowStatusEnum.TO_BE_DISCARD.getName())
updateWrapper.set(JyjcOpeningApplication::getStatus, FlowStatusEnum.TO_BE_DISCARD.getName())
.set(JyjcOpeningApplication::getRemark, "新开通申请生效,原有开通申请自动作废")
.in(org.typroject.tyboot.core.rdbms.orm.entity.BaseEntity::getSequenceNbr, ids);
this.update(updateWrapper);
......@@ -367,12 +385,10 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
/**
* 获取详情跳转
* 开通详情
*
* @param
* @return {@link }
* @throws
* @author yangyang
* @param sequenceNbr 主键,开始时为空,详情时非空
* @return 开通申请详情
*/
public JyjcOpeningApplicationModel queryDetail(Long sequenceNbr) {
ReginParams reginParams = commonService.getReginParamsOfCurrentUser();
......@@ -384,140 +400,114 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
if (null != sequenceNbr) {
jyjcOpeningApplicationModel = this.queryBySeq(sequenceNbr);
unitCode = jyjcOpeningApplicationModel.getUnitCode();
// 设置检验、检测资质信息
setBaseUnitLicences(unitCode, jyjcOpeningApplicationModel, true);
// 设置检验、检测人员信息
setJYJCUserList(unitCode, jyjcOpeningApplicationModel, false, "jy,jc");
JyjcInspectionHistory jyjcInspectionHistory = inspectionHistoryService.getBySSeq(jyjcOpeningApplicationModel.getSequenceNbr());
JSONObject hisData = jyjcInspectionHistory.getHistoryData();
// 人员信息:审批完成、已作废时显示历史数据
if (jyjcOpeningApplicationModel.getStatus().equals(FlowStatusEnum.TO_BE_DISCARD.getCode() + "") || jyjcOpeningApplicationModel.getStatus().equals(FlowStatusEnum.TO_BE_FINISHED.getCode() + "")) {
jyjcOpeningApplicationModel.setJyjcUserInfos(JSONArray.parseArray(hisData.getString(BizCommonConstant.JYJC_USER_LIST_KEY), TzsUserInfoVo.class));
jyjcOpeningApplicationModel.setChargeUserInfos(JSONArray.parseArray(hisData.getString(BizCommonConstant.CHAGRE_USER_LIST_KEY), TzsUserInfoVo.class));
} else { // 流程中实时数据显示人
setJYJCUserList(unitCode, jyjcOpeningApplicationModel);
}
// 证书资质信息-按照json显示
jyjcOpeningApplicationModel.setBaseUnitLicences(JSONArray.parseArray(hisData.getString("baseUnitLicences"), BaseEnterpriseCertDto.class));
} else {
jyjcOpeningApplicationModel = new JyjcOpeningApplicationModel();
jyjcOpeningApplicationModel.setResultType("input");
jyjcOpeningApplicationModel.setOpenBizType(OpenBizTypeEnum.JY.getCode());
unitCode = reginParams.getCompany().getCompanyCode();
jyjcOpeningApplicationModel.setOpenBizType(this.getOpenBizTypeByIdentity(reginParams.getCompany().getCompanyType()));
unitCode = getUnitCode(reginParams);
jyjcOpeningApplicationModel.setUnitCodeName(reginParams.getCompany().getCompanyName());
jyjcOpeningApplicationModel.setUnitCode(unitCode);
// 设置检测资质信息,前端需要按照开通的业务类型自行过滤,全部数据
setBaseUnitLicences(unitCode, jyjcOpeningApplicationModel, false);
// 设置业务有效期的默认值与yjcOpeningApplicationModel.setOpenBizType(OpenBizTypeEnum.JY.getCode())对应
setDefaultExpiryDate(jyjcOpeningApplicationModel);
// 证书资质信息
setBaseUnitLicences2(unitCode, jyjcOpeningApplicationModel);
}
// 设置企业信息
// 企业基本信息
setBaseEnterpriseInfo(unitCode, jyjcOpeningApplicationModel);
return jyjcOpeningApplicationModel;
}
private static String getUnitCode(ReginParams reginParams) {
String unitCode;
unitCode = reginParams.getCompany().getCompanyCode();
unitCode = unitCode.contains("_") ? unitCode.substring(unitCode.indexOf("_") + 1) : unitCode;
return unitCode;
}
private String getOpenBizTypeByIdentity(String unitType) {
OpenBizTypeEnumV2 bizTypeEnumV2 = OpenBizTypeEnumV2.getOneByUnitType(unitType);
if (bizTypeEnumV2 == null) {
throw new BadRequest("非法的的单位类型!");
}
return bizTypeEnumV2.getCode();
}
private void setBaseEnterpriseInfo(String unitCode, JyjcOpeningApplicationModel jyjcOpeningApplicationModel) {
LambdaQueryWrapper<TzBaseEnterpriseInfo> enterpriseInfoQueryWrapper = new LambdaQueryWrapper<>();
enterpriseInfoQueryWrapper.eq(TzBaseEnterpriseInfo::getUseCode, unitCode);
TzBaseEnterpriseInfo baseUnitLicenceEntity = enterpriseInfoMapper.selectOne(enterpriseInfoQueryWrapper);
TzBaseEnterpriseInfo baseEnterpriseInfo = enterpriseInfoMapper.selectOne(enterpriseInfoQueryWrapper);
// 获取企业资质
if (baseUnitLicenceEntity != null) {
jyjcOpeningApplicationModel.setUseContact(baseUnitLicenceEntity.getUseContact());
jyjcOpeningApplicationModel.setContactPhone(baseUnitLicenceEntity.getContactPhone());
jyjcOpeningApplicationModel.setUnitAddress(baseUnitLicenceEntity.getAddress());
if (StringUtils.isNotBlank(baseUnitLicenceEntity.getIndustrySupervisor())) {
DataDictionary dict = dataDictionaryMapper.getByCode(baseUnitLicenceEntity.getIndustrySupervisor(), INDUSTRY_SUPERVISOR_DICT_TYPE);
if (baseEnterpriseInfo != null) {
jyjcOpeningApplicationModel.setUseContact(baseEnterpriseInfo.getUseContact());
jyjcOpeningApplicationModel.setContactPhone(baseEnterpriseInfo.getContactPhone());
jyjcOpeningApplicationModel.setUnitAddress(baseEnterpriseInfo.getFullAddress());
if (StringUtils.isNotBlank(baseEnterpriseInfo.getIndustrySupervisor())) {
DataDictionary dict = dataDictionaryMapper.getByCode(baseEnterpriseInfo.getIndustrySupervisor(), INDUSTRY_SUPERVISOR_DICT_TYPE);
if (dict != null) {
jyjcOpeningApplicationModel.setIndustrySupervisor(dict.getName());
} else {
jyjcOpeningApplicationModel.setIndustrySupervisor(baseUnitLicenceEntity.getIndustrySupervisor());
jyjcOpeningApplicationModel.setIndustrySupervisor(baseEnterpriseInfo.getIndustrySupervisor());
}
}
jyjcOpeningApplicationModel.setGeographic(JyjcGeographicModel.builder().latitude(baseUnitLicenceEntity.getLatitude()).longitude(baseUnitLicenceEntity.getLongitude()).build());
jyjcOpeningApplicationModel.setLongitude(baseUnitLicenceEntity.getLongitude());
jyjcOpeningApplicationModel.setLatitude(baseUnitLicenceEntity.getLatitude());
if (ObjectUtils.isNotEmpty(baseUnitLicenceEntity.getUnitBusinessLicense())) {
jyjcOpeningApplicationModel.setUnitBusinessLicense(JSONArray.parseArray(baseUnitLicenceEntity.getUnitBusinessLicense(), AttachmentDto.class));
jyjcOpeningApplicationModel.setGeographic(JyjcGeographicModel.builder().latitude(baseEnterpriseInfo.getLatitude()).longitude(baseEnterpriseInfo.getLongitude()).build());
jyjcOpeningApplicationModel.setLongitude(baseEnterpriseInfo.getLongitude());
jyjcOpeningApplicationModel.setLatitude(baseEnterpriseInfo.getLatitude());
jyjcOpeningApplicationModel.setDataSources(baseEnterpriseInfo.getDataSources());
if (ObjectUtils.isNotEmpty(baseEnterpriseInfo.getUnitBusinessLicense())) {
jyjcOpeningApplicationModel.setUnitBusinessLicense(JSONArray.parseArray(baseEnterpriseInfo.getUnitBusinessLicense(), AttachmentDto.class));
}
}
}
private void setDefaultExpiryDate(JyjcOpeningApplicationModel jyjcOpeningApplicationModel) {
Optional<TzBaseUnitLicenceDto> op = jyjcOpeningApplicationModel.getBaseUnitLicences().stream().filter(l -> l.getCertTypeCode().equals(jyjcOpeningApplicationModel.getOpenBizType())).min(Comparator.comparing(TzBaseUnitLicenceDto::getExpiryDate));
op.ifPresent(licenceDto -> jyjcOpeningApplicationModel.setExpiryDate(licenceDto.getExpiryDate()));
}
private void setBaseUnitLicences(String unitCode, JyjcOpeningApplicationModel jyjcOpeningApplicationModel, boolean isNeedFilter) {
List<BaseUnitLicence> baseUnitLicences = baseUnitLicenceMapper.selectList(new LambdaQueryWrapper<BaseUnitLicence>()
.eq(BaseUnitLicence::getUnitCode, unitCode)
.gt(BaseUnitLicence::getExpiryDate, new Date())
.in(BaseUnitLicence::getCertTypeCode, Arrays.asList(jyCertTypeCode, jcCertTypeCode)));
List<TzBaseUnitLicenceDto> licences = baseUnitLicences.stream().map(l -> {
TzBaseUnitLicenceDto licenceDto = new TzBaseUnitLicenceDto();
BeanUtil.copyProperties(l, licenceDto);
licenceDto.setCertTypeCode(this.castCode2Str(l.getCertTypeCode()));
return licenceDto;
private void setBaseUnitLicences2(String unitCode, JyjcOpeningApplicationModel jyjcOpeningApplicationModel) {
List<BaseEnterpriseCert> enterpriseCerts = enterpriseCertService.getBaseMapper().selectList(new LambdaQueryWrapper<BaseEnterpriseCert>().eq(BaseEnterpriseCert::getUnitCode, unitCode));
List<BaseEnterpriseCertDto> certDtos = enterpriseCerts.parallelStream().map(c -> {
BaseEnterpriseCertDto enterpriseCertDto = new BaseEnterpriseCertDto();
BeanUtils.copyProperties(c, enterpriseCertDto);
enterpriseCertDto.setItemCodes(this.getBuildItemCode(c.getSequenceNbr()));
return enterpriseCertDto;
}).collect(Collectors.toList());
if (isNeedFilter) {
licences = licences.stream().filter(u -> u.getCertTypeCode().equals(jyjcOpeningApplicationModel.getOpenBizType())).collect(Collectors.toList());
jyjcOpeningApplicationModel.setBaseUnitLicences(licences);
} else {
jyjcOpeningApplicationModel.setBaseUnitLicences(licences);
}
jyjcOpeningApplicationModel.setBaseUnitLicences(certDtos);
}
private String castCode2Str(String certTypeCode) {
// 新注册逻辑,逻辑在1处维护,便于代码维护【jy、jc对应前端的业务类型】
if (jcCertTypeCode.equals(certTypeCode)) {
// 检测类型资质
return "jc";
}
if (jyCertTypeCode.equals(certTypeCode)) {
// 检验类型资质
return "jy";
}
// 之前老数据逻辑,逻辑在1处维护,便于代码维护【jy、jc对应前端的业务类型】
return "";
private List<String> getBuildItemCode(Long sequenceNbr) {
List<BaseUnitLicence> baseUnitLicences = baseUnitLicenceMapper.selectList(new LambdaQueryWrapper<BaseUnitLicence>()
.eq(BaseUnitLicence::getEnterpriseCertSeq, sequenceNbr).select(BaseUnitLicence::getItemCode, BaseEntity::getSequenceNbr));
return baseUnitLicences.stream().map(BaseUnitLicence::getItemCode).filter(Objects::nonNull).collect(Collectors.toList());
}
private void setJYJCUserList(String unitCode, JyjcOpeningApplicationModel jyjcOpeningApplicationModel, boolean isNeedFilter, String openBizType) {
private void setJYJCUserList(String unitCode, JyjcOpeningApplicationModel jyjcOpeningApplicationModel) {
LambdaQueryWrapper<TzsUserInfo> userInfoQueryWrapper = new LambdaQueryWrapper<>();
userInfoQueryWrapper.eq(TzsUserInfo::getUnitCode, unitCode);
userInfoQueryWrapper.eq(BaseEntity::getIsDelete, false);
commonService.castPersonType2Post(userInfoQueryWrapper, openBizType);
commonService.castPersonType2Post(userInfoQueryWrapper, "jy,jc,charge");
List<TzsUserInfo> userInfos = userInfoMapper.selectList(userInfoQueryWrapper);
if (!ValidationUtil.isEmpty(userInfos)) {
List<TzsUserInfoVo> tzsUserInfoVos = userInfos.stream().map(userInfo -> {
TzsUserInfoVo vo = new TzsUserInfoVo();
BeanUtils.copyProperties(userInfo, vo, "identification", "profile", "permissionItem", "appointDoc", "permissionData");
this.setPermissionInfo(vo, userInfo, openBizType);
BeanUtils.copyProperties(userInfo, vo, "identification", "profile", "permissionItem", "appointDoc", "permissionData", "appointDoc");
if (!ObjectUtils.isEmpty(userInfo.getPost())) {
vo.setPost(JSON.parseArray(userInfo.getPost()));
}
if (!ObjectUtils.isEmpty(userInfo.getAppointDoc())) {
vo.setAppointDoc(JSON.parseArray(userInfo.getAppointDoc()));
}
return vo;
}).filter(o -> o.getPost() != null && (o.getPost().contains(jyUserPost) || o.getPost().contains(jcUserPost))).peek(u -> {
// 设置岗位类型,逻辑在1端处理,便于代码维护,前端直接使用即可【jy、jc对应前端的业务类型】
if (u.getPost().contains(jyUserPost) && u.getPost().contains(jcUserPost)) {
// 即时检验又是检测人员
u.setStrPost("jy,jc");
}
if (u.getPost().contains(jyUserPost) && !u.getPost().contains(jcUserPost)) {
// 检验人员
u.setStrPost("jy");
}
if (!u.getPost().contains(jyUserPost) && u.getPost().contains(jcUserPost)) {
// 检测人员
u.setStrPost("jc");
}
}).collect(Collectors.toList());
if (isNeedFilter) {
tzsUserInfoVos = tzsUserInfoVos.stream().filter(u -> u.getStrPost().contains(jyjcOpeningApplicationModel.getOpenBizType())).collect(Collectors.toList());
jyjcOpeningApplicationModel.setUserInfos(tzsUserInfoVos);
} else {
jyjcOpeningApplicationModel.setUserInfos(tzsUserInfoVos);
}
jyjcOpeningApplicationModel.setJyjcUserInfos(tzsUserInfoVos.stream().filter(u -> u.getPost().contains(jyUserPost) || u.getPost().contains(jcUserPost)).collect(Collectors.toList()));
jyjcOpeningApplicationModel.setChargeUserInfos(tzsUserInfoVos.stream().filter(u -> u.getPost().contains(chargeUserPost)).collect(Collectors.toList()));
}
}
public List<TzsUserInfoVo> getUserListByUnitCodeAndPost(String unitCode, String personType) {
LambdaQueryWrapper<TzsUserInfo> userInfoQueryWrapper = new LambdaQueryWrapper<>();
userInfoQueryWrapper.eq(TzsUserInfo::getUnitCode, unitCode);
commonService.castPersonType2Post(userInfoQueryWrapper, personType);
userInfoQueryWrapper.eq(BaseEntity::getIsDelete, false);
userInfoQueryWrapper.orderByDesc(TzsUserInfo::getRecDate);
List<TzsUserInfo> userInfos = userInfoMapper.selectList(userInfoQueryWrapper);
List<TzsUserInfo> userInfos = getUserList(unitCode, personType);
String appKey = RequestContext.getAppKey();
String product = RequestContext.getProduct();
String token = RequestContext.getToken();
......@@ -539,6 +529,33 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
}).collect(Collectors.toList());
}
public Map<String, List<TzsUserInfoVo>> getUserListByUnitCodeAndPostV2(String unitCode, String personType) {
Map<String, List<TzsUserInfoVo>> result = new HashMap<>();
List<TzsUserInfo> userInfos = getUserList(unitCode, personType);
List<TzsUserInfoVo> tzsUserInfoVos = userInfos.stream().map(userInfo -> {
TzsUserInfoVo vo = new TzsUserInfoVo();
BeanUtils.copyProperties(userInfo, vo, "identification", "profile", "permissionItem", "appointDoc", "permissionData", "appointDoc");
vo.setSequenceNbr(userInfo.getSequenceNbr());
if (!ObjectUtils.isEmpty(userInfo.getNewPost())) {
vo.setPost(JSON.parseArray(userInfo.getNewPost()));
}
return vo;
}).collect(Collectors.toList());
result.put(BizCommonConstant.JYJC_USER_LIST_KEY, tzsUserInfoVos.stream().filter(u -> u.getPost().contains(jyUserPost) || u.getPost().contains(jcUserPost)).collect(Collectors.toList()));
result.put(BizCommonConstant.CHAGRE_USER_LIST_KEY, tzsUserInfoVos.stream().filter(u -> u.getPost().contains(chargeUserPost)).collect(Collectors.toList()));
return result;
}
private List<TzsUserInfo> getUserList(String unitCode, String personType) {
LambdaQueryWrapper<TzsUserInfo> userInfoQueryWrapper = new LambdaQueryWrapper<>();
userInfoQueryWrapper.eq(TzsUserInfo::getUnitCode, unitCode);
commonService.castPersonType2Post(userInfoQueryWrapper, personType);
userInfoQueryWrapper.eq(BaseEntity::getIsDelete, false);
userInfoQueryWrapper.orderByDesc(TzsUserInfo::getRecDate);
return userInfoMapper.selectList(userInfoQueryWrapper);
}
private void setPermissionInfo(TzsUserInfoVo vo, TzsUserInfo userInfo, String personType) {
String post = "6615";
if (personType.equals(OpenBizTypeEnum.JY.getCode())) {
......@@ -616,7 +633,7 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
dto.setComment(params.get("comments").toString());
HashMap<String, Object> map = new HashMap<>();
map.put("approvalStatus", op);
if (String.valueOf(FlowStatusEnum.ROLLBACK.getCode()).equals(jyjcOpeningApplication.getStatus()) || String.valueOf(FlowStatusEnum.REJECTED.getCode()).equals(jyjcOpeningApplication.getStatus())) {
if (WorkFlowStatusEnum.OPENING_APPLICATION_SUBMIT.getReject().equals(jyjcOpeningApplication.getStatus()) || WorkFlowStatusEnum.OPENING_APPLICATION_SUBMIT.getRollBack().equals(jyjcOpeningApplication.getStatus())) {
map.put("approvalStatus", "提交");
}
dto.setVariable(map);
......@@ -631,31 +648,35 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
processTaskDTOS.add(complete);
List<WorkflowResultDto> resultDto = taskModelService.buildWorkFlowInfo(processTaskDTOS);
WorkflowResultDto workflowResultDto = resultDto.get(0);
if (!ObjectUtils.isEmpty(workflowResultDto.getNextTaskId())) {
if ("1".equals(op)) {
// 驳回
jyjcOpeningApplication.setStatus(String.valueOf(FlowStatusEnum.REJECTED.getCode()));
jyjcOpeningApplication.setStatusName(String.valueOf(FlowStatusEnum.REJECTED.getName()));
jyjcOpeningApplication.setPromoter("");
String taskCode = FlowStatusEnum.TO_BE_FINISHED.getName();
if (!org.springframework.util.ObjectUtils.isEmpty(workflowResultDto.getNextTaskCode())) {
taskCode = workflowResultDto.getNextTaskCode();
}
if (!FlowStatusEnum.TO_BE_FINISHED.getName().equals(taskCode)) {
if ("0".equals(op)) {
// 通过操作
jyjcOpeningApplication.setStatus(WorkFlowStatusEnum.getMessage(workflowResultDto.getNextTaskCode()).getPass());
jyjcOpeningApplication.setExpiryDate(DateUtil.parseDate(params.get("expiryDate").toString()));
} else {
// 提交
jyjcOpeningApplication.setStatus(String.valueOf(FlowStatusEnum.TO_BE_PROCESSED.getCode()));
jyjcOpeningApplication.setStatusName(String.valueOf(FlowStatusEnum.TO_BE_PROCESSED.getName()));
jyjcOpeningApplication.setPromoter(RequestContext.getExeUserId());
// 驳回操作
jyjcOpeningApplication.setStatus(WorkFlowStatusEnum.getMessage(workflowResultDto.getNextTaskCode()).getReject());
jyjcOpeningApplication.setPromoter("");
}
jyjcOpeningApplication.setNextTaskId(workflowResultDto.getNextTaskId());
jyjcOpeningApplication.setNextExecuteUserIds(workflowResultDto.getNextExecutorUserIds());
// 更新代办
updateTask(jyjcOpeningApplication, workflowResultDto, op);
// 更新json
commonService.saveOrUpdateHistory(jyjcOpeningApplication.getOpenBizType(),JSONObject.parseObject(JSONObject.toJSONString(params)), jyjcOpeningApplication.getSequenceNbr());
} else {
// 流程结束
jyjcOpeningApplication.setStatus(String.valueOf(FlowStatusEnum.TO_BE_FINISHED.getCode()));
jyjcOpeningApplication.setStatus(taskCode);
//更新办理日期
jyjcOpeningApplication.setAcceptDate(new Date());
// 更新代办
HashMap<String, Object> taskParams = new HashMap<>();
taskParams.put("relationId", jyjcOpeningApplication.getWorkflowProstanceId());
taskParams.put("flowStatus", FlowStatusEnum.TO_BE_FINISHED.getCode());
taskParams.put("flowStatus", commonService.getDictionaryCodeByName(jyjcOpeningApplication.getStatus()));
taskParams.put("flowStatusLabel", FlowStatusEnum.TO_BE_FINISHED.getName());
taskParams.put("taskStatus", FlowStatusEnum.TO_BE_FINISHED.getCode());
taskParams.put("taskStatusLabel", FlowStatusEnum.TO_BE_FINISHED.getName());
......@@ -666,18 +687,20 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
jyjcOpeningApplication.setPromoter("");
jyjcOpeningApplication.setNextTaskId("");
jyjcOpeningApplication.setNextExecuteUserIds("");
jyjcOpeningApplication.setStatusName(FlowStatusEnum.TO_BE_FINISHED.getName());
jyjcOpeningApplication.setExpiryDate(DateUtil.parseDate(params.get("expiryDate").toString()));
// 将审批通过的资质信息写入到企业资质表
this.saveLicenseData2Company(jyjcOpeningApplication);
}
jyjcOpeningApplicationMapper.updateById(jyjcOpeningApplication);
// 已完成 作废逻辑
if (String.valueOf(FlowStatusEnum.TO_BE_FINISHED.getCode()).equals(jyjcOpeningApplication.getStatus())) {
if (FlowStatusEnum.TO_BE_FINISHED.getName().equals(jyjcOpeningApplication.getStatus())) {
doDiscard(jyjcOpeningApplication.getUnitCode(), jyjcOpeningApplication.getSequenceNbr(), jyjcOpeningApplication.getOpenBizType());
}
// 更新流程中的流程数据
commonService.saveExecuteFlowData2Redis(jyjcOpeningApplication.getWorkflowProstanceId(), this.buildInstanceRuntimeData(jyjcOpeningApplication));
return jyjcOpeningApplication;
} catch (InterruptedException e) {
e.printStackTrace();
log.error(e.getMessage(), e);
} finally {
if (lock.isHeldByCurrentThread()) {
lock.unlock();
......@@ -686,8 +709,39 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
return null;
}
private void saveLicenseData2Company(JyjcOpeningApplication jyjcOpeningApplication) {
JyjcInspectionHistory history = inspectionHistoryService.getBySSeq(jyjcOpeningApplication.getSequenceNbr());
JSONObject hisData = history.getHistoryData();
List<BaseEnterpriseCertDto> certDtos = JSONArray.parseArray(hisData.getString(BizCommonConstant.UNIT_LICENCE_KEY), BaseEnterpriseCertDto.class);
List<BaseEnterpriseCert> certs = new ArrayList<>();
List<BaseUnitLicence> licences = new ArrayList<>();
certDtos.forEach(e->{
BaseEnterpriseCert cert = new BaseEnterpriseCert();
BeanUtils.copyProperties(e, cert);
if(cert.getSequenceNbr() == null){
cert.setSequenceNbr(sequence.nextId());
}
e.getItemCodes().forEach(itemCode->{
BaseUnitLicence licence = new BaseUnitLicence();
BeanUtils.copyProperties(e, licence);
licence.setItemCode(itemCode);
licence.setEnterpriseCertSeq(cert.getSequenceNbr().toString());
licences.add(licence);
});
certs.add(cert);
});
if(!certs.isEmpty()){
enterpriseCertService.saveBatch(certs);
}
if(!licences.isEmpty()){
licences.parallelStream().forEach(licence->{
baseUnitLicenceMapper.insert(licence);
});
}
}
private void executeOneStep(JyjcOpeningApplicationModel openingApplication) {
private void executeOneStep(JyjcOpeningApplicationModel openingApplication, String operate) {
String instanceId = openingApplication.getWorkflowProstanceId();
String nextTaskId = openingApplication.getNextTaskId();
String lockKey = CommonServiceImpl.buildJcExecuteLockKey(instanceId);
......@@ -712,20 +766,26 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
processTaskDTOS.add(complete);
List<WorkflowResultDto> resultDto = taskModelService.buildWorkFlowInfo(processTaskDTOS);
WorkflowResultDto workflowResultDto = resultDto.get(0);
if ("0".equals(operate)) {
// 通过操作
openingApplication.setStatus(WorkFlowStatusEnum.getMessage(workflowResultDto.getNextTaskCode()).getPass());
} else {
// 驳回操作
openingApplication.setStatus(WorkFlowStatusEnum.getMessage(workflowResultDto.getNextTaskCode()).getReject());
openingApplication.setPromoter("");
}
// 更新业务信息
openingApplication.setStatus(String.valueOf(FlowStatusEnum.TO_BE_PROCESSED.getCode()));
openingApplication.setStatusName(String.valueOf(FlowStatusEnum.TO_BE_PROCESSED.getName()));
openingApplication.setPromoter(RequestContext.getExeUserId());
openingApplication.setNextTaskId(workflowResultDto.getNextTaskId());
openingApplication.setNextExecuteUserIds(workflowResultDto.getNextExecutorUserIds());
// 更新代办
JyjcOpeningApplication jyjcOpeningApplicationEntry = new JyjcOpeningApplication();
BeanUtil.copyProperties(openingApplication, jyjcOpeningApplicationEntry);
updateTask(jyjcOpeningApplicationEntry, workflowResultDto, "0");
updateTask(jyjcOpeningApplicationEntry, workflowResultDto, operate);
// 更新流程中的流程数据
commonService.saveExecuteFlowData2Redis(instanceId, this.buildInstanceRuntimeData(jyjcOpeningApplicationEntry));
} catch (InterruptedException e) {
e.printStackTrace();
log.error(e.getMessage(), e);
} finally {
if (lock.isHeldByCurrentThread()) {
lock.unlock();
......@@ -737,7 +797,7 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
/**
* 撤回流程办理单
*/
public JyjcOpeningApplication stopFlow(String sequenceNbr, String instanceId, String nextTaskId) {
public JyjcOpeningApplication rollBackFlow(String sequenceNbr, String instanceId, String nextTaskId) {
String lockKey = CommonServiceImpl.buildJcExecuteLockKey(instanceId);
RLock lock = redissonClient.getLock(lockKey);
try {
......@@ -753,22 +813,23 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
ProcessTaskDTO processTaskDTO = cmWorkflowService.rollBack(jyjcOpeningApplication.getWorkflowProstanceId());
ArrayList<ProcessTaskDTO> processTaskDTOS = new ArrayList<>();
processTaskDTOS.add(processTaskDTO);
jyjcOpeningApplication.setStatus(String.valueOf(FlowStatusEnum.ROLLBACK.getCode()));
jyjcOpeningApplication.setStatusName(FlowStatusEnum.ROLLBACK.getName());
jyjcOpeningApplication.setPromoter("");
JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(jyjcOpeningApplication));
List<WorkflowResultDto> resultDto = taskModelService.buildWorkFlowInfo(processTaskDTOS);
if (!ObjectUtils.isEmpty(resultDto) && !ObjectUtils.isEmpty(resultDto.get(0))) {
WorkflowResultDto workflowResultDto = resultDto.get(0);
jsonObject.put("nextExecuteUser", workflowResultDto.getNextExecutorRoleIds());
jyjcOpeningApplication.setNextTaskId(workflowResultDto.getNextTaskId());
jyjcOpeningApplication.setNextExecuteUserIds(workflowResultDto.getNextExecutorUserIds());
String taskCode = "";
if (!org.springframework.util.ObjectUtils.isEmpty(resultDto) && !org.springframework.util.ObjectUtils.isEmpty(resultDto.get(0))) {
taskCode = resultDto.get(0).getNextTaskCode();
jyjcOpeningApplication.setNextTaskId(resultDto.get(0).getNextTaskId());
jyjcOpeningApplication.setNextExecuteUserIds(resultDto.get(0).getNextExecutorUserIds());
}
if (StringUtils.isNotEmpty(taskCode)) {
jyjcOpeningApplication.setStatus(WorkFlowStatusEnum.getMessage(taskCode).getRollBack());
}
jyjcOpeningApplication.setPromoter("");
JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(jyjcOpeningApplication));
jsonObject.put("nextTaskId", jyjcOpeningApplication.getNextTaskId());
jsonObject.put("nextExecuteUserIds", jyjcOpeningApplication.getNextExecuteUserIds());
jsonObject.put("taskType", BusinessTypeEnum.JY_OPENING_APPLICATION.getCode());
jsonObject.put("flowStatus", FlowStatusEnum.ROLLBACK.getCode());
jsonObject.put("flowStatusLabel", FlowStatusEnum.ROLLBACK.getName());
jsonObject.put("flowStatus", commonService.getDictionaryCodeByName(jyjcOpeningApplication.getStatus()));
jsonObject.put("flowStatusLabel", jyjcOpeningApplication.getStatus());
// 撤回删除代办
taskModelService.rollbackTask(jyjcOpeningApplication.getWorkflowProstanceId(), jsonObject);
// 更新数据
......@@ -777,7 +838,7 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
commonService.saveExecuteFlowData2Redis(instanceId, this.buildInstanceRuntimeData(jyjcOpeningApplication));
return jyjcOpeningApplication;
} catch (InterruptedException e) {
e.printStackTrace();
log.error(e.getMessage(), e);
} finally {
if (lock.isHeldByCurrentThread()) {
lock.unlock();
......@@ -874,13 +935,17 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
taskModelService.buildTaskModel(list);
}
private void updateTask(JyjcOpeningApplication model, WorkflowResultDto workflowResultDto, String op) {
private void updateTask(JyjcOpeningApplication model, WorkflowResultDto workflowResultDto, String operate) {
String taskCode = FlowStatusEnum.TO_BE_FINISHED.getName();
if (!org.springframework.util.ObjectUtils.isEmpty(workflowResultDto.getNextTaskCode())) {
taskCode = workflowResultDto.getNextTaskCode();
}
// 更新代办状态
HashMap<String, Object> params = new HashMap<>();
params.put("relationId", model.getWorkflowProstanceId());
params.put("flowStatus", model.getStatus());
params.put("flowStatus", commonService.getDictionaryCodeByName(model.getStatus()));
params.put("flowStatusLabel", model.getStatus());
params.put("taskStatus", model.getStatus());
params.put("taskStatus", commonService.getDictionaryCodeByName(model.getStatus()));
params.put("taskStatusLabel", model.getStatus());
TaskV2Model taskV2Model = taskModelService.updateTaskModel(params);
// 创建新的代办
......@@ -892,20 +957,13 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
taskModelDto.setModel(urlParms);
taskModelDto.setTaskName(workflowResultDto.getNextTaskName());
taskModelDto.setExecuteUserIds(workflowResultDto.getNextExecutorUserIds());
if ("0".equals(op)) {
taskModelDto.setTaskStatusLabel(FlowStatusEnum.TO_BE_PROCESSED.getName());
taskModelDto.setTaskStatus(FlowStatusEnum.TO_BE_PROCESSED.getCode());
taskModelDto.setFlowStatus(FlowStatusEnum.TO_BE_PROCESSED.getCode());
taskModelDto.setFlowStatusLabel(FlowStatusEnum.TO_BE_PROCESSED.getName());
} else {
taskModelDto.setTaskStatusLabel(FlowStatusEnum.REJECTED.getName());
taskModelDto.setTaskStatus(FlowStatusEnum.REJECTED.getCode());
taskModelDto.setFlowStatus(FlowStatusEnum.REJECTED.getCode());
taskModelDto.setFlowStatusLabel(FlowStatusEnum.REJECTED.getName());
taskModelDto.setNextExecuteUser(workflowResultDto.getNextExecutorRoleIds());
taskModelDto.setFlowCode(workflowResultDto.getNextTaskId());
// 退回到发起单位或者在资料校队节点时,可编辑
if (WorkFlowStatusEnum.OPENING_APPLICATION_SUBMIT.getCode().equals(taskCode) && "1".equals(operate) || WorkFlowStatusEnum.OPENING_APPLICATION_RECEIVE.getCode().equals(taskCode)) {
taskModelDto.setPageType("edit");
}
taskModelDto.setNextExecuteUser(workflowResultDto.getNextExecutorRoleIds());
taskModelService.buildTaskModel(Collections.singletonList(taskModelDto));
} else {
JyjcOpeningApplicationModel applicationModel = new JyjcOpeningApplicationModel();
......
......@@ -213,4 +213,10 @@ public class TzBaseEnterpriseInfo extends BaseEntity {
*/
@TableField(value = "org_code")
protected String orgCode;
/**
* 完整地址
*/
@TableField(value = "full_address")
private String fullAddress;
}
......@@ -184,4 +184,9 @@ public class BaseUnitLicence extends BaseEntity {
*/
private String licenceType;
/**
* 所属证书
*/
private String enterpriseCertSeq;
}
......@@ -78,6 +78,9 @@ public class TzBaseEnterpriseInfo extends BaseEntity {
@ApiModelProperty(value = "单位详细地址")
private String address;
@ApiModelProperty(value = "完整地址")
private String fullAddress;
@ApiModelProperty(value = "使用单位法人")
private String legalPerson;
......
......@@ -107,4 +107,10 @@ public class TzBaseUnitLicence extends BaseEntity {
@ApiModelProperty(value = "资质类型编码(检验检测、其他)")
private String licenceType;
/**
* 所属证书
*/
private String enterpriseCertSeq;
}
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