Commit 9c57101a by 赵剑炜

Merge branch 'develop' into develop-zhaojw

parents df79006a a4834e3e
......@@ -40,6 +40,16 @@ public class BusFormDto {
private String orgName;
/**
* 发物单位id
*/
private Long startOrgId;
/**
* 发物单位
*/
private String startOrgName;
/**
* 收物单位id
*/
private Long endOrgId;
......@@ -69,6 +79,8 @@ public class BusFormDto {
*/
private String attachmentLocation;
private String agentId;
/**
* 经办人
*/
......@@ -107,7 +119,7 @@ public class BusFormDto {
/**
* 调拨类型(2支拨,1价拨)
*/
private Integer transferType;
private String allocateType;
/**
* 备注
......@@ -144,4 +156,25 @@ public class BusFormDto {
* 更新人
*/
private String updateUser;
/**
* 报废类型(1报废出库,2移入报废区)
*/
private Integer type;
/**
* 维修单位id
*/
private String repairId;
/**
* 维修单位名称
*/
private String repairName;
/**
* 销毁、报废单位id
*/
private String destoryId;
/**
* 销毁、报废单位名称
*/
private String destoryName;
}
......@@ -76,4 +76,6 @@ public class EquipmentSizeDto {
private String photo;
private String instructions;
}
package com.junmp.jyzb.api.bean.dto;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
@Data
public class InOutRecordsDto implements Serializable {
//序号
private String Id;
//操作人员
private String userName;
// 存储名称
private String locationName;
//出入库时间
private Date useTime;
// 出入库状态
private String outInState;
}
package com.junmp.jyzb.api.bean.dto;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
......@@ -11,50 +8,93 @@ import java.util.Date;
@Data
public class LogDetailDto implements Serializable {
/**
* 出入库明细ID
*/
private Integer id;
/**
* 物资id
*/
@ApiModelProperty(value = "物资id")
private String inventoryId;
/**
* 出入库汇总ID
*/
private Integer summaryId;
/**
* 单据ID
*/
@ApiModelProperty(value = "单据ID")
private String orderMainId;
/**
* EPC信息
*/
@ApiModelProperty(value = "EPC信息")
private String epc;
/**
* 装备名称
*/
@ApiModelProperty(value = "装备名称")
private String equipmentName;
/**
* 装备号型
*/
@ApiModelProperty(value = "装备号型")
private String equipmentSize;
/**
* 供应商
*/
@ApiModelProperty(value = "供应商")
private String equipmentSupplier;
/**
* 装备类型:0单件/1装备包
*/
@ApiModelProperty(value = "装备类型:0单件/1装备包")
private Integer equipmentType;
/**
* 状态,0正常/1异常
*/
@ApiModelProperty(value = "状态,0正常/1异常")
private Integer errorState;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新时间
*/
private Date updateTime;
/**
* 更新人员
*/
private String updateUser;
/**
* 创建人员
*/
private String createUser;
/**
* 照片信息
*/
private String picture;
/**
* 作业设备:0手持机 1单警柜 2通道)
*/
private Integer deviceType;
/**
* 存储ID
*/
private String locationId;
/**
* 存储名称:XX仓库,XX单警柜
*/
private String locationName;
}
package com.junmp.jyzb.api.bean.dto;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
......@@ -13,87 +9,97 @@ import java.util.List;
public class LogSummaryDto implements Serializable {
/**
* 出入库汇总ID
*/
private Integer id;
/**
* 组织机构ID
*/
@ApiModelProperty(value = "组织机构ID")
private String orgId;
private Long orgId;
/**
* 组织机构名称
*/
@ApiModelProperty(value = "组织机构名称")
private String orgName;
/**
* 单据id
*/
@ApiModelProperty(value = "单据id")
private String orderMainId;
/**
* 存储ID
*/
@ApiModelProperty(value = "存储ID")
private String locationId;
/**
* 存储名称:XX仓库,XX单警柜
*/
@ApiModelProperty(value = "存储名称")
private String locationName;
/**
* 设备标识
*/
@ApiModelProperty(value = "设备标识")
private String device;
/**
* 出入设备:0手持机/1单警柜/2通道
*/
@ApiModelProperty(value = "出入设备:0手持机/1单警柜/2通道")
private Integer deviceType;
/**
* 操作时间
*/
@ApiModelProperty(value = "操作时间")
private Date useTime;
/**
* 业务类型
*/
@ApiModelProperty(value = "业务类型")
private String bussinessType;
/**
* 操作人员姓名
*/
@ApiModelProperty(value = "操作人员姓名")
private String userName;
/**
* 出入库类型:0出库/1入库
*/
@ApiModelProperty(value = "出入库类型:0出库/1入库")
private Integer outInState;
/**
* 照片信息
*/
@ApiModelProperty(value = "照片信息")
private String picture;
/**
* 装备记录集合,警棍、盾牌
*/
@ApiModelProperty(value = "装备记录集合")
private String equipments;
private String equipmentList;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新时间
*/
private Date updateTime;
/**
* 更新人员
*/
private String updateUser;
/**
* 创建人员
*/
private String createUser;
/**
* 装备详细信息
*/
@ApiModelProperty(value = "装备详细信息")
private List<LogDetailDto> equipmentList;
private List<LogDetailDto> logList;
}
......@@ -27,6 +27,8 @@ public class OrderDetailDto implements Serializable {
private String warehouseId;
private String warehouseName;
/**
* 计划数量
*/
......@@ -37,4 +39,9 @@ public class OrderDetailDto implements Serializable {
private Integer actualNum;
private BigDecimal price;
/**
* 在库数
*/
private Integer stockNumber;
}
......@@ -22,6 +22,7 @@ public class OrderMainDto implements Serializable {
//订单编号
private String orderCode;
//业务单据单号
private String bussinessCode;
//发物单位
......
......@@ -42,5 +42,5 @@ public class PolicemanDto {
private List<PoliceFingerDto> fingersList;
private String fileContent;
private String userId;
private Long userId;
}
\ No newline at end of file
......@@ -32,6 +32,10 @@ public class InventoryReq extends BaseRequest {
*/
private String typeId;
/**
* 装备类型名称
*/
private String typeName;
/**
* 装备号型ID
*/
private String sizeId;
......@@ -73,6 +77,8 @@ public class InventoryReq extends BaseRequest {
*/
@NotNull(message = "组织机构不能为空",groups = {export.class})
private Long orgId;
private String orgName;
/**
* 单警柜id
*/
......@@ -101,8 +107,6 @@ public class InventoryReq extends BaseRequest {
*/
private String locationState;
/**
* 生产日期
*/
......
......@@ -13,6 +13,7 @@ public class InventorySumReq extends BaseRequest {
* 组织机构
*/
private Long orgId;
/**
* 组织机构名称
*/
......@@ -25,6 +26,11 @@ public class InventorySumReq extends BaseRequest {
* 位置信息
*/
private String locationName;
/**
* 位置类型(0仓库,1单警柜)
*/
private String locationType;
/**
* 类型ID
*/
......@@ -42,4 +48,43 @@ public class InventorySumReq extends BaseRequest {
*/
private String sizeName;
/**
* 排序规则
*/
private String order;
/**
* 排序列
*/
private String column;
/**
* 装备总数
*/
private String number;
/**
* 在库数
*/
private String stockNumber;
/**
* 出库数
*/
private String outboundNumber;
/**
* 过质保数
*/
private String expireNumber;
/**
* 报废数
*/
private String brokenNumber;
/**
* 单价
*/
private String unitPrice;
/**
* 总金额
*/
private String price;
}
package com.junmp.jyzb.api.bean.query;
import lombok.Data;
import java.util.Date;
@Data
public class LogDetailReq {
/**
* 出入库明细ID
*/
private Integer id;
/**
* 物资id
*/
private String inventoryId;
/**
* 出入库汇总ID
*/
private Integer summaryId;
/**
* 单据ID
*/
private String orderMainId;
/**
* EPC信息
*/
private String epc;
/**
* 装备名称
*/
private String equipmentName;
/**
* 装备号型
*/
private String equipmentSize;
/**
* 供应商
*/
private String equipmentSupplier;
/**
* 装备类型:0单件/1装备包
*/
private Integer equipmentType;
/**
* 状态,0正常/1异常
*/
private Integer errorState;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新时间
*/
private Date updateTime;
/**
* 更新人员
*/
private String updateUser;
/**
* 创建人员
*/
private String createUser;
/**
* 照片信息
*/
private String picture;
/**
* 作业设备:0手持机 1单警柜 2通道)
*/
private Integer deviceType;
/**
* 存储ID
*/
private String locationId;
/**
* 存储名称:XX仓库,XX单警柜
*/
private String locationName;
}
package com.junmp.jyzb.api.bean.query;
import com.baomidou.mybatisplus.annotation.TableField;
import com.junmp.jyzb.api.bean.dto.LogDetailDto;
import com.junmp.v2.common.bean.request.BaseRequest;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NonNull;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;
@Data
@EqualsAndHashCode(callSuper = true)
public class LogSummaryReq extends BaseRequest {
/**
* 出入库汇总ID
*/
private Integer id;
/**
* 组织机构ID
*/
@NotNull(message = "组织机构id不能为空",groups = {detail.class})
private Long orgId;
/**
* 组织机构名称
*/
private String orgName;
/**
* 单据id
*/
private String orderMainId;
/**
* 存储ID
*/
private String locationId;
/**
* 箱门id
*/
private String cabinetboxId;
/**
* 存储名称:XX仓库,XX单警柜
*/
private String locationName;
/**
* 0仓库,1单警柜
*/
private Integer locationType;
/**
* 设备标识
*/
private String device;
/**
* 出入设备:0手持机/1单警柜/2通道
*/
private Integer deviceType;
/**
* 操作时间
*/
private Date useTime;
/**
* 业务类型
*/
private String bussinessType;
/**
* 操作人员姓名
*/
private String userName;
/**
* 出入库类型:0出库/1入库
*/
private Integer outInState;
/**
* 照片信息
*/
private String picture;
/**
* 装备记录集合,警棍、盾牌
*/
private String equipmentList;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新时间
*/
private Date updateTime;
/**
* 更新人员
*/
private String updateUser;
/**
* 创建人员
*/
private String createUser;
/**
* 装备详细信息
*/
private List<LogDetailReq> logList;
private String typeId;
}
......@@ -50,6 +50,8 @@ public class OrderDetailReq extends BaseRequest {
private String warehouseId;
private String warehouseName;
/**
* 修改后数量
*/
......
......@@ -45,6 +45,16 @@ public class QueryBusFormReq extends BaseRequest {
private String orgName;
/**
* 发物单位id
*/
private Long startOrgId;
/**
* 发物单位
*/
private String startOrgName;
/**
* 收物单位id
*/
private Long endOrgId;
......@@ -73,6 +83,8 @@ public class QueryBusFormReq extends BaseRequest {
* 附件地址
*/
private String attachmentLocation;
private String agentId;
/**
* 经办人
*/
......@@ -112,7 +124,7 @@ public class QueryBusFormReq extends BaseRequest {
/**
* 调拨类型(2支拨,1价拨)
*/
private Integer transferType;
private Integer allocateType;
/**
* 备注
......@@ -169,4 +181,26 @@ public class QueryBusFormReq extends BaseRequest {
* 排序规则
*/
private String order;
/**
* 报废类型(1报废出库,2移入报废区)
*/
private Integer type;
/**
* 维修单位id
*/
private String repairId;
/**
* 维修单位名称
*/
private String repairName;
/**
* 销毁、报废单位id
*/
private String destoryId;
/**
* 销毁、报废单位名称
*/
private String destoryName;
}
......@@ -25,4 +25,6 @@ public class QueryEquipmentSizeReq extends BaseRequest {
private BigDecimal price;
private Integer state;
private String instructions;
}
package com.junmp.jyzb.api.bean.req;
import com.junmp.jyzb.api.bean.query.InventoryReq;
import lombok.Data;
import java.util.Date;
import java.util.List;
@Data
public class CabinetInOutRecordsReq {
//组织机构id
private Long orgId;
//组织机构名称
private String orgName;
//表示装备
private String device;
//出入设备:0手持机/1单警柜/2通道
private Integer deviceType;
/**
* 单警柜id
*/
private String locationId;
//单警柜名称
private String locationName;
/**
* 箱门id
*/
private String cabinetboxId;
//操作时间
private Date useTIme;
/**
* 操作人员
*/
private String userName;
/**
* 出入装备集合
*/
private List<InventoryReq> inventoryList;
}
package com.junmp.jyzb.api.bean.req;
import com.junmp.v2.common.bean.request.BaseRequest;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import java.util.Date;
import java.util.List;
@Data
@EqualsAndHashCode(callSuper = true)
public class DestoryUnitReq extends BaseRequest {
/**
* 报废/销毁收物单位id
*/
private String id;
/**
* 报废/销毁收物单位名称
*/
@NotBlank(message = "报废/销毁收物单位不能为空",groups = {add.class,edit.class})
private String name;
/**
* 报废/销毁收物单位短码
*/
@NotBlank(message = "报废/销毁收物单位短码不能为空",groups = {add.class})
/**
* 简称
*/
private String shortName;
/**
* 联系人
*/
private String contacts;
/**
* 联系电话
*/
private String phone;
/**
* 状态(1为启用,0为禁用)
*/
private Integer state;
/**
* 创建时间
*/
private Date createTime;
/**
* 创建人员
*/
private String createUser;
/**
* 更新时间
*/
private Date updateTime;
/**
* 更新人员
*/
private String updateUser;
/**
* 批量删除报废/销毁单位id
*/
private List<String> deleteList;
}
......@@ -28,6 +28,7 @@ public class ManufacturerReq extends BaseRequest {
/**
* 厂商短码
*/
@NotBlank(message = "生产厂商短码不能为空",groups = {add.class})
private String code;
/**
......
......@@ -6,6 +6,7 @@ import com.junmp.jyzb.api.bean.query.OrderMainReq;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
@Data
......@@ -16,4 +17,17 @@ public class RabbitMqOrderReq implements Serializable {
private OrderDetailReq orderDetailReq;
//具体装备epc
private List<InventoryReq> inventoryReqList;
//设备标识
private String device;
//出入设备
private Integer deviceType;
/**
* 操作人员
*/
private String userName;
/**
* 操作时间
*/
private Date useTime;
}
package com.junmp.jyzb.api.bean.req;
import com.junmp.v2.common.bean.request.BaseRequest;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import java.util.Date;
import java.util.List;
@Data
@EqualsAndHashCode(callSuper = true)
public class RepairUnitReq extends BaseRequest {
/**
* 维修单位id
*/
private String id;
/**
* 维修单位名称
*/
@NotBlank(message = "维修单位名称不能为空",groups = {add.class,edit.class})
private String name;
/**
* 维修单位短码
*/
@NotBlank(message = "维修单位短码不能为空",groups = {add.class})
private String code;
/**
* 简称
*/
private String shortName;
/**
* 联系人
*/
private String contacts;
/**
* 联系电话
*/
private String phone;
/**
* 状态(1为启用,0为禁用)
*/
private Integer state;
/**
* 创建时间
*/
private Date createTime;
/**
* 创建人员
*/
private String createUser;
/**
* 更新时间
*/
private Date updateTime;
/**
* 更新人员
*/
private String updateUser;
/**
* 批量删除维修单位id
*/
private List<String> deleteList;
}
......@@ -18,7 +18,7 @@ public class UpdateBusFormReq extends BaseRequest {
@NotBlank(message = "单据id不能为空",groups = {edit.class})
private String id;
private String userId;
// private String userId;
/**
* 工作流id
*/
......@@ -47,6 +47,15 @@ public class UpdateBusFormReq extends BaseRequest {
private String orgName;
/**
* 发物单位id
*/
private Long startOrgId;
/**
* 发物单位
*/
private String startOrgName;
/**
* 收物单位id
*/
private Long endOrgId;
......@@ -76,6 +85,7 @@ public class UpdateBusFormReq extends BaseRequest {
*/
private String attachmentLocation;
private String agentId;
/**
* 经办人
*/
......@@ -114,7 +124,7 @@ public class UpdateBusFormReq extends BaseRequest {
/**
* 调拨类型(2支拨,1价拨)
*/
private Integer transferType;
private Integer allocateType;
/**
* 备注
......@@ -151,4 +161,26 @@ public class UpdateBusFormReq extends BaseRequest {
* 更新人
*/
private String updateUser;
/**
* 报废类型(1报废出库,2移入报废区)
*/
private Integer type;
/**
* 维修单位id
*/
private String repairId;
/**
* 维修单位名称
*/
private String repairName;
/**
* 销毁、报废单位id
*/
private String destoryId;
/**
* 销毁、报废单位名称
*/
private String destoryName;
}
......@@ -27,4 +27,6 @@ public class UpdateEquipmentSizeReq {
private String state;
private String photo;
private String instructions;
}
......@@ -46,6 +46,8 @@ public class UpdateOrderDetailReq implements Serializable {
private String warehouseId;
private String warehouseName;
private String orderId;
private Integer actualNum;
......
......@@ -9,6 +9,7 @@ import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
......@@ -41,6 +42,9 @@ public class UpdateOrderReq extends BaseRequest implements Serializable {
*/
private String orderCode;
/**
* 业务单据单号
*/
private String bussinessCode;
/**
* 发物单位
......@@ -87,11 +91,15 @@ public class UpdateOrderReq extends BaseRequest implements Serializable {
/**
* 总价格
*/
private String price;
private BigDecimal price;
/**
* 应入库数量
*/
private String inventoryQuantity;
private Integer inventoryQuantity;
/**
* 实际入库数量
*/
private Integer actualQuantity;
/**
* 附件地址
*/
......
......@@ -36,6 +36,9 @@ public class UpdatePolicemanReq extends BaseRequest {
private String doorCode;
/**
* 用户名
*/
private String account;
private String password;
......
package com.junmp.jyzb.api.exception.enums;
import com.junmp.v2.common.constant.CommonConstant;
import com.junmp.v2.common.exception.IExceptionEnum;
import lombok.Getter;
@Getter
public enum DestoryUnitExceptionEnum implements IExceptionEnum {
/**
* 删除时未选中需要删除的销毁/报废收物单位
*/
DESTORYUNIT_NOT_CHOOSE(CommonConstant.DEFAULT_USER_ERROR_CODE,"删除时未选中需要删除的销毁/报废收物单位"),
/**
* 销毁、报废收物单位不存在
*/
DESTORYUNIT_NOT_EXIST(CommonConstant.DEFAULT_USER_ERROR_CODE,"销毁、报废收物单位不存在"),
/**
* 销毁、报废收物单位已存在
*/
DESTORYUNIT_IS_EXIST(CommonConstant.DEFAULT_USER_ERROR_CODE,"销毁、报废收物单位已存在"),;
/**
* 错误编码
*/
private final Integer code;
/**
* 提示用户信息
*/
private final String message;
DestoryUnitExceptionEnum(Integer code, String message) {
this.code = code;
this.message = message;
}
}
package com.junmp.jyzb.api.exception.enums;
import com.junmp.v2.common.constant.CommonConstant;
import com.junmp.v2.common.exception.IExceptionEnum;
import lombok.Getter;
@Getter
public enum RepairUnitExceptionEnum implements IExceptionEnum {
/**
* 删除时未选中需要删除的维修收物单位
*/
REPAIRUNIT_NOT_CHOOSE(CommonConstant.DEFAULT_USER_ERROR_CODE,"删除时未选中需要删除的维修收物单位"),
/**
* 维修单位不存在
*/
REPAIRUNIT_NOT_EXIST(CommonConstant.DEFAULT_USER_ERROR_CODE,"维修单位不存在"),
/**
* 维修单位已存在
*/
REPAIRUNIT_IS_EXIST(CommonConstant.DEFAULT_USER_ERROR_CODE,"维修单位已存在"),;
/**
* 错误编码
*/
private final Integer code;
/**
* 提示用户信息
*/
private final String message;
RepairUnitExceptionEnum(Integer code, String message) {
this.code = code;
this.message = message;
}
}
package com.junmp.jyzb.controller;
import com.junmp.jyzb.api.bean.req.DestoryUnitReq;
import com.junmp.jyzb.api.bean.req.ManufacturerReq;
import com.junmp.jyzb.entity.DestoryUnit;
import com.junmp.jyzb.entity.Manufacturer;
import com.junmp.jyzb.service.DestoryUnitService;
import com.junmp.v2.common.bean.request.ValidationApi;
import com.junmp.v2.common.bean.response.ApiRes;
import com.junmp.v2.db.api.page.PageResult;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
@RestController
@Slf4j
@Api(tags = "报废/销毁单位模块")
@RequestMapping("/DestoryUnit")
public class DestoryUnitController {
@Resource
private DestoryUnitService destoryUnitService;
//创建报废/销毁单位
@PostMapping("/AddDestoryUnit")
@ApiOperation("创建报废/销毁单位")
public ApiRes<String> addDestoryUnit(@RequestBody @Validated(ValidationApi.add.class) DestoryUnitReq req){
return ApiRes.success(destoryUnitService.addDestoryUnit(req));
}
//修改报废/销毁单位
@PostMapping("/UpdateDestoryUnit")
@ApiOperation("修改报废/销毁单位")
public ApiRes<Boolean> updateDestoryUnit(@RequestBody @Validated(ValidationApi.edit.class) DestoryUnitReq req){
return ApiRes.success(destoryUnitService.updateDestoryUnit(req));
}
//查询报废/销毁单位(list)
@PostMapping("/ShowDestoryUnitList")
@ApiOperation("查询报废/销毁单位(list)")
public ApiRes<List<DestoryUnit>> showDestoryUnitList(@RequestBody DestoryUnitReq req){
return ApiRes.success(destoryUnitService.showDestoryUnitList(req));
}
//查询报废/销毁单位(page)
@PostMapping("/ShowDestoryUnitPage")
@ApiOperation("修改报废/销毁单位(page)")
public ApiRes<PageResult<DestoryUnit>> showDestoryUnitPage(@RequestBody DestoryUnitReq req){
return ApiRes.success(destoryUnitService.showDestoryUnitPage(req));
}
//删除报废/销毁单位
@PostMapping("/DelDestoryUnit")
@ApiOperation("修改报废/销毁单位")
public ApiRes<Boolean> delDestoryUnit(@RequestBody DestoryUnitReq req){
return ApiRes.success(destoryUnitService.delDestoryUnit(req));
}
}
......@@ -4,8 +4,9 @@ import com.junmp.jyzb.api.bean.dto.*;
import com.junmp.jyzb.api.bean.query.*;
import com.junmp.jyzb.api.bean.req.BatchEditingInvsReq;
import com.junmp.jyzb.api.bean.req.EquipmentBindReq;
import com.junmp.jyzb.entity.Inventory;
import com.junmp.jyzb.entity.InventorySummary;
import com.junmp.jyzb.entity.LogDetail;
import com.junmp.jyzb.entity.LogSummary;
import com.junmp.jyzb.service.*;
import com.junmp.v2.common.bean.request.ValidationApi;
import com.junmp.v2.common.bean.response.ApiRes;
......@@ -90,20 +91,13 @@ public class InventoryController {
return ApiRes.success(inventorySummaryService.getEquipmentInfo(req));
}
//根据组织机构/单警柜id/仓库id查询每件装备细信的详息(返回结果是List)
@PostMapping("/")
@ApiOperation("查询库存装备详细信息(list)")
public ApiRes<List<InventoryDto>> EqsBySearchType(@RequestBody @Validated(ValidationApi.edit.class) InventoryReq req ){
return ApiRes.success(inventoryService.EqsBySearchType(req));
//根据组织机构id/单警柜id/仓库id查询出库存汇总数量以及金额(和getEquipmentInfo同时调用,汇总出符合查询条件的装备)
@PostMapping("/getTotalNumberAndPrice")
@ApiOperation("查询总金额以及各个汇总数量")
public ApiRes<List<InventorySummary>> getTotalNumberAndPrice(@RequestBody InventorySumReq req){
return ApiRes.success(inventorySummaryService.getTotalNumberAndPrice(req));
}
//根据组织机构/单警柜id/仓库id查询每件装备细信的详息(返回结果是page)
@PostMapping("/EqsByTypePage")
@ApiOperation("查询库存装备详细信息(page)")
public ApiRes<PageResult<InventoryDto>> EqsByTypePage(@RequestBody @Validated(ValidationApi.edit.class) InventoryReq req ){
return ApiRes.success(inventoryService.EqsByTypePage(req));
}
//根据装备id查询出装备的详细信息
@PostMapping("/GetDetail")
......@@ -194,9 +188,9 @@ public class InventoryController {
return ApiRes.success(inventoryService.GetListEquipment(req));
}
//根据条件查询仓库下的所有装备信息(业务状态,在库状态,仓库id,超期状态)
//根据条件查询仓库/单警柜下的所有装备信息
@PostMapping("/GetDetailByTerms")
@ApiOperation("根据条件查询仓库下的所有装备信息")
@ApiOperation("根据条件查询仓库/单警柜下的所有装备信息")
public ApiRes<PageResult<InventoryDto>> GetDetailByTerms(@RequestBody @Validated(ValidationApi.export.class) InventoryReq req){
return ApiRes.success(inventoryService.GetDetailByTerms(req));
}
......@@ -221,10 +215,43 @@ public class InventoryController {
return ApiRes.success(inventoryService.BatchEditingInvsInfo(req));
}
//装备出入库记录(通过装备id)-----------------------需要修改成page
@PostMapping("/GetInOutRecords")
@ApiOperation("装备出入库记录查询展示")
public ApiRes<List<InOutRecordsDto>> getInOutRecords(@RequestBody @Validated(ValidationApi.detail.class) InventoryReq req){
//装备出入库记录(根据单据id)
@PostMapping("/ShowInOutRecordsByOrder")
@ApiOperation("出入库单据查询展示")
public ApiRes<PageResult<LogSummary>> ShowInOutRecordsByOrder(@RequestBody @Validated(ValidationApi.detail.class) LogSummaryReq req){
return ApiRes.success(inventoryService.ShowInOutRecordsByOrder(req));
}
//装备出入库记录(根据条件查询)
@PostMapping("/ShowInOutRecordsByItems")
@ApiOperation("出入库记录条件查询展示")
public ApiRes<PageResult<LogSummary>> ShowInOutRecordsByItems(@RequestBody @Validated(ValidationApi.detail.class) LogSummaryReq req){
return ApiRes.success(inventoryService.ShowInOutRecordsByItems(req));
}
//通过装备id查询某一件装备的出入库记录
@PostMapping("/ShowInOutRecordsByEqs")
@ApiOperation("出入库记录装备id查询展示")
public ApiRes<PageResult<LogDetail>> getInOutRecords(@RequestBody @Validated(ValidationApi.detail.class) InventoryReq req){
return ApiRes.success(inventoryService.getInOutRecords(req));
}
@PostMapping("/test")
public ApiRes<Boolean> test(@RequestBody InventorySumReq req){
System.out.println("req = " + req);
return ApiRes.success(true);
}
@PostMapping("/EquipmentStatistics")
@ApiOperation("装备数量数据统计")
public ApiRes<List<InventorySummary>> EquipmentStatistics(@RequestBody InventorySumReq req){
return ApiRes.success(inventorySummaryService.EquipmentStatistics(req));
}
}
......@@ -70,6 +70,7 @@ public class OrderController {
return ApiRes.success(orderMainService.updateOrder(req));
}
//查询任务列表(根据组织机构id)
@PostMapping("/GetOrderPage")
@ApiOperation("/查询任务列表")
......
package com.junmp.jyzb.controller;
import com.junmp.jyzb.api.bean.req.DestoryUnitReq;
import com.junmp.jyzb.api.bean.req.RepairUnitReq;
import com.junmp.jyzb.entity.DestoryUnit;
import com.junmp.jyzb.entity.RepairUnit;
import com.junmp.jyzb.service.RepairUnitService;
import com.junmp.v2.common.bean.request.ValidationApi;
import com.junmp.v2.common.bean.response.ApiRes;
import com.junmp.v2.db.api.page.PageResult;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
@RestController
@Slf4j
@Api(tags = "维修单位模块")
@RequestMapping("/RepairUnit")
public class RepairUnitController {
@Resource
private RepairUnitService repairUnitService;
//创建报废/销毁单位
@PostMapping("/AddRepairUnit")
@ApiOperation("创建报废/销毁单位")
public ApiRes<String> addRepairUnit(@RequestBody @Validated(ValidationApi.add.class) RepairUnitReq req){
return ApiRes.success(repairUnitService.addRepairUnit(req));
}
//修改报废/销毁单位
@PostMapping("/UpdateRepairUnit")
@ApiOperation("修改报废/销毁单位")
public ApiRes<Boolean> updateRepairUnit(@RequestBody @Validated(ValidationApi.edit.class) RepairUnitReq req){
return ApiRes.success(repairUnitService.updateRepairUnit(req));
}
//查询报废/销毁单位(list)
@PostMapping("/ShowRepairUnitList")
@ApiOperation("查询报废/销毁单位(list)")
public ApiRes<List<RepairUnit>> showRepairUnitList(@RequestBody RepairUnitReq req){
return ApiRes.success(repairUnitService.showRepairUnitList(req));
}
//查询报废/销毁单位(page)
@PostMapping("/ShowRepairUnitPage")
@ApiOperation("修改报废/销毁单位(page)")
public ApiRes<PageResult<RepairUnit>> showRepairUnitPage(@RequestBody RepairUnitReq req){
return ApiRes.success(repairUnitService.showRepairUnitPage(req));
}
//删除报废/销毁单位
@PostMapping("/DelRepairUnit")
@ApiOperation("修改报废/销毁单位")
public ApiRes<Boolean> delRepairUnit(@RequestBody RepairUnitReq req){
return ApiRes.success(repairUnitService.delRepairUnit(req));
}
}
package com.junmp.jyzb.controller;
import com.junmp.jyzb.api.bean.req.RabbitMqOrderReq;
import com.junmp.jyzb.service.TestService;
import com.junmp.jyzb.utils.ResponseResult;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
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;
@RestController
@Slf4j
@RequestMapping("/api")
public class TestController {
@Resource
private TestService testService;
@RequestMapping("/hello")
public ResponseResult Hello(){
return new ResponseResult(10000,"操作成功","hello");
}
@PostMapping("/uploadResult")
@ApiOperation("模拟本地主机上传结果到rabbitmq")
public Boolean uploadResult(@RequestBody RabbitMqOrderReq req){
return testService.uploadResult(req);
}
}
......@@ -65,7 +65,7 @@ public class WarehouseController {
@PostMapping("/ShowWarehouse")
@ApiOperation("查询仓库列表")
public ApiRes<List<WarehouseDto>> getAllWarehouse(@RequestBody @Validated(ValidationApi.edit.class) WarehouseReq req){
return ApiRes.success(warehouseService.getAllWarehouse(req));
return ApiRes.success(warehouseService.getAllWarehouse(req.getOrgId()));
}
//通过仓库id查询列表
......
......@@ -41,7 +41,7 @@ public class Application implements Serializable {
private String name;
/**
* 类型(0内部软件管理,1外部软件管理,2插件/环境安装包)
* 类型(0内部软件管理,1外部软件管理,2插件/环境安装包,3导出模板维护,4导入模板维护
*/
private Integer type;
......
......@@ -51,6 +51,17 @@ public class BusForm implements Serializable {
private String orgName;
/**
* 发物单位id
*/
@TableField(value = "start_org_id")
private Long startOrgId;
/**
* 发物单位
*/
@TableField(value = "start_org_name")
private String startOrgName;
/**
* 收物单位id
*/
@TableField(value = "end_org_id")
......@@ -85,6 +96,11 @@ public class BusForm implements Serializable {
*/
@TableField(value = "attachment_location")
private String attachmentLocation;
/**
* 经办人id
*/
@TableField(value = "agent_id")
private String agentId;
/**
* 经办人
......@@ -131,8 +147,8 @@ public class BusForm implements Serializable {
/**
* 调拨类型(2支拨,1价拨)
*/
@TableField(value = "transfer_type")
private Integer transferType;
@TableField(value = "allocate_type")
private Integer allocateType;
/**
* 备注
......@@ -187,6 +203,31 @@ public class BusForm implements Serializable {
@TableField(value = "update_user")
private String updateUser;
/**
* 报废类型(1报废出库,2移入报废区)
*/
private Integer type;
/**
* 维修单位id
*/
@TableField(value = "repair_id")
private String repairId;
/**
* 维修单位名称
*/
@TableField(value = "repair_name")
private String repairName;
/**
* 销毁、报废单位id
*/
@TableField(value = "destory_id")
private String destoryId;
/**
* 销毁、报废单位名称
*/
@TableField(value = "destory_name")
private String destoryName;
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
package com.junmp.jyzb.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* 报废收物单位表
* @TableName base_destory_unit
*/
@TableName(value ="base_destory_unit")
@Data
public class DestoryUnit implements Serializable {
/**
* 报废收物单位id
*/
private String id;
/**
* 报废收物单位名称
*/
@TableField(value = "name")
private String name;
/**
* 报废收物单位短码
*/
@TableField(value = "code")
private String code;
/**
* 简称
*/
@TableField(value = "short_name")
private String shortName;
/**
* 联系人
*/
@TableField(value = "contacts")
private String contacts;
/**
* 联系电话
*/
@TableField(value = "phone")
private String phone;
/**
* 状态(1为启用,0为禁用)
*/
@TableField(value = "state")
private Integer state;
/**
* 创建时间
*/
@TableField(value = "create_time")
private Date createTime;
/**
* 创建人员
*/
@TableField(value = "create_user")
private String createUser;
/**
* 更新时间
*/
@TableField(value = "update_time")
private Date updateTime;
/**
* 更新人员
*/
@TableField(value = "update_user")
private String updateUser;
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
......@@ -81,5 +81,11 @@ public class EquipmentSize implements Serializable {
private String photo;
/**
* 使用教学说明
*/
@TableField(value = "instructions")
private String instructions;
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
......@@ -33,17 +33,26 @@ public class Inventory implements Serializable {
*/
@TableField("type_id")
private String typeId;
@TableField(exist = false)
private String typeName;
/**
* 装备类型ID
*/
@TableField("size_id")
private String sizeId;
@TableField(exist = false)
private String sizeName;
/**
* 供应商ID
*/
@TableField("supplier_id")
private String supplierId;
@TableField(exist = false)
private String supplierName;
/**
* 部门ID
*/
......@@ -137,6 +146,12 @@ public class Inventory implements Serializable {
private String locationId ;
/**
* 位置名称
*/
@TableField(exist = false)
private String locationName ;
/**
* 是否遗失
*/
@TableField(value = "lost_flag")
......
......@@ -134,6 +134,27 @@ public class InventorySummary implements Serializable {
private Integer expireNumber;
/**
* 报废数量
*/
@ApiModelProperty(value = "报废数量")
@TableField("broken_number")
private Integer brokenNumber;
/**
* 临近报废数量
*/
@ApiModelProperty(value = "临近报废数量")
@TableField("near_broken_number")
private Integer nearBrokenNumber;
/**
* 使用中数量(领用和借用)
*/
@ApiModelProperty(value = "使用中数量(领用和借用)")
@TableField("use_number")
private Integer useNumber;
/**
* 创建时间
*/
@ApiModelProperty(value = "创建时间")
......@@ -170,6 +191,8 @@ public class InventorySummary implements Serializable {
@TableField(exist = false,updateStrategy = FieldStrategy.IGNORED)
private String photo;
@TableField(exist = false)
private String instructions;
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
package com.junmp.jyzb.entity;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@ApiModel(value = "com-junmp-jyzb-domain-LogDetail")
/**
*
* @TableName base_log_detail
*/
@TableName(value ="base_log_detail")
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("base_log_detail")
public class LogDetail implements Serializable {
/**
* 出入库明细ID
*/
@ApiModelProperty(value = "出入库明细ID")
private Integer id;
private Long id;
/**
* 出入库汇总id
*/
@TableField(value = "summary_id")
private Long summaryId;
/**
* 物资id
*/
@ApiModelProperty(value = "物资id")
@TableField("inventory_id")
@TableField(value = "inventory_id")
private String inventoryId;
/**
* 出入库汇总ID
* 单据ID
*/
@ApiModelProperty(value = "出入库汇总ID")
@TableField("summary_id")
private Integer summaryId;
@TableField(value = "order_main_id")
private String orderMainId;
/**
* 单据ID
* 单据编号
*/
@ApiModelProperty(value = "单据ID")
@TableField("order_main_id")
private String orderMainId;
@TableField(value = "order_code")
private String orderCode;
/**
* 业务类型
*/
@TableField(value = "bussiness_type")
private String bussinessType;
/**
* EPC信息
*/
@ApiModelProperty(value = "EPC信息")
@TableField(value = "epc")
private String epc;
/**
* 装备名称
* 装备类型id
*/
@TableField(value = "type_id")
private String typeId;
/**
* 装备类型名称
*/
@TableField(value = "type_name")
private String typeName;
/**
* 装备号型id
*/
@ApiModelProperty(value = "装备名称")
@TableField("equipment_name")
private String equipmentName;
@TableField(value = "size_id")
private String sizeId;
/**
* 装备号型
* 装备号型名称
*/
@ApiModelProperty(value = "装备号型")
@TableField("equipment_size")
private String equipmentSize;
@TableField(value = "size_name")
private String sizeName;
/**
* 供应商
* 供应商id
*/
@ApiModelProperty(value = "供应商")
@TableField("equipment_supplier")
private String equipmentSupplier;
@TableField(value = "supplier_id")
private String supplierId;
/**
* 供应商名称
*/
@TableField(value = "supplier_name")
private String supplierName;
/**
* 装备类型:0单件/1装备包
*/
@ApiModelProperty(value = "装备类型:0单件/1装备包")
@TableField("equipment_type")
@TableField(value = "equipment_type")
private Integer equipmentType;
/**
* 位置id(存放单警柜id或者是仓库id)
*/
@TableField(value = "location_id")
private String locationId;
/**
* 位置名称(单警柜,仓库)
*/
@TableField(value = "location_name")
private String locationName;
/**
* 箱门id
*/
@TableField(value = "cabinetbox_id")
private String cabinetboxId;
/**
* 状态,0正常/1异常
*/
@ApiModelProperty(value = "状态,0正常/1异常")
@TableField("error_state")
@TableField(value = "error_state")
private Integer errorState;
/**
* 出入状态:in入库,out出库
*/
@TableField(value = "out_in_state")
private String outInState;
/**
* 创建时间
*/
@TableField(value = "create_time", fill = FieldFill.INSERT)
@TableField(value = "create_time")
private Date createTime;
/**
* 更新时间
*/
@TableField(value = "update_time", fill = FieldFill.UPDATE)
@TableField(value = "update_time")
private Date updateTime;
/**
* 更新人员
*/
@TableField(value = "update_user", fill = FieldFill.INSERT)
@TableField(value = "update_user")
private String updateUser;
/**
* 创建人员
*/
@TableField(value = "create_user", fill = FieldFill.UPDATE)
@TableField(value = "create_user")
private String createUser;
/**
* 照片信息
*/
@ApiModelProperty(value = "照片信息")
@TableField(value = "picture")
private String picture;
/**
* 作业设备:0手持机 1单警柜 2通道)
* 出入设备:0手持机/1单警柜/2通道
*/
@ApiModelProperty(value = "业务类型")
@TableField("device_type")
@TableField(value = "device_type")
private Integer deviceType;
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
package com.junmp.jyzb.entity;
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.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
import lombok.AllArgsConstructor;
import java.util.List;
import lombok.Data;
import lombok.NoArgsConstructor;
@ApiModel(value = "com-junmp-jyzb-domain-LogSummary")
/**
*
* @TableName base_log_summary
*/
@TableName(value ="base_log_summary")
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("base_log_summary")
public class LogSummary implements Serializable {
/**
* 出入库汇总ID
*/
@ApiModelProperty(value = "出入库汇总ID")
private Integer id;
private Long id;
/**
* 组织机构ID
*/
@ApiModelProperty(value = "组织机构ID")
@TableField("org_id")
private String orgId;
@TableField(value = "org_id")
private Long orgId;
/**
* 组织机构名称
*/
@ApiModelProperty(value = "组织机构名称")
@TableField("org_name")
@TableField(value = "org_name")
private String orgName;
/**
* 单据id
* 单据ID
*/
@ApiModelProperty(value = "单据id")
@TableField("order_main_id")
@TableField(value = "order_main_id")
private String orderMainId;
/**
* 存储ID
*/
@ApiModelProperty(value = "存储ID")
@TableField("location_id")
private String locationId;
/**
* 存储名称:XX仓库,XX单警柜
* 单据编号
*/
@ApiModelProperty(value = "存储名称")
@TableField("location_name")
private String locationName;
@TableField(value = "order_code")
private String orderCode;
/**
* 设备标识
*/
@ApiModelProperty(value = "设备标识")
@TableField(value = "device")
private String device;
/**
* 出入设备:0手持机/1单警柜/2通道
*/
@ApiModelProperty(value = "出入设备:0手持机/1单警柜/2通道")
@TableField("device_type")
@TableField(value = "device_type")
private Integer deviceType;
/**
* 所属位置(0仓库1单警柜)
*/
@TableField(value = "location_type")
private Integer locationType;
/**
* 操作时间
*/
@ApiModelProperty(value = "操作时间")
@TableField("use_time")
@TableField(value = "use_time")
private Date useTime;
/**
* 业务类型
*/
@ApiModelProperty(value = "业务类型")
@TableField("bussiness_type")
@TableField(value = "bussiness_type")
private String bussinessType;
/**
* 操作人员姓名
*/
@ApiModelProperty(value = "操作人员姓名")
@TableField("user_name")
@TableField(value = "user_name")
private String userName;
/**
* 出入库类型:0出库/1入库
*/
@ApiModelProperty(value = "出入库类型:0出库/1入库")
@TableField("out_in_state")
private Integer outInState;
/**
* 照片信息
*/
@ApiModelProperty(value = "照片信息")
@TableField(value = "picture")
private String picture;
/**
* 装备记录集合,警棍、盾牌
* 装备记录集合,警棍/盾牌
*/
@ApiModelProperty(value = "装备记录集合")
@TableField("equipment_List")
@TableField(value = "equipment_list")
private String equipmentList;
/**
* 创建时间
*/
@TableField(value = "create_time", fill = FieldFill.INSERT)
@TableField(value = "create_time")
private Date createTime;
/**
* 更新时间
*/
@TableField(value = "update_time", fill = FieldFill.UPDATE)
@TableField(value = "update_time")
private Date updateTime;
/**
* 更新人员
*/
@TableField(value = "update_user", fill = FieldFill.INSERT)
@TableField(value = "update_user")
private String updateUser;
/**
* 创建人员
*/
@TableField(value = "create_user", fill = FieldFill.UPDATE)
@TableField(value = "create_user")
private String createUser;
@TableField(exist = false)
private List<LogDetail> logDetailList;
/**
* 出入状态
*/
@TableField(value = "out_in_state")
private String outInState;
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
......@@ -3,6 +3,7 @@ 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.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
......@@ -46,6 +47,9 @@ import java.util.Date;
@TableField("warehouse_id")
private String warehouseId;
@TableField("warehouse_name")
private String warehouseName;
@TableField("plan_num")
private Integer planNum;
......@@ -57,6 +61,8 @@ import java.util.Date;
@TableField("order_type")
private String orderType;
/**
* 创建时间
*/
......
......@@ -76,7 +76,7 @@ public class Policeman implements Serializable {
private Integer state;
@TableField(value = "user_id",updateStrategy = FieldStrategy.IGNORED)
private Long UserId;
private Long userId;
/**
* 0表示警员,1表示辅警
......
package com.junmp.jyzb.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* 维修单位表
* @TableName base_repair_unit
*/
@TableName(value ="base_repair_unit")
@Data
public class RepairUnit implements Serializable {
/**
* 维修单位id
*/
private String id;
/**
* 维修单位名称
*/
@TableField(value = "name")
private String name;
/**
* 维修单位短码
*/
@TableField(value = "code")
private String code;
/**
* 简称
*/
@TableField(value = "short_name")
private String shortName;
/**
* 联系人
*/
@TableField(value = "contacts")
private String contacts;
/**
* 联系电话
*/
@TableField(value = "phone")
private String phone;
/**
* 状态(1为启用,0为禁用)
*/
@TableField(value = "state")
private Integer state;
/**
* 创建时间
*/
@TableField(value = "create_time")
private Date createTime;
/**
* 创建人员
*/
@TableField(value = "create_user")
private String createUser;
/**
* 更新时间
*/
@TableField(value = "update_time")
private Date updateTime;
/**
* 更新人员
*/
@TableField(value = "update_user")
private String updateUser;
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
......@@ -23,11 +23,13 @@ import com.junmp.v2.sys.api.bean.user.dto.RoleUserDto;
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.HistoryService;
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;
import org.flowable.engine.history.HistoricProcessInstance;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
......@@ -50,6 +52,9 @@ public class CounterSignListener implements ExecutionListener {
private RepositoryService repositoryService;
@Resource
private OrgUserMapper orgUserMapper;
@Resource
private HistoryService historyService;
@Override
public void notify(DelegateExecution execution) {
String currentActivityId = execution.getCurrentActivityId();
......@@ -178,13 +183,14 @@ public class CounterSignListener implements ExecutionListener {
execution.setVariable(variable, assigneeList);
assigneeList.forEach(userId->//为相应的用户推送消息
{
MessageSendReq sendReq = new MessageSendReq();
sendReq.setReceiveUserIds(String.valueOf(userId));
sendReq.setMsgTitle("BizTypeEnum.YW.getDesc()");
sendReq.setBizType("BizTypeEnum.YW.getValue()");
sendReq.setMsgContent("msgContent");
sendReq.setMsgTitle("单据审批提示");
sendReq.setBizType("单据审批");
sendReq.setMsgContent("您有一条单据流程需要进行审批");
sendReq.setPriority("0");
sendReq.setSendTime(DateTime.now());
messageApi.sendMessage(sendReq);
......@@ -194,7 +200,7 @@ public class CounterSignListener implements ExecutionListener {
req1.setReadFlag(0);
req1.setReceiveUserId(Long.valueOf(userId));
Integer count1 = messageApi.queryCount(req1);
messageApi.pushMsgToUser(String.valueOf(userId),count1);
messageApi.pushMsgToUser(userId,count1);
});
}
......
......@@ -12,7 +12,7 @@ import java.util.Map;
@Mapper
public interface CabinetMapper extends BaseMapper<Cabinet> {
List<Cabinet> getAllCabinetByOrgList(List<Long> allOrgId);
List<Cabinet> getAllCabinetByOrgList(@Param("list") List<Long> allOrgId);
boolean SetInventoryInfo(String id);
......
package com.junmp.jyzb.mapper;
import com.junmp.jyzb.entity.DestoryUnit;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @author lxh专属坐骑
* @description 针对表【base_destory_unit(报废收物单位表)】的数据库操作Mapper
* @createDate 2023-10-16 09:35:03
* @Entity com.junmp.jyzb.entity.DestoryUnit
*/
public interface DestoryUnitMapper extends BaseMapper<DestoryUnit> {
}
......@@ -26,12 +26,11 @@ public interface InventoryMapper extends BaseMapper<Inventory> {
boolean deleteAllMsg();
//根据单警柜统计装备信息
boolean SetCabinetInventory();
boolean SetCabinetInventory(@Param("brokenNumberDays") Integer brokenNumberDays);
//根据仓库统计装备信息
boolean SetWarehouseInventory();
boolean SetWarehouseInventory(@Param("brokenNumberDays") Integer brokenNumberDays);
List<InventoryDto> EqsBySearchType(InventoryReq req);
//根据货架id查询汇总信息(list)
List<InventorySummary> getSumByShelf(String shelfId);
......@@ -54,11 +53,10 @@ public interface InventoryMapper extends BaseMapper<Inventory> {
//查询组织机构下面的装备信息
List<InventoryVo> selectListByOrg(Long orgId);
IPage<InventoryDto> EqsByTypePage(Page<InventoryDto> page,@Param("queryType")String queryType,@Param("orgId") Long orgId,@Param("warehouseId")String warehouseId,@Param("cabinetId")String cabinetId);
//通过单警柜箱门id获取箱门下的装备汇总信息(page)
IPage<InventorySummary> EqsByCabinetBoxIdPage(Page<InventorySummary> page, String id);
boolean insertInventorySummary(@Param("req") BatchEditingInvsReq req);
boolean insertInventorySummary(@Param("req") BatchEditingInvsReq req,@Param("brokenNumberDays")Integer brokenNumberDays);
}
\ No newline at end of file
......@@ -2,6 +2,7 @@ package com.junmp.jyzb.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.junmp.jyzb.api.bean.dto.InventorySumDto;
import com.junmp.jyzb.api.bean.dto.WarehouseDto;
import com.junmp.jyzb.api.bean.query.InventorySumReq;
import com.junmp.jyzb.entity.InventorySummary;
import org.apache.ibatis.annotations.Mapper;
......@@ -12,5 +13,20 @@ import java.util.List;
@Mapper
public interface InventorySummaryMapper extends BaseMapper<InventorySummary> {
//用于出库单中的装备选择
List<InventorySumDto> GetInventorySumInfo(@Param("req") InventorySumReq req);
//根据仓库id删除装备汇总信息
boolean deleteByWarehouse(@Param("list") List<WarehouseDto> allWarehouse);
boolean getSumByWarehouse(@Param("list") List<WarehouseDto> allWarehouse,@Param("brokenNumberDays")Integer brokenNumberDays);
//根据单警柜删除装备汇总信息
boolean deleteByCabinet(@Param("cabinetId") String cabinetId);
boolean getSumByCabinet(@Param("cabinetId") String cabinetId,@Param("brokenNumberDays")Integer brokenNumberDays);
InventorySummary getTotalNumberAndPrice(@Param("req") InventorySumReq req);
InventorySummary EquipmentStatistics(@Param("req") InventorySumReq req);
}
\ No newline at end of file
package com.junmp.jyzb.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.junmp.jyzb.entity.LogDetail;
import org.apache.ibatis.annotations.Mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@Mapper
/**
* @author lxh专属坐骑
* @description 针对表【base_log_detail】的数据库操作Mapper
* @createDate 2023-10-13 08:29:42
* @Entity com.junmp.jyzb.entity.LogDetail
*/
public interface LogDetailMapper extends BaseMapper<LogDetail> {
}
\ No newline at end of file
}
package com.junmp.jyzb.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.junmp.jyzb.api.bean.query.LogSummaryReq;
import com.junmp.jyzb.entity.LogSummary;
import org.apache.ibatis.annotations.Mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
@Mapper
/**
* @author lxh专属坐骑
* @description 针对表【base_log_summary】的数据库操作Mapper
* @createDate 2023-10-13 08:29:36
* @Entity com.junmp.jyzb.entity.LogSummary
*/
public interface LogSummaryMapper extends BaseMapper<LogSummary> {
}
\ No newline at end of file
IPage<LogSummary> ShowInOutRecordsByOrder(Page<LogSummary> page, @Param("req") LogSummaryReq req);
IPage<LogSummary> ShowInOutRecordsByWarehouse(Page<LogSummary> page,@Param("req") LogSummaryReq req);
IPage<LogSummary> ShowInOutRecordsByCabinet(Page<LogSummary> page,@Param("req") LogSummaryReq req);
// IPage<LogSummary> ShowInOutRecordsPage(Page<LogSummary> page,@Param("req") LogSummaryReq req);
// IPage<LogSummary> ShowInOutRecordsByItems(Page<LogSummary> page,@Param("req") LogSummaryReq req);
}
package com.junmp.jyzb.mapper;
import com.junmp.jyzb.entity.RepairUnit;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @author lxh专属坐骑
* @description 针对表【base_repair_unit(维修单位表)】的数据库操作Mapper
* @createDate 2023-10-16 09:35:11
* @Entity com.junmp.jyzb.entity.RepairUnit
*/
public interface RepairUnitMapper extends BaseMapper<RepairUnit> {
}
package com.junmp.jyzb.rabbitmq;
import com.junmp.jyzb.api.bean.req.CabinetInOutRecordsReq;
import com.junmp.jyzb.api.bean.req.RabbitMqOrderReq;
import com.junmp.jyzb.service.InventorySummaryService;
import com.rabbitmq.client.Channel;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.amqp.support.AmqpHeaders;
import org.springframework.messaging.handler.annotation.Header;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.io.IOException;
/**
* 单警柜出入库记录上报并且记录到数据库中
*/
@Component
public class CabinetLogReceiver {
@Resource
private InventorySummaryService inventorySummaryService;
@RabbitListener(queues = "11111")//监听队列名
private void a(CabinetInOutRecordsReq req, Channel channel, @Header(AmqpHeaders.DELIVERY_TAG) long deliveryTag){
try {
System.out.println("req = " + req);
//将消息进行消费
Boolean result = inventorySummaryService.cabinetInOutRecords(req);
if (result){
// 手动确认消息
channel.basicAck(deliveryTag, false);
}else {
channel.basicNack(deliveryTag, false, true);
}
} catch (Exception e) {
// 处理消息过程中发生异常,拒绝消息并将其重新放回队列
try {
channel.basicNack(deliveryTag, false, true);
} catch (IOException ex) {
throw new RuntimeException(ex);
}
}
}
}
package com.junmp.jyzb.rabbitmq;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.junmp.jyzb.api.bean.req.UpdateOrderReq;
import com.junmp.jyzb.service.OrderLogService;
import com.rabbitmq.client.Channel;
import org.springframework.amqp.rabbit.annotation.RabbitHandler;
......@@ -16,18 +17,14 @@ import java.io.IOException;
* 创建消息接收监听�
* */
@Component
@RabbitListener(queues = "Test1Exchange") //监听的队列名 TestDirectQueue
@RabbitListener(queues = "1369509498032809902") //监听的队列名 (模拟本地主机接收单据)
public class DirectReceiver {
@Resource
private OrderLogService orderLogService;
@RabbitHandler
private void modelConvert(String content, Channel channel, @Header(AmqpHeaders.DELIVERY_TAG) long deliveryTag) {
private void modelConvert(UpdateOrderReq req, Channel channel, @Header(AmqpHeaders.DELIVERY_TAG) long deliveryTag) {
try {
// ObjectMapper objectMapper=new ObjectMapper();
// OrderLog orderLog = objectMapper.readValue(content, OrderLog.class);
// // 进行消息处理和条件判断
// orderLogService.save(orderLog);
System.out.println("req = " + req);
// 手动确认消息
channel.basicAck(deliveryTag, false);
} catch (Exception e) {
......
......@@ -21,19 +21,21 @@ public class OrderMQReceiver {
@Resource
private InventorySummaryService inventorySummaryService;
@RabbitListener(queues = "11111")//监听队列名
@RabbitListener(queues = "orderResult")//监听队列名
private void a(RabbitMqOrderReq req, Channel channel, @Header(AmqpHeaders.DELIVERY_TAG) long deliveryTag){
try {
//将消息进行消费
System.out.println("req = " + req);
Boolean result = inventorySummaryService.processInventoryRecords(req);
if (result){
// 手动确认消息
channel.basicAck(deliveryTag, false);
}else {
channel.basicNack(deliveryTag, false, true);
}
//将消息进行消费
// Boolean result = inventorySummaryService.processInventoryRecords(req);
// if (result){
// // 手动确认消息
// channel.basicAck(deliveryTag, false);
// }else {
// channel.basicNack(deliveryTag, false, true);
// }
// 手动确认消息
channel.basicAck(deliveryTag, false);
} catch (Exception e) {
// 处理消息过程中发生异常,拒绝消息并将其重新放回队列
try {
......
package com.junmp.jyzb.service;
import com.junmp.jyzb.api.bean.req.DestoryUnitReq;
import com.junmp.jyzb.entity.DestoryUnit;
import com.baomidou.mybatisplus.extension.service.IService;
import com.junmp.v2.db.api.page.PageResult;
import java.util.List;
/**
* @author lxh专属坐骑
* @description 针对表【base_destory_unit(报废收物单位表)】的数据库操作Service
* @createDate 2023-10-16 09:35:03
*/
public interface DestoryUnitService extends IService<DestoryUnit> {
String addDestoryUnit(DestoryUnitReq req);
boolean updateDestoryUnit(DestoryUnitReq req);
List<DestoryUnit> showDestoryUnitList(DestoryUnitReq req);
PageResult<DestoryUnit> showDestoryUnitPage(DestoryUnitReq req);
boolean delDestoryUnit(DestoryUnitReq req);
}
......@@ -6,15 +6,14 @@ import com.junmp.jyzb.api.bean.query.*;
import com.junmp.jyzb.api.bean.req.BatchEditingInvsReq;
import com.junmp.jyzb.api.bean.req.EquipmentBindReq;
import com.junmp.jyzb.api.bean.req.RabbitMqOrderReq;
import com.junmp.jyzb.entity.Inventory;
import com.junmp.jyzb.entity.InventorySummary;
import com.junmp.jyzb.utils.ResponseResult;
import com.junmp.jyzb.entity.LogDetail;
import com.junmp.jyzb.entity.LogSummary;
import com.junmp.v2.db.api.page.PageResult;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
import java.util.Map;
public interface InventoryService extends IService<Inventory> {
//根据装备id查询出装备的详细信息
......@@ -33,11 +32,7 @@ public interface InventoryService extends IService<Inventory> {
List<InventoryDto> GetInvInfoByEpc(InventoryReq req);
//根据组织机构/单警柜id/仓库id查询每件装备细信的详息(返回结果是List)
List<InventoryDto> EqsBySearchType(InventoryReq req);
//根据组织机构/单警柜id/仓库id查询每件装备细信的详息(返回结果是page)
PageResult<InventoryDto> EqsByTypePage(InventoryReq req);
//查询箱门(cabinetBox下)所有装备简要信息列表(传递cabinetBoxId)
List<EqsBriefDto> searchEqsByBoxId(CabinetBoxReq req);
......@@ -71,8 +66,6 @@ public interface InventoryService extends IService<Inventory> {
//通过组织机构id对该组织机构下的装备进行导出
void ExportInventoryExcel(InventoryReq req);
//获取装备的出入库记录
List<InOutRecordsDto> getInOutRecords(InventoryReq req);
//通过条件查询装备数量报表
List<EqsSumDto> GetListEquipment(InventoryReq req);
......@@ -85,4 +78,16 @@ public interface InventoryService extends IService<Inventory> {
//批量信息修改
boolean BatchEditingInvsInfo(BatchEditingInvsReq req);
//获取装备的出入库记录(根据装备id获取某件装备的出入库记录信息)
PageResult<LogDetail> getInOutRecords(InventoryReq req);
//根据单据获取出入库记录
PageResult<LogSummary> ShowInOutRecordsByOrder(LogSummaryReq req);
PageResult<LogSummary> ShowInOutRecordsByItems(LogSummaryReq req);
boolean test(RabbitMqOrderReq req);
}
......@@ -3,6 +3,7 @@ package com.junmp.jyzb.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.junmp.jyzb.api.bean.dto.InventorySumDto;
import com.junmp.jyzb.api.bean.query.InventorySumReq;
import com.junmp.jyzb.api.bean.req.CabinetInOutRecordsReq;
import com.junmp.jyzb.api.bean.req.RabbitMqOrderReq;
import com.junmp.jyzb.entity.InventorySummary;
import com.junmp.v2.db.api.page.PageResult;
......@@ -20,4 +21,15 @@ public interface InventorySummaryService extends IService<InventorySummary> {
//处理本地主机返回单据结果
Boolean processInventoryRecords(RabbitMqOrderReq req);
//对summary表中数据进行重新计算装备信息汇总
Boolean updateSummaryInsByOrder(Long orgId);
//处理单警柜返回单据结果
Boolean cabinetInOutRecords(CabinetInOutRecordsReq req);
//根据组织机构id/单警柜id/仓库id查询出库存汇总数量以及金额
List<InventorySummary> getTotalNumberAndPrice(InventorySumReq req);
//计算装备总数(装备数量数据统计)
List<InventorySummary> EquipmentStatistics(InventorySumReq req);
}
package com.junmp.jyzb.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.junmp.jyzb.entity.LogDetail;
public interface LogDetailService extends IService<LogDetail> {
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @author lxh专属坐骑
* @description 针对表【base_log_detail】的数据库操作Service
* @createDate 2023-10-13 08:29:42
*/
public interface LogDetailService extends IService<LogDetail> {
}
package com.junmp.jyzb.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.junmp.jyzb.api.bean.dto.LogSummaryDto;
import com.junmp.jyzb.entity.LogSummary;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* @author lxh专属坐骑
* @description 针对表【base_log_summary】的数据库操作Service
* @createDate 2023-10-13 08:29:36
*/
public interface LogSummaryService extends IService<LogSummary> {
//上传出入日志
List<LogSummaryDto> getLogs();
}
package com.junmp.jyzb.service;
import com.junmp.jyzb.api.bean.req.RepairUnitReq;
import com.junmp.jyzb.entity.RepairUnit;
import com.baomidou.mybatisplus.extension.service.IService;
import com.junmp.v2.db.api.page.PageResult;
import java.util.List;
/**
* @author lxh专属坐骑
* @description 针对表【base_repair_unit(维修单位表)】的数据库操作Service
* @createDate 2023-10-16 09:35:11
*/
public interface RepairUnitService extends IService<RepairUnit> {
String addRepairUnit(RepairUnitReq req);
boolean updateRepairUnit(RepairUnitReq req);
List<RepairUnit> showRepairUnitList(RepairUnitReq req);
PageResult<RepairUnit> showRepairUnitPage(RepairUnitReq req);
boolean delRepairUnit(RepairUnitReq req);
}
package com.junmp.jyzb.service;
import com.junmp.jyzb.api.bean.req.RabbitMqOrderReq;
public interface TestService {
Boolean uploadResult(RabbitMqOrderReq req);
}
......@@ -40,7 +40,7 @@ public interface WarehouseService extends IService<Warehouse> {
boolean changeWarehouseState(WarehouseReq req);
List<WarehouseDto> getAllWarehouse(WarehouseReq orgId);
List<WarehouseDto> getAllWarehouse(Long orgId);
//通过仓库id 判断仓库是否存在
......
......@@ -22,11 +22,14 @@ import com.junmp.v2.common.util.BeanPlusUtil;
import com.junmp.v2.db.api.factory.PageFactory;
import com.junmp.v2.db.api.factory.PageResultFactory;
import com.junmp.v2.db.api.page.PageResult;
import com.junmp.v2.sys.user.entity.SysUserOrg;
import com.junmp.v2.sys.user.service.SysUserOrgService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.List;
import java.util.UUID;
import java.util.stream.Collectors;
/**
......@@ -42,6 +45,9 @@ public class BusFormServiceImpl extends ServiceImpl<BusFormMapper, BusForm> impl
@Resource
private IFlowInstanceService FlowInstanceService;
@Resource
private SysUserOrgService sysUserOrgService;
/**
* 创建业务单
* @param req
......@@ -51,12 +57,30 @@ public class BusFormServiceImpl extends ServiceImpl<BusFormMapper, BusForm> impl
public String AddBussinessOrder(UpdateBusFormReq req) {
BusForm busForm = new BusForm();
BeanUtil.copyProperties(req,busForm);
OrderNum orderNum = stocktakeService.setOrderCode(req.getBussinessType(), req.getOrgId());
String codeValue=String.format("%04d",orderNum.getNum());
busForm.setBussinessCode(orderNum.getBussinessType()+"-"+orderNum.getYear()+"-"+
LocalDateTime.now().getMonth().getValue()+"-"+LocalDateTime.now().getDayOfMonth()+"-"+codeValue);
busForm.setCreateTime(DateTimeUtil.getCurrentDateTime());
save(busForm);
if (ObjectUtil.isNull(req.getId())){
String id= UUID.randomUUID().toString();
busForm.setId(id);
//设置单据号(调拨的单号根据和登录人员的组织机构id有关)
//根据userId去查询组织机构id
OrderNum orderNum=new OrderNum();
if (req.getBussinessType().equals("allocate")){
if (req.getStartOrgId() == req.getOrgId()){
orderNum = stocktakeService.setOrderCode(req.getBussinessType(), req.getStartOrgId());
} else {
orderNum = stocktakeService.setOrderCode(req.getBussinessType(), req.getEndOrgId());
}
}else {
orderNum = stocktakeService.setOrderCode(req.getBussinessType(), req.getOrgId());
}
String codeValue=String.format("%04d",orderNum.getNum());
busForm.setBussinessCode(orderNum.getBussinessType()+orderNum.getYear()+
String.format("%02d",LocalDateTime.now().getMonth().getValue())+
String.format("%02d",LocalDateTime.now().getDayOfMonth())+codeValue);
busForm.setCreateTime(DateTimeUtil.getCurrentDateTime());
}
//执行工作流
if (req.getExamineState().equals("working"))
{
......@@ -64,9 +88,18 @@ public class BusFormServiceImpl extends ServiceImpl<BusFormMapper, BusForm> impl
startProcessInstanceDTO.setProcessDefinitionId(req.getProcessDefinitionId());
startProcessInstanceDTO.setOrderId(busForm.getId());
startProcessInstanceDTO.setOrderType("workOrder");
startProcessInstanceDTO.setUserId(req.getUserId());
startProcessInstanceDTO.setUserId(req.getApplyUserId());
String ProcessInstanceId= FlowInstanceService.startProcessInstanceById(startProcessInstanceDTO);
busForm.setProcessId(ProcessInstanceId);
}
if(ObjectUtil.isNotNull(req.getId())){
//已经是一个草稿,在点击提交的时候只需要更新即可,因为数据库中已经存在该单据
updateById(busForm);
}else {
//保存
this.save(busForm);
}
return busForm.getId();
}
......@@ -106,8 +139,8 @@ public class BusFormServiceImpl extends ServiceImpl<BusFormMapper, BusForm> impl
//单据类型
.eq(ObjectUtil.isNotNull(req.getBussinessType()), BusForm::getBussinessType, req.getBussinessType())
//审核状态
.eq(ObjectUtil.isNotNull(req.getExamineState()), BusForm::getExamineState, req.getExamineState())
//
.eq(ObjectUtil.isNotNull(req.getExamineState()) && !req.getExamineState().trim().isEmpty(), BusForm::getExamineState, req.getExamineState())
//仓库id
.eq(ObjectUtil.isNotNull(req.getWarehouseId()), BusForm::getWarehouseId, req.getWarehouseId())
.eq(ObjectUtil.isNotNull(req.getOrgId()),BusForm::getOrgId,req.getOrgId())
.ge(ObjectUtil.isNotNull(req.getStartTime()), BusForm::getCreateTime, req.getStartTime())
......
package com.junmp.jyzb.service.impl;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.junmp.jyzb.api.bean.req.DestoryUnitReq;
import com.junmp.jyzb.api.bean.req.ManufacturerReq;
import com.junmp.jyzb.api.exception.enums.DestoryUnitExceptionEnum;
import com.junmp.jyzb.api.exception.enums.ManufacturerExceptionEnum;
import com.junmp.jyzb.entity.DestoryUnit;
import com.junmp.jyzb.entity.Manufacturer;
import com.junmp.jyzb.service.DestoryUnitService;
import com.junmp.jyzb.mapper.DestoryUnitMapper;
import com.junmp.jyzb.utils.DateTimeUtil;
import com.junmp.v2.common.exception.base.ServiceException;
import com.junmp.v2.common.util.BeanPlusUtil;
import com.junmp.v2.db.api.factory.PageFactory;
import com.junmp.v2.db.api.factory.PageResultFactory;
import com.junmp.v2.db.api.page.PageResult;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
/**
* @author lxh专属坐骑
* @description 针对表【base_destory_unit(报废收物单位表)】的数据库操作Service实现
* @createDate 2023-10-16 09:35:03
*/
@Service
public class DestoryUnitServiceImpl extends ServiceImpl<DestoryUnitMapper, DestoryUnit>
implements DestoryUnitService{
@Override
public String addDestoryUnit(DestoryUnitReq req) {
//判断是否已经存在短码,如果存在则不再允许添加成功
DestoryUnit one = getOne(new LambdaQueryWrapper<DestoryUnit>().eq(DestoryUnit::getCode, req.getName()));
if (ObjectUtil.isNotNull(one)){
throw new ServiceException(DestoryUnitExceptionEnum.DESTORYUNIT_IS_EXIST);
}
DestoryUnit destoryUnit = new DestoryUnit();
BeanPlusUtil.copyProperties(req,destoryUnit);
destoryUnit.setCreateTime(DateTimeUtil.getCurrentDateTime());
save(destoryUnit);
return destoryUnit.getId();
}
@Override
public boolean updateDestoryUnit(DestoryUnitReq req) {
DestoryUnit destoryUnit = new DestoryUnit();
BeanPlusUtil.copyProperties(req,destoryUnit);
destoryUnit.setUpdateTime(DateTimeUtil.getCurrentDateTime());
return updateById(destoryUnit);
}
@Override
public List<DestoryUnit> showDestoryUnitList(DestoryUnitReq req) {
LambdaQueryWrapper<DestoryUnit> wrapper = createWrapper(req);
return list(wrapper);
}
@Override
public PageResult<DestoryUnit> showDestoryUnitPage(DestoryUnitReq req) {
LambdaQueryWrapper<DestoryUnit> wrapper = createWrapper(req);
Page<DestoryUnit> page = page(PageFactory.getDefaultPage(req.getPageNo(), req.getPageSize()), wrapper);
return PageResultFactory.createPageResult(page);
}
@Override
@Transactional(rollbackFor = Exception.class)
public boolean delDestoryUnit(DestoryUnitReq req) {
//抛出异常,销毁、报废单位未选中
if (req.getDeleteList().size()==0){
throw new ServiceException(DestoryUnitExceptionEnum.DESTORYUNIT_NOT_CHOOSE);
}
//查询出全部的销毁、报废单位
Set<String> collect = list().stream().map(DestoryUnit::getId).collect(Collectors.toSet());
Set<String> delList=new HashSet<>(req.getDeleteList());
if (collect.containsAll(delList)){
return removeBatchByIds(req.getDeleteList());
}else {
throw new ServiceException(DestoryUnitExceptionEnum.DESTORYUNIT_NOT_EXIST);
}
}
private LambdaQueryWrapper<DestoryUnit> createWrapper(DestoryUnitReq req){
LambdaQueryWrapper<DestoryUnit> wrapper = new LambdaQueryWrapper<>();
if (ObjectUtil.isEmpty(req)){
return wrapper;
}
wrapper.eq(ObjectUtil.isNotNull(req.getId()),DestoryUnit::getId,req.getId());
wrapper.eq(ObjectUtil.isNotNull(req.getState()),DestoryUnit::getState,req.getState());
wrapper.like(ObjectUtil.isNotNull(req.getName()),DestoryUnit::getName,req.getName());
wrapper.like(ObjectUtil.isNotNull(req.getShortName()),DestoryUnit::getShortName,req.getShortName());
wrapper.like(ObjectUtil.isNotNull(req.getContacts()),DestoryUnit::getContacts,req.getContacts());
wrapper.orderByDesc(DestoryUnit::getCreateTime);
return wrapper;
}
}
......@@ -11,12 +11,15 @@ import com.junmp.jyzb.api.bean.dto.*;
import com.junmp.jyzb.api.bean.query.*;
import com.junmp.jyzb.api.bean.req.BatchEditingInvsReq;
import com.junmp.jyzb.api.bean.req.EquipmentBindReq;
import com.junmp.jyzb.api.bean.req.RabbitMqOrderReq;
import com.junmp.jyzb.api.bean.vo.InventoryVo;
import com.junmp.jyzb.api.exception.enums.CabinetBoxExceptionEnum;
import com.junmp.jyzb.api.exception.enums.CabinetExceptionEnum;
import com.junmp.jyzb.api.exception.enums.InventoryExceptionEnum;
import com.junmp.jyzb.entity.*;
import com.junmp.jyzb.mapper.InventorySummaryMapper;
import com.junmp.jyzb.mapper.LogSummaryMapper;
import com.junmp.jyzb.service.*;
import com.junmp.v2.common.exception.base.ServiceException;
import com.junmp.v2.common.util.BeanPlusUtil;
......@@ -24,9 +27,17 @@ import com.junmp.v2.common.util.HttpServletUtil;
import com.junmp.v2.db.api.factory.PageFactory;
import com.junmp.v2.db.api.factory.PageResultFactory;
import com.junmp.v2.db.api.page.PageResult;
import com.junmp.v2.dict.entity.SysDictItem;
import com.junmp.v2.dict.service.SysDictItemService;
import com.junmp.v2.office.api.OfficeExcelApi;
import com.junmp.v2.office.api.bean.ExcelExportParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.core.BindingBuilder;
import org.springframework.amqp.core.DirectExchange;
import org.springframework.amqp.core.Exchange;
import org.springframework.amqp.core.Queue;
import org.springframework.amqp.rabbit.core.RabbitAdmin;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
......@@ -82,6 +93,20 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
@Resource
private InventorySummaryService inventorySummaryService;
@Resource
private LogSummaryMapper logSummaryMapper;
@Resource
private RabbitTemplate rabbitTemplate;
@Resource
private RabbitAdmin rabbitAdmin;
@Resource
private SysDictItemService sysDictItemService;
@Resource
private InventorySummaryMapper inventorySummaryMapper;
//根据装备id查询出装备的详细信息
@Override
......@@ -103,35 +128,41 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
@Override
@Transactional(rollbackFor = Exception.class)
public boolean setInventoryMsg(){
//查询字典表中的临近报废天数
SysDictItem sysDictItem = sysDictItemService.getOne(new LambdaQueryWrapper<SysDictItem>()
.eq(SysDictItem::getItemText, "brokenNumber"));
//如果配置找不到,那就默认设置为15天为临近报废(如果装备的质保期小于15天了,就是为临近报废)
Integer brokenNumberDays;
if (ObjectUtil.isNotNull(sysDictItem)){
brokenNumberDays=15;
}else {
brokenNumberDays=Integer.parseInt(sysDictItem.getItemValue());
}
//先查询inventory_summary表中的物资阈值字段是否为空,如果为空则默认他是默认值,如果不是默认值,将其存储,再重新统计后进行赋值
List<InventorySummary> list = inventorySummaryService.list(new LambdaQueryWrapper<InventorySummary>()
.isNotNull(InventorySummary::getThreshold)
.eq(InventorySummary::getLocationType,0));
// List<InventorySummary> list = inventorySummaryService.list(new LambdaQueryWrapper<InventorySummary>()
// .isNotNull(InventorySummary::getThreshold)
// .eq(InventorySummary::getLocationType,0));
//清空数据库中已存在的信息
inventoryMapper.deleteAllMsg();
//放入单警柜信息汇总
boolean b = inventoryMapper.SetCabinetInventory();
boolean b = inventoryMapper.SetCabinetInventory(brokenNumberDays);
//放入仓库区域信息汇总
boolean b1 = inventoryMapper.SetWarehouseInventory();
boolean b2=true;
if (list.size()>0){
for (InventorySummary inventorySummary:list) {
InventorySummary one = inventorySummaryService.getOne(new LambdaQueryWrapper<InventorySummary>()
.eq(InventorySummary::getLocationId, inventorySummary.getLocationId())
.eq(InventorySummary::getLocationType, 0)
.eq(InventorySummary::getSizeId, inventorySummary.getSizeId())
.eq(InventorySummary::getTypeId, inventorySummary.getTypeId())
.eq(InventorySummary::getOrgId, inventorySummary.getOrgId()));
one.setThreshold(inventorySummary.getThreshold());
b2 = inventorySummaryService.updateById(one);
}
}
if (b && b1 && b2){
return true;
}else{
return false;
}
boolean b1 = inventoryMapper.SetWarehouseInventory(brokenNumberDays);
// boolean b2=true;
// if (list.size()>0){
// for (InventorySummary inventorySummary:list) {
// InventorySummary one = inventorySummaryService.getOne(new LambdaQueryWrapper<InventorySummary>()
// .eq(InventorySummary::getLocationId, inventorySummary.getLocationId())
// .eq(InventorySummary::getLocationType, 0)
// .eq(InventorySummary::getSizeId, inventorySummary.getSizeId())
// .eq(InventorySummary::getTypeId, inventorySummary.getTypeId())
// .eq(InventorySummary::getOrgId, inventorySummary.getOrgId()));
// one.setThreshold(inventorySummary.getThreshold());
// b2 = inventorySummaryService.updateById(one);
// }
// }
return (b && b1);
}
......@@ -202,47 +233,6 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
return inventoryDtoList;
}
//根据组织机构/单警柜id/仓库id查询每件装备细信的详息(返回结果是List)
@Override
public List<InventoryDto> EqsBySearchType(InventoryReq req) {
//判断传入的queryType参数是否是正确的
if (!req.getQueryType().equals("org") && !req.getQueryType().equals("warehouse") && !req.getQueryType().equals("cabinet")){
throw new ServiceException(CabinetExceptionEnum.PARAMETER_ERROR);
}
//判断如果传递了类别,判断传递的值是否为空或者是否不存在
if (ObjectUtil.isNotNull(req.getOrgId())){
pubOrgService.PubOrgExist(req.getOrgId());
} else if (ObjectUtil.isNotNull(req.getWarehouseId())){
warehouseService.WarehoustExist(req.getWarehouseId());
} else if (ObjectUtil.isNotNull(req.getCabinetId())){
cabinetService.CabinetExist(req.getCabinetId());
}else {
throw new ServiceException(CabinetExceptionEnum.PARAMETER_ERROR);
}
return inventoryMapper.EqsBySearchType(req);
}
//根据组织机构/单警柜id/仓库id查询每件装备细信的详息(返回结果是page)
public PageResult<InventoryDto> EqsByTypePage(InventoryReq req) {
//判断传入的queryType参数是否是正确的
if (!req.getQueryType().equals("org") && !req.getQueryType().equals("warehouse") && !req.getQueryType().equals("cabinet")){
throw new ServiceException(CabinetExceptionEnum.PARAMETER_ERROR);
}
//判断如果传递了类别,判断传递的值是否为空或者是否不存在
if (ObjectUtil.isNotNull(req.getOrgId())){
pubOrgService.PubOrgExist(req.getOrgId());
} else if (ObjectUtil.isNotNull(req.getWarehouseId())){
warehouseService.WarehoustExist(req.getWarehouseId());
} else if (ObjectUtil.isNotNull(req.getCabinetId())){
cabinetService.CabinetExist(req.getCabinetId());
}else {
throw new ServiceException(CabinetExceptionEnum.PARAMETER_ERROR);
}
Page<InventoryDto> page = PageFactory.getDefaultPage(req.getPageNo(), req.getPageSize());
IPage<InventoryDto> pages= inventoryMapper.EqsByTypePage(page,req.getQueryType(),req.getOrgId(),req.getWarehouseId(),req.getCabinetId());
page.setRecords(pages.getRecords());
return PageResultFactory.createPageResult(page);
}
//查询箱门(cabinetBox下)所有装备简要信息列表(传递cabinetBoxId)
@Override
......@@ -307,7 +297,7 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
return PageResultFactory.createPageResult(page1);
}
//根据条件查询仓库下的所有装备信息
//根据条件查询仓库/单警柜下的所有装备信息
@Override
public PageResult<InventoryDto> GetDetailByTerms(InventoryReq req) {
//判断组织机构是否存在
......@@ -315,15 +305,20 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
//根据条件查询仓库下的所有装备
LambdaQueryWrapper<Inventory> eq = new LambdaQueryWrapper<Inventory>()
.eq(Inventory::getOrgId, req.getOrgId())
.eq(Inventory::getLocationType, 0)
.eq(ObjectUtil.isNotNull(req.getLocationId()) && !req.getLocationId().trim().isEmpty(), Inventory::getLocationId, req.getLocationId())
.eq(ObjectUtil.isNotNull(req.getLocationType()),Inventory::getLocationType, req.getLocationType())
.eq(ObjectUtil.isNotNull(req.getLocationState()) && !req.getLocationState().trim().isEmpty(), Inventory::getLocationState, req.getLocationState())
.eq(ObjectUtil.isNotNull(req.getBussinessState()) && !req.getBussinessState().trim().isEmpty(), Inventory::getBussinessState, req.getBussinessState())
.eq(ObjectUtil.isNotNull(req.getTermState()), Inventory::getTermState, req.getTermState())
.eq(ObjectUtil.isNotNull(req.getSizeId()) && !req.getSizeId().trim().isEmpty(),Inventory::getSizeId,req.getSizeId())
.eq(ObjectUtil.isNotNull(req.getTypeId()) && !req.getTypeId().trim().isEmpty(),Inventory::getTypeId,req.getTypeId())
.eq(ObjectUtil.isNotNull(req.getPrice()),Inventory::getPrice,req.getPrice());
if (req.getLocationType().equals("0")){
eq.eq(ObjectUtil.isNotNull(req.getLocationId()) && !req.getLocationId().trim().isEmpty(), Inventory::getLocationId, req.getLocationId());
}else {
List<CabinetBox> list = cabinetBoxService.list(new LambdaQueryWrapper<CabinetBox>().eq(CabinetBox::getCabinetId, req.getLocationId()));
Set<String> cabinetList=list.stream().map(CabinetBox::getId).collect(Collectors.toSet());
eq.in(Inventory::getLocationId,cabinetList);
}
long size = list(eq).size();
Page<Inventory> page = page(PageFactory.getDefaultPage(req.getPageNo(), req.getPageSize()), eq);
List<Inventory> records = page.getRecords();
......@@ -396,7 +391,18 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
}
//修改库存信息汇总
@Transactional(rollbackFor = Exception.class)
public boolean setInventorySummary(BatchEditingInvsReq req){
//查询字典表中的临近报废天数
SysDictItem sysDictItem = sysDictItemService.getOne(new LambdaQueryWrapper<SysDictItem>()
.eq(SysDictItem::getItemText, "brokenNumber"));
//如果配置找不到,那就默认设置为15天为临近报废(如果装备的质保期小于15天了,就是为临近报废)
Integer brokenNumberDays;
if (ObjectUtil.isNotNull(sysDictItem)){
brokenNumberDays=15;
}else {
brokenNumberDays=Integer.parseInt(sysDictItem.getItemValue());
}
//先将其删除再全部重新添加计算
List<InventorySummary> list = inventorySummaryService.list(new LambdaQueryWrapper<InventorySummary>()
.eq(ObjectUtil.isNotNull(req.getOrgId()),InventorySummary::getOrgId,req.getOrgId())
......@@ -404,7 +410,7 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
.eq(ObjectUtil.isNotNull(req.getSizeId()),InventorySummary::getSizeId,req.getSizeId())
.eq(ObjectUtil.isNotNull(req.getTypeId()),InventorySummary::getTypeId,req.getTypeId()));
boolean b = inventorySummaryService.removeBatchByIds(list);
boolean a = inventoryMapper.insertInventorySummary(req);
boolean a = inventoryMapper.insertInventorySummary(req,brokenNumberDays);
return (a && b);
}
......@@ -553,22 +559,53 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
officeExcelApi.easyExportDownload(param);
}
//获取装备的出入库信息
//根据单据查询出入库记录
@Override
public List<InOutRecordsDto> getInOutRecords(InventoryReq req) {
public PageResult<LogSummary> ShowInOutRecordsByOrder(LogSummaryReq req) {
Page<LogSummary> page = PageFactory.getDefaultPage(req.getPageNo(), req.getPageSize());
IPage<LogSummary> ipage=logSummaryMapper.ShowInOutRecordsByOrder(page,req);
List<LogSummary> logSummaryList=new ArrayList<>();
ipage.getRecords().forEach(logSummary -> {
List<LogDetail> list = logDetailService.list(new LambdaQueryWrapper<LogDetail>()
.eq(LogDetail::getSummaryId, logSummary.getId()));
logSummary.setLogDetailList(list);
logSummaryList.add(logSummary);
});
page.setRecords(logSummaryList);
return PageResultFactory.createPageResult(page);
}
//根据条件查询出入库记录
@Override
public PageResult<LogSummary> ShowInOutRecordsByItems(LogSummaryReq req) {
Page<LogSummary> page = PageFactory.getDefaultPage(req.getPageNo(), req.getPageSize());
List<LogSummary> logSummaryList=new ArrayList<>();
IPage<LogSummary> ipage;
if (req.getLocationType()==0){
ipage = logSummaryMapper.ShowInOutRecordsByWarehouse(page, req);
}else {
ipage=logSummaryMapper.ShowInOutRecordsByCabinet(page,req);
}
ipage.getRecords().forEach(logSummary -> {
List<LogDetail> list = logDetailService.list(new LambdaQueryWrapper<LogDetail>()
.eq(LogDetail::getSummaryId, logSummary.getId()));
logSummary.setLogDetailList(list);
logSummaryList.add(logSummary);
});
page.setRecords(logSummaryList);
return PageResultFactory.createPageResult(page);
}
//获取装备的出入库信息(根据装备id获取该装备的出入库记录)
@Override
public PageResult<LogDetail> getInOutRecords(InventoryReq req) {
//通过装备id获取出入库记录(判断id是否存在)
InventoryExist(req.getId());
List<LogDetail> list = logDetailService.list(new LambdaQueryWrapper<LogDetail>()
.eq(LogDetail::getInventoryId, req.getId()));
List<InOutRecordsDto> inOutRecordsDtoList=new ArrayList<>();
for (LogDetail logDetail: list) {
//获取
LogSummary logSummary = logSummaryService.getById(logDetail.getSummaryId());
InOutRecordsDto inOutRecordsDto = new InOutRecordsDto();
BeanPlusUtil.copyProperties(logSummary,inOutRecordsDto);
inOutRecordsDtoList.add(inOutRecordsDto);
}
return inOutRecordsDtoList;
LambdaQueryWrapper<LogDetail> eq = new LambdaQueryWrapper<LogDetail>().eq(LogDetail::getInventoryId,req.getId());
Page<LogDetail> page = logDetailService.page(PageFactory.getDefaultPage(req.getPageNo(), req.getPageSize()), eq);
return PageResultFactory.createPageResult(page);
}
//查询装备数量报表
......@@ -622,4 +659,28 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
return wrapper;
}
@Override
public boolean test(RabbitMqOrderReq req) {
String exchangeName="hahaha";
//需要判断是入库单还是出库单,入库单传收物单位id,出库单传发物单位id
if(req.getOrderMainReq().getOrderType().equals("in")){
org.springframework.amqp.core.Queue queue=new org.springframework.amqp.core.Queue( "11111",true,false,false);
Exchange exchange = new DirectExchange(exchangeName, true, false);
rabbitAdmin.declareQueue(queue);
rabbitAdmin.declareExchange(exchange);
rabbitAdmin.declareBinding(BindingBuilder.bind(queue).to(exchange).with(req.getOrderMainReq().getEndOrgId().toString()).noargs());
rabbitTemplate.convertAndSend(exchangeName, req.getOrderMainReq().getEndOrgId().toString(), req);
}else {
org.springframework.amqp.core.Queue queue = new Queue("11111", true, false, false);
Exchange exchange = new DirectExchange(exchangeName, true, false);
rabbitAdmin.declareQueue(queue);
rabbitAdmin.declareExchange(exchange);
rabbitAdmin.declareBinding(BindingBuilder.bind(queue).to(exchange).with(req.getOrderMainReq().getStartOrgId().toString()).noargs());
rabbitTemplate.convertAndSend(exchangeName, req.getOrderMainReq().getStartOrgId().toString(), req);
}
return true;
}
}
\ No newline at end of file
......@@ -5,7 +5,10 @@ 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.InventorySumDto;
import com.junmp.jyzb.api.bean.dto.WarehouseDto;
import com.junmp.jyzb.api.bean.query.InventoryReq;
import com.junmp.jyzb.api.bean.query.InventorySumReq;
import com.junmp.jyzb.api.bean.req.CabinetInOutRecordsReq;
import com.junmp.jyzb.api.bean.req.RabbitMqOrderReq;
import com.junmp.jyzb.entity.*;
import com.junmp.jyzb.service.*;
......@@ -13,12 +16,18 @@ import com.junmp.v2.common.util.BeanPlusUtil;
import com.junmp.v2.db.api.factory.PageFactory;
import com.junmp.v2.db.api.factory.PageResultFactory;
import com.junmp.v2.db.api.page.PageResult;
import com.junmp.v2.dict.entity.SysDictItem;
import com.junmp.v2.dict.service.SysDictItemService;
import liquibase.pro.packaged.L;
import org.springframework.stereotype.Service;
import com.junmp.jyzb.mapper.InventorySummaryMapper;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.RequestBody;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import java.util.stream.Collectors;
@Service
......@@ -39,6 +48,25 @@ public class InventorySummaryServiceImpl extends ServiceImpl<InventorySummaryMa
@Resource
private EquipmentSizeService equipmentSizeService;
@Resource
private OrderDetailService orderDetailService;
@Resource
private WarehouseService warehouseService;
@Resource
private LogSummaryService logSummaryService;
@Resource
private LogDetailService logDetailService;
@Resource
private CabinetBoxService cabinetBoxService;
@Resource
private SysDictItemService sysDictItemService;
//根据条件查询库存汇总信息
@Override
public PageResult<InventorySummary> getEquipmentInfo(InventorySumReq req) {
......@@ -47,6 +75,14 @@ public class InventorySummaryServiceImpl extends ServiceImpl<InventorySummaryMa
if (ObjectUtil.isNotNull(req.getOrgId())){
pubOrgService.PubOrgExist(req.getOrgId());
}
//(如果传其他不是数据库字段参数或者排序规则不是deac或者asc可能会出现错误)
if (ObjectUtil.isNotNull(req.getColumn()) && !req.getColumn().trim().isEmpty() &&
(req.getOrder().equalsIgnoreCase("asc")|| req.getOrder().equalsIgnoreCase("desc")) &&
ObjectUtil.isNotNull(req.getOrder()) && !req.getOrder().trim().isEmpty()) {
//修改字段,和数据库字段进行统一
req.setColumn(req.getColumn().replaceAll("[A-Z]", "_$0").toLowerCase());
req.setOrder(req.getOrder().toLowerCase());
}
LambdaQueryWrapper<InventorySummary> wp = createWrapper(req);//取出仓库中总数并计算
long size = list(wp).size();
Page<InventorySummary> sumList= this.page(PageFactory.getDefaultPage(req.getPageNo(),req.getPageSize()),wp);
......@@ -57,6 +93,9 @@ public class InventorySummaryServiceImpl extends ServiceImpl<InventorySummaryMa
.eq(Inventory::getOrgId, data.getOrgId())
.eq(Inventory::getSizeId, data.getSizeId())
.eq(Inventory::getTypeId, data.getTypeId())).get(0);
String instructions = equipmentSizeService.getOne(new LambdaQueryWrapper<EquipmentSize>()
.eq(EquipmentSize::getId, data.getSizeId())).getInstructions();
data.setInstructions(instructions);
data.setWarrantyPeriod(inventory.getWarrantyPeriod());
data.setMaintenancePeriod(inventory.getMaintenancePeriod());
String photo = equipmentSizeService.getOne(new LambdaQueryWrapper<EquipmentSize>().eq(EquipmentSize::getId,inventory.getSizeId())).getPhoto();
......@@ -81,16 +120,241 @@ public class InventorySummaryServiceImpl extends ServiceImpl<InventorySummaryMa
//处理本地主机返回单据结果
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean processInventoryRecords(RabbitMqOrderReq req) {
//将主单据信息复制进行更新
OrderMain orderMain = new OrderMain();
BeanPlusUtil.copyProperties(req.getOrderMainReq(),orderMain);
orderMainService.updateById(orderMain);
//将子单据信息复制进行更新
OrderDetail orderDetail = new OrderDetail();
BeanPlusUtil.copyProperties(req.getOrderDetailReq(),orderDetail);
orderDetailService.updateById(orderDetail);
return null;
////对装备表进行更新或者添加
//新增列表
List<Inventory> addList = new ArrayList<>();
//更新列表
List<Inventory> updateList = new ArrayList<>();
//出库out,入库in
String orderType=orderMain.getOrderType();
//组织机构
Long orgId;
if (orderType.equals("in")){
orgId=orderMain.getEndOrgId();
}else {
orgId=orderMain.getStartOrgId();
}
//将具体Epc进行处理(判断装备是否具有id,如果没有id表示新增一条数据在数据库中--采购)
req.getInventoryReqList().forEach(inventoryReq -> {
Inventory inventory = new Inventory();
BeanPlusUtil.copyProperties(inventoryReq,inventory);
inventory.setOrgId(orgId);
//新增装备
if (ObjectUtil.isNull(inventory.getId())){
//修改状态
inventory.setId(UUID.randomUUID().toString());
inventory.setLocationState(orderMain.getOrderType());
inventory.setBussinessState("normal");
inventory.setState("normal");
addList.add(inventory);
}else {
//修改状态
inventory.setLocationState(orderMain.getOrderType());
//修改业务状态
if (orderType.equals("in")){
inventory.setBussinessState("normal");
inventory.setState("normal");
}else if (orderType.equals("out") && orderMain.getBussinessType().equals("repair")){
inventory.setBussinessState(orderMain.getBussinessType());
inventory.setState("fix");
}else if (orderType.equals("out") && orderMain.getBussinessType().equals("remove")){
inventory.setBussinessState(orderMain.getBussinessType());
inventory.setState("destory");
}else {
inventory.setBussinessState(orderMain.getBussinessType());
inventory.setState("normal");
}
updateList.add(inventory);
}
});
boolean b=false;
if (ObjectUtil.isNotNull(addList) && addList.size()>0){
b = inventoryService.saveBatch(addList);
}
if (ObjectUtil.isNotNull(updateList) && updateList.size()>0){
b = inventoryService.updateBatchById(updateList);
}
//对装备进行记录,存入log表形成出入库记录
Boolean c = insertLog(req,orderMain,addList,updateList);
Boolean d = updateSummaryInsByOrder(orgId);
return (b && c && d );
}
//对装备进行记录,存入log表形成出入库记录
@Transactional(rollbackFor = Exception.class)
public Boolean insertLog(RabbitMqOrderReq req,OrderMain orderMain,List<Inventory> addList,List<Inventory> updateList ){
//插入log_summary
LogSummary logSummary = new LogSummary();
logSummary.setDevice(req.getDevice());
logSummary.setDeviceType(req.getDeviceType());
logSummary.setLocationType(0);
logSummary.setUserName(req.getUserName());
logSummary.setUseTime(req.getUseTime());
if (orderMain.getOrderType().equals("in")){
logSummary.setOutInState("in");
logSummary.setOrgId(orderMain.getEndOrgId());
logSummary.setOrgName(orderMain.getEndOrgName());
}else {
logSummary.setOutInState("out");
logSummary.setOrgId(orderMain.getStartOrgId());
logSummary.setOrgName(orderMain.getStartOrgName());
}
logSummary.setOrderMainId(orderMain.getId());
logSummary.setOrderCode(orderMain.getOrderCode());
logSummary.setBussinessType(orderMain.getBussinessType());
boolean a = logSummaryService.save(logSummary);
//存入log_detail表中
List<LogDetail> logDetailList=new ArrayList<>();
//判断是哪个列表不为空,进行出入库记录
if (addList.size()!=0 && ObjectUtil.isNotNull(addList)){
for (Inventory inventory:addList) {
LogDetail logDetail = new LogDetail();
BeanPlusUtil.copyProperties(inventory,logDetail);
logDetail.setInventoryId(inventory.getId());
logDetail.setBussinessType(orderMain.getBussinessType());
logDetail.setOutInState(orderMain.getOrderType());
logDetail.setOrderCode(orderMain.getOrderCode());
logDetail.setSummaryId(logSummary.getId());
logDetail.setOrderMainId(orderMain.getId());
logDetail.setErrorState(0);
logDetailList.add(logDetail);
}
}
if (updateList.size()!=0 && ObjectUtil.isNotNull(updateList)){
for (Inventory inventory:updateList) {
LogDetail logDetail = new LogDetail();
BeanPlusUtil.copyProperties(inventory,logDetail);
logDetail.setOutInState(orderMain.getOrderType());
logDetail.setSummaryId(logSummary.getId());
logDetail.setOrderMainId(orderMain.getId());
logDetailList.add(logDetail);
}
}
boolean b = logDetailService.saveBatch(logDetailList);
return (a && b);
}
//对summary表中数据进行重新计算装备信息汇总
public Boolean updateSummaryInsByOrder(Long orgId){
//查询字典表中的临近报废天数
SysDictItem sysDictItem = sysDictItemService.getOne(new LambdaQueryWrapper<SysDictItem>()
.eq(SysDictItem::getItemText, "brokenNumber"));
//如果配置找不到,那就默认设置为15天为临近报废(如果装备的质保期小于15天了,就是为临近报废)
Integer brokenNumberDays;
if (ObjectUtil.isNotNull(sysDictItem)){
brokenNumberDays=15;
}else {
brokenNumberDays=Integer.parseInt(sysDictItem.getItemValue());
}
//查询出组织机构下的所有仓库信息,并且将表中的仓库信息数据进行删除
List<WarehouseDto> allWarehouse = warehouseService.getAllWarehouse(orgId);
boolean a = inventorySummaryMapper.deleteByWarehouse(allWarehouse);
//根据仓库id重新计算汇总信息
boolean sumByWarehouse = inventorySummaryMapper.getSumByWarehouse(allWarehouse, brokenNumberDays);
return (a && sumByWarehouse);
}
//单警柜返回数据
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean cabinetInOutRecords(CabinetInOutRecordsReq req) {
//批量修改装备信息
List<InventoryReq> inventoryList = req.getInventoryList();
boolean a=true;
List<Inventory> inventoryLogsList=new ArrayList<>();
for (InventoryReq inventoryReq:inventoryList) {
Inventory inventory = new Inventory();
BeanPlusUtil.copyProperties(inventoryReq,inventory);
boolean result = inventoryService.saveOrUpdate(inventory);
inventoryLogsList.add(inventory);
if (!result){
a=false;
break;
}
}
//修改summary表中数据
boolean b = updateSummaryInsByCabinet(req.getLocationId());
//添加日志记录、
Boolean c = insertCabinetLog(req,inventoryLogsList);
return (a && b && c);
}
public boolean updateSummaryInsByCabinet(String locationId){
//查询字典表中的临近报废天数
SysDictItem sysDictItem = sysDictItemService.getOne(new LambdaQueryWrapper<SysDictItem>()
.eq(SysDictItem::getItemText, "brokenNumber"));
//如果配置找不到,那就默认设置为15天为临近报废(如果装备的质保期小于15天了,就是为临近报废)
Integer brokenNumberDays;
if (ObjectUtil.isNotNull(sysDictItem)){
brokenNumberDays=15;
}else {
brokenNumberDays=Integer.parseInt(sysDictItem.getItemValue());
}
//根据箱门id查询出单警柜信息
CabinetBox cabinetBox = cabinetBoxService.getById(locationId);
//删除inventorysummary表中该单警柜数据
boolean a = inventorySummaryMapper.deleteByCabinet(cabinetBox.getCabinetId());
//重新计算该单警柜下面的装备信息
boolean b = inventorySummaryMapper.getSumByCabinet(cabinetBox.getCabinetId(),brokenNumberDays);
return (a && b);
}
//添加单警柜出入库记录日志
public Boolean insertCabinetLog(CabinetInOutRecordsReq req,List<Inventory> inventoryLogsList){
LogSummary logSummary = new LogSummary();
BeanPlusUtil.copyProperties(req,logSummary);
logSummary.setLocationType(1);
boolean a = logSummaryService.save(logSummary);
List<LogDetail> logDetailList=new ArrayList<>();
for (Inventory inventory:inventoryLogsList) {
LogDetail logDetail = new LogDetail();
BeanPlusUtil.copyProperties(inventory,logDetail);
logDetail.setInventoryId(inventory.getId());
logDetail.setCabinetboxId(req.getLocationId());
logDetail.setOutInState(inventory.getLocationState());
logDetail.setSummaryId(logSummary.getId());
logDetailList.add(logDetail);
}
boolean b = logDetailService.saveBatch(logDetailList);
return (a && b);
}
//根据组织机构id/单警柜id/仓库id查询出库存汇总数量以及金额
@Override
public List<InventorySummary> getTotalNumberAndPrice(InventorySumReq req) {
List<InventorySummary> list=new ArrayList<>();
InventorySummary totalNumberAndPrice = inventorySummaryMapper.getTotalNumberAndPrice(req);
if (ObjectUtil.isNotNull(totalNumberAndPrice)){
list.add(totalNumberAndPrice);
}
return list;
}
//计算装备总数(装备数量数据统计)
@Override
public List<InventorySummary> EquipmentStatistics(InventorySumReq req) {
List<InventorySummary> inventorySummaryList=new ArrayList<>();
InventorySummary inventorySummary = inventorySummaryMapper.EquipmentStatistics(req);
if (ObjectUtil.isNotNull(inventorySummary)){
inventorySummaryList.add(inventorySummary);
}
return inventorySummaryList;
}
private LambdaQueryWrapper<InventorySummary> createWrapper(InventorySumReq req) {
......@@ -98,12 +362,95 @@ public class InventorySummaryServiceImpl extends ServiceImpl<InventorySummaryMa
if (ObjectUtil.isEmpty(req)) {
return wrapper;
}
/**
* 判断是否有高级搜索,如果有则进行添加查询条件
*/
if (ObjectUtil.isNotNull(req.getNumber())){
//将值进行切割,> = <并将其判断为哪个符号,如果为>则使用ge,=为eq,<为le
String symbol = req.getNumber().substring(0, 1);
String value = req.getNumber().substring(1);
if (symbol.equals(">")){
wrapper.gt(InventorySummary::getNumber,value);
} else if (symbol.equals("=")) {
wrapper.eq(InventorySummary::getNumber,value);
}else if (symbol.equals("<")){
wrapper.lt(InventorySummary::getNumber,value);
}
}
if (ObjectUtil.isNotNull(req.getStockNumber())){
String symbol = req.getStockNumber().substring(0, 1);
String value = req.getStockNumber().substring(1);
if (symbol.equals(">")){
wrapper.gt(InventorySummary::getStockNumber,value);
} else if (symbol.equals("=")) {
wrapper.eq(InventorySummary::getStockNumber,value);
}else if (symbol.equals("<")){
wrapper.lt(InventorySummary::getStockNumber,value);
}
}
if (ObjectUtil.isNotNull(req.getOutboundNumber())){
String symbol = req.getOutboundNumber().substring(0, 1);
String value = req.getOutboundNumber().substring(1);
if (symbol.equals(">")){
wrapper.gt(InventorySummary::getOutboundNumber,value);
} else if (symbol.equals("=")) {
wrapper.eq(InventorySummary::getOutboundNumber,value);
}else if (symbol.equals("<")){
wrapper.lt(InventorySummary::getOutboundNumber,value);
}
}
if (ObjectUtil.isNotNull(req.getExpireNumber())){
String symbol = req.getExpireNumber().substring(0, 1);
String value = req.getExpireNumber().substring(1);
if (symbol.equals(">")){
wrapper.gt(InventorySummary::getExpireNumber,value);
} else if (symbol.equals("=")) {
wrapper.eq(InventorySummary::getExpireNumber,value);
}else if (symbol.equals("<")){
wrapper.lt(InventorySummary::getExpireNumber,value);
}
}
if (ObjectUtil.isNotNull(req.getBrokenNumber())){
String symbol = req.getBrokenNumber().substring(0, 1);
String value = req.getBrokenNumber().substring(1);
if (symbol.equals(">")){
wrapper.gt(InventorySummary::getBrokenNumber,value);
} else if (symbol.equals("=")) {
wrapper.eq(InventorySummary::getBrokenNumber,value);
}else if (symbol.equals("<")){
wrapper.lt(InventorySummary::getBrokenNumber,value);
}
}
if (ObjectUtil.isNotNull(req.getUnitPrice())){
String symbol = req.getUnitPrice().substring(0, 1);
String value = req.getUnitPrice().substring(1);
if (symbol.equals(">")){
wrapper.gt(InventorySummary::getUnitPrice,value);
} else if (symbol.equals("=")) {
wrapper.eq(InventorySummary::getUnitPrice,value);
}else if (symbol.equals("<")){
wrapper.lt(InventorySummary::getUnitPrice,value);
}
}
if (ObjectUtil.isNotNull(req.getPrice())){
String symbol = req.getPrice().substring(0, 1);
String value = req.getPrice().substring(1);
if (symbol.equals(">")){
wrapper.gt(InventorySummary::getPrice,value);
} else if (symbol.equals("=")) {
wrapper.eq(InventorySummary::getPrice,value);
}else if (symbol.equals("<")){
wrapper.lt(InventorySummary::getPrice,value);
}
}
//根据组织机构号查询
wrapper.eq(ObjectUtil.isNotEmpty(req.getOrgId()), InventorySummary::getOrgId, req.getOrgId());
//根据组织机构名模糊查询
wrapper.like(ObjectUtil.isNotEmpty(req.getOrgName()), InventorySummary::getOrgName, req.getOrgName());
//位置id(单警柜/仓库)
wrapper.eq(ObjectUtil.isNotEmpty(req.getLocationId()), InventorySummary::getLocationId, req.getLocationId());
//位置类型
wrapper.eq(ObjectUtil.isNotEmpty(req.getLocationType()),InventorySummary::getLocationType,req.getLocationType());
//位置信息
wrapper.like(ObjectUtil.isNotEmpty(req.getLocationName()), InventorySummary::getLocationName, req.getLocationName());
//装备类别名称
......@@ -114,8 +461,7 @@ public class InventorySummaryServiceImpl extends ServiceImpl<InventorySummaryMa
wrapper.like(ObjectUtil.isNotEmpty(req.getSizeName()), InventorySummary::getSizeName, req.getSizeName());
//号型
wrapper.eq(ObjectUtil.isNotEmpty(req.getSizeId()), InventorySummary::getSizeId, req.getSizeId());
wrapper.orderByDesc(InventorySummary::getTypeId);
wrapper.orderByDesc(InventorySummary::getSizeId);
wrapper.last("order by " + req.getColumn() + " " + req.getOrder());
return wrapper;
}
......
......@@ -3,14 +3,20 @@ package com.junmp.jyzb.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.junmp.jyzb.entity.LogDetail;
import com.junmp.jyzb.service.LogDetailService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import com.junmp.jyzb.mapper.LogDetailMapper;
import org.springframework.stereotype.Service;
/**
* @author lxh专属坐骑
* @description 针对表【base_log_detail】的数据库操作Service实现
* @createDate 2023-10-13 08:29:42
*/
@Service
public class LogDetailServiceImpl extends ServiceImpl<LogDetailMapper, LogDetail> implements LogDetailService {
@Resource
private LogDetailMapper logDetailMapper;
public class LogDetailServiceImpl extends ServiceImpl<LogDetailMapper, LogDetail>
implements LogDetailService{
}
package com.junmp.jyzb.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.junmp.jyzb.api.bean.dto.LogDetailDto;
import com.junmp.jyzb.api.bean.dto.LogSummaryDto;
import com.junmp.jyzb.entity.LogDetail;
import com.junmp.jyzb.entity.LogSummary;
import com.junmp.jyzb.mapper.LogSummaryMapper;
import com.junmp.jyzb.service.LogDetailService;
import com.junmp.jyzb.service.LogSummaryService;
import com.junmp.v2.common.util.BeanPlusUtil;
import com.junmp.jyzb.mapper.LogSummaryMapper;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
/**
* @author lxh专属坐骑
* @description 针对表【base_log_summary】的数据库操作Service实现
* @createDate 2023-10-13 08:29:36
*/
@Service
public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSummary> implements LogSummaryService {
@Resource
private LogDetailService logDetailService;
@Override
public List<LogSummaryDto> getLogs() {
List<LogSummary> list = list(new LambdaQueryWrapper<LogSummary>().orderByDesc(LogSummary::getCreateTime));
List<LogSummaryDto> logSummaryDtoList=new ArrayList<>();
List<LogDetailDto> logDetailDtoList=new ArrayList<>();
for (LogSummary logSummary:list) {
LogSummaryDto logSummaryDto = new LogSummaryDto();
BeanPlusUtil.copyProperties(logSummary,logSummaryDto);
List<LogDetail> list1 = logDetailService.list(new LambdaQueryWrapper<LogDetail>()
.eq(LogDetail::getSummaryId, logSummary.getId()));
for (LogDetail logDetail:list1) {
LogDetailDto logDetailDto = new LogDetailDto();
BeanPlusUtil.copyProperties(logDetail,logDetailDto);
logDetailDtoList.add(logDetailDto);
}
logSummaryDto.setEquipmentList(logDetailDtoList);
logSummaryDtoList.add(logSummaryDto);
}
return logSummaryDtoList;
}
public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSummary>
implements LogSummaryService{
}
package com.junmp.jyzb.service.impl;
import com.junmp.jyzb.api.bean.query.InventorySumReq;
import com.junmp.jyzb.service.LogSummaryService;
import com.junmp.jyzb.service.MQProductService;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.PostMapping;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
......
......@@ -35,7 +35,8 @@ public class ManufacturerServiceImpl extends ServiceImpl<ManufacturerMapper, Man
@Override
public String addManufacturer(ManufacturerReq req) {
Manufacturer one = getOne(new LambdaQueryWrapper<Manufacturer>().eq(Manufacturer::getName, req.getName()));
//判断是否已经存在生产厂商短码,如果存在则不再允许添加成功
Manufacturer one = getOne(new LambdaQueryWrapper<Manufacturer>().eq(Manufacturer::getCode, req.getName()));
if (ObjectUtil.isNotNull(one)){
throw new ServiceException(ManufacturerExceptionEnum.MANUTACTURER_IS_EXIST);
}
......
......@@ -43,6 +43,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import javax.management.remote.rmi._RMIConnection_Stub;
import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
import java.time.LocalDateTime;
......@@ -87,22 +88,103 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
//新增任务单
// @Transactional(rollbackFor = Exception.class)
// @Override
// public List<String> AddOrder(UpdateOrderReq req) {
// //先判断该单据是否存在,如果存在,进行更新操作即可
//
// List<String> list=new ArrayList<>();
// OrderMain order = new OrderMain();
// BeanPlusUtil.copyProperties(req, order);
// //设置单据单号
// if (ObjectUtil.isNull(order.getOrderCode())){
// OrderNum orderNum = setOrderCode(req);
// String codeValue=String.format("%04d",orderNum.getNum());
// order.setOrderCode(orderNum.getBussinessType()+orderNum.getYear()+
// String.format("%02d",LocalDateTime.now().getMonth().getValue())+String.format("%02d",LocalDateTime.now().getDayOfMonth())+codeValue);
// }
// //设置总价格和应出入库数量
// //设置id
// String id=UUID.randomUUID().toString();
// order.setId(id);
// Integer sumNum=0;
// BigDecimal priceTotal=new BigDecimal(0);
// List<OrderDetail> detailList = new ArrayList<>();
// //通过遍历批量保存详细信息
// for (UpdateOrderDetailReq listReq:req.getDetailList()) {
// OrderDetail detail=new OrderDetail();
// BeanPlusUtil.copyProperties(listReq, detail);
// detail.setOrderId(order.getId());
// //设置单据类型
// detail.setType(order.getOrderType());
// //将数量和价格进行累加
// sumNum += detail.getPlanNum();
// priceTotal = priceTotal.add(BigDecimal.valueOf(detail.getPlanNum()).multiply(detail.getPrice())) ;
// detail.setCreateTime(DateTimeUtil.getCurrentDateTime());
// detailList.add(detail);
// }
// if (ObjectUtil.isNotNull(req.getId())){
// //删除子单据
// orderDetailService.remove(new LambdaQueryWrapper<OrderDetail>()
// .eq(ObjectUtil.isNotNull(req.getId()),OrderDetail::getOrderId,req.getId()));
// }
// orderDetailService.saveBatch(detailList);
// //设置总价格和总数量
// order.setPrice(priceTotal);
// order.setInventoryQuantity(sumNum);
// order.setCreateTime(DateTimeUtil.getCurrentDateTime());
// //执行工作流
//
// if (req.getExamineState().equals("working"))
// {
// StartProcessInstanceDTO startProcessInstanceDTO=new StartProcessInstanceDTO();
// startProcessInstanceDTO.setProcessDefinitionId(req.getProcessDefinitionId());
// startProcessInstanceDTO.setOrderId(id);
// startProcessInstanceDTO.setOrderType("workOrder");
// startProcessInstanceDTO.setUserId(req.getUserId());
// String ProcessInstanceId= FlowInstanceService.startProcessInstanceById(startProcessInstanceDTO);
// order.setProcessId(ProcessInstanceId);
// //保存
// this.save(order);
// }
// if (req.getExamineState().equals("none")){//如果是草稿
// if(ObjectUtil.isNotNull(req.getId())){
// //已经是一个草稿,在点击提交的时候只需要更新即可,因为数据库中已经存在该单据
// updateById(order);
// }else {
// //保存
// this.save(order);
// }
// }
// list.add(order.getId());
// for (OrderDetail orderDetail:detailList) {
// list.add(Long.toString(orderDetail.getId()));
// }
// return list;
// }
@Transactional(rollbackFor = Exception.class)
@Override
public List<String> AddOrder(UpdateOrderReq req) {
//存放主单据和子单据,便于返回
List<String> list=new ArrayList<>();
OrderMain order = new OrderMain();
BeanPlusUtil.copyProperties(req, order);
//设置单据单号
OrderNum orderNum = setOrderCode(req);
String codeValue=String.format("%04d",orderNum.getNum());
order.setOrderCode(orderNum.getBussinessType()+"-"+orderNum.getYear()+"-"+
LocalDateTime.now().getMonth().getValue()+"-"+LocalDateTime.now().getDayOfMonth()+"-"+codeValue);
//先判断该单据id是否存在,如果存在,进行更新操作即可
if (ObjectUtil.isNotNull(req.getId())){
//删除子单据
orderDetailService.remove(new LambdaQueryWrapper<OrderDetail>()
.eq(ObjectUtil.isNotNull(req.getId()),OrderDetail::getOrderId,req.getId()));
}else {
//设置id
String id=UUID.randomUUID().toString();
order.setId(id);
//设置单据单号
OrderNum orderNum = setOrderCode(req);
String codeValue=String.format("%04d",orderNum.getNum());
order.setOrderCode(orderNum.getBussinessType()+orderNum.getYear()+
String.format("%02d",LocalDateTime.now().getMonth().getValue())+
String.format("%02d",LocalDateTime.now().getDayOfMonth())+codeValue);
}
//设置总价格和应出入库数量
//设置id
String id=UUID.randomUUID().toString();
order.setId(id);
Integer sumNum=0;
BigDecimal priceTotal=new BigDecimal(0);
List<OrderDetail> detailList = new ArrayList<>();
......@@ -119,26 +201,31 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
detail.setCreateTime(DateTimeUtil.getCurrentDateTime());
detailList.add(detail);
}
orderDetailService.saveBatch(detailList);
//设置总价格和总数量
order.setPrice(priceTotal);
order.setInventoryQuantity(sumNum);
order.setCreateTime(DateTimeUtil.getCurrentDateTime());
//执行工作流
if (req.getExamineState().equals("working"))
{
StartProcessInstanceDTO startProcessInstanceDTO=new StartProcessInstanceDTO();
startProcessInstanceDTO.setProcessDefinitionId(req.getProcessDefinitionId());
startProcessInstanceDTO.setOrderId(id);
startProcessInstanceDTO.setOrderId(order.getId());
startProcessInstanceDTO.setOrderType("workOrder");
startProcessInstanceDTO.setUserId(req.getUserId());
String ProcessInstanceId= FlowInstanceService.startProcessInstanceById(startProcessInstanceDTO);
order.setProcessId(ProcessInstanceId);
}
orderDetailService.saveBatch(detailList);
//设置总价格和总数量
order.setPrice(priceTotal);
order.setInventoryQuantity(sumNum);
order.setCreateTime(DateTimeUtil.getCurrentDateTime());
//保存
this.save(order);
}
if (ObjectUtil.isNotNull(req.getId())){
updateById(order);
}else {
//保存
this.save(order);
}
//list返回数据
List<String> list=new ArrayList<>();
list.add(order.getId());
for (OrderDetail orderDetail:detailList) {
list.add(Long.toString(orderDetail.getId()));
......@@ -197,7 +284,13 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
public String AddFinishOrder(UpdateOrderReq req) {
//添加到数据库中
String orderId = AddOrder(req).get(0);
List<String> strings = AddOrder(req);
req.setId(strings.get(0));
List<UpdateOrderDetailReq> detailList = req.getDetailList();
//将子单据id传递
for (int i=1;i<strings.size();i++){
detailList.get(i-1).setId(Long.parseLong(strings.get(i)));
}
//将完成的任务单直接推送到消息队列rabbitmq中(需要判断是入库单还是出库单,入库单传发物单位id,出库单传收物单位id)
//方法1:一个交换机,一个队列。通过中间对象,object存储对象,type表标识
// if(req.getOrderType().equals("in")){
......@@ -223,7 +316,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
rabbitAdmin.declareBinding(BindingBuilder.bind(queue).to(exchange).with(req.getStartOrgId().toString()).noargs());
rabbitTemplate.convertAndSend(exchangeName, req.getStartOrgId().toString(), req);
}
return orderId;
return strings.get(0);
}
......@@ -236,71 +329,28 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
{
throw new ServiceException(OrderExceptionEnum.ORDER_CAN_NOT_UPDATE);
}
List<OrderDetail> list= orderDetailService.QueryList(req.getId());
//idSet中存放的是存在数据库中的任务单中的orderDetail中的id(原始的工作单中的数据id)
Set<Long> idSet =new HashSet<>();
for (OrderDetail orderDetail:list){
idSet.add(orderDetail.getId());
}
//将该任务单的所有id转换为String,并添加到updateList中,用来判断删除或者修改新增的是否存在
//判断删除列表是否为空,如果不为空则进行批量删除
if (ObjectUtil.isNotNull(req.getDeleteList())&& ObjectUtil.isNotEmpty(req.getDeleteList())) {
//判断传递的list Id是否存在,如果不存在则抛出异常
for (Long s:req.getDeleteList()){
if (idSet.contains(s)){
//将要删除的装备价格和数据进行查询出来,并别对任务单的总数量和总价格进行更改
OrderDetail one = orderDetailService.getOne(new LambdaQueryWrapper<OrderDetail>()
.eq(OrderDetail::getOrderId, s));
order.setPrice(order.getPrice().subtract(one.getPrice().multiply(BigDecimal.valueOf(one.getPlanNum()))));
order.setInventoryQuantity(order.getInventoryQuantity() - one.getPlanNum());
}else {
throw new ServiceException(CabinetExceptionEnum.PARAMETER_ERROR);
}
}
orderDetailService.removeBatchByIds(req.getDeleteList());
}
//方法1(分为两步进行操作)--------------------------------------------------
//对detaillist进行处理
List<OrderDetail> addList = new ArrayList<>();//新增的
List<OrderDetail> updateList = new ArrayList<>();//更新
for (UpdateOrderDetailReq updateOrderDetailReq :req.getDetailList()) {
//判断是否存在,存在则进行修改
if (idSet.contains(updateOrderDetailReq.getId())){
OrderDetail one = orderDetailService.getOne(new LambdaQueryWrapper<OrderDetail>()
.eq(OrderDetail::getId, updateOrderDetailReq.getId()));
BeanPlusUtil.copyProperties(updateOrderDetailReq,one);
one.setType(req.getOrderType());
//判断数量和价格是否有变动,如果有变动,则将order的总价和总数量进行更新操作,否则不变
if (one.getPlanNum().equals(updateOrderDetailReq.getPlanNum()) && one.getPrice().compareTo(updateOrderDetailReq.getPrice())!=0){
order.setPrice(order.getPrice().subtract(one.getPrice().multiply(BigDecimal.valueOf(one.getPlanNum())))
.add(updateOrderDetailReq.getPrice().multiply(BigDecimal.valueOf(updateOrderDetailReq.getPlanNum()))));
order.setInventoryQuantity(order.getInventoryQuantity() - one.getPlanNum()+ updateOrderDetailReq.getPlanNum());
}
one.setUpdateTime(DateTimeUtil.getCurrentDateTime());
updateList.add(one);
}else {
//否则判断id是否为空或者错误,如果为空则添加,不为空则抛出异常
if (ObjectUtil.isNull(updateOrderDetailReq.getId()) || ObjectUtil.isEmpty(updateOrderDetailReq.getId())){
OrderDetail detail=new OrderDetail();
BeanPlusUtil.copyProperties(updateOrderDetailReq, detail);
detail.setOrderId(req.getId());
detail.setType(req.getOrderType());
//将数量和价格进行相加处理
order.setPrice(order.getPrice().add(updateOrderDetailReq.getPrice().multiply(BigDecimal.valueOf(updateOrderDetailReq.getPlanNum()))));
order.setInventoryQuantity(order.getInventoryQuantity() + updateOrderDetailReq.getPlanNum());
detail.setUpdateTime(DateTimeUtil.getCurrentDateTime());
addList.add(detail);
}else {
throw new ServiceException(CabinetExceptionEnum.PARAMETER_ERROR);
}
}
//(直接删除并重新插入数据)----------------------------------------------
orderDetailService.remove(new LambdaQueryWrapper<OrderDetail>().eq(OrderDetail::getOrderId, req.getId()));
Integer sumNum=0;
BigDecimal priceTotal=new BigDecimal(0);
List<OrderDetail> detailList = new ArrayList<>();
for (UpdateOrderDetailReq listReq:req.getDetailList()) {
OrderDetail detail=new OrderDetail();
BeanPlusUtil.copyProperties(listReq, detail);
detail.setOrderId(order.getId());
//设置单据类型
detail.setType(order.getOrderType());
//将数量和价格进行累加
sumNum += detail.getPlanNum();
priceTotal = priceTotal.add(BigDecimal.valueOf(detail.getPlanNum()).multiply(detail.getPrice())) ;
detail.setCreateTime(DateTimeUtil.getCurrentDateTime());
detailList.add(detail);
}
orderDetailService.updateBatchById(updateList);
orderDetailService.saveBatch(addList);
BeanPlusUtil.copyProperties(req,order);
// 方法2(直接删除并重新插入数据)未写----------------------------------------------
orderDetailService.saveBatch(detailList);
//设置总价格和总数量
order.setPrice(priceTotal);
order.setInventoryQuantity(sumNum);
order.setCreateTime(DateTimeUtil.getCurrentDateTime());
return this.updateById(order);
}
//更新任务单(进入工作流中之后不能进行更改)
......@@ -380,6 +430,14 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
for (OrderDetail orderDetail:list) {
OrderDetailDto orderDetailDto = new OrderDetailDto();
BeanPlusUtil.copyProperties(orderDetail,orderDetailDto);
if (orderMain.getOrderType().equals("out")){
InventorySummary one = inventorySummaryService.getOne(new LambdaQueryWrapper<InventorySummary>()
.eq(InventorySummary::getLocationId, orderDetail.getWarehouseId())
.eq(InventorySummary::getSizeId, orderDetail.getSizeId())
.eq(InventorySummary::getTypeId, orderDetail.getTypeId())
.eq(InventorySummary::getUnitPrice, orderDetail.getPrice()));
orderDetailDto.setStockNumber(one.getStockNumber());
}
orderDetailDtoList.add(orderDetailDto);
}
orderDto.setDetailList(orderDetailDtoList);
......@@ -448,8 +506,8 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
for (UpdateOrderDetailReq uploadDetailReq : reqList) {
OrderDetail orderDetail = new OrderDetail();
BeanPlusUtil.copyProperties(uploadDetailReq,orderDetail);
//获取修改后的数量并且记录(如果modifyQuantity不为空则表示该子单据进行了修改)
if (ObjectUtil.isNotNull(uploadDetailReq.getModifyQuantity())){
//获取修改后的数量并且记录(如果modifyQuantity不为空并且于实际入库数量不一致则表示该子单据进行了修改)
if (ObjectUtil.isNotNull(uploadDetailReq.getModifyQuantity()) && uploadDetailReq.getModifyQuantity() != uploadDetailReq.getActualNum()){
String log = "将"+uploadDetailReq.getTypeName()+":"+
uploadDetailReq.getSizeName()+"的物资数量从"+uploadDetailReq.getActualNum()+"修改为"+uploadDetailReq.getModifyQuantity()+";";
stringBuilder.append(log);
......@@ -491,16 +549,18 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
updateSummaryInfo(req,orderDetailReqList,orgId);
//修改仓库表中的数量汇总信息(warehouse)
updateWarehouseInfo(req,orderDetailReqList,orgId);
// updateWarehouseInfo(req,orderDetailReqList,orgId);
//更新主单据的数量和价格
//记账直接将单子结束
//修改记账状态,0未记账,1已记账
orderMain.setActualQuantity(updateQuantity);
orderMain.setPrice(priceTotal);
orderMain.setOrderState("finished");
orderMain.setManualState(1);
//修改记账状态,0未记账,1已记账
// orderMain.setManualState(1);
orderMain.setUpdateTime(DateTimeUtil.getCurrentDateTime());
//如果是领用出库,那记账结束以后将装备挂到警员名下(存储到policemanEquipment表中)
//更新主单据
return updateById(orderMain);
}
......@@ -604,7 +664,6 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
@Override
public void InOrderExport(OrderMainReq req) {
LambdaQueryWrapper<OrderMain> wrapper = createWrapper(req);
System.out.println("list(wrapper).size() = " + list(wrapper).size());
List<InOrderInfo> collect = list(wrapper).stream().map(orderMain -> {
InOrderInfo inOrderInfo = new InOrderInfo();
BeanPlusUtil.copyProperties(orderMain, inOrderInfo);
......@@ -628,8 +687,6 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
for (int i = 1; i <= collect.size() ; i++) {
collect.get(i-1).setNumId(i);
}
System.out.println("collect.size() = " + collect.size());
System.out.println("collect = " + collect);
HttpServletResponse response = HttpServletUtil.getResponse();
ExcelExportParam param = new ExcelExportParam();
param.setDataList(collect);
......
package com.junmp.jyzb.service.impl;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.junmp.jyzb.api.bean.req.DestoryUnitReq;
import com.junmp.jyzb.api.bean.req.RepairUnitReq;
import com.junmp.jyzb.api.exception.enums.DestoryUnitExceptionEnum;
import com.junmp.jyzb.api.exception.enums.RepairUnitExceptionEnum;
import com.junmp.jyzb.entity.DestoryUnit;
import com.junmp.jyzb.entity.RepairUnit;
import com.junmp.jyzb.service.RepairUnitService;
import com.junmp.jyzb.mapper.RepairUnitMapper;
import com.junmp.jyzb.utils.DateTimeUtil;
import com.junmp.v2.common.exception.base.ServiceException;
import com.junmp.v2.common.util.BeanPlusUtil;
import com.junmp.v2.db.api.factory.PageFactory;
import com.junmp.v2.db.api.factory.PageResultFactory;
import com.junmp.v2.db.api.page.PageResult;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
/**
* @author lxh专属坐骑
* @description 针对表【base_repair_unit(维修单位表)】的数据库操作Service实现
* @createDate 2023-10-16 09:35:11
*/
@Service
public class RepairUnitServiceImpl extends ServiceImpl<RepairUnitMapper, RepairUnit>
implements RepairUnitService{
@Override
public String addRepairUnit(RepairUnitReq req) {
//判断是否已经存在短码,如果存在则不再允许添加成功
RepairUnit one = getOne(new LambdaQueryWrapper<RepairUnit>().eq(RepairUnit::getCode, req.getName()));
if (ObjectUtil.isNotNull(one)){
throw new ServiceException(RepairUnitExceptionEnum.REPAIRUNIT_IS_EXIST);
}
RepairUnit repairUnit = new RepairUnit();
BeanPlusUtil.copyProperties(req,repairUnit);
repairUnit.setCreateTime(DateTimeUtil.getCurrentDateTime());
save(repairUnit);
return repairUnit.getId();
}
@Override
public boolean updateRepairUnit(RepairUnitReq req) {
RepairUnit repairUnit = new RepairUnit();
BeanPlusUtil.copyProperties(req,repairUnit);
repairUnit.setUpdateTime(DateTimeUtil.getCurrentDateTime());
return updateById(repairUnit);
}
@Override
public List<RepairUnit> showRepairUnitList(RepairUnitReq req) {
LambdaQueryWrapper<RepairUnit> wrapper = createWrapper(req);
return list(wrapper);
}
@Override
public PageResult<RepairUnit> showRepairUnitPage(RepairUnitReq req) {
LambdaQueryWrapper<RepairUnit> wrapper = createWrapper(req);
Page<RepairUnit> page = page(PageFactory.getDefaultPage(req.getPageNo(), req.getPageSize()), wrapper);
return PageResultFactory.createPageResult(page);
}
@Override
@Transactional(rollbackFor = Exception.class)
public boolean delRepairUnit(RepairUnitReq req) {
//抛出异常,销毁、报废单位未选中
if (req.getDeleteList().size()==0){
throw new ServiceException(RepairUnitExceptionEnum.REPAIRUNIT_NOT_CHOOSE);
}
//查询出全部的销毁、报废单位
Set<String> collect = list().stream().map(RepairUnit::getId).collect(Collectors.toSet());
Set<String> delList=new HashSet<>(req.getDeleteList());
if (collect.containsAll(delList)){
return removeBatchByIds(req.getDeleteList());
}else {
throw new ServiceException(RepairUnitExceptionEnum.REPAIRUNIT_NOT_EXIST);
}
}
private LambdaQueryWrapper<RepairUnit> createWrapper(RepairUnitReq req){
LambdaQueryWrapper<RepairUnit> wrapper = new LambdaQueryWrapper<>();
if (ObjectUtil.isEmpty(req)){
return wrapper;
}
wrapper.eq(ObjectUtil.isNotNull(req.getId()),RepairUnit::getId,req.getId());
wrapper.eq(ObjectUtil.isNotNull(req.getState()),RepairUnit::getState,req.getState());
wrapper.like(ObjectUtil.isNotNull(req.getName()),RepairUnit::getName,req.getName());
wrapper.like(ObjectUtil.isNotNull(req.getShortName()),RepairUnit::getShortName,req.getShortName());
wrapper.like(ObjectUtil.isNotNull(req.getContacts()),RepairUnit::getContacts,req.getContacts());
wrapper.orderByDesc(RepairUnit::getCreateTime);
return wrapper;
}
}
......@@ -55,13 +55,16 @@ public class StocktakeServiceImpl extends ServiceImpl<StocktakeMapper, Stocktake
Stocktake stocktake = new Stocktake();
BeanPlusUtil.copyProperties(req,stocktake);
//设置单号
OrderNum orderNum = setOrderCode(req.getBussinessType(),req.getOrgId());
String codeValue=String.format("%04d",orderNum.getNum());
stocktake.setOrderCode(orderNum.getBussinessType()+"-"+orderNum.getYear()+"-"+
LocalDateTime.now().getMonth().getValue()+"-"+LocalDateTime.now().getDayOfMonth()+"-"+codeValue);
if (ObjectUtil.isNull(stocktake.getOrderCode())){
OrderNum orderNum = setOrderCode(req.getBussinessType(),req.getOrgId());
String codeValue=String.format("%04d",orderNum.getNum());
stocktake.setOrderCode(orderNum.getBussinessType()+orderNum.getYear()+
String.format("%02d",LocalDateTime.now().getMonth().getValue())+
String.format("%02d",LocalDateTime.now().getDayOfMonth())+codeValue);
}
stocktake.setCreateTime(DateTimeUtil.getCurrentDateTime());
stocktake.setApplyTime(DateTimeUtil.getCurrentDateTime());
this.save(stocktake);
//执行工作流
if (req.getExamineState().equals("working"))
{
......@@ -73,6 +76,7 @@ public class StocktakeServiceImpl extends ServiceImpl<StocktakeMapper, Stocktake
String ProcessInstanceId= FlowInstanceService.startProcessInstanceById(startProcessInstanceDTO);
stocktake.setProcessId(ProcessInstanceId);
}
this.save(stocktake);
return stocktake.getId();
}
......
package com.junmp.jyzb.service.impl;
import com.junmp.jyzb.api.bean.req.RabbitMqOrderReq;
import com.junmp.jyzb.service.TestService;
import org.springframework.amqp.core.BindingBuilder;
import org.springframework.amqp.core.DirectExchange;
import org.springframework.amqp.core.Exchange;
import org.springframework.amqp.core.Queue;
import org.springframework.amqp.rabbit.core.RabbitAdmin;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@Service
public class TestServiceImpl implements TestService {
@Resource
private RabbitTemplate rabbitTemplate;
@Resource
private RabbitAdmin rabbitAdmin;
@Override
public Boolean uploadResult(RabbitMqOrderReq req) {
String exchangeName="OrderResultExchange";
Queue queue=new Queue( "orderResult",true,false,false);
Exchange exchange = new DirectExchange(exchangeName, true, false);
rabbitAdmin.declareQueue(queue);
rabbitAdmin.declareExchange(exchange);
rabbitAdmin.declareBinding(BindingBuilder.bind(queue).to(exchange).with("123456").noargs());
rabbitTemplate.convertAndSend(exchangeName,"123456", req);
return true;
}
}
......@@ -88,15 +88,15 @@ public class WarehouseServiceImpl extends ServiceImpl<WarehouseMapper,Warehouse>
@Override
public List<WarehouseDto> getAllWarehouse(WarehouseReq msg) {
public List<WarehouseDto> getAllWarehouse(Long orgId) {
List<WarehouseDto> warehouseDtoList=new ArrayList<>();
//判断组织机构是否存在
PubOrg pubOrg = pubOrgService.PubOrgExist(msg.getOrgId());
PubOrg pubOrg = pubOrgService.PubOrgExist(orgId);
//根据组织机构id查询组织机构名称
String orgName = pubOrg.getOrgName();
List<Warehouse> list = list(new LambdaQueryWrapper<Warehouse>()
.eq(Warehouse::getOrgId, msg.getOrgId()));
.eq(Warehouse::getOrgId, orgId));
for (Warehouse warehouse:list) {
WarehouseDto warehouseDto = new WarehouseDto();
BeanPlusUtil.copyProperties(warehouse,warehouseDto);
......
<?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.DestoryUnitMapper">
<resultMap id="BaseResultMap" type="com.junmp.jyzb.entity.DestoryUnit">
<id property="id" column="id" jdbcType="VARCHAR"/>
<result property="name" column="name" jdbcType="VARCHAR"/>
<result property="code" column="code" jdbcType="VARCHAR"/>
<result property="shortName" column="short_name" jdbcType="VARCHAR"/>
<result property="contacts" column="contacts" jdbcType="VARCHAR"/>
<result property="phone" column="phone" jdbcType="VARCHAR"/>
<result property="state" column="state" jdbcType="INTEGER"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="createUser" column="create_user" jdbcType="VARCHAR"/>
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
<result property="updateUser" column="update_user" jdbcType="VARCHAR"/>
</resultMap>
<sql id="Base_Column_List">
id,name,code,
short_name,contacts,phone,
state,create_time,create_user,
update_time,update_user
</sql>
</mapper>
......@@ -77,28 +77,37 @@ delete from base_inventory_summary
<insert id="SetCabinetInventory">
INSERT INTO base_inventory_summary (id,org_id_int,org_name,type_id, type_name,size_id,size_name,location_id,location_name,number,unit_price,price,stock_number, outbound_number,destruction_number,expire_number,location_type,create_time,update_time)
INSERT INTO base_inventory_summary (id,org_id_int,org_name,type_id, type_name,size_id,size_name,location_id,location_name,
number,unit_price,price,stock_number, outbound_number,destruction_number,expire_number,
broken_number,use_number,near_broken_number,location_type,create_time,update_time)
select
MAX(t.id) as id,t.orgId,t.orgName,t.type_id,t.typeName,t.size_id,t.sizeName,t.locationId,t.locationName,sum(t.number) as number,t.unitPrice,sum(t.price)as price,sum(t.stockNumber)as stockNumber,sum(t.outboundNumber)as outboundNumber,sum(t.destructionNumber)as destructionNumber,sum(t.expireNumber)as expireNumber,t.location_type,NOW(),NOW()
MAX(t.id) as id,t.orgId,t.orgName,t.type_id,t.typeName,t.size_id,t.sizeName,t.locationId,t.locationName,sum(t.number) as number,
t.unitPrice,sum(t.price)as price,sum(t.stockNumber)as stockNumber,sum(t.outboundNumber)as outboundNumber,
sum(t.destructionNumber)as destructionNumber,sum(t.expireNumber)as expireNumber,sum(t.brokenNumber)as brokenNumber,
sum(t.useNumber)as useNumber,sum(t.nearBrokenNumber)as nearBrokenNumber,t.location_type,NOW(),NOW()
FROM
(SELECT
UUID() as id,
bi.org_id_int as orgId,
po.org_name as orgName,
bcb.cabinet_id as locationId,
bi.location_id as locationBoxId,
bc.name as locationName,
bi.type_id,
t.name as typeName,
bi.size_id,
s.name as sizeName,
count(*) as number,
Max(bi.price) as unitPrice,
SUM(CASE WHEN location_state = 'in' THEN 1 ELSE 0 END)+SUM(CASE WHEN location_state = 'out' and bi.state!='destory' THEN 1 ELSE 0 END) as number,
bi.price as unitPrice,
sum(bi.price) as price,
SUM(CASE WHEN location_state = 'in' THEN 1 ELSE 0 END) AS stockNumber,
count(*) - SUM(CASE WHEN location_state = 'in' THEN 1 ELSE 0 END) AS outboundNumber,
SUM(CASE WHEN location_state = 'out' and bi.state!='destory' THEN 1 ELSE 0 END) AS outboundNumber,
sum(case when bi.state = 'destory' then 1 else 0 end) as destructionNumber,
sum(case when bi.warranty_period=0 then 0 when DATE_ADD(bi.production_date,INTERVAL bi.warranty_period MONTH) &lt; NOW() then 1 else 0 end )as expireNumber,
sum(case when bi.warranty_period=0 then 0 when DATE_ADD(bi.production_date,INTERVAL bi.warranty_period MONTH) &gt; NOW() then 1 else 0 end )as expireNumber,
sum(case when bi.state ='broken' and bi.location_state='in' then 1 else 0 end)as brokenNumber,
sum(case when bi.bussiness_state = 'borrow' and bi.location_state='out' then 1
when bi.bussiness_state = 'take' and bi.location_state='out' then 1 else 0 end)as useNumber,
sum(case when bi.warranty_period=0 then 0 when DATE_ADD(bi.production_date,INTERVAL bi.warranty_period MONTH) &lt; NOW()
and DATEDIFF(DATE_ADD(bi.production_date,INTERVAL bi.warranty_period MONTH),NOW()) &lt; #{brokenNumberDays} then 1 else 0 end)as nearBrokenNumber,
bi.location_type
FROM base_inventory bi
join base_cabinet_box bcb on bi.location_id = bcb.id
......@@ -107,33 +116,43 @@ delete from base_inventory_summary
join base_equipment_size s on s.id = bi.size_id
join pub_org po on bi.org_id_int = po.org_id
WHERE location_type = 1
GROUP BY location_id, type_id,size_id,bi.org_id_int,bi.price ) as t
GROUP BY t.locationId,t.type_id,t.size_id,t.orgId,t.unitPrice
GROUP BY bi.org_id_int, bcb.cabinet_id, type_id,size_id,bi.price
order by po.org_name,bc.name ) as t
GROUP BY t.orgName,t.locationId,t.type_id,t.size_id,t.orgId,t.unitPrice
</insert>
<insert id="SetWarehouseInventory">
INSERT INTO base_inventory_summary (id,org_id_int,org_name,location_id,location_name,type_id, type_name,size_id,size_name,number,unit_price,price, stock_number, outbound_number,destruction_number,expire_number,location_type,create_time,update_time)
INSERT INTO base_inventory_summary (id,org_id_int,org_name,location_id,location_name,type_id, type_name,size_id,
size_name,number,unit_price,price, stock_number, outbound_number,destruction_number,
expire_number,broken_number,use_number,near_broken_number,location_type,create_time,update_time)
select
MAX(t.id) as id,t.orgId,t.orgName,t.locationId,MAX(t.locationName),t.type_id,t.typeName,t.size_id,t.sizeName,sum(t.number) as number,t.unitPrice,sum(t.price)as price,sum(t.stockNumber)as stockNumber,sum(t.outboundNumber)as outboundNumber,sum(t.destructionNumber)as destructionNumber,sum(t.destructionNumber) as expireNumber,t.location_type,NOW(),NOW()
MAX(t.id) as id,t.orgId,t.orgName,t.locationId,MAX(t.locationName),t.type_id,t.typeName,t.size_id,t.sizeName,sum(t.number) as number,
t.unitPrice,sum(t.price)as price,sum(t.stockNumber)as stockNumber,sum(t.outboundNumber)as outboundNumber,
sum(t.destructionNumber)as destructionNumber,sum(t.destructionNumber) as expireNumber,sum(t.brokenNumber)as brokenNumber,sum(t.useNumber)as useNumber,
sum(t.nearBrokenNumber)as nearBrokenNumber,t.location_type,NOW(),NOW()
FROM
(SELECT
UUID() as id,
bi.org_id_int as orgId,
po.org_name as orgName,
MAX(bi.location_id) as locationId,
MAX(bw.name) as locationName,
bi.location_id as locationId,
bw.name as locationName,
bi.type_id,
t.name as typeName,
bi.size_id,
s.name as sizeName,
count(*) as number,
Max(bi.price) as unitPrice,
SUM(CASE WHEN location_state = 'in' THEN 1 ELSE 0 END)+SUM(CASE WHEN location_state = 'out' and bi.state!='destory' THEN 1 ELSE 0 END) as number,
bi.price as unitPrice,
sum(bi.price) as price,
SUM(CASE WHEN location_state = 'in' THEN 1 ELSE 0 END) AS stockNumber,
count(*) - SUM(CASE WHEN location_state = 'in' THEN 1 ELSE 0 END) AS outboundNumber,
SUM(CASE WHEN location_state = 'out' and bi.state!='destory' THEN 1 ELSE 0 END) AS outboundNumber,
sum(case when bi.state = 'destory' then 1 else 0 end) as destructionNumber,
sum(case when bi.warranty_period=0 then 0 when DATE_ADD(bi.production_date,INTERVAL bi.warranty_period MONTH) &lt; NOW() then 1
else 0 end )as expireNumber,
sum(case when bi.warranty_period=0 then 0 when DATE_ADD(bi.production_date,INTERVAL bi.warranty_period MONTH) &gt; NOW() then 1 else 0 end )as expireNumber,
sum(case when bi.state ='broken' and bi.location_state='in' then 1 else 0 end)as brokenNumber,
sum(case when bi.bussiness_state = 'borrow' and bi.location_state='out' then 1
when bi.bussiness_state = 'take' and bi.location_state='out' then 1 else 0 end)as useNumber,
sum(case when bi.warranty_period=0 then 0 when DATE_ADD(bi.production_date,INTERVAL bi.warranty_period MONTH) &lt; NOW()
and DATEDIFF(DATE_ADD(bi.production_date,INTERVAL bi.warranty_period MONTH),NOW()) &lt; #{brokenNumberDays} then 1 else 0 end)as nearBrokenNumber,
bi.location_type
FROM base_inventory bi
join base_warehouse bw on bi.location_id = bw.id
......@@ -141,13 +160,19 @@ delete from base_inventory_summary
join base_equipment_size s on s.id = bi.size_id
join pub_org po on bi.org_id_int = po.org_id
WHERE location_type = 0
GROUP BY type_id,size_id,bi.org_id_int,location_id,bi.price) as t
GROUP BY type_id,size_id,bi.org_id_int,location_id,bi.price
order by po.org_name,bw.name) as t
GROUP BY t.locationId,t.type_id,t.size_id,t.orgId,t.unitPrice
</insert>
<insert id="insertInventorySummary">
INSERT INTO base_inventory_summary (id,org_id_int,org_name,location_id,location_name,type_id, type_name,size_id,size_name,number,unit_price,price, stock_number, outbound_number,destruction_number,expire_number,location_type,create_time,update_time)
INSERT INTO base_inventory_summary (id,org_id_int,org_name,location_id,location_name,type_id, type_name,size_id,
size_name,number,unit_price,price, stock_number, outbound_number,destruction_number,
expire_number,location_type,use_number,near_broken_number,create_time,update_time)
select
MAX(t.id) as id,t.orgId,t.orgName,t.locationId,MAX(t.locationName),t.type_id,t.typeName,t.size_id,t.sizeName,sum(t.number) as number,t.unitPrice,sum(t.price)as price,sum(t.stockNumber)as stockNumber,sum(t.outboundNumber)as outboundNumber,sum(t.destructionNumber)as destructionNumber,sum(t.destructionNumber) as expireNumber,t.location_type,NOW(),NOW()
MAX(t.id) as id,t.orgId,t.orgName,t.locationId,MAX(t.locationName),t.type_id,t.typeName,t.size_id,t.sizeName,
sum(t.number) as number,t.unitPrice,sum(t.price)as price,sum(t.stockNumber)as stockNumber,sum(t.outboundNumber)as outboundNumber,
sum(t.destructionNumber)as destructionNumber,sum(t.destructionNumber) as expireNumber,sum(t.useNumber)as useNumber,
sum(t.nearBrokenNumber)as nearBrokenNumber,t.location_type,NOW(),NOW()
FROM
(SELECT
UUID() as id,
......@@ -165,8 +190,12 @@ delete from base_inventory_summary
SUM(CASE WHEN location_state = 'in' THEN 1 ELSE 0 END) AS stockNumber,
count(*) - SUM(CASE WHEN location_state = 'in' THEN 1 ELSE 0 END) AS outboundNumber,
sum(case when bi.state = 'destory' then 1 else 0 end) as destructionNumber,
sum(case when bi.warranty_period=0 then 0 when DATE_ADD(bi.production_date,INTERVAL bi.warranty_period MONTH) &lt; NOW() then 1
sum(case when bi.warranty_period=0 then 0 when DATE_ADD(bi.production_date,INTERVAL bi.warranty_period MONTH) &gt; NOW() then 1
else 0 end )as expireNumber,
sum(case when bi.bussiness_state = 'borrow' and bi.location_state='out' then 1
when bi.bussiness_state = 'take' and bi.location_state='out' then 1 else 0 end)as useNumber,
sum(case when bi.warranty_period=0 then 0 when DATE_ADD(bi.production_date,INTERVAL bi.warranty_period MONTH) &lt; NOW()
and DATEDIFF(DATE_ADD(bi.production_date,INTERVAL bi.warranty_period MONTH),NOW()) &lt; #{brokenNumberDays} then 1 else 0 end)as nearBrokenNumber,
bi.location_type
FROM base_inventory bi
join base_warehouse bw on bi.location_id = bw.id
......@@ -191,62 +220,10 @@ delete from base_inventory_summary
</insert>
<select id="EqsBySearchType" resultType="com.junmp.jyzb.api.bean.dto.InventoryDto">
select
i.id as id,
i.package_id as package_id,
i.epc as epc,
i.size_id as sizeId,
es.name as sizeName,
i.type_id as typeId,
et.name as typeName,
i.supplier_id as supplierId,
s.name as supplierName,
i.state as state,
i.location_state as locationState,
i.production_date as productionDate,
i.location_type as locationType,
<if test="queryType=='warehouse'">
i.location_id as locationId,
</if>
<if test="queryType=='cabinet'">
(select id from base_cabinet where id =#{cabinetId}) as locationId,
</if>
i.price as price,
i.shelf_id as shelfId,
i.shelf_location as shelfLocation,
i.bussiness_state as bussinessState,
i.warranty_period as warrantyPeriod,
i.maintenance_period as maintenancePeriod,
i.tid as tid,
i.note as note,
i.fix_count as fixCount,
i.lost_flag as lostFlag,
i.create_time as createTime,
i.update_time as updateTime,
i.update_user as updateUser,
i.create_user as create_user,
i.org_id_int as orgId,
po.org_name as orgName
from base_inventory i
join base_equipment_type et on et.id = i.type_id
join base_equipment_size es on es.id = i.size_id
join base_supplier s on s.id = i.supplier_id
join pub_org po on i.org_id_int=po.org_id
<if test="queryType == 'org'">
where org_id_int = #{orgId}
</if>
<if test="queryType == 'warehouse' ">
where location_id = #{warehouseId}
</if>
<if test="queryType == 'cabinet'">
where location_id in (select id from base_cabinet_box where cabinet_id =#{cabinetId})
</if>
ORDER BY i.type_id,i.size_id
</select>
<select id="getSumByShelf" resultType="com.junmp.jyzb.entity.InventorySummary"
parameterType="java.lang.String">
select t.id,t.orgId,t.orgName,t.locationId,t.locationName,t.shelf_id,t.type_id,t.typeName,t.size_id,t.sizeName,t.number,t.price,t.stockNumber,t.outboundNumber,t.location_type
select t.id,t.orgId,t.orgName,t.locationId,t.locationName,t.shelf_id,t.type_id,t.typeName,t.size_id,t.sizeName,
t.number,t.price,t.stockNumber,t.outboundNumber,t.location_type
FROM
(SELECT
UUID() as id,
......@@ -402,59 +379,7 @@ delete from base_inventory_summary
join pub_org po on i.org_id_int=po.org_id
where org_id_int=#{orgId}
</select>
<select id="EqsByTypePage" resultType="com.junmp.jyzb.api.bean.dto.InventoryDto">
select
i.id as id,
i.package_id as package_id,
i.epc as epc,
i.size_id as sizeId,
es.name as sizeName,
i.type_id as typeId,
et.name as typeName,
i.supplier_id as supplierId,
s.name as supplierName,
i.state as state,
i.location_state as locationState,
i.production_date as productionDate,
i.location_type as locationType,
<if test="queryType=='warehouse'">
i.location_id as locationId,
</if>
<if test="queryType=='cabinet'">
(select id from base_cabinet where id =#{cabinetId}) as locationId,
</if>
i.price as price,
i.shelf_id as shelfId,
i.shelf_location as shelfLocation,
i.bussiness_state as bussinessState,
i.warranty_period as warrantyPeriod,
i.maintenance_period as maintenancePeriod,
i.tid as tid,
i.note as note,
i.fix_count as fixCount,
i.lost_flag as lostFlag,
i.create_time as createTime,
i.update_time as updateTime,
i.update_user as updateUser,
i.create_user as create_user,
i.org_id_int as orgId,
po.org_name as orgName
from base_inventory i
join base_equipment_type et on et.id = i.type_id
join base_equipment_size es on es.id = i.size_id
join base_supplier s on s.id = i.supplier_id
join pub_org po on i.org_id_int=po.org_id
<if test="queryType == 'org'">
where org_id_int = #{orgId}
</if>
<if test="queryType == 'warehouse' ">
where location_id = #{warehouseId}
</if>
<if test="queryType == 'cabinet'">
where location_id in (select id from base_cabinet_box where cabinet_id =#{cabinetId})
</if>
ORDER BY i.type_id,i.size_id
</select>
<select id="EqsByCabinetBoxIdPage" resultType="com.junmp.jyzb.entity.InventorySummary">
SELECT
UUID() as id,
......
......@@ -31,7 +31,8 @@
destruction_number, expire_number, create_time, update_time,threshold
</sql>
<select id="GetInventorySumInfo" resultType="com.junmp.jyzb.api.bean.dto.InventorySumDto"
<select id="GetInventorySumInfo" resultType="com.junmp.jyzb.api.bean.dto.InventorySumDto"
parameterType="com.junmp.jyzb.api.bean.query.InventorySumReq">
select max(bis.org_id_int) as orgId,max(bis.org_name) as orgName,bis.location_id,max(bis.location_name) as location_name
<if test="req.locationId !=null and req.locationId != ''">
......@@ -69,5 +70,248 @@
</select>
<delete id="deleteByCabinet" parameterType="java.lang.String">
delete from base_inventory_summary where locationId = #{cabinetId}
</delete>
<insert id="getSumByCabinet">
INSERT INTO base_inventory_summary (id,org_id_int,org_name,type_id, type_name,size_id,size_name,location_id,location_name,
number,unit_price,price,stock_number, outbound_number,destruction_number,expire_number,
broken_number,use_number,near_broken_number,location_type,create_time,update_time)
select
MAX(t.id) as id,t.orgId,t.orgName,t.type_id,t.typeName,t.size_id,t.sizeName,t.locationId,t.locationName,sum(t.number) as number,
t.unitPrice,sum(t.price)as price,sum(t.stockNumber)as stockNumber,sum(t.outboundNumber)as outboundNumber,
sum(t.destructionNumber)as destructionNumber,sum(t.expireNumber)as expireNumber,sum(t.brokenNumber)as brokenNumber,
sum(t.useNumber)as useNumber,sum(t.nearBrokenNumber)as nearBrokenNumber,t.location_type,NOW(),NOW()
FROM
(SELECT
UUID() as id,
bi.org_id_int as orgId,
po.org_name as orgName,
bcb.cabinet_id as locationId,
bi.location_id as locationBoxId,
bc.name as locationName,
bi.type_id,
t.name as typeName,
bi.size_id,
s.name as sizeName,
SUM(CASE WHEN location_state = 'in' THEN 1 ELSE 0 END)+SUM(CASE WHEN location_state = 'out' and bi.state!='destory' THEN 1 ELSE 0 END) as number,
bi.price as unitPrice,
sum(bi.price) as price,
SUM(CASE WHEN location_state = 'in' THEN 1 ELSE 0 END) AS stockNumber,
SUM(CASE WHEN location_state = 'out' and bi.state!='destory' THEN 1 ELSE 0 END) AS outboundNumber,
sum(case when bi.state = 'destory' then 1 else 0 end) as destructionNumber,
sum(case when bi.warranty_period=0 then 0 when DATE_ADD(bi.production_date,INTERVAL bi.warranty_period MONTH) &gt; NOW() then 1 else 0 end )as expireNumber,
sum(case when bi.state ='broken' and bi.location_state='in' then 1 else 0 end)as brokenNumber,
sum(case when bi.bussiness_state = 'borrow' and bi.location_state='out' then 1
when bi.bussiness_state = 'take' and bi.location_state='out' then 1 else 0 end)as useNumber,
sum(case when bi.warranty_period=0 then 0 when DATE_ADD(bi.production_date,INTERVAL bi.warranty_period MONTH) &lt; NOW()
and DATEDIFF(DATE_ADD(bi.production_date,INTERVAL bi.warranty_period MONTH),NOW()) &lt; #{brokenNumberDays} then 1 else 0 end)as nearBrokenNumber,
bi.location_type
FROM base_inventory bi
join base_cabinet_box bcb on bi.location_id = bcb.id
join base_cabinet bc on bcb.cabinet_id = bc.id
join base_equipment_type t on t.id = bi.type_id
join base_equipment_size s on s.id = bi.size_id
join pub_org po on bi.org_id_int = po.org_id
WHERE location_type = 1 and bcb.cabinet_id=#{cabinetId}
GROUP BY location_id, type_id,size_id,bi.org_id_int,bi.price ) as t
GROUP BY t.locationId,t.type_id,t.size_id,t.orgId,t.unitPrice
</insert>
<select id="getTotalNumberAndPrice" resultType="com.junmp.jyzb.entity.InventorySummary">
select sum(number) as number,sum(price)as price,sum(stock_number)as stockNumber,
sum(outbound_number)as outboundNumber,sum(destruction_number)as destructionNumber,
sum(expire_number)as expireNumber,sum(broken_number)as brokenNumber
<if test="req.orgId != null and req.orgId != ''">
,org_id_int as orgId
</if>
<if test="req.locationId !=null and req.locationId != ''">
,location_id as locationId
</if>
<if test="req.sizeId != null and req.sizeId != ''">
,size_id as sizeId
</if>
<if test="req.TypeId != null and req.typeId != ''">
,type_id as typeId
</if>
<if test="req.locationType != null and req.locationType != ''">
,location_type as locationId
</if>
FROM base_inventory_summary where 1=1
<if test="req.orgId != null and req.orgId != ''">
and org_id_int=#{req.orgId}
</if>
<if test="req.locationId !=null and req.locationId != ''">
and location_id=#{req.locationId}
</if>
<if test="req.sizeId != null and req.sizeId != ''">
and size_id=#{req.sizeId}
</if>
<if test="req.TypeId != null and req.typeId != ''">
and type_id=#{req.typeId}
</if>
<if test="req.locationType != null and req.locationType != ''">
and location_type=#{req.locationType}
</if>
<choose>
<when test="req.number != null and req.number != ''">
<if test="req.number.charAt(0) == '='">
AND number = SUBSTRING(#{req.number}, 2)
</if>
<if test="req.number.charAt(0) == '&lt;'">
AND number &lt; SUBSTRING(#{req.number}, 2)
</if>
<if test="req.number.charAt(0) == '&gt;'">
AND number &gt; SUBSTRING(#{req.number}, 2)
</if>
</when>
</choose>
<choose>
<when test="req.stockNumber != null and req.stockNumber != ''">
<if test="req.stockNumber.charAt(0) == '='">
AND stock_number = SUBSTRING(#{req.stockNumber}, 2)
</if>
<if test="req.stockNumber.charAt(0) == '&lt;'">
AND stock_number &lt; SUBSTRING(#{req.stockNumber}, 2)
</if>
<if test="req.stockNumber.charAt(0) == '&gt;'">
AND stock_number &gt; SUBSTRING(#{req.stockNumber}, 2)
</if>
</when>
</choose>
<choose>
<when test="req.outboundNumber != null and req.outboundNumber != ''">
<if test="req.outboundNumber.charAt(0) == '='">
AND outbound_number = SUBSTRING(#{req.outboundNumber}, 2)
</if>
<if test="req.outboundNumber.charAt(0) == '&lt;'">
AND outbound_number &lt; SUBSTRING(#{req.outboundNumber}, 2)
</if>
<if test="req.outboundNumber.charAt(0) == '&gt;'">
AND outbound_number &gt; SUBSTRING(#{req.outboundNumber}, 2)
</if>
</when>
</choose>
<choose>
<when test="req.expireNumber != null and req.expireNumber != ''">
<if test="req.expireNumber.charAt(0) == '='">
AND expire_number = SUBSTRING(#{req.expireNumber}, 2)
</if>
<if test="req.expireNumber.charAt(0) == '&lt;'">
AND expire_number &lt; SUBSTRING(#{req.expireNumber}, 2)
</if>
<if test="req.expireNumber.charAt(0) == '&gt;'">
AND expire_number &gt; SUBSTRING(#{req.expireNumber}, 2)
</if>
</when>
</choose>
<choose>
<when test="req.brokenNumber != null and req.brokenNumber != ''">
<if test="req.brokenNumber.charAt(0) == '='">
AND broken_number = SUBSTRING(#{req.brokenNumber}, 2)
</if>
<if test="req.brokenNumber.charAt(0) == '&lt;'">
AND broken_number &lt; SUBSTRING(#{req.brokenNumber}, 2)
</if>
<if test="req.brokenNumber.charAt(0) == '&gt;'">
AND broken_number &gt; SUBSTRING(#{req.brokenNumber}, 2)
</if>
</when>
</choose>
<choose>
<when test="req.unitPrice != null and req.unitPrice != ''">
<if test="req.unitPrice.charAt(0) == '='">
AND unit_price = SUBSTRING(#{req.unitPrice}, 2)
</if>
<if test="req.unitPrice.charAt(0) == '&lt;'">
AND unit_price &lt; SUBSTRING(#{req.unitPrice}, 2)
</if>
<if test="req.unitPrice.charAt(0) == '&gt;'">
AND unit_price &gt; SUBSTRING(#{req.unitPrice}, 2)
</if>
</when>
</choose>
<choose>
<when test="req.price != null and req.price != ''">
<if test="req.price.charAt(0) == '='">
AND price = SUBSTRING(#{req.price}, 2)
</if>
<if test="req.price.charAt(0) == '&lt;'">
AND price &lt; SUBSTRING(#{req.price}, 2)
</if>
<if test="req.price.charAt(0) == '&gt;'">
AND price &gt; SUBSTRING(#{req.price}, 2)
</if>
</when>
</choose>
</select>
<select id="EquipmentStatistics" resultType="com.junmp.jyzb.entity.InventorySummary"
parameterType="com.junmp.jyzb.api.bean.query.InventorySumReq">
select sum(number) as number,sum(price)as price,sum(stock_number)as stockNumber,
sum(outbound_number)as outboundNumber,sum(destruction_number)as destructionNumber,
sum(expire_number)as expireNumber,sum(broken_number)as brokenNumber,
sum(near_broken_number)as nearBrokenNumber,sum(use_number)as useNumber
FROM base_inventory_summary where org_id_int=#{req.orgId}
</select>
<delete id="deleteByWarehouse"
parameterType="com.junmp.jyzb.api.bean.dto.WarehouseDto">
delete from base_inventory_summary
where location_id in
<foreach collection="list" item="item" open="(" separator="," close=")">
#{item.id}
</foreach>
</delete>
<insert id="getSumByWarehouse" >
INSERT INTO base_inventory_summary (id,org_id_int,org_name,location_id,location_name,type_id, type_name,size_id,
size_name,number,unit_price,price, stock_number, outbound_number,destruction_number,
expire_number,broken_number,use_number,near_broken_number,location_type,create_time,update_time)
select
MAX(t.id) as id,t.orgId,t.orgName,t.locationId,MAX(t.locationName),t.type_id,t.typeName,t.size_id,t.sizeName,
sum(t.number) as number,t.unitPrice,sum(t.price)as price,sum(t.stockNumber)as stockNumber,sum(t.outboundNumber)as outboundNumber,
sum(t.destructionNumber)as destructionNumber,sum(t.destructionNumber) as expireNumber,sum(t.brokenNumber) as brokenNumber,
sum(t.useNumber)as useNumber,sum(t.nearBrokenNumber)as nearBrokenNumber,t.location_type,NOW(),NOW()
FROM
(SELECT
UUID() as id,
bi.org_id_int as orgId,
po.org_name as orgName,
MAX(bi.location_id) as locationId,
MAX(bw.name) as locationName,
bi.type_id,
t.name as typeName,
bi.size_id,
s.name as sizeName,
SUM(CASE WHEN location_state = 'in' THEN 1 ELSE 0 END)+SUM(CASE WHEN location_state = 'out' and bi.state!='destory' THEN 1 ELSE 0 END) as number,
bi.price as unitPrice,
sum(bi.price) as price,
SUM(CASE WHEN location_state = 'in' THEN 1 ELSE 0 END) AS stockNumber,
SUM(CASE WHEN location_state = 'out' and bi.state!='destory' THEN 1 ELSE 0 END) AS outboundNumber,
sum(case when bi.state = 'destory' then 1 else 0 end) as destructionNumber,
sum(case when bi.warranty_period=0 then 0 when DATE_ADD(bi.production_date,INTERVAL bi.warranty_period MONTH) &gt; NOW() then 1 else 0 end )as expireNumber,
sum(case when bi.state ='broken' and bi.location_state='in' then 1 else 0 end)as brokenNumber,
sum(case when bi.bussiness_state = 'borrow' and bi.location_state='out' then 1
when bi.bussiness_state = 'take' and bi.location_state='out' then 1 else 0 end)as useNumber,
sum(case when bi.warranty_period=0 then 0 when DATE_ADD(bi.production_date,INTERVAL bi.warranty_period MONTH) &lt; NOW()
and DATEDIFF(DATE_ADD(bi.production_date,INTERVAL bi.warranty_period MONTH),NOW()) &lt; #{brokenNumberDays} then 1 else 0 end)as nearBrokenNumber,
bi.location_type
FROM base_inventory bi
join base_warehouse bw on bi.location_id = bw.id
join base_equipment_type t on t.id = bi.type_id
join base_equipment_size s on s.id = bi.size_id
join pub_org po on bi.org_id_int = po.org_id
WHERE location_type = 0
and bi.location_id in
<foreach collection="list" item="item" open="(" separator="," close=")">
#{item.id}
</foreach>
GROUP BY type_id,size_id,bi.org_id_int,location_id,bi.price) as t
GROUP BY t.locationId,t.type_id,t.size_id,t.orgId,t.unitPrice
</insert>
</mapper>
\ No newline at end of file
<?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">
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.junmp.jyzb.mapper.LogDetailMapper">
<resultMap id="BaseResultMap" type="com.junmp.jyzb.entity.LogDetail">
<!--@mbg.generated-->
<!--@Table base_log_detail-->
<id column="id" jdbcType="INTEGER" property="id" />
<result column="summary_id" jdbcType="INTEGER" property="summaryId" />
<result column="order_id" jdbcType="VARCHAR" property="orderId" />
<result column="epc" jdbcType="VARCHAR" property="epc" />
<result column="equipment_name" jdbcType="VARCHAR" property="equipmentName" />
<result column="equipment_size" jdbcType="VARCHAR" property="equipmentSize" />
<result column="equipment_supplier" jdbcType="VARCHAR" property="equipmentSupplier" />
<result column="equipment_type" jdbcType="INTEGER" property="equipmentType" />
<result column="error_state" jdbcType="INTEGER" property="errorState" />
<result column="note" jdbcType="VARCHAR" property="note" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
id, summary_id, order_id, epc, equipment_name, equipment_size, equipment_supplier,
equipment_type, error_state, note
</sql>
</mapper>
\ No newline at end of file
<resultMap id="BaseResultMap" type="com.junmp.jyzb.entity.LogDetail">
<id property="id" column="id" jdbcType="BIGINT"/>
<result property="inventoryId" column="inventory_id" jdbcType="VARCHAR"/>
<result property="orderMainId" column="order_main_id" jdbcType="VARCHAR"/>
<result property="bussinessType" column="bussiness_type" jdbcType="VARCHAR"/>
<result property="epc" column="epc" jdbcType="VARCHAR"/>
<result property="typeId" column="type_id" jdbcType="VARCHAR"/>
<result property="typeName" column="type_name" jdbcType="VARCHAR"/>
<result property="sizeId" column="size_id" jdbcType="VARCHAR"/>
<result property="sizeName" column="size_name" jdbcType="VARCHAR"/>
<result property="supplierId" column="supplier_id" jdbcType="VARCHAR"/>
<result property="supplierName" column="supplier_name" jdbcType="VARCHAR"/>
<result property="equipmentType" column="equipment_type" jdbcType="INTEGER"/>
<result property="errorState" column="error_state" jdbcType="INTEGER"/>
<result property="outInState" column="out_in_state" jdbcType="VARCHAR"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
<result property="updateUser" column="update_user" jdbcType="VARCHAR"/>
<result property="createUser" column="create_user" jdbcType="VARCHAR"/>
<result property="picture" column="picture" jdbcType="VARCHAR"/>
<result property="deviceType" column="device_type" jdbcType="INTEGER"/>
</resultMap>
<sql id="Base_Column_List">
id,inventory_id,order_main_id,
bussiness_type,epc,type_id,
type_name,size_id,size_name,
supplier_id,supplier_name,equipment_type,
error_state,out_in_state,create_time,
update_time,update_user,create_user,
picture,device_type
</sql>
</mapper>
<?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">
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.junmp.jyzb.mapper.LogSummaryMapper">
<resultMap id="BaseResultMap" type="com.junmp.jyzb.entity.LogSummary">
<!--@mbg.generated-->
<!--@Table base_log_summary-->
<id column="id" jdbcType="INTEGER" property="id" />
<result column="org_id" jdbcType="VARCHAR" property="orgId" />
<result column="org_name" jdbcType="VARCHAR" property="orgName" />
<result column="warehouse_id" jdbcType="VARCHAR" property="warehouseId" />
<result column="warehouse_name" jdbcType="VARCHAR" property="warehouseName" />
<result column="device" jdbcType="VARCHAR" property="device" />
<result column="device_type" jdbcType="INTEGER" property="deviceType" />
<result column="use_time" jdbcType="TIMESTAMP" property="useTime" />
<result column="user_name" jdbcType="VARCHAR" property="userName" />
<result column="out_in_state" jdbcType="INTEGER" property="outInState" />
<result column="picture" jdbcType="VARCHAR" property="picture" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
id, org_id, org_name, warehouse_id, warehouse_name, device, device_type, use_time,
user_name, out_in_state, picture
</sql>
</mapper>
\ No newline at end of file
<resultMap id="BaseResultMap" type="com.junmp.jyzb.entity.LogSummary">
<id property="id" column="id" jdbcType="BIGINT"/>
<result property="orgId" column="org_id" jdbcType="BIGINT"/>
<result property="orgName" column="org_name" jdbcType="VARCHAR"/>
<result property="orderMainId" column="order_main_id" jdbcType="VARCHAR"/>
<result property="device" column="device" jdbcType="VARCHAR"/>
<result property="deviceType" column="device_type" jdbcType="INTEGER"/>
<result property="locationId" column="location_id" jdbcType="VARCHAR"/>
<result property="locationName" column="location_name" jdbcType="VARCHAR"/>
<result property="locationType" column="location_type" jdbcType="INTEGER"/>
<result property="useTime" column="use_time" jdbcType="TIMESTAMP"/>
<result property="bussinessType" column="bussiness_type" jdbcType="VARCHAR"/>
<result property="userName" column="user_name" jdbcType="VARCHAR"/>
<result property="picture" column="picture" jdbcType="VARCHAR"/>
<result property="equipmentList" column="equipment_List" jdbcType="VARCHAR"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
<result property="updateUser" column="update_user" jdbcType="VARCHAR"/>
<result property="createUser" column="create_user" jdbcType="VARCHAR"/>
</resultMap>
<sql id="Base_Column_List">
id,org_id,org_name,
order_main_id,device,device_type,
location_id,location_name,location_type,
use_time,bussiness_type,user_name,
picture,equipment_List,create_time,
update_time,update_user,create_user
</sql>
<select id="ShowInOutRecordsByOrder" resultType="com.junmp.jyzb.entity.LogSummary">
select * from base_log_summary ls
where ls.org_id = #{req.orgId} and ls.order_main_id=#{req.orderMainId}
</select>
<select id="ShowInOutRecordsByWarehouse" resultType="com.junmp.jyzb.entity.LogSummary">
select * from base_log_summary ls
left join base_log_detail ld on ls.id = ld.summary_id
where ls.org_id = #{req.orgId} and ls.location_type=0
<if test="req.bussinessType != null and req.bussinessType !=''">
and ls.bussiness_type=#{req.bussinessType}
</if>
<if test="req.locationId != null and req.locationId !=''">
and ls.location_id=#{locationId}
</if>
<if test="req.typeId != null and req.typeId !=''">
and ld.type_id=#{req.typeId}
</if>
</select>
<select id="ShowInOutRecordsByCabinet" resultType="com.junmp.jyzb.entity.LogSummary">
select * from base_log_summary ls
left join base_log_detail ld on ls.id = ld.summary_id
where ls.org_id = #{req.orgId} and ls.location_type=1
<if test="req.locationId != null and req.locationId !=''">
and ls.location_id=#{req.locationId}
<if test="req.cabinetboxId != null and req.cabinetboxId !=''">
and ld.cabinetbox_id in (select id from base_cabinet_box cb where cb.cabinet_id=#{req.locationId})
</if>
</if>
</select>
</mapper>
......@@ -67,7 +67,7 @@
select * FROM bussiness_order_main WHERE order_type=#{req.orderType}
<if test="req.typeId != null and req.typeId != ''">
and id in(
SELECT order_id FROM bussiness_order_detail WHERE equipment_type = #{req.typeId})
SELECT order_id FROM bussiness_order_detail WHERE type_id = #{req.typeId})
</if>
<if test="null != req.bussinessType and '' != req.bussinessType ">
and bussiness_type = #{req.bussinessType}
......
<?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.RepairUnitMapper">
<resultMap id="BaseResultMap" type="com.junmp.jyzb.entity.RepairUnit">
<id property="id" column="id" jdbcType="VARCHAR"/>
<result property="name" column="name" jdbcType="VARCHAR"/>
<result property="code" column="code" jdbcType="VARCHAR"/>
<result property="shortName" column="short_name" jdbcType="VARCHAR"/>
<result property="contacts" column="contacts" jdbcType="VARCHAR"/>
<result property="phone" column="phone" jdbcType="VARCHAR"/>
<result property="state" column="state" jdbcType="INTEGER"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="createUser" column="create_user" jdbcType="VARCHAR"/>
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
<result property="updateUser" column="update_user" jdbcType="VARCHAR"/>
</resultMap>
<sql id="Base_Column_List">
id,name,code,
short_name,contacts,phone,
state,create_time,create_user,
update_time,update_user
</sql>
</mapper>
......@@ -3,6 +3,7 @@ package com.junmp.junmpProcess.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.PageUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
......@@ -25,6 +26,7 @@ import com.junmp.junmpProcess.vo.*;
import com.junmp.v2.auth.api.bean.login.LoginUser;
import com.junmp.v2.auth.api.context.LoginContext;
import com.junmp.v2.common.bean.response.ApiRes;
import com.junmp.v2.common.util.BeanPlusUtil;
import com.junmp.v2.db.api.factory.PageResultFactory;
import com.junmp.v2.db.api.page.PageResult;
import com.junmp.v2.sys.user.entity.SysUser;
......@@ -260,8 +262,10 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
taskVO.setTaskId(task.getId());
taskVO.setProcessInstanceId(task.getProcessInstanceId());
taskVO.setProcessDefinitionName(bpmnModel.getMainProcess().getName());
taskVO.setStartUser(JSONObject.parseObject(MapUtil.getStr(processVariables, START_USER_INFO), new TypeReference<ProcessUser>() {
}).getUserInfo());
// taskVO.setStartUser(JSONObject.parseObject(MapUtil.getStr(processVariables, START_USER_INFO), new TypeReference<ProcessUser>() {
// }).getUserInfo());
String s = (String) processVariables.get(START_USER_INFO);
taskVO.setStartUser(JSONObject.parseObject(s, UserInfo.class));
taskVO.setOrderId(MapUtil.getStr(processVariables, ORDER_ID));
taskVO.setOrderType(MapUtil.getStr(processVariables, ORDER_TYPE));
......@@ -323,8 +327,10 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
{
taskVO.setProcessDefinitionName(bpmnModel.getMainProcess().getName());
}
taskVO.setStartUser(JSONObject.parseObject(MapUtil.getStr(processVariables, START_USER_INFO), new TypeReference<ProcessUser>() {
}).getUserInfo());
// taskVO.setStartUser(JSONObject.parseObject(MapUtil.getStr(processVariables, START_USER_INFO), new TypeReference<ProcessUser>() {
// }).getUserInfo());
String s = (String) processVariables.get(START_USER_INFO);
taskVO.setStartUser(JSONObject.parseObject(s, UserInfo.class));
taskVO.setOrderId(MapUtil.getStr(processVariables, ORDER_ID));
taskVO.setOrderType(MapUtil.getStr(processVariables, ORDER_TYPE));
......@@ -387,9 +393,11 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
historyProcessInstanceVO.setOrderId(MapUtil.getStr(processVariables, ORDER_ID));
historyProcessInstanceVO.setOrderType(MapUtil.getStr(processVariables, ORDER_TYPE));
historyProcessInstanceVO.setProcessDefinitionName(historicProcessInstance.getProcessDefinitionName());
historyProcessInstanceVO.setStartUser(JSONObject.parseObject(MapUtil.getStr(processVariables, START_USER_INFO), new TypeReference<ProcessUser>() {
}).getUserInfo());
// historyProcessInstanceVO.setStartUser(StartUser)
// historyProcessInstanceVO.setStartUser(JSONObject.parseObject(MapUtil.getStr(processVariables, START_USER_INFO), new TypeReference<ProcessUser>() {
// }).getUserInfo());
String s = (String) processVariables.get(START_USER_INFO);
historyProcessInstanceVO.setStartUser(JSONObject.parseObject(s, UserInfo.class));
historyProcessInstanceVO.setStartTime(historicProcessInstance.getStartTime());
historyProcessInstanceVO.setEndTime(historicProcessInstance.getEndTime());
Boolean flag = historicProcessInstance.getEndTime() == null ? false : true;
......@@ -549,14 +557,17 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
}
}
// 根据 processInstanceId 查询正在执行的任务
Task currentTask = taskService.createTaskQuery()
List<Task> list1 = taskService.createTaskQuery()
.processInstanceId(processInstanceId)
.list().get(0);
// 使用 Stream API 进行过滤和修改
taskDetailVOS.stream()
.filter(taskDetail -> taskDetail.getActivityId().equals(currentTask.getTaskDefinitionKey()))
.findFirst()
.ifPresent(matchingTask -> matchingTask.setTaskStatusWrapper("待审核"));
.list();
if (list1.size()>0) {
Task currentTask =list1.get(0);
// 使用 Stream API 进行过滤和修改
taskDetailVOS.stream()
.filter(taskDetail -> taskDetail.getActivityId().equals(currentTask.getTaskDefinitionKey()))
.findFirst()
.ifPresent(matchingTask -> matchingTask.setTaskStatusWrapper("待审核"));
}
JSONObject jsonForm = JSON.parseObject(formJson.toString());
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论