同步相关修改,新增mybatis plus ,,条码缺失,同步条码缺失

busUser
anthonywj 2 years ago
parent b485a740dc
commit 39471eb342

@ -98,11 +98,11 @@
<version>1.1.10</version>
</dependency>
<!--mybatis -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<!-- <dependency>-->
<!-- <groupId>org.mybatis.spring.boot</groupId>-->
<!-- <artifactId>mybatis-spring-boot-starter</artifactId>-->
<!-- <version>1.3.2</version>-->
<!-- </dependency>-->
<dependency>
<groupId>com.itfsw</groupId>
<artifactId>mybatis-generator-plugin</artifactId>
@ -302,6 +302,13 @@
<version>3.10.0</version>
</dependency>
<!--mybatis plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.2</version>
</dependency>
<!-- jasperreports end-->
<!-- jasperreports-dependency-end -->
</dependencies>
@ -381,4 +388,4 @@
</profile>
</profiles>
</project>
</project>

@ -1,5 +1,6 @@
package com.glxp.api.admin.config;
import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.annotation.MapperScan;
@ -40,7 +41,7 @@ public class MasterDataSourceConfig {
@Primary
public SqlSessionFactory masterSqlSessionFactory(@Qualifier("masterDataSource") DataSource masterDataSource)
throws Exception {
final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
final MybatisSqlSessionFactoryBean sessionFactory = new MybatisSqlSessionFactoryBean();
sessionFactory.setDataSource(masterDataSource);
sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver()
.getResources(MasterDataSourceConfig.MAPPER_LOCATION));

@ -731,7 +731,7 @@ public class StockOrderController {
*/
@AuthRuleAnnotation("")
@GetMapping("/udiwms/stock/order/received/rollback")
public BaseResponse rollbackOrder(String billNo,Integer contrastStatus) {
public BaseResponse rollbackOrder(String billNo, Integer contrastStatus) {
if (StrUtil.isBlank(billNo)) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
}
@ -753,7 +753,7 @@ public class StockOrderController {
//未验收单据撤回到等待校验
@AuthRuleAnnotation("")
@GetMapping("/udiwms/stock/order/unReceive/rollback")
public BaseResponse rollUnReceivebackOrder(String billNo,Integer contrastStatus) {
public BaseResponse rollUnReceivebackOrder(String billNo, Integer contrastStatus) {
if (StrUtil.isBlank(billNo)) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
}
@ -808,8 +808,14 @@ public class StockOrderController {
@PostMapping("/udiwms/stock/order/accept/addCode")
public BaseResponse acceptAddCode(@RequestBody AcceptOrderEntity acceptOrderEntity) {
StockOrderEntity stockOrderEntity = stockOrderService.findByBillNo(acceptOrderEntity.getBillNo());
if (StrUtil.isEmpty(acceptOrderEntity.getCode()))
return ResultVOUtils.error(500, "UDI码不能为空");
StockOrderEntity stockOrderEntity = stockOrderService.findByBillNo(acceptOrderEntity.getBillNo());
String code = acceptOrderEntity.getCode();
if (code.endsWith("\u001D")) {
code = code.replace("\u001D", "");
}
//
// if (warehouseEntity == null) {
// return ResultVOUtils.error(500, "非此单UDI码");
@ -821,7 +827,7 @@ public class StockOrderController {
} else {
codeList = warehouseEntityList;
}
WarehouseEntity warehouseEntity = isExit(codeList, acceptOrderEntity.getCode());
WarehouseEntity warehouseEntity = isExit(codeList, code);
if (warehouseEntity == null) {
return ResultVOUtils.error(500, "非此单UDI码");
}
@ -834,7 +840,7 @@ public class StockOrderController {
}
List<StockOrderDetailEntity> stockOrderDetailEntities = acceptOrderEntity.getOrderDetailEntities();
if (StrUtil.isNotEmpty(acceptOrderEntity.getCode()) && CollUtil.isNotEmpty(stockOrderDetailEntities)) {
if (StrUtil.isNotEmpty(code) && CollUtil.isNotEmpty(stockOrderDetailEntities)) {
boolean isExit = false;
for (StockOrderDetailEntity stockOrderDetailEntity : stockOrderDetailEntities) {
if (stockOrderDetailEntity.getRelId().equals(warehouseEntity.getRelId()) &&

@ -2,18 +2,13 @@ package com.glxp.api.admin.controller.info;
import cn.hutool.core.collection.CollUtil;
import com.glxp.api.admin.annotation.AuthRuleAnnotation;
import com.glxp.api.admin.constant.Constant;
import com.glxp.api.admin.entity.info.SyncDataBustypeEntity;
import com.glxp.api.admin.entity.info.SyncDataSetEntity;
import com.glxp.api.admin.entity.sync.SyncDataBustypeEntity;
import com.glxp.api.admin.entity.info.SyncUploadDataSetEntity;
import com.glxp.api.admin.res.info.SyncDataSetResponse;
import com.glxp.api.admin.service.info.SyncUploadDataBustypeService;
import com.glxp.api.admin.service.info.SyncUploadDataSetService;
import com.glxp.api.admin.util.RedisUtil;
import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

@ -0,0 +1,117 @@
package com.glxp.api.admin.controller.inout;
import cn.hutool.core.util.StrUtil;
import com.github.pagehelper.PageInfo;
import com.glxp.api.admin.annotation.AuthRuleAnnotation;
import com.glxp.api.admin.entity.inout.IoCodeLostEntity;
import com.glxp.api.admin.entity.inout.WarehouseEntity;
import com.glxp.api.admin.res.PageSimpleResponse;
import com.glxp.api.admin.res.inout.IoCodeLostResponse;
import com.glxp.api.admin.service.inout.IoCodeLostService;
import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.validation.Valid;
import java.util.Date;
import java.util.List;
@RestController
public class IoCodeLostController {
@Resource
IoCodeLostService codeLostService;
@AuthRuleAnnotation("")
@PostMapping("warehouse/inout/getCodeLost")
public BaseResponse getCodeLost(@RequestBody @Valid IoCodeLostEntity ioCodeLostEntity, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
List<IoCodeLostResponse> list = codeLostService.selectLost(ioCodeLostEntity);
PageInfo<IoCodeLostResponse> pageInfo;
pageInfo = new PageInfo<>(list);
PageSimpleResponse<IoCodeLostResponse> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(list);
return ResultVOUtils.success(pageSimpleResponse);
}
@AuthRuleAnnotation("")
@PostMapping("warehouse/inout/updateCodeLost")
public BaseResponse updateCodeLost(@RequestBody @Valid IoCodeLostEntity ioCodeLostEntity, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
codeLostService.update(ioCodeLostEntity);
return ResultVOUtils.success("成功");
}
@PostMapping("warehouse/inout/saveTabCode")
public BaseResponse saveCode(@RequestBody WarehouseEntity codeTempEntity) {
if (StrUtil.isNotEmpty(codeTempEntity.getSerialNo()) && codeTempEntity.getSerialNo().length() > 20) {
return ResultVOUtils.error(500, "无效条码!序列号超出最大范围,不予缓存");
}
if (StrUtil.isNotEmpty(codeTempEntity.getBatchNo()) && codeTempEntity.getBatchNo().length() > 20) {
return ResultVOUtils.error(500, "无效条码!批次号超出最大范围,不予缓存");
}
if (StrUtil.isBlank(codeTempEntity.getSerialNo()) && StrUtil.isBlank(codeTempEntity.getBatchNo())) {
return ResultVOUtils.error(500, "批次号不能为空!,不予缓存");
}
if (StrUtil.isNotEmpty(codeTempEntity.getSerialNo())) {
return ResultVOUtils.error(500, "有序列号不予缓存");
}
IoCodeLostEntity codeLostEntity = codeLostService.findByCode(codeTempEntity.getCode());
IoCodeLostEntity insertEntity = null;
if (codeLostEntity == null) {
insertEntity = new IoCodeLostEntity();
insertEntity.setCreateTime(new Date());
} else {
insertEntity = codeLostEntity;
}
insertEntity.setCode(codeTempEntity.getCode());
insertEntity.setBatchNo(codeTempEntity.getBatchNo());
insertEntity.setProduceDate(codeTempEntity.getProduceDate());
insertEntity.setExpireDate(codeTempEntity.getExpireDate());
insertEntity.setSerialNo(codeTempEntity.getSerialNo());
insertEntity.setSupId(codeTempEntity.getSupId());
insertEntity.setUpdateTime(new Date());
if (codeLostEntity != null) {
codeLostService.update(insertEntity);
} else {
codeLostService.insert(insertEntity);
}
return ResultVOUtils.success("修改成功!");
}
//获取验收单据业务详情
@AuthRuleAnnotation("")
@GetMapping("/warehouse/inout/getTabCode")
public BaseResponse getTabCode(String code) {
if (StrUtil.isBlank(code)) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
}
IoCodeLostEntity codeLostEntity = codeLostService.findByCode(code);
if (codeLostEntity == null)
return ResultVOUtils.error(500, "未缓存!");
return ResultVOUtils.success(codeLostEntity);
}
}

@ -17,10 +17,7 @@ import com.glxp.api.admin.entity.basic.UdiEntity;
import com.glxp.api.admin.entity.basic.UdiInfoEntity;
import com.glxp.api.admin.entity.business.StockOrderEntity;
import com.glxp.api.admin.entity.info.SystemParamConfigEntity;
import com.glxp.api.admin.entity.inout.OrderEntity;
import com.glxp.api.admin.entity.inout.WarehouseBussinessTypeEntity;
import com.glxp.api.admin.entity.inout.WarehouseEntity;
import com.glxp.api.admin.entity.inout.WarehouseUserEntity;
import com.glxp.api.admin.entity.inout.*;
import com.glxp.api.admin.entity.inventory.InvBusUserEntity;
import com.glxp.api.admin.entity.inventory.InvProductDetailEntity;
import com.glxp.api.admin.entity.inventory.InvSubWarehouseEntity;
@ -595,7 +592,8 @@ public class WareHouseController {
InvPreProductDetailService invPreProductDetailService;
@Resource
InvProductDetailService invProductDetailService;
@Resource
IoCodeLostService codeLostService;
//网页端数据上传调用接口
@AuthRuleAnnotation("")
@ -614,6 +612,9 @@ public class WareHouseController {
BussinessTypeEntity bussinessTypeEntity = bussinessTypeService.findBTByAction(addOrderRequest.getAction());
String code = addOrderRequest.getCode();
if (StringUtils.isBlank(code)) return ResultVOUtils.error(ResultEnum.DATA_ERROR);
if (code.endsWith("\u001D")) {
code = code.replace("\u001D", "");
}
UdiEntity udiEntity = FilterUdiUtils.getUdi(code);
if (udiEntity == null)
return ResultVOUtils.error(500, "无效条码!");
@ -658,16 +659,23 @@ public class WareHouseController {
BaseResponse checkOriginCodeRes = checkOriginCode(udiEntity);
if (checkOriginCodeRes != null) {
if (StrUtil.isNotEmpty(orderId)) {
WarehouseQueryRequest warehouseQueryRequest = new WarehouseQueryRequest();
warehouseQueryRequest.setOrderId(orderId);
List<WarehouseEntity> warehouseEntitys = codesTempService.findByOrderIdAndCode(warehouseQueryRequest);
WarehouseEntity warehouseEntity = isExitLocal(code, warehouseEntitys);
if (warehouseEntity == null) {
IoCodeLostEntity codeLostEntity = codeLostService.findByCode(code);
if (codeLostEntity == null) {
if (StrUtil.isNotEmpty(orderId)) {
WarehouseQueryRequest warehouseQueryRequest = new WarehouseQueryRequest();
warehouseQueryRequest.setOrderId(orderId);
List<WarehouseEntity> warehouseEntitys = codesTempService.findByOrderIdAndCode(warehouseQueryRequest);
WarehouseEntity warehouseEntity = isExitLocal(code, warehouseEntitys);
if (warehouseEntity == null) {
return checkOriginCodeRes;
}
} else
return checkOriginCodeRes;
}
} else
return checkOriginCodeRes;
} else {
udiEntity.setBatchNo(codeLostEntity.getBatchNo());
udiEntity.setExpireDate(codeLostEntity.getExpireDate());
udiEntity.setProduceDate(codeLostEntity.getProduceDate());
}
}
}

@ -1,14 +1,13 @@
package com.glxp.api.admin.controller.info;
package com.glxp.api.admin.controller.sync;
import cn.hutool.core.collection.CollUtil;
import com.alibaba.fastjson.JSON;
import com.glxp.api.admin.annotation.AuthRuleAnnotation;
import com.glxp.api.admin.constant.Constant;
import com.glxp.api.admin.entity.info.SyncDataBustypeEntity;
import com.glxp.api.admin.entity.info.SyncDataSetEntity;
import com.glxp.api.admin.entity.sync.SyncDataBustypeEntity;
import com.glxp.api.admin.entity.sync.SyncDataSetEntity;
import com.glxp.api.admin.res.info.SyncDataSetResponse;
import com.glxp.api.admin.service.info.SyncDataBustypeService;
import com.glxp.api.admin.service.info.SyncDataSetService;
import com.glxp.api.admin.service.sync.SyncDataBustypeService;
import com.glxp.api.admin.service.sync.SyncDataSetService;
import com.glxp.api.admin.util.RedisUtil;
import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse;

@ -0,0 +1,229 @@
package com.glxp.api.admin.dao;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.enums.SqlMethod;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.metadata.TableInfo;
import com.baomidou.mybatisplus.core.metadata.TableInfoHelper;
import com.baomidou.mybatisplus.core.toolkit.*;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.toolkit.SqlHelper;
import com.glxp.api.admin.util.BeanCopyUtils;
import org.apache.ibatis.binding.MapperMethod;
import org.apache.ibatis.logging.Log;
import org.apache.ibatis.logging.LogFactory;
import java.io.Serializable;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Objects;
/**
* Mapper ,
*
* @param <M> mapper
* @param <T> table
* @param <V> vo
* @author Lion Li
* @since 2021-05-13
*/
@SuppressWarnings("unchecked")
public interface BaseMapperPlus<M, T, V> extends BaseMapper<T> {
Log log = LogFactory.getLog(BaseMapperPlus.class);
int DEFAULT_BATCH_SIZE = 1000;
default Class<V> currentVoClass() {
return (Class<V>) ReflectionKit.getSuperClassGenericType(this.getClass(), BaseMapperPlus.class, 2);
}
default Class<T> currentModelClass() {
return (Class<T>) ReflectionKit.getSuperClassGenericType(this.getClass(), BaseMapperPlus.class, 1);
}
default Class<M> currentMapperClass() {
return (Class<M>) ReflectionKit.getSuperClassGenericType(this.getClass(), BaseMapperPlus.class, 0);
}
default List<T> selectList() {
return this.selectList(new QueryWrapper<>());
}
/**
*
*/
default boolean insertBatch(Collection<T> entityList) {
return insertBatch(entityList, DEFAULT_BATCH_SIZE);
}
/**
*
*/
default boolean updateBatchById(Collection<T> entityList) {
return updateBatchById(entityList, DEFAULT_BATCH_SIZE);
}
/**
*
*/
default boolean insertOrUpdateBatch(Collection<T> entityList) {
return insertOrUpdateBatch(entityList, DEFAULT_BATCH_SIZE);
}
/**
* ()
*/
default boolean insertBatch(Collection<T> entityList, int batchSize) {
String sqlStatement = SqlHelper.getSqlStatement(this.currentMapperClass(), SqlMethod.INSERT_ONE);
return SqlHelper.executeBatch(this.currentModelClass(), log, entityList, batchSize,
(sqlSession, entity) -> sqlSession.insert(sqlStatement, entity));
}
/**
* ()
*/
default boolean updateBatchById(Collection<T> entityList, int batchSize) {
String sqlStatement = SqlHelper.getSqlStatement(this.currentMapperClass(), SqlMethod.UPDATE_BY_ID);
return SqlHelper.executeBatch(this.currentModelClass(), log, entityList, batchSize,
(sqlSession, entity) -> {
MapperMethod.ParamMap<T> param = new MapperMethod.ParamMap<>();
param.put(Constants.ENTITY, entity);
sqlSession.update(sqlStatement, param);
});
}
/**
* ()
*/
default boolean insertOrUpdateBatch(Collection<T> entityList, int batchSize) {
TableInfo tableInfo = TableInfoHelper.getTableInfo(this.currentModelClass());
Assert.notNull(tableInfo, "error: can not execute. because can not find cache of TableInfo for entity!");
String keyProperty = tableInfo.getKeyProperty();
Assert.notEmpty(keyProperty, "error: can not execute. because can not find column for id from entity!");
return SqlHelper.saveOrUpdateBatch(this.currentModelClass(), this.currentMapperClass(), log, entityList, batchSize, (sqlSession, entity) -> {
Object idVal = tableInfo.getPropertyValue(entity, keyProperty);
String sqlStatement = SqlHelper.getSqlStatement(this.currentMapperClass(), SqlMethod.SELECT_BY_ID);
return StringUtils.checkValNull(idVal)
|| CollectionUtils.isEmpty(sqlSession.selectList(sqlStatement, entity));
}, (sqlSession, entity) -> {
MapperMethod.ParamMap<T> param = new MapperMethod.ParamMap<>();
param.put(Constants.ENTITY, entity);
String sqlStatement = SqlHelper.getSqlStatement(this.currentMapperClass(), SqlMethod.UPDATE_BY_ID);
sqlSession.update(sqlStatement, param);
});
}
/**
* ()
*/
default boolean insertOrUpdate(T entity) {
if (null != entity) {
TableInfo tableInfo = TableInfoHelper.getTableInfo(this.currentModelClass());
Assert.notNull(tableInfo, "error: can not execute. because can not find cache of TableInfo for entity!");
String keyProperty = tableInfo.getKeyProperty();
Assert.notEmpty(keyProperty, "error: can not execute. because can not find column for id from entity!");
Object idVal = tableInfo.getPropertyValue(entity, tableInfo.getKeyProperty());
return StringUtils.checkValNull(idVal) || Objects.isNull(selectById((Serializable) idVal)) ? insert(entity) > 0 : updateById(entity) > 0;
}
return false;
}
default V selectVoById(Serializable id) {
return selectVoById(id, this.currentVoClass());
}
/**
* ID
*/
default <C> C selectVoById(Serializable id, Class<C> voClass) {
T obj = this.selectById(id);
if (ObjectUtil.isNull(obj)) {
return null;
}
return BeanCopyUtils.copy(obj, voClass);
}
default List<V> selectVoBatchIds(Collection<? extends Serializable> idList) {
return selectVoBatchIds(idList, this.currentVoClass());
}
/**
* ID
*/
default <C> List<C> selectVoBatchIds(Collection<? extends Serializable> idList, Class<C> voClass) {
List<T> list = this.selectBatchIds(idList);
if (CollUtil.isEmpty(list)) {
return CollUtil.newArrayList();
}
return BeanCopyUtils.copyList(list, voClass);
}
default List<V> selectVoByMap(Map<String, Object> map) {
return selectVoByMap(map, this.currentVoClass());
}
/**
* columnMap
*/
default <C> List<C> selectVoByMap(Map<String, Object> map, Class<C> voClass) {
List<T> list = this.selectByMap(map);
if (CollUtil.isEmpty(list)) {
return CollUtil.newArrayList();
}
return BeanCopyUtils.copyList(list, voClass);
}
default V selectVoOne(Wrapper<T> wrapper) {
return selectVoOne(wrapper, this.currentVoClass());
}
/**
* entity
*/
default <C> C selectVoOne(Wrapper<T> wrapper, Class<C> voClass) {
T obj = this.selectOne(wrapper);
if (ObjectUtil.isNull(obj)) {
return null;
}
return BeanCopyUtils.copy(obj, voClass);
}
default List<V> selectVoList(Wrapper<T> wrapper) {
return selectVoList(wrapper, this.currentVoClass());
}
/**
* entity
*/
default <C> List<C> selectVoList(Wrapper<T> wrapper, Class<C> voClass) {
List<T> list = this.selectList(wrapper);
if (CollUtil.isEmpty(list)) {
return CollUtil.newArrayList();
}
return BeanCopyUtils.copyList(list, voClass);
}
default <P extends IPage<V>> P selectVoPage(IPage<T> page, Wrapper<T> wrapper) {
return selectVoPage(page, wrapper, this.currentVoClass());
}
/**
* VO
*/
default <C, P extends IPage<C>> P selectVoPage(IPage<T> page, Wrapper<T> wrapper, Class<C> voClass) {
IPage<T> pageData = this.selectPage(page, wrapper);
IPage<C> voPage = new Page<>(pageData.getCurrent(), pageData.getSize(), pageData.getTotal());
if (CollUtil.isEmpty(pageData.getRecords())) {
return (P) voPage;
}
voPage.setRecords(BeanCopyUtils.copyList(pageData.getRecords(), voClass));
return (P) voPage;
}
}

@ -1,6 +1,6 @@
package com.glxp.api.admin.dao.info;
import com.glxp.api.admin.entity.info.SyncDataBustypeEntity;
import com.glxp.api.admin.entity.sync.SyncDataBustypeEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

@ -0,0 +1,17 @@
package com.glxp.api.admin.dao.inout;
import com.glxp.api.admin.dao.BaseMapperPlus;
import com.glxp.api.admin.entity.inout.IoCodeLostEntity;
import com.glxp.api.admin.res.inout.IoCodeLostResponse;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface IoCodeLostMapper extends BaseMapperPlus<IoCodeLostMapper, IoCodeLostEntity, IoCodeLostEntity> {
List<IoCodeLostResponse> selectLost(IoCodeLostEntity ioCodeLostEntity);
List<IoCodeLostEntity> filterList(IoCodeLostEntity ioCodeLostEntity);
}

@ -1,6 +1,6 @@
package com.glxp.api.admin.dao.info;
package com.glxp.api.admin.dao.sync;
import com.glxp.api.admin.entity.info.SyncDataBustypeEntity;
import com.glxp.api.admin.entity.sync.SyncDataBustypeEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

@ -1,6 +1,6 @@
package com.glxp.api.admin.dao.info;
package com.glxp.api.admin.dao.sync;
import com.glxp.api.admin.entity.info.SyncDataSetEntity;
import com.glxp.api.admin.entity.sync.SyncDataSetEntity;
import org.apache.ibatis.annotations.Mapper;
@Mapper

@ -1,5 +1,6 @@
package com.glxp.api.admin.entity.info;
import com.glxp.api.admin.entity.sync.SyncDataBustypeEntity;
import lombok.Data;
import java.util.List;

@ -0,0 +1,112 @@
package com.glxp.api.admin.entity.inout;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import java.util.Date;
/**
*
*/
@Data
@TableName(value = "io_code_lost")
public class IoCodeLostEntity {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
* UDI
*/
@TableField(value = "code")
private String code;
/**
*
*/
@TableField(value = "batchNo")
private String batchNo;
/**
*
*/
@TableField(value = "produceDate")
private String produceDate;
/**
*
*/
@TableField(value = "expireDate")
private String expireDate;
/**
*
*/
@TableField(value = "serialNo")
private String serialNo;
/**
*
*/
@TableField(value = "supId")
private String supId;
/**
*
*/
@TableField(value = "createTime")
private Date createTime;
/**
*
*/
@TableField(value = "updateTime")
private Date updateTime;
/**
*
*/
@TableField(value = "remark")
private String remark;
@TableField(value = "nameCode")
private String nameCode;
@TableField(exist = false)
private String cpmctymc;
@TableField(exist = false)
private String ggxh;
@TableField(exist = false)
private String startTime;
@TableField(exist = false)
private String endTime;
@TableField(exist = false)
private String lastUpdateTime;
public static final String COL_ID = "id";
public static final String COL_CODE = "code";
public static final String COL_BATCHNO = "batchNo";
public static final String COL_PRODUCEDATE = "produceDate";
public static final String COL_EXPIREDATE = "expireDate";
public static final String COL_SERIALNO = "serialNo";
public static final String COL_SUPID = "supId";
public static final String COL_CREATETIME = "createTime";
public static final String COL_UPDATETIME = "updateTime";
public static final String COL_REMARK = "remark";
}

@ -4,7 +4,7 @@ import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.glxp.api.admin.entity.basic.BasicExportStatusEntity;
import com.glxp.api.admin.entity.info.SyncDataSetEntity;
import com.glxp.api.admin.entity.sync.SyncDataSetEntity;
import com.glxp.api.admin.entity.inout.IOOrderStatusEntity;
import com.glxp.api.admin.req.basic.BasicExportStatusRequest;
import com.glxp.api.admin.req.inout.OrderStatusFilterRequest;
@ -16,7 +16,7 @@ import com.glxp.api.admin.res.basic.SpsSyncDataResponse;
import com.glxp.api.admin.res.basic.SpsSyncOrderResponse;
import com.glxp.api.admin.res.basic.SpsSyncScheduleResponse;
import com.glxp.api.admin.res.inout.DlOrderResponse;
import com.glxp.api.admin.service.info.SyncDataSetService;
import com.glxp.api.admin.service.sync.SyncDataSetService;
import com.glxp.api.admin.util.OkHttpCli;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;

@ -3,14 +3,13 @@ package com.glxp.api.admin.httpclient;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.glxp.api.admin.entity.info.SyncDataSetEntity;
import com.glxp.api.admin.entity.sync.SyncDataSetEntity;
import com.glxp.api.admin.req.inout.OrderFilterRequest;
import com.glxp.api.admin.req.inout.PostOrderRequest;
import com.glxp.api.admin.service.info.SyncDataSetService;
import com.glxp.api.admin.service.sync.SyncDataSetService;
import com.glxp.api.admin.util.OkHttpCli;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;

@ -3,6 +3,7 @@ package com.glxp.api.admin.res.basic;
import com.glxp.api.admin.entity.auth.AuthAdmin;
import com.glxp.api.admin.entity.auth.DeptEntity;
import com.glxp.api.admin.entity.basic.*;
import com.glxp.api.admin.entity.inout.IoCodeLostEntity;
import com.glxp.api.admin.entity.inout.WarehouseBussinessTypeEntity;
import com.glxp.api.admin.entity.inout.WarehouseUserEntity;
import com.glxp.api.admin.entity.inventory.InvBusUserEntity;
@ -55,5 +56,6 @@ public class SpsSyncDataResponse {
List<SupManufacturerEntity> supManufacturerEntities;
List<SupProductEntity> supProductEntities;
List<SupCertEntity> supCertEntities;
List<IoCodeLostEntity> ioCodeLostEntities;
}

@ -1,6 +1,6 @@
package com.glxp.api.admin.res.info;
import com.glxp.api.admin.entity.info.SyncDataBustypeEntity;
import com.glxp.api.admin.entity.sync.SyncDataBustypeEntity;
import lombok.Data;
import java.util.List;

@ -0,0 +1,69 @@
package com.glxp.api.admin.res.inout;
import lombok.Data;
import java.util.Date;
/**
* @author : zhangsan
* @date : 2023/3/22 11:08
* @modyified By :
*/
@Data
public class IoCodeLostResponse {
private Integer id;
private String code;
private String batchNo;
private String produceDate;
private String expireDate;
private String serialNo;
private String supId;
private Date createTime;
private Date updateTime;
private String remark;
//产品名称
private String cpmctymc;
//规格型号
private String ggxh;
public static final String COL_ID = "id";
public static final String COL_CODE = "code";
public static final String COL_BATCHNO = "batchNo";
public static final String COL_PRODUCEDATE = "produceDate";
public static final String COL_EXPIREDATE = "expireDate";
public static final String COL_SERIALNO = "serialNo";
public static final String COL_SUPID = "supId";
public static final String COL_CREATETIME = "createTime";
public static final String COL_UPDATETIME = "updateTime";
public static final String COL_REMARK = "remark";
}

@ -1,6 +1,6 @@
package com.glxp.api.admin.service.info;
import com.glxp.api.admin.entity.info.SyncDataBustypeEntity;
import com.glxp.api.admin.entity.sync.SyncDataBustypeEntity;
import java.util.List;

@ -1,7 +1,7 @@
package com.glxp.api.admin.service.info.impl;
import com.glxp.api.admin.dao.info.SyncUploadDataBustypeDao;
import com.glxp.api.admin.entity.info.SyncDataBustypeEntity;
import com.glxp.api.admin.entity.sync.SyncDataBustypeEntity;
import com.glxp.api.admin.service.info.SyncUploadDataBustypeService;
import org.springframework.stereotype.Service;

@ -1,9 +1,8 @@
package com.glxp.api.admin.service.info.impl;
import com.glxp.api.admin.dao.info.SyncUploadDataSetDao;
import com.glxp.api.admin.entity.info.SyncDataBustypeEntity;
import com.glxp.api.admin.entity.sync.SyncDataBustypeEntity;
import com.glxp.api.admin.entity.info.SyncUploadDataSetEntity;
import com.glxp.api.admin.service.info.SyncDataBustypeService;
import com.glxp.api.admin.service.info.SyncUploadDataBustypeService;
import com.glxp.api.admin.service.info.SyncUploadDataSetService;
import org.springframework.stereotype.Service;

@ -0,0 +1,24 @@
package com.glxp.api.admin.service.inout;
import com.glxp.api.admin.entity.inout.IoCodeLostEntity;
import com.glxp.api.admin.res.inout.IoCodeLostResponse;
import java.util.List;
public interface IoCodeLostService {
List<IoCodeLostResponse> selectLost(IoCodeLostEntity ioCodeLostEntity);
List<IoCodeLostEntity> filterList(IoCodeLostEntity ioCodeLostEntity);
IoCodeLostEntity findByCode(String code);
int insert(IoCodeLostEntity ioCodeLostEntity);
boolean insertOrUpdate(IoCodeLostEntity ioCodeLostEntity);
int deleteByCode(String code);
int update(IoCodeLostEntity ioCodeLostEntity);
}

@ -0,0 +1,54 @@
package com.glxp.api.admin.service.inout.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.glxp.api.admin.dao.inout.IoCodeLostMapper;
import com.glxp.api.admin.entity.inout.IoCodeLostEntity;
import com.glxp.api.admin.res.inout.IoCodeLostResponse;
import com.glxp.api.admin.service.inout.IoCodeLostService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
@Service
public class IoCodeLostServiceImpl implements IoCodeLostService {
@Resource
IoCodeLostMapper codeLostEntityMapper;
@Override
public List<IoCodeLostResponse> selectLost(IoCodeLostEntity ioCodeLostEntity) {
return codeLostEntityMapper.selectLost(ioCodeLostEntity);
}
@Override
public List<IoCodeLostEntity> filterList(IoCodeLostEntity ioCodeLostEntity) {
return codeLostEntityMapper.filterList(ioCodeLostEntity);
}
@Override
public IoCodeLostEntity findByCode(String code) {
return codeLostEntityMapper.selectOne(new QueryWrapper<IoCodeLostEntity>().eq("code", code));
}
@Override
public int insert(IoCodeLostEntity ioCodeLostEntity) {
return codeLostEntityMapper.insert(ioCodeLostEntity);
}
@Override
public boolean insertOrUpdate(IoCodeLostEntity ioCodeLostEntity) {
return codeLostEntityMapper.insertOrUpdate(ioCodeLostEntity);
}
@Override
public int deleteByCode(String code) {
return codeLostEntityMapper.delete(new QueryWrapper<IoCodeLostEntity>().eq("code", code));
}
@Override
public int update(IoCodeLostEntity ioCodeLostEntity) {
return codeLostEntityMapper.updateById(ioCodeLostEntity);
}
}

@ -1,6 +1,6 @@
package com.glxp.api.admin.service.info;
package com.glxp.api.admin.service.sync;
import com.glxp.api.admin.entity.info.SyncDataBustypeEntity;
import com.glxp.api.admin.entity.sync.SyncDataBustypeEntity;
import java.util.List;

@ -1,7 +1,7 @@
package com.glxp.api.admin.service.info;
package com.glxp.api.admin.service.sync;
import com.glxp.api.admin.entity.info.SyncDataSetEntity;
import com.glxp.api.admin.entity.sync.SyncDataSetEntity;
import com.glxp.api.admin.res.info.SyncDataSetResponse;
public interface SyncDataSetService {

@ -1,8 +1,8 @@
package com.glxp.api.admin.service.info.impl;
package com.glxp.api.admin.service.sync.impl;
import com.glxp.api.admin.dao.info.SyncDataBustypeDao;
import com.glxp.api.admin.entity.info.SyncDataBustypeEntity;
import com.glxp.api.admin.service.info.SyncDataBustypeService;
import com.glxp.api.admin.dao.sync.SyncDataBustypeDao;
import com.glxp.api.admin.entity.sync.SyncDataBustypeEntity;
import com.glxp.api.admin.service.sync.SyncDataBustypeService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;

@ -1,12 +1,11 @@
package com.glxp.api.admin.service.info.impl;
package com.glxp.api.admin.service.sync.impl;
import com.alibaba.fastjson.JSON;
import com.glxp.api.admin.dao.info.SyncDataSetDao;
import com.glxp.api.admin.entity.info.SyncDataBustypeEntity;
import com.glxp.api.admin.entity.info.SyncDataSetEntity;
import com.glxp.api.admin.dao.sync.SyncDataSetDao;
import com.glxp.api.admin.entity.sync.SyncDataBustypeEntity;
import com.glxp.api.admin.entity.sync.SyncDataSetEntity;
import com.glxp.api.admin.res.info.SyncDataSetResponse;
import com.glxp.api.admin.service.info.SyncDataBustypeService;
import com.glxp.api.admin.service.info.SyncDataSetService;
import com.glxp.api.admin.service.sync.SyncDataBustypeService;
import com.glxp.api.admin.service.sync.SyncDataSetService;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;

@ -5,8 +5,7 @@ import com.alibaba.fastjson.TypeReference;
import com.glxp.api.admin.constant.BasicProcessStatus;
import com.glxp.api.admin.constant.ConstantStatus;
import com.glxp.api.admin.entity.basic.*;
import com.glxp.api.admin.entity.info.SyncDataSetEntity;
import com.glxp.api.admin.entity.info.SystemParamConfigEntity;
import com.glxp.api.admin.entity.sync.SyncDataSetEntity;
import com.glxp.api.admin.req.basic.*;
import com.glxp.api.admin.res.basic.BasicUnitMaintainExportResponse;
import com.glxp.api.admin.res.basic.UdiRelevanceExportJsonResponse;
@ -15,15 +14,12 @@ import com.glxp.api.admin.service.basic.BasicUnitMaintainService;
import com.glxp.api.admin.service.basic.CorpExportLogService;
import com.glxp.api.admin.service.basic.UdiInfoExportLogService;
import com.glxp.api.admin.service.basic.UdiRelevanceService;
import com.glxp.api.admin.service.info.SyncDataSetService;
import com.glxp.api.admin.service.sync.SyncDataSetService;
import com.glxp.api.admin.service.info.SystemParamConfigService;
import com.glxp.api.admin.util.ExcelUtil;
import com.glxp.api.admin.util.HttpClient;
import com.glxp.api.admin.util.HttpOkClient;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;

@ -22,10 +22,7 @@ import com.glxp.api.admin.entity.auth.AuthAdmin;
import com.glxp.api.admin.entity.auth.DeptEntity;
import com.glxp.api.admin.entity.basic.*;
import com.glxp.api.admin.entity.business.StockOrderRemakEntity;
import com.glxp.api.admin.entity.inout.OrderEntity;
import com.glxp.api.admin.entity.inout.WarehouseBussinessTypeEntity;
import com.glxp.api.admin.entity.inout.WarehouseEntity;
import com.glxp.api.admin.entity.inout.WarehouseUserEntity;
import com.glxp.api.admin.entity.inout.*;
import com.glxp.api.admin.entity.inventory.InvBusUserEntity;
import com.glxp.api.admin.entity.inventory.InvSubWarehouseEntity;
import com.glxp.api.admin.entity.inventory.InvWarehouseEntity;
@ -44,6 +41,7 @@ import com.glxp.api.admin.res.basic.SpsSyncDataResponse;
import com.glxp.api.admin.res.basic.SpsSyncOrderResponse;
import com.glxp.api.admin.service.auth.DeptService;
import com.glxp.api.admin.service.basic.*;
import com.glxp.api.admin.service.inout.IoCodeLostService;
import com.glxp.api.admin.service.inout.OrderService;
import com.glxp.api.admin.service.inventory.InvBusUserService;
import com.glxp.api.admin.service.inventory.InvSubWarehouseService;
@ -416,6 +414,13 @@ public class DlBasicService {
}
}
if (CollUtil.isNotEmpty(syncDataResponse.getIoCodeLostEntities())) {
for (IoCodeLostEntity ioCodeLostEntity : syncDataResponse.getIoCodeLostEntities()) {
codeLostService.insertOrUpdate(ioCodeLostEntity);
}
}
spGetHttp.postBasicStatus(basicExportStatusEntity.getId());
batchSession.close();
@ -430,6 +435,8 @@ public class DlBasicService {
}
}
@Resource
IoCodeLostService codeLostService;
public void dlAllBus() {
BaseResponse<List<BasicExportStatusEntity>> baseResponse = spGetHttp.getBasicStatus(BasicProcessStatus.NEW_ALL_BUS + "");

@ -1,9 +1,9 @@
package com.glxp.api.admin.thread;
import com.glxp.api.admin.dao.info.SyncDataSetDao;
import com.glxp.api.admin.dao.sync.SyncDataSetDao;
import com.glxp.api.admin.dao.schedule.ScheduledDao;
import com.glxp.api.admin.entity.info.ScheduledEntity;
import com.glxp.api.admin.entity.info.SyncDataSetEntity;
import com.glxp.api.admin.entity.sync.SyncDataSetEntity;
import com.glxp.api.admin.req.info.ScheduledRequest;
import com.glxp.api.admin.service.info.SystemParamConfigService;
import com.glxp.api.admin.util.RedisUtil;

@ -17,10 +17,7 @@ import com.glxp.api.admin.entity.business.StockOrderEntity;
import com.glxp.api.admin.entity.business.StockOrderRemakEntity;
import com.glxp.api.admin.entity.info.CompanyEntity;
import com.glxp.api.admin.entity.info.SystemParamConfigEntity;
import com.glxp.api.admin.entity.inout.ErpOrderEntity;
import com.glxp.api.admin.entity.inout.FilterErpOrderRequest;
import com.glxp.api.admin.entity.inout.OrderEntity;
import com.glxp.api.admin.entity.inout.WarehouseEntity;
import com.glxp.api.admin.entity.inout.*;
import com.glxp.api.admin.entity.inventory.InvProductDetailEntity;
import com.glxp.api.admin.entity.inventory.InvProductEntity;
import com.glxp.api.admin.entity.inventory.InvWarehouseEntity;
@ -46,10 +43,7 @@ import com.glxp.api.admin.service.business.StockOrderService;
import com.glxp.api.admin.service.info.CompanyProductRelevanceService;
import com.glxp.api.admin.service.info.CompanyService;
import com.glxp.api.admin.service.info.SystemParamConfigService;
import com.glxp.api.admin.service.inout.CodesService;
import com.glxp.api.admin.service.inout.CodesTempService;
import com.glxp.api.admin.service.inout.OrderDetailService;
import com.glxp.api.admin.service.inout.OrderService;
import com.glxp.api.admin.service.inout.*;
import com.glxp.api.admin.service.inventory.*;
import com.glxp.api.admin.service.thrsys.ThrDataService;
import com.glxp.api.admin.service.thrsys.ThrOrderService;
@ -1010,6 +1004,46 @@ public class IoTransInoutService {
return stockOrderEntity;
}
@Resource
IoCodeLostService codeLostService;
@Async
public void genLostCode(String orderId) {
List<WarehouseEntity> ioCodeEntities = warehouseService.findByReceiptId(orderId);
for (WarehouseEntity codeEntity : ioCodeEntities) {
UdiEntity udiEntity = FilterUdiUtils.getUdi(codeEntity.getCode());
IoCodeLostEntity codeLostEntity = codeLostService.findByCode(codeEntity.getCode());
if (codeLostEntity == null)
codeLostEntity = new IoCodeLostEntity();
//校验是否写入缺失表
boolean isTrue = false;
if (udiEntity != null) {
if (!StrUtil.trimToEmpty(codeEntity.getBatchNo()).equals(StrUtil.trimToEmpty(udiEntity.getBatchNo()))) {
if (StrUtil.isNotEmpty(codeEntity.getBatchNo())) {
codeLostEntity.setBatchNo(codeEntity.getBatchNo());
isTrue = true;
}
}
if (!StrUtil.trimToEmpty(codeEntity.getProduceDate()).equals(StrUtil.trimToEmpty(udiEntity.getProduceDate()))) {
if (StrUtil.isNotEmpty(codeEntity.getProduceDate())) {
codeLostEntity.setProduceDate(codeEntity.getProduceDate());
isTrue = true;
}
}
if (!StrUtil.trimToEmpty(codeEntity.getExpireDate()).equals(StrUtil.trimToEmpty(udiEntity.getExpireDate()))) {
if (StrUtil.isNotEmpty(codeEntity.getExpireDate())) {
codeLostEntity.setExpireDate(codeEntity.getExpireDate());
isTrue = true;
}
}
if (isTrue)
codeLostService.insertOrUpdate(codeLostEntity);
}
}
}
}

@ -12,16 +12,14 @@ import com.glxp.api.admin.dao.basic.BasicThirdSysBusApiDao;
import com.glxp.api.admin.dao.basic.BasicThirdSysDao;
import com.glxp.api.admin.dao.basic.BasicThirdSysDetailDao;
import com.glxp.api.admin.dao.schedule.ScheduledDao;
import com.glxp.api.admin.dao.schedule.SystemParamConfigDao;
import com.glxp.api.admin.entity.basic.BasicThirdSysDetailEntity;
import com.glxp.api.admin.entity.basic.BasicThirdSysEntity;
import com.glxp.api.admin.entity.basic.BussinessLocalTypeEntity;
import com.glxp.api.admin.entity.basic.NewUploadDiEntity;
import com.glxp.api.admin.entity.business.StockOrderEntity;
import com.glxp.api.admin.entity.info.ScheduledEntity;
import com.glxp.api.admin.entity.info.SyncDataBustypeEntity;
import com.glxp.api.admin.entity.sync.SyncDataBustypeEntity;
import com.glxp.api.admin.entity.info.SyncUploadDataSetEntity;
import com.glxp.api.admin.entity.info.SystemParamConfigEntity;
import com.glxp.api.admin.entity.inout.OrderEntity;
import com.glxp.api.admin.entity.thrsys.ThrProductsEntity;
import com.glxp.api.admin.req.basic.FilterNewUploadDiRequest;
@ -36,7 +34,6 @@ import com.glxp.api.admin.service.inout.OrderService;
import com.glxp.api.admin.util.HttpOkClient;
import com.glxp.api.admin.util.RedisUtil;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.scheduling.annotation.EnableScheduling;

@ -8,7 +8,7 @@ import com.glxp.api.admin.config.WebSocketServer;
import com.glxp.api.admin.constant.BasicProcessStatus;
import com.glxp.api.admin.constant.Constant;
import com.glxp.api.admin.entity.basic.BasicThirdSysDetailEntity;
import com.glxp.api.admin.entity.info.SyncDataSetEntity;
import com.glxp.api.admin.entity.sync.SyncDataSetEntity;
import com.glxp.api.admin.entity.thrsys.*;
import com.glxp.api.admin.httpclient.ErpBasicClient;
import com.glxp.api.admin.req.basic.BasicUnitMaintainFilterRequest;
@ -19,7 +19,7 @@ import com.glxp.api.admin.req.thrsys.ThrCorpExportRequest;
import com.glxp.api.admin.res.PageSimpleResponse;
import com.glxp.api.admin.res.basic.ErpUnitsResponse;
import com.glxp.api.admin.service.basic.BasicThirdSysDetailService;
import com.glxp.api.admin.service.info.SyncDataSetService;
import com.glxp.api.admin.service.sync.SyncDataSetService;
import com.glxp.api.admin.service.thrsys.ThrCorpExportLogService;
import com.glxp.api.admin.service.thrsys.ThrCorpImportDetailService;
import com.glxp.api.admin.service.thrsys.ThrCorpImportLogService;
@ -27,7 +27,6 @@ import com.glxp.api.admin.service.thrsys.ThrCorpService;
import com.glxp.api.admin.util.*;
import com.glxp.api.common.res.BaseResponse;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;

@ -10,7 +10,7 @@ import com.glxp.api.admin.constant.Constant;
import com.glxp.api.admin.entity.basic.BasicThirdSysDetailEntity;
import com.glxp.api.admin.entity.basic.BasicUnitMaintainEntity;
import com.glxp.api.admin.entity.basic.BussinessTypeEntity;
import com.glxp.api.admin.entity.info.SyncDataSetEntity;
import com.glxp.api.admin.entity.sync.SyncDataSetEntity;
import com.glxp.api.admin.entity.thrsys.*;
import com.glxp.api.admin.httpclient.ErpOrderClient;
import com.glxp.api.admin.req.inout.FilterOrderRequest;
@ -25,15 +25,13 @@ import com.glxp.api.admin.res.thrsys.ThrOrderExportJsonResponse;
import com.glxp.api.admin.service.basic.BasicThirdSysDetailService;
import com.glxp.api.admin.service.basic.BasicUnitMaintainService;
import com.glxp.api.admin.service.basic.BussinessTypeService;
import com.glxp.api.admin.service.info.SyncDataSetService;
import com.glxp.api.admin.service.sync.SyncDataSetService;
import com.glxp.api.admin.service.thrsys.*;
import com.glxp.api.admin.util.ExcelUtil;
import com.glxp.api.admin.util.HttpClient;
import com.glxp.api.admin.util.HttpOkClient;
import com.glxp.api.admin.util.RedisUtil;
import com.glxp.api.common.res.BaseResponse;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;

@ -7,11 +7,8 @@ import com.alibaba.fastjson.TypeReference;
import com.glxp.api.admin.config.WebSocketServer;
import com.glxp.api.admin.constant.BasicProcessStatus;
import com.glxp.api.admin.constant.Constant;
import com.glxp.api.admin.dao.basic.UdiRelevanceDao;
import com.glxp.api.admin.entity.basic.BasicThirdSysDetailEntity;
import com.glxp.api.admin.entity.basic.BasicThirdSysEntity;
import com.glxp.api.admin.entity.basic.UdiRelevanceEntity;
import com.glxp.api.admin.entity.info.SyncDataSetEntity;
import com.glxp.api.admin.entity.sync.SyncDataSetEntity;
import com.glxp.api.admin.entity.thrsys.ThrProductsEntity;
import com.glxp.api.admin.entity.thrsys.ThrProductsExportLogEntity;
import com.glxp.api.admin.entity.thrsys.ThrProductsImportDetailEntity;
@ -28,7 +25,7 @@ import com.glxp.api.admin.service.basic.BasicThirdSysDetailService;
import com.glxp.api.admin.service.basic.BasicThirdSysService;
import com.glxp.api.admin.service.basic.UdiContrastService;
import com.glxp.api.admin.service.basic.UdiRelevanceService;
import com.glxp.api.admin.service.info.SyncDataSetService;
import com.glxp.api.admin.service.sync.SyncDataSetService;
import com.glxp.api.admin.service.thrsys.ThrProductsExportLogService;
import com.glxp.api.admin.service.thrsys.ThrProductsImportDetailService;
import com.glxp.api.admin.service.thrsys.ThrProductsImportLogService;
@ -36,7 +33,6 @@ import com.glxp.api.admin.service.thrsys.ThrProductsService;
import com.glxp.api.admin.util.*;
import com.glxp.api.common.res.BaseResponse;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;

@ -1,15 +1,12 @@
package com.glxp.api.admin.thread;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.db.sql.Order;
import com.glxp.api.admin.constant.ConstantStatus;
import com.glxp.api.admin.dao.basic.UdiInfoDao;
import com.glxp.api.admin.dao.info.SyncDataSetDao;
import com.glxp.api.admin.entity.auth.AuthAdmin;
import com.glxp.api.admin.entity.auth.DeptEntity;
import com.glxp.api.admin.entity.basic.*;
import com.glxp.api.admin.entity.info.SyncDataBustypeEntity;
import com.glxp.api.admin.entity.info.SyncDataSetEntity;
import com.glxp.api.admin.entity.sync.SyncDataBustypeEntity;
import com.glxp.api.admin.entity.inout.*;
import com.glxp.api.admin.entity.inventory.InvBusUserEntity;
import com.glxp.api.admin.entity.inventory.InvSubWarehouseEntity;
@ -22,7 +19,6 @@ import com.glxp.api.admin.entity.thrsys.*;
import com.glxp.api.admin.req.auth.AuthAdminQueryRequest;
import com.glxp.api.admin.req.auth.FilterDeptRequest;
import com.glxp.api.admin.req.basic.*;
import com.glxp.api.admin.req.inout.OrderFilterRequest;
import com.glxp.api.admin.req.inout.OrderQueryRequest;
import com.glxp.api.admin.req.inventory.FilterInvUserRequest;
import com.glxp.api.admin.req.inventory.FilterInvWarehouseRequest;
@ -39,7 +35,7 @@ import com.glxp.api.admin.service.auth.AuthAdminService;
import com.glxp.api.admin.service.auth.DeptService;
import com.glxp.api.admin.service.basic.*;
import com.glxp.api.admin.service.info.CompanyProductRelevanceService;
import com.glxp.api.admin.service.info.SyncDataSetService;
import com.glxp.api.admin.service.sync.SyncDataSetService;
import com.glxp.api.admin.service.inout.*;
import com.glxp.api.admin.service.inventory.InvBusUserService;
import com.glxp.api.admin.service.inventory.InvSubWarehouseService;

@ -0,0 +1,184 @@
package com.glxp.api.admin.util;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.SimpleCache;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.ReflectUtil;
import cn.hutool.core.util.StrUtil;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import org.springframework.cglib.beans.BeanCopier;
import org.springframework.cglib.beans.BeanMap;
import org.springframework.cglib.core.Converter;
import java.util.List;
import java.util.Map;
/**
* bean( cglib )
* <p>
* cglib
* : ()
* ````使
*
* @author Lion Li
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class BeanCopyUtils {
/**
* class
*
* @param source
* @param desc
* @return desc
*/
public static <T, V> V copy(T source, Class<V> desc) {
if (ObjectUtil.isNull(source)) {
return null;
}
if (ObjectUtil.isNull(desc)) {
return null;
}
final V target = ReflectUtil.newInstanceIfPossible(desc);
return copy(source, target);
}
/**
*
*
* @param source
* @param desc
* @return desc
*/
public static <T, V> V copy(T source, V desc) {
if (ObjectUtil.isNull(source)) {
return null;
}
if (ObjectUtil.isNull(desc)) {
return null;
}
BeanCopier beanCopier = BeanCopierCache.INSTANCE.get(source.getClass(), desc.getClass(), null);
beanCopier.copy(source, desc, null);
return desc;
}
/**
* class
*
* @param sourceList
* @param desc
* @return desc
*/
public static <T, V> List<V> copyList(List<T> sourceList, Class<V> desc) {
if (ObjectUtil.isNull(sourceList)) {
return null;
}
if (CollUtil.isEmpty(sourceList)) {
return CollUtil.newArrayList();
}
return StreamUtils.toList(sourceList, source -> {
V target = ReflectUtil.newInstanceIfPossible(desc);
copy(source, target);
return target;
});
}
/**
* beanmap
*
* @param bean
* @return map
*/
@SuppressWarnings("unchecked")
public static <T> Map<String, Object> copyToMap(T bean) {
if (ObjectUtil.isNull(bean)) {
return null;
}
return BeanMap.create(bean);
}
/**
* mapbean
*
* @param map
* @param beanClass bean
* @return bean
*/
public static <T> T mapToBean(Map<String, Object> map, Class<T> beanClass) {
if (MapUtil.isEmpty(map)) {
return null;
}
if (ObjectUtil.isNull(beanClass)) {
return null;
}
T bean = ReflectUtil.newInstanceIfPossible(beanClass);
return mapToBean(map, bean);
}
/**
* mapbean
*
* @param map
* @param bean bean
* @return bean
*/
public static <T> T mapToBean(Map<String, Object> map, T bean) {
if (MapUtil.isEmpty(map)) {
return null;
}
if (ObjectUtil.isNull(bean)) {
return null;
}
BeanMap.create(bean).putAll(map);
return bean;
}
/**
* BeanCopier<br>
*
*
* @author Looly
* @since 5.4.1
*/
public enum BeanCopierCache {
/**
* BeanCopier
*/
INSTANCE;
private final SimpleCache<String, BeanCopier> cache = new SimpleCache<>();
/**
* key{@link BeanCopier}Map
*
* @param srcClass Bean
* @param targetClass Bean
* @param converter
* @return MapBeanCopier
*/
public BeanCopier get(Class<?> srcClass, Class<?> targetClass, Converter converter) {
final String key = genKey(srcClass, targetClass, converter);
return cache.get(key, () -> BeanCopier.create(srcClass, targetClass, converter != null));
}
/**
* key
*
* @param srcClass Bean
* @param targetClass Bean
* @param converter
* @return Mapkey
*/
private String genKey(Class<?> srcClass, Class<?> targetClass, Converter converter) {
final StringBuilder key = StrUtil.builder()
.append(srcClass.getName()).append('#').append(targetClass.getName());
if(null != converter){
key.append('#').append(converter.getClass().getName());
}
return key.toString();
}
}
}

@ -0,0 +1,247 @@
package com.glxp.api.admin.util;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.map.MapUtil;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import java.util.*;
import java.util.function.BiFunction;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.stream.Collectors;
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class StreamUtils {
/**
* collection
*
* @param collection
* @param function
* @return list
*/
public static <E> List<E> filter(Collection<E> collection, Predicate<E> function) {
if (CollUtil.isEmpty(collection)) {
return CollUtil.newArrayList();
}
return collection.stream().filter(function).collect(Collectors.toList());
}
/**
* collection
*
* @param collection
* @param function
* @return list
*/
public static <E> String join(Collection<E> collection, Function<E, String> function) {
return join(collection, function, ",");
}
/**
* collection
*
* @param collection
* @param function
* @param delimiter
* @return list
*/
public static <E> String join(Collection<E> collection, Function<E, String> function, CharSequence delimiter) {
if (CollUtil.isEmpty(collection)) {
return StringUtils.EMPTY;
}
return collection.stream().map(function).filter(Objects::nonNull).collect(Collectors.joining(delimiter));
}
/**
* collection
*
* @param collection
* @param comparing
* @return list
*/
public static <E> List<E> sorted(Collection<E> collection, Comparator<E> comparing) {
if (CollUtil.isEmpty(collection)) {
return CollUtil.newArrayList();
}
return collection.stream().sorted(comparing).collect(Collectors.toList());
}
/**
* collectionmap<br>
* <B>{@code Collection<V> ----> Map<K,V>}</B>
*
* @param collection
* @param key VKlambda
* @param <V> collection
* @param <K> mapkey
* @return map
*/
public static <V, K> Map<K, V> toIdentityMap(Collection<V> collection, Function<V, K> key) {
if (CollUtil.isEmpty(collection)) {
return MapUtil.newHashMap();
}
return collection.stream().collect(Collectors.toMap(key, Function.identity(), (l, r) -> l));
}
/**
* Collectionmap(valuecollection)<br>
* <B>{@code Collection<E> -----> Map<K,V> }</B>
*
* @param collection
* @param key EKlambda
* @param value EVlambda
* @param <E> collection
* @param <K> mapkey
* @param <V> mapvalue
* @return map
*/
public static <E, K, V> Map<K, V> toMap(Collection<E> collection, Function<E, K> key, Function<E, V> value) {
if (CollUtil.isEmpty(collection)) {
return MapUtil.newHashMap();
}
return collection.stream().collect(Collectors.toMap(key, value, (l, r) -> l));
}
/**
* collection(id)map<br>
* <B>{@code Collection<E> -------> Map<K,List<E>> } </B>
*
* @param collection
* @param key
* @param <E> collection
* @param <K> mapkey
* @return map
*/
public static <E, K> Map<K, List<E>> groupByKey(Collection<E> collection, Function<E, K> key) {
if (CollUtil.isEmpty(collection)) {
return MapUtil.newHashMap();
}
return collection
.stream()
.collect(Collectors.groupingBy(key, LinkedHashMap::new, Collectors.toList()));
}
/**
* collection(id,id)map<br>
* <B>{@code Collection<E> ---> Map<T,Map<U,List<E>>> } </B>
*
* @param collection
* @param key1
* @param key2
* @param <E>
* @param <K> mapkey
* @param <U> mapkey
* @return map
*/
public static <E, K, U> Map<K, Map<U, List<E>>> groupBy2Key(Collection<E> collection, Function<E, K> key1, Function<E, U> key2) {
if (CollUtil.isEmpty(collection)) {
return MapUtil.newHashMap();
}
return collection
.stream()
.collect(Collectors.groupingBy(key1, LinkedHashMap::new, Collectors.groupingBy(key2, LinkedHashMap::new, Collectors.toList())));
}
/**
* collection(id,id)map<br>
* <B>{@code Collection<E> ---> Map<T,Map<U,E>> } </B>
*
* @param collection
* @param key1
* @param key2
* @param <T> mapkey
* @param <U> mapkey
* @param <E> collection
* @return map
*/
public static <E, T, U> Map<T, Map<U, E>> group2Map(Collection<E> collection, Function<E, T> key1, Function<E, U> key2) {
if (CollUtil.isEmpty(collection) || key1 == null || key2 == null) {
return MapUtil.newHashMap();
}
return collection
.stream()
.collect(Collectors.groupingBy(key1, LinkedHashMap::new, Collectors.toMap(key2, Function.identity(), (l, r) -> l)));
}
/**
* collectionList<br>
* <B>{@code Collection<E> ------> List<T> } </B>
*
* @param collection
* @param function collectionlistlambda
* @param <E> collection
* @param <T> List
* @return list
*/
public static <E, T> List<T> toList(Collection<E> collection, Function<E, T> function) {
if (CollUtil.isEmpty(collection)) {
return CollUtil.newArrayList();
}
return collection
.stream()
.map(function)
.filter(Objects::nonNull)
.collect(Collectors.toList());
}
/**
* collectionSet<br>
* <B>{@code Collection<E> ------> Set<T> } </B>
*
* @param collection
* @param function collectionsetlambda
* @param <E> collection
* @param <T> Set
* @return Set
*/
public static <E, T> Set<T> toSet(Collection<E> collection, Function<E, T> function) {
if (CollUtil.isEmpty(collection) || function == null) {
return CollUtil.newHashSet();
}
return collection
.stream()
.map(function)
.filter(Objects::nonNull)
.collect(Collectors.toSet());
}
/**
* keymap
*
* @param map1 map
* @param map2 map
* @param merge lambdakey value1 value2,value
* @param <K> mapkey
* @param <X> mapvalue
* @param <Y> mapvalue
* @param <V> mapvalue
* @return map
*/
public static <K, X, Y, V> Map<K, V> merge(Map<K, X> map1, Map<K, Y> map2, BiFunction<X, Y, V> merge) {
if (MapUtil.isEmpty(map1) && MapUtil.isEmpty(map2)) {
return MapUtil.newHashMap();
} else if (MapUtil.isEmpty(map1)) {
map1 = MapUtil.newHashMap();
} else if (MapUtil.isEmpty(map2)) {
map2 = MapUtil.newHashMap();
}
Set<K> key = new HashSet<>();
key.addAll(map1.keySet());
key.addAll(map2.keySet());
Map<K, V> map = new HashMap<>();
for (K t : key) {
X x = map1.get(t);
Y y = map2.get(t);
V z = merge.apply(x, y);
if (z != null) {
map.put(t, z);
}
}
return map;
}
}

@ -5,7 +5,7 @@
<select id="findAll"
resultType="com.glxp.api.admin.entity.info.SyncDataBustypeEntity">
resultType="com.glxp.api.admin.entity.sync.SyncDataBustypeEntity">
SELECT *
FROM thr_order_upload_bustypes
</select>
@ -16,7 +16,7 @@
FROM thr_order_upload_bustypes
</delete>
<insert id="inserts" parameterType="com.glxp.api.admin.entity.info.SyncDataBustypeEntity">
<insert id="inserts" parameterType="com.glxp.api.admin.entity.sync.SyncDataBustypeEntity">
insert INTO thr_order_upload_bustypes
( `action`, `name`)
values
@ -30,4 +30,4 @@
</insert>
</mapper>
</mapper>

@ -0,0 +1,45 @@
<?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.glxp.api.admin.dao.inout.IoCodeLostMapper">
<select id="selectLost" parameterType="com.glxp.api.admin.entity.inout.IoCodeLostEntity"
resultType="com.glxp.api.admin.res.inout.IoCodeLostResponse">
select io_code_lost.*, basic_products.cpmctymc, basic_products.ggxh
from io_code_lost
LEFT JOIN basic_products on io_code_lost.nameCode = basic_products.nameCode
<where>
<if test="code != '' and code != null">
and code like concat('%', #{code}, '%')
</if>
<if test="cpmctymc != '' and cpmctymc != null">
and basic_products.cpmctymc like concat('%', #{cpmctymc}, '%')
</if>
<if test="ggxh != '' and ggxh != null">
and basic_products.ggxh like concat('%', #{ggxh}, '%')
</if>
<if test="batchNo != '' and batchNo != null">
and batchNo like concat('%', #{batchNo}, '%')
</if>
<if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
AND date_format(io_code_lost.createTime, '%Y-%m-%d') between date_format(#{startTime}, '%Y-%m-%d') and date_format(#{endTime}, '%Y-%m-%d')
</if>
</where>
</select>
<select id="filterList" parameterType="com.glxp.api.admin.entity.inout.IoCodeLostEntity"
resultType="com.glxp.api.admin.entity.inout.IoCodeLostEntity">
select io_code_lost.*
from io_code_lost
<where>
<if test="lastUpdateTime != null and lastUpdateTime != ''">
<![CDATA[
and DATE_FORMAT(updateTime
, '%Y-%m-%d %H:%i:%S') >= DATE_FORMAT(#{lastUpdateTime}
, '%Y-%m-%d %H:%i:%S')
]]>
</if>
</where>
</select>
</mapper>

@ -1,11 +1,11 @@
<?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.glxp.api.admin.dao.info.SyncDataBustypeDao">
<mapper namespace="com.glxp.api.admin.dao.sync.SyncDataBustypeDao">
<select id="findAll"
resultType="com.glxp.api.admin.entity.info.SyncDataBustypeEntity">
resultType="com.glxp.api.admin.entity.sync.SyncDataBustypeEntity">
SELECT *
FROM sync_data_bustypes
</select>
@ -16,7 +16,7 @@
FROM sync_data_bustypes
</delete>
<insert id="inserts" parameterType="com.glxp.api.admin.entity.info.SyncDataBustypeEntity">
<insert id="inserts" parameterType="com.glxp.api.admin.entity.sync.SyncDataBustypeEntity">
insert INTO sync_data_bustypes
( `action`, `name`, outChange)
values
@ -30,4 +30,4 @@
</insert>
</mapper>
</mapper>

@ -1,17 +1,17 @@
<?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.glxp.api.admin.dao.info.SyncDataSetDao">
<mapper namespace="com.glxp.api.admin.dao.sync.SyncDataSetDao">
<select id="selectSet"
resultType="com.glxp.api.admin.entity.info.SyncDataSetEntity">
resultType="com.glxp.api.admin.entity.sync.SyncDataSetEntity">
SELECT *
FROM sync_data_set limit 1
</select>
<insert id="insert" parameterType="com.glxp.api.admin.entity.info.SyncDataSetEntity">
<insert id="insert" parameterType="com.glxp.api.admin.entity.sync.SyncDataSetEntity">
replace
INTO sync_data_set(id,typeBus, typeScan,
typeThird, basicProducts, basicCorp, basicInv, basicThirdProducts, basicThirdCorp, basicThirdInv
@ -50,4 +50,4 @@
</insert>
</mapper>
</mapper>
Loading…
Cancel
Save