Commit e2e4bc65 authored by tianbo's avatar tianbo

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

parents 6f4c8064 e1ed0343
......@@ -14,6 +14,7 @@ public class CylinderFillingCheckModel extends AbstractBaseModel{
*
*/
private static final long serialVersionUID = 1L;
private String sequenceCode; //气瓶唯一标识码*
private String fillingCheckId; //充装后复查ID
private int withinScope; //充装量在规定范围内*
private int sealedState; //瓶阀及其与瓶口连接的密封良好*
......
......@@ -13,6 +13,7 @@ public class CylinderFillingExamineModel extends AbstractBaseModel{
*
*/
private static final long serialVersionUID = 1L;
private String sequenceCode; //气瓶唯一标识码*
private String fillingExamineId; //充装信息审核ID
private String fillingAuditDate; //报表生成时间
private String fillingAuditUrl; //充装审核报表附件地址
......
......@@ -13,6 +13,7 @@ public class CylinderFillingRecordModel extends AbstractBaseModel{
*
*/
private static final long serialVersionUID = 1L;
private String sequenceCode; //气瓶唯一标识码*
private String fillingRecordId; //充装记录Id*
private String fillingStartTime; //充装开始时间*
private String fillingEndTime; //充装结束时间*
......@@ -20,10 +21,10 @@ public class CylinderFillingRecordModel extends AbstractBaseModel{
private double fillingQuantity; //充装量(Kg)*
private double temperature; //室温*
private int abnormal; //异常情况*
private String inspectorName;
private String fillingBeforeId;
private String fillingCheckId;
private String fillingExamineId;
private String inspectorName; // 检查人员姓名
private String fillingBeforeId; // 充装信息审核ID
private String fillingCheckId; // 充装后复查ID
private String fillingExamineId; // 充装信息审核ID
private double dischargeVolume; // 卸液量(Kg) 小数点两位
}
......@@ -19,7 +19,8 @@ public class CylinderFillingCheck extends AbstractBaseEntity{/**
*
*/
private static final long serialVersionUID = 1L;
@TableField("sequence_code")
private String sequenceCode; //气瓶唯一标识码*
@TableField("filling_check_id")
private String fillingCheckId; //充装后复查ID
......
......@@ -19,6 +19,8 @@ public class CylinderFillingExamine extends AbstractBaseEntity{/**
*
*/
private static final long serialVersionUID = 1L;
@TableField("sequence_code")
private String sequenceCode; //气瓶唯一标识码*
@TableField("filling_examine_id")
private String fillingExamineId; //充装信息审核ID
@TableField("filling_audit_date")
......
......@@ -19,6 +19,8 @@ public class CylinderFillingRecord extends AbstractBaseEntity{/**
*
*/
private static final long serialVersionUID = 1L;
@TableField("sequence_code")
private String sequenceCode; //气瓶唯一标识码*
@TableField("filling_record_id")
private String fillingRecordId; //充装记录Id*
@TableField("filling_starttime")
......@@ -41,5 +43,6 @@ public class CylinderFillingRecord extends AbstractBaseEntity{/**
private String fillingCheckId;
@TableField("filling_examine_id")
private String fillingExamineId;
@TableField("discharge_volume")
private double dischargeVolume; // 卸液量(Kg) 小数点两位
}
......@@ -29,7 +29,7 @@ spring.redis.lettuce.pool.max-idle=10
spring.redis.lettuce.pool.min-idle=0
## emqx properties:
emqx.clean-session=false
emqx.clean-session=true
emqx.client-id=${spring.application.name}-${random.int[1024,65536]}
emqx.broker=tcp://36.46.151.113:1883
emqx.client-user-name=super
......
......@@ -28,7 +28,7 @@ spring.redis.lettuce.pool.max-idle=10
spring.redis.lettuce.pool.min-idle=0
## emqx properties:
emqx.clean-session=false
emqx.clean-session=true
emqx.client-id=${spring.application.name}-${random.int[1024,65536]}
emqx.broker=tcp://36.46.151.113:1883
emqx.client-user-name=super
......
......@@ -42,7 +42,7 @@ spring.redis.lettuce.pool.max-idle=10
spring.redis.lettuce.pool.min-idle=0
## emqx properties:
emqx.clean-session=false
emqx.clean-session=true
emqx.client-id=${spring.application.name}-${random.int[1024,65536]}
emqx.broker=tcp://172.16.10.243:2883
emqx.client-user-name=super
......
......@@ -28,7 +28,7 @@ spring.redis.lettuce.pool.max-idle=10
spring.redis.lettuce.pool.min-idle=0
## emqx properties:
emqx.clean-session=false
emqx.clean-session=true
emqx.client-id=${spring.application.name}-${random.int[1024,65536]}
emqx.broker=tcp://36.46.151.113:1883
emqx.client-user-name=super
......
......@@ -28,7 +28,7 @@ spring.redis.lettuce.pool.max-idle=10
spring.redis.lettuce.pool.min-idle=0
## emqx properties:
emqx.clean-session=false
emqx.clean-session=true
emqx.client-id=${spring.application.name}-${random.int[1024,65536]}
emqx.broker=tcp://36.46.151.113:1883
emqx.client-user-name=super
......
......@@ -3,7 +3,6 @@ package com.yeejoin.amos.boot.module.jg.api.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
......
......@@ -44,6 +44,18 @@ public class JgResumeInfoController extends BaseController {
}
/**
* 新增监管履历信息表
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/saveBatchResume")
@ApiOperation(httpMethod = "POST", value = "批量新增", notes = "批量新增")
public void saveBatchResume(@RequestBody List<JgResumeInfoDto> jgResumeInfoDtoList) {
jgResumeInfoServiceImpl.saveBatchResume(jgResumeInfoDtoList);
}
/**
* 根据sequenceNbr更新
*
* @param sequenceNbr 主键
......
......@@ -81,6 +81,8 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
@Autowired
IJgInstallationNoticeService jrmInstallationNoticeService;
@Autowired
EmqKeeper emqKeeper;
@Autowired
private JgMaintenanceContractMapper maintenanceContractMapper;
@Autowired
private JgMaintenanceContractEqMapper maintenanceContractEqMapper;
......@@ -92,8 +94,6 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
private RedissonClient redissonClient;
@Autowired
private JgResumeInfoServiceImpl jgResumeInfoService;
@Autowired
EmqKeeper emqKeeper;
/**
* 分页查询
......@@ -130,7 +130,7 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
}
}
contractList = maintenanceContractMapper.getContractList(page, sortMap, dto, reginParams.getUserModel().getUserId());
List<JgMaintenanceContractDto> records = contractList.getRecords().stream().peek(x->x.setUnitType(company.getCompanyType())).collect(Collectors.toList());
List<JgMaintenanceContractDto> records = contractList.getRecords().stream().peek(x -> x.setUnitType(company.getCompanyType())).collect(Collectors.toList());
contractList.setRecords(records);
BeanUtils.copyProperties(contractList, result);
return result;
......@@ -297,6 +297,24 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
modelDto.setModel(taskMessageDto);
// 再插入新代办、数据待定
commonService.buildTaskModel(Collections.singletonList(modelDto));
// 新增人员履历消息表
LambdaQueryWrapper<JgMaintenanceContractEq> lambda = new QueryWrapper<JgMaintenanceContractEq>().lambda();
lambda.eq(JgMaintenanceContractEq::getEquipTransferId, contract.getSequenceNbr());
List<JgMaintenanceContractEq> jgMaintenanceContractEqList = jgMaintenanceContractEqService.getBaseMapper().selectList(lambda);
jgResumeInfoService.saveBatchResume(
jgMaintenanceContractEqList.stream()
.map(v -> JgResumeInfoDto.builder()
.applyNo(contract.getApplyNo())
.businessType(BusinessTypeEnum.JG_MAINTENANCE_RECORD.getName())
.businessId(String.valueOf(contract.getSequenceNbr()))
.equId(String.valueOf(v.getEquId()))
.approvalUnit(contract.getReceiveOrgName())
.approvalUnitCode(contract.getReceiveOrgCode())
.status("正常")
.routePath(taskV2Model.getRoutePath())
.build())
.collect(Collectors.toList())
);
}
......@@ -429,15 +447,6 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
equip.setEquId(String.valueOf(x.get("SEQUENCE_NBR")));
equip.setEquipTransferId(contract.getSequenceNbr().toString());
equipList.add(equip);
jgResumeInfoService.createWithModel(JgResumeInfoDto.builder()
.applyNo(contractDto.getApplyNo())
.businessType(BusinessTypeEnum.JG_MAINTENANCE_RECORD.getName())
.businessId(contract.getSequenceNbr() + "")
.equId(String.valueOf(x.get("record")))
.approvalUnit(contractDto.getReceiveOrgName())
.approvalUnitCode(contractDto.getReceiveOrgCode())
.status("正常")
.build());
});
// 保存关联设备信息
jgMaintenanceContractEqService.saveBatch(equipList);
......
......@@ -5,9 +5,12 @@ import com.yeejoin.amos.boot.module.jg.api.dto.JgResumeInfoDto;
import com.yeejoin.amos.boot.module.jg.api.entity.JgResumeInfo;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgResumeInfoMapper;
import com.yeejoin.amos.boot.module.jg.api.service.IJgResumeInfoService;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import java.util.Collection;
import java.util.List;
import java.util.stream.Collectors;
/**
* 服务实现类
......@@ -30,4 +33,15 @@ public class JgResumeInfoServiceImpl extends BaseService<JgResumeInfoDto,JgResum
public List<JgResumeInfoDto> queryForJgResumeInfoList() {
return this.queryForList("" , false);
}
public void saveBatchResume(List<JgResumeInfoDto> jgResumeInfoDtoList) {
Collection<JgResumeInfo> jgResumeInfoCollection = jgResumeInfoDtoList.stream()
.map(dto -> {
JgResumeInfo info = new JgResumeInfo();
BeanUtils.copyProperties(dto, info);
return info;
})
.collect(Collectors.toList());
this.saveBatch(jgResumeInfoCollection);
}
}
\ No newline at end of file
......@@ -693,23 +693,13 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
jgRelationEquipMapper.delete(new QueryWrapper<JgUseRegistrationEq>().lambda().eq(JgUseRegistrationEq::getEquipTransferId, useRegistration.getSequenceNbr()));
}
// 更新关联气瓶信息
equipmentLists.stream()
.map(x -> {
JgUseRegistrationEq equip = new JgUseRegistrationEq()
.setEquId(String.valueOf(x.get("record")))
.setEquipTransferId(String.valueOf(useRegistration.getSequenceNbr()));
jgResumeInfoService.createWithModel(JgResumeInfoDto.builder()
.applyNo(useRegistration.getApplyNo())
.businessType(BusinessTypeEnum.JG_USAGE_REGISTRATION.getName()+"(单位)")
.businessId(String.valueOf(useRegistration.getSequenceNbr()))
.equId(String.valueOf(x.get("record")))
.approvalUnit(useRegistration.getReceiveOrgName())
.approvalUnitCode(useRegistration.getReceiveOrgCode())
.status("正常")
.build());
return equip;
})
.forEach(jgUseRegistrationEqService::save);
List<JgUseRegistrationEq> equipList = equipmentLists.stream()
.map(x -> new JgUseRegistrationEq()
.setEquId(String.valueOf(x.get("record")))
.setEquipTransferId(String.valueOf(useRegistration.getSequenceNbr())))
.collect(Collectors.toList());
// 保存关联设备信息
jgUseRegistrationEqService.saveBatch(equipList);
// 启动流程
if (!ObjectUtils.isEmpty(map.get("submit"))) {
......@@ -1019,14 +1009,13 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
taskMessageDto.setEquipId(String.valueOf(mapData.get("equipId")));
params.put("model", taskMessageDto);
TaskV2Model taskV2Model = commonServiceImpl.updateTaskModel(params);
jgResumeInfoService.createWithModel(JgResumeInfoDto.builder()
.applyNo(jgUseRegistration.getApplyNo())
.businessType(BusinessTypeEnum.JG_USAGE_REGISTRATION.getName() + "(台套)")
.businessType(BusinessTypeEnum.JG_USAGE_REGISTRATION.getName())
.businessId(jgUseRegistration.getSequenceNbr() + "")
.equId((String) mapData.get("equipId"))
.approvalUnit(jgUseRegistration.getReceiveOrgName())
.approvalUnitCode(jgUseRegistration.getReceiveOrgCode())
.approvalUnitCode(jgUseRegistration.getReceiveCompanyCode())
.status("正常")
.routePath(taskV2Model.getRoutePath())
.build());
......
......@@ -230,7 +230,7 @@ public class WordTemplateUtils {
/**
* 下载填充模板的字段,特殊符号转义
*/
private static Map<String, Object> escapeSpecialCharacters(Map<String, ?> inputMap) {
public static Map<String, Object> escapeSpecialCharacters(Map<String, ?> inputMap) {
Map<String, Object> escapedMap = new HashMap<>();
for (Map.Entry<String, ?> entry : inputMap.entrySet()) {
String key = entry.getKey();
......
......@@ -28,7 +28,7 @@ spring.redis.lettuce.pool.max-idle=10
spring.redis.lettuce.pool.min-idle=0
## emqx properties:
emqx.clean-session=false
emqx.clean-session=true
emqx.client-id=${spring.application.name}-${random.int[1024,65536]}
emqx.broker=tcp://172.16.10.243:2883
emqx.client-user-name=super
......
......@@ -2,7 +2,7 @@ package com.yeejoin.amos.boot.module.jyjc.api.mapper;
import com.yeejoin.amos.boot.module.ymt.api.dto.TzBaseUnitLicenceDto;
import com.yeejoin.amos.boot.module.ymt.api.dto.TzsUserInfoDto;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.amos.feign.privilege.model.CompanyModel;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
......@@ -27,7 +27,10 @@ public interface JyjcBaseMapper {
String selectBusinessData(String tableName, String instanceId,String key);
void updateBusinessData(String tableName, String assignee, String transferToUserIds, String instanceId, String nextTaskId,String key);
void updateBusinessData(String tableName, String assignee, String transferToUserIds, String instanceId, String nextTaskId, String key);
void updateBusinessDataWithCompany(String tableName, String assignee, String transferToUserIds, String instanceId, String nextTaskId, String key, String inspectionUnitCode, String companyName);
List<TzsUserInfoDto> selectParentOrgUsers(@Param("parentOrgCodeList") Set<String> parentOrgCodeList);
......@@ -37,4 +40,6 @@ public interface JyjcBaseMapper {
* @return List<TzsUserInfoDto>
*/
List<TzsUserInfoDto> selectUserByCompanyCodes(@Param("companyCodes") List<String> companyCodes);
CompanyModel selectOneCompanyByCode(String companyCode);
}
package com.yeejoin.amos.boot.module.jyjc.api.model;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* @author Administrator
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class InstanceRuntimeData implements Serializable {
/**
* 下一个执行节点id
*/
private String nextTaskId;
/**
* 最近流程执行人
*/
private String promoter;
/**
* 下一节点执行人
*/
private String nextExecuteUserIds;
}
package com.yeejoin.amos.boot.module.jyjc.api.model;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
*
*
* @author system_generator
* @date 2024-05-29
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value="JgResumeInfoDto", description="")
@Builder
public class JgResumeInfoDto extends BaseDto {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "申请编号")
private String applyNo;
@ApiModelProperty(value = "业务状态")
private String status;
@ApiModelProperty(value = "业务id")
private String businessId;
@ApiModelProperty(value = "创建时间")
private Date createDate;
@ApiModelProperty(value = "创建人id ")
private String createUserId;
@ApiModelProperty(value = "创建人")
private String createUserName;
@ApiModelProperty(value = "设备ID")
private String equId;
@ApiModelProperty(value = "业务类型")
private String businessType;
@ApiModelProperty(value = "审批单位")
private String approvalUnit;
@ApiModelProperty(value = "审批单位Code")
private String approvalUnitCode;
@ApiModelProperty(value = "详情路径")
private String routePath;
}
......@@ -8,6 +8,15 @@
next_task_id = #{nextTaskId}
where ${key} = #{instanceId}
</update>
<update id="updateBusinessDataWithCompany">
update ${tableName}
set transfer_to_user_ids = #{transferToUserIds},
next_execute_user_ids = #{assignee},
next_task_id = #{nextTaskId},
inspection_unit_code = #{inspectionUnitCode},
inspection_unit_name = #{companyName}
where ${key} = #{instanceId}
</update>
<select id="selectBaseUnitLicenceList" parameterType="map" resultType="com.yeejoin.amos.boot.module.ymt.api.dto.TzBaseUnitLicenceDto">
select * from tz_base_unit_licence
......@@ -68,6 +77,14 @@
</foreach>
GROUP BY c.company_code
</select>
<select id="selectOneCompanyByCode" resultType="com.yeejoin.amos.feign.privilege.model.CompanyModel">
SELECT
c.*
FROM
"privilege_company" c
WHERE
c.company_code =#{companyCode}
</select>
</mapper>
......@@ -123,13 +123,13 @@
<choose>
<when test="identity == 'apply'">
and tzjia.application_unit_code = #{currentApplicationUnitCode} OR tzjia.transfer_to_user_ids LIKE concat ( '%', #{currentUserId}, '%' )
and (tzjia.application_unit_code = #{currentApplicationUnitCode} OR tzjia.transfer_to_user_ids LIKE concat ( '%', #{currentUserId}, '%' ))
</when>
<when test="identity == 'receive'">
and tzjia.inspection_unit_code = #{currentInspectionUnitCode} OR tzjia.transfer_to_user_ids LIKE concat ( '%', #{currentUserId}, '%' )
and (tzjia.inspection_unit_code = #{currentInspectionUnitCode} OR tzjia.transfer_to_user_ids LIKE concat ( '%', #{currentUserId}, '%' ))
</when>
<when test="identity == 'all'">
and (tzjia.application_unit_code = #{currentApplicationUnitCode} or tzjia.inspection_unit_code = #{currentInspectionUnitCode}) OR tzjia.transfer_to_user_ids LIKE concat ( '%', #{currentUserId}, '%' )
and ((tzjia.application_unit_code = #{currentApplicationUnitCode} or tzjia.inspection_unit_code = #{currentInspectionUnitCode}) OR tzjia.transfer_to_user_ids LIKE concat ( '%', #{currentUserId}, '%' ))
</when>
<otherwise>
1=2
......
......@@ -77,8 +77,8 @@ public class RuleActionHandler {
return baseUnitLicenceMapper.selectList(new LambdaQueryWrapper<TzBaseUnitLicence>()
.select(TzBaseUnitLicence::getUnitCode)
.eq(TzBaseUnitLicence::getLicenceType, LicenceTypeEnum.JY_JC.getCode())
.in(TzBaseUnitLicence::getItemCode, Arrays.asList(itemCode.split(",")))
.ge(TzBaseUnitLicence::getExpiryDate, LocalDate.now()));
.in(TzBaseUnitLicence::getItemCode, Arrays.asList(itemCode.split(","))));
// .ge(TzBaseUnitLicence::getExpiryDate, LocalDate.now()));
}
public List<TzBaseEnterpriseInfoDto> getInspectionUnitList(List<TzBaseUnitLicence> unitLicenceList, Boolean isMatchArea, String record, String openBizType) {
......
......@@ -5,10 +5,11 @@ import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.module.jyjc.biz.job.InspectionExpireRemindJob;
import com.yeejoin.amos.boot.module.jyjc.biz.service.TaskModelServiceImpl;
import com.yeejoin.amos.boot.module.jyjc.biz.service.impl.CommonserviceImpl;
import com.yeejoin.amos.boot.module.jyjc.biz.service.impl.CommonServiceImpl;
import com.yeejoin.amos.boot.module.ymt.api.dto.TzBaseEnterpriseInfoDto;
import com.yeejoin.amos.boot.module.ymt.api.entity.TzBaseEnterpriseInfo;
import com.yeejoin.amos.boot.module.ymt.api.entity.TzsUserInfo;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.amos.feign.systemctl.Systemctl;
import com.yeejoin.amos.feign.systemctl.model.DictionarieValueModel;
import io.swagger.annotations.Api;
......@@ -36,7 +37,7 @@ import java.util.stream.Collectors;
public class CommonController extends BaseController {
@Autowired
CommonserviceImpl commonserviceImpl;
CommonServiceImpl commonserviceImpl;
@Autowired
TaskModelServiceImpl taskModelService;
......@@ -133,29 +134,29 @@ public class CommonController extends BaseController {
* /common/transfer
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/bj/transfer")
@ApiOperation(httpMethod = "POST", value = "公共转办接口", notes = "公共转办接口")
public ResponseModel<Object> transferBJ(@RequestBody Map<String, Object> map) {
map.put("key", "instance_id");
@PostMapping(value = "/kt/transfer")
@ApiOperation(httpMethod = "POST", value = "公共转办接口-开通", notes = "公共转办接口-开通")
public ResponseModel<Object> transferKT(@RequestBody Map<String, Object> map) {
map.put("key", "workflow_prostance_id");
Object result = taskModelService.transfer(map);
return ResponseHelper.buildResponse(result);
}
/**
* 公共转办接口
* /common/transfer
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/kt/transfer")
@ApiOperation(httpMethod = "POST", value = "公共转办接口", notes = "公共转办接口")
public ResponseModel<Object> transferKT(@RequestBody Map<String, Object> map) {
map.put("key", "workflow_prostance_id");
Object result = taskModelService.transfer(map);
@PostMapping(value = "/bj/transfer")
@ApiOperation(httpMethod = "POST", value = "公共转办接口-报检", notes = "公共转办接口-报检")
public ResponseModel<Object> transferBJ(@RequestBody Map<String, Object> map) {
map.put("key", "instance_id");
Object result = taskModelService.transfer2(map);
return ResponseHelper.buildResponse(result);
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/{unitCode}/user-list")
@ApiOperation(httpMethod = "GET", value = "查询指定公司、指定人员类型的人员列表", notes = "查询指定公司、指定人员类型的人员列表")
......@@ -180,4 +181,12 @@ public class CommonController extends BaseController {
regularlyRemindJob.sendReminderMessage();
return ResponseHelper.buildResponse("succese");
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "amos/{unitCode}/users")
@ApiOperation(httpMethod = "GET", value = "查询指定公司、指定人员类型的人员列表", notes = "查询指定公司、指定人员类型的人员列表")
public ResponseModel<List<AgencyUserModel>> getAmosUseListByCompanyCode(@ApiParam(value = "公司编码") @PathVariable String unitCode) {
return ResponseHelper.buildResponse(commonserviceImpl.getAmosUseListByCompanyCode(unitCode));
}
}
......@@ -56,7 +56,7 @@ public class JyjcInspectionApplicationController extends BaseController {
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/save")
@ApiOperation(httpMethod = "POST", value = "新增", notes = "新增")
@ApiOperation(httpMethod = "POST", value = "暂存、提交", notes = "新增")
public ResponseModel<List<JyjcInspectionApplicationModel>> save(@RequestBody JSONObject model) {
if (model.containsKey(basic)) {
JSONObject finallyJson = new JSONObject();
......@@ -69,7 +69,7 @@ public class JyjcInspectionApplicationController extends BaseController {
finallyJson.putAll(filePageDataObj);
model = finallyJson;
}
// operationType: 1-暂存
// operationType: 1-暂存 0-提交
ReginParams selectedOrgInfo = getSelectedOrgInfo();
model.put("applicationUnitCode", selectedOrgInfo.getCompany().getCompanyCode());
......@@ -124,67 +124,6 @@ public class JyjcInspectionApplicationController extends BaseController {
return ResponseHelper.buildResponse(jyjcInspectionApplicationServiceImpl.selectBySeq(sequenceNbr));
}
/**
* 列表分页查询
*
* @param current 当前页
* @param current 每页大小
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/pageByInstitution")
@ApiOperation(httpMethod = "GET", value = "分页查询(检验机构)", notes = "分页查询(检验机构)")
public ResponseModel<Page<JyjcInspectionApplicationModel>> queryForPageByInstitution(@RequestParam(value = "current") int current,
@RequestParam(value = "size") int size,
@RequestParam(required = false) String applicationNo,
@RequestParam(required = false) String inspectionClassify,
@RequestParam(required = false) String applicationUnitCode,
@RequestParam(required = false) String applicationUnitName,
@RequestParam(required = false) String inspectionUnitName,
@RequestParam(required = false) String equipClassify,
@RequestParam(required = false) String inspectionUnitCode,
@RequestParam(required = false) String applicationDate,
@RequestParam(required = false) String acceptDate,
@RequestParam(required = false) String inspectionChargePerson,
@RequestParam(required = false) String status,
@RequestParam(required = false) String roles, String bizType) {
Page<JyjcInspectionApplication> page = new Page<JyjcInspectionApplication>();
page.setCurrent(current);
page.setSize(size);
ReginParams reginParams = getSelectedOrgInfo();
inspectionUnitCode = reginParams.getCompany().getCompanyCode();
return ResponseHelper.buildResponse(jyjcInspectionApplicationServiceImpl.queryForJyjcInspectionApplicationPage(page, applicationNo, inspectionClassify, applicationUnitCode, equipClassify, inspectionUnitCode, applicationUnitName, inspectionUnitName, applicationDate, acceptDate, inspectionChargePerson, status, bizType));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/pageByCompany")
@ApiOperation(httpMethod = "GET", value = "分页查询(报检单位)", notes = "分页查询(报检单位)")
public ResponseModel<Page<JyjcInspectionApplicationModel>> queryForPageByCompany(@RequestParam(value = "current") int current,
@RequestParam(value = "size") int size,
@RequestParam(required = false) String applicationNo,
@RequestParam(required = false) String inspectionClassify,
@RequestParam(required = false) String applicationUnitCode,
@RequestParam(required = false) String equipClassify,
@RequestParam(required = false) String inspectionUnitCode,
@RequestParam(required = false) String applicationUnitName,
@RequestParam(required = false) String inspectionUnitName,
@RequestParam(required = false) String applicationDate,
@RequestParam(required = false) String acceptDate,
@RequestParam(required = false) String inspectionChargePerson,
@RequestParam(required = false) String roles,
@RequestParam(required = false) String status, String bizType) {
Page<JyjcInspectionApplication> page = new Page<JyjcInspectionApplication>();
page.setCurrent(current);
page.setSize(size);
ReginParams reginParams = getSelectedOrgInfo();
applicationUnitCode = reginParams.getCompany().getCompanyCode();
return ResponseHelper.buildResponse(jyjcInspectionApplicationServiceImpl.queryForJyjcInspectionApplicationPage(page, applicationNo, inspectionClassify, applicationUnitCode, equipClassify, inspectionUnitCode, applicationUnitName, inspectionUnitName, applicationDate, acceptDate, inspectionChargePerson, status, bizType));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/pageList")
......@@ -226,11 +165,7 @@ public class JyjcInspectionApplicationController extends BaseController {
@PostMapping(value = "/flow/{type}/receive")
public ResponseModel executeFlow(@PathVariable(value = "type") String type, @RequestBody Map<String, Object> params) {
params.put("type", type);
try {
jyjcInspectionApplicationServiceImpl.doReceive(params);
} catch (Exception e) {
return CommonResponseUtil.failure("该项流程发生变化,请返回列表刷新查看状态后重试");
}
jyjcInspectionApplicationServiceImpl.doReceive(params);
HashMap<String, String> result = new HashMap<>();
result.put("result", "success");
return ResponseHelper.buildResponse(result);
......@@ -264,12 +199,13 @@ public class JyjcInspectionApplicationController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET", value = "撤回", notes = "撤回")
@GetMapping(value = "/flow/rollback")
public ResponseModel<Boolean> doRollbackFlow(@RequestParam("sequenceNbr") String sequenceNbr) {
return ResponseHelper.buildResponse(jyjcInspectionApplicationServiceImpl.doRollback(sequenceNbr));
public ResponseModel<Boolean> doRollbackFlow(@RequestParam("sequenceNbr") String sequenceNbr,
@RequestParam("instanceId") String instanceId,
@RequestParam("nextTaskId") String nextTaskId) {
return ResponseHelper.buildResponse(jyjcInspectionApplicationServiceImpl.doRollback(sequenceNbr, instanceId, nextTaskId));
}
/**
* 查询指定设备种类的设备列表
*
* @return
*/
......
......@@ -16,7 +16,6 @@ import com.yeejoin.amos.feign.privilege.model.RoleModel;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.web.bind.annotation.*;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
......@@ -37,7 +36,6 @@ import java.util.stream.Collectors;
@RestController
@Api(tags = "检验业务申请单api")
@RequestMapping(value = "/jyjc-opening-application")
@EnableScheduling
public class JyjcOpeningApplicationController extends BaseController {
@Autowired
......@@ -50,35 +48,24 @@ public class JyjcOpeningApplicationController extends BaseController {
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/save")
@ApiOperation(httpMethod = "POST", value = "新增", notes = "新增")
@ApiOperation(httpMethod = "POST", value = "新增、编辑的保存", notes = "新增、编辑的保存")
public ResponseModel<JyjcOpeningApplicationModel> save(@RequestBody JSONObject model) {
JyjcOpeningApplicationModel jyjcOpeningApplicationModel = new JyjcOpeningApplicationModel();
// 兼容工作台暂存逻辑、编辑时报错逻辑
if (model.containsKey("applyInfo")) { // 工作台暂存逻辑
if (model.containsKey("applyInfo")) {
// 工作台暂存逻辑
BeanUtil.copyProperties(model.get("applyInfo"), jyjcOpeningApplicationModel);
} else { // 详情保存逻辑
} else {
// 详情保存逻辑
BeanUtil.copyProperties(model, jyjcOpeningApplicationModel);
}
return ResponseHelper.buildResponse(jyjcOpeningApplicationServiceImpl.saveOrUpdateModel(jyjcOpeningApplicationModel, false));
return ResponseHelper.buildResponse(jyjcOpeningApplicationServiceImpl.saveOrUpdate(jyjcOpeningApplicationModel));
}
/**
* 根据sequenceNbr更新
*
* @param sequenceNbr 主键
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PutMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "PUT", value = "更新", notes = "更新")
public ResponseModel<JyjcOpeningApplicationModel> updateBySequenceNbrJyjcOpeningApplication(@RequestBody JyjcOpeningApplicationModel model, @PathVariable(value = "sequenceNbr") Long sequenceNbr) {
model.setSequenceNbr(sequenceNbr);
return ResponseHelper.buildResponse(jyjcOpeningApplicationServiceImpl.saveOrUpdateModel(model, false));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PutMapping(value = "/submit")
@ApiOperation(httpMethod = "PUT", value = "保存并提交", notes = "保存并提交")
@ApiOperation(httpMethod = "PUT", value = "保存并提交、提交", notes = "保存并提交")
public ResponseModel<List<JyjcOpeningApplicationModel>> updateBySequenceNbrAndStartFlow(@RequestBody JSONObject jsonObject, @RequestParam(value = "sequenceNbr", required = false) Long sequenceNbr) {
JyjcOpeningApplicationModel model = new JyjcOpeningApplicationModel();
if (jsonObject.containsKey("applyInfo")) {
......@@ -93,18 +80,10 @@ public class JyjcOpeningApplicationController extends BaseController {
throw new BadRequest("企业资质信息和检验人员信息为空,无法提交!");
}
}
JyjcOpeningApplicationModel data = jyjcOpeningApplicationServiceImpl.saveOrUpdateModel(model, true);
JyjcOpeningApplicationModel data = jyjcOpeningApplicationServiceImpl.submitApplication(model);
return ResponseHelper.buildResponse(Collections.singletonList(data));
}
@Deprecated
@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.resubmit(model));
}
/**
* 根据sequenceNbr删除
......@@ -200,8 +179,10 @@ public class JyjcOpeningApplicationController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET", value = "撤回业务开通申请", notes = "撤回业务开通申请")
@GetMapping(value = "/rollBackFlow")
public ResponseModel<Object> overflow(@RequestParam("sequenceNbr") String sequenceNbr) {
return ResponseHelper.buildResponse(jyjcOpeningApplicationServiceImpl.stopFlow(sequenceNbr));
public ResponseModel<Object> overflow(@RequestParam("sequenceNbr") String sequenceNbr,
@RequestParam("instanceId") String instanceId,
@RequestParam("nextTaskId") String nextTaskId) {
return ResponseHelper.buildResponse(jyjcOpeningApplicationServiceImpl.stopFlow(sequenceNbr, instanceId, nextTaskId));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
......
......@@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.core.toolkit.Sequence;
import com.yeejoin.amos.boot.module.jyjc.api.entity.JyjcInspectionResult;
import com.yeejoin.amos.boot.module.jyjc.biz.event.InspectionDetectionSaveToDbEvent;
import com.yeejoin.amos.boot.module.jyjc.biz.event.publisher.BizEmqPublisher;
import com.yeejoin.amos.boot.module.jyjc.biz.service.impl.CommonserviceImpl;
import com.yeejoin.amos.boot.module.jyjc.biz.service.impl.CommonServiceImpl;
import com.yeejoin.amos.boot.module.ymt.api.entity.InspectionDetectionInfo;
import com.yeejoin.amos.boot.module.ymt.api.entity.TzsUserInfo;
import com.yeejoin.amos.boot.module.ymt.api.mapper.InspectionDetectionInfoMapper;
......@@ -37,7 +37,7 @@ public class InspectionDetectionSaveToDbEventListener implements ApplicationList
private int threadNumber;
@Autowired
CommonserviceImpl commonService;
CommonServiceImpl commonService;
@Autowired
private Sequence sequence;
......
......@@ -3,10 +3,11 @@ package com.yeejoin.amos.boot.module.jyjc.biz.feign;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.feign.MultipartSupportConfig;
import com.yeejoin.amos.boot.module.jyjc.api.model.JgResumeInfoDto;
import com.yeejoin.amos.component.feign.model.FeignClientResult;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
@FeignClient(contextId = "jyjc", name = "${tzsJg.feign.name:TZS-JG}", path = "jg", configuration = {MultipartSupportConfig.class})
......@@ -17,7 +18,12 @@ public interface JgFeignClient {
*
* */
@RequestMapping(value = "/equipment-register/page", method = RequestMethod.GET)
FeignClientResult<Page<JSONObject>> queryForPage(@RequestParam Map<String,Object> map);
FeignClientResult<Page<JSONObject>> queryForPage(@RequestParam Map<String, Object> map);
/***
* 设备注册信息分页查询
* */
@RequestMapping(value = "/jg-resume-info/saveBatchResume", method = RequestMethod.POST)
FeignClientResult saveBatchResume(@RequestBody List<JgResumeInfoDto> jgResumeInfoDtoList);
}
......@@ -7,7 +7,6 @@ import com.yeejoin.amos.boot.module.jyjc.api.model.NeedTipEquipInfo;
import com.yeejoin.amos.boot.module.ymt.api.dto.TzsUserInfoDto;
import com.yeejoin.amos.boot.module.ymt.api.dto.UseInfoModel;
import com.yeejoin.amos.boot.module.ymt.api.enums.EquimentEnum;
import com.yeejoin.amos.boot.module.ymt.api.mapper.TzsUserInfoMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.UseInfoMapper;
import com.yeejoin.amos.component.robot.AmosRequestContext;
import com.yeejoin.amos.feign.systemctl.Systemctl;
......@@ -50,18 +49,14 @@ public class InspectionExpireRemindJob {
private UseInfoMapper useInfoMapper;
private TzsUserInfoMapper tzsUserInfoMapper;
private AmosRequestContext amosRequestContext;
private JyjcBaseMapper jyjcBaseMapper;
public InspectionExpireRemindJob(UseInfoMapper useInfoMapper,
TzsUserInfoMapper tzsUserInfoMapper,
AmosRequestContext amosRequestContext,
JyjcBaseMapper jyjcBaseMapper) {
this.useInfoMapper = useInfoMapper;
this.tzsUserInfoMapper = tzsUserInfoMapper;
this.amosRequestContext = amosRequestContext;
this.jyjcBaseMapper = jyjcBaseMapper;
}
......
package com.yeejoin.amos.boot.module.jyjc.biz.runner;
import com.yeejoin.amos.boot.module.jyjc.biz.service.impl.JyjcInspectionApplicationServiceImpl;
import com.yeejoin.amos.boot.module.jyjc.biz.service.impl.JyjcOpeningApplicationServiceImpl;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.stereotype.Component;
/**
* @author Administrator
*/
@Component
public class ApplicationRunnerImpl implements ApplicationRunner {
private JyjcInspectionApplicationServiceImpl inspectionApplicationService;
private JyjcOpeningApplicationServiceImpl openingApplicationService;
public ApplicationRunnerImpl(JyjcInspectionApplicationServiceImpl inspectionApplicationService,
JyjcOpeningApplicationServiceImpl openingApplicationService) {
this.inspectionApplicationService = inspectionApplicationService;
this.openingApplicationService = openingApplicationService;
}
@Override
public void run(ApplicationArguments args) {
inspectionApplicationService.initFlowData2Redis();
openingApplicationService.initFlowData2Redis();
}
}
......@@ -9,23 +9,32 @@ import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import com.yeejoin.amos.boot.biz.common.utils.RedisKey;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.module.jyjc.api.enums.OpenBizTypeEnum;
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;
import com.yeejoin.amos.boot.module.ymt.api.entity.TzBaseEnterpriseInfo;
import com.yeejoin.amos.boot.module.ymt.api.entity.TzsUserInfo;
import com.yeejoin.amos.boot.module.ymt.api.mapper.TzBaseEnterpriseInfoMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.TzsUserInfoMapper;
import com.yeejoin.amos.feign.systemctl.Systemctl;
import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.amos.feign.privilege.model.CompanyModel;
import org.redisson.api.RBucket;
import org.redisson.api.RedissonClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import java.util.HashMap;
import java.util.List;
/**
* @author Administrator
*/
@Service
public class CommonserviceImpl {
public class CommonServiceImpl {
@Value("${jyjc.user-post:6615}")
private String jyjcUserPost;
......@@ -47,6 +56,12 @@ public class CommonserviceImpl {
@Autowired
TzBaseEnterpriseInfoMapper enterpriseInfoMapper;
@Autowired
RedissonClient redissonClient;
@Autowired
JyjcBaseMapper jyjcBaseMapper;
/**
* @return ReginParams
......@@ -109,12 +124,79 @@ public class CommonserviceImpl {
}
@Async
public void sendMessage(HashMap<String, String> smsParams, List<String> phones) {
for (String phone : phones) {
smsParams.put("mobile", phone);
Systemctl.smsClient.sendCommonSms(smsParams);
/**
* 执行流程时前置校验是否已经执行
*
* @param taskId 任务id
* @param instanceId 实例id
*/
public void checkForExecuteFlow(String taskId, String instanceId) {
InstanceRuntimeData instanceRuntimeData = getInstanceRuntimeData(instanceId);
if (instanceRuntimeData == null) {
throw new BadRequest("当前流程已经被执行!请重新打开页面查看并执行!");
}
// 当前任务id与当前任务id不一致时,不让操作,解决老页面没关闭,但是流程已经被被人执行(通过、驳回、撤回),工作流未限制错误
String currentTaskId = instanceRuntimeData.getNextTaskId();
if (!taskId.equals(currentTaskId)) {
throw new BadRequest("当前流程已经被执行!请重新打开页面查看并执行!");
}
// 当前流程已经被转办给其他人或者页面按钮问题导致的权限未控制
String nextExecuteUserIds = instanceRuntimeData.getNextExecuteUserIds();
if (!nextExecuteUserIds.contains(RequestContext.getExeUserId())) {
throw new BadRequest("当前登录人无执行权限!");
}
}
private InstanceRuntimeData getInstanceRuntimeData(String instanceId) {
RBucket<InstanceRuntimeData> rBucket = redissonClient.getBucket(buildJcInstanceDataKey(instanceId));
return rBucket.get();
}
private String buildJcInstanceDataKey(String instanceId) {
return "JC_INSTANCE_DATA:" + instanceId;
}
public static String buildJcExecuteLockKey(String instanceId) {
return "JC_INSTANCE_LOCK:" + instanceId;
}
/**
* 最新流程数据缓存
*
* @param instanceId 实例id
* @param instanceData 流程数据
*/
public void saveExecuteFlowData2Redis(String instanceId, InstanceRuntimeData instanceData) {
redissonClient.getBucket(buildJcInstanceDataKey(instanceId)).set(instanceData);
}
/**
* 撤回时校验流程是否已经执行
*
* @param taskId 前端业务上送任务id
* @param instanceId 实例id
*/
public void checkForRevocationFlow(String taskId, String instanceId) {
InstanceRuntimeData instanceRuntimeData = getInstanceRuntimeData(instanceId);
if (instanceRuntimeData == null) {
throw new BadRequest("当前流程已经被执行!请重新打开页面查看并执行!");
}
// 前端页面上送任务id与当前任务id不一致时,不让操作,解决老页面没关闭,但是流程已经被被人执行(通过、驳回、撤回),工作流未限制错误
String currentTaskId = instanceRuntimeData.getNextTaskId();
if (!taskId.equals(currentTaskId)) {
throw new BadRequest("当前流程已经被执行!请重新打开页面查看并执行!");
}
if (!instanceRuntimeData.getPromoter().equals(RequestContext.getExeUserId())) {
throw new BadRequest("无权限执行该任务");
}
}
public List<AgencyUserModel> getAmosUseListByCompanyCode(String unitCode) {
CompanyModel companyModel = jyjcBaseMapper.selectOneCompanyByCode(unitCode);
FeignClientResult<List<AgencyUserModel>> result = Privilege.agencyUserClient.queryByCompanyId(companyModel.getSequenceNbr(), null, null, false);
return result.getResult();
}
}
......@@ -101,7 +101,7 @@ public class JyjcInspectionResultServiceImpl extends BaseService<JyjcInspectionR
TzBaseEnterpriseInfoMapper tzBaseEnterpriseInfoMapper;
@Autowired
CommonserviceImpl commonService;
CommonServiceImpl commonService;
@Autowired
TzsUserInfoMapper tzsUserInfoMapper;
......
......@@ -35,7 +35,7 @@ spring.redis.lettuce.pool.max-idle=10
spring.redis.lettuce.pool.min-idle=0
redis.cache.failure.time=10800
emqx.clean-session=false
emqx.clean-session=true
emqx.client-id=${spring.application.name}-${random.int[1024,65536]}
emqx.broker=tcp://172.16.10.243:2883
emqx.client-user-name=admin
......
......@@ -28,7 +28,7 @@ spring.redis.lettuce.pool.max-idle=10
spring.redis.lettuce.pool.min-idle=0
## emqx properties:
emqx.clean-session=false
emqx.clean-session=true
emqx.client-id=${spring.application.name}-${random.int[1024,65536]}
emqx.broker=tcp://172.16.10.243:2883
emqx.client-user-name=super
......
......@@ -90,7 +90,7 @@ windows.img.path = D:\\
linux.img.path = /
## emqx
emqx.clean-session=false
emqx.clean-session=true
emqx.client-id=${spring.application.name}-${random.int[1024,65536]}
emqx.broker=tcp://172.16.10.243:1883
emqx.client-user-name=super
......
......@@ -177,6 +177,7 @@
info.sequence_nbr,
info.use_code,
info.use_unit,
concat(info.use_code,'_',info.use_unit) as useCodeAndName,
info.use_contact,
info.contact_phone
FROM
......
......@@ -30,7 +30,7 @@ spring.redis.lettuce.pool.max-idle=10
spring.redis.lettuce.pool.min-idle=0
## emqx properties:
emqx.clean-session=false
emqx.clean-session=true
emqx.client-id=${spring.application.name}-${random.int[1024,65536]}
emqx.broker=tcp://36.46.151.113:1883
emqx.client-user-name=super
......
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