Commit e81973a5 by 李小惠

上传业务模块代码,对其进行了新增和修改

parent 1525bb9c
...@@ -80,3 +80,23 @@ Thumbs.db ...@@ -80,3 +80,23 @@ Thumbs.db
/.idea/compiler.xml /.idea/compiler.xml
/.idea/modules.xml /.idea/modules.xml
/pom.xml /pom.xml
/jyzb-biz/jyzb-biz.iml
/jyzb-biz/jyzb-biz.iml
/jyzb-mq/jyzb-mq-producer/pom.xml
/jyzb-biz/jyzb-biz.iml
/jyzb-mq/pom.xml
/jyzb-mq/jyzb-mq.iml
/jyzb-mq/jyzb-mq-consumer/pom.xml
/jyzb-mq/jyzb-mq-consumer/src/main/java/com/junmp/jyzb/config/DirectRabbitConfig.java
/jyzb-mq/jyzb-mq-consumer/src/main/java/com/junmp/jyzb/config/DirectReceiver.java
/jyzb-mq/jyzb-mq-consumer/src/main/java/com/junmp/jyzb/config/DirectReceiver.java.orig
/jyzb-mq/jyzb-mq-consumer/src/main/java/com/junmp/jyzb/controller/SendMsgController.java
/jyzb-mq/jyzb-mq-consumer/src/main/java/com/junmp/jyzb/MqConsumerApplication.java
/jyzb-mq/jyzb-mq-consumer/src/main/resources/application.yml
/jyzb-mq/jyzb-mq-consumer/target/maven-archiver/pom.properties
/jyzb-mq/jyzb-mq-producer/src/main/java/com/junmp/jyzb/config/DirectRabbitConfig.java
/jyzb-mq/jyzb-mq-producer/src/main/java/com/junmp/jyzb/controller/SendMsgController.java
/jyzb-mq/jyzb-mq-producer/src/main/java/com/junmp/jyzb/MqProducerApplication.java
/jyzb-mq/jyzb-mq-producer/src/main/resources/application.yml
/jyzb-mq/jyzb-mq-producer/target/maven-archiver/pom.properties
/jyzb-biz/jyzb-biz.iml
package com.junmp.jyzb.api.bean.dto;
import lombok.Data;
import java.util.List;
/**
* 根据区域id查询装备详细信息输出实体类
*/
@Data
public class AreaInsDto {
/**
* 仓库id
*/
private String warehouseId;
/**
* warehouseName
*/
private String warehouseName;
/**
*location 仓库地点
*/
private String warehouseLocation;
/**
*list 装备汇总列表
*/
private List<InventorySumDto> list;
}
package com.junmp.jyzb.api.bean.dto;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* 根据区域id查询装备汇总输出实体类
*/
@Data
public class AreaInventoryDto implements Serializable {
/**
* 仓库id
*/
private String warehouseId;
/**
* warehouseName
*/
private String warehouseName;
/**
*location 仓库地点
*/
private String warehouseLocation;
/**
* 区域名称
*/
private String warehouseAreaName;
/**
*list 装备汇总列表
*/
private List<InventorySumDto> list;
}
package com.junmp.jyzb.api.bean.dto; package com.junmp.jyzb.api.bean.dto;
import cn.hutool.core.date.DateTime;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
......
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;
import java.util.Date;
@Data
public class LogDetailDto implements Serializable {
/**
* 物资id
*/
@ApiModelProperty(value = "物资id")
private String inventoryId;
/**
* 单据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;
}
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;
import java.util.Date;
import java.util.List;
@Data
public class LogSummaryDto implements Serializable {
/**
* 组织机构ID
*/
@ApiModelProperty(value = "组织机构ID")
private String 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;
/**
* 装备详细信息
*/
@ApiModelProperty(value = "装备详细信息")
private List<LogDetailDto> equipmentList;
}
package com.junmp.jyzb.api.bean.dto;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
@Data
public class OrderDetailDto implements Serializable {
private Long id;
private String orderId;
private String type;
private String equipmentType;
private String equipmentTypeName;
private Long equipmentSize;
private String equipmentSizeName;
private Long equipment_supplier;
private String equipmentSupplierName;
private String planNum;
private String actualNum;
private String price;
private String orderType;
private Date createTime;
private Date updateTime;
private String createUser;
private String updateUser;
}
package com.junmp.jyzb.api.bean.dto;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
public class OrderDto implements Serializable {
private String id;
private String examineState;
private String processType;
/**
* 单据类型:入库单/出库单
*/
private String orderType;
/**
* 工作流ID
*/
private String processId;
/**
* 单据业务类型
*/
private String bussinessType;
/**
* 订单号
*/
private String orderCode;
/**
* 发物单位
*/
private String startOrgId;
/**
* 发物单位名称
*/
private String startOrgName;
/**
* 收物单位
*/
private String endOrgId;
/**
* 收物单位名称
*/
private String endOrgName;
/**
* 发物单位负责人id
*/
private String startOrgUserId;
/**
* 发物单位负责人姓名
*/
private String startOrgUserName;
/**
* 收物单位负责人id
*/
private String endOrgUserId;
/**
* 收物单位负责人姓名
*/
private String endOrgUserName;
/**
* 总价格
*/
private String price;
/**
* 应入库数量
*/
private String inventoryQuantity;
/**
* 附件地址
*/
private String attachmentLocation;
/**
* 单据包含的物资集合
*/
private String invList;
/**
* 明细列表
*/
private List<OrderDetailDto> detailList;
}
package com.junmp.jyzb.api.bean.dto;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
@Data
public class OrderMainDto implements Serializable {
private String id;
private String orderType;
private String processId;
private String bussinessType;
private String orderCode;
private Long startOrgId;
private String startOrgName;
private Long endOrgId;
private String endOrgName;
private String startOrgUserId;
private String startOrgUserName;
private String endOrgUserId;
private String endOrgUserName;
private String examineState;
private BigDecimal price;
private Integer inventoryQuantity;
private Integer actualQuantity;
private Integer manualState;
private Integer orderState;
private String attachmentLocation;
private String invList;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新时间
*/
private Date updateTime;
private String createUser;
private String updateUser;
}
...@@ -20,6 +20,7 @@ import java.util.List; ...@@ -20,6 +20,7 @@ import java.util.List;
public class InventoryReq extends BaseRequest { public class InventoryReq extends BaseRequest {
@NotBlank(message = "装备id不能为空",groups = {detail.class})
private String id; private String id;
/** /**
* 装备包ID * 装备包ID
...@@ -69,7 +70,6 @@ public class InventoryReq extends BaseRequest { ...@@ -69,7 +70,6 @@ public class InventoryReq extends BaseRequest {
/** /**
* 组织机构ID * 组织机构ID
*/ */
@NotNull(message = "组织机构id不能为空", groups = {detail.class})
private Long orgId; private Long orgId;
/** /**
* 单警柜id * 单警柜id
......
package com.junmp.jyzb.api.bean.query;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.junmp.v2.common.bean.request.BaseRequest;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import java.util.Date;
@Data
@EqualsAndHashCode(callSuper = true)
public class OrderDetailReq extends BaseRequest {
private Long id;
@NotBlank(message = "任务单id不能为空",groups = {detail.class})
private String orderId;
private String type;
private String equipmentType;
private String equipmentTypeName;
private Long equipmentSize;
private String equipmentSizeName;
private Long equipment_supplier;
private String equipmentSupplierName;
private String planNum;
private String actualNum;
private String price;
private String orderType;
private Date createTime;
private Date updateTime;
private String createUser;
private String updateUser;
}
package com.junmp.jyzb.api.bean.query;
import com.junmp.v2.common.bean.request.BaseRequest;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import java.math.BigDecimal;
import java.util.Date;
@Data
@EqualsAndHashCode(callSuper = true)
public class OrderMainReq extends BaseRequest {
@NotBlank(message = "任务单id不能为空",groups = {detail.class})
private String id;
private String orderType;
private String processId;
private String bussinessType;
private String orderCode;
private Long startOrgId;
private String startOrgName;
private Long endOrgId;
private String endOrgName;
private String startOrgUserId;
private String startOrgUserName;
private String endOrgUserId;
private String endOrgUserName;
private String examineState;
private BigDecimal price;
private Integer inventoryQuantity;
private Integer actualQuantity;
private Integer manualState;
private Integer orderState;
private String attachmentLocation;
private String invList;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新时间
*/
private Date updateTime;
private String createUser;
private String updateUser;
}
package com.junmp.jyzb.api.bean.req;
import lombok.Data;
@Data
public class DetailListReq {
/**
* 类型
*/
private String Id;
/**
* 单据类型,out出库,in入库
*/
private String type;
/**
* 类型id
*/
private String equipmentType;
/**
* 类型名称
*/
private String equipmentTypeName;
/**
* 号型
*/
private String equipmentSize;
private String equipmentSizeName;
private Long equipmentSupplier;
private String equipmentSupplierName;
private String planNum;
private String price;
}
...@@ -18,15 +18,7 @@ public class EquipmentBindReq extends BaseRequest { ...@@ -18,15 +18,7 @@ public class EquipmentBindReq extends BaseRequest {
@NotBlank(message = "箱号id不能为空",groups = {edit.class}) @NotBlank(message = "箱号id不能为空",groups = {edit.class})
private String cabinetBoxId; private String cabinetBoxId;
/** /**
* 单警柜箱号id * 装备id集合
*/
private String cabinetId;
/**
* 单警柜箱号id
*/
private Long orgId;
/**
* 装备集合
*/ */
List<InventoryReq> equipmentList; List<String> equipmentList;
} }
package com.junmp.jyzb.api.bean.req; package com.junmp.jyzb.api.bean.req;
import com.junmp.v2.common.bean.request.BaseRequest;
import com.junmp.v2.common.bean.request.ValidationApi; import com.junmp.v2.common.bean.request.ValidationApi;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.util.List; import java.util.List;
@Data @Data
public class UpdateOrderReq { @EqualsAndHashCode(callSuper = true)
public class UpdateOrderReq extends BaseRequest {
@NotBlank(message = "id不能为空",groups = {edit.class})
private String Id; private String Id;
private String examineState; private String examineState;
private String processType; private String processType;
/** /**
* 状态 * 单据类型:入库单/出库单
*/ */
@NotNull(message = "状态不能为空", groups = {ValidationApi.updateStatus.class}) @NotNull(message = "状态不能为空", groups = {updateStatus.class})
private String orderType; private String orderType;
/** /**
* 单据类型:入库单/出库单 * 工作流ID
*/ */
private String processId; private String processId;
/** /**
* 工作流ID * 单据业务类型
*/ */
private String bussinessType; private String bussinessType;
/** /**
* 单据业务类型 * 订单号
*/ */
private String orderCode; private String orderCode;
/** /**
* 订单号 * 发物单位
*/ */
private String startOrgId; private String startOrgId;
/** /**
* 发物单位 * 发物单位名称
*/ */
private String startOrgName; private String startOrgName;
/** /**
* 发物单位名称 * 收物单位
*/ */
private String endOrgId; private String endOrgId;
/** /**
* 收物单位 * 收物单位名称
*/ */
private String endOrgName; private String endOrgName;
/** /**
...@@ -87,41 +92,13 @@ public class UpdateOrderReq { ...@@ -87,41 +92,13 @@ public class UpdateOrderReq {
// */ // */
// private String detailList; // private String detailList;
/** /**
* 组织机构列表 * 删除装备列表
*/ */
private List<String> deleteList; private List<String> deleteList;
/** /**
* 组织机构列表 * 明细列表
*/ */
private List<DetailList> detailList; private List<DetailListReq> detailList;
@Data
public class DetailList {
/**
* 类型
*/
private String Id;
/**
* 类型
*/
private String typeId;
/**
* 类型名称
*/
private String typeName;
/**
* 号型
*/
private String sizeId;
private String sizeName;
private String supplierId;
private String supplierName;
private String planNum;
private String price;
}
} }
...@@ -8,7 +8,7 @@ import lombok.Getter; ...@@ -8,7 +8,7 @@ import lombok.Getter;
public enum OrderExceptionEnum implements IExceptionEnum { public enum OrderExceptionEnum implements IExceptionEnum {
ORDER_NOT_EXIST(CommonConstant.DEFAULT_USER_ERROR_CODE,"单据不存在"), ORDER_NOT_EXIST(CommonConstant.DEFAULT_USER_ERROR_CODE,"单据不存在"),
ERROR_COMMOAND(CommonConstant.DEFAULT_USER_ERROR_CODE,"操作有误,无法既删除又修改"), ERROR_COMMOAND(CommonConstant.DEFAULT_USER_ERROR_CODE,"操作有误,无法既删除又修改"),
ORDER_CAN_NOT_UPDATE(CommonConstant.DEFAULT_USER_ERROR_CODE,"进行中的单据无法修改"); ORDER_CAN_NOT_UPDATE(CommonConstant.DEFAULT_USER_ERROR_CODE,"进行中的单据或已完成的单据无法修改");
/** /**
* 错误编码 * 错误编码
*/ */
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<module version="4"> <module version="4">
<component name="AdditionalModuleElements">
<content url="file://$MODULE_DIR$" dumb="true">
<sourceFolder url="file://$MODULE_DIR$/src/main/test" isTestSource="true" />
</content>
</component>
<component name="FacetManager"> <component name="FacetManager">
<facet type="Spring" name="Spring"> <facet type="Spring" name="Spring">
<configuration /> <configuration />
......
package com.junmp.jyzb.config.rabbitMQ; package com.junmp.jyzb.config.rabbitMQ;
import org.springframework.amqp.core.Binding; import org.springframework.amqp.core.*;
import org.springframework.amqp.core.BindingBuilder;
import org.springframework.amqp.core.DirectExchange;
import org.springframework.amqp.core.Queue;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
...@@ -11,21 +8,21 @@ import org.springframework.context.annotation.Configuration; ...@@ -11,21 +8,21 @@ import org.springframework.context.annotation.Configuration;
public class DirectRabbitConfig { public class DirectRabbitConfig {
// 死信交换机名称 // 死信交换机名称
private static final String DEAD_EXCHANGE = "dead_exchange"; private static final String DEAD_EXCHANGE = "dead_exchange";
//队列 起名:TestDirectQueue //队列 起名:
@Bean @Bean
public Queue TestDirectQueue() { public Queue TestQueue() {
return new Queue("Test1Queue",true); return new Queue("TestQueue",true);
} }
//Direct交换机 起名:TestDirectExchange //Direct交换机 起名
@Bean @Bean
DirectExchange TestDirectExchange() { public DirectExchange TestExchange() {
return new DirectExchange("OrderExchange"); return new DirectExchange("TestExchange",true,false);
} }
//绑定 将队列和交换机绑定, 并设置用于匹配键:TestDirectRouting //绑定 将队列和交换机绑定, 并设置用于匹配键:Test1Routing
@Bean @Bean
Binding bindingDirect() { Binding bindingDirect() {
return BindingBuilder.bind(TestDirectQueue()).to(TestDirectExchange()).with("Test1Routing"); return BindingBuilder.bind(TestQueue()).to(TestExchange()).with("Test1Routing");
} }
} }
\ No newline at end of file
...@@ -10,7 +10,7 @@ import org.springframework.context.annotation.Configuration; ...@@ -10,7 +10,7 @@ import org.springframework.context.annotation.Configuration;
@Configuration @Configuration
public class ProductRabbitConfig { public class ProductRabbitConfig {
//队列 起名:TestDirectQueue //队列 起名:Test1Queue
@Bean @Bean
public Queue TestDirectQueue() { public Queue TestDirectQueue() {
// durable:是否持久化,默认是false,持久化队列:会被存储在磁盘上,当消息代理重启时仍然存在,暂存队列:当前连接有效 // durable:是否持久化,默认是false,持久化队列:会被存储在磁盘上,当消息代理重启时仍然存在,暂存队列:当前连接有效
...@@ -21,14 +21,14 @@ public class ProductRabbitConfig { ...@@ -21,14 +21,14 @@ public class ProductRabbitConfig {
return new Queue("Test1Queue",true); return new Queue("Test1Queue",true);
} }
//Direct交换机 起名:TestDirectExchange //Direct交换机 起名:Test1Exchange
@Bean @Bean
DirectExchange TestDirectExchange() { DirectExchange TestDirectExchange() {
// return new DirectExchange("TestDirectExchange",true,true); // return new DirectExchange("TestDirectExchange",true,true);
return new DirectExchange("Test1Exchange",true,false); return new DirectExchange("Test1Exchange",true,false);
} }
//绑定 将队列和交换机绑定, 并设置用于匹配键:TestDirectRouting //绑定 将队列和交换机绑定, 并设置用于匹配键:Test1Routing
@Bean @Bean
Binding bindingDirect() { Binding bindingDirect() {
return BindingBuilder.bind(TestDirectQueue()).to(TestDirectExchange()).with("Test1Routing"); return BindingBuilder.bind(TestDirectQueue()).to(TestDirectExchange()).with("Test1Routing");
......
package com.junmp.jyzb.config.rabbitMQ;
import org.springframework.amqp.core.*;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class RabbitmqConfig {
//1.交换机
@Bean("LogExchange")
public Exchange bootExchange(){
return ExchangeBuilder.directExchange("LogExchange").durable(true).build();
}
//2.队列
@Bean("LogQueue")
public Queue bootQueue(){
return QueueBuilder.durable("LogQueue").build();
}
//3.队列和交换机的绑定关系(队列,交换机,rountingkey)
@Bean
public Binding bingQueueExchange(@Qualifier("LogQueue") Queue queue, @Qualifier("LogExchange")Exchange exchange){
return BindingBuilder.bind(queue).to(exchange).with("log").noargs();
}
@Bean("OrderExchange")
public Exchange OrderExchange(){
return ExchangeBuilder.directExchange("OrderExchange").durable(true).build();
}
//2.队列
@Bean("OrderQueue")
public Queue OrderQueue(){
return QueueBuilder.durable("OrderQueue").build();
}
//3.队列和交换机的绑定关系(队列,交换机,rountingkey)
@Bean
public Binding bindQueueExchange(@Qualifier("OrderQueue") Queue queue, @Qualifier("OrderExchange")Exchange exchange){
return BindingBuilder.bind(queue).to(exchange).with("1").noargs();
}
}
...@@ -38,15 +38,9 @@ public class InventoryController { ...@@ -38,15 +38,9 @@ public class InventoryController {
String aa=""; String aa="";
return ApiRes.success(mqProductService.sendMessage()); return ApiRes.success(mqProductService.sendMessage());
} }
//根据组织机构id/单警柜id/仓库id查询出库存的汇总信息
@PostMapping("/GetEquipmentInfo")
@ApiOperation("根据条件查询库存汇总信息")
public ApiRes<PageResult<InventorySummary>> getEquipmentInfo(@RequestBody @Validated(ValidationApi.edit.class) InventorySumReq req) {
return ApiRes.success(inventorySummaryService.getEquipmentInfo(req));
}
//填充汇总信息 //填充汇总信息(将表中的数据base_inventory_summary进行删除并且根据base_inventory表中数据同步)
@PostMapping("/SetInventoryMsg") @PostMapping("/SetInventoryMsg")
@ApiOperation("填充汇总表信息") @ApiOperation("填充汇总表信息")
public ApiRes<Boolean> setInventoryMsg() { public ApiRes<Boolean> setInventoryMsg() {
...@@ -57,62 +51,55 @@ public class InventoryController { ...@@ -57,62 +51,55 @@ public class InventoryController {
return ApiRes.success(result); return ApiRes.success(result);
} }
@PostMapping("/getEquipmentInfo")
@ApiOperation("查询库存明细信息")
public ResponseResult getEquipmentInfo(@RequestBody Map<String, Object> msg) {
ResponseResult returnMsg = inventoryService.getEquipmentInfo(msg);
return returnMsg;
}
//装备绑定箱门
@PostMapping("/EquipmentBind") @PostMapping("/EquipmentBind")
@ApiOperation("装备绑定箱门") @ApiOperation("装备绑定箱门")
public ApiRes<Boolean> InventoryBind(@RequestBody @Validated(ValidationApi.edit.class) EquipmentBindReq req){ public ApiRes<Boolean> InventoryBind(@RequestBody @Validated(ValidationApi.edit.class) EquipmentBindReq req){
return ApiRes.success(inventoryService.InventoryBind(req)); return ApiRes.success(inventoryService.InventoryBind(req));
} }
//手动修改仓库数量信息,修改的是base_warehouse中的个别字段(总数,总价,入库数,出库数),是通过inventory_summary进行统计的
@PostMapping("/UpdateWarehouseInsNum") @PostMapping("/UpdateWarehouseInsNum")
@ApiOperation("手动重置仓库库存数量信息") @ApiOperation("手动重置仓库库存数量信息")
public ApiRes<Boolean> UpdateWarehouseInsNum(@RequestBody @Validated(ValidationApi.detail.class) WarehouseReq req){ public ApiRes<Boolean> UpdateWarehouseInsNum(@RequestBody @Validated(ValidationApi.detail.class) WarehouseReq req){
return ApiRes.success(inventoryService.UpdateWarehouseInsNum(req)); return ApiRes.success(inventoryService.UpdateWarehouseInsNum(req));
} }
//手动修改单警柜数量信息,修改的是base_cabinet中的个别字段(总数,总价,入库数,出库数),是通过inventory_summary进行统计的
@PostMapping("/UpdateCabinetInsNum") @PostMapping("/UpdateCabinetInsNum")
@ApiOperation("手动重置单警柜库存数量信息") @ApiOperation("手动重置单警柜库存数量信息")
public ApiRes<Boolean> UpdateCabinetInsNum(@RequestBody @Validated(ValidationApi.detail.class)CabinetReq req){ public ApiRes<Boolean> UpdateCabinetInsNum(@RequestBody @Validated(ValidationApi.detail.class)CabinetReq req){
return ApiRes.success(inventoryService.UpdateCabinetInsNum(req)); return ApiRes.success(inventoryService.UpdateCabinetInsNum(req));
} }
//根据Epc获取装备简要信息
@PostMapping("/GetInvInfoByEpc") @PostMapping("/GetInvInfoByEpc")
@ApiOperation("根据EPC列表获取装备信息(简要)") @ApiOperation("根据EPC列表获取装备信息(简要)")
public ApiRes<List<EqsBriefDto>> GetInvInfoByEpc(@RequestBody InventoryReq req){ public ApiRes<List<InventoryDto>> GetInvInfoByEpc(@RequestBody InventoryReq req){
return ApiRes.success(inventoryService.GetInvInfoByEpc(req)); return ApiRes.success(inventoryService.GetInvInfoByEpc(req));
} }
//通过组织机构id获取装备详情信息(不是装备汇总信息)
@PostMapping("/GetInventoryByOrgId") //根据组织机构id/单警柜id/仓库id查询出库存的汇总信息√
@ApiOperation("查询组织机构拥有装备详情列表") @PostMapping("/GetEquipmentInfo")
public ApiRes<List<InventoryDto>> getInventoryByOrgId(@RequestBody @Validated(ValidationApi.detail.class) InventoryReq req){ @ApiOperation("根据条件查询库存汇总信息")
return ApiRes.success(inventoryService.getInventoryByOrgId(req)); public ApiRes<PageResult<InventorySummary>> getEquipmentInfo(@RequestBody InventorySumReq req) {
return ApiRes.success(inventorySummaryService.getEquipmentInfo(req));
} }
//根据组织机构/单警柜id/仓库id查询每件装备细信的详息 //根据组织机构/单警柜id/仓库id查询每件装备细信的详息
@PostMapping("/EqsBySearchType") @PostMapping("/EqsBySearchType")
@ApiOperation("根据传入信息查询装备信息") @ApiOperation("查询库存装备详细信息")
public ApiRes<List<InventoryDto>> EqsBySearchType(@RequestBody @Validated(ValidationApi.edit.class) InventoryReq req ){ public ApiRes<List<InventoryDto>> EqsBySearchType(@RequestBody @Validated(ValidationApi.edit.class) InventoryReq req ){
return ApiRes.success(inventoryService.EqsBySearchType(req)); return ApiRes.success(inventoryService.EqsBySearchType(req));
} }
//查询箱门 的装备汇总信息(传递cabinetBoxId)
//查询单警柜下的装备信息汇总(传递cabinetId)
//通过装备id获取该装备的详细信息
//根据装备id查询出装备的详细信息 //根据装备id查询出装备的详细信息
@PostMapping("/GetDetail") @PostMapping("/GetDetail")
@ApiOperation("根据装备id查询装备明细信息") @ApiOperation("根据装备id查询装备明细信息")
public ApiRes<InventoryDto> getInventoryDetail(@RequestBody InventoryReq req) { public ApiRes<InventoryDto> getInventoryDetail(@RequestBody @Validated(ValidationApi.detail.class) InventoryReq req) {
return ApiRes.success(inventoryService.getInventoryDetail(req)); return ApiRes.success(inventoryService.getInventoryDetail(req));
} }
...@@ -122,16 +109,18 @@ public class InventoryController { ...@@ -122,16 +109,18 @@ public class InventoryController {
public ApiRes<List<EqsBriefDto>> searchEqsByBoxId(@RequestBody @Validated(ValidationApi.detail.class) CabinetBoxReq req){ public ApiRes<List<EqsBriefDto>> searchEqsByBoxId(@RequestBody @Validated(ValidationApi.detail.class) CabinetBoxReq req){
return ApiRes.success(inventoryService.searchEqsByBoxId(req)); return ApiRes.success(inventoryService.searchEqsByBoxId(req));
} }
//查询单警柜下的汇总信息(通过单警柜id进行获取)
// @PostMapping("/EqsByCabinetId") //查询单警柜箱门下的汇总信息(传递cabinetBoxId)
// @ApiOperation("查询单警柜下的汇总信息") @PostMapping("/EqsByCabinetBoxId")
// public ApiRes<List<EqsBriefDto>> EqsByCabinetId(){ @ApiOperation("查询箱门下的汇总信息")
// return ApiRes.success(inventoryService.EqsByCabinetId()); public ApiRes<List<InventorySummary>> EqsByCabinetId(@RequestBody @Validated(ValidationApi.detail.class)CabinetBoxReq req){
// } return ApiRes.success(inventoryService.EqsByCabinetBoxId(req));
}
@PostMapping("/ShelfInventoryList") @PostMapping("/ShelfInventoryList")
@ApiOperation("根据货架id查询装备信息汇总") @ApiOperation("根据货架id查询装备信息汇总")
public ApiRes<ShelfInventoryDto> ShelfInventoryList(@RequestBody @Validated(ValidationApi.edit.class) ShelfReq req){ public ApiRes<List<InventorySummary>> ShelfInventoryList(@RequestBody @Validated(ValidationApi.edit.class) ShelfReq req){
return ApiRes.success(inventoryService.ShelfInventoryList(req)); return ApiRes.success(inventoryService.ShelfInventoryList(req));
} }
...@@ -143,9 +132,10 @@ public class InventoryController { ...@@ -143,9 +132,10 @@ public class InventoryController {
@PostMapping("/AreaInventoryList") @PostMapping("/AreaInventoryList")
@ApiOperation("根据区域id查询装备信息汇总") @ApiOperation("根据区域id查询装备信息汇总")
public ApiRes<AreaInventoryDto> AreaInventoryList(@RequestBody @Validated(ValidationApi.edit.class) WarehouseAreaReq req){ public ApiRes<List<InventorySummary>> AreaInventoryList(@RequestBody @Validated(ValidationApi.edit.class) WarehouseAreaReq req){
return ApiRes.success(inventoryService.AreaInventoryList(req)); return ApiRes.success(inventoryService.AreaInventoryList(req));
} }
} }
package com.junmp.jyzb.controller; package com.junmp.jyzb.controller;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.junmp.jyzb.api.bean.dto.LogSummaryDto;
import com.junmp.jyzb.api.bean.dto.OrderDetailDto;
import com.junmp.jyzb.api.bean.dto.OrderDto;
import com.junmp.jyzb.api.bean.dto.OrderMainDto;
import com.junmp.jyzb.api.bean.query.OrderDetailReq;
import com.junmp.jyzb.api.bean.query.OrderMainReq;
import com.junmp.jyzb.api.bean.query.ProductSkuReq; import com.junmp.jyzb.api.bean.query.ProductSkuReq;
import com.junmp.jyzb.api.bean.req.UpdateOrderReq; import com.junmp.jyzb.api.bean.req.UpdateOrderReq;
import com.junmp.jyzb.config.rabbitMQ.RabbitmqConfig;
import com.junmp.jyzb.rabbitmq.OrderMQSender;
import com.junmp.jyzb.service.LogSummaryService;
import com.junmp.jyzb.service.OrderLogService;
import com.junmp.jyzb.service.OrderService; import com.junmp.jyzb.service.OrderService;
import com.junmp.jyzb.utils.ResponseResult; import com.junmp.jyzb.utils.ResponseResult;
import com.junmp.v2.common.bean.request.ValidationApi; import com.junmp.v2.common.bean.request.ValidationApi;
...@@ -10,6 +20,7 @@ import com.junmp.v2.common.bean.response.ApiRes; ...@@ -10,6 +20,7 @@ import com.junmp.v2.common.bean.response.ApiRes;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
...@@ -17,6 +28,8 @@ import org.springframework.web.bind.annotation.RequestMapping; ...@@ -17,6 +28,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.Map; import java.util.Map;
@RestController @RestController
...@@ -26,11 +39,20 @@ import java.util.Map; ...@@ -26,11 +39,20 @@ import java.util.Map;
public class OrderController { public class OrderController {
@Resource @Resource
public OrderService orderService; public OrderService orderService;
@Resource
private RabbitTemplate rabbitTemplate;
@Resource
private LogSummaryService logSummaryService;
@Resource
private OrderLogService orderLogService;
//通过工作流进行操作处理的
@PostMapping("/AddOrder") @PostMapping("/AddOrder")
@ApiOperation("新增任务单") @ApiOperation("新增任务单")
public ApiRes<String> addOrder(@RequestBody UpdateOrderReq req) { public ApiRes<String> addOrder(@RequestBody UpdateOrderReq req) {
if (ObjectUtil.isNotEmpty(req.getProcessId())) //判断是否有工作流id,如果有则将状态进行修改
if (ObjectUtil.isEmpty(req.getProcessId()))
{ {
req.setExamineState("none"); req.setExamineState("none");
} }
...@@ -40,29 +62,62 @@ public class OrderController { ...@@ -40,29 +62,62 @@ public class OrderController {
} }
return ApiRes.success(orderService.AddOrder(req)); return ApiRes.success(orderService.AddOrder(req));
} }
//内部处理,任务单状态直接设置成finished 添加到数据并且直接推送到消息队列中去
@PostMapping("/AddFinishOrder") @PostMapping("/AddFinishOrder")
@ApiOperation("新增已完成的任务单") @ApiOperation("新增已完成的任务单")
public ApiRes<String> AddFinishOrder(@RequestBody @Validated(ValidationApi.add.class) UpdateOrderReq req) { public ApiRes<String> AddFinishOrder(@RequestBody UpdateOrderReq req) {
req.setExamineState("finished"); req.setExamineState("finished");
return ApiRes.success(orderService.AddOrder(req)); return ApiRes.success(orderService.AddOrder(req));
} }
@PostMapping("/ShowOrder") //将工作流添加到rabbitmq中去
@ApiOperation("查询任务列表") @PostMapping("/AddOrderRabbitMq")
public ResponseResult showOrder(@RequestBody Map<String,Object> msg) { @ApiOperation("将工作流添加到rabbitmq消息队列中去")
ResponseResult returnMsg = orderService.showOrder(msg); public ApiRes<Boolean> AddOrderRabbitMq(){
return null; List<OrderDto> order = orderService.getOrder();
List<String> orderId=new ArrayList<>();
for (OrderDto orderDto:order) {
rabbitTemplate.convertAndSend("OrderExchange","1",orderDto);
orderId.add(orderDto.getId());
}
//将未被上传的数据进行上传到rabbitmq中,同时添加到数据库,标记为已上传数据,比避免同意数据多次或者重复上传
boolean b = orderLogService.addOrder(orderId);
return ApiRes.success(b);
} }
//修改任务单只允许工作流id为空的时候(视为草稿可以进行修改)
@PostMapping("/UpdateOrder") @PostMapping("/UpdateOrder")
@ApiOperation("修改任务单") @ApiOperation("修改任务单")
public ApiRes<Boolean> updateOrder(@RequestBody @Validated(ValidationApi.add.class) UpdateOrderReq req) { public ApiRes<Boolean> updateOrder(@RequestBody @Validated(ValidationApi.edit.class) UpdateOrderReq req) {
return ApiRes.success(orderService.updateOrder(req)); return ApiRes.success(orderService.updateOrder(req));
} }
//根据任务单id查询对应的任务单信息
@PostMapping("/GetOrderMain")
@ApiOperation("查询任务单信息")
public ApiRes<OrderMainDto> getOrderMain(@RequestBody @Validated(ValidationApi.detail.class)OrderMainReq req) {
OrderMainDto orderMainDto = orderService.showOrderMain(req);
return ApiRes.success(orderMainDto);
}
//根据任务单id查询详细信息
@PostMapping("/GetOrderDetail") @PostMapping("/GetOrderDetail")
@ApiOperation("根据订单id查看业务明细") @ApiOperation("根据任务单id查看业务明细")
public ResponseResult getOrderDetail(@RequestBody Map<String, Object> msg){ public ApiRes<List<OrderDetailDto>> getOrderDetail(@RequestBody @Validated(ValidationApi.detail.class) OrderDetailReq req){
ResponseResult returnMsg = orderService.getOrderDetail(msg); List<OrderDetailDto> orderDetail = orderService.getOrderDetail(req);
return null; return ApiRes.success(orderDetail);
}
//出入日志上报
@PostMapping("/UploadLogs")
@ApiOperation("出入日志上传")
public void AddLogsRabbitMq(){
List<LogSummaryDto> logs = logSummaryService.getLogs();
for (LogSummaryDto logSummaryDto:logs) {
rabbitTemplate.convertAndSend("LogExchange","log",logSummaryDto);
}
} }
} }
...@@ -63,6 +63,11 @@ public class Inventory implements Serializable { ...@@ -63,6 +63,11 @@ public class Inventory implements Serializable {
private String shelfId; private String shelfId;
/** /**
* 区域id
*/
@TableField("area_id")
private String areaId;
/**
* epc * epc
*/ */
private String epc; private String epc;
......
...@@ -28,8 +28,8 @@ public class LogDetail implements Serializable { ...@@ -28,8 +28,8 @@ public class LogDetail implements Serializable {
* 物资id * 物资id
*/ */
@ApiModelProperty(value = "物资id") @ApiModelProperty(value = "物资id")
@TableField("inverntory_id") @TableField("inventory_id")
private String inverntoryId; private String inventoryId;
/** /**
* 出入库汇总ID * 出入库汇总ID
...@@ -43,7 +43,7 @@ public class LogDetail implements Serializable { ...@@ -43,7 +43,7 @@ public class LogDetail implements Serializable {
*/ */
@ApiModelProperty(value = "单据ID") @ApiModelProperty(value = "单据ID")
@TableField("order_main_id") @TableField("order_main_id")
private String orderId; private String orderMainId;
/** /**
* EPC信息 * EPC信息
...@@ -86,18 +86,6 @@ public class LogDetail implements Serializable { ...@@ -86,18 +86,6 @@ public class LogDetail implements Serializable {
@TableField("error_state") @TableField("error_state")
private Integer errorState; private Integer errorState;
/**
* 备注信息
*/
@ApiModelProperty(value = "备注信息")
private String note;
/**
* 业务类型
*/
@ApiModelProperty(value = "业务类型")
@TableField("bussiness_type")
private String bussinessType;
/** /**
* 创建时间 * 创建时间
......
...@@ -27,14 +27,14 @@ public class LogSummary implements Serializable { ...@@ -27,14 +27,14 @@ public class LogSummary implements Serializable {
* 组织机构ID * 组织机构ID
*/ */
@ApiModelProperty(value = "组织机构ID") @ApiModelProperty(value = "组织机构ID")
@TableField("error_state") @TableField("org_id")
private String orgId; private String orgId;
/** /**
* 组织机构名称 * 组织机构名称
*/ */
@ApiModelProperty(value = "组织机构名称") @ApiModelProperty(value = "组织机构名称")
@TableField("error_state") @TableField("org_name")
private String orgName; private String orgName;
/** /**
......
...@@ -8,7 +8,6 @@ import lombok.Data; ...@@ -8,7 +8,6 @@ import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
@Data @Data
...@@ -38,7 +37,7 @@ import java.util.Date; ...@@ -38,7 +37,7 @@ import java.util.Date;
private String equipmentSizeName; private String equipmentSizeName;
@TableField("equipment_supplier") @TableField("equipment_supplier")
private Long equipment_supplier; private Long equipmentSupplier;
@TableField("equipment_supplier_name") @TableField("equipment_supplier_name")
private String equipmentSupplierName; private String equipmentSupplierName;
......
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 java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
*
* @TableName bussiness_order_log
*/
@TableName(value ="bussiness_order_log")
@Data
public class OrderLog implements Serializable {
/**
* 主键
*/
@TableId
private Long id;
/**
* 单据id
*/
@TableField("order_id")
private String orderId;
/**
* 操作记录(upload上传消息)
*/
@TableField("history_msg")
private String historyMsg;
/**
* 创建时间
*/
@TableField(value = "create_time",fill = FieldFill.INSERT)
private Date createTime;
/**
* 更新时间
*/
@TableField(value = "update_time",fill =FieldFill.UPDATE)
private Date updateTime;
/**
* 创建人员
*/
@TableField("create_user")
private String createUser;
/**
* 修改人员
*/
@TableField("update_user")
private String updateUser;
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
package com.junmp.jyzb.entity; package com.junmp.jyzb.entity;
import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
...@@ -20,7 +18,7 @@ import java.util.Date; ...@@ -20,7 +18,7 @@ import java.util.Date;
@NoArgsConstructor @NoArgsConstructor
@TableName("bussiness_order_main") @TableName("bussiness_order_main")
public class OrderMain implements Serializable { public class OrderMain implements Serializable {
@TableField("id") @TableId(value = "id",type = IdType.ASSIGN_UUID )
private String id; private String id;
@TableField("order_type") @TableField("order_type")
...@@ -28,9 +26,6 @@ public class OrderMain implements Serializable { ...@@ -28,9 +26,6 @@ public class OrderMain implements Serializable {
@TableField("process_id") @TableField("process_id")
private String processId; private String processId;
@TableField("examine_state")
private String examineState;
@TableField("bussiness_type") @TableField("bussiness_type")
private String bussinessType; private String bussinessType;
...@@ -62,6 +57,9 @@ public class OrderMain implements Serializable { ...@@ -62,6 +57,9 @@ public class OrderMain implements Serializable {
@TableField("end_org_user_name") @TableField("end_org_user_name")
private String endOrgUserName; private String endOrgUserName;
@TableField("examine_state")
private String examineState;
@TableField("price") @TableField("price")
private BigDecimal price; private BigDecimal price;
...@@ -83,10 +81,6 @@ public class OrderMain implements Serializable { ...@@ -83,10 +81,6 @@ public class OrderMain implements Serializable {
@TableField("inv_list") @TableField("inv_list")
private String invList; private String invList;
@TableField("form_item")
private String formItem;
@TableField("order_detail")
private Text orderDetail;
/** /**
* 创建时间 * 创建时间
*/ */
......
package com.junmp.jyzb.mapper; package com.junmp.jyzb.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.junmp.jyzb.api.bean.dto.EqsBriefDto;
import com.junmp.jyzb.api.bean.dto.InventoryDto; import com.junmp.jyzb.api.bean.dto.InventoryDto;
import com.junmp.jyzb.api.bean.query.InventoryReq; import com.junmp.jyzb.api.bean.query.InventoryReq;
import com.junmp.jyzb.entity.Inventory; import com.junmp.jyzb.entity.Inventory;
import com.junmp.jyzb.entity.InventorySummary;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
...@@ -12,19 +14,28 @@ import java.util.Map; ...@@ -12,19 +14,28 @@ import java.util.Map;
@Mapper @Mapper
public interface InventoryMapper extends BaseMapper<Inventory> { public interface InventoryMapper extends BaseMapper<Inventory> {
Map<String, Object> getSum(String queryType, String typeId);
Map<String, Object> getOrgNum(String typeId);
List<Map<String, Object>> getLocationInventory(@Param("queryType")String queryType, @Param("idMsg")String idMsg); List<Map<String, Object>> getLocationInventory(@Param("queryType")String queryType, @Param("idMsg")String idMsg);
//将表中数据全部删除(base_inventory_summary)
boolean deleteAllMsg(); boolean deleteAllMsg();
//根据单警柜统计装备信息
boolean SetCabinetInventory(); boolean SetCabinetInventory();
//根据仓库统计装备信息
boolean SetWarehouseInventory(); boolean SetWarehouseInventory();
List<InventoryDto> EqsBySearchType(InventoryReq req); List<InventoryDto> EqsBySearchType(InventoryReq req);
//根据货架id查询汇总信息
List<InventorySummary> getSumByShelf(String shelfId);
//根据区域id查询汇总信息
List<InventorySummary> getSumByArea(String id);
//通过单警柜箱门id获取箱门下的装备汇总信息
List<InventorySummary> getSumByCabinetBox(String id);
} }
\ No newline at end of file
package com.junmp.jyzb.mapper; 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 org.apache.ibatis.annotations.Mapper;
@Mapper @Mapper
public interface LogDetailMapper { public interface LogDetailMapper extends BaseMapper<LogDetail> {
} }
\ No newline at end of file
package com.junmp.jyzb.mapper; package com.junmp.jyzb.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.junmp.jyzb.entity.LogSummary;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
@Mapper @Mapper
public interface LogSummaryMapper { public interface LogSummaryMapper extends BaseMapper<LogSummary> {
} }
\ No newline at end of file
package com.junmp.jyzb.mapper;
import com.junmp.jyzb.entity.OrderLog;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @author lxh专属坐骑
* @description 针对表【bussiness_order_log】的数据库操作Mapper
* @createDate 2023-08-18 16:49:39
* @Entity generator.domain.BussinessOrderLog
*/
public interface OrderLogMapper extends BaseMapper<OrderLog> {
}
...@@ -12,9 +12,9 @@ import java.util.Map; ...@@ -12,9 +12,9 @@ import java.util.Map;
public interface OrderMainMapper extends BaseMapper<OrderMain> { public interface OrderMainMapper extends BaseMapper<OrderMain> {
Long addOrder(OrderMain order); Long addOrder(OrderMain order);
List<Map<String, Object>> showOrder(String orgId);
Map<String, Object> getOrderDetail(String id);
void updateOrder(OrderMain order); void updateOrder(OrderMain order);
//生成没有被上传过的任务单
List<OrderMain> getList();
} }
\ No newline at end of file
package com.junmp.jyzb.rabbitmq;
import com.junmp.jyzb.api.bean.dto.OrderDto;
import com.junmp.jyzb.service.OrderService;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.List;
//将工作单上传到rabbitmq中
@Component
public class OrderMQSender {
@Resource
private RabbitTemplate rabbitTemplate;
@Resource
private OrderService orderService;
public void send(){
//将审核状态为finished的任务单放入rabbitmq中
List<OrderDto> order = orderService.getOrder();
rabbitTemplate.convertAndSend("OrderExchange","Test1Routing",order);
}
}
...@@ -6,6 +6,7 @@ import com.junmp.jyzb.api.bean.query.*; ...@@ -6,6 +6,7 @@ import com.junmp.jyzb.api.bean.query.*;
import com.junmp.jyzb.api.bean.req.EquipmentBindReq; import com.junmp.jyzb.api.bean.req.EquipmentBindReq;
import com.junmp.jyzb.entity.Inventory; import com.junmp.jyzb.entity.Inventory;
import com.junmp.jyzb.entity.InventorySummary;
import com.junmp.jyzb.utils.ResponseResult; import com.junmp.jyzb.utils.ResponseResult;
import java.util.List; import java.util.List;
...@@ -14,13 +15,11 @@ import java.util.Map; ...@@ -14,13 +15,11 @@ import java.util.Map;
public interface InventoryService extends IService<Inventory> { public interface InventoryService extends IService<Inventory> {
InventoryDto getInventoryDetail(InventoryReq msg); InventoryDto getInventoryDetail(InventoryReq msg);
ResponseResult getEquipmentInfo(Map<String, Object> msg);
//计算更新库存汇总表信息 //计算更新库存汇总表信息
boolean setInventoryMsg(); boolean setInventoryMsg();
List<InventoryDto> getInventoryByOrgId(InventoryReq req);
boolean UpdateWarehouseInsNum(WarehouseReq req); boolean UpdateWarehouseInsNum(WarehouseReq req);
...@@ -29,7 +28,7 @@ public interface InventoryService extends IService<Inventory> { ...@@ -29,7 +28,7 @@ public interface InventoryService extends IService<Inventory> {
boolean InventoryBind(EquipmentBindReq req); boolean InventoryBind(EquipmentBindReq req);
List<EqsBriefDto> GetInvInfoByEpc(InventoryReq req); List<InventoryDto> GetInvInfoByEpc(InventoryReq req);
List<InventoryDto> EqsBySearchType(InventoryReq req); List<InventoryDto> EqsBySearchType(InventoryReq req);
...@@ -39,14 +38,20 @@ public interface InventoryService extends IService<Inventory> { ...@@ -39,14 +38,20 @@ public interface InventoryService extends IService<Inventory> {
//通过货架id查询装备信息汇总 //通过货架id查询装备信息汇总
ShelfInventoryDto ShelfInventoryList(ShelfReq req); List<InventorySummary> ShelfInventoryList(ShelfReq req);
//通过货架id查询装备简要信息 //通过货架id查询装备简要信息
List<EqsBriefDto> ShelfInventoryDetail(ShelfReq req); List<EqsBriefDto> ShelfInventoryDetail(ShelfReq req);
//通过区域id查询装备信息汇总 //通过区域id查询装备信息汇总
AreaInventoryDto AreaInventoryList(WarehouseAreaReq req); List<InventorySummary> AreaInventoryList(WarehouseAreaReq req);
//通过装备id判断装备是否存在
Inventory InventoryExist(String id);
//通过单警柜箱门id获取箱门下的装备汇总信息
List<InventorySummary> EqsByCabinetBoxId(CabinetBoxReq req);
} }
package com.junmp.jyzb.service; package com.junmp.jyzb.service;
public interface LogDetailService{ import com.baomidou.mybatisplus.extension.service.IService;
import com.junmp.jyzb.entity.LogDetail;
public interface LogDetailService extends IService<LogDetail> {
} }
package com.junmp.jyzb.service; package com.junmp.jyzb.service;
public interface LogSummaryService{ import com.baomidou.mybatisplus.extension.service.IService;
import com.junmp.jyzb.api.bean.dto.LogSummaryDto;
import com.junmp.jyzb.entity.LogSummary;
import java.util.List;
public interface LogSummaryService extends IService<LogSummary> {
//上传操作日志
List<LogSummaryDto> getLogs();
} }
package com.junmp.jyzb.service;
import com.junmp.jyzb.entity.OrderLog;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* @author lxh专属坐骑
* @description 针对表【bussiness_order_log】的数据库操作Service
* @createDate 2023-08-18 16:49:39
*/
public interface OrderLogService extends IService<OrderLog> {
boolean addOrder(List<String> orderId);
}
package com.junmp.jyzb.service; package com.junmp.jyzb.service;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.junmp.jyzb.api.bean.dto.OrderDetailDto;
import com.junmp.jyzb.api.bean.dto.OrderDto;
import com.junmp.jyzb.api.bean.dto.OrderMainDto;
import com.junmp.jyzb.api.bean.query.OrderDetailReq;
import com.junmp.jyzb.api.bean.query.OrderMainReq;
import com.junmp.jyzb.api.bean.req.UpdateOrderReq; import com.junmp.jyzb.api.bean.req.UpdateOrderReq;
import com.junmp.jyzb.entity.OrderDetail;
import com.junmp.jyzb.entity.OrderMain; import com.junmp.jyzb.entity.OrderMain;
import com.junmp.jyzb.utils.ResponseResult; import com.junmp.jyzb.utils.ResponseResult;
import java.util.List;
import java.util.Map; import java.util.Map;
public interface OrderService extends IService<OrderMain> { public interface OrderService extends IService<OrderMain> {
String AddOrder(UpdateOrderReq req); String AddOrder(UpdateOrderReq req);
ResponseResult showOrder(Map<String, Object> msg);
Boolean updateOrder(UpdateOrderReq req); Boolean updateOrder(UpdateOrderReq req);
ResponseResult getOrderDetail(Map<String, Object> msg);
//通过任务单id获取任务单信息orderMain
OrderMainDto showOrderMain(OrderMainReq req);
//判断任务单是否存在
OrderMain orderMainExist(String id);
//根据任务单id查询详细信息
List<OrderDetailDto> getOrderDetail(OrderDetailReq req);
//获取审核状态为finished的任务单,将其推送到rabbitmq中
List<OrderDto> getOrder();
} }
...@@ -83,8 +83,7 @@ public class CabinetBoxServiceImpl extends ServiceImpl<CabinetBoxMapper, Cabinet ...@@ -83,8 +83,7 @@ public class CabinetBoxServiceImpl extends ServiceImpl<CabinetBoxMapper, Cabinet
//判断箱子信息是否存在 //判断箱子信息是否存在
@Override @Override
public CabinetBox CabinetBoxExist(String id) { public CabinetBox CabinetBoxExist(String id) {
CabinetBox cabinetBox = getOne(new LambdaQueryWrapper<CabinetBox>() CabinetBox cabinetBox = getById(id);
.eq(CabinetBox::getId,id));
if (ObjectUtil.isNull(cabinetBox)) { if (ObjectUtil.isNull(cabinetBox)) {
throw new ServiceException(CabinetBoxExceptionEnum.CABINETBOX_ISNOT_EXISTS); throw new ServiceException(CabinetBoxExceptionEnum.CABINETBOX_ISNOT_EXISTS);
} }
......
...@@ -91,8 +91,6 @@ public class CabinetServiceImpl extends ServiceImpl<CabinetMapper, Cabinet> impl ...@@ -91,8 +91,6 @@ public class CabinetServiceImpl extends ServiceImpl<CabinetMapper, Cabinet> impl
//添加单警柜 //添加单警柜
save(cabinet); save(cabinet);
List<CabinetBox> objects = new ArrayList<>(); List<CabinetBox> objects = new ArrayList<>();
System.out.println("ObjectUtil.isNotNull(req.getNum()) = " + ObjectUtil.isNotNull(req.getNum()));
System.out.println("ObjectUtil.isNotEmpty(req.getNum()) = " + ObjectUtil.isNotEmpty(req.getNum()));
//判断num值是否传递,如果没有不做操作 //判断num值是否传递,如果没有不做操作
if (ObjectUtil.isNotNull(req.getNum()) && req.getNum().intValue()>=1){ if (ObjectUtil.isNotNull(req.getNum()) && req.getNum().intValue()>=1){
for (int i = 1; i <= req.getNum(); i++) { for (int i = 1; i <= req.getNum(); i++) {
...@@ -326,7 +324,7 @@ public class CabinetServiceImpl extends ServiceImpl<CabinetMapper, Cabinet> impl ...@@ -326,7 +324,7 @@ public class CabinetServiceImpl extends ServiceImpl<CabinetMapper, Cabinet> impl
//根据单警柜id判断单警柜是否存在 //根据单警柜id判断单警柜是否存在
@Override @Override
public Cabinet CabinetExist(String id) { public Cabinet CabinetExist(String id) {
Cabinet one = getOne(new LambdaQueryWrapper<Cabinet>().eq(Cabinet::getId, id)); Cabinet one = getById(id);
if (ObjectUtil.isNull(one)){ if (ObjectUtil.isNull(one)){
throw new ServiceException(CabinetExceptionEnum.CABINET_ISNOT_EXISTS); throw new ServiceException(CabinetExceptionEnum.CABINET_ISNOT_EXISTS);
} }
......
...@@ -30,6 +30,7 @@ import java.math.BigDecimal; ...@@ -30,6 +30,7 @@ import java.math.BigDecimal;
import java.util.*; import java.util.*;
import static com.junmp.jyzb.utils.CheckBlank.checkNotBlank; import static com.junmp.jyzb.utils.CheckBlank.checkNotBlank;
import static org.checkerframework.checker.units.qual.Prefix.one;
@Service @Service
@Slf4j @Slf4j
...@@ -67,138 +68,19 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory ...@@ -67,138 +68,19 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
@Override @Override
public InventoryDto getInventoryDetail(InventoryReq req) { public InventoryDto getInventoryDetail(InventoryReq req) {
Inventory inventory = InventoryExist(req.getId());
Inventory invMap=this.getById(req.getId()); InventoryDto bean = BeanUtil.toBean(inventory, InventoryDto.class);
if (invMap == null) {
return null;
}
InventoryDto bean = BeanUtil.toBean(invMap, InventoryDto.class);
// 查询与库存表关联的其他数据 // 查询与库存表关联的其他数据
String orgName= PubOrgService.getById(invMap.getOrgId()).getOrgName(); String orgName= PubOrgService.getById(inventory.getOrgId()).getOrgName();
String TypeName = equipmentTypeService.getById(invMap.getTypeId()).getName(); String TypeName = equipmentTypeService.getById(inventory.getTypeId()).getName();
String SizeName = equipmentSizeService.getById(invMap.getSizeId()).getName(); String SizeName = equipmentSizeService.getById(inventory.getSizeId()).getName();
// 创建并填充对象 // 创建并填充对象
bean.setSizeName(SizeName); bean.setSizeName(SizeName);
bean.setTypeName(TypeName); bean.setTypeName(TypeName);
bean.setOrgName(orgName); bean.setOrgName(orgName);
// 填充其他关联信息的字段和对象引用
return bean; return bean;
} }
@Override
public ResponseResult getEquipmentInfo(Map<String, Object> inMsg) {
//参数校验
try {
checkNotBlank(inMsg.get("queryType"), "queryType不能为空");
checkNotBlank(inMsg.get("typeId"), "typeId不能为空");
} catch (IllegalArgumentException e) {
return new ResponseResult(HttpStatus.ERROR, ReturnMsg.ERROR,e.getMessage());
}
//解析json中的信息
String queryType = inMsg.get("queryType").toString();
String idMsg = inMsg.get("typeId").toString();
//根据传入的queryType来辨别要查询什么信息
if (queryType.equals("org") || queryType.equals("warehouse") || queryType.equals("cabinet")){
Map<String,Object> returnMsg = getLocationEquipmentInfo(queryType,idMsg);
return new ResponseResult(HttpStatus.SUCCESS, ReturnMsg.PASS,returnMsg);
}else {
return new ResponseResult(HttpStatus.ERROR, ReturnMsg.ERROR,"输入的queryType信息有误");
}
}
private Map<String, Object> getLocationEquipmentInfo(String queryType, String idMsg) {
List<Map<String, Object>> allMsg = inventoryMapper.getLocationInventory(queryType,idMsg);
Map<String, Object> resultMap = new HashMap<>();
for (Map<String, Object> msg : allMsg) {
String locationId = msg.get("locationId").toString();
String locationName = msg.get("locationName").toString();
String typeId = msg.get("typeId").toString();
String typeName = msg.get("typeName").toString();
String sizeId = msg.get("sizeId").toString();
String sizeName = msg.get("sizeName").toString();
int number = (int) msg.get("number");
BigDecimal priceBigDecimal = (BigDecimal) msg.get("price");
float price = priceBigDecimal.floatValue();
//检查resultMap中是否存在orgId
if (resultMap.containsKey(locationId)) {
// 获取现有组织级数�
Map<String, Object> orgData = (Map<String, Object>) resultMap.get(locationId);
List<Map<String, Object>> orgTypeList = (List<Map<String, Object>>) orgData.get("typeList");
// 检查组织类型列表中是否存在typeId
boolean typeExist = false;
for (Map<String, Object> typeData : orgTypeList) {
if (typeId.equals(typeData.get("typeId"))) {
// 获取现有的类型级别数�
List<Map<String, Object>> sizeList = (List<Map<String, Object>>) typeData.get("sizeList");
sizeList.add(createSizeData(sizeId,sizeName, number,price)); //向sizeList中记录number的信�
int typeNumber = (int) typeData.get("typeNum");
float typePrice = (float) typeData.get("typeTotalPrice");
typeData.put("typeNum", typeNumber + number); //计算装备数量
typeData.put("typeTotalPrice", typePrice + price);
typeExist = true;
break;
}
}
// 如果 orgTypeList 中不包含 typeId,则创建新的类型级别数据
if (!typeExist) {
Map<String, Object> typeData = new HashMap<>();
typeData.put("typeId", typeId);
typeData.put("typeName", typeName);
typeData.put("typeNum", number);
typeData.put("typeTotalPrice", price);
List<Map<String, Object>> sizeList = new ArrayList<>();
sizeList.add(createSizeData(sizeId,sizeName, number,price));
typeData.put("sizeList", sizeList);
orgTypeList.add(typeData);
}
// 更新组织级别数据
int orgNumber = (int) orgData.get("locationNum");
float orgPrice = (float) orgData.get("totalPrice");
orgData.put("locationNum", orgNumber + number);
orgData.put("totalPrice", orgPrice + price);
} else {
// 创建新的组织级别数据
Map<String, Object> orgData = new HashMap<>();
orgData.put("locationType", queryType);
orgData.put("locationId", locationId);
orgData.put("locationName", locationName);
orgData.put("locationNum", number);
orgData.put("totalPrice", price);
List<Map<String, Object>> orgTypeList = new ArrayList<>();
Map<String, Object> typeData = new HashMap<>();
typeData.put("typeId", typeId);
typeData.put("typeName", typeName);
typeData.put("typeNum", number);
typeData.put("typeTotalPrice", price);
List<Map<String, Object>> sizeList = new ArrayList<>();
sizeList.add(createSizeData(sizeId,sizeName, number,price));
typeData.put("sizeList", sizeList);
orgTypeList.add(typeData);
orgData.put("typeList", orgTypeList);
resultMap.put(locationId, orgData);
}
}
Map<String,Object> returnMsg = (Map<String, Object>) resultMap.get(idMsg);
return returnMsg;
}
private static Map<String, Object> createSizeData(String sizeId,String sizeName, int number,float price) {
Map<String, Object> sizeData = new HashMap<>();
sizeData.put("sizeId", sizeId);
sizeData.put("sizeName", sizeName);
sizeData.put("sizeNum", number);
sizeData.put("sizeTotalPrice", price);
return sizeData;
}
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
...@@ -207,7 +89,7 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory ...@@ -207,7 +89,7 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
inventoryMapper.deleteAllMsg(); inventoryMapper.deleteAllMsg();
//放入单警柜信息汇总 //放入单警柜信息汇总
boolean b = inventoryMapper.SetCabinetInventory(); boolean b = inventoryMapper.SetCabinetInventory();
//放入仓库信息汇总 //放入仓库区域信息汇总
boolean b1 = inventoryMapper.SetWarehouseInventory(); boolean b1 = inventoryMapper.SetWarehouseInventory();
if (b && b1){ if (b && b1){
return true; return true;
...@@ -218,28 +100,6 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory ...@@ -218,28 +100,6 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
@Override
public List<InventoryDto> getInventoryByOrgId(InventoryReq req) {
//判断组织机构是否存在
pubOrgService.PubOrgExist(req.getOrgId());
List<InventoryDto> eqsBriefDtoList =new ArrayList<>();
List<Inventory> list = list(new LambdaQueryWrapper<Inventory>()
.eq(Inventory::getOrgId, req.getOrgId()));
for (Inventory inventory:list) {
InventoryDto inventoryDto = new InventoryDto();
BeanPlusUtil.copyProperties(inventory, inventoryDto);
//设置型号名称,类别名称,供应商名称
String sizeName = equipmentSizeService.getById(inventory.getSizeId()).getName();
String typeName = equipmentTypeService.getById(inventory.getTypeId()).getName();
String supplierName = supplierService.getById(inventory.getSupplierId()).getName();
inventoryDto.setSizeName(sizeName);
inventoryDto.setTypeName(typeName);
inventoryDto.setSupplierName(supplierName);
eqsBriefDtoList.add(inventoryDto);
}
return eqsBriefDtoList;
}
//设置仓库库存数量(总数,在库数,出库数,价格) //设置仓库库存数量(总数,在库数,出库数,价格)
@Override @Override
public boolean UpdateWarehouseInsNum(WarehouseReq req) { public boolean UpdateWarehouseInsNum(WarehouseReq req) {
...@@ -261,24 +121,19 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory ...@@ -261,24 +121,19 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public boolean InventoryBind(EquipmentBindReq req) { public boolean InventoryBind(EquipmentBindReq req) {
//判断箱门是否存在 //判断箱门是否存在
CabinetBox one = cabinetBoxService.getOne(new LambdaQueryWrapper<CabinetBox>() CabinetBox cabinetBox = cabinetBoxService.CabinetBoxExist(req.getCabinetBoxId());
.eq(CabinetBox::getCabinetId, req.getCabinetId()) if (Objects.isNull(cabinetBox)){
.eq(CabinetBox::getId, req.getCabinetBoxId()));
if (Objects.isNull(one)){
throw new ServiceException(CabinetBoxExceptionEnum.CABINETBOX_ISNOT_EXISTS); throw new ServiceException(CabinetBoxExceptionEnum.CABINETBOX_ISNOT_EXISTS);
} }
//判断组织机构是否存在 List<String> equipmentList = req.getEquipmentList();
pubOrgService.PubOrgExist(req.getOrgId());
List<InventoryReq> equipmentList = req.getEquipmentList();
if (equipmentList.size()==0){ if (equipmentList.size()==0){
throw new ServiceException(CabinetExceptionEnum.PARAMETER_ERROR); throw new ServiceException(CabinetExceptionEnum.PARAMETER_ERROR);
} }
List<Inventory> inventoryList=new ArrayList<>(); List<Inventory> inventoryList=new ArrayList<>();
for (InventoryReq inventoryReq: equipmentList) { for (String id: equipmentList) {
Inventory inventory = new Inventory(); Inventory inventory = getById(id);
BeanPlusUtil.copyProperties(inventoryReq,inventory); //locationId:根据单警柜的不同存放的内容不同,单警柜存放箱门id,仓库存放仓库id
//将装备的货架id当成成箱门id(可以通过location_type来区别是单警柜的箱门id还是仓库的货架id) inventory.setLocationId(req.getCabinetBoxId());
inventory.setShelfId(req.getCabinetBoxId());
inventoryList.add(inventory); inventoryList.add(inventory);
} }
return updateBatchById(inventoryList); return updateBatchById(inventoryList);
...@@ -286,8 +141,8 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory ...@@ -286,8 +141,8 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
//根据Epc查询装备信息(简要信息) //根据Epc查询装备信息(简要信息)
@Override @Override
public List<EqsBriefDto> GetInvInfoByEpc(InventoryReq req) { public List<InventoryDto> GetInvInfoByEpc(InventoryReq req) {
List<EqsBriefDto> eqsBriefDtoList =new ArrayList<>(); List<InventoryDto> inventoryDtoList=new ArrayList<>();
//判断传入的是否为空 //判断传入的是否为空
List<String> epcList = req.getEpcList(); List<String> epcList = req.getEpcList();
if (epcList.size()==0){ if (epcList.size()==0){
...@@ -301,18 +156,18 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory ...@@ -301,18 +156,18 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
if (Objects.isNull(inventory)){ if (Objects.isNull(inventory)){
throw new ServiceException(InventoryExceptionEnum.INVENTORY_NOT_EXIST); throw new ServiceException(InventoryExceptionEnum.INVENTORY_NOT_EXIST);
} }
EqsBriefDto eqsBriefDto = new EqsBriefDto(); InventoryDto inventoryDto = new InventoryDto();
BeanPlusUtil.copyProperties(inventory, eqsBriefDto); BeanPlusUtil.copyProperties(inventory, inventoryDto);
//设置型号名称,类别名称,供应商名称 //设置型号名称,类别名称,供应商名称
String sizeName = equipmentSizeService.getById(inventory.getSizeId()).getName(); String sizeName = equipmentSizeService.getById(inventory.getSizeId()).getName();
String typeName = equipmentTypeService.getById(inventory.getTypeId()).getName(); String typeName = equipmentTypeService.getById(inventory.getTypeId()).getName();
String supplierName = supplierService.getById(inventory.getSupplierId()).getName(); String supplierName = supplierService.getById(inventory.getSupplierId()).getName();
eqsBriefDto.setSizeName(sizeName); inventoryDto.setSizeName(sizeName);
eqsBriefDto.setTypeName(typeName); inventoryDto.setTypeName(typeName);
eqsBriefDto.setSupplierName(supplierName); inventoryDto.setSupplierName(supplierName);
eqsBriefDtoList.add(eqsBriefDto); inventoryDtoList.add(inventoryDto);
} }
return eqsBriefDtoList; return inventoryDtoList;
} }
@Override @Override
...@@ -349,57 +204,29 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory ...@@ -349,57 +204,29 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
Inventory next = iterator.next(); Inventory next = iterator.next();
EqsBriefDto eqsBriefDto = new EqsBriefDto(); EqsBriefDto eqsBriefDto = new EqsBriefDto();
BeanPlusUtil.copyProperties(next,eqsBriefDto); BeanPlusUtil.copyProperties(next,eqsBriefDto);
//设置typeName
eqsBriefDto.setTypeName(equipmentSizeService.getOne(new LambdaQueryWrapper<EquipmentSize>()
.eq(EquipmentSize::getId,eqsBriefDto.getSizeId())).getName());
//设置sizeName
eqsBriefDto.setSizeName(equipmentTypeService.getOne(new LambdaQueryWrapper<EquipmentType>()
.eq(EquipmentType::getId,eqsBriefDto.getTypeId())).getName());
//设置supplierName
eqsBriefDto.setSupplierName(supplierService.getOne(new LambdaQueryWrapper<Supplier>()
.eq(Supplier::getId,eqsBriefDto.getSupplierId())).getName());
eqsBriefDtoList.add(eqsBriefDto); eqsBriefDtoList.add(eqsBriefDto);
} }
return eqsBriefDtoList; return eqsBriefDtoList;
} }
/** //根据货架id获取装备列表汇总信息
* @Author: Zhaojw
* @Description: 生成lambda表达式
* @DateTime: 2023/7/20 13:08
* @Params:
* @Return
*/
private LambdaQueryWrapper<Inventory> createWrapper(InventoryReq req) {
LambdaQueryWrapper<Inventory> wrapper = new LambdaQueryWrapper<>();
if (ObjectUtil.isEmpty(req)) {
return wrapper;
}
//根据库存ID查询
wrapper.eq(ObjectUtil.isNotEmpty(req.getId()), Inventory::getId, req.getId());
//根据epc模糊查询
wrapper.like(ObjectUtil.isNotEmpty(req.getEpc()), Inventory::getEpc, req.getEpc());
//根据位置
wrapper.eq(ObjectUtil.isNotEmpty(req.getLocationId()), Inventory::getLocationId, req.getLocationId());
wrapper.orderByDesc(Inventory::getUpdateTime);
return wrapper;
}
@Override @Override
public ShelfInventoryDto ShelfInventoryList(ShelfReq req) { public List<InventorySummary> ShelfInventoryList(ShelfReq req) {
//判断货架是否存在 //判断货架是否存在
Shelf shelf = shelfService.ShelfExist(req.getShelfId()); Shelf shelf = shelfService.ShelfExist(req.getShelfId());
Warehouse warehouse = warehouseService.WarehoustExist(shelf.getWarehouseId()); warehouseService.WarehoustExist(shelf.getWarehouseId());
ShelfInventoryDto shelfInventoryDto = new ShelfInventoryDto();
shelfInventoryDto.setWarehouseId(warehouse.getId());
shelfInventoryDto.setWarehouseName(warehouse.getName());
shelfInventoryDto.setWarehouseLocation(warehouse.getLocation());
shelfInventoryDto.setShelfAreaName(shelf.getShelfName());
List<InventorySumDto> inventorySumDtoList=new ArrayList<>();
//通过货架id获取装备列表汇总 //通过货架id获取装备列表汇总
// List<InventorySummary> list = inventorySummaryService.list(new LambdaQueryWrapper<InventorySummary>() return inventoryMapper.getSumByShelf(req.getShelfId());
// .eq(InventorySummary::getLocationShelfId,req.getShelfId()));
// if (list.size()==0){
// return null;
// }
// for (InventorySummary inventorySummary:list) {
// InventorySumDto inventorySumDto = new InventorySumDto();
// BeanPlusUtil.copyProperties(inventorySummary,inventorySumDto);
// inventorySumDtoList.add(inventorySumDto);
// }
shelfInventoryDto.setList(inventorySumDtoList);
return shelfInventoryDto;
} }
//通过货架id查询装备简要信息 //通过货架id查询装备简要信息
...@@ -410,7 +237,21 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory ...@@ -410,7 +237,21 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
warehouseService.WarehoustExist(shelf.getWarehouseId()); warehouseService.WarehoustExist(shelf.getWarehouseId());
List<Inventory> list = list(new LambdaQueryWrapper<Inventory>() List<Inventory> list = list(new LambdaQueryWrapper<Inventory>()
.eq(Inventory::getShelfId, req.getShelfId())); .eq(Inventory::getShelfId, req.getShelfId()));
List<EqsBriefDto> eqsBriefDtoList = JSON.parseArray(JSON.toJSONString(list), EqsBriefDto.class); List<EqsBriefDto> eqsBriefDtoList=new ArrayList<>();
for (Inventory inventory:list) {
EqsBriefDto eqsBriefDto = new EqsBriefDto();
BeanPlusUtil.copyProperties(inventory,eqsBriefDto);
//设置typeName
eqsBriefDto.setTypeName(equipmentSizeService.getOne(new LambdaQueryWrapper<EquipmentSize>()
.eq(EquipmentSize::getId,eqsBriefDto.getSizeId())).getName());
//设置sizeName
eqsBriefDto.setSizeName(equipmentTypeService.getOne(new LambdaQueryWrapper<EquipmentType>()
.eq(EquipmentType::getId,eqsBriefDto.getTypeId())).getName());
//设置supplierName
eqsBriefDto.setSupplierName(supplierService.getOne(new LambdaQueryWrapper<Supplier>()
.eq(Supplier::getId,eqsBriefDto.getSupplierId())).getName());
eqsBriefDtoList.add(eqsBriefDto);
}
return eqsBriefDtoList; return eqsBriefDtoList;
} }
...@@ -420,29 +261,31 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory ...@@ -420,29 +261,31 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
* @return * @return
*/ */
@Override @Override
public AreaInventoryDto AreaInventoryList(WarehouseAreaReq req) { public List<InventorySummary> AreaInventoryList(WarehouseAreaReq req) {
//判断区域是否存在 //判断区域是否存在
WarehouseArea warehouseArea = warehouseAreaService.WarehouseAreaExist(req.getId()); WarehouseArea warehouseArea = warehouseAreaService.WarehouseAreaExist(req.getId());
Warehouse warehouse = warehouseService.WarehoustExist(warehouseArea.getWarehouseId()); warehouseService.WarehoustExist(warehouseArea.getWarehouseId());
AreaInventoryDto areaInventoryDto = new AreaInventoryDto();
areaInventoryDto.setWarehouseId(warehouse.getId());
areaInventoryDto.setWarehouseName(warehouse.getName());
areaInventoryDto.setWarehouseLocation(warehouse.getLocation());
areaInventoryDto.setWarehouseAreaName(warehouseArea.getAreaName());
List<InventorySumDto> inventorySumDtoList=new ArrayList<>();
//通过区域id获取装备列表汇总 //通过区域id获取装备列表汇总
List<InventorySummary> list = inventorySummaryService.list(new LambdaQueryWrapper<InventorySummary>() return inventoryMapper.getSumByArea(req.getId());
.eq(InventorySummary::getLocationAreaId,req.getId()));
if (list.size()==0){
return null;
} }
for (InventorySummary inventorySummary:list) {
InventorySumDto inventorySumDto = new InventorySumDto();
BeanPlusUtil.copyProperties(inventorySummary,inventorySumDto); //通过id判断装备是否存在
inventorySumDtoList.add(inventorySumDto); @Override
public Inventory InventoryExist(String id) {
Inventory invMap=this.getById(id);
if (ObjectUtil.isNull(invMap)){
throw new ServiceException(InventoryExceptionEnum.INVENTORY_NOT_EXIST);
} }
areaInventoryDto.setList(inventorySumDtoList); return invMap;
return areaInventoryDto;
} }
//通过单警柜箱门id获取箱门下的装备汇总信息
@Override
public List<InventorySummary> EqsByCabinetBoxId(CabinetBoxReq req) {
cabinetBoxService.CabinetBoxExist(req.getId());
return inventoryMapper.getSumByCabinetBox(req.getId());
}
} }
\ No newline at end of file
package com.junmp.jyzb.service.impl; 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 com.junmp.jyzb.service.LogDetailService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import com.junmp.jyzb.mapper.LogDetailMapper; import com.junmp.jyzb.mapper.LogDetailMapper;
@Service @Service
public class LogDetailServiceImpl implements LogDetailService { public class LogDetailServiceImpl extends ServiceImpl<LogDetailMapper, LogDetail> implements LogDetailService {
@Resource @Resource
private LogDetailMapper logDetailMapper; private LogDetailMapper logDetailMapper;
......
package com.junmp.jyzb.service.impl; 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.jyzb.service.LogSummaryService;
import com.junmp.v2.common.util.BeanPlusUtil;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import com.junmp.jyzb.mapper.LogSummaryMapper;
@Service import java.util.ArrayList;
public class LogSummaryServiceImpl implements LogSummaryService { import java.util.List;
@Service
public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSummary> implements LogSummaryService {
@Resource @Resource
private LogSummaryMapper logSummaryMapper; 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;
}
} }
package com.junmp.jyzb.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.junmp.jyzb.entity.OrderLog;
import com.junmp.jyzb.service.OrderLogService;
import com.junmp.jyzb.mapper.OrderLogMapper;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
/**
* @author lxh专属坐骑
* @description 针对表【bussiness_order_log】的数据库操作Service实现
* @createDate 2023-08-18 16:49:39
*/
@Service
public class OrderLogServiceImpl extends ServiceImpl<OrderLogMapper, OrderLog>
implements OrderLogService {
@Override
@Transactional(rollbackFor = Exception.class)
public boolean addOrder(List<String> orderId) {
List<OrderLog> orderLogList=new ArrayList<>();
for (String s:orderId) {
OrderLog orderLog = new OrderLog();
orderLog.setOrderId(s);
orderLog.setHistoryMsg("upload");
orderLogList.add(orderLog);
}
return this.saveBatch(orderLogList);
}
}
package com.junmp.jyzb.service.impl; package com.junmp.jyzb.service.impl;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.junmp.jyzb.api.bean.dto.OrderDetailDto;
import com.junmp.jyzb.api.bean.dto.OrderDto;
import com.junmp.jyzb.api.bean.dto.OrderMainDto;
import com.junmp.jyzb.api.bean.query.OrderDetailReq;
import com.junmp.jyzb.api.bean.query.OrderMainReq;
import com.junmp.jyzb.api.bean.req.DetailListReq;
import com.junmp.jyzb.api.bean.req.UpdateEquipmentSizeReq; import com.junmp.jyzb.api.bean.req.UpdateEquipmentSizeReq;
import com.junmp.jyzb.api.bean.req.UpdateOrderReq; import com.junmp.jyzb.api.bean.req.UpdateOrderReq;
import com.junmp.jyzb.api.exception.enums.CabinetExceptionEnum;
import com.junmp.jyzb.api.exception.enums.OrderExceptionEnum; import com.junmp.jyzb.api.exception.enums.OrderExceptionEnum;
import com.junmp.jyzb.api.exception.enums.ProductExceptionEnum; import com.junmp.jyzb.api.exception.enums.ProductExceptionEnum;
import com.junmp.jyzb.entity.*; import com.junmp.jyzb.entity.*;
...@@ -29,89 +37,88 @@ public class OrderServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain> i ...@@ -29,89 +37,88 @@ public class OrderServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain> i
@Resource @Resource
private OrderDetailService orderDetailService; private OrderDetailService orderDetailService;
@Resource @Resource
private OrderMainMapper orderMapper; private OrderMainMapper orderMainMapper;
@Transactional
@Transactional(rollbackFor = Exception.class)
@Override @Override
public String AddOrder(UpdateOrderReq req) { public String AddOrder(UpdateOrderReq req) {
OrderMain order = new OrderMain(); OrderMain order = new OrderMain();
String orderId=UUID.randomUUID().toString();
BeanPlusUtil.copyProperties(req, order); BeanPlusUtil.copyProperties(req, order);
order.setId(orderId); //保存
this.save(order);
List<OrderDetail> detailList = new ArrayList<>(); List<OrderDetail> detailList = new ArrayList<>();
//通过遍历批量保存详细信息
req.getDetailList().forEach(p-> req.getDetailList().forEach(p->
{ {
OrderDetail detail=new OrderDetail(); OrderDetail detail=new OrderDetail();
BeanPlusUtil.copyProperties(p, detail); BeanPlusUtil.copyProperties(p, detail);
detail.setOrderId(orderId); detail.setOrderId(order.getId());
//设置单据类型
detail.setType(order.getOrderType());
detailList.add(detail); detailList.add(detail);
}); });
orderDetailService.saveBatch(detailList); orderDetailService.saveBatch(detailList);
this.save(order); return order.getId();
return orderId;
} }
@Override
public ResponseResult showOrder(Map<String, Object> msg) {
try {
checkNotBlank(msg.get("orgId"), "orgId不能为空");
} catch (IllegalArgumentException e) {
return new ResponseResult(HttpStatus.ERROR, ReturnMsg.ERROR,e.getMessage());
}
String orgId = msg.get("orgId").toString(); @Transactional(rollbackFor = Exception.class)
List<Map<String,Object>> allMsg = orderMapper.showOrder(orgId);
return new ResponseResult(HttpStatus.SUCCESS, ReturnMsg.PASS,allMsg);
}
@Transactional
@Override @Override
public Boolean updateOrder(UpdateOrderReq req) { public Boolean updateOrder(UpdateOrderReq req) {
OrderMain order = this.query(req); OrderMain order = orderMainExist(req.getId());
if (!order.getExamineState().equals("none")) if (!order.getExamineState().equals("none"))
{ {
throw new ServiceException(OrderExceptionEnum.ORDER_CAN_NOT_UPDATE); throw new ServiceException(OrderExceptionEnum.ORDER_CAN_NOT_UPDATE);
} }
List<OrderDetail> updateList= orderDetailService.QueryList(order.getId()); List<OrderDetail> list= orderDetailService.QueryList(req.getId());
List<String> updateCheckList=new ArrayList<>(); Set<String> idSet =new HashSet<>();
List<OrderDetail> addList = new ArrayList<>(); for (OrderDetail orderDetail:list){
req.getDetailList().forEach(detail -> { idSet.add(Long.toString(orderDetail.getId()));
updateCheckList.add(detail.getId()); // 将id转换为String并添加到updateList中 }
}); //将该任务单的所有id转换为String,并添加到updateList中,用来判断删除或者修改新增的是否存在
boolean checkResult = this.hasCommonElements(updateCheckList,req.getDeleteList()); //判断删除列表是否为空,如果不为空则进行批量删除
if (req.getDeleteList() != null && !req.getDeleteList().isEmpty())
if (req.getDeleteList().size()>0)
{ {
//判断传递的list Id是否存在,如果不存在则抛出异常
for (String s:req.getDeleteList()){
if (idSet.contains(s)){
orderDetailService.removeBatchByIds(req.getDeleteList()); orderDetailService.removeBatchByIds(req.getDeleteList());
}else {
throw new ServiceException(CabinetExceptionEnum.PARAMETER_ERROR);
} }
req.getDetailList().forEach(p->
{
if (p.getId()!=null)//修改
{
updateList.forEach(detail->
{
if (detail.getId().equals(p.getId()))
{
BeanPlusUtil.copyProperties(p, detail);
} }
});
} }
else//新增 //对detaillist进行处理
{ List<OrderDetail> addList = new ArrayList<>();
List<OrderDetail> updateList = new ArrayList<>();
for (DetailListReq detailListReq :req.getDetailList()) {
//判断是否存在,存在则进行修改
if (idSet.contains(detailListReq.getId())){
OrderDetail one = orderDetailService.getOne(new LambdaQueryWrapper<OrderDetail>()
.eq(OrderDetail::getId, detailListReq.getId()));
BeanPlusUtil.copyProperties(detailListReq,one);
one.setType(req.getOrderType());
updateList.add(one);
}else {
//否则判断id是否为空或者错误,如果为空则添加,不为空则抛出异常
if (detailListReq.getId()==null || detailListReq.getId().equals("")){
OrderDetail detail=new OrderDetail(); OrderDetail detail=new OrderDetail();
BeanPlusUtil.copyProperties(p, detail); BeanPlusUtil.copyProperties(detailListReq, detail);
detail.setOrderId(order.getId()); detail.setOrderId(req.getId());
detail.setType(req.getOrderType());
addList.add(detail); addList.add(detail);
}else {
throw new ServiceException(CabinetExceptionEnum.PARAMETER_ERROR);
} }
}); }
}
orderDetailService.updateBatchById(updateList); orderDetailService.updateBatchById(updateList);
orderDetailService.saveBatch(addList); orderDetailService.saveBatch(addList);
this.save(order); BeanPlusUtil.copyProperties(req,order);
this.updateById(order);
return true; return true;
} }
public boolean hasCommonElements(List<?> list1, List<?> list2) { public boolean hasCommonElements(List<?> list1, List<?> list2) {
...@@ -123,27 +130,65 @@ public class OrderServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain> i ...@@ -123,27 +130,65 @@ public class OrderServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain> i
return false; // 没有相同值 return false; // 没有相同值
} }
//通过任务单id获取任务单信息orderMain
@Override @Override
public ResponseResult getOrderDetail(Map<String, Object> msg) { public OrderMainDto showOrderMain(OrderMainReq req) {
try { //判断任务单是否存在
checkNotBlank(msg.get("id"), "id不能为空"); OrderMain orderMain = orderMainExist(req.getId());
} catch (IllegalArgumentException e) { OrderMainDto orderMainDto = new OrderMainDto();
return new ResponseResult(HttpStatus.ERROR, ReturnMsg.ERROR,e.getMessage()); BeanPlusUtil.copyProperties(orderMain,orderMainDto);
return orderMainDto;
} }
String id = msg.get("id").toString();
Map<String,Object> oneMsg = orderMapper.getOrderDetail(id);
return new ResponseResult(HttpStatus.SUCCESS, ReturnMsg.PASS,oneMsg); //根据任务单id查询详细信息
@Override
public List<OrderDetailDto> getOrderDetail(OrderDetailReq req) {
orderMainExist(req.getOrderId());
List<OrderDetail> list = orderDetailService.QueryList(req.getOrderId());
List<OrderDetailDto> orderDetailDtoList=new ArrayList<>();
for (OrderDetail orderDetail:list) {
OrderDetailDto orderDetailDto = new OrderDetailDto();
BeanPlusUtil.copyProperties(orderDetail,orderDetailDto);
orderDetailDtoList.add(orderDetailDto);
}
return orderDetailDtoList;
} }
private OrderMain query(UpdateOrderReq req) { //获取审核状态为finished的任务单,将其推送到rabbitmq中
OrderMain order = this.getById(req.getId()); @Override
@Transactional(rollbackFor = Exception.class)
public List<OrderDto> getOrder() {
List<OrderDto> orderDtoList=new ArrayList<>();
//创建方法直接查询到所有审核状态为finished的对应的任务单的id并且是没有被上传到rabbitmq中的单据
List<OrderMain> finishedList = orderMainMapper.getList();
List<OrderDetailDto> orderDetailDtoList=new ArrayList<>();
finishedList.forEach(f->{
OrderDto orderDto = new OrderDto();
BeanPlusUtil.copyProperties(f,orderDto);
List<OrderDetail> list = orderDetailService.list(new LambdaQueryWrapper<OrderDetail>()
.eq(OrderDetail::getOrderId, f.getId()));
list.forEach(l->{
OrderDetailDto orderDetailDto = new OrderDetailDto();
BeanPlusUtil.copyProperties(l,orderDetailDto);
orderDetailDtoList.add(orderDetailDto);
});
orderDto.setDetailList(orderDetailDtoList);
orderDtoList.add(orderDto);
});
return orderDtoList;
}
//判断任务单是否存在
@Override
public OrderMain orderMainExist(String id) {
OrderMain order = this.getById(id);
if (ObjectUtil.isNull(order)) { if (ObjectUtil.isNull(order)) {
throw new ServiceException(OrderExceptionEnum.ORDER_NOT_EXIST); throw new ServiceException(OrderExceptionEnum.ORDER_NOT_EXIST);
} }
return order; return order;
} }
} }
...@@ -366,8 +366,7 @@ public class PubOrgServiceImpl extends ServiceImpl<PubOrgMapper, PubOrg> implem ...@@ -366,8 +366,7 @@ public class PubOrgServiceImpl extends ServiceImpl<PubOrgMapper, PubOrg> implem
//根据组织机构id查询出组织机构是否存在 //根据组织机构id查询出组织机构是否存在
@Override @Override
public PubOrg PubOrgExist(Long id) { public PubOrg PubOrgExist(Long id) {
PubOrg puborg = getOne(new LambdaQueryWrapper<PubOrg>() PubOrg puborg = getById(id);
.eq(PubOrg::getOrgId,id));
if (ObjectUtil.isEmpty(puborg)) { if (ObjectUtil.isEmpty(puborg)) {
//抛出组织机构不存在异常 //抛出组织机构不存在异常
throw new ServiceException(PubOrgExceptionEnum.PUBORG_NOT_EXIST); throw new ServiceException(PubOrgExceptionEnum.PUBORG_NOT_EXIST);
......
package com.junmp.jyzb.task; package com.junmp.jyzb.task;
public class UpdateSummaryAction { import com.junmp.jyzb.service.InventoryService;
import com.junmp.v2.job.api.JobAction;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
@Component
public class UpdateSummaryAction implements JobAction {
@Resource
private InventoryService inventoryService;
public void action(){
inventoryService.setInventoryMsg();
}
} }
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
<result column="supplier_id" jdbcType="VARCHAR" property="supplierId" /> <result column="supplier_id" jdbcType="VARCHAR" property="supplierId" />
<result column="supplier_name" jdbcType="VARCHAR" property="supplierName" /> <result column="supplier_name" jdbcType="VARCHAR" property="supplierName" />
<result column="shelf_id" jdbcType="VARCHAR" property="shelfId" /> <result column="shelf_id" jdbcType="VARCHAR" property="shelfId" />
<result column="location_area" jdbcType="VARCHAR" property="locationArea" /> <result column="area_id" jdbcType="VARCHAR" property="areaId" />
<result column="position_msg" jdbcType="VARCHAR" property="positionMsg" /> <result column="position_msg" jdbcType="VARCHAR" property="positionMsg" />
<result column="epc" jdbcType="VARCHAR" property="epc" /> <result column="epc" jdbcType="VARCHAR" property="epc" />
<result column="org_id" jdbcType="VARCHAR" property="orgId" /> <result column="org_id" jdbcType="VARCHAR" property="orgId" />
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
<result column="warranty_period" jdbcType="INTEGER" property="warrantyPeriod" /> <result column="warranty_period" jdbcType="INTEGER" property="warrantyPeriod" />
<result column="maintenance_period" jdbcType="INTEGER" property="maintenancePeriod" /> <result column="maintenance_period" jdbcType="INTEGER" property="maintenancePeriod" />
<result column="fix_count" jdbcType="INTEGER" property="fixCount" /> <result column="fix_count" jdbcType="INTEGER" property="fixCount" />
<result column="price" jdbcType="VARCHAR" property="price" /> <result column="price" jdbcType="DECIMAL" property="price" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" /> <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" /> <result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
<result column="note" jdbcType="VARCHAR" property="note" /> <result column="note" jdbcType="VARCHAR" property="note" />
...@@ -34,16 +34,10 @@ ...@@ -34,16 +34,10 @@
id, package_id, type_id, type_name, size_id, supplier_id, supplier_name, shelf_id, id, package_id, type_id, type_name, size_id, supplier_id, supplier_name, shelf_id,
location_area, position_msg, epc, org_id, org_name, `state`, bussiness_state, location_state, location_area, position_msg, epc, org_id, org_name, `state`, bussiness_state, location_state,
production_date, warranty_period, maintenance_period, fix_count, price, create_time, production_date, warranty_period, maintenance_period, fix_count, price, create_time,
update_time, note update_time, note,area_id
</sql> </sql>
<select id="getSum" resultType="Map">
</select>
<select id="getOrgNum" resultType="Map">
</select>
<select id="getLocationInventory" resultType="Map"> <select id="getLocationInventory" resultType="Map">
select select
...@@ -84,54 +78,47 @@ delete from base_inventory_summary ...@@ -84,54 +78,47 @@ delete from base_inventory_summary
<insert id="SetCabinetInventory"> <insert id="SetCabinetInventory">
INSERT INTO base_inventory_summary_type2 (id,org_id_int,org_name,type_id, type_name,size_id,size_name,location_id,location_name,number,price, stock_number, outbound_number,location_type,location_shelf_id,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,price, stock_number, outbound_number,location_type,create_time,update_time)
select t.id,t.orgId,t.orgName,t.type_id,t.typeName,t.size_id,t.sizeName,t.locationId,t.locationName,t.number,t.price,t.stockNumber,t.outboundNumber,t.locationType,t.shelfId,NOW(),NOW() 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,sum(t.price)as price,sum(t.stockNumber)as stockNumber,sum(t.outboundNumber)as outboundNumber,t.location_type,NOW(),NOW()
FROM FROM
(SELECT (SELECT
UUID() as id, UUID() as id,
bi.org_id_int as orgId, bi.org_id_int as orgId,
po.org_name as orgName, po.org_name as orgName,
bcb.cabinet_id as locationId,
bi.location_id as locationBoxId,
bc.name as locationName,
bi.type_id, bi.type_id,
t.name as typeName, t.name as typeName,
bi.size_id, bi.size_id,
s.name as sizeName, s.name as sizeName,
bi.location_id as locationId,
bc.name as locationName,
count(*) as number, count(*) as number,
sum(bi.price) as price, sum(bi.price) as price,
SUM(CASE WHEN location_state = 'in' THEN 1 ELSE 0 END) AS stockNumber, 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, count(*) - SUM(CASE WHEN location_state = 'in' THEN 1 ELSE 0 END) AS outboundNumber,
bi.location_type as locationType, bi.location_type
bi.shelf_id as shelfId
FROM base_inventory bi FROM base_inventory bi
join base_cabinet_box bcb on bi.location_id = bcb.id join base_cabinet_box bcb on bi.location_id = bcb.id
join base_cabinet bc on bcb.cabinet_id = bc.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_type t on t.id = bi.type_id
join base_equipment_size s on s.id = bi.size_id join base_equipment_size s on s.id = bi.size_id
join pub_org po on bi.org_id_int = po.org_id join pub_org po on bi.org_id_int = po.org_id
WHERE location_id IN ( WHERE location_type = 1
SELECT location_id GROUP BY location_id, type_id,size_id,bi.org_id_int ) as t
FROM base_inventory GROUP BY t.locationId,t.type_id,t.size_id,t.orgId
GROUP BY location_id,type_id
having type_id in(
SELECT
type_id
FROM base_inventory b
GROUP BY type_id
)
)
and location_type = 1
GROUP BY location_id, type_id,size_id,bi.org_id_int,shelf_id) as t
</insert> </insert>
<insert id="SetWarehouseInventory"> <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, price, stock_number, outbound_number,location_type) INSERT INTO base_inventory_summary (id,org_id_int,org_name,type_id, type_name,size_id,size_name,location_id,location_name,number,price, stock_number, outbound_number,location_type,create_time,update_time)
SELECT select t.id,t.orgId,t.orgName,t.type_id,t.typeName,t.size_id,t.sizeName,t.locationId,t.locationName,t.number,t.price,t.stockNumber,t.outboundNumber,t.locationType,NOW(),NOW()
FROM
(SELECT
UUID() as id, UUID() as id,
bi.org_id_int as orgIdInt, bi.org_id_int as orgId,
po.org_name as orgName, po.org_name as orgName,
bi.location_id as locationId, MAX(bi.location_id) as locationId,
bw.name as locationName, MAX(bw.name) as locationName,
bi.type_id, bi.type_id,
t.name as typeName, t.name as typeName,
bi.size_id, bi.size_id,
...@@ -140,25 +127,14 @@ SELECT ...@@ -140,25 +127,14 @@ SELECT
sum(bi.price) as price, sum(bi.price) as price,
SUM(CASE WHEN location_state = 'in' THEN 1 ELSE 0 END) AS stockNumber, 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, count(*) - SUM(CASE WHEN location_state = 'in' THEN 1 ELSE 0 END) AS outboundNumber,
bi.location_type bi.location_type as locationType
FROM base_inventory bi FROM base_inventory bi
join base_warehouse bw on bi.location_id = bw.id join base_warehouse bw on bi.location_id = bw.id
join base_equipment_type t on t.id = bi.type_id join base_equipment_type t on t.id = bi.type_id
join base_equipment_size s on s.id = bi.size_id join base_equipment_size s on s.id = bi.size_id
join pub_org po on bi.org_id_int = po.org_id join pub_org po on bi.org_id_int = po.org_id
WHERE location_id IN ( WHERE location_type = 0
SELECT location_id GROUP BY type_id,size_id,bi.org_id_int,location_id) as t
FROM base_inventory
GROUP BY location_id,type_id
having type_id in(
SELECT
type_id as 'typeId'
FROM base_inventory b
GROUP BY type_id
)
)
and location_type = 0
GROUP BY location_id, type_id,size_id,bi.org_id_int;
</insert> </insert>
<select id="EqsBySearchType" resultType="com.junmp.jyzb.api.bean.dto.InventoryDto"> <select id="EqsBySearchType" resultType="com.junmp.jyzb.api.bean.dto.InventoryDto">
...@@ -182,7 +158,6 @@ GROUP BY location_id, type_id,size_id,bi.org_id_int; ...@@ -182,7 +158,6 @@ GROUP BY location_id, type_id,size_id,bi.org_id_int;
<if test="queryType=='cabinet'"> <if test="queryType=='cabinet'">
bcb.cabinet_id as locationId, bcb.cabinet_id as locationId,
</if> </if>
i.location_id as locationId,
i.price as price, i.price as price,
i.shelf_id as shelfId, i.shelf_id as shelfId,
i.shelf_location as shelfLocation, i.shelf_location as shelfLocation,
...@@ -212,16 +187,94 @@ GROUP BY location_id, type_id,size_id,bi.org_id_int; ...@@ -212,16 +187,94 @@ GROUP BY location_id, type_id,size_id,bi.org_id_int;
where location_id = #{warehouseId} where location_id = #{warehouseId}
</if> </if>
<if test="queryType == 'cabinet'"> <if test="queryType == 'cabinet'">
where location_id = #{cabinetId} where location_id in (select id from base_cabinet_box where cabinet_id =#{cabinetId})
</if> </if>
</select> </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
FROM
(SELECT
UUID() as id,
bi.org_id_int as orgId,
po.org_name as orgName,
MAX(bi.location_id) as locationId,
bi.shelf_id,
MAX(bw.name) as locationName,
bi.type_id,
t.name as typeName,
bi.size_id,
s.name as sizeName,
count(*) as number,
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,
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
GROUP BY type_id,size_id,bi.org_id_int,shelf_id)as t
where shelf_id=#{shelfId}
</select>
<select id="getSumByArea" resultType="com.junmp.jyzb.entity.InventorySummary"
parameterType="java.lang.String">
SELECT
UUID() as id,
bi.org_id_int as orgId,
po.org_name as orgName,
MAX(bi.location_id) as locationId,
bi.area_id,
MAX(bw.name) as locationName,
bi.type_id,
t.name as typeName,
bi.size_id,
s.name as sizeName,
count(*) as number,
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,
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.area_id=#{id}
GROUP BY type_id,size_id,bi.org_id_int,bi.area_id
</select>
<select id="getSumByCabinetBox" resultType="com.junmp.jyzb.entity.InventorySummary"
parameterType="java.lang.String">
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,
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,
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 bi.location_type = 1 and bi.location_id=#{id}
GROUP BY location_id, type_id,size_id,bi.org_id_int
</select>
<!--<select id="getInventoryByOrgId" resultType="Map">-->
<!--select-->
<!-- *-->
<!--from base_inventory i-->
<!--where org_id_int =#{orgId}-->
<!--</select>-->
</mapper> </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">
<mapper namespace="com.junmp.jyzb.mapper.OrderLogMapper">
<resultMap id="BaseResultMap" type="com.junmp.jyzb.entity.OrderLog">
<id property="id" column="id" jdbcType="BIGINT"/>
<result property="orderId" column="order_id" jdbcType="INTEGER"/>
<result property="historyMsg" column="history_msg" jdbcType="VARCHAR"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
<result property="createUser" column="create_user" jdbcType="VARCHAR"/>
<result property="updateUser" column="update_user" jdbcType="VARCHAR"/>
</resultMap>
<sql id="Base_Column_List">
id,order_id,history_msg,
create_time,update_time,create_user,
update_user
</sql>
</mapper>
...@@ -7,10 +7,18 @@ ...@@ -7,10 +7,18 @@
<id column="id" jdbcType="BIGINT" property="id" /> <id column="id" jdbcType="BIGINT" property="id" />
<result column="order_type" jdbcType="VARCHAR" property="orderType" /> <result column="order_type" jdbcType="VARCHAR" property="orderType" />
<result column="bussiness_type" jdbcType="VARCHAR" property="bussinessType" /> <result column="bussiness_type" jdbcType="VARCHAR" property="bussinessType" />
<result column="process_id" jdbcType="VARCHAR" property="processId" />
<result column="order_code" jdbcType="VARCHAR" property="orderCode" /> <result column="order_code" jdbcType="VARCHAR" property="orderCode" />
<result column="approve_type" jdbcType="VARCHAR" property="approveType" /> <result column="start_org_id" jdbcType="VARCHAR" property="startOrgId" />
<result column="send_org_id" jdbcType="VARCHAR" property="sendOrgId" /> <result column="start_org_name" jdbcType="VARCHAR" property="startOrgName" />
<result column="send_org_name" jdbcType="VARCHAR" property="sendOrgName" /> <result column="end_org_id" jdbcType="VARCHAR" property="endOrgId" />
<result column="end_org_name" jdbcType="VARCHAR" property="endOrgName" />
<result column="start_org_user_id" jdbcType="VARCHAR" property="startOrgUserId" />
<result column="start_org_user_name" jdbcType="VARCHAR" property="startOrgUserName" />
<result column="end_org_user_id" jdbcType="VARCHAR" property="endOrgUserId" />
<result column="end_org_user_name" jdbcType="VARCHAR" property="endOrgUserName" />
<result column="examine_state" jdbcType="VARCHAR" property="examineState" />
<result column="price" jdbcType="DECIMAL" property="price" />
<result column="inventory_quantity" jdbcType="INTEGER" property="inventoryQuantity" /> <result column="inventory_quantity" jdbcType="INTEGER" property="inventoryQuantity" />
<result column="actual_quantity" jdbcType="INTEGER" property="actualQuantity" /> <result column="actual_quantity" jdbcType="INTEGER" property="actualQuantity" />
<result column="manual_state" jdbcType="INTEGER" property="manualState" /> <result column="manual_state" jdbcType="INTEGER" property="manualState" />
...@@ -36,25 +44,7 @@ ...@@ -36,25 +44,7 @@
(#{orderType},#{processId},#{bussinessType},#{orderCode},#{orgId},#{inventoryQuantity},#{manualState},#{orderState},#{attachmentLocation},#{invList},#{createTime},#{updateTime}) (#{orderType},#{processId},#{bussinessType},#{orderCode},#{orgId},#{inventoryQuantity},#{manualState},#{orderState},#{attachmentLocation},#{invList},#{createTime},#{updateTime})
</insert> </insert>
<select id="showOrder" resultType="Map">
SELECT
id as id,
order_type as orderType,
process_id as processId,
bussiness_type as bussinessType,
order_code as orderCode,
org_id as orgId,
inventory_quantity as inventoryQuantity,
actual_quantity as actualQuantity,
manual_state as manualState,
order_state as orderState,
attachment_location as attachmentLocation,
inv_list as invList,
create_time as createTime,
update_time as updateTime
FROM business_order_main
where org_id =#{orgId}
</select>
<update id="updateOrder"> <update id="updateOrder">
update business_order_main o update business_order_main o
...@@ -73,25 +63,10 @@ ...@@ -73,25 +63,10 @@
update_time=#{updateTime} update_time=#{updateTime}
where o.id =#{id} where o.id =#{id}
</update> </update>
<select id="getList" resultType="com.junmp.jyzb.entity.OrderMain">
<select id="getOrderDetail" resultType="Map"> select * from bussiness_order_main
SELECT WHERE examine_state="finished" and id not in (select order_id FROM bussiness_order_log )
id as id,
order_type as orderType,
process_id as processId,
bussiness_type as bussinessType,
order_code as orderCode,
org_id as orgId,
inventory_quantity as inventoryQuantity,
actual_quantity as actualQuantity,
manual_state as manualState,
order_state as orderState,
attachment_location as attachmentLocation,
inv_list as invList,
create_time as createTime,
update_time as updateTime
FROM business_order_main
WHERE id = #{id}
</select> </select>
</mapper> </mapper>
\ No newline at end of file
...@@ -15,7 +15,6 @@ ...@@ -15,7 +15,6 @@
<module>jyzb-biz</module> <module>jyzb-biz</module>
<module>jyzb-process</module> <module>jyzb-process</module>
<module>jyzb-common</module> <module>jyzb-common</module>
<module>jyzb-mq</module>
</modules> </modules>
<parent> <parent>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论