Commit 0a054941 by 李小惠

1

parent 350b4745
......@@ -60,5 +60,11 @@
<groupId>com.junmp.v2</groupId>
<artifactId>v2-job-api</artifactId>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>31.1-jre</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>
package com.junmp.jyzb.beanReq;
import com.junmp.jyzb.domain.CabinetBox;
import com.junmp.v2.common.bean.request.BaseRequest;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;
@Data
@EqualsAndHashCode(callSuper = true)
public class CabinetReq extends BaseRequest {
/**
* 单警柜ID
*/
@NotNull(message = "单警柜ID主键不能为空", groups = {edit.class, delete.class, detail.class})
@ApiModelProperty(value = "单警柜ID")
private String id;
/**
* 单警柜编号
*/
@NotNull(message = "单警柜编号不能为空", groups = {edit.class, delete.class, detail.class})
@ApiModelProperty(value = "单警柜编号")
private String cabinetNum;
/**
* 箱数
*/
@ApiModelProperty(value = "箱数")
private Integer num;
/**
* 单警柜名称
*/
@NotNull(message = "单警柜名称不能为空", groups = {edit.class, delete.class, detail.class})
@ApiModelProperty(value = "单警柜名称")
private String name;
/**
* 组织机构号
*/
@NotNull(message = "组织机构号不能为空", groups = {edit.class, delete.class, detail.class})
@ApiModelProperty(value = "组织机构号")
private String orgId;
/**
* 位置信息
*/
@ApiModelProperty(value = "位置信息")
private String location;
/**
* 单警柜当前状态,0正常,1异常
*/
@ApiModelProperty(value = "单警柜当前状态,0正常,1异常")
private Integer state;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间")
private Date createTime;
/**
* 更新时间
*/
@ApiModelProperty(value = "更新时间")
private Date updateTime;
/**
* 更新人员
*/
@ApiModelProperty(value = "更新人员")
private String updateUser;
/**
* 单警柜与箱门一对多关系
*/
private List<CabinetBox> list;
private static final long serialVersionUID = 1L;
}
package com.junmp.jyzb.beanReq;
import com.junmp.v2.common.bean.request.BaseRequest;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotNull;
import java.util.Date;
@Data
@EqualsAndHashCode(callSuper = true)
public class PolicemanFingerReq extends BaseRequest {
/**
* 指纹id
*/
@NotNull(message = "指纹主键不能为空", groups = {edit.class, delete.class, detail.class})
@ApiModelProperty(value = "指纹id")
private Integer id;
/**
* 警员id
*/
@NotNull(message = "警员id不能为空", groups = {edit.class, delete.class, detail.class})
@ApiModelProperty(value = "警员id")
private String policeId;
/**
* 指纹名称
*/
@ApiModelProperty(value = "警员id")
private String name;
/**
* 指纹信息
*/
@NotNull(message = "指纹信息不能为空", groups = {edit.class, delete.class, detail.class})
@ApiModelProperty(value = "指纹信息")
private String fingerInfo;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间")
private Date createTime;
/**
* 更新时间
*/
@ApiModelProperty(value = "更新时间")
private Date updateTime;
private static final long serialVersionUID = 1L;
}
......@@ -3,12 +3,16 @@ package com.junmp.jyzb.config;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
@MapperScan("com.junmp.jyzb.mapper*")
public class MybatisPlusConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
......@@ -16,4 +20,5 @@ public class MybatisPlusConfig {
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
return interceptor;
}
}
\ No newline at end of file
......@@ -73,10 +73,12 @@ public class CabinetController {
return returnMsg;
}
// @PostMapping()
// @ApiOperation("获取副柜列表")
//
// @PostMapping()
// @ApiOperation("获取箱门列表")
@PostMapping("/getCabinetBoxInfo")
@ApiOperation("获取箱门列表")
public ResponseResult getCabinetBoxInfo(@RequestBody Map<String, Object> msg){
ResponseResult returnMsg = cabinetBoxService.getCabinetBoxInfo(msg);
return returnMsg;
}
}
\ No newline at end of file
package com.junmp.jyzb.controller;
import com.junmp.jyzb.api.bean.req.ProductReq;
import com.junmp.jyzb.beanReq.CabinetReq;
import com.junmp.jyzb.doc.CabinetDoc;
import com.junmp.jyzb.domain.Cabinet;
import com.junmp.jyzb.domain.PoliceFinger;
import com.junmp.jyzb.service.CabinetService;
import com.junmp.v2.common.bean.request.ValidationApi;
import com.junmp.v2.common.bean.response.ApiRes;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
@RestController
@Slf4j
@RequestMapping("/Cabinet")
@Api(tags = "单警柜基础信息模块")
public class CabinetController111 implements CabinetDoc {
@Resource
public CabinetService cabinetService;
@PostMapping("/AddCabinet")
@ApiOperation("添加单警柜")
public ApiRes<Boolean> addCabinet(@RequestBody @Validated(CabinetReq.add.class) CabinetReq req) throws Exception {
return ApiRes.success(cabinetService.addCabinet(req));
}
@PostMapping("/DeleteCabinet")
@ApiOperation("删除单警柜信息")
public ApiRes<Boolean> deleteCabinet(@RequestBody @Validated(ValidationApi.edit.class) CabinetReq req) throws Exception {
return ApiRes.success(cabinetService.deleteCabinet(req));
}
@PostMapping("/ShowCabinet")
@ApiOperation("查询单警柜列表")
public ApiRes<List<Cabinet>> showCabinet(@RequestBody @Validated(ValidationApi.edit.class) CabinetReq req,String includeLowerLevel){
return ApiRes.success(cabinetService.getAllCabinet(req,includeLowerLevel));
}
@PostMapping("/UpdateCabinet")
@ApiOperation("修改单警柜信息")
public ApiRes<Boolean> updateCabinet(@RequestBody @Validated(ValidationApi.edit.class) CabinetReq req) throws Exception {
return ApiRes.success(cabinetService.updateCabinet(req));
}
// @PostMapping("/ErrorState")
// @ApiOperation("单警柜状态变更")
// @PostMapping("/GetCabinetDetail")
// @ApiOperation("查询单警柜及其箱号信息")
// @PostMapping("/getCabinetBoxInfo")
// @ApiOperation("获取箱门列表")
}
......@@ -62,4 +62,11 @@ public class InventoryController {
ResponseResult returnMsg = inventoryService.getInventoryDevelop();
return returnMsg;
}
@PostMapping("/InvertoryBindBox")
@ApiOperation("装备绑定箱门")
public ResponseResult InvertoryBindBox(@RequestBody Map<String,Object> msg){
ResponseResult returnMsg = inventoryService.InvertoryBindBox(msg);
return returnMsg;
}
}
package com.junmp.jyzb.controller;
import com.junmp.jyzb.api.bean.req.ProductReq;
import com.junmp.jyzb.domain.PoliceFinger;
import com.junmp.jyzb.domain.Policeman;
import com.junmp.jyzb.service.PoliceFingerService;
import com.junmp.jyzb.service.PolicemanService;
......@@ -7,9 +9,11 @@ import com.junmp.jyzb.utils.HttpStatus;
import com.junmp.jyzb.utils.ResponseResult;
import com.junmp.jyzb.utils.ReturnData;
import com.junmp.jyzb.utils.ReturnMsg;
import com.junmp.v2.common.bean.response.ApiRes;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
......@@ -33,33 +37,6 @@ public class PoliceController {
return returnMsg;
}
@PostMapping("/AddFingerInfo")
@ApiOperation("添加指纹信息")
public ResponseResult addFingerInfo(@RequestBody Map<String,Object> msg) {
ResponseResult returnMsg = policemanService.addFingerInfo(msg);
return returnMsg;
}
@PostMapping("/updateFingerInfo")
@ApiOperation("修改指纹信息")
public ResponseResult updateFingerInfo(@RequestBody Map<String,Object> msg) {
ResponseResult returnMsg = policemanService.updateFingerInfo(msg);
return returnMsg;
}
@PostMapping("/searchFingerInfo")
@ApiOperation("查找指纹信息")
public ResponseResult searchFingerInfo(@RequestBody Map<String,Object> msg) {
ResponseResult returnMsg = policemanService.searchFingerInfo(msg);
return returnMsg;
}
@PostMapping("/DeleteFingerInfo")
@ApiOperation("删除警员指纹信息")
public ResponseResult deletePoliceFinger(@RequestBody Map<String,Object> msg) {
ResponseResult returnMsg= policemanService.deleteFinger(msg);
return returnMsg;
}
@PostMapping("/AddFaceInfo")
@ApiOperation("添加警员面部信息")
......@@ -118,8 +95,6 @@ public class PoliceController {
return returnMsg;
}
//todo 更新查询所有
@PostMapping("/GetPoliceData")
@ApiOperation("查询与单警柜绑定的警员信息") //根据单警柜id查询
......@@ -135,4 +110,17 @@ public class PoliceController {
return null;
}
/**
* @author lxh
* @description 单警柜所在的单位下面所有的人员
* @since 2023/7/19 10:10
* @param
* @return
**/
@PostMapping("/policeList")
@ApiOperation("人员列表")
public ResponseResult policeList(@RequestBody Map<String, Object> msg){
ResponseResult returnMsg =policemanService.getOrgPoliceman(msg);
return returnMsg;
}
}
package com.junmp.jyzb.controller;
import com.junmp.jyzb.beanReq.PolicemanFingerReq;
import com.junmp.jyzb.doc.PolicemanFingerDoc;
import com.junmp.jyzb.domain.PoliceFinger;
import com.junmp.jyzb.service.PoliceFingerService;
import com.junmp.v2.common.bean.response.ApiRes;
import com.junmp.v2.db.api.page.PageResult;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
@RestController
@Slf4j
@RequestMapping("/PolicemanFinger")
@Api(tags = "警员指纹信息模块")
public class PolicemanFingerController implements PolicemanFingerDoc {
@Resource
PoliceFingerService policeFingerService;
@PostMapping("/AddFingerInfo")
@ApiOperation("添加指纹信息")
public ApiRes<Boolean> addFingerInfo(@RequestBody @Validated(PolicemanFingerReq.edit.class) PolicemanFingerReq req) {
return ApiRes.success(policeFingerService.addFingerInfo(req)) ;
}
@PostMapping("/updateFingerInfo")
@ApiOperation("修改指纹信息")
public ApiRes<Boolean> updateFingerInfo(@RequestBody @Validated(PolicemanFingerReq.edit.class) PolicemanFingerReq req) {
return ApiRes.success(policeFingerService.updateFingerInfo(req)) ;
}
@PostMapping("/searchFingerInfo")
@ApiOperation("查找指纹信息")
public ApiRes<List<PoliceFinger>> searchFingerInfo(@RequestBody @Validated(PolicemanFingerReq.edit.class) PolicemanFingerReq req) {
return ApiRes.success(policeFingerService.searchFingerInfo(req));
}
@PostMapping("/DeleteFingerInfo")
@ApiOperation("删除警员指纹信息")
public ApiRes<Boolean> deletePoliceFinger(@RequestBody @Validated(PolicemanFingerReq.edit.class) PolicemanFingerReq req) {
return ApiRes.success(policeFingerService.deleteFinger(req));
}
@ApiOperation("/分页信息")
@GetMapping(path = "/page", name = "指纹信息分页")
public ApiRes<PageResult<PoliceFinger>> page(PolicemanFingerReq req) {
return ApiRes.success(policeFingerService.findPage(req));
}
}
package com.junmp.jyzb.doc;
public interface CabinetDoc {
}
package com.junmp.jyzb.doc;
import com.junmp.jyzb.api.bean.req.ProductReq;
import com.junmp.jyzb.beanReq.PolicemanFingerReq;
import com.junmp.jyzb.domain.PoliceFinger;
import com.junmp.v2.common.bean.response.ApiRes;
import com.junmp.v2.db.api.page.PageResult;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import java.util.List;
@Api(value = "警员指纹管理",tags = "警员指纹管理接口")
public interface PolicemanFingerDoc {
@ApiOperation(value = "添加指纹信息", tags = "警员指纹管理接口")
ApiRes<Boolean> addFingerInfo(PolicemanFingerReq req);
@ApiOperation(value = "修改指纹信息", tags = "警员指纹管理接口")
ApiRes<Boolean> updateFingerInfo(PolicemanFingerReq req);
@ApiOperation(value = "查找指纹信息", tags = "警员指纹管理接口")
ApiRes<List<PoliceFinger>> searchFingerInfo(PolicemanFingerReq req);
@ApiOperation(value = "删除指纹信息", tags = "警员指纹管理接口")
ApiRes<Boolean> deletePoliceFinger(PolicemanFingerReq req);
@ApiOperation(value = "分页", tags = "警员指纹管理接口")
ApiRes<PageResult<PoliceFinger>> page(PolicemanFingerReq req);
}
package com.junmp.jyzb.domain;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
......@@ -12,6 +15,7 @@ import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("base_cabinet")
public class Cabinet implements Serializable {
/**
* 单警柜ID
......@@ -74,10 +78,9 @@ public class Cabinet implements Serializable {
private String updateUser;
/**
* 箱数
* 单警柜与箱门一对多关系
*/
// @ApiModelProperty(value = "箱数")
// private Integer num;
private List<CabinetBox> list;
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
......@@ -157,5 +157,11 @@ public class Inventory implements Serializable {
@ApiModelProperty(value = "备注")
private String note;
/**
* 箱门id
*/
@ApiModelProperty(value = "箱门id")
private String locationId;
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
package com.junmp.jyzb.domain;
import com.baomidou.mybatisplus.annotation.TableName;
import com.junmp.v2.common.bean.request.BaseRequest;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
......@@ -7,9 +9,13 @@ import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.NonNull;
import javax.validation.constraints.NotNull;
@ApiModel(value = "com-junmp-jyzb-domain-PoliceFinger")
@Data
@TableName("base_police_finger")
@AllArgsConstructor
@NoArgsConstructor
public class PoliceFinger implements Serializable {
......
package com.junmp.jyzb.exception.enums;
import com.junmp.jyzb.api.constant.JYZBConstant;
import com.junmp.v2.common.constant.CommonConstant;
import com.junmp.v2.common.exception.IExceptionEnum;
import lombok.Getter;
/**
* <pre>
*
* 描述:
* 版本:1.0.0
* 日期:2022/8/1 13:08
* 作者:ningzp@junmp.com.cn
* <br>修改记录
* <br>修改日期 修改人 修改内容
*
* </pre>
*/
@Getter
public enum PolicemanExceptionEnum implements IExceptionEnum {
/**
* 警员不存在
*/
POLICEMAN_NOT_EXIST(CommonConstant.DEFAULT_USER_ERROR_CODE,"警员不存在"),
;
/**
* 错误编码
*/
private final Integer code;
/**
* 提示用户信息
*/
private final String message;
PolicemanExceptionEnum(Integer code, String message) {
this.code = code;
this.message = message;
}
}
package com.junmp.jyzb.exception.enums;
import com.junmp.v2.common.constant.CommonConstant;
import com.junmp.v2.common.exception.IExceptionEnum;
import lombok.Getter;
@Getter
public enum PolicemanFingerExceptionEnum implements IExceptionEnum {
/**
* 警员指纹已存在
*/
POLICEMAN_FINGER_EXCEPTION_ENUM(CommonConstant.DEFAULT_USER_ERROR_CODE,"警员指纹信息已存在"),
;
/**
* 错误编码
*/
private final Integer code;
/**
* 提示用户信息
*/
private final String message;
PolicemanFingerExceptionEnum(Integer code, String message) {
this.code = code;
this.message = message;
}
}
package com.junmp.jyzb.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.junmp.jyzb.domain.CabinetBox;
import org.apache.ibatis.annotations.Mapper;
......@@ -7,7 +8,7 @@ import java.util.List;
import java.util.Map;
@Mapper
public interface CabinetBoxMapper {
public interface CabinetBoxMapper extends BaseMapper<CabinetBox> {
List<Map<String, Object>> getBoxMsg(String id);
......
package com.junmp.jyzb.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.junmp.jyzb.domain.Cabinet;
import com.junmp.jyzb.domain.Policeman;
import org.apache.ibatis.annotations.Mapper;
......@@ -9,7 +10,7 @@ import java.util.List;
import java.util.Map;
@Mapper
public interface CabinetMapper {
public interface CabinetMapper extends BaseMapper<Cabinet> {
public int addCabinet(Cabinet cabinet);
......
package com.junmp.jyzb.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.junmp.jyzb.domain.Inventory;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
......@@ -7,7 +9,7 @@ import java.util.List;
import java.util.Map;
@Mapper
public interface InventoryMapper {
public interface InventoryMapper extends BaseMapper<Inventory> {
Map<String, Object> getSum(String queryType, String typeId);
Map<String, Object> getOrgNum(String typeId);
......
package com.junmp.jyzb.service;
import com.junmp.jyzb.utils.ResponseResult;
import java.util.List;
import java.util.Map;
public interface CabinetBoxService{
List<Map<String, Object>> getAllBoxMsg(String id);
ResponseResult getCabinetBoxInfo(Map<String, Object> msg);
}
package com.junmp.jyzb.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.junmp.jyzb.api.bean.req.ProductReq;
import com.junmp.jyzb.beanReq.CabinetReq;
import com.junmp.jyzb.domain.Cabinet;
import com.junmp.jyzb.domain.PoliceFinger;
import com.junmp.jyzb.utils.ResponseResult;
import java.util.List;
import java.util.Map;
public interface CabinetService{
public interface CabinetService extends IService<Cabinet> {
ResponseResult addCabinet(Map<String, Object> msg);
......@@ -26,4 +31,32 @@ public interface CabinetService{
ResponseResult getCabinetDetail(Map<String, Object> msg);
ResponseResult setCabinetInventory(Map<String, Object> msg);
/**
* 添加单警柜
* @param req
* @return
*/
boolean addCabinet(CabinetReq req) throws Exception;
/**
* 删除单警柜
* @param req
* @return
*/
boolean deleteCabinet(CabinetReq req);
/**
* 查询单警柜信息
* @param req
* @return
*/
List<Cabinet> getAllCabinet(CabinetReq req,String includeLowerLevel);
/**
* 修改单警柜信息
* @param req
* @return
*/
boolean updateCabinet(CabinetReq req) throws Exception;
}
......@@ -16,4 +16,7 @@ public interface InventoryService{
ResponseResult getInventoryByOrgId(Map<String, Object> msg);
ResponseResult getInventoryDevelop();
ResponseResult InvertoryBindBox(Map<String, Object> msg);
}
package com.junmp.jyzb.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.junmp.jyzb.api.bean.req.ProductReq;
import com.junmp.jyzb.beanReq.PolicemanFingerReq;
import com.junmp.jyzb.domain.PoliceFinger;
import com.junmp.jyzb.entity.Product;
import com.junmp.jyzb.utils.ResponseResult;
import com.junmp.v2.db.api.page.PageResult;
import java.util.List;
import java.util.Map;
public interface PoliceFingerService{
public interface PoliceFingerService extends IService<PoliceFinger> {
List<Map<String, Object>> getFingersByUserId(String userId);
/**
* 新增指纹信息
* @param req
* @return
*/
boolean addFingerInfo(PolicemanFingerReq req);
/**
* 更新指纹信息
* @param req
* @return
*/
boolean updateFingerInfo(PolicemanFingerReq req);
/**
* 查询指纹信息列表
* @param req
* @return
*/
List<PoliceFinger> searchFingerInfo(PolicemanFingerReq req);
/**
* 删除指纹信息
* @param req
* @return
*/
boolean deleteFinger(PolicemanFingerReq req);
/**
* 分页信息
* @param req
* @return
*/
PageResult<PoliceFinger> findPage(PolicemanFingerReq req);
}
package com.junmp.jyzb.service;
import com.junmp.jyzb.domain.PoliceFinger;
import com.junmp.jyzb.domain.Policeman;
import com.junmp.jyzb.utils.ResponseResult;
......@@ -24,7 +25,7 @@ public interface PolicemanService{
ResponseResult addFingerInfo(Map<String, Object> msg);
//修改指纹信息
ResponseResult updateFingerInfo(Map<String, Object> msg);
boolean updateFingerInfo(PoliceFinger req);
//查询指纹信息
ResponseResult searchFingerInfo(Map<String, Object> msg);
......@@ -42,4 +43,6 @@ public interface PolicemanService{
ResponseResult searchFaceInfo(Map<String, Object> msg);
//通过单警柜获取组织机构id,再获取组织机构下的所有警员信息
ResponseResult getOrgPoliceman(Map<String, Object> msg);
}
package com.junmp.jyzb.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.junmp.jyzb.domain.CabinetBox;
import com.junmp.jyzb.mapper.CabinetBoxMapper;
import com.junmp.jyzb.mapper.PoliceFingerMapper;
import com.junmp.jyzb.service.CabinetBoxService;
import com.junmp.jyzb.utils.HttpStatus;
import com.junmp.jyzb.utils.ResponseResult;
import com.junmp.jyzb.utils.ReturnMsg;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
import static com.junmp.jyzb.utils.CheckBlank.checkNotBlank;
@Service
public class CabinetBoxServiceImpl implements CabinetBoxService {
......@@ -19,4 +26,23 @@ public class CabinetBoxServiceImpl implements CabinetBoxService {
public List<Map<String, Object>> getAllBoxMsg(String id) {
return cabinetBoxMapper.getBoxMsg(id);
}
/**
* @author lxh
* @description 通过cabinetId获取箱门信息列表
* @since 2023/7/18 22:20
* @param
* @return
**/
@Override
public ResponseResult getCabinetBoxInfo(Map<String, Object> msg) {
try {
checkNotBlank(msg.get("cabinetId"), "cabinetId不能为空");
} catch (IllegalArgumentException e) {
return new ResponseResult(HttpStatus.ERROR, ReturnMsg.ERROR,e.getMessage());
}
List<CabinetBox> cabinetBoxList = cabinetBoxMapper.selectList(new LambdaQueryWrapper<CabinetBox>()
.eq(CabinetBox::getCabinetId, msg.get("cabinetId")));
return new ResponseResult<>(HttpStatus.SUCCESS,"操作成功",cabinetBoxList);
}
}
package com.junmp.jyzb.service.impl;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.junmp.jyzb.api.bean.req.ProductReq;
import com.junmp.jyzb.beanReq.CabinetReq;
import com.junmp.jyzb.beanReq.PolicemanFingerReq;
import com.junmp.jyzb.domain.Cabinet;
import com.junmp.jyzb.domain.CabinetBox;
import com.junmp.jyzb.domain.PubOrg;
import com.junmp.jyzb.mapper.CabinetBoxMapper;
import com.junmp.jyzb.mapper.PolicemanMapper;
import com.junmp.jyzb.mapper.PubOrgMapper;
import com.junmp.jyzb.domain.PoliceFinger;
import com.junmp.jyzb.mapper.*;
import com.junmp.jyzb.service.CabinetService;
import com.junmp.jyzb.service.PubOrgService;
import com.junmp.jyzb.utils.*;
import com.junmp.v2.common.util.BeanPlusUtil;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import com.junmp.jyzb.mapper.CabinetMapper;
import java.util.*;
import static com.junmp.jyzb.utils.CheckBlank.checkNotBlank;
@Service
public class CabinetServiceImpl implements CabinetService {
public class CabinetServiceImpl extends ServiceImpl<CabinetMapper, Cabinet> implements CabinetService {
@Resource
private RedisUtils redisUtils;
......@@ -60,13 +64,11 @@ public class CabinetServiceImpl implements CabinetService {
if (onePubOrg == null || onePubOrg.equals("")){
return new ResponseResult(HttpStatus.ERROR,ReturnMsg.ERROR,"该组织机构不存在");
}
//查询是否有重复的cabinetNum
Map<String, Object> hashCabinetNum = cabinetMapper.getCabinetByCabinetNum(cabinetNum);
if (hashCabinetNum!=null){
return new ResponseResult(HttpStatus.ERROR, ReturnMsg.ERROR,"主柜编号重复");
}
Cabinet cabinet =new Cabinet();
//将警员相关信息添加到警员表
//生成一个uuid
......@@ -82,9 +84,7 @@ public class CabinetServiceImpl implements CabinetService {
cabinet.setLocation((String) msg.get("location"));
cabinet.setNum((Integer) msg.get("num"));
cabinet.setCabinetNum(cabinetNum);
cabinetMapper.addCabinet(cabinet);
/**
* 更新缓存
* */
......@@ -97,7 +97,6 @@ public class CabinetServiceImpl implements CabinetService {
//将查询结果存入 Redis 中
redisUtils.set(redisKey, cachedDataTrue);
}
//构建Redis缓存键
redisKey = REDIS_CABINET + "false" +'_'+ msg.get("orgId").toString();
// 从 Redis 中获取数据
......@@ -409,4 +408,95 @@ public class CabinetServiceImpl implements CabinetService {
cabinetMapper.setCabinetPriceInventory(id);
return new ResponseResult(HttpStatus.SUCCESS, ReturnMsg.PASS);
}
/**
* 添加单警柜
* @param req
* @return
*/
@Override
public boolean addCabinet(CabinetReq req) throws Exception {
Cabinet cabinet = new Cabinet();
//查询传日的组织机构id是否存在
Long onePubOrg = pubOrgMapper.getOnePubOrg(req.getOrgId());
if(onePubOrg == null || onePubOrg.equals("")){
throw new Exception("该组织机构不存在");
}
//查询是否有重复的单警柜编号
Map<String, Object> hashCabinetNum = cabinetMapper.getCabinetByCabinetNum(req.getCabinetNum());
if (hashCabinetNum!=null){
throw new Exception("单警柜编号重复");
}
BeanPlusUtil.copyProperties(req,cabinet);
String uuid = UUID.randomUUID().toString().replaceAll("-", "");
cabinet.setId(uuid);
cabinet.setCreateTime(DateTimeUtil.getCurrentDateTime());
cabinet.setUpdateTime(DateTimeUtil.getCurrentDateTime());
return this.save(cabinet);
}
/**
* 删除单警柜
* @param req
* @return
*/
@Override
public boolean deleteCabinet(CabinetReq req) {
this.removeById(req.getId());
return true;
}
/**
* 获取单警柜列表
* @param req
* @return
*/
@Override
public List<Cabinet> getAllCabinet(CabinetReq req,String includeLowerLevel) {
return null;
}
/**
* 修改单警柜信息
* @param req
* @return
*/
@Override
public boolean updateCabinet(CabinetReq req) throws Exception {
//查询传日的组织机构id是否存在
Long onePubOrg = pubOrgMapper.getOnePubOrg(req.getOrgId());
if(onePubOrg == null || onePubOrg.equals("")){
throw new Exception("该组织机构不存在");
}
//查询是否有重复的cabinetNum
Map<String, Object> hashCabinetNum = cabinetMapper.getCabinetByCabinetNum(req.getCabinetNum());
//判断policeCode是否有变动
String oldCabinetNum = cabinetMapper.getCabinetNumById(req.getId());
if (oldCabinetNum!=null && !oldCabinetNum.equals(req.getCabinetNum())){
if (hashCabinetNum!=null){
throw new Exception("主柜编号重复");
}
}
Cabinet cabinet =new Cabinet();
BeanPlusUtil.copyProperties(req,cabinet);
return this.updateById(cabinet);
}
//查询的各种条件信息
private LambdaQueryWrapper<Cabinet> createWrapper(CabinetReq req) {
LambdaQueryWrapper<Cabinet> wrapper = new LambdaQueryWrapper<>();
if (ObjectUtil.isEmpty(req)) {
return wrapper;
}
//单警柜id
wrapper.like(ObjectUtil.isNotEmpty(req.getId()), Cabinet::getId, req.getId());
//模糊查询
//机构id
wrapper.like(ObjectUtil.isNotEmpty(req.getOrgId()), Cabinet::getOrgId, req.getOrgId());
wrapper.orderByDesc(Cabinet::getUpdateTime);
return wrapper;
}
}
package com.junmp.jyzb.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.junmp.jyzb.domain.Inventory;
import com.junmp.jyzb.domain.PubOrg;
import com.junmp.jyzb.service.CabinetService;
import com.junmp.jyzb.service.InventoryService;
import com.junmp.jyzb.service.WarehouseService;
import com.junmp.jyzb.utils.HttpStatus;
import com.junmp.jyzb.utils.ResponseResult;
import com.junmp.jyzb.utils.ReturnData;
import com.junmp.jyzb.utils.ReturnMsg;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import com.junmp.jyzb.mapper.InventoryMapper;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import static com.junmp.jyzb.utils.CheckBlank.checkNotBlank;
......@@ -196,7 +196,7 @@ public class InventoryServiceImpl implements InventoryService {
//根据传入的queryType来辨别要查询什么信息
if (queryType.equals("org") || queryType.equals("warehouse") || queryType.equals("cabinet")){
List<Map<String,Object>> returnMsg = inventoryMapper.getInventoryList(queryType,typeCode,typeId,sizeId);
List<Map<String, Object>> returnMsg = inventoryMapper.getInventoryList(queryType,typeCode,typeId,sizeId);
return new ResponseResult(HttpStatus.SUCCESS, ReturnMsg.PASS,returnMsg);
}else {
return new ResponseResult(HttpStatus.ERROR, ReturnMsg.ERROR,"输入的queryType信息有误");
......@@ -212,7 +212,7 @@ public class InventoryServiceImpl implements InventoryService {
return new ResponseResult(HttpStatus.ERROR, ReturnMsg.ERROR,e.getMessage());
}
String orgId = msg.get("orgId").toString();
List<Map<String,Object>> returnMsg = inventoryMapper.getInventoryByOrgId(orgId);
List<Map<String, Object>> returnMsg = inventoryMapper.getInventoryByOrgId(orgId);
return new ResponseResult(HttpStatus.SUCCESS, ReturnMsg.PASS,returnMsg);
}
......@@ -220,4 +220,25 @@ public class InventoryServiceImpl implements InventoryService {
public ResponseResult getInventoryDevelop() {
return null;
}
@Override
public ResponseResult InvertoryBindBox(Map<String, Object> msg) {
//参数校验
try {
checkNotBlank(msg.get("inventoryId"), "inventoryId不能为空");
checkNotBlank(msg.get("locationId"), "locationId不能为空");
} catch (IllegalArgumentException e) {
return new ResponseResult(HttpStatus.ERROR, ReturnMsg.ERROR,e.getMessage());
}
//将装备和箱门进行绑定(简单来 说就是更新数据库中的单条记录信息)
Inventory inventory = inventoryMapper.selectOne(new LambdaQueryWrapper<Inventory>()
.eq(Inventory::getId, msg.get("inventoryId"))
.eq(Inventory::getLocationId, msg.get("locationId")));
if (Objects.isNull(inventory)){
return new ResponseResult(HttpStatus.ERROR, ReturnMsg.ERROR, ReturnData.NO_DATA);
}
inventory.setLocationId((String) msg.get("locationId"));
inventoryMapper.updateById(inventory);
return new ResponseResult(HttpStatus.SUCCESS, ReturnMsg.PASS,"绑定成功");
}
}
package com.junmp.jyzb.service.impl;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.junmp.jyzb.api.bean.req.ProductReq;
import com.junmp.jyzb.api.exception.enums.ProductExceptionEnum;
import com.junmp.jyzb.beanReq.PolicemanFingerReq;
import com.junmp.jyzb.domain.PoliceFinger;
import com.junmp.jyzb.entity.Product;
import com.junmp.jyzb.exception.enums.PolicemanFingerExceptionEnum;
import com.junmp.jyzb.mapper.ProductMapper;
import com.junmp.jyzb.service.PoliceFingerService;
import com.junmp.jyzb.utils.DateTimeUtil;
import com.junmp.v2.common.exception.base.ServiceException;
import com.junmp.v2.common.util.BeanPlusUtil;
import com.junmp.v2.db.api.factory.PageFactory;
import com.junmp.v2.db.api.factory.PageResultFactory;
import com.junmp.v2.db.api.page.PageResult;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import com.junmp.jyzb.mapper.PoliceFingerMapper;
......@@ -10,7 +27,8 @@ import java.util.List;
import java.util.Map;
@Service
public class PoliceFingerServiceImpl implements PoliceFingerService {
@Slf4j
public class PoliceFingerServiceImpl extends ServiceImpl<PoliceFingerMapper, PoliceFinger> implements PoliceFingerService {
@Resource
private PoliceFingerMapper policeFingerMapper;
......@@ -19,4 +37,81 @@ public class PoliceFingerServiceImpl implements PoliceFingerService {
public List<Map<String, Object>> getFingersByUserId(String userId) {
return policeFingerMapper.getFingersByUserId(userId);
}
//新增指纹信息
@Override
public boolean addFingerInfo(PolicemanFingerReq req) {
PoliceFinger policeFinger = new PoliceFinger();
BeanPlusUtil.copyProperties(req, policeFinger);
//创建时间
policeFinger.setCreateTime(DateTimeUtil.getCurrentDateTime());
//更新时间
policeFinger.setUpdateTime(DateTimeUtil.getCurrentDateTime());
return this.save(policeFinger);
}
//修改指纹信息
@Override
public boolean updateFingerInfo(PolicemanFingerReq req) {
PoliceFinger policeFinger = this.queryPolicemanFinger(req);
BeanPlusUtil.copyProperties(req,policeFinger);
//更新时间
policeFinger.setUpdateTime(DateTimeUtil.getCurrentDateTime());
return this.updateById(policeFinger);
}
//查询指纹信息
@Override
public List<PoliceFinger> searchFingerInfo(PolicemanFingerReq req) {
LambdaQueryWrapper<PoliceFinger> wrapper = createWrapper(req);
return this.list(wrapper);
}
// 删除指纹信息
@Override
public boolean deleteFinger(PolicemanFingerReq req) {
this.removeById(req.getId());
return true;
}
/**
* 分页查询
* @param req
* @return
*/
@Override
public PageResult<PoliceFinger> findPage(PolicemanFingerReq req) {
LambdaQueryWrapper<PoliceFinger> wrapper = createWrapper(req);
Page<PoliceFinger> page = this.page(PageFactory.getDefaultPage(), wrapper);
return PageResultFactory.createPageResult(page);
}
//添加指纹时判断指纹是否存在,如果存在则抛出异常
//异常信息为:指纹信息已经存在
private PoliceFinger queryPolicemanFinger(PolicemanFingerReq req) {
PoliceFinger policeFinger = this.getById(req);
if (ObjectUtil.isNull(policeFinger)) {
throw new ServiceException(PolicemanFingerExceptionEnum.POLICEMAN_FINGER_EXCEPTION_ENUM);
}
return policeFinger;
}
//查询的各种条件信息
private LambdaQueryWrapper<PoliceFinger> createWrapper(PolicemanFingerReq req) {
LambdaQueryWrapper<PoliceFinger> wrapper = new LambdaQueryWrapper<>();
if (ObjectUtil.isEmpty(req)) {
return wrapper;
}
//根据业务编码查询
//警员id
wrapper.like(ObjectUtil.isNotEmpty(req.getPoliceId()), PoliceFinger::getPoliceId, req.getPoliceId());
//根据企业名称模糊查询
//指纹名称
wrapper.like(ObjectUtil.isNotEmpty(req.getName()), PoliceFinger::getName, req.getName());
//指纹信息
wrapper.like(ObjectUtil.isNotEmpty(req.getFingerInfo()), PoliceFinger::getFingerInfo, req.getFingerInfo());
wrapper.orderByDesc(PoliceFinger::getUpdateTime);
return wrapper;
}
}
package com.junmp.jyzb.service.impl;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.junmp.jyzb.api.exception.enums.ProductExceptionEnum;
import com.junmp.jyzb.domain.Cabinet;
import com.junmp.jyzb.domain.PoliceFinger;
import com.junmp.jyzb.domain.PubOrg;
import com.junmp.jyzb.entity.Product;
import com.junmp.jyzb.exception.enums.PolicemanExceptionEnum;
import com.junmp.jyzb.mapper.*;
import com.junmp.jyzb.service.PolicemanService;
import com.junmp.jyzb.service.PubOrgService;
import com.junmp.jyzb.utils.*;
import com.junmp.v2.common.exception.base.ServiceException;
import com.junmp.v2.common.util.BeanPlusUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import com.junmp.jyzb.domain.Policeman;
......@@ -18,7 +27,8 @@ import java.util.*;
import static com.junmp.jyzb.utils.CheckBlank.checkNotBlank;
@Service
public class PolicemanServiceImpl implements PolicemanService {
@Slf4j
public class PolicemanServiceImpl extends ServiceImpl<PolicemanMapper, Policeman> implements PolicemanService {
@Resource
private RedisUtils redisUtils;
......@@ -435,30 +445,35 @@ public class PolicemanServiceImpl implements PolicemanService {
* @author lxh
* @description 更新警员的指纹信息
* @since 2023/7/18 14:21
* @param msg (fingerId)
* @param
* @return
**/
@Override
public ResponseResult updateFingerInfo(Map<String, Object> msg) {
public boolean updateFingerInfo(PoliceFinger req) {
//警员id,name,指纹信息不能为空
try {
checkNotBlank(msg.get("policeId"), "policeId不能为空");
checkNotBlank(msg.get("name"), "name不能为空");
checkNotBlank(msg.get("fingerInfo"), "fingerInfo不能为空");
} catch (IllegalArgumentException e) {
return new ResponseResult(HttpStatus.ERROR, ReturnMsg.ERROR,e.getMessage());
}
PoliceFinger policeFinger = new PoliceFinger();
policeFinger.setId((Integer) msg.get("id"));
policeFinger.setPoliceId((String) msg.get("policeId"));
policeFinger.setUpdateTime(DateTimeUtil.getCurrentDateTime());
policeFinger.setFingerInfo((String) msg.get("fingerInfo"));
policeFinger.setName((String) msg.get("name"));
policeFingerMapper.update(policeFinger, new LambdaQueryWrapper<PoliceFinger>()
.eq(PoliceFinger::getId, msg.get("id")));
return new ResponseResult(HttpStatus.SUCCESS,"操作成功");
// PoliceFinger policeFinger = this.queryProduct(req);
// BeanPlusUtil.copyProperties(req, policeFinger);
// return this.updateById(policeFinger);
// try {
// checkNotBlank(msg.get("policeId"), "policeId不能为空");
// checkNotBlank(msg.get("name"), "name不能为空");
// checkNotBlank(msg.get("fingerInfo"), "fingerInfo不能为空");
// } catch (IllegalArgumentException e) {
// return new ResponseResult(HttpStatus.ERROR, ReturnMsg.ERROR,e.getMessage());
// }
// PoliceFinger policeFinger = new PoliceFinger();
// policeFinger.setId((Integer) msg.get("id"));
// policeFinger.setPoliceId((String) msg.get("policeId"));
// policeFinger.setUpdateTime(DateTimeUtil.getCurrentDateTime());
// policeFinger.setFingerInfo((String) msg.get("fingerInfo"));
// policeFinger.setName((String) msg.get("name"));
// policeFingerMapper.update(policeFinger, new LambdaQueryWrapper<PoliceFinger>()
// .eq(PoliceFinger::getId, msg.get("id")));
// return new ResponseResult(HttpStatus.SUCCESS,"操作成功");
return false;
}
/**
* @author lxh
* @description 查询警员的指纹信息
......@@ -728,4 +743,25 @@ public class PolicemanServiceImpl implements PolicemanService {
}
//通过单警柜获取组织机构id,再获取组织机构下的所有警员信息
@Override
public ResponseResult getOrgPoliceman(Map<String, Object> msg) {
try {
checkNotBlank(msg.get("cabinetId"), "cabinetId不能为空");
} catch (IllegalArgumentException e) {
return new ResponseResult(HttpStatus.ERROR, ReturnMsg.ERROR,e.getMessage());
}
//通过警柜id获取组织机构id
Cabinet cabinet = cabinetMapper.selectOne(new LambdaQueryWrapper<Cabinet>()
.eq(Cabinet::getId, msg.get("cabinetId")));
if (ObjectUtil.isNull(cabinet)){
return new ResponseResult(HttpStatus.ERROR,ReturnMsg.NO_DATA,ReturnData.NO_DATA);
}
String orgId=cabinet.getOrgId();
//通过机构id获取机构下所有的警员信息
List<Policeman> policemenList = policemanMapper.selectList(new LambdaQueryWrapper<Policeman>()
.eq(Policeman::getOrgId, orgId));
return new ResponseResult<>(HttpStatus.SUCCESS,"操作成功",policemenList);
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.junmp.jyzb.mapper.CabinetMapper">
<resultMap id="" type="">
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
......
......@@ -221,5 +221,8 @@ join base_supplier s on s.id = i.supplier_id
</if>
and size_id = #{sizeId}
</select>
<select id="getInventoryByOrgId" resultType="java.util.Map" parameterType="java.lang.String">
select * from base_inventory where org_id_int = #{orgId}
</select>
</mapper>
\ No newline at end of file
......@@ -10,6 +10,7 @@
<artifactId>jyzb-boot</artifactId>
<version>1.0.0</version>
<name>jyzb-boot</name>
<packaging>war</packaging>
<dependencies>
......
......@@ -13,7 +13,8 @@ import java.util.Map;
@RabbitListener(queues = "TestDirectQueue") //监听的队列名称 TestDirectQueue
public class DirectReceiver {
@RabbitHandler
public void process(Map testMessage) {
System.out.println("DirectReceiver消费者收到消息 : " + testMessage.toString());
public void process(Object testMessage) {
System.out.println("DirectReceiver消费者收到消息 : " + testMessage);
}
}
\ No newline at end of file
server:
port: 8090
spring:
#配置rabbitMq 服务器
rabbitmq:
host: 192.168.3.188
port: 5672
username: root
password: 123456
#虚拟host 可以不设置,使用server默认host
virtual-host: /
artifactId=jyzb-mq-consumer
groupId=com.junmp.jyzb
version=1.0.0
com\junmp\jyzb\controller\SendMsgController.class
com\junmp\jyzb\config\DirectRabbitConfig.class
com\junmp\jyzb\MqConsumerApplication.class
com\junmp\jyzb\config\DirectReceiver.class
E:\vue_project\jyzb_platformV2\jyzb-mq\jyzb-mq-consumer\src\main\java\com\junmp\jyzb\config\DirectReceiver.java
E:\vue_project\jyzb_platformV2\jyzb-mq\jyzb-mq-consumer\src\main\java\com\junmp\jyzb\config\DirectRabbitConfig.java
E:\vue_project\jyzb_platformV2\jyzb-mq\jyzb-mq-consumer\src\main\java\com\junmp\jyzb\MqConsumerApplication.java
E:\vue_project\jyzb_platformV2\jyzb-mq\jyzb-mq-consumer\src\main\java\com\junmp\jyzb\controller\SendMsgController.java
server:
port: 9001
spring:
#配置rabbitMq 服务器
rabbitmq:
host: 192.168.3.188
port: 5672
username: root
password: 123456
#虚拟host 可以不设置,使用server默认host
virtual-host: /
artifactId=jyzb-mq-producer
groupId=com.junmp.jyzb
version=1.0.0
com\junmp\jyzb\controller\SendMsgController.class
com\junmp\jyzb\MqProducerApplication.class
com\junmp\jyzb\config\DirectRabbitConfig.class
E:\vue_project\jyzb_platformV2\jyzb-mq\jyzb-mq-producer\src\main\java\com\junmp\jyzb\controller\SendMsgController.java
E:\vue_project\jyzb_platformV2\jyzb-mq\jyzb-mq-producer\src\main\java\com\junmp\jyzb\MqProducerApplication.java
E:\vue_project\jyzb_platformV2\jyzb-mq\jyzb-mq-producer\src\main\java\com\junmp\jyzb\config\DirectRabbitConfig.java
......@@ -13,7 +13,7 @@
<module>jyzb-api</module>
<module>jyzb-boot</module>
<module>jyzb-biz</module>
<!-- <module>jyzb-process</module>-->
<module>jyzb-process</module>
<module>jyzb-common</module>
<module>jyzb-mq</module>
</modules>
......@@ -290,8 +290,10 @@
</dependency>
</dependencies>
</dependencyManagement>
<build>
<finalName>jyzb-app</finalName>
<pluginManagement>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论