Commit 84f2bd08 authored by tianbo's avatar tianbo

Merge branch 'develop_tzs_register' of…

Merge branch 'develop_tzs_register' of http://36.40.66.175:5000/moa/amos-boot-biz into develop_tzs_register # Conflicts: # amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-biz/src/main/java/com/yeejoin/amos/boot/module/jg/biz/service/impl/CommonServiceImpl.java
parents 7c046bfc edefe1b2
......@@ -151,4 +151,7 @@ public class JgChangeRegistrationUnitDto extends BaseDto {
@ApiModelProperty(value = "其他附件")
private String otherAccessories;
@ApiModelProperty(value = "公司类型")
private String companyType;
}
......@@ -109,4 +109,7 @@ public class JgUseRegistrationDto extends BaseDto {
@ApiModelProperty(value = "其他附件")
private String otherAccessories;
@ApiModelProperty(value = "车牌号(仅限厂车)")
private String licensePlateNum;
}
package com.yeejoin.amos.boot.module.jg.api.dto;
import lombok.Data;
import java.util.Date;
/**
* @author Administrator
* 使用标志参数
*/
@Data
public class UseFlagParamDto {
/**
* 设备种类名称
*/
private String equList;
/**
* 设备种类编码
*/
private String equListCode;
/**
* 设备代码
*/
private String equipCode;
/**
* 设备品种名称
*/
private String equipDefine;
/**
* 使用单位名称
*/
private String useUnitName;
/**
* 设备类别名称
*/
private String equipCategory;
/**
* 单位内编号
*/
private String useInnerCode;
/**
* 登记机关
*/
private String receiveOrgName;
/**
* 检验机构名称
*/
private String inspectionUnitName;
/**
* 登记证编号
*/
private String useRegistrationCode;
/**
* 下次检验日期
*/
private Date nextInspectionDate;
/**
* 维保单位名称--电梯专用
*/
private String maintenanceUnitName;
/**
* 应急救援电话--电梯专用
*/
private String emergencyTel;
/**
* 车牌号--车用气瓶专用
*/
private String carNumber;
/**
* 产品编号--车用气瓶专用
*
*/
private String factoryNumber;
/**
* 气瓶数量或者容积--车用气瓶专用
*/
private String cylinderNumOrVolume;
/**
* 申请编号
*/
private String applyNo;
}
......@@ -199,4 +199,10 @@ public class JgUseRegistration extends BaseEntity {
*/
@TableField(value = "other_accessories")
private String otherAccessories;
/**
* 车牌号(仅限厂车)
*/
@TableField(value = "license_plate_num")
private String licensePlateNum;
}
package com.yeejoin.amos.boot.module.jg.api.mapper;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.boot.module.ymt.api.entity.EquipmentCategory;
......@@ -31,5 +30,7 @@ public interface CommonMapper extends BaseMapper<EquipmentCategory> {
String selectBusinessData(String tableName, String instanceId);
void updateBusinessData(String tableName,String assignee, String transferToUserIds, String instanceId,String nextTaskId);
Map<String, Object> getUserPhone(String name ,String companyCode);
}
......@@ -80,5 +80,14 @@
next_execute_user_ids = #{assignee},
next_task_id = #{nextTaskId}
where instance_id = #{instanceId}
</update>
</update>
<select id="getUserPhone" resultType="java.util.Map">
SELECT phone
FROM "tzs_user_info"
WHERE unit_code = #{companyCode}
and name = #{name}
AND is_delete = 0
</select>
</mapper>
......@@ -360,5 +360,17 @@ public class CommonController extends BaseController {
return ResponseHelper.buildResponse(result);
}
/**
* 查询当前登录用户公司下的管理员对应联系方式
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/getUserPhone")
@ApiOperation(httpMethod = "GET", value = "查询当前登录用户公司下的管理员对应联系方式", notes = "查询当前登录用户公司下的管理员对应联系方式,证件编号")
public ResponseModel<Map<String, Object>> getUserPhone(@RequestParam(value = "name") String name) {
return ResponseHelper.buildResponse(commonService.getUserPhone(name));
}
}
......@@ -49,7 +49,11 @@ public class JgUseRegistrationController extends BaseController {
@PostMapping(value = "/flowExecute")
@ApiOperation(httpMethod = "POST", value = "执行流程", notes = "执行流程")
public ResponseModel<Object> flowExecute(@RequestBody JSONObject map) {
jgUseRegistrationServiceImpl.flowExecute(Long.valueOf(String.valueOf(map.get("sequenceNbr"))), String.valueOf(map.get("instanceId")), String.valueOf(map.get("operate")), String.valueOf(map.get("comment")));
jgUseRegistrationServiceImpl.flowExecute(Long.valueOf(String.valueOf(map.get("sequenceNbr"))),
String.valueOf(map.get("instanceId")),
String.valueOf(map.get("operate")),
String.valueOf(map.get("comment")),
String.valueOf(map.get("licensePlateNum")));
return ResponseHelper.buildResponse("ok");
}
......@@ -95,7 +99,9 @@ public class JgUseRegistrationController extends BaseController {
} else {
dto.setDataType(BaseController.COMPANY_TYPE_SUPERVISION);
}
return ResponseHelper.buildResponse(jgUseRegistrationServiceImpl.getList(dto, page, dto.getRoleIds()));
Page<Map<String, Object>> list = jgUseRegistrationServiceImpl.getList(dto, page, dto.getRoleIds());
list.getRecords().forEach(x-> x.put("companyType",info.getCompany().getCompanyType()));
return ResponseHelper.buildResponse(list);
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
......
......@@ -3,6 +3,7 @@ package com.yeejoin.amos.boot.module.jg.biz.service;
import com.yeejoin.amos.boot.biz.common.bo.CompanyBo;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.module.jg.api.dto.UseFlagParamDto;
import com.yeejoin.amos.boot.module.ymt.api.entity.EquipmentCategory;
import javax.servlet.http.HttpServletResponse;
......@@ -23,19 +24,20 @@ public interface ICommonService {
List<LinkedHashMap> getRegion(String level, String parentId);
List<LinkedHashMap> getTree(ReginParams selectedOrgInfo);
List<LinkedHashMap> getApproveTree(ReginParams reginParams);
List<LinkedHashMap> creatTree();
List<Map<String,Object>> getUnitListByType(String type);
List<Map<String, Object>> getUnitListByType(String type);
List<Map<String, Object>> getSecurityAdmin(String type, String useUnitCode);
Map<String,Object> getUserInfo(String sequenceNbr);
Map<String, Object> getUserInfo(String sequenceNbr);
Map<String,Object> getEnterpriseInfo(String sequenceNbr);
Map<String, Object> getEnterpriseInfo(String sequenceNbr);
List<Map<String,Object>> getEnterpriseEmployee(String unitCode);
List<Map<String, Object>> getEnterpriseEmployee(String unitCode);
void generateCertificateReport(Map<String, Object> map, HttpServletResponse response);
......@@ -59,8 +61,9 @@ public interface ICommonService {
/**
* 接收机构树
* @return List<Map>
*
* @param bizType 业务类型: notice-告知类, register-登记类
* @return List<Map>
*/
List<LinkedHashMap> getReceiveUnitTree(String bizType);
......@@ -68,4 +71,13 @@ public interface ICommonService {
Map<String, Object> getPermissionTreeWithCompany(String menuAgent, String permissionType, String path, CompanyBo company);
/**
* 使用标志生成
* @param useFlagParamDto 参数
* @param response 文件信息
*/
void useFlagGenerate(UseFlagParamDto useFlagParamDto, HttpServletResponse response);
Map<String, Object> getUserPhone(String name);
}
......@@ -2,6 +2,7 @@ package com.yeejoin.amos.boot.module.jg.biz.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.IoUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
......@@ -42,6 +43,7 @@ import com.yeejoin.amos.boot.module.ymt.api.entity.RegistrationInfo;
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.EquipmentCategoryMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgSupervisionInfoMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.RegistrationInfoMapper;
import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.component.feign.utils.FeignUtil;
......@@ -67,6 +69,7 @@ import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import org.springframework.web.multipart.MultipartFile;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.utils.Bean;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
......@@ -96,9 +99,6 @@ public class CommonServiceImpl implements ICommonService {
private RedisUtils redisUtils;
@Autowired
CommonMapper commonMapper;
@Autowired
IDataDictionaryService iDataDictionaryService;
......@@ -142,8 +142,7 @@ public class CommonServiceImpl implements ICommonService {
private static final String REGULATOR_UNIT = "监管机构";
//行政审批局
private static final String ADMINISTRATION_UNIT = "行政审批局";
public static final String SPECIAL_REGION_CODE = "SpecialRegionCode";
@Value("${regulator.unit.code}")
private String code;
......@@ -172,65 +171,51 @@ public class CommonServiceImpl implements ICommonService {
private static final String SBZX_PAGE_ID = "jgScrapCancelAdd";
// 业务通用发起——更名变更表单key
private static final String GMBG_PAGE_ID = "jgRegistrationInfo";
@Autowired
RegistrationInfoMapper tzsJgRegistrationInfoMapper;
CommonMapper commonMapper;
@Autowired
private IJgInstallationNoticeService iJgInstallationNoticeService;
RegistrationInfoMapper tzsJgRegistrationInfoMapper;
@Autowired
JgMaintenanceContractServiceImpl jgMaintenanceContractServiceImpl;
@Autowired
JgUseRegistrationServiceImpl jgUseRegistrationServiceImpl;
@Autowired
@Lazy
JgEquipTransferServiceImpl jgEquipTransferServiceImpl;
@Autowired
JgReformNoticeServiceImpl jgReformNoticeService;
@Autowired
private IJgMaintainNoticeService iJgMaintainNoticeService;
@Autowired
private IJgTransferNoticeService jgTransferNoticeService;
@Autowired
JgChangeRegistrationReformServiceImpl jgChangeRegistrationReformServiceImpl;
@Autowired
IJgChangeRegistrationTransferService jgChangeRegistrationTransferService;
@Autowired
JgChangeRegistrationUnitServiceImpl jgChangeRegistrationUnitServiceImpl;
@Autowired
JgChangeRegistrationNameServiceImpl jgChangeRegistrationNameService;
@Autowired
JgEnableDisableServiceImpl jgEnableDisableServiceImpl;
@Autowired
JgScrapCancelServiceImpl jgScrapCancelService;
@Autowired
ICmWorkflowService cmWorkflowService;
@Autowired
TzsServiceFeignClient tzsServiceFeignClient;
@Autowired
DataDictionaryServiceImpl dataDictionaryService;
@Autowired
IdxBizJgSupervisionInfoMapper idxBizJgSupervisionInfoMapper;
public static final String SPECIAL_REGION_CODE = "SpecialRegionCode";
@Autowired
private IJgInstallationNoticeService iJgInstallationNoticeService;
@Autowired
private IJgMaintainNoticeService iJgMaintainNoticeService;
@Autowired
private IJgTransferNoticeService jgTransferNoticeService;
public static byte[] file2byte(File file) {
try {
FileInputStream in = new FileInputStream(file);
//当文件没有结束时,每次读取一个字节显示
// 当文件没有结束时,每次读取一个字节显示
byte[] data = new byte[in.available()];
in.read(data);
in.close();
......@@ -271,7 +256,7 @@ public class CommonServiceImpl implements ICommonService {
return ObjectUtils.isEmpty(list) ? getProvinceList(level) : list;
} else if (!ObjectUtils.isEmpty(parentId)) {
String regionCode = parentId.split("_")[0];
//regionCode不是以00结尾查询街道,以0000结果查询市、否则查询区
// regionCode不是以00结尾查询街道,以0000结果查询市、否则查询区
if (!regionCode.endsWith(STREET_END_CODE)) {
list = ObjectUtils.isEmpty(redisUtils.get(STREET)) ? getProvinceList(STREET_LEVEL) : (List<LinkedHashMap>) redisUtils.get(STREET);
} else if (regionCode.endsWith(END_CODE)) {
......@@ -285,7 +270,6 @@ public class CommonServiceImpl implements ICommonService {
}
}
public List<LinkedHashMap> getProvinceList(String level) {
FeignClientResult result = privilegeFeginService.getProvince(level);
List<LinkedHashMap> list = (List<LinkedHashMap>) result.getResult();
......@@ -312,18 +296,17 @@ public class CommonServiceImpl implements ICommonService {
return list;
}
@Override
public List<LinkedHashMap> getCreatTree() {
List<LinkedHashMap> result = (List<LinkedHashMap>) redisUtils.get(REGULATOR_UNIT_TREE);
//判断redis是否存在管辖机构树
// 判断redis是否存在管辖机构树
return !ObjectUtils.isEmpty(result) ? result : creatTree();
}
@Override
public List<LinkedHashMap> getCreatTreeByInstallation() {
List<LinkedHashMap> result = (List<LinkedHashMap>) redisUtils.get(REGULATOR_UNIT_TREE_ALL);
//判断redis是否存在管辖机构树
// 判断redis是否存在管辖机构树
return !ObjectUtils.isEmpty(result) ? result : getCreatTreeByInstallationTree();
}
......@@ -341,12 +324,13 @@ public class CommonServiceImpl implements ICommonService {
@Override
public List<LinkedHashMap> getReceiveUnitTree(String bizType) {
List<LinkedHashMap> result = (List<LinkedHashMap>) redisUtils.get(genRedisKey(bizType));
//判断redis是否存在接收机构树
// 判断redis是否存在接收机构树
return !ObjectUtils.isEmpty(result) ? result : creatReceiveUnitTree(bizType);
}
/**
* 验EQUCODE的唯一性
*
* @param equCode
* @return
*/
......@@ -361,18 +345,100 @@ public class CommonServiceImpl implements ICommonService {
@Override
public Map<String, Object> getPermissionTreeWithCompany(String menuAgent, String permissionType, String path, CompanyBo company) {
Map<String, Object> result = new HashMap<>();
Collection<PermissionModel> permissionModels = FeignUtil.remoteCall(()->Privilege.permissionClient.currentPermissionTree(menuAgent, permissionType, null, path));
Collection<PermissionModel> permissionModels = FeignUtil.remoteCall(() -> Privilege.permissionClient.currentPermissionTree(menuAgent, permissionType, null, path));
result.put("permission", permissionModels);
result.put("company", company);
return result;
}
@Override
public void useFlagGenerate(UseFlagParamDto useFlagParamDto, HttpServletResponse response) {
if (useFlagParamDto == null) {
throw new IllegalArgumentException("参数不能为空");
}
Map<String, Object> paramMap;
paramMap = Bean.BeantoMap(useFlagParamDto);
// 设置二维码
setQrCode(useFlagParamDto, paramMap);
setNextDate(useFlagParamDto, paramMap);
String ftlPath = this.getFtlPathByBiz(useFlagParamDto);
if (StringUtils.isEmpty(ftlPath)) {
throw new BadRequest("无法找到使用标志");
}
File pdfFile = null;
try {
pdfFile = this.wordToPdf("特种设备使用标志_", ftlPath, paramMap);
byte[] bytes = file2byte(pdfFile);
String docTitle = pdfFile.getName();
FileExporter.exportFile(FileExporter.FileType.valueOf("pdf"), docTitle, bytes, response);
} catch (Exception e) {
log.error("特种设备使用标志生成失败", e);
throw new RuntimeException(e);
} finally {
if (pdfFile != null) {
pdfFile.deleteOnExit();
}
}
}
private void setNextDate(UseFlagParamDto useFlagParamDto, Map<String, Object> paramMap) {
if (useFlagParamDto.getNextInspectionDate() != null) {
paramMap.put("year", DateUtil.year(useFlagParamDto.getNextInspectionDate()));
paramMap.put("month", DateUtil.month(useFlagParamDto.getNextInspectionDate()) + 1);
}
}
private void setQrCode(UseFlagParamDto useFlagParamDto, Map<String, Object> paramMap) {
String qrCode = ImageUtils.generateQRCode(Optional.ofNullable(useFlagParamDto.getApplyNo()).orElse(""), 180, 180);
paramMap.put("qrCode", qrCode);
}
private String getFtlPathByBiz(UseFlagParamDto useFlagParamDto) {
String ftlPath = "";
// 锅炉、压力容器(气瓶除外)、起重机械、客运索道、大型游乐设施、场(厂)内专用机动车辆 使用式样一
String[] flag1EquipList = {"1000", "2000", "4000", "9000", "6000"};
if (Arrays.asList(flag1EquipList).contains(useFlagParamDto.getEquListCode())) {
ftlPath = "flag1-use-equip.ftl";
}
// 电梯使用式样二
String[] flag2EquipList = {"3000"};
if (Arrays.asList(flag2EquipList).contains(useFlagParamDto.getEquListCode())) {
ftlPath = "flag2-use-equip.ftl";
}
// 车用气瓶使用式样三, 约定 车用气瓶为 0000
String[] flag3EquipList = {"0000"};
if (Arrays.asList(flag3EquipList).contains(useFlagParamDto.getEquListCode())) {
ftlPath = "flag3-use-equip.ftl";
}
return ftlPath;
}
/**
* 用户选择信心redis获取
**/
protected ReginParams getSelectedOrgInfo() {
return JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
}
/**
* 查询当前登录用户公司下的管理员对应联系方式
*
* @param name
* @return
*/
@Override
public Map<String, Object> getUserPhone(String name) {
ReginParams reginParams = getSelectedOrgInfo();
String companyCode = reginParams.getCompany().getCompanyCode();
return commonMapper.getUserPhone(name, companyCode);
}
@Override
public List<LinkedHashMap> getTree(ReginParams reginParams) {
// 企业逻辑
if (reginParams.getCompany().getLevel().equals(BaseController.COMPANY_TYPE_COMPANY)) {
List<LinkedHashMap> result = (List<LinkedHashMap>) redisUtils.get(REGULATOR_UNIT_TREE);
//判断redis是否存在管辖机构树
// 判断redis是否存在管辖机构树
return !ObjectUtils.isEmpty(result) ? result : creatTree();
} else {
return Collections.singletonList((LinkedHashMap) BeanUtil.beanToMap(reginParams.getCompany()));
......@@ -413,7 +479,7 @@ public class CommonServiceImpl implements ICommonService {
// 企业逻辑
if (reginParams.getCompany().getLevel().equals(BaseController.COMPANY_TYPE_COMPANY)) {
List<LinkedHashMap> result = (List<LinkedHashMap>) redisUtils.get(ADMINISTRATION_UNIT_TREE);
//判断redis是否存在行政审批局树
// 判断redis是否存在行政审批局树
return !ObjectUtils.isEmpty(result) ? result : creatApproveTree();
} else {
// 监管单位逻辑
......@@ -422,7 +488,6 @@ public class CommonServiceImpl implements ICommonService {
}
@Override
public List<LinkedHashMap> creatApproveTree() {
FeignClientResult tree = privilegeFeginService.queryAgencyTreeForCache(RequestContext.getToken(), RequestContext.getAppKey(), RequestContext.getProduct());
......@@ -470,7 +535,7 @@ public class CommonServiceImpl implements ICommonService {
// disabled的节点设置下不可编辑属性
if (e.get("description") != null && e.get("description").toString().contains(type + "-disabled")) {
// 过滤非全部(all)公共及指定类型外的
e.put("disabled",true);
e.put("disabled", true);
}
if (!ObjectUtils.isEmpty(e.get("children"))) {
filterTreeDataByType((List<LinkedHashMap>) e.get("children"), type);
......@@ -480,7 +545,6 @@ public class CommonServiceImpl implements ICommonService {
return result;
}
private List<LinkedHashMap> deleteData(List<LinkedHashMap> result, String companyType) {
Iterator it = result.iterator();
while (it.hasNext()) {
......@@ -496,7 +560,6 @@ public class CommonServiceImpl implements ICommonService {
return result;
}
@Override
public List<Map<String, Object>> getUnitListByType(String type) {
......@@ -558,7 +621,7 @@ public class CommonServiceImpl implements ICommonService {
Iterator it = result.iterator();
while (it.hasNext()) {
LinkedHashMap e = (LinkedHashMap) it.next();
//将管辖机构树中children为[]的修改为null
// 将管辖机构树中children为[]的修改为null
if (e.get("children") != null) {
if (((List<LinkedHashMap>) e.get("children")).size() == 0) {
e.put("children", null);
......@@ -581,7 +644,7 @@ public class CommonServiceImpl implements ICommonService {
Iterator it = result.iterator();
while (it.hasNext()) {
LinkedHashMap e = (LinkedHashMap) it.next();
//删除使用单位
// 删除使用单位
if ("company".equals(e.get("level"))) {
it.remove();
}
......@@ -628,7 +691,7 @@ public class CommonServiceImpl implements ICommonService {
// word转pdf
File pdfFile;
try {
pdfFile = this.wordToPdf("equipment-registration-certificate-report.ftl", map);
pdfFile = this.wordToPdf("特种设备使用登记证_", "equipment-registration-certificate-report.ftl", map);
} catch (Exception e) {
throw new RuntimeException(e);
}
......@@ -714,7 +777,7 @@ public class CommonServiceImpl implements ICommonService {
pdfStamper.close();
// 返回文件
//FileExporter.exportFile(FileExporter.FileType.valueOf("pdf"), "套打使用登记证", bos.toByteArray(), response);
// FileExporter.exportFile(FileExporter.FileType.valueOf("pdf"), "套打使用登记证", bos.toByteArray(), response);
this.writeAttachment(response, bos.toByteArray());
} catch (IOException | DocumentException e) {
e.printStackTrace();
......@@ -748,10 +811,10 @@ public class CommonServiceImpl implements ICommonService {
*
* @param wordPath word文件路径
*/
private File wordToPdf(String wordPath, Map<String, Object> placeholders) throws Exception {
private File wordToPdf(String filePrefix, String wordPath, Map<String, Object> placeholders) throws Exception {
Assert.hasText(wordPath, "word文件路径不能为空");
String tempFileName = "特种设备使用登记证_" + System.currentTimeMillis() + "_temp.pdf";
String tempFileName = filePrefix + System.currentTimeMillis() + "_temp.pdf";
WordTemplateUtils instance = WordTemplateUtils.getInstance();
......@@ -777,7 +840,6 @@ public class CommonServiceImpl implements ICommonService {
return urlString;
}
@Override
public Object invokeBusinessProcess(String submitType, Map<String, Object> map, ReginParams reginParams) {
Map<String, Object> basicObj = (Map<String, Object>) map.get(basic);
......@@ -822,7 +884,7 @@ public class CommonServiceImpl implements ICommonService {
}
return jgUseRegistrationServiceImpl.save(jsonObject);
} else if (type.equals(ApplicationFormTypeEnum.GZBG.getBusinessCode())) {
//兼容业务逻辑代码
// 兼容业务逻辑代码
if (submitType.equals("1")) {
noticeObj.put("submit", "true");
}
......@@ -891,7 +953,7 @@ public class CommonServiceImpl implements ICommonService {
flowTaskVo.setTaskId(taskId);
flowTaskVo.setAssignee(assignee);
ProcessTaskDTO processTaskDTO = cmWorkflowService.assign(flowTaskVo);
//修改待办
// 修改待办
List<TaskV2Model> result = Systemctl.taskV2Client.selectListByRelationId(instanceId).getResult();
List<TaskV2Model> collect = result.stream().sorted((r1, r2) -> r2.getSequenceNbr().compareTo(r1.getSequenceNbr())).collect(Collectors.toList());
if (collect == null || collect.size() == 0) {
......@@ -906,7 +968,7 @@ public class CommonServiceImpl implements ICommonService {
String routhPath = taskV2Model.getRoutePath().replace("nextExecuteUserIds", "executeUserId") + "&nextExecuteUserIds=" + assignee;
taskV2Model.setRoutePath(routhPath);
Systemctl.taskV2Client.update(taskV2Model, taskV2Model.getSequenceNbr());
//创建新待办
// 创建新待办
taskV2Model.setExecuteUserIds(assignee);
String nextTaskId = processTaskDTO.getNextTask().get(0).getId();
taskV2Model.setFlowCode(nextTaskId);
......@@ -922,12 +984,11 @@ public class CommonServiceImpl implements ICommonService {
String id = commonMapper.selectBusinessData(tableName, instanceId);
id = ObjectUtils.isEmpty(id) ? assignee : id + "," + assignee;
//修改业务数据
// 修改业务数据
commonMapper.updateBusinessData(tableName, assignee, id, instanceId, nextTaskId);
return Boolean.TRUE;
}
public void deleteTaskModel(String id) {
List<TaskV2Model> result = Systemctl.taskV2Client.selectListByRelationId(id).getResult();
if (result.size() > 0) {
......@@ -937,14 +998,13 @@ public class CommonServiceImpl implements ICommonService {
}
}
/**
* 待办新增接口
**/
public void buildTaskModel(List<TaskModelDto> list) {
List<TaskV2Model> taskV2Models = new ArrayList<>();
for (TaskModelDto obj : list) {
//判断是否是暂存 新增若无下一节点执行人即为暂存
// 判断是否是暂存 新增若无下一节点执行人即为暂存
boolean flag = StringUtils.isEmpty(obj.getNextExecuteUser()) ? true : false;
if (flag) {
List<TaskV2Model> result = Systemctl.taskV2Client.selectListByRelationId(obj.getRelationId()).getResult();
......@@ -963,13 +1023,13 @@ public class CommonServiceImpl implements ICommonService {
}
List<Map> urlList = JsonUtils.getResourceList(urlInfo);
for (Map map : urlList) {
//获取暂存的可编辑页面url
// 获取暂存的可编辑页面url
if (flag && map.get("type").equals(obj.getTaskType())
&& map.get("pageType").equals("draft")) {
model.setRoutePath(map.get("url").toString() + urlParams);
break;
}
//维保需特殊获取页面 状态不等于监管单位审核的页面均取对应编辑页面
// 维保需特殊获取页面 状态不等于监管单位审核的页面均取对应编辑页面
else if (map.get("type").equals(BusinessTypeEnum.JG_MAINTENANCE_RECORD.getCode())
&& obj.getTaskType().equals(BusinessTypeEnum.JG_MAINTENANCE_RECORD.getCode())
&& !obj.getFlowStatus().toString().equals("16723")
......@@ -977,14 +1037,14 @@ public class CommonServiceImpl implements ICommonService {
model.setRoutePath(map.get("url").toString().replace("{roleIds}", obj.getNextExecuteUser()) + urlParams + "&nextExecuteUserIds=" + model.getExecuteUserIds());
break;
}
//其他逻辑均按详情页面获取
// 其他逻辑均按详情页面获取
else if (map.get("type").equals(obj.getTaskType())
&& map.get("pageType").equals(null == obj.getPageType() ? "look" : obj.getPageType())) {
model.setRoutePath(map.get("url").toString().replace("{roleIds}", obj.getNextExecuteUser()) + urlParams + "&nextExecuteUserIds=" + model.getExecuteUserIds());
break;
}
}
//是true则为暂存 除公共部分统一处理
// 是true则为暂存 除公共部分统一处理
if (flag) {
model.setFlowStatus(FlowStatusEnum.TO_BE_SUBMITTED.getCode());
model.setFlowStatusLabel(FlowStatusEnum.TO_BE_SUBMITTED.getName());
......@@ -1016,7 +1076,6 @@ public class CommonServiceImpl implements ICommonService {
Systemctl.taskV2Client.batchAdd(taskV2Models);
}
/**
* 待办编辑接口
* 参数
......@@ -1047,7 +1106,7 @@ public class CommonServiceImpl implements ICommonService {
// String tarUrl = url.replaceFirst("&executeUserIds=", "");
// tarUrl+"&executeUserIds="
// model.setRoutePath( roleIds[0]+"roleIds="+"55555"+"&userId"+userIds[1]);
//当流程完成时将所有待办状态统一修改为已完成
// 当流程完成时将所有待办状态统一修改为已完成
if (collect.get(0).getFlowStatusLabel().equals(FlowStatusEnum.TO_BE_FINISHED.getName())) {
String urlParams = "";
try {
......@@ -1074,7 +1133,7 @@ public class CommonServiceImpl implements ICommonService {
collect.get(0).setRoutePath(collect.get(0).getRoutePath().replace("roleIds=", "roleIds=55555&fq="));
Systemctl.taskV2Client.update(collect.get(0), collect.get(0).getSequenceNbr());
}
//修改model并返回 用于组装新待办
// 修改model并返回 用于组装新待办
collect.get(0).setEndUserId(null);
collect.get(0).setTaskStatus(null);
collect.get(0).setEndDate(null);
......@@ -1115,7 +1174,7 @@ public class CommonServiceImpl implements ICommonService {
collect.get(0).setTaskStatusLabel(params.get("taskStatusLabel").toString());
collect.get(0).setEndUserId(exeUserId);
collect.get(0).setEndDate(new Date());
//当流程完成时将所有待办状态统一修改为已完成
// 当流程完成时将所有待办状态统一修改为已完成
if (collect.get(0).getFlowStatusLabel().equals(FlowStatusEnum.TO_BE_FINISHED.getName())) {
String urlParams = "";
try {
......@@ -1151,7 +1210,6 @@ public class CommonServiceImpl implements ICommonService {
return collect.get(0);
}
/**
* 待办 撤回
*
......
......@@ -433,6 +433,7 @@ public class JgChangeRegistrationReformServiceImpl extends BaseService<JgChangeR
ids.forEach(id -> commonServiceImpl.deleteTaskModel(String.valueOf(id)));
}
@Override
public Map<String, Object> getDetail(String currentDocumentId, String equipId) {
JgChangeRegistrationReform jgChangeRegistrationReform = this.getBaseMapper().selectById(currentDocumentId);
if (ObjectUtils.isEmpty(equipId)) {
......
......@@ -628,7 +628,9 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
public Page<Map<String, Object>> queryListForPage(Page<Map<String, Object>> page, JgChangeRegistrationTransferDto params, String type) {
ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
String currentUserId = reginParams.getUserModel().getUserId();
String companyType = reginParams.getCompany().getCompanyType();
Page<Map<String, Object>> listPage = this.baseMapper.getListPage(page, params, params.getRoleIds(), type, currentUserId);
listPage.getRecords().forEach(x-> x.put("companyType",companyType));
return listPage;
}
......
......@@ -319,6 +319,7 @@ public class JgChangeRegistrationUnitServiceImpl extends BaseService<JgChangeReg
String orgCode;
orgCode = reginParams.getCompany().getCompanyCode();
String companyType = reginParams.getCompany().getCompanyType();
String currentUserId = reginParams.getUserModel().getUserId();
Page<JgChangeRegistrationUnit> noticePage = JgChangeRegistrationUnitMapper.queryForPage(page, model, type, orgCode, model.getRoleIds(),currentUserId);
......@@ -327,6 +328,7 @@ public class JgChangeRegistrationUnitServiceImpl extends BaseService<JgChangeReg
List<JgChangeRegistrationUnitDto> records = noticePage.getRecords().stream().map(notice -> {
JgChangeRegistrationUnitDto noticeDto = new JgChangeRegistrationUnitDto();
BeanUtils.copyProperties(notice, noticeDto);
noticeDto.setCompanyType(companyType);
return noticeDto;
}).collect(java.util.stream.Collectors.toList());
noticeDtoPage.setRecords(records);
......
......@@ -780,6 +780,12 @@ public class JgInstallationNoticeServiceImpl extends BaseService<JgInstallationN
@Transactional
public void cancel(JgInstallationNoticeDto noticeDto) {
JgInstallationNotice jgInstallationNotice = this.baseMapper.selectById(noticeDto.getSequenceNbr());
String expectedStatus = String.valueOf(FlowStatusEnum.TO_BE_PROCESSED.getCode());
// 检查实际状态是否不等于期望状态
if (!expectedStatus.equals(jgInstallationNotice.getNoticeStatus())) {
throw new BadRequest("当前业务状态不是待处理状态,请刷新页面后重试操作!");
}
ProcessTaskDTO processTaskDTO = iCmWorkflowService.rollBack(jgInstallationNotice.getInstanceId());
// 提取节点等信息
WorkflowResultDto workflowResultDto = commonService.buildWorkFlowInfo(Collections.singletonList(processTaskDTO)).get(0);
......
......@@ -676,6 +676,11 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto
public void cancel(JgMaintainNoticeDto noticeDto) {
JgMaintainNotice jgMaintainNotice = this.baseMapper.selectById(noticeDto.getSequenceNbr());
String expectedStatus = String.valueOf(FlowStatusEnum.TO_BE_PROCESSED.getCode());
// 检查实际状态是否不等于期望状态
if (!expectedStatus.equals(jgMaintainNotice.getNoticeStatus())) {
throw new BadRequest("当前业务状态不是待处理状态,请刷新页面后重试操作!");
}
ProcessTaskDTO processTaskDTO = cmWorkflowService.rollBack(jgMaintainNotice.getInstanceId());
// 提取节点等信息
WorkflowResultDto workflowResultDto = commonService.buildWorkFlowInfo(Collections.singletonList(processTaskDTO)).get(0);
......
......@@ -527,6 +527,9 @@ public class JgMaintenanceContractServiceImpl extends BaseService<JgMaintenanceC
info.setMeMaster(ObjectUtils.isEmpty(jgMaintenanceContract.getMaintenanceManagerOneName()) ? null : jgMaintenanceContract.getMaintenanceManagerOneName());
info.setMeMasterPhone(ObjectUtils.isEmpty(jgMaintenanceContract.getMaintenanceManagerOnePhone()) ? null : jgMaintenanceContract.getMaintenanceManagerOnePhone());
info.setMeMasterId(ObjectUtils.isEmpty(jgMaintenanceContract.getMaintenanceManagerOneIdNum()) ? null : jgMaintenanceContract.getMaintenanceManagerOneIdNum());
info.setMeMaster1(ObjectUtils.isEmpty(jgMaintenanceContract.getMaintenanceManagerTwoName()) ? null : jgMaintenanceContract.getMaintenanceManagerTwoName());
info.setMeMaster1Phone(ObjectUtils.isEmpty(jgMaintenanceContract.getMaintenanceManagerTwoPhone()) ? null : jgMaintenanceContract.getMaintenanceManagerTwoPhone());
info.setMeMaster1Id(ObjectUtils.isEmpty(jgMaintenanceContract.getMaintenanceManagerTwoIdNum()) ? null : jgMaintenanceContract.getMaintenanceManagerTwoIdNum());
info.setInformStart(ObjectUtils.isEmpty(jgMaintenanceContract.getInformStart()) ? null : jgMaintenanceContract.getInformStart());
info.setInformEnd(ObjectUtils.isEmpty(jgMaintenanceContract.getInformEnd()) ? null : jgMaintenanceContract.getInformEnd());
info.setRepairInform(ObjectUtils.isEmpty(jgMaintenanceContract.getMaintenanceContract()) ? null : jgMaintenanceContract.getMaintenanceContract());
......
......@@ -639,6 +639,11 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
JgReformNotice notice = baseMapper.selectById(noticeDto.getSequenceNbr());
if (notice != null) {
String expectedStatus = String.valueOf(FlowStatusEnum.TO_BE_PROCESSED.getCode());
// 检查实际状态是否不等于期望状态
if (!expectedStatus.equals(notice.getNoticeStatus())) {
throw new BadRequest("当前业务状态不是待处理状态,请刷新页面后重试操作!");
}
// 回滚工作流
ProcessTaskDTO processTaskDTO = cmWorkflowService.rollBack(noticeDto.getInstanceId());
WorkflowResultDto workflowResultDto = commonService.buildWorkFlowInfo(Collections.singletonList(processTaskDTO)).get(0);
......
......@@ -45,8 +45,8 @@ import org.springframework.util.StringUtils;
import org.typroject.tyboot.core.foundation.context.RequestContext;
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 org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.text.ParseException;
import java.util.*;
import java.util.stream.Collectors;
......@@ -613,6 +613,12 @@ public class JgTransferNoticeServiceImpl extends BaseService<JgTransferNoticeDto
@Transactional
public void cancel(JgTransferNoticeDto noticeDto) {
JgTransferNotice jgInstallationNotice = this.baseMapper.selectById(noticeDto.getSequenceNbr());
String expectedStatus = String.valueOf(FlowStatusEnum.TO_BE_PROCESSED.getCode());
// 检查实际状态是否不等于期望状态
if (!expectedStatus.equals(jgInstallationNotice.getNoticeStatus())) {
throw new BadRequest("当前业务状态不是待处理状态,请刷新页面后重试操作!");
}
ProcessTaskDTO processTaskDTO = iCmWorkflowService.rollBack(jgInstallationNotice.getInstanceId());
// 提取节点等信息
WorkflowResultDto workflowResultDto = commonService.buildWorkFlowInfo(Collections.singletonList(processTaskDTO)).get(0);
......
......@@ -396,14 +396,14 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
List<WorkflowResultDto> resultDto = commonServiceImpl.buildWorkFlowInfo(processTaskDTOS);
if (!ObjectUtils.isEmpty(resultDto) && !ObjectUtils.isEmpty(resultDto.get(0))) {
WorkflowResultDto workflowResultDto = resultDto.get(0);
updateData(jgUseRegistration.getSequenceNbr(), "0", workflowResultDto, Boolean.TRUE);
updateData(jgUseRegistration.getSequenceNbr(), "0", workflowResultDto, Boolean.TRUE,"");
}
}
if (!ObjectUtils.isEmpty(instanceId)) {
// 执行流程
flowExecute(jgUseRegistration.getSequenceNbr(), instanceId, "0", "");
flowExecute(jgUseRegistration.getSequenceNbr(), instanceId, "0", "","");
}
} else {
ArrayList<TaskModelDto> list = new ArrayList<>();
......@@ -428,7 +428,7 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
return this.baseMapper.getDetailById(jgUseRegistration.getSequenceNbr());
}
public JgUseRegistration updateData(Long sequenceNbr, String operate, WorkflowResultDto workflowResultDto, Boolean isFirst) {
public JgUseRegistration updateData(Long sequenceNbr, String operate, WorkflowResultDto workflowResultDto, Boolean isFirst,String licensePlateNum) {
ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
String role = workflowResultDto.getNextExecutorRoleIds();
String taskCode = FlowStatusEnum.TO_BE_FINISHED.getName();
......@@ -436,6 +436,7 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
taskCode = workflowResultDto.getNextTaskCode();
}
JgUseRegistration jgUseRegistration = this.getBaseMapper().selectById(sequenceNbr);
jgUseRegistration.setLicensePlateNum(licensePlateNum);
LambdaQueryWrapper<JgUseRegistrationEq> eq = new QueryWrapper<JgUseRegistrationEq>().lambda().eq(JgUseRegistrationEq::getEquipTransferId, sequenceNbr);
JgUseRegistrationEq jgUseRegistrationEq = jgRelationEquipMapper.selectOne(eq);
jgUseRegistration.setEquipId(jgUseRegistrationEq.getEquId());
......@@ -521,6 +522,11 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
String code = commonServiceImpl.generateRegistrationCode(jgUseRegistrationEq.getEquId(), jgUseRegistration.getSupervisoryCode(), jgUseRegistration.getReceiveCompanyCode());
jgUseRegistration.setUseRegistrationCode(code);
jgUseRegistration.setAuditPassDate(new Date());
registerInfo.setUseOrgCode(code);
LambdaUpdateWrapper<IdxBizJgRegisterInfo> lambda = new UpdateWrapper<IdxBizJgRegisterInfo>().lambda();
lambda.eq(IdxBizJgRegisterInfo::getRecord, registerInfo.getRecord());
lambda.set(true, IdxBizJgRegisterInfo::getUseOrgCode, code);
idxBizJgRegisterInfoService.update(lambda);
}
// 使用信息
LambdaQueryWrapper<IdxBizJgUseInfo> lambda = new QueryWrapper<IdxBizJgUseInfo>().lambda();
......@@ -606,7 +612,7 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
}
public void flowExecute(Long id, String instanceId, String operate, String comment) {
public void flowExecute(Long id, String instanceId, String operate, String comment,String licensePlateNum) {
JgUseRegistration jgUseRegistration = this.getBaseMapper().selectById(id);
// 组装信息
TaskResultDTO dto = new TaskResultDTO();
......@@ -632,7 +638,7 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
List<WorkflowResultDto> resultDto = commonServiceImpl.buildWorkFlowInfo(processTaskDTOS);
if (!ObjectUtils.isEmpty(resultDto) && !ObjectUtils.isEmpty(resultDto.get(0))) {
WorkflowResultDto workflowResultDto = resultDto.get(0);
updateData(jgUseRegistration.getSequenceNbr(), operate, workflowResultDto, Boolean.FALSE);
updateData(jgUseRegistration.getSequenceNbr(), operate, workflowResultDto, Boolean.FALSE,licensePlateNum);
}
}
......@@ -691,33 +697,41 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
this.update(jgUseRegistration, lambda);
}
public Map<String, Object> getDetail(String id, Long sequenceNbr) {
public Map<String, Object> getDetail(String record, Long sequenceNbr) {
if (!ObjectUtils.isEmpty(sequenceNbr)) {
JgUseRegistration jgUseRegistration = this.getBaseMapper().selectById(sequenceNbr);
LambdaQueryWrapper<JgRegistrationHistory> lambda = new QueryWrapper<JgRegistrationHistory>().lambda();
lambda.eq(JgRegistrationHistory::getCurrentDocumentId, sequenceNbr);
// lambda.eq(JgRegistrationHistory::getEquId, id);
JgRegistrationHistory jgRegistrationHistory = jgRegistrationHistoryService.getBaseMapper().selectOne(lambda);
JSONObject jsonObject = JSONObject.parseObject(jgRegistrationHistory.getChangeData());
// 需求:当申请信息由于设备信息错误被驳回及撤回时显示的数据还是旧设备数据,导致该申请单无法使用
// 解决方案:在当前状态为:使用单位已撤回、一级受理已驳回时显示最新的:设备基本信息、制造信息、设计信息
this.fillHistoryDataWithNewEquip(jsonObject, jgUseRegistration, record);
jsonObject.put("receiveOrgCode", jgUseRegistration.getReceiveCompanyCode() + "_" + jgUseRegistration.getReceiveOrgName());
jsonObject.put("status", jgUseRegistration.getStatus());
jsonObject.put("applyNo", jgUseRegistration.getApplyNo());
jsonObject.remove("submit");
jsonObject.remove("instanceId");
// 补充"车牌号"字段
jsonObject.put("licensePlateNum", jgUseRegistration.getLicensePlateNum());
return jsonObject;
}
Map<String, Object> detail = this.baseMapper.getDetail(id);
Map<String, Object> inspectDetail = this.baseMapper.getInspectDetail(id);
Map<String, Object> useDetail = this.baseMapper.getUseDetail(id);
Map<String, Object> useDestail = this.baseMapper.getDesDetail(id);
// 基本信息 + 制造信息
Map<String, Object> detail = this.baseMapper.getDetail(record);
// 检验信息
Map<String, Object> inspectDetail = this.baseMapper.getInspectDetail(record);
// 使用信息
Map<String, Object> useDetail = this.baseMapper.getUseDetail(record);
// 设计信息
Map<String, Object> desDetail = this.baseMapper.getDesDetail(record);
if (!ObjectUtils.isEmpty(inspectDetail)) {
detail.putAll(inspectDetail);
}
if (!ObjectUtils.isEmpty(useDetail)) {
detail.putAll(useDetail);
}
if (!ObjectUtils.isEmpty(useDestail)) {
detail.putAll(useDestail);
if (!ObjectUtils.isEmpty(desDetail)) {
detail.putAll(desDetail);
}
detail.remove("safetyManager");
detail.put("proDuctPhoto", JSON.parse(String.valueOf(detail.get("proDuctPhoto"))));
......@@ -733,6 +747,35 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
}
/**
* 填充设备最新的数据至历史json
* @param jsonObject 历史json
* @param jgUseRegistration 使用信息
* @param record 设备唯一标识
*/
private void fillHistoryDataWithNewEquip(JSONObject jsonObject, JgUseRegistration jgUseRegistration, String record) {
if(jgUseRegistration.getStatus().equals(WorkFlowStatusEnum.USE_SUBMIT.getReject())
|| jgUseRegistration.getStatus().equals(WorkFlowStatusEnum.USE_SUBMIT.getRollBack())){
// 基本信息 + 制造信息
Map<String, Object> detail = this.baseMapper.getDetail(record);
// 设计信息
Map<String, Object> desDetail = this.baseMapper.getDesDetail(record);
if (!ObjectUtils.isEmpty(desDetail)) {
detail.putAll(desDetail);
}
// 将字符串数据转为对象
detail.put("proDuctPhoto", JSON.parse(String.valueOf(detail.get("proDuctPhoto"))));
detail.put("factoryStandard", JSON.parse(String.valueOf(detail.get("factoryStandard"))));
detail.put("productQualityYieldProve", JSON.parse(String.valueOf(detail.get("productQualityYieldProve"))));
detail.put("insUseMaintainExplain", JSON.parse(String.valueOf(detail.get("insUseMaintainExplain"))));
detail.put("designStandard", JSON.parse(String.valueOf(detail.get("designStandard"))));
detail.put("designDoc", JSON.parse(String.valueOf(detail.get("designDoc"))));
// 格式化必要字段,当前页面的字段,来源his
detail.put("longitudeLatitude", JSON.parse(String.valueOf(jsonObject.get("longitudeLatitude"))));
jsonObject.putAll(detail);
}
}
/**
* 参数为监管码
*
* @param supervisoryCode
......
......@@ -93,6 +93,27 @@ public class IdxBizJgMaintenanceRecordInfo extends TzsBaseEntity {
@TableField("\"ME_MASTER_PHONE\"")
private String meMasterPhone;
/**
*维保负责人2姓名
*/
@TableField("\"ME_MASTER1\"")
private String meMaster1;
/**
*维保负责人2身份证
*/
@TableField("\"ME_MASTER1_ID\"")
private String meMaster1Id;
/**
*维保负责人2电话
*/
@TableField("\"ME_MASTER1_PHONE\"")
private String meMaster1Phone;
/**
*
*/
......
......@@ -105,6 +105,13 @@ public class TzsUserInfo extends BaseEntity {
*/
@TableField("unit_name")
private String unitName;
/**
* 企业编码
*/
@TableField("unit_code")
private String unitCode;
/**
* 头像
*/
......
package com.yeejoin.amos.boot.module.ymt.api.mapper;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgSupervisionInfo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgSupervisionInfo;
/**
* 监督管理信息表 Mapper 接口
......
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