Commit 638d755d by 李小惠

Merge remote-tracking branch 'origin/develop' into develop-lxh

parents a04d50c7 a0d51399
......@@ -61,4 +61,3 @@ Thumbs.db
/jyzb-boot/pom.xml
/.idea/encodings.xml
/jyzb-api/jyzb-api.iml
/jyzb-api/jyzb-api.iml
/jyzb-process/target
/jyzb-api/target/
/jyzb-biz/target/
##ignore this file##
/target/
.classpath
.project
/.settings/
##filter databfile、sln file##
*.mdb
*.ldb
*.sln
##class file##
*.com
*.class
*.dll
*.exe
*.o
*.so
# compression file
*.7z
*.dmg
*.gz
*.iso
*.jar
*.rar
*.tar
*.zip
*.via
*.tmp
*.err
# OS generated files #
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
Icon?
ehthumbs.db
Thumbs.db
/*/target/*
/.idea/misc.xml
/.idea/jyzb_platformV2.iml
/.idea/artifacts/jyzb3.xml
/jyzb-mq/jyzb-mq-consumer/target/classes/application.yml
/jyzb-mq/jyzb-mq-producer/target/classes/application.yml
/jyzb-mq/jyzb-mq-consumer/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
/jyzb-mq/jyzb-mq-consumer/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
/jyzb-mq/jyzb-mq-consumer/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
/jyzb-mq/jyzb-mq-consumer/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
/jyzb-mq/jyzb-mq-consumer/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
/jyzb-mq/jyzb-mq-producer/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
/jyzb-mq/jyzb-mq-producer/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
/jyzb-mq/jyzb-mq-producer/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
/jyzb-mq/jyzb-mq-consumer/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
/jyzb-mq/jyzb-mq-consumer/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
/jyzb-mq/jyzb-mq-consumer/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
/jyzb-mq/jyzb-mq-consumer/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
/jyzb-boot/src/main/resources/application.yml
/jyzb-boot/pom.xml
/.idea/encodings.xml
<<<<<<< HEAD
/jyzb-boot/src/main/resources/application.yml
=======
/jyzb-api/jyzb-api.iml
/jyzb-api/jyzb-api.iml
>>>>>>> develop
package com.junmp.jyzb.entity;
package com.junmp.jyzb.api.bean.dto;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@ApiModel(value = "com-junmp-jyzb-domain-SupplierEquipment")
import java.math.BigDecimal;
import java.util.Date;
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("base_supplier_type")
public class SupplierEquipment implements Serializable {
public class EquipmentSizeDto {
/**
* 供应商产品ID
* 装备号型ID
*/
@TableField(value = "id")
private String id;
/**
* 供应商代码
* 装备类型ID
*/
@TableField(value = "supplier_id")
private String supplierId;
private String typeId;
/**
* 产品代
* 号型
*/
@TableField(value = "type_id")
private String typeId;
private String code;
/**
* 状态,0:启用,1:停用
* 号型名称
*/
@TableField(value = "state")
private Integer state;
private String name;
/**
* 创建时间
*/
@TableField(value = "create_time")
private Date createTime;
/**
* 最后更新时间
* 更新时间
*/
@TableField(value = "update_time")
private Date updateTime;
/**
* 更新人ID
* 备注
*/
@TableField(value = "update_user")
private String updateUser;
private String note;
/**
* 价格
*/
private BigDecimal price;
/**
* 当前状态:0关闭/1启用
*/
private Integer state;
private static final long serialVersionUID = 1L;
}
package com.junmp.jyzb.api.bean.dto;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
@Data
public class EquipmentTreeDto {
private String name;
private String code;
private Integer type;
private List<EquipmentTreeDto> child = new ArrayList<>();
public void addChild(EquipmentTreeDto child) {
this.child.add(child);
}
}
package com.junmp.jyzb.api.bean.dto;
import lombok.Data;
@Data
public class EquipmentTypeDto {
private String id;
private String name;
private String unit;
private String unitType;
private Integer state;
private Integer type;
private String warrantyPeriod;
private String maintenancePeriod;
}
package com.junmp.jyzb.api.bean.dto;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import java.util.Date;
@Data
public class SupplierDto {
/**
* 供应商ID
*/
private String id;
/**
* 供应商名称
*/
private String name;
/**
* 供应商短码
*/
private String code;
/**
* 简称
*/
private String shortName;
/**
* 联系人
*/
private String contacts;
/**
* 联系电话
*/
private String phone;
private Date createTime;
private Date updateTime;
/**
* 创建人员
*/
private String createUser;
/**
* 更新人ID
*/
private String updateUser;
/**
* 1为启用,0为禁用
*/
private Integer state;
}
package com.junmp.jyzb.api.bean.req;
package com.junmp.jyzb.api.bean.query;
import com.baomidou.mybatisplus.annotation.TableField;
import com.junmp.v2.common.bean.request.BaseRequest;
......
package com.junmp.jyzb.api.bean.req;
package com.junmp.jyzb.api.bean.query;
import com.junmp.v2.common.bean.request.BaseRequest;
import io.swagger.annotations.ApiModelProperty;
......
package com.junmp.jyzb.api.bean.req;
package com.junmp.jyzb.api.bean.query;
import com.junmp.v2.common.bean.request.BaseRequest;
import com.junmp.v2.validator.api.validators.unique.TableUniqueValue;
......
package com.junmp.jyzb.api.bean.req;
package com.junmp.jyzb.api.bean.query;
import cn.hutool.core.date.DateTime;
import com.junmp.v2.common.bean.request.BaseRequest;
......
package com.junmp.jyzb.api.bean.req;
package com.junmp.jyzb.api.bean.query;
import com.junmp.v2.common.bean.request.ValidationApi;
import com.junmp.v2.validator.api.validators.unique.TableUniqueValue;
......
package com.junmp.jyzb.api.bean.req;
package com.junmp.jyzb.api.bean.query;
import com.junmp.v2.common.bean.request.BaseRequest;
import com.junmp.v2.common.bean.request.ValidationApi;
......
package com.junmp.jyzb.api.bean.req;
package com.junmp.jyzb.api.bean.query;
import com.junmp.v2.common.bean.request.BaseRequest;
import io.swagger.annotations.ApiModelProperty;
......
package com.junmp.jyzb.api.bean.req;
package com.junmp.jyzb.api.bean.query;
import com.baomidou.mybatisplus.annotation.TableField;
import com.junmp.v2.common.bean.request.BaseRequest;
......
package com.junmp.jyzb.api.bean.req.ProcessReq;
package com.junmp.jyzb.api.bean.query.ProcessReq;
import com.junmp.v2.common.bean.request.ValidationApi;
import com.junmp.v2.validator.api.validators.unique.TableUniqueValue;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
@Data
......
package com.junmp.jyzb.api.bean.req.ProcessReq;
package com.junmp.jyzb.api.bean.query.ProcessReq;
import lombok.Data;
import javax.validation.constraints.NotNull;
@Data
public class ProcessBaseReq {
/**********************任务相关的参数**********************/
......
package com.junmp.jyzb.api.bean.req.ProcessReq;
package com.junmp.jyzb.api.bean.query.ProcessReq;
import com.junmp.v2.common.bean.request.ValidationApi;
import lombok.Data;
......
package com.junmp.jyzb.api.bean.req;
package com.junmp.jyzb.api.bean.query;
import com.junmp.v2.common.bean.request.BaseRequest;
import com.junmp.v2.validator.api.validators.unique.TableUniqueValue;
......
package com.junmp.jyzb.api.bean.req;
package com.junmp.jyzb.api.bean.query;
import com.junmp.v2.common.bean.request.BaseRequest;
import com.junmp.v2.validator.api.validators.unique.TableUniqueValue;
......
package com.junmp.jyzb.api.bean.req;
package com.junmp.jyzb.api.bean.query;
import com.junmp.v2.common.bean.request.BaseRequest;
import io.swagger.annotations.ApiModelProperty;
......
package com.junmp.jyzb.api.bean.req;
package com.junmp.jyzb.api.bean.query;
import com.junmp.v2.common.bean.request.BaseRequest;
import lombok.Data;
......
package com.junmp.jyzb.api.bean.req;
package com.junmp.jyzb.api.bean.query;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
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.math.BigDecimal;
import java.util.Date;
@Data
@EqualsAndHashCode(callSuper = true)
public class EquipmentSizeReq extends BaseRequest {
public class QueryEquipmentSizeReq extends BaseRequest {
@NotNull(message = "装备号型主键不能为空", groups = {edit.class, delete.class, detail.class})
private String id;
......@@ -31,6 +25,4 @@ public class EquipmentSizeReq extends BaseRequest {
private BigDecimal price;
private Integer state;
private Integer epcType;
}
package com.junmp.jyzb.api.bean.query;
import com.junmp.v2.common.bean.request.BaseRequest;
import com.junmp.v2.common.bean.request.ValidationApi;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;
@Data
@EqualsAndHashCode(callSuper = true)
public class QueryEquipmentTypeReq extends BaseRequest {
private String id;
private String code;
}
package com.junmp.jyzb.api.bean.req;
package com.junmp.jyzb.api.bean.query;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.junmp.v2.common.bean.request.BaseRequest;
import lombok.Data;
import lombok.EqualsAndHashCode;
......@@ -12,10 +10,7 @@ import java.util.List;
@Data
@EqualsAndHashCode(callSuper = true)
public class SupplierReq extends BaseRequest {
@NotNull(message = "供应商主键不能为空", groups = {edit.class, delete.class, detail.class})
private String id;
public class QuerySupplierReq extends BaseRequest {
private String name;
......@@ -23,19 +18,5 @@ public class SupplierReq extends BaseRequest {
private String shortName;
private String contacts;
private String phone;
private Date createTime;
private String createUser;
private Date updateTime;
private String updateUser;
private Integer state;
private List<String> supplierList;
}
package com.junmp.jyzb.api.bean.req;
package com.junmp.jyzb.api.bean.query;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
......
package com.junmp.jyzb.api.bean.query;
import com.junmp.v2.common.bean.request.BaseRequest;
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 SupplierTypeReq extends BaseRequest {
@NotNull(message = "供应商关联主键不能为空", groups = {edit.class, delete.class, detail.class})
private String id;
private String supplierId;
private String typeId;
private String state;
}
package com.junmp.jyzb.api.bean.req;
package com.junmp.jyzb.api.bean.query;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
......
package com.junmp.jyzb.api.bean.req;
package com.junmp.jyzb.api.bean.query;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
......
package com.junmp.jyzb.api.bean.req;
import com.junmp.v2.common.bean.request.ValidationApi;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.List;
@Data
public class UpdateEquipmentSizeReq {
@NotBlank(message = "装备号型主键不能为空", groups = {ValidationApi.edit.class, ValidationApi.delete.class, ValidationApi.detail.class})
private String id;
private String typeId;
private String code;
private String name;
private String note;
private BigDecimal price;
@NotBlank(message = "状态值不能为空", groups = {ValidationApi.edit.class})
private Integer state;
}
package com.junmp.jyzb.api.bean.req;
import com.junmp.v2.common.bean.request.ValidationApi;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.List;
@Data
public class UpdateEquipmentTypeReq {
@NotNull(message = "装备主键不能为空", groups = {ValidationApi.edit.class, ValidationApi.delete.class, ValidationApi.detail.class})
private String id;
@NotNull(message = "状态不能为空", groups = { ValidationApi.updateStatus.class})
private String state;
private String unitType;
private String code;
private String name;
private String note;
@NotBlank(message = "上级不能为空", groups = {ValidationApi.edit.class, ValidationApi.add.class})
private String parentId;
@NotBlank(message = "上级集合不能为空", groups = {ValidationApi.edit.class, ValidationApi.add.class})
private String parentIds;
private int warrantyPeriod;
private int maintenancePeriod;
private int type;
private List<String> supplierList;
}
package com.junmp.jyzb.api.bean.req;
import com.junmp.v2.common.bean.request.ValidationApi;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;
@Data
public class UpdateSupplierReq {
@NotBlank(message = "供应商主键不能为空", groups = {ValidationApi.edit.class, ValidationApi.delete.class, ValidationApi.detail.class})
private String id;
private String name;
private String code;
private String shortName;
private String contacts;
private String phone;
@NotBlank(message = "状态不能为空", groups = {ValidationApi.updateStatus.class})
private Integer state;
}
package com.junmp.jyzb.api.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;
@Getter
public enum EquipmentTypeExceptionEnum implements IExceptionEnum {
/**
* 装备类别不存在
*/
EQUIPMENT_TYPE_NOT_EXIST(CommonConstant.DEFAULT_CORE_ERROR_CODE + JYZBConstant.JYZB_EXCEPTION_STEP_CODE + 12, "装备或类别不存在"),
/**
* 装备类别不存在
*/
EQUIPMENT_CHILDREN_EXIST(CommonConstant.DEFAULT_CORE_ERROR_CODE + JYZBConstant.JYZB_EXCEPTION_STEP_CODE + 13, "有多关联装备,无法删除"),
/**
* 装备不存在
*/
SUPPLIER_NOT_EXIST(CommonConstant.DEFAULT_USER_ERROR_CODE + JYZBConstant.JYZB_EXCEPTION_STEP_CODE + 13, "{}");
/**
* 错误编码
*/
private final Integer code;
/**
* 提示用户信息
*/
private final String message;
EquipmentTypeExceptionEnum(Integer code, String message) {
this.code = code;
this.message = message;
}
}
......@@ -12,10 +12,6 @@ public enum WarehouseAreaExceptionEnum implements IExceptionEnum {
*/
WAREHOUSEAREA_NOT_EXIST(CommonConstant.DEFAULT_USER_ERROR_CODE + JYZBConstant.JYZB_EXCEPTION_STEP_CODE + 12, "地区信息不存在"),
/**
* 产品信息不存在
*/
PRODUCT_SKU_NOT_EXIST(CommonConstant.DEFAULT_USER_ERROR_CODE + JYZBConstant.JYZB_EXCEPTION_STEP_CODE + 13, "号型不存在"),
/**
* 批次信息不存在
......
/**
* <pre>
*
* 描述:
* 版本:1.0.0
* 日期:2022/8/1 13:08
* 作者:ningzp@junmp.com.cn
* <br>修改记录
* <br>修改日期 修改人 修改内容
*
* </pre>
*/
package com.junmp.jyzb.api.exception.enums;
......@@ -20,6 +20,7 @@
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="jyzb-api" />
<orderEntry type="library" name="Maven: io.swagger:swagger-annotations:1.5.22" level="project" />
<orderEntry type="library" name="Maven: cn.hutool:hutool-all:5.6.3" level="project" />
<orderEntry type="library" name="Maven: org.projectlombok:lombok:1.18.20" level="project" />
......
package com.junmp.jyzb.controller;
import com.junmp.jyzb.Dto.CabinetDto;
import com.junmp.jyzb.api.bean.req.CabinetBoxReq;
import com.junmp.jyzb.api.bean.req.CabinetReq;
import com.junmp.jyzb.api.bean.query.CabinetBoxReq;
import com.junmp.jyzb.api.bean.query.CabinetReq;
import com.junmp.jyzb.entity.Cabinet;
import com.junmp.jyzb.entity.CabinetBox;
import com.junmp.jyzb.service.CabinetBoxService;
import com.junmp.jyzb.service.CabinetService;
import com.junmp.jyzb.service.PoliceFingerService;
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.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.ArrayList;
import java.util.List;
import java.util.Map;
......@@ -81,7 +74,12 @@ public class CabinetController {
return returnMsg;
}
@PostMapping("/GetCabinetByOrgId")
@ApiOperation("根据组织机构获取单警柜及箱号信息")
public ResponseResult getCabinetByOrgId(@RequestBody Map<String, Object> msg){
ResponseResult returnMsg = cabinetService.getCabinetByOrgId(msg);
return returnMsg;
}
@PostMapping("/AddCabinetInfo")
@ApiOperation("添加单警柜信息(新)")
......
package com.junmp.jyzb.controller;
import cn.hutool.core.util.StrUtil;
import com.junmp.jyzb.api.bean.req.CompanyReq;
import com.junmp.jyzb.api.bean.query.CompanyReq;
import com.junmp.jyzb.doc.CompanyDoc;
import com.junmp.jyzb.entity.Company;
import com.junmp.jyzb.service.CompanyService;
......
package com.junmp.jyzb.controller;
import com.junmp.jyzb.api.bean.req.EquipmentSizeReq;
import com.junmp.jyzb.api.bean.req.ProductReq;
import com.junmp.jyzb.api.bean.dto.EquipmentSizeDto;
import com.junmp.jyzb.api.bean.query.QueryEquipmentSizeReq;
import com.junmp.jyzb.api.bean.req.UpdateEquipmentSizeReq;
import com.junmp.jyzb.entity.EquipmentSize;
import com.junmp.jyzb.service.EquipmentSizeService;
import com.junmp.jyzb.service.WarehouseService;
import com.junmp.jyzb.utils.HttpStatus;
import com.junmp.jyzb.utils.ResponseResult;
import com.junmp.jyzb.utils.ReturnMsg;
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;
......@@ -19,9 +17,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@RestController
@Slf4j
......@@ -33,13 +29,13 @@ public class EquipmentSizeController {
@PostMapping("/AddSize")
@ApiOperation("添加号型信息")
public ApiRes<Boolean> addSize(@RequestBody @Validated(EquipmentSizeReq.add.class) EquipmentSizeReq req) {
public ApiRes<Boolean> addSize(@RequestBody @Validated(ValidationApi.add.class) UpdateEquipmentSizeReq req) {
return ApiRes.success(equipmentSizeService.addSize(req));
}
@PostMapping("/DeleteSize")
@ApiOperation("删除号型信息")
public ApiRes<Boolean> deleteSize(@RequestBody @Validated(EquipmentSizeReq.delete.class)EquipmentSizeReq req) {
public ApiRes<Boolean> deleteSize(@RequestBody @Validated(ValidationApi.delete.class) UpdateEquipmentSizeReq req) {
// ResponseResult returnMsg = equipmentSizeService.deleteSize(msg);
// return returnMsg;
return ApiRes.success(equipmentSizeService.deleteSize(req));
......@@ -47,33 +43,28 @@ public class EquipmentSizeController {
@PostMapping("/GetOneSize")
@ApiOperation("查询单个号型信息")
public ApiRes<EquipmentSize> getOneSize(@RequestBody EquipmentSizeReq req) {
public ApiRes<EquipmentSize> getOneSize(@RequestBody QueryEquipmentSizeReq req) {
//ResponseResult returnMsg =
return ApiRes.success(equipmentSizeService.getOneSize(req));
}
@PostMapping("/ShowSize")
@ApiOperation("根据装备类型查询号型")
public ApiRes<List<EquipmentSize>> getAllSize(@RequestBody EquipmentSizeReq req){
public ApiRes<List<EquipmentSizeDto>> getAllSize(@RequestBody QueryEquipmentSizeReq req){
return ApiRes.success(equipmentSizeService.getAllSize(req));
}
@PostMapping("/UpdateSize")
@ApiOperation("修改号型信息")
public ApiRes<Boolean> updateSize(@RequestBody @Validated(EquipmentSizeReq.edit.class) EquipmentSizeReq req) {
public ApiRes<Boolean> updateSize(@RequestBody @Validated(ValidationApi.edit.class) UpdateEquipmentSizeReq req) {
return ApiRes.success(equipmentSizeService.updateSize(req));
}
@PostMapping("/ChangeSizeState")
@ApiOperation("禁用/启用装备号型")
public ApiRes<Boolean> changeSizeState(@RequestBody @Validated(EquipmentSizeReq.edit.class) EquipmentSizeReq req) {
public ApiRes<Boolean> changeSizeState(@RequestBody @Validated(ValidationApi.edit.class) UpdateEquipmentSizeReq req) {
return ApiRes.success(equipmentSizeService.changeSizeState(req));
}
@PostMapping("/GetSizeDevelop")
@ApiOperation("获取号型表所有信息(非树表)")
public ApiRes<EquipmentSize> getSizeDevelop() {
ResponseResult returnMsg = equipmentSizeService.getSizeDevelop();
return null;
}
}
package com.junmp.jyzb.controller;
import com.junmp.jyzb.api.bean.dto.EquipmentTreeDto;
import com.junmp.jyzb.api.bean.dto.EquipmentTypeDto;
import com.junmp.jyzb.api.bean.query.QueryEquipmentTypeReq;
import com.junmp.jyzb.api.bean.req.UpdateEquipmentTypeReq;
import com.junmp.jyzb.service.EquipmentTypeService;
import com.junmp.jyzb.utils.HttpStatus;
import com.junmp.jyzb.utils.ResponseResult;
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.*;
import javax.annotation.Resource;
......@@ -23,66 +28,42 @@ public class EquipmentTypeController {
@PostMapping("/AddEquipment")
@ApiOperation("添加物资")
public ResponseResult addEquipment(@RequestBody Map<String,Object> msg) {
ResponseResult returnMsg = equipmentTypeService.addEquipment(msg);
return returnMsg;
public ApiRes<Boolean> addEquipment(@RequestBody @Validated(ValidationApi.add.class) UpdateEquipmentTypeReq req) {
return ApiRes.success(equipmentTypeService.addEquipment(req));
}
//添加装备时计算id
@PostMapping("/CalculationEquipmentId")
public ResponseResult calculationEquipmentId() {
ResponseResult returnMsg = equipmentTypeService.calculationEquipmentId();
return returnMsg;
}
@PostMapping("/DeleteEquipment")
@ApiOperation("删除装备信息")
public ResponseResult deleteEquipment(@RequestBody Map<String,Object> msg) {
ResponseResult returnMsg = equipmentTypeService.deleteEquipment(msg);
return returnMsg;
public ApiRes<Boolean> deleteEquipment(@RequestBody @Validated(ValidationApi.delete.class) UpdateEquipmentTypeReq req) {
return ApiRes.success(equipmentTypeService.deleteEquipment(req));
}
@PostMapping("/ChangeEquipmentState")
@ApiOperation("禁用/启用装备类型")
public ResponseResult changeEquipmentState(@RequestBody Map<String,Object> msg) {
ResponseResult returnMsg = equipmentTypeService.changeEquipmentState(msg);
return returnMsg;
public ApiRes<Boolean> changeEquipmentState(@RequestBody @Validated(ValidationApi.updateStatus.class) UpdateEquipmentTypeReq req) {
return ApiRes.success(equipmentTypeService.changeEquipmentState(req));
}
@PostMapping("/ShowEquipmentList")
@ApiOperation("查询类别列表")
public ApiRes<List<Map<String,Object>>> ShowEquipmentList() {
return ApiRes.success(equipmentTypeService.getEquipmentList());
public ApiRes<List<EquipmentTreeDto>> ShowEquipmentList(@RequestBody QueryEquipmentTypeReq req) {
return ApiRes.success(equipmentTypeService.getEquipmentList(req));
}
@PostMapping("/ShowAllEquipment")
@ApiOperation("查询整颗物资树")
public ResponseResult showAllEquipment() {
List<Map<String, Object>> equipmentList = equipmentTypeService.showAllEquipment();
// return new ResponseResult(HttpStatus.SUCCESS,"操作成功",equipmentList);
return null;
}
@PostMapping("/GetEquipmentDetail")
@ApiOperation("查询单个物资信息")
public ResponseResult getOneEquipment(@RequestBody Map<String, Object> msg) {
ResponseResult returnMsg = equipmentTypeService.getOneEquipment(msg);
return returnMsg;
public ApiRes<EquipmentTypeDto> getEquipment(@RequestBody QueryEquipmentTypeReq req) {
return ApiRes.success( equipmentTypeService.getEquipment(req));
}
@PostMapping("/UpdateEquipment")
@ApiOperation("修改物资信息")
public ResponseResult updateEquipment(@RequestBody Map<String,Object> msg) {
ResponseResult responseMsg = equipmentTypeService.updateEquipment(msg);
return responseMsg;
public ApiRes<Boolean> updateEquipment(@RequestBody @Validated(ValidationApi.edit.class) UpdateEquipmentTypeReq req) {
return ApiRes.success(equipmentTypeService.updateEquipment(req));
}
@PostMapping("/ShowEquipmentChildren")
@ApiOperation("根据类别查询装备")
public ResponseResult showEquipmentChildren(@RequestBody Map<String,Object> msg) {
ResponseResult responseMsg = equipmentTypeService.showEquipmentChildren(msg);
return responseMsg;
}
@PostMapping("/SetTypeParentIds")
@ApiOperation("填充装备类型的parent_ids字段")
......@@ -91,10 +72,4 @@ public class EquipmentTypeController {
return returnMsg;
}
@PostMapping("/GetEquipmentDevelop")
@ApiOperation("获取装备表所有信息(非树表)")
public ResponseResult getEquipmentDevelop() {
ResponseResult returnMsg = equipmentTypeService.getEquipmentDevelop();
return returnMsg;
}
}
package com.junmp.jyzb.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.junmp.jyzb.api.bean.dto.InventoryDto;
import com.junmp.jyzb.api.bean.dto.InventorySumDto;
import com.junmp.jyzb.api.bean.dto.ProductBatchDto;
import com.junmp.jyzb.api.bean.req.InventoryReq;
import com.junmp.jyzb.api.bean.req.InventorySumReq;
import com.junmp.jyzb.api.bean.req.ProductBatchReq;
import com.junmp.jyzb.api.bean.req.ProductReq;
import com.junmp.jyzb.entity.Inventory;
import com.junmp.jyzb.api.bean.query.InventoryReq;
import com.junmp.jyzb.api.bean.query.InventorySumReq;
import com.junmp.jyzb.entity.InventorySummary;
import com.junmp.jyzb.entity.Product;
import com.junmp.jyzb.service.InventoryService;
import com.junmp.jyzb.service.InventorySummaryService;
import com.junmp.jyzb.utils.ResponseResult;
......
package com.junmp.jyzb.controller;
import cn.hutool.core.util.ObjectUtil;
import com.junmp.jyzb.api.bean.req.CabinetReq;
import com.junmp.jyzb.api.bean.req.PolicemanReq;
import com.junmp.jyzb.api.bean.query.CabinetReq;
import com.junmp.jyzb.api.bean.query.PolicemanReq;
import com.junmp.jyzb.entity.Policeman;
import com.junmp.jyzb.service.PolicemanService;
import com.junmp.jyzb.utils.ResponseResult;
......
package com.junmp.jyzb.controller;
import com.junmp.jyzb.api.bean.req.PolicemanFingerReq;
import com.junmp.jyzb.api.bean.query.PolicemanFingerReq;
import com.junmp.jyzb.doc.PolicemanFingerDoc;
import com.junmp.jyzb.entity.PoliceFinger;
import com.junmp.jyzb.service.PoliceFingerService;
......
......@@ -5,7 +5,7 @@ import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.junmp.jyzb.api.bean.dto.ProductBatchDto;
import com.junmp.jyzb.api.bean.dto.ProductProcessDto;
import com.junmp.jyzb.api.bean.req.ProductBatchReq;
import com.junmp.jyzb.api.bean.query.ProductBatchReq;
import com.junmp.jyzb.api.exception.enums.ProductExceptionEnum;
import com.junmp.jyzb.api.util.GenCodeUtil;
import com.junmp.jyzb.doc.ProductBatchDoc;
......
package com.junmp.jyzb.controller;
import com.junmp.jyzb.api.bean.req.ProductReq;
import com.junmp.jyzb.api.bean.query.ProductReq;
import com.junmp.jyzb.doc.ProductDoc;
import com.junmp.jyzb.entity.Product;
import com.junmp.jyzb.service.ProductService;
......
package com.junmp.jyzb.controller;
import cn.hutool.core.util.ObjectUtil;
import com.junmp.jyzb.api.bean.req.ProductSkuReq;
import com.junmp.jyzb.api.bean.query.ProductSkuReq;
import com.junmp.jyzb.api.bean.vo.ProductSkuVo;
import com.junmp.jyzb.doc.ProductSkuDoc;
import com.junmp.jyzb.entity.ProductSku;
......
......@@ -6,7 +6,7 @@ import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.junmp.jyzb.api.bean.dto.ProductTagDto;
import com.junmp.jyzb.api.bean.req.ProductTagReq;
import com.junmp.jyzb.api.bean.query.ProductTagReq;
import com.junmp.jyzb.api.bean.vo.TagInfoVo;
import com.junmp.jyzb.api.exception.enums.ProductExceptionEnum;
import com.junmp.jyzb.doc.ProductTagDoc;
......
package com.junmp.jyzb.controller;
import com.junmp.jyzb.api.bean.req.OrgUpdateReq;
import com.junmp.jyzb.service.PubOrgService;
import com.junmp.jyzb.utils.ResponseResult;
import com.junmp.v2.common.bean.response.ApiRes;
......@@ -27,27 +26,9 @@ public class PubOrgController {
@PostMapping("/ShowPubOrgList")
@ApiOperation("查询组织机构列表_简化版")
public ApiRes<List<Map<String,Object>>> ShowEquipmentList(@RequestBody Map<String, Object> orgId) {
//传入当前的组织机构id,展示所有本级及下级的
//ResponseResult returnMsg = pubOrgService.showPubOrgList(orgId);
return ApiRes.success(pubOrgService.showPubOrgList(orgId));
}
// @PostMapping("/ChangeOrgState")
// @ApiOperation("改变组织机构状态信息")
// public ResponseResult changeOrgState(@RequestBody OrgUpdateReq req) {
// //传入当前的组织机构id,展示所有本级及下级的
// ResponseResult returnMsg = pubOrgService.changeOrgState(msg);
// return returnMsg;
// }
// @PostMapping("/ShowAllPubOrgList")
// @ApiOperation("查询组织机构列表(含禁用)")
// public ResponseResult showAllPubOrgList(@RequestBody Map<String, Object> orgId) {
// //传入当前的组织机构id,展示所有本级及下级的
// ResponseResult returnMsg = pubOrgService.showAllPubOrgList(orgId);
// return returnMsg;
// }
@PostMapping("/ShowPubOrgListOld")
@ApiOperation("查询组织机构列表_完整版")
public ResponseResult showPubOrgListOld(@RequestBody Map<String, Object> orgId) {
......
......@@ -3,7 +3,7 @@ package com.junmp.jyzb.controller;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.toolkit.AES;
import com.junmp.jyzb.api.bean.req.DbAccessReq;
import com.junmp.jyzb.api.bean.query.DbAccessReq;
import com.junmp.jyzb.api.bean.vo.AuthAccessVo;
import com.junmp.v2.common.bean.response.ApiRes;
import com.junmp.v2.common.exception.enums.DefaultBizExceptionEnum;
......
package com.junmp.jyzb.controller;
import com.junmp.jyzb.api.bean.req.ProductReq;
import com.junmp.jyzb.api.bean.req.SupplierReq;
import com.junmp.jyzb.entity.Product;
import com.junmp.jyzb.api.bean.dto.SupplierDto;
import com.junmp.jyzb.api.bean.query.QuerySupplierReq;
import com.junmp.jyzb.api.bean.req.UpdateSupplierReq;
import com.junmp.jyzb.entity.Supplier;
import com.junmp.jyzb.service.SupplierService;
import com.junmp.jyzb.service.WarehouseService;
import com.junmp.jyzb.utils.HttpStatus;
import com.junmp.jyzb.utils.RequestParam;
import com.junmp.jyzb.utils.ResponseResult;
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;
......@@ -20,9 +17,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@RestController
@Slf4j
......@@ -34,39 +29,32 @@ public class SupplierController {
@PostMapping("/AddSupplier")
@ApiOperation("添加供应商")
public ApiRes<Boolean> addSupplier(@RequestBody @Validated(SupplierReq.add.class) SupplierReq req) {
return ApiRes.success(supplierService.addSupplier(req));
public ApiRes<Boolean> AddSupplier(@RequestBody @Validated(ValidationApi.add.class) UpdateSupplierReq req) {
return ApiRes.success(supplierService.AddSupplier(req));
}
@PostMapping("/DeleteSupplier")
@ApiOperation("删除供应商信息")
public ApiRes<Boolean> deleteSupplier(@RequestBody @Validated(SupplierReq.delete.class)SupplierReq req) {
return ApiRes.success(supplierService.deleteSupplier(req));
public ApiRes<Boolean> DeleteSupplier(@RequestBody @Validated(ValidationApi.delete.class) UpdateSupplierReq req) {
return ApiRes.success(supplierService.DeleteSupplier(req));
}
@PostMapping("/ShowSupplier")
@ApiOperation("查询供应商列表")
public ApiRes<List<Supplier>> showSupplier(SupplierReq req){
return ApiRes.success(supplierService.showSupplier(req));
public ApiRes<List<SupplierDto>> ShowSupplier(QuerySupplierReq req){
return ApiRes.success(supplierService.ShowSupplier(req));
}
// @PostMapping("/GetOneSupplier")
// @ApiOperation("查询单个供应商信息")
// public ResponseResult getOneSupplier(@RequestBody Map<String, Object> msg) {
// String supplierId = msg.get("supplierId").toString();
// Map<String, Object> supplierMsg = supplierService.getOneSupplier(supplierId);
// return new ResponseResult(HttpStatus.SUCCESS,"操作成功",supplierMsg);
// }
@PostMapping("/UpdateSupplier")
@ApiOperation("修改供应商信息")
public ApiRes<Boolean> updateSupplier(@RequestBody @Validated(SupplierReq.edit.class) SupplierReq req) {
return ApiRes.success(supplierService.updateSupplier(req));
public ApiRes<Boolean> updateSupplier(@RequestBody @Validated(QuerySupplierReq.edit.class) UpdateSupplierReq req) {
return ApiRes.success(supplierService.UpdateSupplier(req));
}
@PostMapping("/ChangeSupplierState")
@ApiOperation("修改供应商状态")
public ApiRes<Boolean> changeSupplierState(@RequestBody @Validated(SupplierReq.edit.class) SupplierReq req) {
return ApiRes.success(supplierService.changeSupplierState(req));
public ApiRes<Boolean> changeSupplierState(@RequestBody @Validated(QuerySupplierReq.edit.class) UpdateSupplierReq req) {
return ApiRes.success(supplierService.ChangeSupplierState(req));
}
}
package com.junmp.jyzb.controller;
import com.junmp.jyzb.api.bean.req.*;
import com.junmp.jyzb.api.bean.query.ShelfReq;
import com.junmp.jyzb.api.bean.query.WarehouseAreaReq;
import com.junmp.jyzb.api.bean.query.WarehouseReq;
import com.junmp.jyzb.entity.*;
import com.junmp.jyzb.service.*;
import com.junmp.v2.common.bean.response.ApiRes;
......
package com.junmp.jyzb.doc;
import com.junmp.jyzb.api.bean.req.CompanyReq;
import com.junmp.jyzb.api.bean.query.CompanyReq;
import com.junmp.jyzb.entity.Company;
import com.junmp.v2.common.bean.response.ApiRes;
import com.junmp.v2.db.api.page.PageResult;
......
package com.junmp.jyzb.doc;
import com.junmp.jyzb.api.bean.req.PolicemanFingerReq;
import com.junmp.jyzb.api.bean.query.PolicemanFingerReq;
import com.junmp.jyzb.entity.PoliceFinger;
import com.junmp.v2.common.bean.response.ApiRes;
import com.junmp.v2.db.api.page.PageResult;
......
......@@ -2,7 +2,7 @@ package com.junmp.jyzb.doc;
import com.junmp.jyzb.api.bean.dto.ProductBatchDto;
import com.junmp.jyzb.api.bean.dto.ProductProcessDto;
import com.junmp.jyzb.api.bean.req.ProductBatchReq;
import com.junmp.jyzb.api.bean.query.ProductBatchReq;
import com.junmp.v2.common.bean.response.ApiRes;
import com.junmp.v2.db.api.page.PageResult;
import io.swagger.annotations.Api;
......
package com.junmp.jyzb.doc;
import com.junmp.jyzb.api.bean.req.ProductReq;
import com.junmp.jyzb.api.bean.query.ProductReq;
import com.junmp.jyzb.entity.Product;
import com.junmp.v2.common.bean.response.ApiRes;
import com.junmp.v2.db.api.page.PageResult;
......
package com.junmp.jyzb.doc;
import com.junmp.jyzb.api.bean.req.ProductSkuReq;
import com.junmp.jyzb.api.bean.query.ProductSkuReq;
import com.junmp.jyzb.api.bean.vo.ProductSkuVo;
import com.junmp.jyzb.entity.ProductSku;
import com.junmp.v2.common.bean.response.ApiRes;
......
package com.junmp.jyzb.doc;
import com.junmp.jyzb.api.bean.req.ProductTagReq;
import com.junmp.jyzb.api.bean.query.ProductTagReq;
import com.junmp.jyzb.api.bean.vo.TagInfoVo;
import com.junmp.jyzb.entity.ProductTag;
import com.junmp.v2.common.bean.response.ApiRes;
......
......@@ -20,13 +20,12 @@ public class EquipmentSize implements Serializable {
* 装备号型ID
*/
@ApiModelProperty(value = "装备号型ID")
@TableId(value = "id", type = IdType.ASSIGN_UUID)
@TableField("id")
private String id;
/**
* 装备类型ID
*/
@ApiModelProperty(value = "装备类型ID")
@TableField("type_id")
private String typeId;
......@@ -34,13 +33,11 @@ public class EquipmentSize implements Serializable {
/**
* 号型码
*/
@ApiModelProperty(value = "号型码")
private String code;
/**
* 号型名称
*/
@ApiModelProperty(value = "号型名称")
private String name;
/**
......
package com.junmp.jyzb.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
......@@ -64,20 +61,14 @@ public class EquipmentType implements Serializable {
@TableField("parent_ids")
private String parentIds;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间")
@TableField("create_time")
@TableField(fill = FieldFill.INSERT_UPDATE, value = "create_time")
private Date createTime;
/**
* 最后更新时间
*/
@ApiModelProperty(value = "最后更新时间")
@TableField("update_time")
@TableField(fill = FieldFill.INSERT_UPDATE, value = "update_time")
private Date updateTime;
/**
* 当前状态:0关闭/1启用
*/
......@@ -95,6 +86,11 @@ public class EquipmentType implements Serializable {
*/
@ApiModelProperty(value = "原id")
private String guid;
/**
* 类别下的最大id
*/
@TableField(value = "max_code")
private Integer maxCode;
/**
* 类型,0类别,1装备
......
......@@ -9,10 +9,7 @@ import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@ApiModel(value = "com-junmp-jyzb-domain-Supplier")
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("base_supplier")
public class Supplier implements Serializable {
/**
......@@ -51,23 +48,19 @@ public class Supplier implements Serializable {
@TableField(value = "phone")
private String phone;
/**
* 创建时间
*/
@TableField(value = "create_time")
@TableField(fill = FieldFill.INSERT_UPDATE, value = "create_time")
private Date createTime;
@TableField(fill = FieldFill.INSERT_UPDATE, value = "update_time")
private Date updateTime;
/**
* 创建人员
*/
@TableField(value = "create_time", fill = FieldFill.INSERT)
private String createUser;
/**
* 最后更新时间
*/
@TableField(value = "update_time", fill = FieldFill.UPDATE)
private Date updateTime;
/**
* 更新人ID
......
package com.junmp.jyzb.entity;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
......@@ -40,16 +41,10 @@ public class SupplierType implements Serializable {
@TableField(value = "state")
private Integer state;
/**
* 创建时间
*/
@TableField(value = "create_time")
@TableField(fill = FieldFill.INSERT_UPDATE, value = "create_time")
private Date createTime;
/**
* 最后更新时间
*/
@TableField(value = "update_time")
@TableField(fill = FieldFill.INSERT_UPDATE, value = "update_time")
private Date updateTime;
/**
......
......@@ -46,4 +46,8 @@ public interface CabinetMapper extends BaseMapper<Cabinet> {
void setCabinetOutSumInventory(@Param("updateId") String id);
void setCabinetPriceInventory(@Param("updateId") String id);
List<Map<String, Object>> getCabinetByOrgId(String orgId);
String getOrgByCabinet(String cabinetId);
}
\ No newline at end of file
......@@ -10,21 +10,4 @@ import java.util.Map;
@Mapper
public interface EquipmentSizeMapper extends BaseMapper<EquipmentSize> {
public int addSize(EquipmentSize size);
Map<String, Object> getOneSize(String id);
void deleteSize(String id);
void updateSize(EquipmentSize size);
List<String> getAllSizeId(String orgId);
void changeSizeState(EquipmentSize size);
List<String> getSizeByCode(String code);
//String getCodeById(String id);
List<Map<String, Object>> getSizeDevelop();
}
\ No newline at end of file
......@@ -11,46 +11,11 @@ import java.util.Map;
@Mapper
public interface EquipmentTypeMapper extends BaseMapper<EquipmentType> {
void addEquipment(EquipmentType equipmentType);
//Map<String, Object> getOneEquipment(String id);
void deleteEquipment(String id);
void updateEquipment(EquipmentType msg);
List<String> getAllEquipmentId(String orgId);
void changeEquipmentState(EquipmentType msg);
List<EquipmentType> selectAllEquipment();
List<Map<String,Object>> getAll();
void addData(List<Map<String, Object>> resultList);
String getIdByParentId(String parentId);
//添加商品的供应商
void addSupplier(@Param("uuid") String uuid,@Param("equipmentType") EquipmentType equipmentType, @Param("supplierList") List<String> supplierList);
void setCalculationId(@Param("numStr") String numStr,@Param("parentId") String parentId);
String getOneEquipmentId(String numStr);
void deleteSupplier(String id);
Map<String,Object> getOneEquipment(EquipmentType equipment);
List<Map<String, Object>> getSupplierByTypeId(EquipmentType equipment);
List<String> getLowestTypeId();
List<Map<String, Object>> getChildByParentId(String equipmentId);
void wipeParentIdsData();
void setTypeParentIds();
List<Map<String, Object>> getEquipmentDevelop();
}
\ No newline at end of file
......@@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.junmp.jyzb.api.bean.dto.ProductBatchDto;
import com.junmp.jyzb.api.bean.dto.ProductProcessDto;
import com.junmp.jyzb.api.bean.req.ProductBatchReq;
import com.junmp.jyzb.api.bean.query.ProductBatchReq;
import com.junmp.jyzb.entity.ProductBatch;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
......
package com.junmp.jyzb.mapper;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface SupplierEquipmentMapper {
}
\ No newline at end of file
......@@ -12,20 +12,4 @@ import java.util.Map;
@Mapper
public interface SupplierMapper extends BaseMapper<Supplier> {
public int addSupplier(Supplier supplier);
// Map<String, Object> getOneSupplier(String id,Object SelectName,Object SelectCode);
Map<String, Object> getOneSupplier(@Param("code") String code, @Param("SelectName") Object SelectName, @Param("SelectCode") Object SelectCode);
//Map<String, Object> getOneSupplier(@Param("id") String id);
void deleteSupplier(String id);
void updateSupplier(Supplier supplier);
List<String> getAllSupplierId();
void changeSupplierState(Supplier supplier);
List<Map<String, Object>> getAllSupplier(@Param("name") String name, @Param("shortName") String shortName);
}
\ No newline at end of file
package com.junmp.jyzb.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.junmp.jyzb.entity.Supplier;
import com.junmp.jyzb.entity.SupplierType;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface SupplierTypeMapper {
public interface SupplierTypeMapper extends BaseMapper<SupplierType> {
}
\ No newline at end of file
package com.junmp.jyzb.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.junmp.jyzb.api.bean.req.CabinetReq;
import com.junmp.jyzb.api.bean.query.CabinetReq;
import com.junmp.jyzb.entity.CabinetBox;
import java.util.List;
......
......@@ -2,8 +2,8 @@ package com.junmp.jyzb.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.junmp.jyzb.Dto.CabinetDto;
import com.junmp.jyzb.api.bean.req.CabinetBoxReq;
import com.junmp.jyzb.api.bean.req.CabinetReq;
import com.junmp.jyzb.api.bean.query.CabinetBoxReq;
import com.junmp.jyzb.api.bean.query.CabinetReq;
import com.junmp.jyzb.entity.Cabinet;
import com.junmp.jyzb.utils.ResponseResult;
......@@ -75,4 +75,11 @@ public interface CabinetService extends IService<Cabinet> {
* @return
*/
boolean boxBindPolice(CabinetBoxReq req);
/**
* 根据组织机构获取单警柜及箱号信息
* @param msg
* @return
*/
ResponseResult getCabinetByOrgId(Map<String, Object> msg);
}
package com.junmp.jyzb.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.junmp.jyzb.api.bean.req.CompanyReq;
import com.junmp.jyzb.api.bean.query.CompanyReq;
import com.junmp.jyzb.entity.Company;
import com.junmp.v2.db.api.page.PageResult;
......
package com.junmp.jyzb.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.junmp.jyzb.api.bean.req.EquipmentSizeReq;
import com.junmp.jyzb.api.bean.dto.EquipmentSizeDto;
import com.junmp.jyzb.api.bean.query.QueryEquipmentSizeReq;
import com.junmp.jyzb.api.bean.req.UpdateEquipmentSizeReq;
import com.junmp.jyzb.entity.EquipmentSize;
import com.junmp.jyzb.entity.Product;
import com.junmp.jyzb.utils.ResponseResult;
import java.util.List;
import java.util.Map;
public interface EquipmentSizeService extends IService<EquipmentSize> {
boolean addSize(EquipmentSizeReq req);
Boolean addSize(UpdateEquipmentSizeReq req);
EquipmentSize getOneSize(EquipmentSizeReq req);
EquipmentSize getOneSize(QueryEquipmentSizeReq req);
boolean deleteSize(EquipmentSizeReq req);
Boolean deleteSize(UpdateEquipmentSizeReq req);
boolean updateSize(EquipmentSizeReq req);
Boolean updateSize(UpdateEquipmentSizeReq req);
ResponseResult addSize(Map<String, Object> msg);
Boolean changeSizeState(UpdateEquipmentSizeReq req);
ResponseResult getOneSize(Map<String, Object> msg);
ResponseResult deleteSize(Map<String, Object> msg);
ResponseResult updateSize(Map<String, Object> msg);
List<String> getAllSizeId(Map<String, Object> orgId);
boolean changeSizeState(EquipmentSizeReq req);
List<EquipmentSize> getAllSize(EquipmentSizeReq req);
ResponseResult changeSizeState(Map<String, Object> msg);
ResponseResult getAllSize(Map<String, Object> msg);
ResponseResult getSizeDevelop();
List<EquipmentSizeDto> getAllSize(QueryEquipmentSizeReq req);
}
package com.junmp.jyzb.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.junmp.jyzb.entity.EquipmentSize;
import com.junmp.jyzb.api.bean.dto.EquipmentTreeDto;
import com.junmp.jyzb.api.bean.dto.EquipmentTypeDto;
import com.junmp.jyzb.api.bean.query.QueryEquipmentTypeReq;
import com.junmp.jyzb.api.bean.req.UpdateEquipmentTypeReq;
import com.junmp.jyzb.entity.EquipmentType;
import com.junmp.jyzb.utils.ResponseResult;
......@@ -10,25 +13,20 @@ import java.util.Map;
public interface EquipmentTypeService extends IService<EquipmentType> {
ResponseResult addEquipment(Map<String, Object> msg);
Boolean addEquipment(UpdateEquipmentTypeReq req );
ResponseResult calculationEquipmentId();
ResponseResult deleteEquipment(Map<String, Object> msg);
Boolean deleteEquipment(UpdateEquipmentTypeReq req);
ResponseResult updateEquipment(Map<String, Object> msg);
Boolean updateEquipment(UpdateEquipmentTypeReq msg);
ResponseResult changeEquipmentState(Map<String, Object> msg);
Boolean changeEquipmentState(UpdateEquipmentTypeReq req);
List<Map<String,Object>> getEquipmentList();
List<EquipmentTreeDto> getEquipmentList(QueryEquipmentTypeReq req);
ResponseResult getOneEquipment(Map<String, Object> msg);
EquipmentTypeDto getEquipment(QueryEquipmentTypeReq req );
ResponseResult showEquipmentChildren(Map<String, Object> msg);
ResponseResult setTypeParentIds();
List<Map<String, Object>> showAllEquipment();
ResponseResult getEquipmentDevelop();
}
......@@ -2,10 +2,9 @@ package com.junmp.jyzb.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.junmp.jyzb.api.bean.dto.InventoryDto;
import com.junmp.jyzb.api.bean.req.InventoryReq;
import com.junmp.jyzb.api.bean.query.InventoryReq;
import com.junmp.jyzb.entity.Inventory;
import com.junmp.jyzb.entity.ProductSku;
import com.junmp.jyzb.utils.ResponseResult;
import java.util.Map;
......
package com.junmp.jyzb.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.junmp.jyzb.api.bean.dto.InventorySumDto;
import com.junmp.jyzb.api.bean.req.InventorySumReq;
import com.junmp.jyzb.entity.Inventory;
import com.junmp.jyzb.api.bean.query.InventorySumReq;
import com.junmp.jyzb.entity.InventorySummary;
import com.junmp.jyzb.utils.ResponseResult;
import com.junmp.v2.db.api.page.PageResult;
public interface InventorySummaryService extends IService<InventorySummary> {
......
package com.junmp.jyzb.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.junmp.jyzb.api.bean.req.PolicemanFingerReq;
import com.junmp.jyzb.api.bean.query.PolicemanFingerReq;
import com.junmp.jyzb.entity.PoliceFinger;
import com.junmp.v2.db.api.page.PageResult;
......
package com.junmp.jyzb.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.junmp.jyzb.api.bean.req.CabinetReq;
import com.junmp.jyzb.api.bean.req.PolicemanReq;
import com.junmp.jyzb.api.bean.query.CabinetReq;
import com.junmp.jyzb.api.bean.query.PolicemanReq;
import com.junmp.jyzb.entity.PoliceFinger;
import com.junmp.jyzb.entity.Policeman;
import com.junmp.jyzb.utils.ResponseResult;
......
......@@ -3,7 +3,7 @@ package com.junmp.jyzb.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.junmp.jyzb.api.bean.dto.ProductBatchDto;
import com.junmp.jyzb.api.bean.dto.ProductProcessDto;
import com.junmp.jyzb.api.bean.req.ProductBatchReq;
import com.junmp.jyzb.api.bean.query.ProductBatchReq;
import com.junmp.jyzb.entity.ProductBatch;
import com.junmp.v2.db.api.page.PageResult;
......
package com.junmp.jyzb.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.junmp.jyzb.api.bean.req.ProductReq;
import com.junmp.jyzb.api.bean.query.ProductReq;
import com.junmp.jyzb.entity.Product;
import com.junmp.v2.db.api.page.PageResult;
......
package com.junmp.jyzb.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.junmp.jyzb.api.bean.req.ProductSkuReq;
import com.junmp.jyzb.api.bean.query.ProductSkuReq;
import com.junmp.jyzb.entity.ProductSku;
import com.junmp.v2.db.api.page.PageResult;
......
......@@ -2,7 +2,7 @@ package com.junmp.jyzb.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.junmp.jyzb.api.bean.dto.ProductTagDto;
import com.junmp.jyzb.api.bean.req.ProductTagReq;
import com.junmp.jyzb.api.bean.query.ProductTagReq;
import com.junmp.jyzb.entity.ProductTag;
import com.junmp.v2.db.api.page.PageResult;
......
package com.junmp.jyzb.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.junmp.jyzb.api.bean.req.OrgUpdateReq;
import com.junmp.jyzb.entity.Inventory;
import com.junmp.jyzb.api.bean.query.OrgUpdateReq;
import com.junmp.jyzb.utils.ResponseResult;
import java.util.List;
......
package com.junmp.jyzb.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.junmp.jyzb.api.bean.req.ShelfReq;
import com.junmp.jyzb.api.bean.query.ShelfReq;
import com.junmp.jyzb.entity.Shelf;
import java.util.List;
......
package com.junmp.jyzb.service;
public interface SupplierEquipmentService{
}
package com.junmp.jyzb.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.junmp.jyzb.api.bean.req.ProductReq;
import com.junmp.jyzb.api.bean.req.SupplierReq;
import com.junmp.jyzb.entity.Product;
import com.junmp.jyzb.api.bean.dto.SupplierDto;
import com.junmp.jyzb.api.bean.query.QuerySupplierReq;
import com.junmp.jyzb.api.bean.req.UpdateSupplierReq;
import com.junmp.jyzb.entity.Supplier;
import com.junmp.jyzb.utils.ResponseResult;
import java.util.List;
import java.util.Map;
public interface SupplierService extends IService<Supplier> {
/**
......@@ -16,37 +14,42 @@ public interface SupplierService extends IService<Supplier> {
*
* @param req
*/
boolean addSupplier(SupplierReq req);
boolean AddSupplier(UpdateSupplierReq req);
Map<String,Object> getOneSupplier(String id,Object name,Object code);
/**
* @Author: Zhaojw
* @Description: 检查供应商是否存在
* @DateTime: 2023/7/29 10:49
* @Params:
* @Return
*/
public List<String> CheckSupplierList(List<String> req);
/**
* 删除
*
* @param req
*/
boolean deleteSupplier(SupplierReq req);
boolean DeleteSupplier(UpdateSupplierReq req);
/**
* 编辑
*
* @param req
*/
boolean updateSupplier(SupplierReq req);
List<String> getAllSupplierId();
boolean UpdateSupplier(UpdateSupplierReq req);
/**
* 列表信息
*
* @param req
*/
List<Supplier> showSupplier(SupplierReq req);
List<SupplierDto> ShowSupplier(QuerySupplierReq req);
/**
* 更改状态
*
* @param req
*/
boolean changeSupplierState(SupplierReq req);
Boolean ChangeSupplierState(UpdateSupplierReq req);
}
package com.junmp.jyzb.service;
public interface SupplierTypeService{
import com.baomidou.mybatisplus.extension.service.IService;
import com.junmp.jyzb.entity.SupplierType;
public interface SupplierTypeService extends IService<SupplierType> {
}
package com.junmp.jyzb.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.junmp.jyzb.api.bean.req.WarehouseAreaReq;
import com.junmp.jyzb.entity.Warehouse;
import com.junmp.jyzb.api.bean.query.WarehouseAreaReq;
import com.junmp.jyzb.entity.WarehouseArea;
import java.util.List;
......
package com.junmp.jyzb.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.junmp.jyzb.api.bean.req.WarehouseReq;
import com.junmp.jyzb.api.bean.query.WarehouseReq;
import com.junmp.jyzb.entity.Warehouse;
import com.junmp.jyzb.utils.ResponseResult;
......
......@@ -3,23 +3,16 @@ 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.CabinetReq;
import com.junmp.jyzb.entity.Cabinet;
import com.junmp.jyzb.api.bean.query.CabinetReq;
import com.junmp.jyzb.entity.CabinetBox;
import com.junmp.jyzb.mapper.CabinetBoxMapper;
import com.junmp.jyzb.mapper.CabinetMapper;
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 extends ServiceImpl<CabinetBoxMapper, CabinetBox> implements CabinetBoxService {
......
......@@ -4,8 +4,8 @@ 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.Dto.CabinetDto;
import com.junmp.jyzb.api.bean.req.CabinetBoxReq;
import com.junmp.jyzb.api.bean.req.CabinetReq;
import com.junmp.jyzb.api.bean.query.CabinetBoxReq;
import com.junmp.jyzb.api.bean.query.CabinetReq;
import com.junmp.jyzb.entity.Cabinet;
import com.junmp.jyzb.entity.CabinetBox;
import com.junmp.jyzb.entity.Policeman;
......@@ -254,74 +254,7 @@ public class CabinetServiceImpl extends ServiceImpl<CabinetMapper, Cabinet> impl
List<Map<String, Object>> allCabinet = new ArrayList<>();
// // 构建 Redis 缓存键
// String redisKey = REDIS_CABINET;
// // 从 Redis 中获取数据
// List<Map<String, Object>> cachedData = redisUtils.findCachedData(redisKey);
// List<Map<String, Object>> cabinetList = new ArrayList<>();
// if (cachedData != null) {
// cabinetList = cachedData;
// }else {
// cabinetList = cabinetMapper.getAllCabinet();
// redisUtils.set(redisKey, cabinetList);
// }
// // 构建 Redis 缓存键
// String redisKey = REDIS_CABINET + msg.get("IncludeLowerLevel").toString() +'_'+ msg.get("orgId").toString();
// // 从 Redis 中获取数据
// List<Map<String, Object>> cachedData = redisUtils.findCachedData(redisKey);
// if (cachedData != null) {
// //将Long类型的数据转化为Date
//// for (Map<String,Object> one:cachedData){
//// Long dataMsg = (Long) one.get("updateTime");
//// one.put("updateTime", redisUtils.getDate(dataMsg));
//// allCabinet.add(one);
//// }
// return new ResponseResult(HttpStatus.SUCCESS,ReturnMsg.PASS,cachedData);
// }
//如果组织机构是浙江省公安厅
// if (msg.get("orgId").toString().equals("1369509498032808905") && msg.get("IncludeLowerLevel").toString().equals("true")) {
// allCabinet = cabinetMapper.getAllCabinet();
// //将查询结果存入 Redis 中
// //redisUtils.set(redisKey, allCabinet);
// return new ResponseResult(HttpStatus.SUCCESS, ReturnMsg.PASS, allCabinet);
// }
//获取该组织机构下所有仓库的id
// List<String> allOrgId = getAllOrgId(msg);
// if (allOrgId.isEmpty()) {
// return new ResponseResult(HttpStatus.ERROR, ReturnMsg.ERROR, "未查询到相关信息");
// }
//
// allCabinet = getAllCabinetByOrg(msg, allOrgId);
//List<Map<String, Object>> selectedCabinets = new ArrayList<>(); // 存放匹配到的柜子信息的列表
// 遍历allOrgId
// for (String orgId : allOrgId) {
// // 遍历allCabinet中的每个柜子信息
// for (Map<String, Object> cabinet : cabinetList) {
// // 检查柜子信息中的orgId是否与当前遍历的orgId匹配
// if (cabinet.containsKey("orgId") && cabinet.get("orgId").equals(orgId)) {
// // 匹配到了柜子信息,将其添加到selectedCabinets中
// selectedCabinets.add(cabinet);
// }
// }
// }
// String orgId = msg.get("orgId").toString();
// List<String> allCabinetId =getAllCabinetId(msg);
// for (String cabinetId :allCabinetId){
// Map<String, Object> cabinetMsg = cabinetMapper.getOneCabinet(cabinetId);
// if (cabinetMsg!=null){
// allCabinet.add(cabinetMsg);
// }
// }
//
//将查询结果存入 Redis 中
//redisUtils.set(redisKey, allCabinet);
return new ResponseResult(HttpStatus.SUCCESS, ReturnMsg.PASS, allCabinet);
}
......@@ -654,6 +587,30 @@ public class CabinetServiceImpl extends ServiceImpl<CabinetMapper, Cabinet> impl
return policemanService.updateById(one2);
}
@Override
public ResponseResult getCabinetByOrgId(Map<String, Object> msg) {
try {
checkNotBlank(msg.get("orgId"), "orgId不能为空");
} catch (IllegalArgumentException e) {
return new ResponseResult(HttpStatus.ERROR, ReturnMsg.ERROR, e.getMessage());
}
// 根据组织机构获取该组织机构下所有单警柜
List<Map<String,Object>> allCabinet = new ArrayList<>();
allCabinet = cabinetMapper.getCabinetByOrgId(msg.get("orgId").toString());
// 遍历allCabinet
for (Map<String,Object> oneCabinet:allCabinet){
String cabinetId = oneCabinet.get("id").toString();
// 根据单警柜id获取箱号信息
List<Map<String,Object>> allBox = new ArrayList<>();
allBox = cabinetBoxMapper.getBoxMsg(cabinetId);
oneCabinet.put("allBoxMsg",allBox);
}
return new ResponseResult(HttpStatus.SUCCESS, ReturnMsg.PASS, allCabinet);
}
//查询的各种条件信息
//单警柜主柜查询条件
......
......@@ -6,7 +6,7 @@ import cn.hutool.core.util.StrUtil;
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.CompanyReq;
import com.junmp.jyzb.api.bean.query.CompanyReq;
import com.junmp.jyzb.api.exception.enums.CompanyExceptionEnum;
import com.junmp.jyzb.api.util.GenCodeUtil;
import com.junmp.jyzb.entity.Company;
......
......@@ -3,12 +3,12 @@ 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.EquipmentSizeReq;
import com.junmp.jyzb.api.bean.req.ProductReq;
import com.junmp.jyzb.api.bean.dto.EquipmentSizeDto;
import com.junmp.jyzb.api.bean.dto.EquipmentTypeDto;
import com.junmp.jyzb.api.bean.query.QueryEquipmentSizeReq;
import com.junmp.jyzb.api.bean.req.UpdateEquipmentSizeReq;
import com.junmp.jyzb.api.exception.enums.ProductExceptionEnum;
import com.junmp.jyzb.api.util.GenCodeUtil;
import com.junmp.jyzb.entity.EquipmentSize;
import com.junmp.jyzb.entity.Product;
import com.junmp.jyzb.mapper.EquipmentTypeMapper;
import com.junmp.jyzb.service.EquipmentSizeService;
import com.junmp.jyzb.utils.DateTimeUtil;
......@@ -31,223 +31,56 @@ public class EquipmentSizeServiceImpl extends ServiceImpl<EquipmentSizeMapper, E
@Resource
private EquipmentSizeMapper equipmentSizeMapper;
@Resource
private EquipmentTypeMapper equipmentTypeMapper;
private static final String REDIS_SIZE = "Size_";
//@Override
public ResponseResult addSize(Map<String, Object> msg) {
try {
checkNotBlank(msg.get("typeId"), "typeId不能为空");
checkNotBlank(msg.get("code"), "code不能为空");
checkNotBlank(msg.get("name"), "name不能为空");
//checkNotBlank((String) msg.get("note"), "note不能为空");
//Objects.requireNonNull(msg.get("price"), "price不能为空");
Objects.requireNonNull(msg.get("epcType"), "epcType不能为空");
} catch (IllegalArgumentException e) {
return new ResponseResult(HttpStatus.ERROR, ReturnMsg.ERROR,e.getMessage());
}
//TODO 查询是否有重复的code
// List<String> sizeCodeFlag = equipmentSizeMapper.getSizeByCode((String) msg.get("code"));
// if (!sizeCodeFlag.isEmpty()){
// return new ResponseResult(HttpStatus.ERROR, ReturnMsg.ERROR,"装备号型码已存在");
// }
//todo typeId只能是最下级的
// List<String> resultId = equipmentTypeMapper.getLowestTypeId();
// if (!resultId.contains(msg.get("typeId"))){
// return new ResponseResult(HttpStatus.ERROR, ReturnMsg.ERROR,"typeId只能是最下一级");
// }
EquipmentSize size =new EquipmentSize();
//生成一个uuid
String uuid = UUID.randomUUID().toString().replaceAll("-", "");
//生成当前时间
Date currentDate = DateTimeUtil.getCurrentDateTime();
size.setId(uuid);
size.setCreateTime(currentDate);
size.setUpdateTime(currentDate);
size.setTypeId((String) msg.get("typeId"));
size.setCode((String) msg.get("code"));
size.setName((String) msg.get("name"));
size.setNote((String) msg.get("note"));
// size.setPrice((Double) msg.get("price"));
size.setEpcType((Integer) msg.get("epcType"));
equipmentSizeMapper.addSize(size);
return new ResponseResult(HttpStatus.SUCCESS, ReturnMsg.PASS,uuid);
}
//@Override
public ResponseResult getOneSize(Map<String,Object> msg) {
try {
checkNotBlank(msg.get("id"), "id不能为空");
} catch (IllegalArgumentException e) {
return new ResponseResult(HttpStatus.ERROR, ReturnMsg.ERROR,e.getMessage());
}
String sizeId = msg.get("id").toString();
Map<String, Object> oneSize = equipmentSizeMapper.getOneSize(sizeId);
return new ResponseResult(HttpStatus.SUCCESS,ReturnMsg.PASS,oneSize);
}
//@Override
public ResponseResult deleteSize(Map<String, Object> msg) {
// 进行参数校验
try {
checkNotBlank(msg.get("sizeList"), "sizeList不能为空");
} catch (IllegalArgumentException e) {
return new ResponseResult(HttpStatus.ERROR, ReturnMsg.ERROR,e.getMessage());
}
List<Object> sizeList = (List<Object>) msg.get("sizeList");
for (Object sizeId:sizeList){
equipmentSizeMapper.deleteSize(sizeId.toString());
}
return new ResponseResult(HttpStatus.SUCCESS,ReturnMsg.PASS);
}
//@Override
public ResponseResult updateSize(Map<String, Object> msg) {
try {
checkNotBlank(msg.get("id"), "id不能为空");
checkNotBlank(msg.get("typeId"), "typeId不能为空");
checkNotBlank(msg.get("code"), "code不能为空");
checkNotBlank(msg.get("name"), "name不能为空");
Objects.requireNonNull(msg.get("epcType"), "epcType不能为空");
} catch (IllegalArgumentException e) {
return new ResponseResult(HttpStatus.ERROR, ReturnMsg.ERROR,e.getMessage());
}
//todo 判断code是否重复
// //查询是否有重复的code
// List<String> sizeCodeFlag = equipmentSizeMapper.getSizeByCode((String) msg.get("code"));
// //判断code是否有变动
// String oldCode = equipmentSizeMapper.getCodeById(msg.get("id").toString());
// if ()
// if (!sizeCodeFlag.isEmpty()){
// return new ResponseResult(HttpStatus.ERROR, ReturnMsg.ERROR,"装备号型码已存在");
// }
EquipmentSize size =new EquipmentSize();
Date currentDate = DateTimeUtil.getCurrentDateTime();
//police.setId(uuid);
size.setId((String) msg.get("id"));
size.setTypeId((String) msg.get("typeId"));
size.setCode((String) msg.get("code"));
size.setName((String) msg.get("name"));
size.setNote((String) msg.get("note"));
size.setUpdateTime(currentDate);
// size.setPrice((Double) msg.get("price"));
//size.setState((Integer) msg.get("state"));
size.setEpcType((Integer) msg.get("epcType"));
equipmentSizeMapper.updateSize(size);
return new ResponseResult(HttpStatus.SUCCESS,ReturnMsg.PASS);
}
//@Override
public ResponseResult changeSizeState(Map<String, Object> msg) {
try {
checkNotBlank(msg.get("id"), "id不能为空");
checkNotBlank(msg.get("state"), "state不能为空");
} catch (IllegalArgumentException e) {
return new ResponseResult(HttpStatus.ERROR, ReturnMsg.ERROR,e.getMessage());
}
EquipmentSize size =new EquipmentSize();
size.setId(msg.get("id").toString());
size.setState((Integer) msg.get("state"));
equipmentSizeMapper.changeSizeState(size);
return new ResponseResult(HttpStatus.SUCCESS, ReturnMsg.PASS);
}
//@Override
public ResponseResult getAllSize(Map<String, Object> msg) {
try {
checkNotBlank(msg.get("typeId"), "typeId不能为空");
} catch (IllegalArgumentException e) {
return new ResponseResult(HttpStatus.ERROR, ReturnMsg.ERROR,e.getMessage());
}
List<Map<String, Object>> allSize=new ArrayList<>();
List<String> allSizeId =getAllSizeId(msg);
for (String sizeId :allSizeId){
Map<String, Object> sizeMsg = equipmentSizeMapper.getOneSize(sizeId);
allSize.add(sizeMsg);
}
return new ResponseResult(HttpStatus.SUCCESS,ReturnMsg.PASS,allSize);
}
@Override
public List<String> getAllSizeId(Map<String, Object> typeId) {
List<String> msg = equipmentSizeMapper.getAllSizeId(typeId.get("typeId").toString());
return msg;
}
@Override
public ResponseResult getSizeDevelop() {
List<Map<String,Object>> returnMsg = equipmentSizeMapper.getSizeDevelop();
return new ResponseResult(HttpStatus.SUCCESS, ReturnMsg.PASS,returnMsg);
}
@Override
public boolean addSize(EquipmentSizeReq req) {
public Boolean addSize(UpdateEquipmentSizeReq req) {
EquipmentSize size = new EquipmentSize();
BeanPlusUtil.copyProperties(req, size);
return this.save(size);
}
@Override
public EquipmentSize getOneSize(EquipmentSizeReq req) {
//LambdaQueryWrapper<EquipmentSize> wrapper = createWrapperById(req);
public EquipmentSize getOneSize(QueryEquipmentSizeReq req) {
return this.getById(req);
}
private LambdaQueryWrapper<EquipmentSize> createWrapperById(EquipmentSizeReq req) {
LambdaQueryWrapper<EquipmentSize> wrapper = new LambdaQueryWrapper<>();
if (ObjectUtil.isEmpty(req)) {
return wrapper;
}
//根据id编码查询
wrapper.eq(ObjectUtil.isNotEmpty(req.getId()), EquipmentSize::getId, req.getId());
wrapper.orderByDesc(EquipmentSize::getCreateTime);
return wrapper;
}
@Override
public boolean deleteSize(EquipmentSizeReq req) {
EquipmentSize size = querySize(req);
this.removeById(req.getId());
return true;
public Boolean deleteSize(UpdateEquipmentSizeReq req) {
return this.removeById(req.getId());
}
@Override
public boolean updateSize(EquipmentSizeReq req) {
public Boolean updateSize(UpdateEquipmentSizeReq req) {
EquipmentSize size = this.querySize(req);
BeanPlusUtil.copyProperties(req, size);
return this.updateById(size);
}
@Override
public boolean changeSizeState(EquipmentSizeReq req) {
public Boolean changeSizeState(UpdateEquipmentSizeReq req) {
EquipmentSize size = this.querySize(req);
BeanPlusUtil.copyProperties(req, size);
return this.updateById(size);
}
@Override
public List<EquipmentSize> getAllSize(EquipmentSizeReq req) {
public List<EquipmentSizeDto> getAllSize(QueryEquipmentSizeReq req) {
LambdaQueryWrapper<EquipmentSize> wrapper = createWrapper(req);
return this.list(wrapper);
List<EquipmentSize> es = this.list(wrapper);
List<EquipmentSizeDto> dtoList = new ArrayList<>();
// 将 EquipmentSize 对象转换为 EquipmentSizeDto 对象并添加到 dtoList 中
for (EquipmentSize equipmentSize : es) {
EquipmentSizeDto dto = new EquipmentSizeDto();
BeanPlusUtil.copyProperties(equipmentSize, dto);
dtoList.add(dto);
}
return dtoList;
}
private EquipmentSize querySize(EquipmentSizeReq req) {
private EquipmentSize querySize(UpdateEquipmentSizeReq req) {
EquipmentSize app = this.getById(req.getId());
if (ObjectUtil.isNull(app)) {
......@@ -256,7 +89,7 @@ public class EquipmentSizeServiceImpl extends ServiceImpl<EquipmentSizeMapper, E
return app;
}
private LambdaQueryWrapper<EquipmentSize> createWrapper(EquipmentSizeReq req) {
private LambdaQueryWrapper<EquipmentSize> createWrapper(QueryEquipmentSizeReq req) {
LambdaQueryWrapper<EquipmentSize> wrapper = new LambdaQueryWrapper<>();
if (ObjectUtil.isEmpty(req)) {
return wrapper;
......
package com.junmp.jyzb.service.impl;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.junmp.jyzb.entity.EquipmentType;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.junmp.jyzb.api.bean.dto.EquipmentTreeDto;
import com.junmp.jyzb.api.bean.dto.EquipmentTypeDto;
import com.junmp.jyzb.api.bean.query.QueryEquipmentTypeReq;
import com.junmp.jyzb.api.bean.req.UpdateEquipmentTypeReq;
import com.junmp.jyzb.api.exception.JYZBAppException;
import com.junmp.jyzb.api.exception.enums.EquipmentTypeExceptionEnum;
import com.junmp.jyzb.entity.*;
import com.junmp.jyzb.mapper.SupplierMapper;
import com.junmp.jyzb.service.EquipmentTypeService;
import com.junmp.jyzb.service.SupplierService;
import com.junmp.jyzb.service.SupplierTypeService;
import com.junmp.jyzb.utils.*;
import com.junmp.v2.common.exception.base.ServiceException;
import com.junmp.v2.common.util.BeanPlusUtil;
import org.springframework.data.annotation.Id;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import com.junmp.jyzb.mapper.EquipmentTypeMapper;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.util.stream.Collectors;
import static com.junmp.jyzb.utils.CheckBlank.checkNotBlank;
......@@ -22,365 +40,226 @@ public class EquipmentTypeServiceImpl extends ServiceImpl<EquipmentTypeMapper, E
@Resource
private EquipmentTypeMapper equipmentTypeMapper;
@Resource
private SupplierMapper supplierMapper;
@Resource
private SupplierService supplierService;
@Resource
private SupplierTypeService supplierTypeService;
private static final String REDIS_TYPE = "Type_";
@Override
public List<Map<String, Object>> getEquipmentList() {
List<EquipmentType> menuList = equipmentTypeMapper.selectAllEquipment();
List<Map<String, Object>> topList = new ArrayList<>();
List<Map<String, Object>> resultList = new ArrayList<>();
Map<String, List<Map<String, Object>>> childrenMap = new HashMap<>();
// 构建子菜单映射表
for (EquipmentType menu : menuList) {
Map<String, Object> map = new HashMap<>();
map.put("id", menu.getId());
map.put("name", menu.getName());
map.put("unit", menu.getUnit());
map.put("unitType", menu.getUnitType());
map.put("code", menu.getCode());
map.put("parentId", menu.getParentId());
map.put("state", menu.getState());
map.put("note", menu.getNote());
map.put("createTime", menu.getCreateTime());
map.put("updateTime", menu.getUpdateTime());
map.put("type",menu.getType());
//如果是id和parentId都为 00000 的超级根,就将它放在映射为-1的数据中
if (menu.getId().equals("00000000-0000-0000-0000-000000000000") && menu.getParentId().equals("00000000-0000-0000-0000-000000000000")){
childrenMap.put("-1", new ArrayList<>());
childrenMap.get("-1").add(map);
continue;
}
if (!childrenMap.containsKey(menu.getParentId())) {
childrenMap.put(menu.getParentId(), new ArrayList<>());
}
public List<EquipmentTreeDto> getEquipmentList(QueryEquipmentTypeReq req) {
String selfCode="00000000-0000-0000-0000-000000000000";
childrenMap.get(menu.getParentId()).add(map);
}
// 获取顶级菜单(最高一级的parentId 为 -1)
List<Map<String, Object>> topMenus = childrenMap.get("-1");
// 迭代构建菜单树
if (topMenus != null) {
for (Map<String, Object> topMenu : topMenus) {
Stack<Map<String, Object>> stack = new Stack<>();
stack.push(topMenu);
// 使用栈进行深度优先遍历
while (!stack.isEmpty()) {
Map<String, Object> currentMenu = stack.pop();
String currentMenuId = currentMenu.get("id").toString();
if (childrenMap.containsKey(currentMenuId)) {
List<Map<String, Object>> children = childrenMap.get(currentMenuId);
currentMenu.put("children", children);
for (int i = children.size() - 1; i >= 0; i--) {
stack.push(children.get(i));
List<EquipmentTreeDto> equipmentTypeDTOList = new ArrayList<>();
LambdaQueryWrapper<EquipmentType> wrapper = new LambdaQueryWrapper<>();
String setNewCode="";
if (ObjectUtil.isNotEmpty(req.getCode())) {
{
setNewCode=req.getCode().replaceAll("0+$", "");
}
}
wrapper.likeRight(ObjectUtil.isNotEmpty(req.getCode()), EquipmentType::getCode, setNewCode);
List<EquipmentType> equipmentList = this.list(wrapper);
// 创建一个 Map 来存储 Equipment ID 和对应的 DTO 对象
Map<String, EquipmentTreeDto> equipmentDtoMap = new HashMap<>();
// 创建一个 Map 来存储父类的 parentid 和对应的父类节点
Map<String, EquipmentTreeDto> parentDtoMap = new HashMap<>();
if (ObjectUtil.isNotEmpty(req.getCode())&&!req.getCode().equals("00000000-0000-0000-0000-000000000000"))
{ LambdaQueryWrapper<EquipmentType> wrapper2 = new LambdaQueryWrapper<>();
if (ObjectUtil.isNotEmpty(req.getCode()))
{
selfCode=req.getCode();
}
resultList.add(topMenu);
wrapper2.eq(ObjectUtil.isNotEmpty(req.getCode()), EquipmentType::getCode, selfCode);
String id= this.getOne(wrapper2).getId();
selfCode=id;
EquipmentType et=this.getById(id);
EquipmentTreeDto equipmentTypeDTO = new EquipmentTreeDto();
equipmentTypeDTO.setName(et.getName());
equipmentTypeDTO.setCode(et.getCode());
equipmentTypeDTO.setType(et.getType());
equipmentDtoMap.put(et.getId(),equipmentTypeDTO);
}
// 第一轮遍历:创建 EquipmentTreeDto 对象并将其加入到 Map 中
for (EquipmentType equipment : equipmentList) {
EquipmentTreeDto equipmentTypeDTO = new EquipmentTreeDto();
equipmentTypeDTO.setName(equipment.getName());
equipmentTypeDTO.setCode(equipment.getCode());
equipmentTypeDTO.setType(equipment.getType());
equipmentDtoMap.put(equipment.getId(), equipmentTypeDTO);
// 如果 parentid 是传进来的值,则将其作为顶级节点添加到 equipmentTypeDTOList 中
if (equipment.getId().equals(selfCode)) {
equipmentTypeDTOList.add(equipmentTypeDTO);
}
// 返回结果
return resultList;
}
// @Override
// public List<Map<String, Object>> getEquipmentList() {
// List<EquipmentType> menuList = equipmentTypeMapper.selectAllEquipment();
// List<Map<String, Object>> resultList = new ArrayList<>();
// for (EquipmentType menu : menuList) {
// //System.out.println(menu.getIdByParentId()+" "+menu.getName()+" "+menu.getParentId());
// //00000000-0000-0000-0000-000000000000
// //List<Map<String, Object>> children = getChildMenus(menu.getId(), menuList);
// if (!menu.getName().equals("超级根") && menu.getParentId().equals("00000000-0000-0000-0000-000000000000")) {
// //List<Map<String, Object>> children = getChildMenus(menu.getId(), menuList);
// Map<String, Object> map = new HashMap<>();
// map.put("id", menu.getId());
// map.put("name", menu.getName());
// map.put("unit", menu.getUnit());
// map.put("unitType", menu.getUnitType());
// map.put("code", menu.getCode());
// map.put("parentId", menu.getParentId());
// map.put("state", menu.getState());
// map.put("note", menu.getNote());
// map.put("createTime", menu.getCreateTime());
// map.put("updateTime", menu.getUpdateTime());
//
// //map.put("children", children);
// List<Map<String, Object>> children = getChildMenus(menu.getId(),menuList);
// if (!children.isEmpty()) {
// map.put("children", children);
// }
//
// resultList.add(map);
// }
// }
///*
// //将查询结果存入 Redis 中
// redisUtils.set(redisKey, resultList);
//*/
// return resultList;
// }
// private List<Map<String, Object>> getChildMenus(String parentId, List<EquipmentType> menuList) {
// List<Map<String, Object>> childList = new ArrayList<>();
// for (EquipmentType menu : menuList) {
// if (menu.getParentId().equals(parentId)) {
// Map<String, Object> map = new HashMap<>();
// map.put("id", menu.getId());
// map.put("name", menu.getName());
// map.put("unit", menu.getUnit());
// map.put("unitType", menu.getUnitType());
// map.put("code", menu.getCode());
// map.put("parentId", menu.getParentId());
// map.put("state", menu.getState());
// map.put("note", menu.getNote());
// map.put("createTime", menu.getCreateTime());
// map.put("updateTime", menu.getUpdateTime());
//
// List<Map<String, Object>> children = getChildMenus(menu.getId(), menuList);
// if (!children.isEmpty()) {
// map.put("children", children);
// }
//
// childList.add(map);
// }
// }
// return childList;
// }
// 第二轮遍历:将子节点连接到父节点
boolean isStartAddingChildren = false;
for (EquipmentType equipment : equipmentList) {
String parentId = equipment.getParentId();
EquipmentTreeDto equipmentTypeDTO = equipmentDtoMap.get(equipment.getId());
@Override
public ResponseResult addEquipment(Map<String, Object> msg) {
try {
checkNotBlank(msg.get("name"), "name不能为空");
checkNotBlank(msg.get("parentId"), "parentId不能为空");
checkNotBlank(msg.get("supplierList"), "supplierList不能为空");
} catch (IllegalArgumentException e) {
return new ResponseResult(HttpStatus.ERROR, ReturnMsg.ERROR, e.getMessage());
// 如果找到传入的ID对应的节点,则开始添加子节点
if (equipment.getId().equals(selfCode)) {
isStartAddingChildren = true;
}
//parentId只能是倒数第二级,因为插入的装备只能是最后一级
String resultId = equipmentTypeMapper.getIdByParentId((String) msg.get("parentId"));
if (resultId == null || resultId.equals("")) {
return new ResponseResult(HttpStatus.ERROR, ReturnMsg.ERROR, "传入的parentId有误,新的装备类型只能加在最后一级");
// 如果 isStartAddingChildren 为 true,并且 parentDtoMap 中有对应的父类节点,则将节点连接到父节点
if (isStartAddingChildren && parentDtoMap.containsKey(parentId)) {
EquipmentTreeDto parentDto = parentDtoMap.get(parentId);
parentDto.addChild(equipmentTypeDTO);
}
//判断传入的组织机构是否存在
List<String> supplierFlag = new ArrayList<>();
List<String> supplierList = (List<String>) msg.get("supplierList");
for (String supplierId : supplierList) {
Map<String, Object> oneSupplier = supplierMapper.getOneSupplier(supplierId, null, null);
if (oneSupplier == null || oneSupplier.isEmpty()) {
supplierFlag.add(supplierId);
}
}
if (!supplierFlag.isEmpty()) {
return new ResponseResult(HttpStatus.ERROR, ReturnMsg.ERROR, "传入的部分供应商不存在:" + supplierFlag);
// 将当前节点添加到 parentDtoMap 中,以便后续节点连接
parentDtoMap.put(equipment.getId(), equipmentTypeDTO);
}
EquipmentType equipmentType = new EquipmentType();
//生成加入supplier-type表的uuid
String uuid = UUID.randomUUID().toString().replaceAll("-", "");
//生成时间
Date currentDate = DateTimeUtil.getCurrentDateTime();
equipmentType.setCreateTime(currentDate);
equipmentType.setUpdateTime(currentDate);
//计算出新的装备类型id,在原来的基础上+1
int num = Integer.parseInt(resultId);
String numStr = String.valueOf(num + 1);
//读取json中的相关数据
equipmentType.setId(numStr);
equipmentType.setName((String) msg.get("name"));
equipmentType.setUnitType((String) msg.get("unitType"));
equipmentType.setCode(numStr);
equipmentType.setParentId((String) msg.get("parentId"));
equipmentType.setNote((String) msg.get("note"));
//计算出id后,判断数据库中是否已存在该id
String oneEquipment = equipmentTypeMapper.getOneEquipmentId(numStr);
if (!(oneEquipment == null)) {
return new ResponseResult(HttpStatus.ERROR, ReturnMsg.ERROR, "添加异常,装备id已存在");
return equipmentTypeDTOList;
}
//读取装备的供应商列表,将相关数据加入到supplier_type表
equipmentTypeMapper.addSupplier(uuid, equipmentType, supplierList);
//更新base_equipment_id表
equipmentTypeMapper.setCalculationId(numStr, (String) msg.get("parentId"));
@Transactional
@Override
public Boolean addEquipment(UpdateEquipmentTypeReq req) {
equipmentTypeMapper.addEquipment(equipmentType);
EquipmentType type = new EquipmentType();
return new ResponseResult(HttpStatus.SUCCESS, ReturnMsg.PASS, numStr);
}
@Override
public ResponseResult calculationEquipmentId() {
List<Map<String, Object>> inputList = equipmentTypeMapper.getAll();
// 假设您已经有了填充数据的inputList
List<Map<String, Object>> resultList = new ArrayList<>();
for (int i = 0; i < inputList.size() - 1; i++) {
Map<String, Object> currentMap = inputList.get(i);
Map<String, Object> nextMap = inputList.get(i + 1);
int currentId = (int) currentMap.get("id");
int nextId = (int) nextMap.get("id");
if (currentId + 1 != nextId) {
resultList.add(currentMap);
List<String> chekResult = supplierService.CheckSupplierList(req.getSupplierList());
if (chekResult.size() == 0) {
//先增加code码
BeanPlusUtil.copyProperties(req, type);
EquipmentType parentType = this.getById(req.getParentId());
int newcode = parentType.getMaxCode() + 1;
type.setId(String.valueOf(newcode));
parentType.setMaxCode(newcode);
parentType.setCode(String.valueOf(newcode));
List<SupplierType> supplierType = new ArrayList<>();
req.getSupplierList().forEach(supply -> {
SupplierType st = new SupplierType();
st.setId(String.valueOf(UUID.randomUUID()));
st.setState(0);
st.setSupplierId(supply);
st.setTypeId(String.valueOf(newcode));
supplierType.add(st);
}
);
supplierTypeService.saveBatch(supplierType);
this.updateById(parentType);
return this.save(type);
} else {
String msg="以下供应商不存在:" +String.join(",", chekResult);
throw new JYZBAppException(EquipmentTypeExceptionEnum.SUPPLIER_NOT_EXIST, msg);
}
equipmentTypeMapper.addData(resultList);
return new ResponseResult(99200, ReturnMsg.PASS, resultList);
}
@Override
public ResponseResult deleteEquipment(Map<String, Object> msg) {
// 进行参数校验
try {
checkNotBlank(msg.get("equipmentList"), "equipmentList不能为空");
} catch (IllegalArgumentException e) {
return new ResponseResult(HttpStatus.ERROR, ReturnMsg.ERROR, e.getMessage());
}
List<Object> equipmentList = (List<Object>) msg.get("equipmentList");
for (Object equipmentId : equipmentList) {
//判断装备id在数据库中是否存在
equipmentTypeMapper.deleteEquipment(equipmentId.toString());
}
return new ResponseResult(HttpStatus.SUCCESS, ReturnMsg.PASS);
}
@Override
public ResponseResult updateEquipment(Map<String, Object> msg) {
try {
checkNotBlank(msg.get("id"), "id不能为空");
checkNotBlank(msg.get("name"), "name不能为空");
checkNotBlank(msg.get("parentId"), "parentId不能为空");
checkNotBlank(msg.get("supplierList"), "supplierList不能为空");
} catch (IllegalArgumentException e) {
return new ResponseResult(HttpStatus.ERROR, ReturnMsg.ERROR, e.getMessage());
public Boolean deleteEquipment(UpdateEquipmentTypeReq req) {
LambdaQueryWrapper<EquipmentType> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ObjectUtil.isNotEmpty(req.getId()), EquipmentType::getParentId, req.getParentId());
List<EquipmentType> eqList = list(wrapper);
if (eqList.size() > 0) {
throw new ServiceException(EquipmentTypeExceptionEnum.EQUIPMENT_CHILDREN_EXIST);
} else {
this.removeById(req.getId());
}
// //parentId只能是倒数第二级,因为插入的装备只能是最后一级
// String resultId = equipmentTypeMapper.getIdByParentId((String) msg.get("parentId"));
// if (resultId == null || resultId.equals("")){
// return new ResponseResult(HttpStatus.ERROR,ReturnMsg.ERROR,"传入的parentId有误,新的装备类型只能加在最后一级");
// }
//判断传入的供应商是否存在
List<String> supplierFlag = new ArrayList<>();
List<String> supplierList = (List<String>) msg.get("supplierList");
for (String supplierId : supplierList) {
Map<String, Object> oneSupplier = supplierMapper.getOneSupplier(supplierId, null, null);
if (oneSupplier == null || oneSupplier.isEmpty()) {
supplierFlag.add(supplierId);
return true;
}
@Transactional
@Override
public Boolean updateEquipment(UpdateEquipmentTypeReq req) {
EquipmentType type = this.queryEqType(req);
List<String> chekResult = supplierService.CheckSupplierList(req.getSupplierList());
if (chekResult.size() == 0) {
// 先增加code码
BeanPlusUtil.copyProperties(req, type);
// 获取当前type对应的所有关联的供应商
List<SupplierType> currentSupplierList = supplierTypeService.list(new LambdaQueryWrapper<SupplierType>()
.eq(SupplierType::getTypeId, type.getId()));
// 获取当前type对应的所有关联的供应商ID集合
Set<String> currentSupplierIds = currentSupplierList.stream()
.map(SupplierType::getSupplierId)
.collect(Collectors.toSet());
// 获取传入的supplierList中的所有供应商ID集合
Set<String> newSupplierIds = new HashSet<>(req.getSupplierList());
// 需要新增的供应商关联数据
List<SupplierType> supplierTypeToAdd = new ArrayList<>();
for (String supplierId : newSupplierIds) {
if (!currentSupplierIds.contains(supplierId)) {
SupplierType st = new SupplierType();
st.setId(String.valueOf(UUID.randomUUID()));
st.setState(0);
st.setSupplierId(supplierId);
st.setTypeId(String.valueOf(type.getId()));
supplierTypeToAdd.add(st);
}
if (supplierFlag != null) {
return new ResponseResult(HttpStatus.ERROR, ReturnMsg.ERROR, "传入的部分供应商不存在:" + supplierFlag);
}
//计算出id后,判断数据库中是否已存在该id
String oneEquipment = equipmentTypeMapper.getOneEquipmentId(msg.get("id").toString());
if (oneEquipment == null || oneEquipment.equals("")) {
return new ResponseResult(HttpStatus.ERROR, ReturnMsg.ERROR, "未查询到相应的装备类型");
// 需要删除的供应商关联数据
List<SupplierType> supplierTypeToDelete = new ArrayList<>();
for (SupplierType currentSupplier : currentSupplierList) {
if (!newSupplierIds.contains(currentSupplier.getSupplierId())) {
supplierTypeToDelete.add(currentSupplier);
}
}
EquipmentType equipmentType = new EquipmentType();
//生成加入supplier-type表的uuid
String uuid = UUID.randomUUID().toString().replaceAll("-", "");
//修改警员相关信息
//生成当前时间
Date currentDate = DateTimeUtil.getCurrentDateTime();
equipmentType.setCreateTime(currentDate);
equipmentType.setUpdateTime(currentDate);
//police.setId(uuid);
equipmentType.setId((String) msg.get("id"));
equipmentType.setName((String) msg.get("name"));
equipmentType.setUnitType((String) msg.get("unitType"));
//equipmentType.setCode((String) msg.get("code"));
equipmentType.setParentId((String) msg.get("parentId"));
equipmentType.setNote((String) msg.get("note"));
// equipmentType.set((String) msg.get("updateUser"));
// equipmentType.setLocation((String) msg.get("location"));
// equipmentType.setPhone((String) msg.get("phone"));
// equipmentType.setUpdateTime(currentDate);
// equipmentType.setOrgId((String) msg.get("orgId"));
//删除装备的所有供应商信息,在将相关数据加入到supplier_type表
equipmentTypeMapper.deleteSupplier(equipmentType.getId());
//读取装备的供应商列表,将相关数据加入到supplier_type表
equipmentTypeMapper.addSupplier(uuid, equipmentType, supplierList);
equipmentTypeMapper.updateEquipment(equipmentType);
// 保存新增的供应商关联数据
supplierTypeService.saveBatch(supplierTypeToAdd);
return new ResponseResult(HttpStatus.SUCCESS, ReturnMsg.PASS);
// 删除需要删除的供应商关联数据
if (!supplierTypeToDelete.isEmpty()) {
supplierTypeService.removeByIds(supplierTypeToDelete.stream()
.map(SupplierType::getId)
.collect(Collectors.toList()));
}
// 保存type
return this.updateById(type);
} else {
String msg="以下供应商不存在:" +String.join(",", chekResult);
throw new JYZBAppException(EquipmentTypeExceptionEnum.SUPPLIER_NOT_EXIST, msg);
}
@Override
public ResponseResult changeEquipmentState(Map<String, Object> msg) {
try {
checkNotBlank(msg.get("id"), "id不能为空");
Objects.requireNonNull(msg.get("state"), "state不能为空");
} catch (IllegalArgumentException e) {
return new ResponseResult(HttpStatus.ERROR, ReturnMsg.ERROR, e.getMessage());
}
EquipmentType equipment = new EquipmentType();
equipment.setId(msg.get("id").toString());
equipment.setState((Integer) msg.get("state"));
equipmentTypeMapper.changeEquipmentState(equipment);
private EquipmentType queryEqType(UpdateEquipmentTypeReq req) {
EquipmentType type = this.getById(req.getId());
return new ResponseResult(HttpStatus.SUCCESS, ReturnMsg.PASS);
if (ObjectUtil.isNull(type)) {
throw new ServiceException(EquipmentTypeExceptionEnum.EQUIPMENT_TYPE_NOT_EXIST);
}
return type;
}
@Override
public ResponseResult getOneEquipment(Map<String, Object> msg) {
try {
checkNotBlank(msg.get("typeId"), "typeId不能为空");
} catch (IllegalArgumentException e) {
return new ResponseResult(HttpStatus.ERROR, ReturnMsg.ERROR, e.getMessage());
public Boolean changeEquipmentState(UpdateEquipmentTypeReq req) {
EquipmentType equipment = this.getById(req.getId());
if (equipment != null) {
equipment.setState(Integer.valueOf(req.getState()));
}
EquipmentType equipment = new EquipmentType();
equipment.setId(msg.get("typeId").toString());
Map<String, Object> oneEquipment = equipmentTypeMapper.getOneEquipment(equipment);
//返回对应的供应商信息
List<Map<String, Object>> supplierMsg = equipmentTypeMapper.getSupplierByTypeId(equipment);
oneEquipment.put("supplierList", supplierMsg);
return new ResponseResult(HttpStatus.SUCCESS, ReturnMsg.PASS, oneEquipment);
return true;
}
@Override
public ResponseResult showEquipmentChildren(Map<String, Object> msg) {
try {
checkNotBlank(msg.get("equipmentId"), "equipmentId不能为空");
} catch (IllegalArgumentException e) {
return new ResponseResult(HttpStatus.ERROR, ReturnMsg.ERROR, e.getMessage());
public EquipmentTypeDto getEquipment(QueryEquipmentTypeReq req) {
EquipmentTypeDto equipment = new EquipmentTypeDto();
BeanPlusUtil.copyProperties(this.getById(req.getId()), equipment);
return equipment;
}
String equipmentId = msg.get("equipmentId").toString();
List<Map<String, Object>> equipmentMsg = equipmentTypeMapper.getChildByParentId(equipmentId);
return new ResponseResult(HttpStatus.SUCCESS, ReturnMsg.PASS, equipmentMsg);
}
@Override
public ResponseResult setTypeParentIds() {
......@@ -391,70 +270,16 @@ public class EquipmentTypeServiceImpl extends ServiceImpl<EquipmentTypeMapper, E
return new ResponseResult(HttpStatus.SUCCESS, ReturnMsg.PASS);
}
@Override
public List<Map<String, Object>> showAllEquipment() {
List<EquipmentType> menuList = equipmentTypeMapper.selectAllEquipment();
List<Map<String, Object>> resultList = new ArrayList<>();
for (EquipmentType menu : menuList) {
//System.out.println(menu.getIdByParentId()+" "+menu.getName()+" "+menu.getParentId());
//00000000-0000-0000-0000-000000000000
//List<Map<String, Object>> children = getChildMenus(menu.getId(), menuList);
if (!menu.getName().equals("超级根") && menu.getParentId().equals("00000000-0000-0000-0000-000000000000")) {
//List<Map<String, Object>> children = getChildMenus(menu.getId(), menuList);
Map<String, Object> map = new HashMap<>();
map.put("id", menu.getId());
map.put("name", menu.getName());
map.put("unit", menu.getUnit());
map.put("unitType", menu.getUnitType());
map.put("code", menu.getCode());
map.put("parentId", menu.getParentId());
map.put("state", menu.getState());
map.put("note", menu.getNote());
map.put("createTime", menu.getCreateTime());
map.put("updateTime", menu.getUpdateTime());
//去掉最后一级children只能加两次
//map.put("children", children);
List<Map<String, Object>> children = getChildMenus(menu.getId(), menuList);
if (!children.isEmpty()) {
map.put("children", children);
}
resultList.add(map);
}
}
return resultList;
}
@Override
public ResponseResult getEquipmentDevelop() {
List<Map<String,Object>> returnMsg = equipmentTypeMapper.getEquipmentDevelop();
return new ResponseResult(HttpStatus.SUCCESS, ReturnMsg.PASS,returnMsg);
}
private List<Map<String, Object>> getChildMenus(String parentId, List<EquipmentType> menuList) {
List<Map<String, Object>> childList = new ArrayList<>();
for (EquipmentType menu : menuList) {
if (menu.getParentId().equals(parentId)) {
Map<String, Object> map = new HashMap<>();
map.put("id", menu.getId());
map.put("name", menu.getName());
map.put("unit", menu.getUnit());
map.put("unitType", menu.getUnitType());
map.put("code", menu.getCode());
map.put("parentId", menu.getParentId());
map.put("state", menu.getState());
map.put("note", menu.getNote());
map.put("createTime", menu.getCreateTime());
map.put("updateTime", menu.getUpdateTime());
List<Map<String, Object>> children = getChildMenus(menu.getId(), menuList);
if (!children.isEmpty()) {
map.put("children", children);
private LambdaQueryWrapper<EquipmentType> createWrapper(QueryEquipmentTypeReq req) {
LambdaQueryWrapper<EquipmentType> wrapper = new LambdaQueryWrapper<>();
if (ObjectUtil.isEmpty(req)) {
return wrapper;
}
wrapper.orderByDesc(EquipmentType::getCreateTime);
return wrapper;
childList.add(map);
}
}
return childList;
}
}
......@@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.junmp.jyzb.api.bean.dto.InventoryDto;
import com.junmp.jyzb.api.bean.req.InventoryReq;
import com.junmp.jyzb.api.bean.query.InventoryReq;
import com.junmp.jyzb.entity.Inventory;
import com.junmp.jyzb.service.*;
......
package com.junmp.jyzb.service.impl;
import cn.hutool.core.bean.BeanUtil;
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.dto.InventoryDto;
import com.junmp.jyzb.api.bean.dto.InventorySumDto;
import com.junmp.jyzb.api.bean.req.InventorySumReq;
import com.junmp.jyzb.api.bean.query.InventorySumReq;
import com.junmp.jyzb.entity.InventorySummary;
import com.junmp.jyzb.service.InventorySummaryService;
import com.junmp.v2.db.api.factory.PageFactory;
......@@ -16,9 +13,6 @@ import com.junmp.v2.db.api.page.PageResult;
import org.springframework.stereotype.Service;
import com.junmp.jyzb.mapper.InventorySummaryMapper;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
@Service
public class InventorySummaryServiceImpl extends ServiceImpl<InventorySummaryMapper, InventorySummary> implements InventorySummaryService {
......
......@@ -4,7 +4,7 @@ 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.PolicemanFingerReq;
import com.junmp.jyzb.api.bean.query.PolicemanFingerReq;
import com.junmp.jyzb.entity.PoliceFinger;
import com.junmp.jyzb.exception.enums.PolicemanFingerExceptionEnum;
import com.junmp.jyzb.service.PoliceFingerService;
......
package com.junmp.jyzb.service.impl;
import cn.hutool.core.bean.BeanUtil;
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.CabinetReq;
import com.junmp.jyzb.api.bean.req.PolicemanReq;
import com.junmp.jyzb.api.bean.query.CabinetReq;
import com.junmp.jyzb.api.bean.query.PolicemanReq;
import com.junmp.jyzb.entity.Cabinet;
import com.junmp.jyzb.entity.CabinetBox;
import com.junmp.jyzb.entity.PoliceFinger;
import com.junmp.jyzb.exception.enums.PolicemanExceptionEnum;
import com.junmp.jyzb.mapper.*;
......@@ -16,7 +14,6 @@ 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;
......@@ -657,36 +654,40 @@ public class PolicemanServiceImpl extends ServiceImpl<PolicemanMapper, Policeman
}
@Override
public ResponseResult getPoliceData(Map<String, Object> cabinetId) {
public ResponseResult getPoliceData(Map<String, Object> msg) {
try {
checkNotBlank(cabinetId.get("cabinetId"), "cabinetId不能为空");
checkNotBlank(msg.get("cabinetId"), "cabinetId不能为空");
checkNotBlank(msg.get("type"), "type不能为空");
} catch (IllegalArgumentException e) {
return new ResponseResult(HttpStatus.ERROR, ReturnMsg.ERROR,e.getMessage());
}
//如果没有找到该单警柜,返回对应信息
String cabinetMsg = cabinetId.get("cabinetId").toString();
String cabinetMsg = msg.get("cabinetId").toString();
Map<String, Object> oneCabinet = cabinetMapper.getOneCabinet(cabinetMsg);
if (oneCabinet.isEmpty()){
return new ResponseResult(HttpStatus.ERROR,ReturnMsg.NO_DATA,ReturnData.NO_DATA);
}
// 构建 Redis 缓存键
String redisKey = "getPoliceData" + cabinetId.get("cabinetId").toString();
// 从 Redis 中获取数据
Map<String, Object> cachedData = redisUtils.findCachedData(redisKey);
if (cachedData != null) {
//将Long类型的数据转化为Date
// for (Map<String,Object> one:cachedData){
// Long dataMsg = (Long) one.get("updateTime");
// one.put("updateTime", redisUtils.getDate(dataMsg));
// allPoliceman.add(one);
// }
return new ResponseResult(HttpStatus.SUCCESS,ReturnMsg.PASS,cachedData);
}
String type = msg.get("type").toString();
//存放返回的数据
Map<String, Object> allMsg = new HashMap<>();
allMsg.put("cabinetName",oneCabinet.get("name"));
if (type.equals("all")){
//根据单警柜id获取组织机构id
String orgId = cabinetMapper.getOrgByCabinet(msg.get("cabinetId").toString());
//根据组织机构id,查询所有的警员
List<Map<String, Object>> allPolicemanByOrg = policemanMapper.getAllPolicemanByOrg(orgId);
return new ResponseResult(HttpStatus.SUCCESS,ReturnMsg.PASS,allPolicemanByOrg);
}else if(type.equals("single")){
allMsg.put("id",oneCabinet.get("id"));
allMsg.put("cabinetNum",oneCabinet.get("cabinetNum"));
allMsg.put("name",oneCabinet.get("name"));
allMsg.put("orgId",oneCabinet.get("orgId"));
allMsg.put("orgName",oneCabinet.get("orgName"));
allMsg.put("location",oneCabinet.get("location"));
List<Map<String, Object>> allBoxMsg = cabinetBoxMapper.getBoxMsg(cabinetMsg);
List<Map<String, Object>> policeMsg = new ArrayList<>();
for (Map<String, Object> boxMsg:allBoxMsg){
......@@ -700,10 +701,68 @@ public class PolicemanServiceImpl extends ServiceImpl<PolicemanMapper, Policeman
}
}
allMsg.put("policeList",policeMsg);
return new ResponseResult(HttpStatus.SUCCESS,ReturnMsg.PASS,allMsg);
}else if(type.equals("allBind")){
//构建存放返回信息的List
List<Map<String,Object>> returnMsg = new ArrayList<>();
//根据单警柜id获取组织机构id
String orgId = cabinetMapper.getOrgByCabinet(msg.get("cabinetId").toString());
//根据组织机构id获取下面的所有单警柜
List<Map<String, Object>> allCabinet = cabinetMapper.getCabinetByOrgId(orgId);
//根据单警柜的List,查询所有绑定的警员信息
for (Map<String, Object> one:allCabinet){
//构建cabinet的map
Map<String, Object> cabinetMap = new HashMap<>();
cabinetMap.put("id",one.get("id"));
cabinetMap.put("cabinetNum",one.get("cabinetNum"));
cabinetMap.put("name",one.get("name"));
cabinetMap.put("orgId",one.get("orgId"));
cabinetMap.put("orgName",one.get("orgName"));
cabinetMap.put("location",one.get("location"));
List<Map<String, Object>> allBoxMsg = cabinetBoxMapper.getBoxMsg(one.get("id").toString());
List<Map<String, Object>> policeMsg = new ArrayList<>();
for (Map<String, Object> boxMsg:allBoxMsg){
String cabinetBoxId = boxMsg.get("cabinetBoxId").toString();
List<String> allPoliceIdByBoxId = policemanMapper.getAllPoliceIdByBoxId(cabinetBoxId);
for(String policeId:allPoliceIdByBoxId){
Map<String, Object> onePolice = policemanMapper.getOnePolice(policeId);
List<Map<String, Object>> fingerprints= policeFingerMapper.getFingersByUserId(policeId);
onePolice.put("fingerMsg",fingerprints);
policeMsg.add(onePolice);
}
}
cabinetMap.put("policeList",policeMsg);
//将cabinetMap放入list
returnMsg.add(cabinetMap);
}
return new ResponseResult(HttpStatus.SUCCESS,ReturnMsg.PASS,returnMsg);
}else {
return new ResponseResult(HttpStatus.ERROR,ReturnMsg.ERROR,"传入的type有误");
}
// // 构建 Redis 缓存键
// String redisKey = "getPoliceData" + cabinetId.get("cabinetId").toString();
// // 从 Redis 中获取数据
// Map<String, Object> cachedData = redisUtils.findCachedData(redisKey);
// if (cachedData != null) {
// //将Long类型的数据转化为Date
//// for (Map<String,Object> one:cachedData){
//// Long dataMsg = (Long) one.get("updateTime");
//// one.put("updateTime", redisUtils.getDate(dataMsg));
//// allPoliceman.add(one);
//// }
// return new ResponseResult(HttpStatus.SUCCESS,ReturnMsg.PASS,cachedData);
// }
//将查询结果存入 Redis 中
redisUtils.set(redisKey, allMsg);
return new ResponseResult(HttpStatus.SUCCESS,ReturnMsg.PASS,allMsg);
//redisUtils.set(redisKey, allMsg);
}
/**
......
......@@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.junmp.jyzb.api.bean.dto.ProductBatchDto;
import com.junmp.jyzb.api.bean.dto.ProductProcessDto;
import com.junmp.jyzb.api.bean.req.ProductBatchReq;
import com.junmp.jyzb.api.bean.query.ProductBatchReq;
import com.junmp.jyzb.api.exception.enums.ProductExceptionEnum;
import com.junmp.jyzb.api.util.GenCodeUtil;
import com.junmp.jyzb.entity.ProductBatch;
......
......@@ -4,7 +4,7 @@ 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.bean.query.ProductReq;
import com.junmp.jyzb.api.exception.enums.ProductExceptionEnum;
import com.junmp.jyzb.api.util.GenCodeUtil;
import com.junmp.jyzb.entity.Product;
......
......@@ -5,7 +5,7 @@ import cn.hutool.core.util.StrUtil;
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.ProductSkuReq;
import com.junmp.jyzb.api.bean.query.ProductSkuReq;
import com.junmp.jyzb.api.exception.JYZBAppException;
import com.junmp.jyzb.api.exception.enums.ProductExceptionEnum;
import com.junmp.jyzb.api.util.GenCodeUtil;
......
......@@ -10,7 +10,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.junmp.jyzb.api.bean.dto.ProductTagDto;
import com.junmp.jyzb.api.bean.dto.SimpleTagDto;
import com.junmp.jyzb.api.bean.req.ProductTagReq;
import com.junmp.jyzb.api.bean.query.ProductTagReq;
import com.junmp.jyzb.api.exception.enums.ProductExceptionEnum;
import com.junmp.jyzb.entity.ProductTag;
......
......@@ -3,23 +3,19 @@ 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.OrgUpdateReq;
import com.junmp.jyzb.api.bean.req.ProductTagReq;
import com.junmp.jyzb.entity.ProductSku;
import com.junmp.jyzb.entity.ProductTag;
import com.junmp.jyzb.api.bean.query.OrgUpdateReq;
import com.junmp.jyzb.api.bean.query.ProductTagReq;
import com.junmp.jyzb.entity.PubOrg;
import com.junmp.jyzb.utils.HttpStatus;
import com.junmp.jyzb.utils.RedisUtils;
import com.junmp.jyzb.utils.ResponseResult;
import com.junmp.jyzb.utils.ReturnMsg;
import com.junmp.v2.common.util.BeanPlusUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import com.junmp.jyzb.mapper.PubOrgMapper;
import com.junmp.jyzb.service.PubOrgService;
import java.math.BigInteger;
import java.util.*;
import static com.junmp.jyzb.utils.CheckBlank.checkNotBlank;
......
......@@ -3,16 +3,9 @@ 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.api.bean.req.ShelfReq;
import com.junmp.jyzb.api.exception.enums.ProductExceptionEnum;
import com.junmp.jyzb.api.bean.query.ShelfReq;
import com.junmp.jyzb.api.exception.enums.ShelfExceptionEnum;
import com.junmp.jyzb.api.util.GenCodeUtil;
import com.junmp.jyzb.entity.Product;
import com.junmp.jyzb.entity.Shelf;
import com.junmp.jyzb.entity.WarehouseArea;
import com.junmp.jyzb.mapper.WarehouseAreaMapper;
import com.junmp.jyzb.service.WarehouseAreaService;
import com.junmp.v2.common.exception.base.ServiceException;
import com.junmp.v2.common.util.BeanPlusUtil;
import org.springframework.stereotype.Service;
......
package com.junmp.jyzb.service.impl;
import com.junmp.jyzb.service.SupplierEquipmentService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import com.junmp.jyzb.mapper.SupplierEquipmentMapper;
@Service
public class SupplierEquipmentServiceImpl implements SupplierEquipmentService {
@Resource
private SupplierEquipmentMapper supplierEquipmentMapper;
}
......@@ -3,16 +3,12 @@ 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.api.bean.req.SupplierReq;
import com.junmp.jyzb.api.exception.enums.ProductExceptionEnum;
import com.junmp.jyzb.api.bean.dto.SupplierDto;
import com.junmp.jyzb.api.bean.query.QuerySupplierReq;
import com.junmp.jyzb.api.bean.req.UpdateSupplierReq;
import com.junmp.jyzb.api.exception.enums.SupplierExceptionEnum;
import com.junmp.jyzb.api.util.GenCodeUtil;
import com.junmp.jyzb.entity.Product;
import com.junmp.jyzb.entity.Supplier;
import com.junmp.jyzb.mapper.ProductMapper;
import com.junmp.jyzb.service.SupplierService;
import com.junmp.jyzb.utils.*;
import com.junmp.v2.common.exception.base.ServiceException;
import com.junmp.v2.common.util.BeanPlusUtil;
import org.springframework.stereotype.Service;
......@@ -21,98 +17,36 @@ import com.junmp.jyzb.mapper.SupplierMapper;
import java.util.*;
import static com.junmp.jyzb.utils.CheckBlank.checkNotBlank;
@Service
public class SupplierServiceImpl extends ServiceImpl<SupplierMapper, Supplier> implements SupplierService {
@Resource
private SupplierMapper supplierMapper;
@Resource
private RedisUtils redisUtils;
private static final String REDIS_SUPPLIER = "Supplier_";
@Override
public boolean addSupplier(SupplierReq req) {
public boolean AddSupplier(UpdateSupplierReq req) {
Supplier supplier = new Supplier();
BeanPlusUtil.copyProperties(req, supplier);
return this.save(supplier);
}
//@Override
public ResponseResult addSupplier(Map<String, Object> msg) {
try {
checkNotBlank(msg.get("name"), "name不能为空");
//checkNotBlank((String) msg.get("shortName"), "shortName不能为空");
checkNotBlank(msg.get("name"), "name不能为空");
checkNotBlank(msg.get("code"), "code不能为空");
checkNotBlank(msg.get("contacts"), "contacts不能为空");
checkNotBlank(msg.get("phone"), "phone不能为空");
} catch (IllegalArgumentException e) {
return new ResponseResult(HttpStatus.ERROR, ReturnMsg.ERROR,e.getMessage());
}
Supplier supplier =new Supplier();
//将警员相关信息添加到警员表
//生成一个uuid
String uuid = UUID.randomUUID().toString().replaceAll("-", "");
//生成当前时间
Date currentDate = DateTimeUtil.getCurrentDateTime();
supplier.setId(uuid);
supplier.setCreateTime(currentDate);
supplier.setUpdateTime(currentDate);
supplier.setName((String) msg.get("name"));
supplier.setShortName((String) msg.get("shortName"));
supplier.setCode((String) msg.get("code"));
supplier.setContacts((String) msg.get("contacts"));
supplier.setPhone((String) msg.get("phone"));
//supplier.setCreateUser((String) msg.get("createUser"));
supplierMapper.addSupplier(supplier);
// 将uuid、创建时间、更新时间加入到policeman中
msg.put("id",uuid);
long timestamp = currentDate.getTime(); // 将Date对象转换为long类型的时间戳
//policeman.put("createTime",timestamp);
msg.put("updateTime",timestamp);
/**
* 更新缓存
* */
//构建Redis缓存键
String redisKey = REDIS_SUPPLIER;
// 从 Redis 中获取数据
List<Map<String, Object>> cachedData = redisUtils.findCachedData(redisKey);
if (cachedData != null) {
cachedData.add(0,msg);
//将查询结果存入 Redis 中
redisUtils.set(redisKey, cachedData);
}
return new ResponseResult(HttpStatus.SUCCESS, ReturnMsg.PASS,uuid);
}
@Override
public Map<String,Object> getOneSupplier(String id,Object name,Object code) {
//读取msg中的检索信息
return supplierMapper.getOneSupplier(id,name,code);
}
@Override
public boolean deleteSupplier(SupplierReq req) {
public boolean DeleteSupplier(UpdateSupplierReq req) {
this.removeById(req.getId());
return true;
}
@Override
public boolean updateSupplier(SupplierReq req) {
Supplier supplier = this.querySupplier(req);
public boolean UpdateSupplier(UpdateSupplierReq req) {
Supplier supplier = this.QuerySupplier(req);
BeanPlusUtil.copyProperties(req, supplier);
return this.updateById(supplier);
}
private Supplier querySupplier(SupplierReq req) {
private Supplier QuerySupplier(UpdateSupplierReq req) {
Supplier app = this.getById(req.getId());
if (ObjectUtil.isNull(app)) {
throw new ServiceException(SupplierExceptionEnum.SUPPLIER_NOT_EXIST);
......@@ -120,111 +54,54 @@ public class SupplierServiceImpl extends ServiceImpl<SupplierMapper, Supplier> i
return app;
}
//@Override
public ResponseResult deleteSupplier(Map<String, Object> msg) {
try {
checkNotBlank(msg.get("supplierList"), "supplierList不能为空");
} catch (IllegalArgumentException e) {
return new ResponseResult(HttpStatus.ERROR, ReturnMsg.ERROR,e.getMessage());
public List<String> CheckSupplierList(List<String> req){
LambdaQueryWrapper<Supplier> wp = new LambdaQueryWrapper<>();
wp.in(ObjectUtil.isNotEmpty(req), Supplier::getId, req);
List<Supplier> st = list(wp);
List<String> nonexistentSuppliers = new ArrayList<>();
for (String supplierId : req) {
boolean found = false;
for (Supplier supplier : st) {
if (supplier.getId().equals(supplierId)) {
found = true;
break;
}
List<Object> supplierList = (List<Object>) msg.get("supplierList");
for (Object supplierId:supplierList){
supplierMapper.deleteSupplier(supplierId.toString());
}
return new ResponseResult(HttpStatus.SUCCESS,"操作成功");
if (!found) {
nonexistentSuppliers.add(supplierId);
}
//@Override
public ResponseResult updateSupplier(Map<String, Object> msg) {
try {
checkNotBlank(msg.get("id"), "id不能为空");
//checkNotBlank((String) msg.get("shortName"), "shortName不能为空");
checkNotBlank(msg.get("name"), "name不能为空");
checkNotBlank(msg.get("code"), "code不能为空");
checkNotBlank(msg.get("contacts"), "contacts不能为空");
checkNotBlank(msg.get("phone"), "phone不能为空");
} catch (IllegalArgumentException e) {
return new ResponseResult(HttpStatus.ERROR, ReturnMsg.ERROR,e.getMessage());
}
Supplier supplier =new Supplier();
Date currentDate = DateTimeUtil.getCurrentDateTime();
supplier.setUpdateTime(currentDate);
supplier.setId((String) msg.get("id"));
supplier.setName((String) msg.get("name"));
supplier.setShortName((String) msg.get("shortName"));
supplier.setCode((String) msg.get("code"));
supplier.setContacts((String) msg.get("contacts"));
supplier.setPhone((String) msg.get("phone"));
//supplier.setUpdateUser((String) msg.get("updateUser"));
supplierMapper.updateSupplier(supplier);
return new ResponseResult(HttpStatus.SUCCESS, ReturnMsg.PASS);
}
return nonexistentSuppliers;
@Override
public List<String> getAllSupplierId() {
List<String> msg = supplierMapper.getAllSupplierId();
return msg;
}
@Override
public List<Supplier> showSupplier(SupplierReq req) {
System.out.println(req);
@Override
public List<SupplierDto> ShowSupplier(QuerySupplierReq req) {
LambdaQueryWrapper<Supplier> wrapper = createWrapper(req);
return this.list(wrapper);
List<SupplierDto> dto=new ArrayList<>();
this.list(wrapper).forEach(p->
{
SupplierDto sd=new SupplierDto();
BeanPlusUtil.copyProperties(p, sd);
dto.add(sd);
});
return dto;
}
@Override
public boolean changeSupplierState(SupplierReq req) {
Supplier supplier = this.querySupplier(req);
//获取supplierId 放入到 id中
// supplier.setId(req.getSupplierId());
//supplier.setId(req);
public Boolean ChangeSupplierState(UpdateSupplierReq req) {
Supplier supplier = this.QuerySupplier(req);
BeanPlusUtil.copyProperties(req, supplier);
return this.updateById(supplier);
}
//@Override
public ResponseResult getAllSupplier(Map<String, Object> msg) {
String name="";
String shortName="";
if (msg.containsKey("name")){
name = msg.get("name").toString();
}else if (msg.containsKey("shortName")){
shortName = msg.get("shortName").toString();
}
List<Map<String, Object>> allSupplier=new ArrayList<>();
//查询所有供应商信息,传入的参数为模糊查询的参数
allSupplier = supplierMapper.getAllSupplier(name,shortName);
return new ResponseResult(HttpStatus.SUCCESS,"操作成功",allSupplier);
}
//@Override
public ResponseResult changeSupplierState(Map<String, Object> msg) {
try {
checkNotBlank(msg.get("supplierId"), "supplierId不能为空");
checkNotBlank(msg.get("state"), "state不能为空");
} catch (IllegalArgumentException e) {
return new ResponseResult(HttpStatus.ERROR, ReturnMsg.ERROR,e.getMessage());
}
Supplier supplier =new Supplier();
supplier.setId(msg.get("supplierId").toString());
supplier.setState((Integer) msg.get("state"));
supplierMapper.changeSupplierState(supplier);
return new ResponseResult(HttpStatus.SUCCESS,ReturnMsg.PASS);
}
private LambdaQueryWrapper<Supplier> createWrapper(SupplierReq req) {
private LambdaQueryWrapper<Supplier> createWrapper(QuerySupplierReq req) {
LambdaQueryWrapper<Supplier> wrapper = new LambdaQueryWrapper<>();
if (ObjectUtil.isEmpty(req)) {
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.bean.query.SupplierTypeReq;
import com.junmp.jyzb.entity.SupplierType;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import com.junmp.jyzb.mapper.SupplierTypeMapper;
import com.junmp.jyzb.service.SupplierTypeService;
@Service
public class SupplierTypeServiceImpl implements SupplierTypeService{
public class SupplierTypeServiceImpl extends ServiceImpl<SupplierTypeMapper, SupplierType> implements SupplierTypeService{
@Resource
private SupplierTypeMapper supplierTypeMapper;
private LambdaQueryWrapper<SupplierType> createWrapper(SupplierTypeReq req) {
LambdaQueryWrapper<SupplierType> wrapper = new LambdaQueryWrapper<>();
if (ObjectUtil.isEmpty(req)) {
return wrapper;
}
//根据供应商短码查询查询
wrapper.in(ObjectUtil.isNotEmpty(req.getSupplierId()), SupplierType::getSupplierId, req.getSupplierId());
//供应商ID模糊查询
wrapper.in(ObjectUtil.isNotEmpty(req.getTypeId()), SupplierType::getTypeId, req.getTypeId());
//根据创建时间降序
wrapper.orderByDesc(SupplierType::getCreateTime);
return wrapper;
}
}
......@@ -3,14 +3,9 @@ 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.api.bean.req.WarehouseAreaReq;
import com.junmp.jyzb.api.exception.enums.ProductExceptionEnum;
import com.junmp.jyzb.api.bean.query.WarehouseAreaReq;
import com.junmp.jyzb.api.exception.enums.WarehouseAreaExceptionEnum;
import com.junmp.jyzb.entity.Product;
import com.junmp.jyzb.entity.Warehouse;
import com.junmp.jyzb.entity.WarehouseArea;
import com.junmp.jyzb.mapper.ProductMapper;
import com.junmp.v2.common.exception.base.ServiceException;
import com.junmp.v2.common.util.BeanPlusUtil;
import org.springframework.stereotype.Service;
......
......@@ -3,9 +3,9 @@ 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.WarehouseAreaReq;
import com.junmp.jyzb.api.bean.req.ProductReq;
import com.junmp.jyzb.api.bean.req.WarehouseReq;
import com.junmp.jyzb.api.bean.query.WarehouseAreaReq;
import com.junmp.jyzb.api.bean.query.ProductReq;
import com.junmp.jyzb.api.bean.query.WarehouseReq;
import com.junmp.jyzb.api.exception.enums.WarehouseExceptionEnum;
import com.junmp.jyzb.entity.*;
import com.junmp.jyzb.mapper.*;
......
package com.junmp.jyzb.utils;
import org.omg.CORBA.NO_PERMISSION;
/**
* 返回状态码
......
......@@ -115,7 +115,7 @@
select cabinet_num from base_cabinet where id =#{id}
</select>
<select id="getAllCabinetByOrgList" parameterType="java.util.List" resultType="java.util.Map">
<select id="getAllCabinetByOrgList" parameterType="java.util.List" resultType="com.junmp.jyzb.entity.Cabinet">
select
c.id,
c.cabinet_num as cabinetNum,
......@@ -231,4 +231,30 @@ SET price_total = (
where c.id = #{updateId}
</if>
</update>
<select id="getOrgByCabinet" resultType="String">
select
o.org_id
from base_cabinet c
join pub_org o on c.org_id_int =o.org_id
where c.id = #{cabinetId}
</select>
<select id="getCabinetByOrgId" resultType="map">
select
c.id,
c.cabinet_num as cabinetNum,
c.name,
o.org_id as orgId,
o.org_name as orgName,
c.location,
c.state,
c.update_time as updateTime,
c.sum as sum,
c.in_sum as inSum,
c.out_sum as outSum
from base_cabinet c
left join pub_org o on c.org_id_int =o.org_id
where c.org_id_int = #{orgId}
</select>
</mapper>
\ No newline at end of file
......@@ -6,7 +6,6 @@
<!--@Table base_equipment_size-->
<id column="id" jdbcType="VARCHAR" property="id" />
<result column="type_id" jdbcType="VARCHAR" property="typeId" />
<result column="detail_id" jdbcType="VARCHAR" property="detailId" />
<result column="code" jdbcType="INTEGER" property="code" />
<result column="name" jdbcType="VARCHAR" property="name" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
......@@ -19,55 +18,4 @@
id, type_id, detail_id, code, `name`, create_time, update_time, note, epc_type
</sql>
<insert id="addSize" parameterType="com.junmp.jyzb.entity.EquipmentSize">
insert into base_equipment_size
(id,type_id,code,name,create_time,update_time,note,price,state,epc_type)
values
(#{id},#{typeId},#{code},#{name},#{createTime},#{updateTime},#{note},#{price},#{state},#{epcType})
</insert>
<select id="getOneSize" resultType="Map">
select id,code,name,note,price,state,epc_type as epcType from base_equipment_size p
where p.id=#{id}
</select>
<update id="deleteSize">
update base_equipment_size w
set state = #{state}
where w.id =#{id}
</update>
<update id="updateSize">
update base_equipment_size p
set type_id = #{typeId},code=#{code},name=#{name},update_time=#{updateTime},note=#{note},price=#{price},state=#{state},epc_type=#{epcType}
where p.id =#{id}
</update>
<select id="getAllSizeId" resultType="String">
select id
from base_equipment_size w
where type_id=#{typeId}
</select>
<update id="changeSizeState">
update base_equipment_size w
set state = #{state}
where w.id =#{id}
</update>
<select id="getSizeByCode" resultType="String">
select code
from base_equipment_size s
where code=#{code}
</select>
<!-- <select id="getCodeById" resultType="java.lang.String">-->
<!-- select from where id =#{id}-->
<!-- </select>-->
<select id="getSizeDevelop" resultType="Map">
select
*
from base_equipment_size
</select>
</mapper>
\ No newline at end of file
......@@ -18,144 +18,6 @@
id, `name`, code, parent_id, create_time, update_time, `state`, note
</sql>
<select id="selectAllEquipment" resultType="com.junmp.jyzb.entity.EquipmentType">
SELECT id,name,unit,unit_type,code,parent_id,state,note,code,create_time,update_time,type
FROM base_equipment_type
where type = 0
</select>
<!-- <where>-->
<!-- <if test="SelectTypeId != null">-->
<!-- AND id LIKE CONCAT(#{SelectTypeId})-->
<!-- </if>-->
<!-- <if test="SelectState != null">-->
<!-- AND state LIKE CONCAT(#{SelectState})-->
<!-- </if>-->
<!-- </where>-->
<!-- <if test="SelectTypeId != null and SelectTypeId != ''">-->
<!-- AND id LIKE CONCAT(#{SelectTypeId})-->
<!-- </if>-->
<!-- <if test="SelectState != null and SelectState != ''">-->
<!-- AND state LIKE CONCAT(#{SelectState})-->
<!-- </if>-->
<!--SELECT id,name,unit,unit_type,code,parent_id,state,note,-->
<!-- CASE-->
<!-- WHEN update_time IS NULL THEN create_time-->
<!-- ELSE update_time-->
<!-- END AS update_time-->
<!-- FROM base_equipment_type-->
<insert id="addEquipment" parameterType="com.junmp.jyzb.entity.EquipmentType">
insert into base_equipment_type
(id,name,unit_type,code,parent_id,create_time,update_time,state,note)
values
(#{id},#{name},#{unitType},#{id},#{parentId},#{createTime},#{updateTime},1,#{note})
</insert>
<update id="changeEquipmentState">
update base_equipment_type w
set w.state = #{state}
where w.id = #{id}
</update>
<!--<update id="changeEquipmentState">-->
<!-- update base_equipment_type w,base_supplier_id i-->
<!-- set w.state = #{state},i.state = #{state}-->
<!-- where w.id =#{id} and i.type_id = #{id}-->
<!-- </update>-->
<delete id="deleteEquipment">
delete from base_equipment_type w
where id =#{id}
</delete>
<update id="updateEquipment">
update base_equipment_type p
set name = #{name},unit_type=#{unitType},code=#{id},update_time=#{updateTime},parent_id=#{parentId},note=#{note}
where p.id =#{id}
</update>
<select id="getAllEquipmentId" resultType="String">
select id
from base_equipment_type w
</select>
<select id="getAll" resultType="Map">
select id,parent_id as parentId from base_equipment_type
</select>
<insert id="addData" parameterType="java.util.List">
INSERT INTO base_equipment_id (id, parent_id)
VALUES
<foreach collection="list" item="item" index="index" separator=",">
(#{item.id}, #{item.parentId})
</foreach>
</insert>
<select id="getIdByParentId" resultType="String">
select id
from base_equipment_id i
where parent_id = #{parentId}
</select>
<insert id="addSupplier" parameterType="com.junmp.jyzb.entity.EquipmentType">
INSERT INTO base_supplier_type (id,supplier_id,type_id,state,create_time,update_time)
VALUES
<foreach collection="supplierList" item="supplier" separator=",">
(#{uuid}, #{supplier},#{equipmentType.id},1,#{equipmentType.createTime},#{equipmentType.updateTime})
</foreach>
</insert>
<update id="setCalculationId">
update base_equipment_id i
set id = #{numStr}
where i.parent_id =#{parentId}
</update>
<select id="getOneEquipmentId" resultType="String">
select id
from base_equipment_type t
where t.id =#{numStr}
</select>
<delete id="deleteSupplier">
delete from base_supplier_type w
where type_id =#{id}
</delete>
<select id="getOneEquipment" resultType="Map">
select id,parent_id as parentId,name,unit_type as unitType,code,create_time as createTime,update_time as updateTime,state from base_equipment_type
</select>
<select id="getSupplierByTypeId" resultType="java.util.Map">
SELECT s.name
FROM base_supplier_type t
left join base_supplier s on t.supplier_id = s.id
WHERE type_id = #{id}
</select>
<select id="getLowestTypeId" resultType="String">
select id
from base_equipment_type w
</select>
<select id="getChildByParentId" resultType="Map">
select
id,
name,
unit,
unit_type as unitType,
code,
parent_id as parentId,
state,
note,
create_time as createTime,
update_time as updateTime
from base_equipment_type
where parent_id = #{equipmentId}
</select>
<update id="wipeParentIdsData">
UPDATE base_equipment_type t
......@@ -183,9 +45,4 @@ JOIN cte ON p.id = cte.id
SET p.parent_ids = cte.parent_ids;
</update>
<select id="getEquipmentDevelop" resultType="Map">
select
*
from base_equipment_type
</select>
</mapper>
\ No newline at end of file
......@@ -39,6 +39,7 @@
p.sex,
p.phone,
p.photo,
COALESCE(p.cabinet_box_id,null) as cabinetBoxId,
p.police_code AS policeCode,
c.id AS cabinetId,
c.name AS cabinetName,
......@@ -177,6 +178,7 @@
p.org_id_int AS orgId,
o.org_name AS orgName,
p.name AS name,
COALESCE(p.cabinet_box_id,null) as cabinetBoxId,
p.sex,
p.phone,
p.photo,
......
<?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.SupplierEquipmentMapper">
<resultMap id="BaseResultMap" type="com.junmp.jyzb.entity.SupplierEquipment">
<!--@mbg.generated-->
<!--@Table base_supplier_equipment-->
<id column="id" jdbcType="VARCHAR" property="id" />
<result column="supplier_id" jdbcType="VARCHAR" property="supplierId" />
<result column="type_id" jdbcType="VARCHAR" property="typeId" />
<result column="state" jdbcType="INTEGER" property="state" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
<result column="update_user" jdbcType="VARCHAR" property="updateUser" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
id, supplier_id, type_id, `state`, create_time, update_time, update_user
</sql>
</mapper>
\ No newline at end of file
......@@ -5,9 +5,7 @@
<!--@mbg.generated-->
<!--@Table base_supplier-->
<id column="id" jdbcType="VARCHAR" property="id" />
<result column="equipment_id" jdbcType="VARCHAR" property="equipmentId" />
<result column="name" jdbcType="VARCHAR" property="name" />
<result column="supplier_code" jdbcType="VARCHAR" property="supplierCode" />
<result column="short_name" jdbcType="VARCHAR" property="shortName" />
<result column="contacts" jdbcType="VARCHAR" property="contacts" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
......@@ -21,76 +19,5 @@
update_time, update_user
</sql>
<insert id="addSupplier" parameterType="com.junmp.jyzb.entity.Supplier">
insert into base_supplier
(id,name,code,short_name,contacts,phone,create_time,update_time,create_user,state)
values
(#{id},#{name},#{code},#{shortName},#{contacts},#{phone},#{createTime},#{updateTime},#{createUser},1)
</insert>
<!-- <select id="getOneSupplier" resultType="Map">-->
<!-- SELECT id, name, code, short_name AS shortName, contacts, phone, update_user,-->
<!-- CASE-->
<!-- WHEN update_time IS NULL THEN create_time-->
<!-- ELSE update_time-->
<!-- END AS updateTime-->
<!-- FROM base_supplier-->
<!-- WHERE id = #{id}-->
<!-- </select>-->
<!--CASE-->
<!-- WHEN update_time IS NULL THEN create_time-->
<!-- ELSE update_time-->
<!-- END AS updateTime-->
<select id="getOneSupplier" resultType="Map">
SELECT id, name, code, short_name AS shortName, contacts, phone, update_user,state
FROM base_supplier
WHERE code = #{code}
<if test="SelectName != null and SelectName != ''">
AND name LIKE CONCAT('%', #{SelectName}, '%')
</if>
<if test="SelectCode != null and SelectCode != ''">
AND code LIKE CONCAT('%', #{SelectCode}, '%')
</if>
</select>
<update id="deleteSupplier">
update base_supplier w
set delete_flag = 1
where w.id =#{id}
</update>
<update id="updateSupplier">
update base_supplier p
set name=#{name},code=#{code},short_name=#{shortName},contacts=#{contacts},phone=#{phone},
update_time=#{updateTime},update_user=#{updateUser}
where p.id =#{id}
</update>
<select id="getAllSupplierId" resultType="String">
select id
from base_supplier w
</select>
<update id="changeSupplierState">
update base_supplier p
set state = #{state}
where p.id =#{id}
</update>
<select id="getAllSupplier" resultType="Map">
SELECT id, name, code, short_name AS shortName, contacts, phone, update_time as updateTime,state
FROM base_supplier
<if test="name != '' or shortName != ''">
WHERE
</if>
<if test="name != null and name != ''">
name LIKE CONCAT('%', #{name}, '%')
</if>
<if test="shortName != null and shortName != ''">
<if test="name != null and name != ''">AND</if>
short_name LIKE CONCAT('%', #{shortName}, '%')
</if>
</select>
</mapper>
\ No newline at end of file
......@@ -31,6 +31,7 @@
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="jyzb-api" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.11.4" level="project" />
<orderEntry type="library" name="Maven: p6spy:p6spy:3.9.1" level="project" />
<orderEntry type="library" name="Maven: mysql:mysql-connector-java:8.0.21" level="project" />
......
......@@ -4,7 +4,7 @@
server:
tomcat:
uri-encoding: UTF-8 #tomcat编码
port: 10031 #tomcat端口
port: 10030 #tomcat端口
spring:
main:
#bea同名类进行注册时,准许覆盖注册
......
artifactId=jyzb-mq-consumer
groupId=com.junmp.jyzb
version=1.0.0
artifactId=jyzb-mq-producer
groupId=com.junmp.jyzb
version=1.0.0
......@@ -5,7 +5,7 @@ package com.junmp.junmpProcess.common;
* @create 2022-10-10 17:40
*/
public interface WorkFlowConstants {
String PROCESS_PREFIX = "Flowable";
String PROCESS_PREFIX = "Process_";
String START_EVENT_ID = "startEventNode";
String END_EVENT_ID = "endEventNode";
String EXPRESSION_CLASS = "exUtils.";
......
package com.junmp.junmpProcess.controller;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.map.MapUtil;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.junmp.junmpProcess.common.R;
import com.junmp.junmpProcess.common.Result;
import com.junmp.junmpProcess.dto.*;
import com.junmp.junmpProcess.dto.json.JunmpUserInfo;
import com.junmp.junmpProcess.dto.json.UserInfo;
import com.junmp.junmpProcess.entity.ProcessTemplates;
import com.junmp.junmpProcess.exception.WorkFlowException;
import com.junmp.junmpProcess.service.Repository.ProcessTemplateService;
import com.junmp.junmpProcess.utils.BpmnConvert;
import com.junmp.junmpProcess.utils.FormAndOrder;
import com.junmp.junmpProcess.vo.*;
import com.junmp.jyzb.api.bean.req.ProcessReq.FormReq;
import com.junmp.jyzb.api.bean.req.ProcessReq.SuspendOrActivateDefinitionReq;
import com.junmp.jyzb.api.bean.req.ProductSkuReq;
import com.junmp.jyzb.api.bean.vo.TagInfoVo;
import com.junmp.jyzb.entity.ProductSku;
import com.junmp.jyzb.api.bean.query.ProcessReq.FormReq;
import com.junmp.jyzb.api.bean.query.ProcessReq.SuspendOrActivateDefinitionReq;
import com.junmp.jyzb.utils.HttpStatus;
import com.junmp.jyzb.utils.ResponseResult;
import com.junmp.jyzb.utils.ReturnMsg;
......@@ -32,28 +15,11 @@ 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.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import com.junmp.junmpProcess.service.Bussiness.WorkProcessService;
import org.flowable.bpmn.model.BpmnModel;
import org.flowable.bpmn.model.FlowElement;
import org.flowable.common.engine.impl.identity.Authentication;
import org.flowable.engine.*;
import org.flowable.engine.repository.Deployment;
import org.flowable.engine.repository.ProcessDefinition;
import org.flowable.engine.runtime.ActivityInstance;
import org.flowable.engine.runtime.ProcessInstance;
import org.flowable.engine.runtime.ProcessInstanceBuilder;
import org.flowable.task.api.DelegationState;
import org.flowable.task.api.Task;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.sql.DataSource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
......@@ -121,11 +87,11 @@ public class BpmnController {
public ApiRes<Boolean> createForm(@RequestBody FormReq formReq) {
return ApiRes.success(WorkProcessService.createNewForm(formReq));
}
// @ApiOperation("终止流程")
// @PostMapping("StopProcessInstanceById")
// public ApiRes<Boolean> stopProcessInstanceById(@RequestBody HandleDataDTO handleDataDTO) {
// return ApiRes.success(WorkProcessService.suspendOrActivateProcessDefinitionById(req));
// }
@ApiOperation("终止流程")
@PostMapping("StopProcessInstanceById")
public ApiRes<Boolean> stopProcessInstanceById(@RequestBody HandleDataDTO handleDataDTO) {
return WorkProcessService.stopProcessInstanceById(handleDataDTO);
}
@ApiOperation("挂起流程实例")
@PostMapping("SuspendOrActivateDefinition")
public ApiRes<Boolean> SuspendOrActivateDefinition(@RequestBody SuspendOrActivateDefinitionReq req) {
......@@ -136,6 +102,11 @@ public class BpmnController {
public ApiRes<Boolean> start(@RequestBody StartProcessInstanceDTO startProcessInstanceDTO) {
return WorkProcessService.start(startProcessInstanceDTO);
}
@ApiOperation("通过流程定义查看详情")
@PostMapping("instanceInfo")
public ApiRes<HandleDataVO> instanceInfo(@RequestBody HandleDataDTO handleDataDTO) {
return WorkProcessService.instanceInfo(handleDataDTO);
}
@ApiOperation("查看我发起的流程")
@PostMapping("applyList")
public ApiRes<PageResult<HistoryProcessInstanceVO>> applyList(@RequestBody ApplyDTO ApplyDTO) {
......@@ -151,6 +122,11 @@ public class BpmnController {
public ResponseResult agree(@RequestBody HandleDataDTO handleDataDTO){
return WorkProcessService.agree(handleDataDTO);
}
@ApiOperation("查看我的已办")
@PostMapping("doneList")
public ApiRes<PageResult<TaskVO>> doneList(@RequestBody TaskDTO taskDTO){
return ApiRes.success(WorkProcessService.doneList(taskDTO));
}
@ApiOperation("撤销按钮")
@PostMapping("revoke")
public ResponseResult revoke(@RequestBody HandleDataDTO handleDataDTO){
......
......@@ -17,6 +17,7 @@ import com.junmp.v2.sys.api.bean.user.vo.QueryUserInfoVo;
import org.flowable.bpmn.model.Process;
import org.flowable.bpmn.model.UserTask;
import org.flowable.engine.RepositoryService;
import org.flowable.engine.TaskService;
import org.flowable.engine.delegate.DelegateExecution;
import org.flowable.engine.delegate.ExecutionListener;
import com.junmp.junmpProcess.enums.AssigneeTypeEnums;
......@@ -38,12 +39,15 @@ import static com.junmp.junmpProcess.utils.BpmnModelUtils.getChildNode;
@Component
public class CounterSignListener implements ExecutionListener {
@Resource
private TaskService taskService;
@Resource
private RepositoryService repositoryService;
@Resource
private OrgUserMapper orgUserMapper;
@Override
public void notify(DelegateExecution execution) {
String currentActivityId = execution.getCurrentActivityId();
Process mainProcess = repositoryService.getBpmnModel(execution.getProcessDefinitionId()).getMainProcess();
UserTask userTask = (UserTask) mainProcess.getFlowElement(currentActivityId);
String flowJson = mainProcess.getAttributeValue("http://flowable.org/bpmn", "Junmp");
......@@ -65,6 +69,7 @@ public class CounterSignListener implements ExecutionListener {
String Type=group.getApproverType();
if (Type.equals("1"))//指定人员,不处理
{
List<String> assignedUser = group.getApproverIds();
for (String userInfo : assignedUser) {
assigneeList.add(userInfo);
......@@ -136,7 +141,7 @@ public class CounterSignListener implements ExecutionListener {
else if (Type.equals("5"))//上级审批
{
LoginUser StartUser= LoginContext.getContext().getLoginUser();
List<UserListDTO> userList= orgUserMapper.QueryUserParentOrg(StartUser.getUserId().toString());
List<UserListDTO> userList= orgUserMapper.QueryUserWithParentOrg(StartUser.getUserId().toString());
if (userList.size()<=0)//没有上级则本身已是上级
{
......@@ -147,14 +152,18 @@ public class CounterSignListener implements ExecutionListener {
{
for (UserListDTO userId :userList)
{
assigneeList.add(userId.getUserID());
assigneeList.add("1");
// assigneeList.add(userId.getUserID());
}
}
}
if (assigneeList.size()!=0)
{execution.setVariable(variable, assigneeList);}
{
execution.setVariable(variable, assigneeList);
}
} else {
}
......
......@@ -32,6 +32,7 @@ public class GlobalEndListener extends AbstractFlowableEngineEventListener {
//流程结束后工作在这里写
//得到流程定义id
String processDefinitionId = event.getProcessDefinitionId();
//得到流程实例id
String processInstanceId = event.getProcessInstanceId();
/**
......
......@@ -21,6 +21,7 @@ public class ProcessListener implements ExecutionListener {
@Override
public void notify(DelegateExecution execution) {
execution.setVariable(PROCESS_STATUS, BUSINESS_STATUS_4);
}
}
//package com.junmp.junmpProcess.listener;
//
//import org.flowable.engine.RepositoryService;
//import org.flowable.engine.RuntimeService;
//import org.flowable.engine.TaskService;
//import org.flowable.engine.delegate.TaskListener;
//import org.flowable.task.service.delegate.DelegateTask;
//import com.junmp.junmpProcess.utils.SpringContextHolder;
//import org.springframework.stereotype.Component;
//
//import javax.annotation.Resource;
//
///**
// * @author LoveMyOrange
// * @create 2022-10-15 14:51
// */
//@Component
//public class TaskCreatedListener implements TaskListener {
// @Resource
// private TaskService taskService;
// @Resource
// private RepositoryService repositoryService;
//
// @Override
// public void notify(DelegateTask delegateTask) {
// String taskDefinitionKey = delegateTask.getTaskDefinitionKey();
// if ("root".equalsIgnoreCase(taskDefinitionKey)) {
// taskService.complete(delegateTask.getId());
// } else {
// if ("100000".equals(delegateTask.getAssignee())) {
// Object autoRefuse = delegateTask.getVariable("autoRefuse");
// if (autoRefuse == null) {
// taskService.addComment(delegateTask.getId(), delegateTask.getProcessInstanceId(), "opinion", "审批人为空,自动通过");
// taskService.complete(delegateTask.getId());
// } else {
// taskService.addComment(delegateTask.getId(), delegateTask.getProcessInstanceId(), "opinion", "审批人为空,自动驳回");
// RuntimeService runtimeService = SpringContextHolder.getBean(RuntimeService.class);
// runtimeService.deleteProcessInstance(delegateTask.getProcessInstanceId(), "审批人为空,自动驳回");
// }
// }
// }
// }
//}
package com.junmp.junmpProcess.listener;
import org.flowable.engine.RepositoryService;
import org.flowable.engine.RuntimeService;
import org.flowable.engine.TaskService;
import org.flowable.engine.delegate.TaskListener;
import org.flowable.task.service.delegate.DelegateTask;
import com.junmp.junmpProcess.utils.SpringContextHolder;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
/**
* @author LoveMyOrange
* @create 2022-10-15 14:51
*/
@Component
public class TaskCreatedListener implements TaskListener {
@Resource
private TaskService taskService;
@Resource
private RepositoryService repositoryService;
@Override
public void notify(DelegateTask delegateTask) {
String taskDefinitionKey = delegateTask.getTaskDefinitionKey();
if ("root".equalsIgnoreCase(taskDefinitionKey)) {
taskService.complete(delegateTask.getId());
} else {
if ("100000".equals(delegateTask.getAssignee())) {
Object autoRefuse = delegateTask.getVariable("autoRefuse");
if (autoRefuse == null) {
taskService.addComment(delegateTask.getId(), delegateTask.getProcessInstanceId(), "opinion", "审批人为空,自动通过");
taskService.complete(delegateTask.getId());
} else {
taskService.addComment(delegateTask.getId(), delegateTask.getProcessInstanceId(), "opinion", "审批人为空,自动驳回");
RuntimeService runtimeService = SpringContextHolder.getBean(RuntimeService.class);
runtimeService.deleteProcessInstance(delegateTask.getProcessInstanceId(), "审批人为空,自动驳回");
}
}
}
}
}
......@@ -23,5 +23,5 @@ public interface OrgUserMapper {
*/
public List<UserListDTO> QueryUserByRoleIdAndOrg(String roleId,String orgId);
public List<UserListDTO> QueryUserParentOrg(String userId);
public List<UserListDTO> QueryUserWithParentOrg(String userId);
}
package com.junmp.junmpProcess.service.Bussiness;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.junmp.junmpProcess.common.Result;
import com.junmp.junmpProcess.dto.*;
import com.junmp.junmpProcess.entity.ProcessTemplates;
import com.junmp.junmpProcess.vo.*;
import com.junmp.jyzb.api.bean.req.ProcessReq.FormReq;
import com.junmp.jyzb.api.bean.req.ProcessReq.SuspendOrActivateDefinitionReq;
import com.junmp.jyzb.entity.ProductSku;
import com.junmp.jyzb.api.bean.query.ProcessReq.FormReq;
import com.junmp.jyzb.api.bean.query.ProcessReq.SuspendOrActivateDefinitionReq;
import com.junmp.jyzb.utils.ResponseResult;
import com.junmp.v2.common.bean.request.BaseRequest;
import com.junmp.v2.common.bean.response.ApiRes;
......@@ -29,12 +26,12 @@ public interface WorkProcessService {
*/
Boolean createNewForm(FormReq processVO) ;
// /**
// * 挂起流程定义
// *
// * @return
// */
// Boolean stopProcessInstanceById(SuspendOrActivateDefinitionReq req) ;
/**
* 终止流程实例
*
* @return
*/
ApiRes<Boolean> stopProcessInstanceById(HandleDataDTO handleDataDTO) ;
/**
* 挂起流程定义
......@@ -101,6 +98,9 @@ public interface WorkProcessService {
*/
ApiRes<Boolean> start(StartProcessInstanceDTO startProcessInstanceDTO);
/**
* 查看我发起的流程
*
......@@ -120,7 +120,7 @@ public interface WorkProcessService {
*
* @return
*/
Result<Page<TaskVO>> doneList(@RequestBody TaskDTO taskDTO);
PageResult<TaskVO> doneList(@RequestBody TaskDTO taskDTO);
/**
* 同意
......@@ -205,7 +205,7 @@ public interface WorkProcessService {
*
* @return
*/
Result<HandleDataVO> instanceInfo(HandleDataDTO HandleDataDTO);
ApiRes<HandleDataVO> instanceInfo(HandleDataDTO HandleDataDTO);
// /**
// * 上传文件
// * @return
......
......@@ -27,9 +27,8 @@ import com.junmp.junmpProcess.service.Repository.ProcessTemplateService;
import com.junmp.junmpProcess.utils.IdWorker;
import com.junmp.junmpProcess.utils.SpringContextHolder;
import com.junmp.junmpProcess.vo.*;
import com.junmp.jyzb.api.bean.req.ProcessReq.FormReq;
import com.junmp.jyzb.api.bean.req.ProcessReq.SuspendOrActivateDefinitionReq;
import com.junmp.jyzb.entity.Inventory;
import com.junmp.jyzb.api.bean.query.ProcessReq.FormReq;
import com.junmp.jyzb.api.bean.query.ProcessReq.SuspendOrActivateDefinitionReq;
import com.junmp.jyzb.utils.HttpStatus;
import com.junmp.jyzb.utils.ResponseResult;
import com.junmp.jyzb.utils.ReturnMsg;
......@@ -58,7 +57,6 @@ import org.flowable.engine.repository.ProcessDefinition;
import org.flowable.engine.runtime.Execution;
import org.flowable.engine.runtime.ProcessInstance;
import org.flowable.engine.runtime.ProcessInstanceBuilder;
import org.flowable.engine.runtime.ProcessInstanceQuery;
import org.flowable.engine.task.Attachment;
import org.flowable.engine.task.Comment;
import org.flowable.task.api.DelegationState;
......@@ -212,6 +210,46 @@ public class WorkProcessServiceImpl extends ServiceImpl<ProcessTemplatesMapper,
return pageResult;
}
public List<EndEvent> findEndFlowElement(String processDefId) {
BpmnModel bpmnModel = repositoryService.getBpmnModel(processDefId);
if (bpmnModel != null) {
Process process = bpmnModel.getMainProcess();
return process.findFlowElementsOfType(EndEvent.class);
} else {
return null;
}
}
// /**
// * @Author: Zhaojw
// * @Description: 终止流程实例
// * @DateTime: 2023/7/24 15:17
// * @Params:
// * @Return
// */
public ApiRes<Boolean> stopProcessInstanceById(HandleDataDTO handleDataDTO)
{
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(handleDataDTO.getProcessInstanceId()).singleResult();
if (processInstance != null) {
//2、执行终止
List<Execution> executions = runtimeService.createExecutionQuery().parentId(handleDataDTO.getProcessInstanceId()).list();
List<String> executionIds = new ArrayList<>();
List<EndEvent> endNodes = this.findEndFlowElement(processInstance.getProcessDefinitionId());
String endId = endNodes.get(0).getId();
executions.forEach(execution -> executionIds.add(execution.getId()));
runtimeService.createChangeActivityStateBuilder()
.moveExecutionsToSingleActivityId(executionIds, endId)
.changeState();
return ApiRes.success(true);
}else {
return ApiRes.failure("不存在运行的流程实例,请确认!");
}
}
/**
* @Author: Zhaojw
* @Description: 创建新表单
......@@ -241,7 +279,6 @@ public class WorkProcessServiceImpl extends ServiceImpl<ProcessTemplatesMapper,
if (req.getIsStop() == true){
repositoryService.suspendProcessDefinitionById(req.getProcessDefinitionId(), true, null);
processTemplates.setIsStop(true);
}else {
processTemplates.setIsStop(false);
repositoryService.activateProcessDefinitionById(req.getProcessDefinitionId(), true, null);
......@@ -274,8 +311,8 @@ public class WorkProcessServiceImpl extends ServiceImpl<ProcessTemplatesMapper,
BpmnModel bpmnModel = toBpmn(processJsonNode,formJsonNode,formName,templateId);
Deployment deploy = repositoryService.createDeployment()
.addBpmnModel(templateId+".bpmn20.xml", bpmnModel)
.name(templateId)
.addBpmnModel(formName+".bpmn20.xml", bpmnModel)
.name(formName)
.category(templateId)
.deploy();
......@@ -376,8 +413,8 @@ public class WorkProcessServiceImpl extends ServiceImpl<ProcessTemplatesMapper,
Deployment deploy = repositoryService.createDeployment()
.addBpmnModel(process.getTemplateId()+".bpmn20.xml", bpmnModel)
.name(process.getTemplateId())
.addBpmnModel(formName+".bpmn20.xml", bpmnModel)
.name(formName)
.category(process.getTemplateId())
.deploy();
return true;
......@@ -554,11 +591,7 @@ public class WorkProcessServiceImpl extends ServiceImpl<ProcessTemplatesMapper,
userTask.setId(id);
userTask.setName(node.get("name").toString());
// 设置多实例
// userTask.setAssignee("${user}");
MultiInstanceLoopCharacteristics multiInstanceLoopCharacteristics = new MultiInstanceLoopCharacteristics();
// if (node.getAssignee().getMultiMode().equals("顺序审批")) {
// multiInstanceLoopCharacteristics.setSequential(true);
// }
multiInstanceLoopCharacteristics.setElementVariable("user");
// 完成条件
multiInstanceLoopCharacteristics.setCompletionCondition("${nrOfInstances == nrOfCompletedInstances}");
......@@ -639,15 +672,11 @@ public class WorkProcessServiceImpl extends ServiceImpl<ProcessTemplatesMapper,
processVariables.put(FORM_VAR,formData);
processVariables.put(START_USER_INFO,JSONObject.toJSONString(StartUser));
processVariables.put(PROCESS_STATUS,BUSINESS_STATUS_1);
// processVariables.put("initiator",JSONObject.toJSONString(startUserInfo));
ArrayList<LoginUser> userInfos = CollUtil.newArrayList(StartUser);
Map formValue = JSONObject.parseObject(formData.toJSONString(), new TypeReference<Map>() {
});
processVariables.putAll(formValue);
ProcessInstanceBuilder processInstanceBuilder = runtimeService.createProcessInstanceBuilder();
ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionKey(processInstanceDto.getProcessDefinitionId())
.latestVersion().singleResult();
......@@ -667,12 +696,12 @@ public class WorkProcessServiceImpl extends ServiceImpl<ProcessTemplatesMapper,
.businessStatus(BUSINESS_STATUS_1)
.start();
//手动完成第一个任务
Task task = taskService.createTaskQuery().processInstanceId(processInstance.getId()).singleResult();
Object ts=new Object();
if(task!=null){
taskService.complete(task.getId());
}
// Task task = taskService.createTaskQuery().processInstanceId(processInstance.getId()).singleResult();
// Object ts=new Object();
// if(task!=null){
// taskService.complete(task.getId());
//
// }
return ApiRes.success(true);
}
catch (Exception e){
......@@ -711,6 +740,11 @@ public class WorkProcessServiceImpl extends ServiceImpl<ProcessTemplatesMapper,
Map<String, Object> processVariables = historicProcessInstance.getProcessVariables();
HistoryProcessInstanceVO historyProcessInstanceVO = new HistoryProcessInstanceVO();
historyProcessInstanceVO.setProcessInstanceId(historicProcessInstance.getId());
BpmnModel bpmnModel = repositoryService.getBpmnModel(historicProcessInstance.getProcessDefinitionId());
String Name= bpmnModel.getMainProcess().getName();
historyProcessInstanceVO.setProcessDefinitionName(historicProcessInstance.getProcessDefinitionName());
historyProcessInstanceVO.setStartUser(JSONObject.parseObject(MapUtil.getStr(processVariables, START_USER_INFO), new TypeReference<UserInfo>() {
}));
......@@ -792,7 +826,7 @@ public class WorkProcessServiceImpl extends ServiceImpl<ProcessTemplatesMapper,
* @return
*/
@Override
public Result<Page<TaskVO>> doneList(TaskDTO taskDTO) {
public PageResult<TaskVO> doneList(TaskDTO taskDTO) {
LoginUser StartUser= LoginContext.getContext().getLoginUser();
List<HistoricTaskInstance> tasks = historyService.createHistoricTaskInstanceQuery()
.taskAssignee(StartUser.getUserId().toString())
......@@ -837,7 +871,9 @@ public class WorkProcessServiceImpl extends ServiceImpl<ProcessTemplatesMapper,
page.setCurrent(taskDTO.getPageNo());
page.setSize(taskDTO.getPageSize());
page.setTotal(count);
return Result.OK(page);
return PageResultFactory.createPageResult(page);
}
......@@ -907,9 +943,9 @@ public class WorkProcessServiceImpl extends ServiceImpl<ProcessTemplatesMapper,
}
}
if (StringUtils.isNotBlank(handleDataDTO.getSignInfo())) {
taskService.addComment(task.getId(), task.getProcessInstanceId(), "sign", handleDataDTO.getSignInfo());
}
// if (StringUtils.isNotBlank(handleDataDTO.getSignInfo())) {
// taskService.addComment(task.getId(), task.getProcessInstanceId(), "sign", handleDataDTO.getSignInfo());
// }
taskService.complete(task.getId());
......@@ -1237,11 +1273,12 @@ public class WorkProcessServiceImpl extends ServiceImpl<ProcessTemplatesMapper,
}
@Override
public Result<HandleDataVO> instanceInfo(HandleDataDTO HandleDataDTO) {
public ApiRes<HandleDataVO> instanceInfo(HandleDataDTO HandleDataDTO) {
String processInstanceId = HandleDataDTO.getProcessInstanceId();
HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery().processInstanceId(processInstanceId)
.includeProcessVariables().singleResult();
String processDefinitionKey = historicProcessInstance.getProcessDefinitionKey();
String pro=processDefinitionKey.replace(PROCESS_PREFIX, "");
ProcessTemplates processTemplates = processTemplateService.getById(processDefinitionKey.replace(PROCESS_PREFIX, ""));
// processTemplates.setLogo(processTemplates.getIcon());
processTemplates.setFormId(processTemplates.getTemplateId());
......@@ -1259,40 +1296,40 @@ public class WorkProcessServiceImpl extends ServiceImpl<ProcessTemplatesMapper,
});
SettingsInfo settingsInfo = JSONObject.parseObject(processTemplates.getSettings(), new TypeReference<SettingsInfo>() {
});
Boolean sign = settingsInfo.getSign();
// Boolean sign = settingsInfo.getSign();
ChildNode currentNode = null;
if (StringUtils.isNotBlank(HandleDataDTO.getTaskId())) {
HistoricTaskInstance historicTaskInstance = historyService.createHistoricTaskInstanceQuery().taskId(HandleDataDTO.getTaskId()).singleResult();
currentNode = getChildNode(childNode, historicTaskInstance.getTaskDefinitionKey());
List<FormOperates> formPerms = currentNode.getProps().getFormPerms();
if (CollUtil.isNotEmpty(formPerms)) {
Iterator<FormOperates> iterator = formPerms.iterator();
while (iterator.hasNext()) {
FormOperates next = iterator.next();
if ("H".equals(next.getPerm())) {
iterator.remove();
if (jsonObject != null) {
jsonObject.remove(next.getId());
}
}
}
}
// List<FormOperates> formPerms = currentNode.getProps().getFormPerms();
// if (CollUtil.isNotEmpty(formPerms)) {
// Iterator<FormOperates> iterator = formPerms.iterator();
// while (iterator.hasNext()) {
// FormOperates next = iterator.next();
// if ("H".equals(next.getPerm())) {
// iterator.remove();
// if (jsonObject != null) {
// jsonObject.remove(next.getId());
// }
// }
// }
// }
handleDataVO.setCurrentNode(currentNode);
handleDataVO.setTaskId(HandleDataDTO.getTaskId());
}
if (sign) {
handleDataVO.setSignFlag(true);
}
if (StringUtils.isNotBlank(HandleDataDTO.getTaskId())) {
if (currentNode != null) {
if (currentNode.getProps().getSign()) {
handleDataVO.setSignFlag(true);
} else {
handleDataVO.setSignFlag(false);
}
}
}
// if (sign) {
// handleDataVO.setSignFlag(true);
// }
// if (StringUtils.isNotBlank(HandleDataDTO.getTaskId())) {
// if (currentNode != null) {
// if (currentNode.getProps().getSign()) {
// handleDataVO.setSignFlag(true);
// } else {
// handleDataVO.setSignFlag(false);
// }
// }
// }
List<HistoricActivityInstance> list = historyService.createHistoricActivityInstanceQuery().processInstanceId(historicProcessInstance.getId()).list();
Map<String, List<HistoricActivityInstance>> historicActivityInstanceMap = new HashMap<>();
......@@ -1377,7 +1414,7 @@ public class WorkProcessServiceImpl extends ServiceImpl<ProcessTemplatesMapper,
}
handleDataVO.setProcessTemplates(processTemplates);
handleDataVO.setDetailVOList(deatailMap);
return Result.OK(handleDataVO);
return ApiRes.success(handleDataVO);
}
private void collectUserTaskInfo(List<Comment> processInstanceComments,
......
......@@ -11,6 +11,7 @@ import org.flowable.bpmn.model.*;
import org.flowable.bpmn.model.Process;
import org.flowable.engine.TaskService;
import org.flowable.engine.delegate.ExecutionListener;
import org.flowable.engine.delegate.TaskListener;
import org.flowable.task.service.impl.persistence.entity.TaskEntity;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -62,7 +63,7 @@ public class BpmnConvert {
process.addFlowElement(endEvent);
// 三.递归绘制节点
drawNode("root",process, processNode,formNode, "_start", "_end", null);
drawNode("0",process, processNode,formNode, "_start", "_end", null);
// 四.自动布局
new BpmnAutoLayout(bpmnModel).execute();
// 五.转xml
......@@ -119,8 +120,9 @@ public class BpmnConvert {
* @return Inout
*/
private static Inout drawBzNode(Process process, JsonNode node,JsonNode formJson,String typeNode) {
// String id= "Node_"+UUID.randomUUID();
String id="Node_"+ node.get("id").asText();
// String id= "Node_"+UUID.randomUUID();
String id="root";
//创建发起人结点
UserTask task = new UserTask();
//设置结点ID
......@@ -129,11 +131,23 @@ public class BpmnConvert {
task.setName(node.get("name").asText());
//通过将 ${initiator} 作为指派人的值,可以将用户任务分配给流程的发起人。当流程实例启动时,${initiator} 会被替换为实际的发起人信息。
//需要注意的是,在使用表达式时,需要确保流程引擎的配置中启用了表达式语言(例如使用 Flowable 的默认配置,会启用表达式语言)。
task.setAssignee("${initiator}");
// task.setAssignee("${initiator}");
List<FormProperty> formProperties = formJsonToFormProperty(formJson);
task.setFormProperties(formProperties);
ArrayList<FlowableListener> taskListeners = new ArrayList<>();
FlowableListener taskListener = new FlowableListener();
// 事件类型,
taskListener.setEvent(TaskListener.EVENTNAME_CREATE);
// 监听器类型
taskListener.setImplementationType(IMPLEMENTATION_TYPE_DELEGATEEXPRESSION);
// 设置实现了,这里设置监听器的类型是delegateExpression,这样可以在实现类注入Spring bean.
taskListener.setImplementation("${taskCreatedListener}");
taskListeners.add(taskListener);
task.setTaskListeners(taskListeners);
//添加连线
process.addFlowElement(task);
return new Inout(id, id);
}
......@@ -175,11 +189,11 @@ public class BpmnConvert {
multiInstanceLoopCharacteristics.setInputDataItem(userTask.getId()+"assigneeList");
// 迭代集合
multiInstanceLoopCharacteristics.setElementVariable("assigneeName");
//
//
multiInstanceLoopCharacteristics.setSequential(false);
multiInstanceLoopCharacteristics.setCompletionCondition("${nrOfCompletedInstances/nrOfInstances > 0}");
userTask.setAssignee("${assigneeName}");
// 设置多实例属性
// 设置多实例属性
userTask.setLoopCharacteristics(multiInstanceLoopCharacteristics);
process.addFlowElement(userTask);
return new Inout(id, id);
......@@ -197,7 +211,12 @@ public class BpmnConvert {
listener.setEvent(ExecutionListener.EVENTNAME_START);//监听任务启动
listener.setImplementationType(IMPLEMENTATION_TYPE_DELEGATEEXPRESSION);
listener.setImplementation("${counterSignListener}");//启动角色分配监听事件
FlowableListener flowableListener = new FlowableListener();
flowableListener.setEvent(ExecutionListener.EVENTNAME_END);
flowableListener.setImplementationType(ImplementationType.IMPLEMENTATION_TYPE_DELEGATEEXPRESSION);
flowableListener.setImplementation("${processListener}");
taskListeners.add(listener);
taskListeners.add(flowableListener);
return taskListeners;
}
......
......@@ -200,507 +200,14 @@ public class BpmnModelUtils {
return endEvent;
}
// public static String FlowCreate(String fromId, FlowChildNode flowNode, Process process, BpmnModel bpmnModel, List<SequenceFlow> sequenceFlows, Map<String,ChildNode> childNodeMap) throws InvocationTargetException, IllegalAccessException {
// Integer nodeType = flowNode.getType();
// if (FlowType.CONCURRENTS.isEqual(nodeType)) {
// return createParallelGatewayBuilder(fromId, flowNode,process,bpmnModel,sequenceFlows,childNodeMap);
// } else if (FlowType.CONDITIONS.isEqual(nodeType)) {
// return createExclusiveGatewayBuilder(fromId, flowNode,process,bpmnModel,sequenceFlows,childNodeMap);
// } else if (FlowType.USER_TASK.isEqual(nodeType)) {
// childNodeMap.put(flowNode.getId(),flowNode);
// JSONObject incoming = flowNode.getIncoming();
// incoming.put("incoming", Collections.singletonList(fromId));
// String id = createTask(process,flowNode,sequenceFlows,childNodeMap);
// // 如果当前任务还有后续任务,则遍历创建后续任务
// ChildNode children = flowNode.getChildren();
// if (Objects.nonNull(children) &&StringUtils.isNotBlank(children.getId())) {
// return create(id, children,process,bpmnModel,sequenceFlows,childNodeMap);
// } else {
// return id;
// }
// }
// else if(Type.ROOT.isEqual(nodeType)){
// childNodeMap.put(flowNode.getId(),flowNode);
// JSONObject incoming = flowNode.getIncoming();
// incoming.put("incoming", Collections.singletonList(fromId));
// String id = createTask(process,flowNode,sequenceFlows,childNodeMap);
// // 如果当前任务还有后续任务,则遍历创建后续任务
// ChildNode children = flowNode.getChildren();
// if (Objects.nonNull(children) &&StringUtils.isNotBlank(children.getId())) {
// return create(id, children,process,bpmnModel,sequenceFlows,childNodeMap);
// } else {
// return id;
// }
// }
// else if(Type.DELAY.isEqual(nodeType)){
// throw new WorkFlowException("还不想写这个功能");
//// childNodeMap.put(flowNode.getId(),flowNode);
//// JSONObject incoming = flowNode.getIncoming();
//// incoming.put("incoming", Collections.singletonList(fromId));
//// String id = createTask(process,flowNode,sequenceFlows,childNodeMap);
//// // 如果当前任务还有后续任务,则遍历创建后续任务
//// ChildNode children = flowNode.getChildren();
//// if (Objects.nonNull(children) &&StringUtils.isNotBlank(children.getId())) {
//// return create(id, children,process,bpmnModel,sequenceFlows,childNodeMap);
//// } else {
//// return id;
//// }
// }
// else if(Type.TRIGGER.isEqual(nodeType)){
// throw new WorkFlowException("还不想写这个功能");
// }
// else if(Type.CC.isEqual(nodeType)){
// throw new WorkFlowException("代码呗回滚了 丢了,暂时先不做");
//// childNodeMap.put(flowNode.getId(),flowNode);
//// JSONObject incoming = flowNode.getIncoming();
//// incoming.put("incoming", Collections.singletonList(fromId));
//// String id = createServiceTask(process,flowNode,sequenceFlows,childNodeMap);
//// // 如果当前任务还有后续任务,则遍历创建后续任务
//// ChildNode children = flowNode.getChildren();
//// if (Objects.nonNull(children) &&StringUtils.isNotBlank(children.getId())) {
//// return create(id, children,process,bpmnModel,sequenceFlows,childNodeMap);
//// } else {
//// return id;
//// }
// }
// else {
// throw new RuntimeException("未知节点类型: nodeType=" + nodeType);
// }
// }
public static String create(String fromId, ChildNode flowNode, Process process, BpmnModel bpmnModel, List<SequenceFlow> sequenceFlows, Map<String, ChildNode> childNodeMap) throws InvocationTargetException, IllegalAccessException {
String nodeType = flowNode.getType();
if (Type.CONCURRENTS.isEqual(nodeType)) {
return createParallelGatewayBuilder(fromId, flowNode, process, bpmnModel, sequenceFlows, childNodeMap);
} else if (Type.CONDITIONS.isEqual(nodeType)) {
return createExclusiveGatewayBuilder(fromId, flowNode, process, bpmnModel, sequenceFlows, childNodeMap);
} else if (Type.USER_TASK.isEqual(nodeType)) {
childNodeMap.put(flowNode.getId(), flowNode);
JSONObject incoming = flowNode.getIncoming();
incoming.put("incoming", Collections.singletonList(fromId));
String id = createTask(process, flowNode, sequenceFlows, childNodeMap);
// 如果当前任务还有后续任务,则遍历创建后续任务
ChildNode children = flowNode.getChildNode();
if (Objects.nonNull(children) && StringUtils.isNotBlank(children.getId())) {
return create(id, children, process, bpmnModel, sequenceFlows, childNodeMap);
} else {
return id;
}
} else if (Type.ROOT.isEqual(nodeType)) {
childNodeMap.put(flowNode.getId(), flowNode);
JSONObject incoming = flowNode.getIncoming();
incoming.put("incoming", Collections.singletonList(fromId));
String id = createTask(process, flowNode, sequenceFlows, childNodeMap);
// 如果当前任务还有后续任务,则遍历创建后续任务
ChildNode children = flowNode.getChildNode();
if (Objects.nonNull(children) && StringUtils.isNotBlank(children.getId())) {
return create(id, children, process, bpmnModel, sequenceFlows, childNodeMap);
} else {
return id;
}
} else if (Type.DELAY.isEqual(nodeType)) {
throw new WorkFlowException("还不想写这个功能");
// childNodeMap.put(flowNode.getId(),flowNode);
// JSONObject incoming = flowNode.getIncoming();
// incoming.put("incoming", Collections.singletonList(fromId));
// String id = createTask(process,flowNode,sequenceFlows,childNodeMap);
// // 如果当前任务还有后续任务,则遍历创建后续任务
// ChildNode children = flowNode.getChildren();
// if (Objects.nonNull(children) &&StringUtils.isNotBlank(children.getId())) {
// return create(id, children,process,bpmnModel,sequenceFlows,childNodeMap);
// } else {
// return id;
// }
} else if (Type.TRIGGER.isEqual(nodeType)) {
throw new WorkFlowException("还不想写这个功能");
} else if (Type.CC.isEqual(nodeType)) {
throw new WorkFlowException("代码呗回滚了 丢了,暂时先不做");
// childNodeMap.put(flowNode.getId(),flowNode);
// JSONObject incoming = flowNode.getIncoming();
// incoming.put("incoming", Collections.singletonList(fromId));
// String id = createServiceTask(process,flowNode,sequenceFlows,childNodeMap);
// // 如果当前任务还有后续任务,则遍历创建后续任务
// ChildNode children = flowNode.getChildren();
// if (Objects.nonNull(children) &&StringUtils.isNotBlank(children.getId())) {
// return create(id, children,process,bpmnModel,sequenceFlows,childNodeMap);
// } else {
// return id;
// }
} else {
throw new RuntimeException("未知节点类型: nodeType=" + nodeType);
}
}
private static String createExclusiveGatewayBuilder(String formId, ChildNode flowNode, Process process, BpmnModel bpmnModel, List<SequenceFlow> sequenceFlows, Map<String, ChildNode> childNodeMap) throws InvocationTargetException, IllegalAccessException {
childNodeMap.put(flowNode.getId(), flowNode);
String name = flowNode.getName();
String exclusiveGatewayId = flowNode.getId();
ExclusiveGateway exclusiveGateway = new ExclusiveGateway();
exclusiveGateway.setId(exclusiveGatewayId);
exclusiveGateway.setName(name);
process.addFlowElement(exclusiveGateway);
process.addFlowElement(connect(formId, exclusiveGatewayId, sequenceFlows, childNodeMap, process));
if (Objects.isNull(flowNode.getConditionNodes()) && Objects.isNull(flowNode.getChildNode())) {
return exclusiveGatewayId;
}
List<ChildNode> flowNodes = flowNode.getConditionNodes();
List<String> incoming = Lists.newArrayListWithCapacity(flowNodes.size());
List<JSONObject> conditions = Lists.newCopyOnWriteArrayList();
for (ChildNode element : flowNodes) {
Boolean typeElse = element.getTypeElse();
if (Boolean.TRUE.equals(typeElse)) {
exclusiveGateway.setDefaultFlow(element.getId());
}
childNodeMap.put(element.getId(), element);
ChildNode childNode = element.getChildNode();
String nodeName = element.getName();
Properties props = element.getProps();
String expression = props.getExpression();
if (Objects.isNull(childNode) || StringUtils.isBlank(childNode.getId())) {
incoming.add(exclusiveGatewayId);
JSONObject condition = new JSONObject();
condition.fluentPut("nodeName", nodeName)
.fluentPut("expression", expression)
.fluentPut("groups", props.getGroups())
.fluentPut("groupsType", props.getGroupsType()
)
.fluentPut("elseSequenceFlowId", element.getId());
conditions.add(condition);
continue;
}
// 只生成一个任务,同时设置当前任务的条件
JSONObject incomingObj = childNode.getIncoming();
incomingObj.put("incoming", Collections.singletonList(exclusiveGatewayId));
String identifier = create(exclusiveGatewayId, childNode, process, bpmnModel, sequenceFlows, childNodeMap);
List<SequenceFlow> flows = sequenceFlows.stream().filter(flow -> StringUtils.equals(exclusiveGatewayId, flow.getSourceRef()))
.collect(Collectors.toList());
flows.stream().forEach(
e -> {
if (StringUtils.isBlank(e.getName()) && StringUtils.isNotBlank(nodeName)) {
e.setName(nodeName);
}
// 设置条件表达式
if (Objects.isNull(e.getConditionExpression()) && StringUtils.isNotBlank(expression)) {
e.setConditionExpression(expression);
}
}
);
if (Objects.nonNull(identifier)) {
incoming.add(identifier);
}
}
ChildNode childNode = flowNode.getChildNode();
if (Objects.nonNull(childNode) && StringUtils.isNotBlank(childNode.getId())) {
String parentId = childNode.getParentId();
ChildNode parentChildNode = childNodeMap.get(parentId);
boolean conFlag = Type.CONCURRENTS.type
.equals(parentChildNode.getType());
if (!conFlag) {
String type = childNode.getType();
if (!Type.EMPTY.type.equals(type)) {
} else {
if (Type.CONDITIONS.type.equals(parentChildNode.getType())) {
String endExId = parentChildNode.getId() + "end";
process.addFlowElement(createExclusiveGateWayEnd(endExId));
if (incoming == null || incoming.isEmpty()) {
return create(exclusiveGatewayId, childNode, process, bpmnModel, sequenceFlows,
childNodeMap);
} else {
JSONObject incomingObj = childNode.getIncoming();
// 所有 service task 连接 end exclusive gateway
incomingObj.put("incoming", incoming);
FlowElement flowElement = bpmnModel.getFlowElement(incoming.get(0));
// 1.0 先进行边连接, 暂存 nextNode
ChildNode nextNode = childNode.getChildNode();
childNode.setChildNode(null);
String identifier = endExId;
for (int i = 0; i < incoming.size(); i++) {
process.addFlowElement(connect(incoming.get(i), identifier, sequenceFlows, childNodeMap, process));
}
// 针对 gateway 空任务分支 添加条件表达式
if (!conditions.isEmpty()) {
FlowElement flowElement1 = bpmnModel.getFlowElement(identifier);
// 获取从 gateway 到目标节点 未设置条件表达式的节点
List<SequenceFlow> flows = sequenceFlows.stream().filter(
flow -> StringUtils.equals(flowElement1.getId(), flow.getTargetRef()))
.filter(
flow -> StringUtils.equals(flow.getSourceRef(), exclusiveGatewayId))
.collect(Collectors.toList());
flows.stream().forEach(sequenceFlow -> {
if (!conditions.isEmpty()) {
JSONObject condition = conditions.get(0);
String nodeName = condition.getString("nodeName");
String expression = condition.getString("expression");
if (StringUtils.isBlank(sequenceFlow.getName()) && StringUtils
.isNotBlank(nodeName)) {
sequenceFlow.setName(nodeName);
}
// 设置条件表达式
if (Objects.isNull(sequenceFlow.getConditionExpression())
&& StringUtils.isNotBlank(expression)) {
sequenceFlow.setConditionExpression(expression);
}
FlowElement flowElement2 = process.getFlowElement(sequenceFlow.getId());
if (flowElement2 != null) {
flowElement2.setId(condition.getString("elseSequenceFlowId"));
exclusiveGateway.setDefaultFlow(flowElement2.getId());
;
}
conditions.remove(0);
}
});
}
// 1.1 边连接完成后,在进行 nextNode 创建
if (Objects.nonNull(nextNode) && StringUtils.isNotBlank(nextNode.getId())) {
return create(identifier, nextNode, process, bpmnModel, sequenceFlows,
childNodeMap);
} else {
return identifier;
}
}
}
}
} else {
System.err.println("-");
}
}
return exclusiveGatewayId;
}
public static ExclusiveGateway createExclusiveGateWayEnd(String id) {
ExclusiveGateway exclusiveGateway = new ExclusiveGateway();
exclusiveGateway.setId(id);
return exclusiveGateway;
}
private static ParallelGateway createParallelGateWayEnd(String id) {
ParallelGateway parallelGateway = new ParallelGateway();
parallelGateway.setId(id);
return parallelGateway;
}
private static String createParallelGatewayBuilder(String formId, ChildNode flowNode, Process process, BpmnModel bpmnModel, List<SequenceFlow> sequenceFlows, Map<String, ChildNode> childNodeMap) throws InvocationTargetException, IllegalAccessException {
childNodeMap.put(flowNode.getId(), flowNode);
String name = flowNode.getName();
ParallelGateway parallelGateway = new ParallelGateway();
String parallelGatewayId = flowNode.getId();
parallelGateway.setId(parallelGatewayId);
parallelGateway.setName(name);
process.addFlowElement(parallelGateway);
process.addFlowElement(connect(formId, parallelGatewayId, sequenceFlows, childNodeMap, process));
if (Objects.isNull(flowNode.getConditionNodes()) && Objects.isNull(flowNode.getChildNode())) {
return parallelGatewayId;
}
List<ChildNode> flowNodes = flowNode.getConditionNodes();
List<String> incoming = Lists.newArrayListWithCapacity(flowNodes.size());
for (ChildNode element : flowNodes) {
childNodeMap.put(element.getId(), element);
ChildNode childNode = element.getChildNode();
if (Objects.isNull(childNode) || StringUtils.isBlank(childNode.getId())) {
incoming.add(parallelGatewayId);
continue;
}
String identifier = create(parallelGatewayId, childNode, process, bpmnModel, sequenceFlows, childNodeMap);
if (Objects.nonNull(identifier)) {
incoming.add(identifier);
}
}
ChildNode childNode = flowNode.getChildNode();
if (Objects.nonNull(childNode) && StringUtils.isNotBlank(childNode.getId())) {
String parentId = childNode.getParentId();
ChildNode parentChildNode = childNodeMap.get(parentId);
boolean conFlag = Type.CONCURRENTS.type
.equals(parentChildNode.getType());
if (!conFlag) {
String type = childNode.getType();
if (!Type.EMPTY.type.equals(type)) {
} else {
if (Type.CONCURRENTS.type.equals(parentChildNode.getType())) {
String endExId = parentChildNode.getId() + "end";
process.addFlowElement(createParallelGateWayEnd(endExId));
// 普通结束网关
if (CollectionUtils.isEmpty(incoming)) {
return create(parallelGatewayId, childNode, process, bpmnModel, sequenceFlows, childNodeMap);
} else {
JSONObject incomingObj = childNode.getIncoming();
// 所有 service task 连接 end parallel gateway
incomingObj.put("incoming", incoming);
FlowElement flowElement = bpmnModel.getFlowElement(incoming.get(0));
// 1.0 先进行边连接, 暂存 nextNode
ChildNode nextNode = childNode.getChildNode();
childNode.setChildNode(null);
String identifier = endExId;
for (int i = 0; i < incoming.size(); i++) {
FlowElement flowElement1 = bpmnModel.getFlowElement(incoming.get(i));
process.addFlowElement(connect(flowElement1.getId(), identifier, sequenceFlows, childNodeMap, process));
}
// 1.1 边连接完成后,在进行 nextNode 创建
if (Objects.nonNull(nextNode) && StringUtils.isNotBlank(nextNode.getId())) {
return create(identifier, nextNode, process, bpmnModel, sequenceFlows, childNodeMap);
} else {
return identifier;
}
}
}
}
} else {
String type = childNode.getType();
if (!Type.EMPTY.type.equals(type)) {
} else {
if (Type.CONCURRENTS.type.equals(parentChildNode.getType())) {
String endExId = parentChildNode.getId() + "end";
process.addFlowElement(createParallelGateWayEnd(endExId));
// 普通结束网关
if (CollectionUtils.isEmpty(incoming)) {
return create(parallelGatewayId, childNode, process, bpmnModel, sequenceFlows, childNodeMap);
} else {
JSONObject incomingObj = childNode.getIncoming();
// 所有 service task 连接 end parallel gateway
incomingObj.put("incoming", incoming);
FlowElement flowElement = bpmnModel.getFlowElement(incoming.get(0));
// 1.0 先进行边连接, 暂存 nextNode
ChildNode nextNode = childNode.getChildNode();
childNode.setChildNode(null);
String identifier = endExId;
for (int i = 0; i < incoming.size(); i++) {
FlowElement flowElement1 = bpmnModel.getFlowElement(incoming.get(i));
process.addFlowElement(connect(flowElement1.getId(), identifier, sequenceFlows, childNodeMap, process));
}
// 1.1 边连接完成后,在进行 nextNode 创建
if (Objects.nonNull(nextNode) && StringUtils.isNotBlank(nextNode.getId())) {
return create(identifier, nextNode, process, bpmnModel, sequenceFlows, childNodeMap);
} else {
return identifier;
}
}
}
}
}
}
return parallelGatewayId;
}
private static String createTask(Process process, ChildNode flowNode, List<SequenceFlow> sequenceFlows, Map<String, ChildNode> childNodeMap) {
JSONObject incomingJson = flowNode.getIncoming();
List<String> incoming = incomingJson.getJSONArray("incoming").toJavaList(String.class);
// 自动生成id
// String id = id("serviceTask");
String id = flowNode.getId();
if (incoming != null && !incoming.isEmpty()) {
UserTask userTask = new UserTask();
userTask.setName(flowNode.getName());
userTask.setId(id);
process.addFlowElement(userTask);
process.addFlowElement(connect(incoming.get(0), id, sequenceFlows, childNodeMap, process));
ArrayList<FlowableListener> taskListeners = new ArrayList<>();
FlowableListener taskListener = new FlowableListener();
// 事件类型,
taskListener.setEvent(TaskListener.EVENTNAME_CREATE);
// 监听器类型
taskListener.setImplementationType(IMPLEMENTATION_TYPE_DELEGATEEXPRESSION);
// 设置实现了,这里设置监听器的类型是delegateExpression,这样可以在实现类注入Spring bean.
taskListener.setImplementation("${taskCreatedListener}");
taskListeners.add(taskListener);
userTask.setTaskListeners(taskListeners);
if ("root".equalsIgnoreCase(id)) {
} else {
ArrayList<FlowableListener> listeners = new ArrayList<>();
FlowableListener activitiListener = new FlowableListener();
// 事件类型,
activitiListener.setEvent(ExecutionListener.EVENTNAME_START);
// 监听器类型
activitiListener.setImplementationType(IMPLEMENTATION_TYPE_DELEGATEEXPRESSION);
// 设置实现了,这里设置监听器的类型是delegateExpression,这样可以在实现类注入Spring bean.
activitiListener.setImplementation("${counterSignListener}");
listeners.add(activitiListener);
userTask.setExecutionListeners(listeners);
Properties props = flowNode.getProps();
String mode = props.getMode();
MultiInstanceLoopCharacteristics multiInstanceLoopCharacteristics = new MultiInstanceLoopCharacteristics();
// 审批人集合参数
multiInstanceLoopCharacteristics.setInputDataItem(userTask.getId() + "assigneeList");
// 迭代集合
multiInstanceLoopCharacteristics.setElementVariable("assigneeName");
// 并行
multiInstanceLoopCharacteristics.setSequential(false);
userTask.setAssignee("${assigneeName}");
// 设置多实例属性
userTask.setLoopCharacteristics(multiInstanceLoopCharacteristics);
if (ModeEnums.OR.getTypeName().equals(mode)) {
multiInstanceLoopCharacteristics.setCompletionCondition("${nrOfCompletedInstances/nrOfInstances > 0}");
} else if (ModeEnums.NEXT.getTypeName().equals(mode)) {
multiInstanceLoopCharacteristics.setSequential(true);
}
JSONObject timeLimit = props.getTimeLimit();
if (timeLimit != null && !timeLimit.isEmpty()) {
JSONObject timeout = timeLimit.getJSONObject("timeout");
if (timeout != null && !timeout.isEmpty()) {
String unit = timeout.getString("unit");
Integer value = timeout.getInteger("value");
if (value > 0) {
List<BoundaryEvent> boundaryEvents = new ArrayList<>();
BoundaryEvent boundaryEvent = new BoundaryEvent();
boundaryEvent.setId(id("boundaryEvent"));
boundaryEvent.setAttachedToRefId(id);
boundaryEvent.setAttachedToRef(userTask);
boundaryEvent.setCancelActivity(Boolean.TRUE);
TimerEventDefinition timerEventDefinition = new TimerEventDefinition();
timerEventDefinition.setTimeDuration("PT" + 1 + "M");
timerEventDefinition.setId(id("timerEventDefinition"));
boundaryEvent.addEventDefinition(timerEventDefinition);
FlowableListener flowableListener = new FlowableListener();
flowableListener.setEvent(ExecutionListener.EVENTNAME_END);
flowableListener.setImplementationType(IMPLEMENTATION_TYPE_CLASS);
flowableListener.setImplementation("com.dingding.mid.listener.TimerListener");
List<FlowableListener> listenerList = new ArrayList<>();
listenerList.add(flowableListener);
boundaryEvent.setExecutionListeners(listenerList);
process.addFlowElement(boundaryEvent);
boundaryEvents.add(boundaryEvent);
userTask.setBoundaryEvents(boundaryEvents);
}
}
}
}
}
return id;
}
private static String createServiceTask(Process process, ChildNode flowNode, List<SequenceFlow> sequenceFlows, Map<String, ChildNode> childNodeMap) {
JSONObject incomingJson = flowNode.getIncoming();
List<String> incoming = incomingJson.getJSONArray("incoming").toJavaList(String.class);
String id = flowNode.getId();
if (incoming != null && !incoming.isEmpty()) {
}
return id;
}
private enum Type {
/**
* 并行事件
......@@ -744,48 +251,7 @@ public class BpmnModelUtils {
}
private enum FlowType {
/**
* 并行事件
*/
CONCURRENTS(0, ParallelGateway.class),
CONCURRENT(1, SequenceFlow.class),
/**
* 排他事件
*/
CONDITION(2, ExclusiveGateway.class),
CONDITIONS(3, ExclusiveGateway.class),
/**
* 任务
*/
USER_TASK(4, UserTask.class),
EMPTY(5, Object.class),
ROOT(6, UserTask.class),
CC(7, ServiceTask.class),
TRIGGER(8, ServiceTask.class),
DELAY(9, IntermediateCatchEvent.class);
private int type;
private Class<?> typeClass;
FlowType(int type, Class<?> typeClass) {
this.type = type;
this.typeClass = typeClass;
}
public final static Map<String, Class<?>> TYPE_MAP = Maps.newHashMap();
static {
for (Type element : Type.values()) {
TYPE_MAP.put(element.type, element.typeClass);
}
}
public boolean isEqual(int type) {
return this.type == (type);
}
}
public static ChildNode getChildNode(ChildNode childNode, String nodeId) {
Map<String, ChildNode> childNodeMap = new HashMap<>();
......
......@@ -21,7 +21,7 @@
GROUP BY su.user_id,su.real_name
</select>
<select id="QueryUserParentOrg" resultMap="UserListDTO">
<select id="QueryUserWithParentOrg" resultMap="UserListDTO">
SELECT
CASE
WHEN userorg2.org_id = -1 THEN mainUser.user_id
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论