Commit 2b8dc876 authored by LiuLin's avatar LiuLin

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

parents 10722f11 51a8d7f6
package com.yeejoin.amos.boot.module.jg.api.dto; package com.yeejoin.amos.boot.module.jg.api.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto; import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import java.util.Date; import java.util.Date;
import java.util.List;
import java.util.Map;
/** /**
* *
...@@ -76,9 +80,11 @@ public class JgInstallationNoticeDto extends BaseDto { ...@@ -76,9 +80,11 @@ public class JgInstallationNoticeDto extends BaseDto {
private String installLeaderPhone; private String installLeaderPhone;
@ApiModelProperty(value = "安装开始日期") @ApiModelProperty(value = "安装开始日期")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date installStartDate; private Date installStartDate;
@ApiModelProperty(value = "安装竣工日期") @ApiModelProperty(value = "安装竣工日期")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date installEndDate; private Date installEndDate;
@ApiModelProperty(value = "产权单位id") @ApiModelProperty(value = "产权单位id")
...@@ -157,6 +163,12 @@ public class JgInstallationNoticeDto extends BaseDto { ...@@ -157,6 +163,12 @@ public class JgInstallationNoticeDto extends BaseDto {
private String inputUnitNo; private String inputUnitNo;
@ApiModelProperty(value = "安装委托书图片") @ApiModelProperty(value = "安装委托书图片")
private List<Map<String, String>> proxyStatementAttachmentList;
@ApiModelProperty(value = "安装合同照片")
private List<Map<String, String>> installContractAttachmentList;
@ApiModelProperty(value = "安装委托书图片")
private String proxyStatementAttachment; private String proxyStatementAttachment;
@ApiModelProperty(value = "安装合同照片") @ApiModelProperty(value = "安装合同照片")
...@@ -171,4 +183,18 @@ public class JgInstallationNoticeDto extends BaseDto { ...@@ -171,4 +183,18 @@ public class JgInstallationNoticeDto extends BaseDto {
@ApiModelProperty(value = "流程实例id") @ApiModelProperty(value = "流程实例id")
private String instanceId; private String instanceId;
@ApiModelProperty(value = "区名字")
private String countyName;
@ApiModelProperty(value = "市名字")
private String cityName;
@ApiModelProperty(value = "省名字")
private String provinceName;
@TableField(exist = false)
@ApiModelProperty(value = "告知设备列表")
private List<Map<String, Object>> deviceList;
} }
...@@ -3,10 +3,14 @@ package com.yeejoin.amos.boot.module.jg.api.entity; ...@@ -3,10 +3,14 @@ package com.yeejoin.amos.boot.module.jg.api.entity;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity; import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import com.yeejoin.amos.boot.module.jg.api.dto.JgInstallationNoticeDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import java.util.Date; import java.util.Date;
import java.util.List;
import java.util.Map;
/** /**
* *
...@@ -83,18 +87,36 @@ public class JgInstallationNotice extends BaseEntity { ...@@ -83,18 +87,36 @@ public class JgInstallationNotice extends BaseEntity {
private String province; private String province;
/** /**
* 安装地点_省
*/
@TableField("province_name")
private String provinceName;
/**
* 安装地点_市 * 安装地点_市
*/ */
@TableField("city") @TableField("city")
private String city; private String city;
/** /**
* 安装地点_市
*/
@TableField("city_name")
private String cityName;
/**
* 设备使用地点_区(县) * 设备使用地点_区(县)
*/ */
@TableField("county") @TableField("county")
private String county; private String county;
/** /**
* 设备使用地点_区(县)
*/
@TableField("county_name")
private String countyName;
/**
* 安装地点_街道(镇) * 安装地点_街道(镇)
*/ */
@TableField("street") @TableField("street")
......
...@@ -40,4 +40,7 @@ public class JgRelationEquip extends BaseEntity { ...@@ -40,4 +40,7 @@ public class JgRelationEquip extends BaseEntity {
@TableField("equip_id") @TableField("equip_id")
private String equipId; private String equipId;
@TableField(exist = false)
private String applyNo;
} }
package com.yeejoin.amos.boot.module.jg.api.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.Collection;
import java.util.List;
/**
* @author DELL
*/
public interface CustomBaseMapper<T> extends BaseMapper<T> {
Integer insertBatchSomeColumn(List<T> entityList);
}
package com.yeejoin.amos.boot.module.jg.api.mapper; package com.yeejoin.amos.boot.module.jg.api.mapper;
import com.yeejoin.amos.boot.module.jg.api.dto.JgInstallationNoticeDto;
import com.yeejoin.amos.boot.module.jg.api.entity.JgInstallationNotice;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import java.util.Collection;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.jg.api.dto.JgInstallationNoticeDto; import com.yeejoin.amos.boot.module.jg.api.dto.JgInstallationNoticeDto;
import com.yeejoin.amos.boot.module.jg.api.entity.JgInstallationNotice; import com.yeejoin.amos.boot.module.jg.api.entity.JgInstallationNotice;
...@@ -12,6 +17,6 @@ import org.apache.ibatis.annotations.Param; ...@@ -12,6 +17,6 @@ import org.apache.ibatis.annotations.Param;
* @author system_generator * @author system_generator
* @date 2023-12-12 * @date 2023-12-12
*/ */
public interface JgInstallationNoticeMapper extends BaseMapper<JgInstallationNotice> { public interface JgInstallationNoticeMapper extends CustomBaseMapper<JgInstallationNotice> {
Page<JgInstallationNotice> queryForPage(Page<JgInstallationNotice> page, @Param("param") JgInstallationNoticeDto model, @Param("type") String type); Page<JgInstallationNotice> queryForPage(Page<JgInstallationNotice> page, @Param("param") JgInstallationNoticeDto model, @Param("type") String type);
} }
...@@ -9,6 +9,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; ...@@ -9,6 +9,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @author system_generator * @author system_generator
* @date 2023-12-12 * @date 2023-12-12
*/ */
public interface JgRelationEquipMapper extends BaseMapper<JgRelationEquip> { public interface JgRelationEquipMapper extends CustomBaseMapper<JgRelationEquip> {
} }
package com.yeejoin.amos.boot.module.jg.api.service; package com.yeejoin.amos.boot.module.jg.api.service;
import com.yeejoin.amos.boot.module.jg.api.dto.JgInstallationNoticeDto;
/** /**
* 接口类 * 接口类
* *
...@@ -9,4 +11,9 @@ package com.yeejoin.amos.boot.module.jg.api.service; ...@@ -9,4 +11,9 @@ package com.yeejoin.amos.boot.module.jg.api.service;
*/ */
public interface IJgInstallationNoticeService { public interface IJgInstallationNoticeService {
/**
* 保存安装告知单
* @param model
*/
void saveNotice(JgInstallationNoticeDto model);
} }
package com.yeejoin.amos.boot.module.jg.biz.config; package com.yeejoin.amos.boot.module.jg.biz.config;
import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.annotation.DbType;
import com.yeejoin.amos.boot.module.jg.biz.utils.SqlInjectorUtils;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor; import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import org.springframework.context.annotation.Primary;
@Configuration(value="MybatisPlusConfig") @Configuration(value="MybatisPlusConfig")
public class MybatisPlusConfigs { public class MybatisPlusConfigs {
...@@ -17,4 +19,9 @@ public class MybatisPlusConfigs { ...@@ -17,4 +19,9 @@ public class MybatisPlusConfigs {
paginationInterceptor.setDialectType(DbType.POSTGRE_SQL.getDb()); paginationInterceptor.setDialectType(DbType.POSTGRE_SQL.getDb());
return paginationInterceptor; return paginationInterceptor;
} }
@Bean
public SqlInjectorUtils sqlInjectorUtils() {
return new SqlInjectorUtils();
}
} }
package com.yeejoin.amos.boot.module.jg.biz.controller; package com.yeejoin.amos.boot.module.jg.biz.controller;
import com.yeejoin.amos.boot.module.jg.api.entity.JgInstallationNotice;
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.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.controller.BaseController; import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.module.jg.api.dto.JgInstallationNoticeDto; import com.yeejoin.amos.boot.module.jg.api.dto.JgInstallationNoticeDto;
...@@ -41,7 +46,7 @@ public class JgInstallationNoticeController extends BaseController { ...@@ -41,7 +46,7 @@ public class JgInstallationNoticeController extends BaseController {
@PostMapping(value = "/save") @PostMapping(value = "/save")
@ApiOperation(httpMethod = "POST", value = "新增安装告知", notes = "新增安装告知") @ApiOperation(httpMethod = "POST", value = "新增安装告知", notes = "新增安装告知")
public ResponseModel<JgInstallationNoticeDto> save(@RequestBody JgInstallationNoticeDto model) { public ResponseModel<JgInstallationNoticeDto> save(@RequestBody JgInstallationNoticeDto model) {
model = jgInstallationNoticeServiceImpl.createWithModel(model); jgInstallationNoticeServiceImpl.saveNotice(model);
return ResponseHelper.buildResponse(model); return ResponseHelper.buildResponse(model);
} }
......
package com.yeejoin.amos.boot.module.jg.biz.service.impl; package com.yeejoin.amos.boot.module.jg.biz.service.impl;
import com.yeejoin.amos.boot.module.jg.api.entity.JgInstallationNotice; import com.yeejoin.amos.boot.module.jg.api.entity.JgInstallationNotice;
import com.yeejoin.amos.boot.module.jg.api.entity.JgRelationEquip;
import com.yeejoin.amos.boot.module.jg.api.enums.FlowStatusEnum; import com.yeejoin.amos.boot.module.jg.api.enums.FlowStatusEnum;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgInstallationNoticeMapper; import com.yeejoin.amos.boot.module.jg.api.mapper.JgInstallationNoticeMapper;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgRelationEquipMapper;
import com.yeejoin.amos.boot.module.jg.api.service.IJgInstallationNoticeService; import com.yeejoin.amos.boot.module.jg.api.service.IJgInstallationNoticeService;
import com.yeejoin.amos.boot.module.jg.api.dto.JgInstallationNoticeDto; import com.yeejoin.amos.boot.module.jg.api.dto.JgInstallationNoticeDto;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.core.rdbms.service.BaseService; import org.typroject.tyboot.core.rdbms.service.BaseService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import java.util.List; import java.util.*;
import java.util.Objects; import java.util.stream.Collectors;
/** /**
* 服务实现类 * 服务实现类
...@@ -25,6 +29,10 @@ public class JgInstallationNoticeServiceImpl extends BaseService<JgInstallationN ...@@ -25,6 +29,10 @@ public class JgInstallationNoticeServiceImpl extends BaseService<JgInstallationN
@Autowired @Autowired
private JgInstallationNoticeMapper jgInstallationNoticeMapper; private JgInstallationNoticeMapper jgInstallationNoticeMapper;
@Autowired
JgRelationEquipMapper jgRelationEquipMapper;
/** /**
* 分页查询 * 分页查询
*/ */
...@@ -54,4 +62,121 @@ public class JgInstallationNoticeServiceImpl extends BaseService<JgInstallationN ...@@ -54,4 +62,121 @@ public class JgInstallationNoticeServiceImpl extends BaseService<JgInstallationN
public List<JgInstallationNoticeDto> queryForJgInstallationNoticeList() { public List<JgInstallationNoticeDto> queryForJgInstallationNoticeList() {
return this.queryForList("", false); return this.queryForList("", false);
} }
@Override
public void saveNotice(JgInstallationNoticeDto model) {
// 字段转换
convertField(model);
// 获取告知设备列表
List<Map<String, Object>> deviceList = model.getDeviceList();
// 获取告知单号
// 调用方法
List<String> applyNoList = new ArrayList<>();
Random random = new Random();
for (int i = 0 ; i< deviceList.size(); i++) {
applyNoList.add(String.valueOf(random.nextInt()));
}
List<JgInstallationNotice> list = new ArrayList<>();
List<JgRelationEquip> equipList = new ArrayList<>();
deviceList.forEach(obj -> {
JgRelationEquip jgRelationEquip = new JgRelationEquip();
JgInstallationNotice dto = new JgInstallationNotice();
BeanUtils.copyProperties(model, dto);
int i = deviceList.indexOf(obj);
String applyNo = applyNoList.get(i);
dto.setApplyNo(applyNo);
dto.setEquList(String.valueOf(obj.get("sequenceNbr")));
jgRelationEquip.setEquipId(String.valueOf(obj.get("sequenceNbr")));
jgRelationEquip.setApplyNo(applyNo);
jgRelationEquip.setBusinessType("GZ");
list.add(dto);
equipList.add(jgRelationEquip);
});
jgInstallationNoticeMapper.insertBatchSomeColumn(list);
List<JgRelationEquip> jgRelationEquipList = equipList.stream().map(jgRelationEquip -> {
List<JgInstallationNotice> collect = list.stream().filter(jgInstallationNotice -> jgRelationEquip.getApplyNo().equals(jgInstallationNotice.getApplyNo())).collect(Collectors.toList());
Long sequenceNbr = collect.get(0).getSequenceNbr();
return jgRelationEquip.setBusinessId(String.valueOf(sequenceNbr));
}).collect(Collectors.toList());
jgRelationEquipMapper.insertBatchSomeColumn(jgRelationEquipList);
}
private void convertField(JgInstallationNoticeDto model) {
// 处理图片
String proxyStatementAttachment = convertImageUrl(model.getInstallContractAttachmentList());
String installContractAttachment =convertImageUrl(model.getProxyStatementAttachmentList());
model.setProxyStatementAttachment(proxyStatementAttachment);
model.setInstallContractAttachment(installContractAttachment);
// 分割省市区字段
String province = model.getProvince();
if (!ObjectUtils.isEmpty(province)) {
String[] provinceList = province.split("_");
if (provinceList.length > 1) {
model.setProvince(provinceList[0]);
model.setProvinceName(provinceList[1]);
}
}
String city = model.getCity();
if (!ObjectUtils.isEmpty(city)) {
String[] cityList = city.split("_");
if (cityList.length > 1) {
model.setCity(cityList[0]);
model.setCityName(cityList[1]);
}
}
String county = model.getCounty();
if (!ObjectUtils.isEmpty(county)) {
String[] countyList = county.split("_");
if (countyList.length > 1) {
model.setCounty(countyList[0]);
model.setCountyName(countyList[1]);
}
}
// 分割单位
String useUnitId = model.getUseUnitId();
if (!ObjectUtils.isEmpty(useUnitId)) {
String[] useUnitList = useUnitId.split("_");
if (useUnitList.length > 1) {
model.setUseUnitId(useUnitList[0]);
model.setUseUnitName(useUnitList[1]);
}
}
String receiveOrgId = model.getReceiveOrgId();
if (!ObjectUtils.isEmpty(receiveOrgId)) {
String[] receiveOrgIdList = receiveOrgId.split("_");
if (receiveOrgIdList.length > 1) {
model.setReceiveOrgId(receiveOrgIdList[0]);
model.setReceiveOrgName(receiveOrgIdList[1]);
}
}
String inspectUnitId = model.getInspectUnitId();
if (!ObjectUtils.isEmpty(inspectUnitId)) {
String[] inspectUnitIdList = inspectUnitId.split("_");
if (inspectUnitIdList.length > 1) {
model.setInspectUnitId(inspectUnitIdList[0]);
model.setInspectUnitName(inspectUnitIdList[1]);
}
}
}
private String convertImageUrl (List<Map<String, String>> urlList) {
String urls = "";
if (!CollectionUtils.isEmpty(urlList)) {
urls = urlList.stream().map(map -> map.get("url")).collect(Collectors.joining(","));
}
return urls;
}
} }
\ No newline at end of file
package com.yeejoin.amos.boot.module.jg.biz.utils;
import com.baomidou.mybatisplus.core.injector.AbstractMethod;
import com.baomidou.mybatisplus.core.injector.DefaultSqlInjector;
import com.baomidou.mybatisplus.extension.injector.methods.additional.InsertBatchSomeColumn;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* @author DELL
*/
@Component
public class SqlInjectorUtils extends DefaultSqlInjector {
@Override
public List<AbstractMethod> getMethodList(Class<?> mapperClass) {
List<AbstractMethod> methodList = super.getMethodList(mapperClass);
// 添加批量插入方法
methodList.add(new InsertBatchSomeColumn());
return methodList;
}
}
...@@ -7,6 +7,8 @@ import lombok.Data; ...@@ -7,6 +7,8 @@ import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import java.util.Date;
/** /**
* 设备检验检测统计表 * 设备检验检测统计表
* *
......
...@@ -7,6 +7,8 @@ import lombok.Data; ...@@ -7,6 +7,8 @@ import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import java.util.Date;
/** /**
* 业务开通申请表 * 业务开通申请表
* *
......
...@@ -3,12 +3,14 @@ package com.yeejoin.amos.boot.module.jyjc.api.entity; ...@@ -3,12 +3,14 @@ package com.yeejoin.amos.boot.module.jyjc.api.entity;
import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
import org.typroject.tyboot.core.rdbms.orm.entity.BaseEntity; import org.typroject.tyboot.core.rdbms.orm.entity.BaseEntity;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import java.util.Date; import java.util.Date;
import java.util.List;
/** /**
* *
...@@ -19,7 +21,7 @@ import java.util.Date; ...@@ -19,7 +21,7 @@ import java.util.Date;
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@Accessors(chain = true) @Accessors(chain = true)
@TableName("tz_jyjc_opening_application") @TableName(value = "tz_jyjc_opening_application", autoResultMap = true)
public class JyjcOpeningApplication extends BaseEntity { public class JyjcOpeningApplication extends BaseEntity {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
...@@ -39,8 +41,8 @@ public class JyjcOpeningApplication extends BaseEntity { ...@@ -39,8 +41,8 @@ public class JyjcOpeningApplication extends BaseEntity {
/** /**
* 检测区域编码 * 检测区域编码
*/ */
@TableField("detection_region") @TableField(value = "detection_region", typeHandler = FastjsonTypeHandler.class)
private String detectionRegion; private List<String> detectionRegion;
/** /**
* 检测区域名称(冗余) * 检测区域名称(冗余)
......
...@@ -6,6 +6,8 @@ import org.typroject.tyboot.core.rdbms.model.BaseModel; ...@@ -6,6 +6,8 @@ import org.typroject.tyboot.core.rdbms.model.BaseModel;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import java.util.Date;
/** /**
* 设备检验检测统计表 * 设备检验检测统计表
* *
......
...@@ -6,6 +6,8 @@ import org.typroject.tyboot.core.rdbms.model.BaseModel; ...@@ -6,6 +6,8 @@ import org.typroject.tyboot.core.rdbms.model.BaseModel;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import java.util.Date;
/** /**
* 业务开通申请表 * 业务开通申请表
* *
......
package com.yeejoin.amos.boot.module.jyjc.api.model; package com.yeejoin.amos.boot.module.jyjc.api.model;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
import com.yeejoin.amos.boot.module.common.api.dto.AttachmentDto; import com.yeejoin.amos.boot.module.common.api.dto.AttachmentDto;
import com.yeejoin.amos.boot.module.tcm.api.dto.TzBaseUnitLicenceDto; import com.yeejoin.amos.boot.module.tcm.api.dto.TzBaseUnitLicenceDto;
import com.yeejoin.amos.boot.module.tcm.api.dto.TzsUserInfoDto; import com.yeejoin.amos.boot.module.tcm.api.dto.TzsUserInfoDto;
...@@ -29,7 +31,8 @@ public class JyjcOpeningApplicationModel extends BaseModel { ...@@ -29,7 +31,8 @@ public class JyjcOpeningApplicationModel extends BaseModel {
private String unitCodeName; private String unitCodeName;
@ApiModelProperty (value = "检测区域编码") @ApiModelProperty (value = "检测区域编码")
private String detectionRegion; @TableField(value = "detection_region", typeHandler = FastjsonTypeHandler.class)
private List<String> detectionRegion;
@ApiModelProperty (value = "检测区域名称(冗余)") @ApiModelProperty (value = "检测区域名称(冗余)")
private String detectionRegionName; private String detectionRegionName;
......
package com.yeejoin.amos.boot.module.jyjc.biz.controller; package com.yeejoin.amos.boot.module.jyjc.biz.controller;
import com.yeejoin.amos.boot.module.jyjc.api.entity.JyjcOpeningApplication; import com.yeejoin.amos.boot.module.jyjc.api.entity.JyjcOpeningApplication;
import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.amos.feign.privilege.model.GroupModel;
import com.yeejoin.amos.feign.privilege.model.RoleModel;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import com.yeejoin.amos.boot.biz.common.controller.BaseController; import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.module.jyjc.biz.service.impl.JyjcOpeningApplicationServiceImpl; import com.yeejoin.amos.boot.module.jyjc.biz.service.impl.JyjcOpeningApplicationServiceImpl;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.restful.utils.ResponseHelper; import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel; import org.typroject.tyboot.core.restful.utils.ResponseModel;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -16,7 +21,10 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; ...@@ -16,7 +21,10 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.jyjc.api.model.JyjcOpeningApplicationModel; import com.yeejoin.amos.boot.module.jyjc.api.model.JyjcOpeningApplicationModel;
import org.typroject.tyboot.core.restful.doc.TycloudOperation; import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.foundation.enumeration.UserType; import org.typroject.tyboot.core.foundation.enumeration.UserType;
import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
/** /**
* *
...@@ -40,7 +48,7 @@ public class JyjcOpeningApplicationController extends BaseController { ...@@ -40,7 +48,7 @@ public class JyjcOpeningApplicationController extends BaseController {
@PostMapping(value = "/save") @PostMapping(value = "/save")
@ApiOperation(httpMethod = "POST", value = "新增", notes = "新增") @ApiOperation(httpMethod = "POST", value = "新增", notes = "新增")
public ResponseModel<JyjcOpeningApplicationModel> save(@RequestBody JyjcOpeningApplicationModel model) { public ResponseModel<JyjcOpeningApplicationModel> save(@RequestBody JyjcOpeningApplicationModel model) {
model = jyjcOpeningApplicationServiceImpl.saveModel(model); model = jyjcOpeningApplicationServiceImpl.saveModel(model, false);
return ResponseHelper.buildResponse(model); return ResponseHelper.buildResponse(model);
} }
...@@ -52,12 +60,28 @@ public class JyjcOpeningApplicationController extends BaseController { ...@@ -52,12 +60,28 @@ public class JyjcOpeningApplicationController extends BaseController {
*/ */
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@PutMapping(value = "/{sequenceNbr}") @PutMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "PUT", value = "根据sequenceNbr更新", notes = "根据sequenceNbr更新") @ApiOperation(httpMethod = "PUT", value = "更新", notes = "更新")
public ResponseModel<JyjcOpeningApplicationModel> updateBySequenceNbrJyjcOpeningApplication(@RequestBody JyjcOpeningApplicationModel model,@PathVariable(value = "sequenceNbr") Long sequenceNbr) { public ResponseModel<JyjcOpeningApplicationModel> updateBySequenceNbrJyjcOpeningApplication(@RequestBody JyjcOpeningApplicationModel model,@PathVariable(value = "sequenceNbr") Long sequenceNbr) {
model.setSequenceNbr(sequenceNbr); model.setSequenceNbr(sequenceNbr);
return ResponseHelper.buildResponse(jyjcOpeningApplicationServiceImpl.updateModel(model,false)); return ResponseHelper.buildResponse(jyjcOpeningApplicationServiceImpl.updateModel(model,false));
} }
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PutMapping(value = "/{sequenceNbr}/submit")
@ApiOperation(httpMethod = "PUT", value = "保存并提交", notes = "保存并提交")
public ResponseModel<JyjcOpeningApplicationModel> updateBySequenceNbrAndStartFlow(@RequestBody JyjcOpeningApplicationModel model,@PathVariable(value = "sequenceNbr") Long sequenceNbr) {
model.setSequenceNbr(sequenceNbr);
return ResponseHelper.buildResponse(jyjcOpeningApplicationServiceImpl.updateModel(model,true));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/startFlow/{sequenceNbr}")
@ApiOperation(httpMethod = "POST", value = "重新提交开通申请", notes = "重新提交开通申请")
public ResponseModel<JyjcOpeningApplicationModel> resubmitJyjcOpeningApplication(@RequestBody JyjcOpeningApplicationModel model, @PathVariable(value = "sequenceNbr") Long sequenceNbr) {
model.setSequenceNbr(sequenceNbr);
return ResponseHelper.buildResponse(jyjcOpeningApplicationServiceImpl.updateModel(model, true));
}
/** /**
* 根据sequenceNbr删除 * 根据sequenceNbr删除
* *
...@@ -140,12 +164,17 @@ public class JyjcOpeningApplicationController extends BaseController { ...@@ -140,12 +164,17 @@ public class JyjcOpeningApplicationController extends BaseController {
jyjcOpeningApplicationServiceImpl.stopFlow(instanceId); jyjcOpeningApplicationServiceImpl.stopFlow(instanceId);
} }
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/restartFlow/{sequenceNbr}") @GetMapping(value = "/getUserRole")
@ApiOperation(httpMethod = "PUT", value = "重新提交开通申请", notes = "重新提交开通申请") @ApiOperation(httpMethod = "GET", value = "获取用户所属组", notes = "获取用户所属组")
public ResponseModel<JyjcOpeningApplicationModel> resubmitJyjcOpeningApplication(@RequestBody JyjcOpeningApplicationModel model, @PathVariable(value = "sequenceNbr") Long sequenceNbr) { public ResponseModel<List<Long>> getUserRole() {
model.setSequenceNbr(sequenceNbr); AgencyUserModel userModel = Privilege.agencyUserClient.queryByUserId(RequestContext.getExeUserId()).getResult();
return ResponseHelper.buildResponse(jyjcOpeningApplicationServiceImpl.updateModel(model, true)); List<RoleModel> roleModels = userModel.getOrgRoles()
.values().stream().flatMap(Collection::stream).collect(Collectors.toList());
List<Long> roleIds = roleModels.stream().map(RoleModel::getSequenceNbr).distinct().collect(Collectors.toList());
return ResponseHelper.buildResponse(roleIds);
} }
} }
...@@ -97,10 +97,11 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp ...@@ -97,10 +97,11 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
@Autowired @Autowired
private WorkflowFeignClient workflowFeignClient; private WorkflowFeignClient workflowFeignClient;
@Transactional (rollbackFor = {Exception.class, CommonException.class}) @Transactional (rollbackFor = {Exception.class, BaseException.class})
public JyjcOpeningApplicationModel saveModel(JyjcOpeningApplicationModel model) { public JyjcOpeningApplicationModel saveModel(JyjcOpeningApplicationModel model, Boolean restartFlow) {
// 开启工作流 startProcess // 开启工作流 startProcess
try { try {
if (restartFlow) {
String instanceId = startFlow(); String instanceId = startFlow();
JSONObject dataObject = getTask(instanceId); JSONObject dataObject = getTask(instanceId);
JSONArray executorArray = dataObject.getJSONObject("nodeInfo").getJSONArray("executor"); JSONArray executorArray = dataObject.getJSONObject("nodeInfo").getJSONArray("executor");
...@@ -108,13 +109,14 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp ...@@ -108,13 +109,14 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
String roleGroups = executorArray.stream().map(json -> Optional.ofNullable(((LinkedHashMap) json).get("groupId")).orElse("").toString()).collect(Collectors.joining(",")); String roleGroups = executorArray.stream().map(json -> Optional.ofNullable(((LinkedHashMap) json).get("groupId")).orElse("").toString()).collect(Collectors.joining(","));
model.setWorkflowRole(roleGroups); model.setWorkflowRole(roleGroups);
} }
model.setStatus(!ValidationUtil.isEmpty(dataObject) && !ValidationUtil.isEmpty(dataObject.get("status")) ? String.valueOf(dataObject.get("status")) : "");
model.setWorkflowProstanceId(instanceId);
}
CompanyBo companyBo = commonserviceImpl.getReginParamsOfCurrentUser().getCompany(); CompanyBo companyBo = commonserviceImpl.getReginParamsOfCurrentUser().getCompany();
model.setUnitCode(companyBo.getCompanyCode()); model.setUnitCode(companyBo.getCompanyCode());
model.setUnitCode("91611103MAC4Q1EG7B"); model.setUnitCode("91611103MAC4Q1EG7B");
model.setUnitCodeName(companyBo.getCompanyName()); model.setUnitCodeName(companyBo.getCompanyName());
model.setApplicationSeq(buildApplicationSeq()); model.setApplicationSeq(buildApplicationSeq());
model.setStatus(!ValidationUtil.isEmpty(dataObject) && !ValidationUtil.isEmpty(dataObject.get("status")) ? String.valueOf(dataObject.get("status")) : "");
model.setWorkflowProstanceId(instanceId);
return this.createWithModel(model); return this.createWithModel(model);
} catch (Exception e) { } catch (Exception e) {
log.error("saveModel: model={} error", model, e); log.error("saveModel: model={} error", model, e);
...@@ -122,7 +124,7 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp ...@@ -122,7 +124,7 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
} }
} }
@Transactional (rollbackFor = {Exception.class, CommonException.class}) @Transactional (rollbackFor = {Exception.class, BaseException.class})
public JyjcOpeningApplicationModel updateModel(JyjcOpeningApplicationModel model, Boolean restartFlow) { public JyjcOpeningApplicationModel updateModel(JyjcOpeningApplicationModel model, Boolean restartFlow) {
if (model.getSequenceNbr() == null) { if (model.getSequenceNbr() == null) {
throw new BadRequest("sequenceNbr不能为空!"); throw new BadRequest("sequenceNbr不能为空!");
...@@ -145,11 +147,13 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp ...@@ -145,11 +147,13 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
} }
public void updateModelByInstanceId(String instanceId) { public void updateModelByInstanceId(String instanceId) {
log.info("updateModelByInstanceId, instanceId={}", instanceId);
JyjcOpeningApplication entity = this.lambdaQuery().eq(JyjcOpeningApplication::getWorkflowProstanceId, instanceId).one(); JyjcOpeningApplication entity = this.lambdaQuery().eq(JyjcOpeningApplication::getWorkflowProstanceId, instanceId).one();
if (entity == null) { if (entity == null) {
return; return;
} }
JSONObject taskJson = getTask(instanceId); JSONObject taskJson = getTask(instanceId);
log.info("taskJson => {}", taskJson);
entity.setWorkflowRole(getWorkflowRoleGroups(taskJson)); entity.setWorkflowRole(getWorkflowRoleGroups(taskJson));
entity.setStatus(getWorkflowStatus(taskJson)); entity.setStatus(getWorkflowStatus(taskJson));
this.updateById(entity); this.updateById(entity);
...@@ -298,9 +302,12 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp ...@@ -298,9 +302,12 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
String taskId = dataObject.getString("id"); String taskId = dataObject.getString("id");
//组装信息 //组装信息
TaskResultDTO dto = new TaskResultDTO(); TaskResultDTO dto = new TaskResultDTO();
dto.setResult(op); // dto.setResult(op);
dto.setResultCode("approvalStatus"); dto.setResultCode("approvalStatus");
dto.setTaskId(taskId); dto.setTaskId(taskId);
HashMap<String,Object> varibalble = new HashMap<>();
varibalble.put("approvalStatus",op);
dto.setVariable(varibalble);
dto.setComment(comments); dto.setComment(comments);
//执行流程 //执行流程
AjaxResult ajaxResult1 = Workflow.taskClient.completeByTask(taskId, dto); AjaxResult ajaxResult1 = Workflow.taskClient.completeByTask(taskId, dto);
......
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