Commit c92d5990 by 赵剑炜

Merge branch 'develop' of http://gitlab.sothing.top/843502640/jyzb_platformV2 into develop-zhaojw

parents 1ef0ce55 98ecfe55
2024-03-05 11:03:59.185 ERROR 19644 --- [main] easy-es : Easy-Es supported elasticsearch and restHighLevelClient jar version is:7.14.0 ,Please resolve the dependency conflict! 2024-03-06 08:36:58.277 ERROR 26888 --- [http-nio-10030-exec-1] c.j.j.b.c.handle.GlobalExceptionHandler : >授权异常>>获取token失败,请检查header和param中是否传递了用户token
2024-03-05 11:04:07.772 ERROR 19644 --- [main] o.s.b.d.LoggingFailureAnalysisReporter : 2024-03-06 08:42:41.507 ERROR 18388 --- [main] easy-es : Easy-Es supported elasticsearch and restHighLevelClient jar version is:7.14.0 ,Please resolve the dependency conflict!
2024-03-06 08:42:56.130 ERROR 18388 --- [http-nio-10030-exec-1] c.j.j.b.c.handle.GlobalExceptionHandler : >授权异常>>获取token失败,请检查header和param中是否传递了用户token
*************************** 2024-03-06 08:42:57.191 ERROR 18388 --- [http-nio-10030-exec-2] c.j.j.b.c.handle.GlobalExceptionHandler : >授权异常>>获取token失败,请检查header和param中是否传递了用户token
APPLICATION FAILED TO START 2024-03-06 08:43:23.614 ERROR 18388 --- [http-nio-10030-exec-6] c.j.j.b.c.handle.GlobalExceptionHandler : >授权异常>>获取token失败,请检查header和param中是否传递了用户token
***************************
Description:
Parameter 0 of method createQueuesAndBindings in com.junmp.jyzb.config.rabbitMQ.TopicRabbitConfig required a bean of type 'org.springframework.amqp.core.TopicExchange' that could not be found.
The following candidates were found but could not be injected:
- User-defined bean method 'topicExchange' in 'largeSrceenRabbitConfig'
Action:
Consider revisiting the entries above or defining a bean of type 'org.springframework.amqp.core.TopicExchange' in your configuration.
2024-03-05 11:06:58.094 ERROR 19796 --- [main] easy-es : Easy-Es supported elasticsearch and restHighLevelClient jar version is:7.14.0 ,Please resolve the dependency conflict!
2024-03-05 11:07:24.051 ERROR 19796 --- [http-nio-10030-exec-1] c.j.j.b.c.handle.GlobalExceptionHandler : >授权异常>>获取token失败,请检查header和param中是否传递了用户token
2024-03-05 11:08:27.952 ERROR 19796 --- [http-nio-10030-exec-3] c.j.j.b.c.handle.GlobalExceptionHandler : 业务异常,错误信息为:组织机构不存在
2024-03-05 11:08:42.414 ERROR 15160 --- [main] easy-es : Easy-Es supported elasticsearch and restHighLevelClient jar version is:7.14.0 ,Please resolve the dependency conflict!
2024-03-05 11:09:06.067 ERROR 15160 --- [http-nio-10030-exec-1] c.j.j.b.c.handle.GlobalExceptionHandler : >授权异常>>获取token失败,请检查header和param中是否传递了用户token
2024-03-05 11:10:26.963 ERROR 17680 --- [main] easy-es : Easy-Es supported elasticsearch and restHighLevelClient jar version is:7.14.0 ,Please resolve the dependency conflict!
2024-03-05 11:10:38.766 ERROR 17680 --- [http-nio-10030-exec-1] c.j.j.b.c.handle.GlobalExceptionHandler : >授权异常>>获取token失败,请检查header和param中是否传递了用户token
2024-03-05 11:10:45.134 ERROR 17680 --- [AMQP Connection 192.168.3.121:5672] o.s.a.r.c.CachingConnectionFactory : Shutdown Signal: channel error; protocol method: #method<channel.close>(reply-code=404, reply-text=NOT_FOUND - no exchange 'DevMonitorMsg' in vhost '/', class-id=60, method-id=40)
2024-03-05 11:11:54.168 ERROR 17680 --- [AMQP Connection 192.168.3.121:5672] o.s.a.r.c.CachingConnectionFactory : Shutdown Signal: channel error; protocol method: #method<channel.close>(reply-code=404, reply-text=NOT_FOUND - no exchange 'DevMonitorMsg' in vhost '/', class-id=60, method-id=40)
2024-03-05 11:25:54.742 ERROR 17680 --- [hutool-cron-4] c.h.cron.listener.TaskListenerManager :
### Error updating database. Cause: com.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction
### The error may exist in file [F:\vue_project\jyzb_platformV2_localhost\jyzb-biz\target\classes\mapper\InventorySummaryMapper.xml]
### The error may involve defaultParameterMap
### The error occurred while setting parameters
### SQL: {CALL Insert_into_view_warranty_group()}
### Cause: com.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction
; Lock wait timeout exceeded; try restarting transaction; nested exception is com.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction
org.springframework.dao.CannotAcquireLockException:
### Error updating database. Cause: com.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction
### The error may exist in file [F:\vue_project\jyzb_platformV2_localhost\jyzb-biz\target\classes\mapper\InventorySummaryMapper.xml]
### The error may involve defaultParameterMap
### The error occurred while setting parameters
### SQL: {CALL Insert_into_view_warranty_group()}
### Cause: com.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction
; Lock wait timeout exceeded; try restarting transaction; nested exception is com.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction
at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:267)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)
at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)
at com.sun.proxy.$Proxy142.insert(Unknown Source)
at org.mybatis.spring.SqlSessionTemplate.insert(SqlSessionTemplate.java:272)
at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:59)
at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)
at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)
at com.sun.proxy.$Proxy280.setWarrantyGroupAction(Unknown Source)
at com.junmp.jyzb.service.impl.InventorySummaryServiceImpl.setWarrantyGroupAction(InventorySummaryServiceImpl.java:538)
at com.junmp.jyzb.service.impl.InventorySummaryServiceImpl$$FastClassBySpringCGLIB$$ec214b78.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688)
at com.junmp.jyzb.service.impl.InventorySummaryServiceImpl$$EnhancerBySpringCGLIB$$710af712.setWarrantyGroupAction(<generated>)
at com.junmp.jyzb.task.WarrantyGroupAction.action(WarrantyGroupAction.java:19)
at com.junmp.v2.job.hutool.HutoolJobExecuteServiceImpl.lambda$startJob$0(HutoolJobExecuteServiceImpl.java:68)
at cn.hutool.cron.task.CronTask.execute(CronTask.java:31)
at cn.hutool.cron.TaskExecutor.run(TaskExecutor.java:52)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: com.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:123)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:953)
at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:370)
at com.mysql.cj.jdbc.CallableStatement.execute(CallableStatement.java:845)
at com.zaxxer.hikari.pool.ProxyPreparedStatement.execute(ProxyPreparedStatement.java:44)
at com.zaxxer.hikari.pool.HikariProxyCallableStatement.execute(HikariProxyCallableStatement.java)
at org.apache.ibatis.executor.statement.CallableStatementHandler.update(CallableStatementHandler.java:50)
at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:64)
at com.sun.proxy.$Proxy352.update(Unknown Source)
at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)
at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)
at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)
at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:106)
at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:62)
at com.sun.proxy.$Proxy351.update(Unknown Source)
at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:194)
at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:181)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427)
... 18 common frames omitted
2024-03-05 11:54:37.354 ERROR 13660 --- [main] easy-es : Easy-Es supported elasticsearch and restHighLevelClient jar version is:7.14.0 ,Please resolve the dependency conflict!
2024-03-05 12:00:55.984 ERROR 14932 --- [main] easy-es : Easy-Es supported elasticsearch and restHighLevelClient jar version is:7.14.0 ,Please resolve the dependency conflict!
2024-03-05 12:02:50.339 ERROR 14180 --- [main] easy-es : Easy-Es supported elasticsearch and restHighLevelClient jar version is:7.14.0 ,Please resolve the dependency conflict!
2024-03-05 12:16:51.546 ERROR 19636 --- [main] easy-es : Easy-Es supported elasticsearch and restHighLevelClient jar version is:7.14.0 ,Please resolve the dependency conflict!
2024-03-05 12:25:15.239 ERROR 20620 --- [main] easy-es : Easy-Es supported elasticsearch and restHighLevelClient jar version is:7.14.0 ,Please resolve the dependency conflict!
2024-03-05 12:30:58.081 ERROR 5964 --- [main] easy-es : Easy-Es supported elasticsearch and restHighLevelClient jar version is:7.14.0 ,Please resolve the dependency conflict!
2024-03-05 12:33:27.839 ERROR 5964 --- [http-nio-10030-exec-2] c.j.j.b.c.handle.GlobalExceptionHandler : >授权异常>>获取token失败,请检查header和param中是否传递了用户token
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -19,6 +19,6 @@ public class DetailLogReq { ...@@ -19,6 +19,6 @@ public class DetailLogReq {
private BigDecimal price; private BigDecimal price;
private Integer equipmentType; private Integer equipmentType;
//Epc类型(0固定资产1库存物资非固定资产) //Epc类型(0固定资产1库存物资非固定资产)
private Integer epcType; private Integer property;
} }
...@@ -12,7 +12,7 @@ public class PurchaseEqsReq { ...@@ -12,7 +12,7 @@ public class PurchaseEqsReq {
private String sizeId; private String sizeId;
private String sizeName; private String sizeName;
private String productionDate; private String productionDate;
private Integer warranyPeriod; private Integer warrantyPeriod;
private Integer maintenancePeriod; private Integer maintenancePeriod;
//仓库id和仓库name //仓库id和仓库name
private String locationId; private String locationId;
...@@ -24,4 +24,6 @@ public class PurchaseEqsReq { ...@@ -24,4 +24,6 @@ public class PurchaseEqsReq {
private BigDecimal price; private BigDecimal price;
private Integer epcType; private Integer epcType;
private Integer property;
} }
...@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.toolkit.AES; ...@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.toolkit.AES;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.junmp.jyzb.api.bean.dto.UploadPolicePhotoDto; import com.junmp.jyzb.api.bean.dto.UploadPolicePhotoDto;
import com.junmp.jyzb.api.bean.query.DbAccessReq; import com.junmp.jyzb.api.bean.query.DbAccessReq;
import com.junmp.jyzb.api.bean.query.InAndOutRecordReq.PurchaseEqsReq;
import com.junmp.jyzb.api.bean.query.OrderMainReq; import com.junmp.jyzb.api.bean.query.OrderMainReq;
import com.junmp.jyzb.api.bean.query.PolicemanReq; import com.junmp.jyzb.api.bean.query.PolicemanReq;
import com.junmp.jyzb.api.bean.req.UploadPolicePhotoReq; import com.junmp.jyzb.api.bean.req.UploadPolicePhotoReq;
...@@ -15,8 +16,10 @@ import com.junmp.jyzb.api.bean.vo.AuthAccessVo; ...@@ -15,8 +16,10 @@ import com.junmp.jyzb.api.bean.vo.AuthAccessVo;
import com.junmp.jyzb.api.exception.enums.PublicExceptionEnum; import com.junmp.jyzb.api.exception.enums.PublicExceptionEnum;
import com.junmp.jyzb.cache.MsgRedisCache; import com.junmp.jyzb.cache.MsgRedisCache;
import com.junmp.jyzb.cache.OutInRecordRedisCache; import com.junmp.jyzb.cache.OutInRecordRedisCache;
import com.junmp.jyzb.entity.Inventory;
import com.junmp.jyzb.entity.Policeman; import com.junmp.jyzb.entity.Policeman;
import com.junmp.jyzb.entity.PubOrg; import com.junmp.jyzb.entity.PubOrg;
import com.junmp.jyzb.service.InventoryService;
import com.junmp.jyzb.service.PolicemanService; import com.junmp.jyzb.service.PolicemanService;
import com.junmp.jyzb.service.PubOrgService; import com.junmp.jyzb.service.PubOrgService;
import com.junmp.jyzb.service.PublicService; import com.junmp.jyzb.service.PublicService;
...@@ -61,9 +64,7 @@ import java.io.File; ...@@ -61,9 +64,7 @@ import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.IOException; import java.io.IOException;
import java.net.URL; import java.net.URL;
import java.util.Date; import java.util.*;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -97,6 +98,8 @@ public class PublicController { ...@@ -97,6 +98,8 @@ public class PublicController {
@Resource @Resource
private RabbitAdmin rabbitAdmin; private RabbitAdmin rabbitAdmin;
@Resource
private InventoryService inventoryService;
@Resource @Resource
private OutInRecordRedisCache outInRecordRedisCache; private OutInRecordRedisCache outInRecordRedisCache;
...@@ -164,12 +167,28 @@ public class PublicController { ...@@ -164,12 +167,28 @@ public class PublicController {
} }
@PostMapping("/bbb") @PostMapping("/bbb")
public ApiRes<Boolean> bbb(){ public ApiRes<Boolean> bbb(@RequestBody PurchaseEqsReq eqsReq){
List<Inventory> collect1=new ArrayList<>();
// TopicExchange exchange = new TopicExchange("DevMonitorMsg"); Inventory inventory = new Inventory();
// String exchangeName="DevMonitorMsg"; inventory.setEpc(eqsReq.getEpc());
// rabbitAdmin.declareExchange(exchange); inventory.setTypeId(eqsReq.getTypeId());
// rabbitTemplate.convertAndSend(exchangeName, "1369509498032811869", "设备下线"); inventory.setSizeId(eqsReq.getSizeId());
inventory.setMaintenancePeriod(eqsReq.getMaintenancePeriod());
inventory.setWarrantyPeriod(eqsReq.getWarrantyPeriod());
inventory.setProperty(eqsReq.getProperty());
inventory.setLocationId(eqsReq.getLocationId());
inventory.setSupplierId(eqsReq.getSupplierId());
inventory.setPrice(eqsReq.getPrice());
// BeanPlusUtil.copyProperties(eqsReq, inventory);
inventory.setId(UUID.randomUUID().toString());
inventory.setCreateTime(DateTimeUtil.getCurrentDateTime());
inventory.setState("normal");
inventory.setBussinessState("normal");
inventory.setLocationState("in");
inventory.setLocationType(0);
// inventory.setOrgId(order.getOrgId());
collect1.add(inventory);
inventoryService.saveBatch(collect1);
return ApiRes.success(true); return ApiRes.success(true);
} }
......
...@@ -162,7 +162,7 @@ public class WarehouseController { ...@@ -162,7 +162,7 @@ public class WarehouseController {
return ApiRes.success(warehouseService.alignWarehouseInfo(req)); return ApiRes.success(warehouseService.alignWarehouseInfo(req));
} }
@PostMapping(path="/updateHumidityAndtemperature",name="更新温湿度#logType=30") @PostMapping(path="/updateHumidityAndtemperature",name="更新温湿度#enable")
@ApiOperation("更新温湿度") @ApiOperation("更新温湿度")
public ApiRes<Boolean> updateHumidityAndtemperature(@RequestBody HumidityAndtemperature req){ public ApiRes<Boolean> updateHumidityAndtemperature(@RequestBody HumidityAndtemperature req){
return ApiRes.success(warehouseService.updateHumidityAndtemperature(req)); return ApiRes.success(warehouseService.updateHumidityAndtemperature(req));
......
...@@ -21,6 +21,8 @@ public class Inventory implements Serializable { ...@@ -21,6 +21,8 @@ public class Inventory implements Serializable {
@TableId(value = "id",type=IdType.ASSIGN_UUID) @TableId(value = "id",type=IdType.ASSIGN_UUID)
private String id; private String id;
@TableField(exist = false)
private Long inventoryId;
/** /**
* 装备包ID * 装备包ID
......
...@@ -137,7 +137,8 @@ public class LogDetail implements Serializable { ...@@ -137,7 +137,8 @@ public class LogDetail implements Serializable {
@TableField(value = "picture") @TableField(value = "picture")
private String picture; private String picture;
@TableField(value = "property")
private Integer property;
@TableField(value = "price") @TableField(value = "price")
private BigDecimal price; private BigDecimal price;
......
...@@ -114,6 +114,9 @@ public class WarehouseInventory implements Serializable { ...@@ -114,6 +114,9 @@ public class WarehouseInventory implements Serializable {
@TableField(value = "shelf_id") @TableField(value = "shelf_id")
private String shelfId; private String shelfId;
@TableField(value = "location_name")
private String locationName;
@TableField(exist = false) @TableField(exist = false)
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
......
...@@ -17,6 +17,7 @@ import com.junmp.junmpProcess.utils.RabbitMQUtils2; ...@@ -17,6 +17,7 @@ import com.junmp.junmpProcess.utils.RabbitMQUtils2;
import com.junmp.jyzb.api.bean.dto.MQDto; import com.junmp.jyzb.api.bean.dto.MQDto;
import com.junmp.jyzb.api.bean.dto.OrderDto; import com.junmp.jyzb.api.bean.dto.OrderDto;
import com.junmp.jyzb.api.bean.query.BussinessOrderDetialReq; import com.junmp.jyzb.api.bean.query.BussinessOrderDetialReq;
import com.junmp.jyzb.api.bean.query.InAndOutRecordReq.DetailJsonReq;
import com.junmp.jyzb.api.bean.query.OrderMainReq; import com.junmp.jyzb.api.bean.query.OrderMainReq;
import com.junmp.jyzb.api.bean.req.UpdateBusFormReq; import com.junmp.jyzb.api.bean.req.UpdateBusFormReq;
import com.junmp.jyzb.api.bean.req.UpdateOrderDetailReq; import com.junmp.jyzb.api.bean.req.UpdateOrderDetailReq;
...@@ -57,10 +58,7 @@ import javax.annotation.Resource; ...@@ -57,10 +58,7 @@ import javax.annotation.Resource;
import java.beans.Transient; import java.beans.Transient;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.*;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static com.junmp.junmpProcess.common.CommonConstants.*; import static com.junmp.junmpProcess.common.CommonConstants.*;
...@@ -195,15 +193,45 @@ import static com.junmp.junmpProcess.common.CommonConstants.*; ...@@ -195,15 +193,45 @@ import static com.junmp.junmpProcess.common.CommonConstants.*;
.eq(OrderMain::getProcessId, processInstanceId)); .eq(OrderMain::getProcessId, processInstanceId));
existOrder.setExamineState("finished"); existOrder.setExamineState("finished");
existOrder.setOrderState("finished"); existOrder.setOrderState("finished");
existOrder.setManualState(1); List<OrderDetail> list = orderDetailService.list(new LambdaQueryWrapper<OrderDetail>()
.eq(OrderDetail::getOrderId, existOrder.getId()));
//通过summaryId将出库记录取出来,并且分类存入orderDetail中
LogSummary one = logSummaryService.getOne(new LambdaQueryWrapper<LogSummary>()
.eq(LogSummary::getOrderMainId, existOrder.getId()));
List<LogDetail> logDetailList = logDetailService.list(new LambdaQueryWrapper<LogDetail>()
.eq(LogDetail::getSummaryId, one.getId()));
Map<String, DetailJsonReq> map=new HashMap<>();
for (LogDetail logDetail:logDetailList){
String key=logDetail.getTypeId()+logDetail.getSizeId()+logDetail.getPrice()+logDetail.getProperty();
if (map.containsKey(key)){
DetailJsonReq detailJsonReq = map.get(key);
detailJsonReq.setNum(detailJsonReq.getNum()+1);
map.put(key,detailJsonReq);
}else {
DetailJsonReq detailJsonReq = new DetailJsonReq();
detailJsonReq.setNum(1);
detailJsonReq.setLocationName(one.getLocationName());
detailJsonReq.setLocationId(one.getLocationId());
detailJsonReq.setPrice(logDetail.getPrice());
detailJsonReq.setProperty(logDetail.getProperty());
map.put(key,detailJsonReq);
}
}
for (OrderDetail orderDetail:list) {
for (String key:map.keySet()) {
if (key.equals(orderDetail.getTypeId()+orderDetail.getSizeId()+orderDetail.getPrice()+orderDetail.getProperty())){
orderDetail.setDetailJson(JSONObject.toJSONString(map.get(key)));
}
}
}
orderMainService.updateById(existOrder); orderMainService.updateById(existOrder);
orderDetailService.updateBatchById(list);
MQDto mqDto = new MQDto(); MQDto mqDto = new MQDto();
mqDto.setApi("NormalToOrder"); mqDto.setApi("NormalToOrder");
mqDto.setType(existOrder.getOrderType().equals("in")?0:1); mqDto.setType(existOrder.getOrderType().equals("in")?0:1);
LogSummary one = logSummaryService.getOne(new LambdaQueryWrapper<LogSummary>() List<String> collect = logDetailList
.eq(LogSummary::getOrderMainId, existOrder.getId()));
List<String> collect = logDetailService.list(new LambdaQueryWrapper<LogDetail>()
.eq(LogDetail::getSummaryId, one.getId()))
.stream().map(LogDetail::getInventoryId) .stream().map(LogDetail::getInventoryId)
.collect(Collectors.toList()); .collect(Collectors.toList());
mqDto.setIdList(collect); mqDto.setIdList(collect);
...@@ -212,7 +240,7 @@ import static com.junmp.junmpProcess.common.CommonConstants.*; ...@@ -212,7 +240,7 @@ import static com.junmp.junmpProcess.common.CommonConstants.*;
}else { }else {
MQ.SendMsg("orderExchange",existOrder.getStartOrgId().toString(),mqDto); MQ.SendMsg("orderExchange",existOrder.getStartOrgId().toString(),mqDto);
} }
} }
//消息推送 //消息推送
MessageSendReq sendReq = new MessageSendReq(); MessageSendReq sendReq = new MessageSendReq();
String startUser= MapUtil.getStr(historicProcessInstance.getProcessVariables(),START_USER_INFO); String startUser= MapUtil.getStr(historicProcessInstance.getProcessVariables(),START_USER_INFO);
......
...@@ -19,14 +19,14 @@ import liquibase.pro.packaged.S; ...@@ -19,14 +19,14 @@ import liquibase.pro.packaged.S;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@Mapper @Mapper
public interface InventoryMapper extends BaseMapper<Inventory> { public interface InventoryMapper extends BaseMapper<Inventory> {
List<Map<String, Object>> getLocationInventory(@Param("queryType")String queryType, @Param("idMsg")String idMsg);
//根据单警柜统计装备信息 //根据单警柜统计装备信息
boolean SetCabinetInventory(@Param("brokenNumberDays") Integer brokenNumberDays); boolean SetCabinetInventory(@Param("brokenNumberDays") Integer brokenNumberDays);
...@@ -98,6 +98,11 @@ public interface InventoryMapper extends BaseMapper<Inventory> { ...@@ -98,6 +98,11 @@ public interface InventoryMapper extends BaseMapper<Inventory> {
List<PeriodAndDateDto> GetByPeriodAndDate(@Param("req") InventoryReq req); List<PeriodAndDateDto> GetByPeriodAndDate(@Param("req") InventoryReq req);
List<Inventory> getEqsInfo(@Param("orgId") Long orgId,@Param("locationId") String locationId,
@Param("typeId") String typeId, @Param("sizeId")String sizeId,
@Param("price")BigDecimal price, @Param("warrantyPeriod")Integer warrantyPeriod,
@Param("startTime") Date startTime,@Param("endTime") Date endTime);
// IPage<InventoryDto> GetDetailByTerms(@Param("page") Page<Object> defaultPage, @Param("req") InventoryReq req); // IPage<InventoryDto> GetDetailByTerms(@Param("page") Page<Object> defaultPage, @Param("req") InventoryReq req);
......
...@@ -14,7 +14,10 @@ import com.junmp.jyzb.entity.InventorySummary; ...@@ -14,7 +14,10 @@ import com.junmp.jyzb.entity.InventorySummary;
import com.junmp.jyzb.entity.LogDetail; import com.junmp.jyzb.entity.LogDetail;
import com.junmp.jyzb.entity.LogSummary; import com.junmp.jyzb.entity.LogSummary;
import com.junmp.v2.db.api.page.PageResult; import com.junmp.v2.db.api.page.PageResult;
import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List; import java.util.List;
public interface InventoryService extends IService<Inventory> { public interface InventoryService extends IService<Inventory> {
...@@ -92,4 +95,5 @@ public interface InventoryService extends IService<Inventory> { ...@@ -92,4 +95,5 @@ public interface InventoryService extends IService<Inventory> {
PageResult<InventoryDto> EqsByState(InventoryReq req); PageResult<InventoryDto> EqsByState(InventoryReq req);
List<PeriodAndDateDto> GetByPeriodAndDate(InventoryReq req); List<PeriodAndDateDto> GetByPeriodAndDate(InventoryReq req);
} }
...@@ -237,7 +237,8 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm ...@@ -237,7 +237,8 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm
inventory.setTypeId(eqsReq.getTypeId()); inventory.setTypeId(eqsReq.getTypeId());
inventory.setSizeId(eqsReq.getSizeId()); inventory.setSizeId(eqsReq.getSizeId());
inventory.setMaintenancePeriod(eqsReq.getMaintenancePeriod()); inventory.setMaintenancePeriod(eqsReq.getMaintenancePeriod());
inventory.setWarrantyPeriod(eqsReq.getWarranyPeriod()); inventory.setWarrantyPeriod(eqsReq.getWarrantyPeriod());
inventory.setProperty(eqsReq.getProperty());
inventory.setLocationId(eqsReq.getLocationId()); inventory.setLocationId(eqsReq.getLocationId());
inventory.setSupplierId(eqsReq.getSupplierId()); inventory.setSupplierId(eqsReq.getSupplierId());
inventory.setPrice(eqsReq.getPrice()); inventory.setPrice(eqsReq.getPrice());
...@@ -260,18 +261,19 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm ...@@ -260,18 +261,19 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm
//3.处理出入库记录对象 //3.处理出入库记录对象
//判断出入库记录是否为空 //判断出入库记录是否为空
List<NormalInOutDto> normalInOutDtos=new ArrayList<>(); // List<NormalInOutDto> normalInOutDtos=new ArrayList<>();
boolean d=true;
if(ObjectUtil.isNotNull(req.getLogList()) && req.getLogList().size()>0){ if(ObjectUtil.isNotNull(req.getLogList()) && req.getLogList().size()>0){
// normalInOutDtos = saveInOutRecords(req); // normalInOutDtos = saveInOutRecords(req);
normalInOutDtos = saveInOutRecordsToRedis(req); d = saveInOutRecordsToRedis(req);
} }
//4.对日常出入库记录进行装备汇总统计 //4.对日常出入库记录进行装备汇总统计
boolean d=true; // boolean d=true;
if (normalInOutDtos.size()>0){ // if (normalInOutDtos.size()>0){
String outInState = normalInOutDtos.get(0).getOutInState(); // String outInState = normalInOutDtos.get(0).getOutInState();
d = updateNumToSum(outInState, normalInOutDtos); // d = updateNumToSum(outInState, normalInOutDtos);
} // }
return a && b && c && c1 && d; return a && b && c && c1 && d;
} }
...@@ -703,14 +705,14 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm ...@@ -703,14 +705,14 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm
} }
public List<NormalInOutDto> saveInOutRecordsToRedis(OutInLogsReq req) { public boolean saveInOutRecordsToRedis(OutInLogsReq req) {
//返回结果,用于日常出入库时计算更新库存汇总表 //返回结果,用于日常出入库时计算更新库存汇总表
List<SummaryLogReq> logSummaryList = req.getLogList(); List<SummaryLogReq> logSummaryList = req.getLogList();
//遍历logSummaryList查询出没有单据的作为日常出入库,并再次存放到list中,后面用于进行修改库存汇总 //遍历logSummaryList查询出没有单据的作为日常出入库,并再次存放到list中,后面用于进行修改库存汇总
//返回returnList结果,用于日常出入库时计算更新库存汇总表 //返回returnList结果,用于日常出入库时计算更新库存汇总表
List<NormalInOutDto> returnList=new ArrayList<>(); // List<NormalInOutDto> returnList=new ArrayList<>();
//存一个list用于修改库存inventory表的数据(采购时那么这个inventoryList就为空) //存一个list用于修改库存inventory表的数据(采购时那么这个inventoryList就为空)
List<Inventory> inventoryList=new ArrayList<>(); List<Inventory> inventoryList=new ArrayList<>();
List<OrderLog> orderLogList=new ArrayList<>(); List<OrderLog> orderLogList=new ArrayList<>();
...@@ -773,17 +775,16 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm ...@@ -773,17 +775,16 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm
List<LogDetailReq> detailReqList=new ArrayList<>(); List<LogDetailReq> detailReqList=new ArrayList<>();
for (DetailLogReq detailLogReq : logList) { for (DetailLogReq detailLogReq : logList) {
//将所有装备信息进行存放(为后面计算汇总信息) //将所有装备信息进行存放(为后面计算汇总信息)
if (logreq.getBussinessType().equals("normal")) { // if (logreq.getBussinessType().equals("normal")) {
NormalInOutDto normalInOutDto = new NormalInOutDto(); // NormalInOutDto normalInOutDto = new NormalInOutDto();
BeanPlusUtil.copyProperties(detailLogReq, normalInOutDto); // BeanPlusUtil.copyProperties(detailLogReq, normalInOutDto);
normalInOutDto.setLocationId(logSummary.getLocationId()); // normalInOutDto.setLocationId(logSummary.getLocationId());
normalInOutDto.setLocationName(logSummary.getLocationName()); // normalInOutDto.setLocationName(logSummary.getLocationName());
normalInOutDto.setOrgId(logSummary.getOrgId()); // normalInOutDto.setOrgId(logSummary.getOrgId());
normalInOutDto.setOrgName(logSummary.getOrgName()); // normalInOutDto.setOrgName(logSummary.getOrgName());
normalInOutDto.setNumber(1); // normalInOutDto.setNumber(1);
normalInOutDto.setOutInState(logSummary.getOutInState()); // normalInOutDto.setOutInState(logSummary.getOutInState());
returnList.add(normalInOutDto); // }
}
//判断logSummary是否为采购,快速移库,和领用出库 //判断logSummary是否为采购,快速移库,和领用出库
//如果是采购则不处理,因为采购的inventory是跟着单子来处理的,其他的单子直接根据出入库记录来处理 //如果是采购则不处理,因为采购的inventory是跟着单子来处理的,其他的单子直接根据出入库记录来处理
if (!logreq.getBussinessType().equals("purchase") && !logreq.getBussinessType().equals("quick") ){ if (!logreq.getBussinessType().equals("purchase") && !logreq.getBussinessType().equals("quick") ){
...@@ -935,7 +936,7 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm ...@@ -935,7 +936,7 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm
} }
return returnList; return true;
} }
} }
......
...@@ -27,6 +27,7 @@ import com.junmp.jyzb.api.exception.enums.WarehouseExceptionEnum; ...@@ -27,6 +27,7 @@ import com.junmp.jyzb.api.exception.enums.WarehouseExceptionEnum;
import com.junmp.jyzb.cache.MsgRedisCache; import com.junmp.jyzb.cache.MsgRedisCache;
import com.junmp.jyzb.cache.OutInRecordRedisCache; import com.junmp.jyzb.cache.OutInRecordRedisCache;
import com.junmp.jyzb.entity.*; import com.junmp.jyzb.entity.*;
import com.junmp.jyzb.mapper.InventoryMapper;
import com.junmp.jyzb.mapper.InventorySummaryMapper; import com.junmp.jyzb.mapper.InventorySummaryMapper;
import com.junmp.jyzb.mapper.OrderMainMapper; import com.junmp.jyzb.mapper.OrderMainMapper;
import com.junmp.jyzb.service.*; import com.junmp.jyzb.service.*;
...@@ -63,6 +64,7 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -63,6 +64,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.management.remote.rmi._RMIConnection_Stub; import javax.management.remote.rmi._RMIConnection_Stub;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.Max;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
...@@ -144,6 +146,9 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain ...@@ -144,6 +146,9 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
private LogDetailService logDetailService; private LogDetailService logDetailService;
@Resource @Resource
private InventoryMapper inventoryMapper;
@Resource
private InventorySummaryMapper inventorySummaryMapper; private InventorySummaryMapper inventorySummaryMapper;
@Autowired @Autowired
private RabbitMQSendMsg MQ; private RabbitMQSendMsg MQ;
...@@ -911,12 +916,12 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain ...@@ -911,12 +916,12 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
List<LogSummaryReq> logList=new ArrayList<>(); List<LogSummaryReq> logList=new ArrayList<>();
//比较两个子单id完全一致,判断传递的子单据id在数据库中是否存在,如果不存在则抛出子单据不存在异常 //比较两个子单id完全一致,判断传递的子单据id在数据库中是否存在,如果不存在则抛出子单据不存在异常
if (collect.size() == existingIds.size() && collect.containsAll(existingIds) && existingIds.containsAll(collect)){ if (collect.size() == existingIds.size() && collect.containsAll(existingIds) && existingIds.containsAll(collect)){
//新增空装备 //新增空装备(入库)
List<Inventory> addInvList=new ArrayList<>(); List<Inventory> addInvList=new ArrayList<>();
List<WarehouseInventory> addWareInvList=new ArrayList<>(); List<WarehouseInventory> addWareInvList=new ArrayList<>();
//编辑装备 //编辑装备(出库)
List<InventoryReq> updateInvList=new ArrayList<>(); List<Inventory> updateInvList=new ArrayList<>();
// List<WarehouseInventory> delWareInvList=new ArrayList<>();
//遍历子单 //遍历子单
...@@ -967,9 +972,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain ...@@ -967,9 +972,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
data.setTypeId(ObjectUtil.isNull(detailJsonReq.getTypeId())? uploadDetailReq.getTypeId():detailJsonReq.getTypeId()); data.setTypeId(ObjectUtil.isNull(detailJsonReq.getTypeId())? uploadDetailReq.getTypeId():detailJsonReq.getTypeId());
BigDecimal price=BigDecimal.ZERO; BigDecimal price=BigDecimal.ZERO;
if (ObjectUtil.isNull(detailJsonReq.getPrice())){ if (ObjectUtil.isNull(detailJsonReq.getPrice())){
// price=equipmentTypeService.getOne(new LambdaQueryWrapper<EquipmentType>()
// .eq(EquipmentType::getId,uploadDetailReq.getTypeId()))
// .getPrice();
price=new BigDecimal(uploadDetailReq.getPrice()); price=new BigDecimal(uploadDetailReq.getPrice());
} }
data.setPrice(ObjectUtil.isNull(detailJsonReq.getPrice())? price.toString() :detailJsonReq.getPrice().toString()); data.setPrice(ObjectUtil.isNull(detailJsonReq.getPrice())? price.toString() :detailJsonReq.getPrice().toString());
...@@ -1020,12 +1023,14 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain ...@@ -1020,12 +1023,14 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
inventory.setState("normal"); inventory.setState("normal");
inventory.setBussinessState("normal"); inventory.setBussinessState("normal");
inventory.setCreateTime(DateTimeUtil.getCurrentDateTime()); inventory.setCreateTime(DateTimeUtil.getCurrentDateTime());
inventory.setProductionDate(ObjectUtil.isNull(detailJsonReq.getProductionDate())?DateTimeUtil.DateByDays():detailJsonReq.getProductionDate()); inventory.setProductionDate(ObjectUtil.isNull(detailJsonReq.getProductionDate())?DateTimeUtil.DateByDays():DateTimeUtil.DaysToZero(detailJsonReq.getProductionDate()));
inventory.setWarrantyPeriod(ObjectUtil.isNull(detailJsonReq.getWarrantyPeriod())?12:detailJsonReq.getWarrantyPeriod()); inventory.setWarrantyPeriod(ObjectUtil.isNull(detailJsonReq.getWarrantyPeriod())?12:detailJsonReq.getWarrantyPeriod());
inventory.setMaintenancePeriod(ObjectUtil.isNull(detailJsonReq.getMaintenancePeriod())?12:detailJsonReq.getMaintenancePeriod()); inventory.setMaintenancePeriod(ObjectUtil.isNull(detailJsonReq.getMaintenancePeriod())?12:detailJsonReq.getMaintenancePeriod());
inventory.setTypeName(uploadDetailReq.getTypeName()); inventory.setTypeName(uploadDetailReq.getTypeName());
inventory.setSizeName(uploadDetailReq.getSizeName()); inventory.setSizeName(uploadDetailReq.getSizeName());
inventory.setLocationName(detailJsonReq.getLocationName());
inventory.setBussinessType(req.getBussinessType()); inventory.setBussinessType(req.getBussinessType());
inventory.setLocationState("in");
addInvList.add(inventory); addInvList.add(inventory);
WarehouseInventory warehouseInventory = new WarehouseInventory(); WarehouseInventory warehouseInventory = new WarehouseInventory();
warehouseInventory.setOrgId(orderMain.getEndOrgId()); warehouseInventory.setOrgId(orderMain.getEndOrgId());
...@@ -1039,36 +1044,27 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain ...@@ -1039,36 +1044,27 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
warehouseInventory.setOrgName(orgName); warehouseInventory.setOrgName(orgName);
warehouseInventory.setTypeName(uploadDetailReq.getTypeName()); warehouseInventory.setTypeName(uploadDetailReq.getTypeName());
warehouseInventory.setSizeName(uploadDetailReq.getSizeName()); warehouseInventory.setSizeName(uploadDetailReq.getSizeName());
warehouseInventory.setLocationName(detailJsonReq.getLocationName());
addWareInvList.add(warehouseInventory); addWareInvList.add(warehouseInventory);
} }
} }
else {//出库
//需要先根据创建的单子进行查询,再随机将两个进行设置为出库
List<Inventory> eqsList=inventoryMapper.getEqsInfo(orgId,detailJsonReq.getLocationId(),detailJsonReq.getTypeId(),
detailJsonReq.getSizeId(),detailJsonReq.getPrice(),detailJsonReq.getWarrantyPeriod(),
DateTimeUtil.DaysToZero(detailJsonReq.getProductionDate()),DateTimeUtil.setTimeToMax(detailJsonReq.getProductionDate()));
for (int i = 0; i < subNum; i++) {
Inventory inventory = eqsList.get(i);
updateInvList.add(inventory);
}
}
} }
} }
//出库记账logdetail
//将inventortList中的数据修改状态
// if (CollectionUtil.isNotEmpty(uploadDetailReq.getInventoryList())){
//
// List<InventoryReq> inventoryList =uploadDetailReq.getInventoryList();
// for (InventoryReq inv:inventoryList){
// LogSummaryReq lsReq = logMap.get(inv.getLocationId());
// List<LogDetailReq> logDetailList = lsReq.getLogList();
// LogDetailReq logDetailReq = new LogDetailReq();
// BeanPlusUtil.copyProperties(inv,logDetailReq);
// logDetailReq.setOutInState(req.getOrderType());
// logDetailReq.setCreateTime(DateTimeUtil.getCurrentDateTime());
// if (CollectionUtil.isEmpty(logDetailList)) {
// lsReq.setLogList(new ArrayList<>());
// logDetailList = lsReq.getLogList();
// }
// logDetailList.add(logDetailReq);
// LogSummaryReq logSummaryReq = logMap.get(inv.getLocationId());
// logSummaryReq.setLogList(logDetailList);
// logMap.put(inv.getLocationId(),logSummaryReq);
// }
// updateInvList.addAll(uploadDetailReq.getInventoryList());
// }
//修改单子数量数量 //修改单子数量数量
orderDetail.setModifyQuantity(uploadDetailReq.getModifyQuantity()); orderDetail.setModifyQuantity(uploadDetailReq.getModifyQuantity());
...@@ -1081,34 +1077,12 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain ...@@ -1081,34 +1077,12 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
} }
} }
//出库记账
// if (CollectionUtil.isNotEmpty(updateInvList)){ //入库添加虚拟装备
// //更新数据库中实体类的状态
// LambdaUpdateWrapper<Inventory> wp1 = Wrappers.<Inventory>lambdaUpdate();
// wp1.set(Inventory::getState, req.getBussinessType())
// .set(Inventory::getLocationState, req.getOrderType());
//
// LambdaUpdateWrapper<WarehouseInventory> wp2 = Wrappers.<WarehouseInventory>lambdaUpdate();
// wp2.set(WarehouseInventory::getLocationState, req.getOrderType());
// for (int i = 0; i < updateInvList.size(); i++) {
// InventoryReq updateInv = updateInvList.get(i);
// wp1.eq(Inventory::getLocationId, updateInv.getLocationId())
// .eq(Inventory::getOrgId, updateInv.getOrgId())
// .eq(Inventory::getEpc, updateInv.getEpc());
// wp2.eq(WarehouseInventory::getLocationId, updateInv.getLocationId())
// .eq(WarehouseInventory::getOrgId, updateInv.getOrgId())
// .eq(WarehouseInventory::getEpc, updateInv.getEpc());
// if (i < updateInvList.size()-1){
// wp1.or();
// wp2.or();
// }
// }
// inventoryService.update(wp1);
// warehouseInventoryService.update(wp2);
// }
if (CollectionUtil.isNotEmpty(addInvList)){ if (CollectionUtil.isNotEmpty(addInvList)){
inventoryService.saveBatch(addInvList); inventoryService.saveBatch(addInvList);
} }
//入库添加虚拟装备
if (CollectionUtil.isNotEmpty(addWareInvList)){ if (CollectionUtil.isNotEmpty(addWareInvList)){
warehouseInventoryService.saveBatch(addWareInvList); warehouseInventoryService.saveBatch(addWareInvList);
} }
...@@ -1132,7 +1106,48 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain ...@@ -1132,7 +1106,48 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
logMap.put(inv.getLocationId(),logSummaryReq); logMap.put(inv.getLocationId(),logSummaryReq);
} }
} }
//出库记账logDetail
if (CollectionUtil.isNotEmpty(updateInvList)){
for (Inventory inv:updateInvList){
LogSummaryReq lsReq = logMap.get(inv.getLocationId());
List<LogDetailReq> logDetailList = lsReq.getLogList();
LogDetailReq logDetailReq = new LogDetailReq();
BeanPlusUtil.copyProperties(inv,logDetailReq);
logDetailReq.setOutInState(req.getOrderType());
logDetailReq.setCreateTime(DateTimeUtil.getCurrentDateTime());
if (CollectionUtil.isEmpty(logDetailList)) {
lsReq.setLogList(new ArrayList<>());
logDetailList = lsReq.getLogList();
}
logDetailList.add(logDetailReq);
LogSummaryReq logSummaryReq = logMap.get(inv.getLocationId());
logSummaryReq.setLogList(logDetailList);
logMap.put(inv.getLocationId(),logSummaryReq);
}
}
//出库更新装备状态和出库状态
//出库记账
if (CollectionUtil.isNotEmpty(updateInvList)){
//更新数据库中实体类的状态
LambdaUpdateWrapper<Inventory> wp1 = Wrappers.<Inventory>lambdaUpdate();
wp1.set(Inventory::getState, req.getBussinessType())
.set(Inventory::getLocationState, req.getOrderType());
LambdaUpdateWrapper<WarehouseInventory> wp2 = Wrappers.<WarehouseInventory>lambdaUpdate();
wp2.set(WarehouseInventory::getLocationState, req.getOrderType());
for (int i = 0; i < updateInvList.size(); i++) {
Inventory updateInv = updateInvList.get(i);
wp1.eq(Inventory::getId, updateInv.getId());
wp2.eq(WarehouseInventory::getLocationId, updateInv.getInventoryId());
if (i < updateInvList.size()-1){
wp1.or();
wp2.or();
}
}
inventoryService.update(wp1);
warehouseInventoryService.update(wp2);
}
}else { }else {
throw new ServiceException(OrderExceptionEnum.ORDERDETAIL_ERROR); throw new ServiceException(OrderExceptionEnum.ORDERDETAIL_ERROR);
} }
...@@ -1382,18 +1397,41 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain ...@@ -1382,18 +1397,41 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
//修改装备汇总表中的数据inventory_summary //修改装备汇总表中的数据inventory_summary
public boolean updateSummaryInfo(UpdateOrderReq req,List<UpdateOrderDetailReq> orderDetailReqList,Long orgId,String orgCode,String orgName){ public boolean updateSummaryInfo(UpdateOrderReq req,List<UpdateOrderDetailReq> orderDetailReqList,Long orgId,String orgCode,String orgName){
//将库存summary表中数据进行查询出来一一进行比较,如果说sizeId,typeId,warehouseId相同则对该数据进行修改,如果说该数据不存在的话则在summary表中添加一条数据 //将库存summary表中数据进行查询出来一一进行比较,如果说sizeId,typeId,warehouseId相同则对该数据进行修改,如果说该数据不存在的话则在summary表中添加一条数据
List<Object[]> searchCriteria=new ArrayList<>();
for (UpdateOrderDetailReq upReq: orderDetailReqList) {
Object[] criteria=new Object[]{orgId,upReq.getWarehouseId(),upReq.getTypeId(),upReq.getSizeId(),upReq.getPrice(),upReq.getProperty()}; //将子单据进行汇总
searchCriteria.add(criteria); //加一个具体的list最终去遍历
// List<UpdateOrderDetailReq> list=new ArrayList<>();
Map<String,UpdateOrderDetailReq> map=new HashMap<>();
for (UpdateOrderDetailReq detailReq:orderDetailReqList) {
String key=orgId+detailReq.getWarehouseId()+detailReq.getTypeId()+detailReq.getSizeId()+detailReq.getPrice()+detailReq.getProperty();
if (map.containsKey(key)){
UpdateOrderDetailReq updateReq = map.get(key);
updateReq.setModifyQuantity(updateReq.getModifyQuantity()+detailReq.getModifyQuantity());
updateReq.setActualNum(updateReq.getActualNum()+detailReq.getActualNum());
map.put(key,updateReq);
}else {
UpdateOrderDetailReq updateReq = new UpdateOrderDetailReq();
BeanPlusUtil.copyProperties(detailReq,updateReq);
map.put(key,updateReq);
}
} }
//查询库存汇总
List<Object[]> searchCriteria=new ArrayList<>();
for (String key : map.keySet()) {
UpdateOrderDetailReq value = map.get(key);
Object[] criteria=new Object[]{orgId,value.getWarehouseId(),value.getTypeId(),value.getSizeId(),value.getPrice(),value.getProperty()};
searchCriteria.add(criteria);
}
//库存信息 //库存信息
List<InventorySummary> inventorySummaryList = inventorySummaryMapper.selectSum(searchCriteria); List<InventorySummary> inventorySummaryList = inventorySummaryMapper.selectSum(searchCriteria);
List<InventorySummary> addList=new ArrayList<>(); List<InventorySummary> addList=new ArrayList<>();
List<InventorySummary> updateList=new ArrayList<>(); List<InventorySummary> updateList=new ArrayList<>();
for (UpdateOrderDetailReq upReq: orderDetailReqList) { for (String key : map.keySet()) {
UpdateOrderDetailReq upReq = map.get(key);
boolean flag=false; boolean flag=false;
for (InventorySummary is:inventorySummaryList) { for (InventorySummary is:inventorySummaryList) {
if (upReq.getWarehouseId().equals(is.getLocationId()) && upReq.getSizeId().equals(is.getSizeId()) if (upReq.getWarehouseId().equals(is.getLocationId()) && upReq.getSizeId().equals(is.getSizeId())
...@@ -1411,15 +1449,30 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain ...@@ -1411,15 +1449,30 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
is.setPrice(is.getPrice().add(BigDecimal.valueOf(upReq.getModifyQuantity()).multiply(new BigDecimal(upReq.getPrice()))) ); is.setPrice(is.getPrice().add(BigDecimal.valueOf(upReq.getModifyQuantity()).multiply(new BigDecimal(upReq.getPrice()))) );
break; break;
case "return": case "return":
//如果入库数大于实际出库数,那么在库数和总数进行添加,出库数为0
if (is.getOutboundNumber()-upReq.getModifyQuantity()<0){
is.setOutboundNumber(0);
is.setStockNumber(is.getStockNumber()+upReq.getModifyQuantity()-is.getOutboundNumber());
is.setNumber(is.getNumber()+upReq.getModifyQuantity()-is.getOutboundNumber());
is.setUseNumber(Math.max((ObjectUtil.isNull(is.getUseNumber())?0:is.getUseNumber())-upReq.getModifyQuantity(),0));
}else {
is.setOutboundNumber(is.getOutboundNumber()-upReq.getModifyQuantity());
is.setStockNumber(is.getStockNumber()+upReq.getModifyQuantity());
is.setUseNumber(Math.max((ObjectUtil.isNull(is.getUseNumber())?0:is.getUseNumber())-upReq.getModifyQuantity(),0));
}
is.setPrice(is.getPrice().add(BigDecimal.valueOf(upReq.getModifyQuantity()).multiply(new BigDecimal(upReq.getPrice()))) );
break;
case "repair": case "repair":
//如果入库数大于实际出库数,那么在库数和总数进行添加,出库数为0 //如果入库数大于实际出库数,那么在库数和总数进行添加,出库数为0
if (is.getOutboundNumber()-upReq.getModifyQuantity()<0){ if (is.getOutboundNumber()-upReq.getModifyQuantity()<0){
is.setOutboundNumber(0); is.setOutboundNumber(0);
is.setStockNumber(is.getStockNumber()+upReq.getModifyQuantity()-is.getOutboundNumber()); is.setStockNumber(is.getStockNumber()+upReq.getModifyQuantity()-is.getOutboundNumber());
is.setNumber(is.getNumber()+upReq.getModifyQuantity()-is.getOutboundNumber()); is.setNumber(is.getNumber()+upReq.getModifyQuantity()-is.getOutboundNumber());
is.setFixNumber(Math.max((ObjectUtil.isNull(is.getFixNumber())?0:is.getFixNumber())-upReq.getModifyQuantity(),0));
}else { }else {
is.setOutboundNumber(is.getOutboundNumber()-upReq.getModifyQuantity()); is.setOutboundNumber(is.getOutboundNumber()-upReq.getModifyQuantity());
is.setStockNumber(is.getStockNumber()+upReq.getModifyQuantity()); is.setStockNumber(is.getStockNumber()+upReq.getModifyQuantity());
is.setFixNumber(Math.max((ObjectUtil.isNull(is.getFixNumber())?0:is.getFixNumber())-upReq.getModifyQuantity(),0));
} }
is.setPrice(is.getPrice().add(BigDecimal.valueOf(upReq.getModifyQuantity()).multiply(new BigDecimal(upReq.getPrice()))) ); is.setPrice(is.getPrice().add(BigDecimal.valueOf(upReq.getModifyQuantity()).multiply(new BigDecimal(upReq.getPrice()))) );
break; break;
...@@ -1427,10 +1480,6 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain ...@@ -1427,10 +1480,6 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
}else { }else {
switch (req.getBussinessType()){ switch (req.getBussinessType()){
case "destruction": case "destruction":
// //我先把库存数量加回来,然后根据实际出库数量进行删减
// is.setDestructionNumber(is.getDestructionNumber() - upReq.getPlanNum());
// is.setNumber(is.getNumber() + upReq.getPlanNum());
// is.setStockNumber(is.getStockNumber() + upReq.getPlanNum());
//直接减去库存数量 //直接减去库存数量
is.setNumber(Math.max(is.getNumber() - upReq.getModifyQuantity(), 0)); is.setNumber(Math.max(is.getNumber() - upReq.getModifyQuantity(), 0));
...@@ -1465,15 +1514,17 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain ...@@ -1465,15 +1514,17 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
is.setFixCount(0); is.setFixCount(0);
} }
is.setFixCount(is.getFixCount()+upReq.getModifyQuantity()); is.setFixCount(is.getFixCount()+upReq.getModifyQuantity());
if (ObjectUtil.isNull(is.getFixNumber())){
is.setFixNumber(0);
}
is.setFixNumber(is.getFixNumber()+upReq.getModifyQuantity());
break; break;
case "other": case "other":
is.setOutboundNumber(is.getOutboundNumber()+upReq.getModifyQuantity()); is.setOutboundNumber(is.getOutboundNumber()+upReq.getModifyQuantity());
is.setStockNumber(Math.max(is.getStockNumber() - upReq.getModifyQuantity(), 0)); is.setStockNumber(Math.max(is.getStockNumber() - upReq.getModifyQuantity(), 0));
is.setPrice(is.getPrice().subtract(BigDecimal.valueOf(upReq.getModifyQuantity()).multiply(new BigDecimal(upReq.getPrice()))) ); is.setPrice(is.getPrice().subtract(BigDecimal.valueOf(upReq.getModifyQuantity()).multiply(new BigDecimal(upReq.getPrice()))) );
break; break;
// case "quick":
//
// break;
} }
} }
updateList.add(is); updateList.add(is);
...@@ -1509,10 +1560,17 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain ...@@ -1509,10 +1560,17 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
inventorySummary.setUseNumber(0); inventorySummary.setUseNumber(0);
inventorySummary.setStockNumber(upReq.getModifyQuantity()); inventorySummary.setStockNumber(upReq.getModifyQuantity());
addList.add(inventorySummary); addList.add(inventorySummary);
if (req.getBussinessType().equals("return")){
inventorySummary.setUseNumber(0);
} else if (req.getBussinessType().equals("repair")) {
inventorySummary.setFixNumber(0);
}
} }
} }
} }
boolean a=true; boolean a=true;
if (addList.size()>0){ if (addList.size()>0){
boolean b = inventorySummaryService.saveBatch(addList); boolean b = inventorySummaryService.saveBatch(addList);
......
...@@ -312,9 +312,10 @@ public class WarehouseServiceImpl extends ServiceImpl<WarehouseMapper,Warehouse> ...@@ -312,9 +312,10 @@ public class WarehouseServiceImpl extends ServiceImpl<WarehouseMapper,Warehouse>
temperatureRedisCache.addTemperatureHumidity(req.getWarehouseId(),warehouse.getName(), temperatureRedisCache.addTemperatureHumidity(req.getWarehouseId(),warehouse.getName(),
req.getCreateTime(),req.getHumidity(),req.getTemperature()); req.getCreateTime(),req.getHumidity(),req.getTemperature());
//更新仓库的温度和湿度 //更新仓库的温度和湿度
warehouse.setHumidity(req.getHumidity()); // warehouse.setHumidity(req.getHumidity());
warehouse.setTemperature(req.getTemperature()); // warehouse.setTemperature(req.getTemperature());
return updateById(warehouse); return true;
// return updateById(warehouse);
} }
//获取redis中的温湿度记录 //获取redis中的温湿度记录
......
...@@ -5,7 +5,7 @@ import cn.hutool.core.util.ObjectUtil; ...@@ -5,7 +5,7 @@ import cn.hutool.core.util.ObjectUtil;
import java.text.DateFormat; import java.text.DateFormat;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.time.LocalDate; import java.time.*;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.*; import java.util.*;
...@@ -110,4 +110,42 @@ public class DateTimeUtil { ...@@ -110,4 +110,42 @@ public class DateTimeUtil {
return date; return date;
} }
//将时分秒转成00:00:00
public static Date DaysToZero(Date time){
// 将Date转换为Instant
Instant instant = time.toInstant();
// 获取默认时区的ZonedDateTime对象
ZonedDateTime zonedDateTime = instant.atZone(ZoneId.systemDefault());
// 将ZonedDateTime转换为LocalDateTime对象
LocalDateTime dateTime = zonedDateTime.toLocalDateTime();
// 将时分秒部分设置为0
LocalDateTime newDateTime = dateTime.with(LocalTime.MIN);
// 将LocalDateTime转换为Date
Date newDate = Date.from(newDateTime.atZone(ZoneId.systemDefault()).toInstant());
return newDate;
}
//将时分秒转成23:59:59
public static Date setTimeToMax(Date time) {
// 将Date转换为Instant
Instant instant = time.toInstant();
// 获取默认时区的ZonedDateTime对象
ZonedDateTime zonedDateTime = instant.atZone(ZoneId.systemDefault());
// 将ZonedDateTime转换为LocalDateTime对象
LocalDateTime dateTime = zonedDateTime.toLocalDateTime();
// 将时分秒部分设置为23:59:59
LocalDateTime newDateTime = dateTime.with(LocalTime.MAX);
// 将LocalDateTime转换为Date
Date newDate = Date.from(newDateTime.atZone(ZoneId.systemDefault()).toInstant());
return newDate;
}
} }
\ No newline at end of file
...@@ -38,38 +38,6 @@ ...@@ -38,38 +38,6 @@
</sql> </sql>
<select id="getLocationInventory" resultType="Map">
select
id,
<if test="queryType == 'org'">
org_id_int as locationId,
</if>
<if test="queryType == 'warehouse' or queryType == 'cabinet'">
location_id as locationId,
</if>
<if test="queryType == 'org'">
org_name as locationName,
</if>
<if test="queryType == 'warehouse' or queryType == 'cabinet'">
location_name as locationName,
</if>
type_id as typeId,
type_name as typeName,
size_id as sizeId,
size_name as sizeName,
number,
price,
stock_number as stockNumber,
outbound_number as outboundNumber
from base_inventory_summary
<if test="queryType == 'org'">
where org_id_int = #{idMsg}
</if>
<if test="queryType == 'warehouse' or queryType == 'cabinet'">
where location_id = #{idMsg}
</if>
</select>
<insert id="SetCabinetInventory"> <insert id="SetCabinetInventory">
...@@ -554,40 +522,7 @@ ...@@ -554,40 +522,7 @@
limit ${item[2]},${item[3]} limit ${item[2]},${item[3]}
</foreach> </foreach>
</select> </select>
<!-- <select id="GetDetailByTerms" resultType="com.junmp.jyzb.api.bean.dto.InventoryDto">-->
<!-- </select>-->
<!--&lt;!&ndash; <select id="alignInventoryInfo" resultType="com.junmp.jyzb.api.bean.dto.FetchingDataDto.EquipmentDto"&ndash;&gt;-->
<!--&lt;!&ndash; parameterType="com.junmp.jyzb.api.bean.query.InventoryReq">&ndash;&gt;-->
<!-- SELECT i.id,i.package_id,i.type_id,i.size_id,i.supplier_id,i.epc,-->
<!-- i.org_id_int as org_id,i.state as equ_state,i.bussiness_state,i.location_state as state,-->
<!-- i.production_date,i.warranty_period,i.maintenance_period,i.fix_count,i.location_id,i.location_type,i.lost_flag,-->
<!-- i.price,i.create_time,i.update_time,i.note,es.name as size_name,et.name as type_name,bs.name as supplier_name, bw.name as location_name-->
<!--&lt;!&ndash; FROM `base_inventory` i&ndash;&gt;-->
<!-- join base_equipment_size es on i.size_id=es.id-->
<!-- join base_equipment_type et on i.type_id=et.id-->
<!-- join base_warehouse bw on bw.id=i.location_id-->
<!-- join base_supplier bs on bs.id=i.supplier_id-->
<!--&lt;!&ndash; where i.org_id_int=#{orgId}&ndash;&gt;-->
<!-- <if test="locationId!= null and locationId != ''">-->
<!-- and i.location_id=#{locationId}-->
<!-- </if>-->
<!-- <if test="date!= null and date != ''">-->
<!-- and i.update_time &gt; #{date}-->
<!-- </if>-->
<!-- <if test="typeIdList != null and typeIdList.size()>0">-->
<!-- and type_id in-->
<!-- <foreach collection="typeIdList" item="item" open="(" separator="," close=")">-->
<!-- #{item}-->
<!-- </foreach>-->
<!-- </if>-->
<!-- <if test="sizeIdList != null and sizeIdList.size()>0">-->
<!-- and size_id in-->
<!-- <foreach collection="sizeIdList" item="item" open="(" separator="," close=")">-->
<!-- #{item}-->
<!-- </foreach>-->
<!-- </if>-->
<!-- </select>-->
<select id="alignInventoryInfo" resultType="com.junmp.jyzb.api.bean.dto.FetchingDataDto.EquipmentDto" <select id="alignInventoryInfo" resultType="com.junmp.jyzb.api.bean.dto.FetchingDataDto.EquipmentDto"
parameterType="com.junmp.jyzb.api.bean.query.InventoryReq"> parameterType="com.junmp.jyzb.api.bean.query.InventoryReq">
...@@ -708,7 +643,7 @@ ...@@ -708,7 +643,7 @@
</select> </select>
<select id="GetByPeriodAndDate" resultType="com.junmp.jyzb.api.bean.PeriodAndDateDto"> <select id="GetByPeriodAndDate" resultType="com.junmp.jyzb.api.bean.PeriodAndDateDto">
select count(*) as zkCount,location_id,max(location_name) as location_name,warranty_period,production_date,price,org_id FROM( select count(*) as zkCount,location_id,max(location_name) as location_name,warranty_period,production_date,price as unit_price,org_id FROM(
SELECT a.*,b.warranty_period,b.production_date,b.price FROM SELECT a.*,b.warranty_period,b.production_date,b.price FROM
(SELECT org_id,size_id,type_id,location_id,epc,location_name FROM `base_warehouse_inventory` wi (SELECT org_id,size_id,type_id,location_id,epc,location_name FROM `base_warehouse_inventory` wi
where org_id=#{req.orgId} and type_id=#{req.typeId} where org_id=#{req.orgId} and type_id=#{req.typeId}
...@@ -742,6 +677,21 @@ ...@@ -742,6 +677,21 @@
</if> </if>
</select> </select>
<select id="getEqsInfo" resultType="com.junmp.jyzb.entity.Inventory">
SELECT wi.id as inventoryId,wi.type_id,wi.size_id,wi.shelf_id,wi.shelf_location, wi.epc,wi.org_id,wi.location_state,
wi.location_type,wi.location_id,i.id ,i.price,i.state,i.bussiness_state,
i.production_date,i.warranty_period,i.maintenance_period, i.term_state
FROM base_warehouse_inventory wi
LEFT JOIN base_inventory i ON i.epc = wi.epc
WHERE wi.org_id=#{orgId} and wi.type_id=#{typeId}
and wi.location_type=0
and wi.location_id =#{locationId}
and i.location_state = "in"
and wi.size_id=#{sizeId}
and i.price=#{price}
and i.warranty_period=#{warrantyPeriod}
and i.production_date >= #{startTime} and i.production_date &lt; #{endTime}
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -316,7 +316,7 @@ ...@@ -316,7 +316,7 @@
<select id="selectSum" resultType="com.junmp.jyzb.entity.InventorySummary"> <select id="selectSum" resultType="com.junmp.jyzb.entity.InventorySummary">
select id,valuekey,org_id_int as org_id,org_name,org_code,type_id,type_name,size_id,size_name,location_id,location_name,location_type, select id,valuekey,org_id_int as org_id,org_name,org_code,type_id,type_name,size_id,size_name,location_id,location_name,location_type,
number,unit_price,price,stock_number,outbound_number,destruction_price,destruction_number,expire_number,expire_price, number,unit_price,price,stock_number,outbound_number,destruction_price,destruction_number,expire_number,expire_price,
broken_price,broken_number,near_broken_price,near_broken_number,use_number,agent_broken_num,fix_count,use_count,create_time,update_time,threshold,property broken_price,broken_number,fix_price,fix_number,use_number,agent_broken_num,fix_count,use_count,create_time,update_time,threshold,property
from base_inventory_summary where from base_inventory_summary where
<foreach collection="list" item="item" separator="or"> <foreach collection="list" item="item" separator="or">
( (
......
...@@ -36,7 +36,7 @@ knife4j: ...@@ -36,7 +36,7 @@ knife4j:
spring: spring:
datasource: datasource:
driver-class-name: com.mysql.cj.jdbc.Driver driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://192.168.1.128:3306/db_jyzb_test?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=CTT&nullCatalogMeansCurrent=true url: jdbc:mysql://192.168.1.128:3306/db_jyzb?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=CTT&nullCatalogMeansCurrent=true
username: root username: root
password: 123456 password: 123456
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论