Merge branch 'dev' into test

dev
wj 2 years ago
commit 59fc149cc6

@ -39,9 +39,12 @@ public class ReplaceBatch extends AbstractMethod {
KeyGenerator keyGenerator = new NoKeyGenerator();
CustomerSqlMethod sqlMethod = CustomerSqlMethod.REPLACE_ONE;
List<TableFieldInfo> fieldList = tableInfo.getFieldList();
String insertSqlColumn = tableInfo.getKeyInsertSqlColumn(true, true) +
this.filterTableFieldInfo(fieldList, predicate, TableFieldInfo::getInsertSqlColumn, EMPTY);
String columnScript = LEFT_BRACKET + insertSqlColumn.substring(0, insertSqlColumn.length() - 1) + RIGHT_BRACKET;
String columnScript = SqlScriptUtils.convertTrim(tableInfo.getAllInsertSqlColumnMaybeIf(null),
LEFT_BRACKET, RIGHT_BRACKET, null, COMMA);
// String insertSqlColumn = tableInfo.getKeyInsertSqlColumn(true, true) +
// this.filterTableFieldInfo(fieldList, predicate, TableFieldInfo::getInsertSqlColumn, EMPTY);
// String columnScript = LEFT_BRACKET + insertSqlColumn.substring(0, insertSqlColumn.length() - 1) + RIGHT_BRACKET;
String insertSqlProperty = tableInfo.getKeyInsertSqlProperty(true, ENTITY_DOT, true) +
this.filterTableFieldInfo(fieldList, predicate, i -> i.getInsertSqlProperty(ENTITY_DOT), EMPTY);
insertSqlProperty = LEFT_BRACKET + insertSqlProperty.substring(0, insertSqlProperty.length() - 1) + RIGHT_BRACKET;

@ -284,6 +284,7 @@ public class Constant {
public static final String ORDER_ACTION_SUP_DELAUDIT = "supDelAudit";
public static final String ORDER_ACTION_SUP_INOUT = "supInout";
public static final String ORDER_ACTION_SUP_PREIN = "preInOrder";
public static final String ORDER_THIRD_UPLOAD = "thirdUpload";
public static final String SYNC_REMARK = "syncRemark";
}

@ -1,7 +1,278 @@
package com.glxp.api.controller.basic;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageInfo;
import com.glxp.api.annotation.AuthRuleAnnotation;
import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.entity.auth.AuthAdmin;
import com.glxp.api.entity.basic.BasicCorpEntity;
import com.glxp.api.entity.basic.UdiEntity;
import com.glxp.api.entity.purchase.PurApplyDetailEntity;
import com.glxp.api.entity.thrsys.ThrProductsEntity;
import com.glxp.api.exception.JsonException;
import com.glxp.api.req.basic.BasicDestinyRelRequest;
import com.glxp.api.req.basic.BasicUnitMaintainFilterRequest;
import com.glxp.api.req.basic.CompanyProductRelevanceRequest;
import com.glxp.api.req.basic.FilterUdiRelRequest;
import com.glxp.api.req.thrsys.FilterThrProductsRequest;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.basic.UdiRelevanceResponse;
import com.glxp.api.service.auth.AuthAdminService;
import com.glxp.api.service.auth.CustomerService;
import com.glxp.api.service.basic.BasicDestinyRelService;
import com.glxp.api.service.basic.UdiRelevanceService;
import com.glxp.api.service.thrsys.ThrProductsService;
import com.glxp.api.util.BeanCopyUtils;
import com.glxp.api.util.udi.FilterUdiUtils;
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 org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
@RestController
public class BasicDestinyRelController {
@Resource
private ThrProductsService thrProductsService;
@Resource
private CustomerService customerService;
@Resource
private UdiRelevanceService udiRelevanceService;
@Resource
private AuthAdminService authAdminService;
@Resource
private BasicDestinyRelService basicDestinyRelService;
@GetMapping("/udiwms/basic/destiny/model/filter")
public BaseResponse filterModeldestiny(FilterThrProductsRequest filterThrProductsRequest, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
List<ThrProductsEntity> thrProductsEntities = thrProductsService.filterThrProducts(filterThrProductsRequest);
PageInfo<ThrProductsEntity> pageInfo = new PageInfo<>(thrProductsEntities);
PageSimpleResponse<ThrProductsEntity> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(thrProductsEntities);
return ResultVOUtils.success(pageSimpleResponse);
}
@PostMapping("/udiwms/basic/destiny/model/addModeldestiny")
public BaseResponse addModeldestiny(@RequestBody ThrProductsEntity thrProductsEntity) {
//判断名字和编号不能重复
QueryWrapper<ThrProductsEntity> ew = new QueryWrapper<>();
ew.eq("name", thrProductsEntity.getName());
ew.eq("type", 2);
long count = thrProductsService.count(ew);
if (count > 0) {
return ResultVOUtils.error(999, "名称已存在!");
}
ew.clear();
ew.eq("code", thrProductsEntity.getCode());
ew.eq("type", 2);
count = thrProductsService.count(ew);
if (count > 0) {
return ResultVOUtils.error(999, "编号已存在!");
}
AuthAdmin authAdmin = customerService.getUserBean();
thrProductsEntity.setId(IdUtil.getSnowflakeNextId());
thrProductsEntity.setType(2);
thrProductsEntity.setCreateTime(new Date());
thrProductsEntity.setUpdateTime(new Date());
thrProductsEntity.setCreateUser(authAdmin.getId() + "");
thrProductsEntity.setUpdateUser(authAdmin.getId() + "");
Boolean falg = thrProductsService.insertThrProducts(thrProductsEntity);
if (!falg) {
return ResultVOUtils.error(999, "新增失败!");
}
return ResultVOUtils.success();
}
@PostMapping("/udiwms/basic/destiny/model/editModeldestiny")
public BaseResponse editModeldestiny(@RequestBody ThrProductsEntity thrProductsEntity) {
//判断名字和编号不能重复
QueryWrapper<ThrProductsEntity> ew = new QueryWrapper<>();
ew.eq("name", thrProductsEntity.getName());
ew.eq("type", 2);
ThrProductsEntity thrProductsEntity1 = thrProductsService.getOne(ew);
if (thrProductsEntity1 != null && !thrProductsEntity1.getId().equals(thrProductsEntity.getId())) {
return ResultVOUtils.error(999, "名称已存在!");
}
ew.clear();
ew.eq("code", thrProductsEntity.getCode());
ew.eq("type", 2);
thrProductsEntity1 = thrProductsService.getOne(ew);
if (thrProductsEntity1 != null && !thrProductsEntity1.getId().equals(thrProductsEntity.getId())) {
return ResultVOUtils.error(999, "编号已存在!");
}
AuthAdmin authAdmin = customerService.getUserBean();
thrProductsEntity.setUpdateTime(new Date());
thrProductsEntity.setUpdateUser(authAdmin.getId() + "");
Boolean falg = thrProductsService.updateById(thrProductsEntity);
if (!falg) {
return ResultVOUtils.error(999, "编辑失败!");
}
return ResultVOUtils.success();
}
@PostMapping("/udiwms/basic/destiny/model/delectModeldestiny")
public BaseResponse delectModeldestiny(@RequestBody ThrProductsEntity thrProductsEntity) {
Boolean falg = thrProductsService.deleteById(thrProductsEntity.getId() + "");
if (!falg) {
return ResultVOUtils.error(999, "删除失败!");
}
return ResultVOUtils.success();
}
//查询产品信息
@AuthRuleAnnotation("")
@GetMapping("/udiwms/basic/destiny/model/product/filter")
public BaseResponse filterDestinyProduct(CompanyProductRelevanceRequest companyProductRelevanceRequest, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
if (StrUtil.isNotEmpty(companyProductRelevanceRequest.getCustomerId())) {
String customerId = getCustomerId();
if (customerId.equals("110")) {
companyProductRelevanceRequest.setCustomerId(null);
}
}
companyProductRelevanceRequest.setIsDisable(false);
if (StrUtil.isNotEmpty(companyProductRelevanceRequest.getUdiCode())) {
UdiEntity udiEntity = FilterUdiUtils.getUdi(companyProductRelevanceRequest.getUdiCode());
if (udiEntity != null) {
companyProductRelevanceRequest.setNameCode(udiEntity.getUdi());
companyProductRelevanceRequest.setUnionCode(udiEntity.getUdi());
}
}
//如果输入DI标识精确找到不同层级对应的产品信息
if (StrUtil.isNotEmpty(companyProductRelevanceRequest.getUnionCode())) {
FilterUdiRelRequest filterUdiInfoRequest = new FilterUdiRelRequest();
filterUdiInfoRequest.setNameCode(companyProductRelevanceRequest.getUnionCode());
List<UdiRelevanceResponse> temps = udiRelevanceService.filterUdiGp(filterUdiInfoRequest);
if (temps != null && temps.size() > 0) {
companyProductRelevanceRequest.setOriginUuid(temps.get(0).getOriginUuid());
companyProductRelevanceRequest.setNameCode(filterUdiInfoRequest.getNameCode());
companyProductRelevanceRequest.setUnionCode(null);
}
} else {
//只查找主标识产品信息
companyProductRelevanceRequest.setDiType(1);
}
//查询详情id过滤
List<Long> idList = basicDestinyRelService.filterDestinyRelIds(Long.valueOf(companyProductRelevanceRequest.getId()));
List<UdiRelevanceResponse> basicInstrumentMaintainRelevanceResponses = null;
FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest();
BeanCopyUtils.copy(companyProductRelevanceRequest, filterUdiRelRequest);
if (idList.size() > 0) {
filterUdiRelRequest.setIds(idList);
}
basicInstrumentMaintainRelevanceResponses = basicDestinyRelService.filterUdiJoinSup(filterUdiRelRequest);
PageInfo<UdiRelevanceResponse> pageInfo;
pageInfo = new PageInfo<>(basicInstrumentMaintainRelevanceResponses);
PageSimpleResponse<UdiRelevanceResponse> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(basicInstrumentMaintainRelevanceResponses);
return ResultVOUtils.success(pageSimpleResponse);
}
public String getCustomerId() {
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
if (attributes == null) {
throw new JsonException(ResultEnum.NOT_NETWORK);
}
HttpServletRequest request = attributes.getRequest();
String userId = request.getHeader("ADMIN_ID");
AuthAdmin authAdmin = authAdminService.findById(Long.parseLong(userId));
return authAdmin.getCustomerId() + "";
}
@PostMapping("/udiwms/basic/destiny/model/addModeldestinyProduct")
public BaseResponse addModeldestinyProduct(@RequestBody BasicDestinyRelRequest basicDestinyRelRequest) {
Boolean falg = basicDestinyRelService.addModeldestinyProduct(basicDestinyRelRequest);
if (!falg) {
return ResultVOUtils.error(999, "选入失败!");
}
return ResultVOUtils.success();
}
@GetMapping("/udiwms/basic/destiny/model/filterDestinyDelect")
public BaseResponse filterDestinyDelect(FilterUdiRelRequest filterUdiRelRequest, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
}
List<UdiRelevanceResponse> thrProductsEntities = new ArrayList<>();
//查询详情id过滤
List<Long> idList = basicDestinyRelService.filterDestinyRelIds(Long.valueOf(filterUdiRelRequest.getId()));
if (idList != null && idList.size() > 0) {
filterUdiRelRequest.setIds(idList);
filterUdiRelRequest.setDiType(1);
thrProductsEntities = basicDestinyRelService.filterDestinyProducts(filterUdiRelRequest);
int i=0;
for (UdiRelevanceResponse thrProductsEntity : thrProductsEntities) {
thrProductsEntity.setIndex(i);
i++;
}
}
PageInfo<UdiRelevanceResponse> pageInfo = new PageInfo<>(thrProductsEntities);
PageSimpleResponse<UdiRelevanceResponse> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(thrProductsEntities);
return ResultVOUtils.success(pageSimpleResponse);
}
@GetMapping("/udiwms/basic/destiny/model/delectModeldestinyProduct")
public BaseResponse delectModeldestinyProduct(BasicDestinyRelRequest basicDestinyRelRequest) {
Boolean falg = basicDestinyRelService.delectModeldestinyProduct(basicDestinyRelRequest);
if (!falg) {
return ResultVOUtils.error(999, "删除失败!");
}
return ResultVOUtils.success();
}
@PostMapping("/udiwms/basic/destiny/model/uploadModeldestinyProduct")
public BaseResponse uploadModeldestinyProduct(@RequestBody BasicDestinyRelRequest basicDestinyRelRequest) {
Boolean falg = basicDestinyRelService.uploadModeldestinyProduct(basicDestinyRelRequest);
if (!falg) {
return ResultVOUtils.error(999, "更新失败!");
}
return ResultVOUtils.success();
}
}

@ -272,7 +272,7 @@ public class IoCodeTempController extends BaseController {
checkSuccess = false;
lostMsg = lostMsg + ",失效日期";
}
if (("是".equals(checkUdi.getScbssfbhxlh()) && StrUtil.isEmpty(udiEntity.getSerialNo()))
if (!checkUdi.getAllowNoSerial() && StrUtil.isEmpty(udiEntity.getSerialNo())
) {
checkSuccess = false;
lostMsg = lostMsg + ",序列号";

@ -1,16 +1,20 @@
package com.glxp.api.controller.purchase;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.glxp.api.constant.Constant;
import com.glxp.api.constant.ConstantStatus;
import com.glxp.api.constant.ConstantType;
import com.glxp.api.dao.basic.CompanyProductRelevanceDao;
import com.glxp.api.entity.basic.BasicBusTypeChangeEntity;
import com.glxp.api.entity.basic.BasicProductsEntity;
import com.glxp.api.entity.basic.CompanyProductRelevanceEntity;
import com.glxp.api.entity.inout.IoOrderDetailBizEntity;
import com.glxp.api.entity.inout.IoOrderEntity;
import com.glxp.api.entity.inout.PurReceiveDetailEntity;
import com.glxp.api.entity.inout.PurReceiveEntity;
import com.glxp.api.entity.purchase.*;
import com.glxp.api.service.basic.CompanyProductRelevanceService;
import com.glxp.api.service.basic.IBasicBusTypeChangeService;
import com.glxp.api.service.inout.IoOrderDetailBizService;
import com.glxp.api.service.inout.IoOrderService;
@ -24,6 +28,7 @@ import com.glxp.api.util.OrderNoTypeBean;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.awt.geom.QuadCurve2D;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
@ -61,6 +66,8 @@ public class IoPurChangeService {
IoOrderService ioOrderService;
@Resource
IoOrderDetailBizService ioOrderDetailBizService;
@Resource
CompanyProductRelevanceDao companyProductRelevanceDao;
//领用单流转
public void purReceiveChange(PurReceiveEntity purReceiveEntity) {
@ -251,6 +258,14 @@ public class IoPurChangeService {
d.setCount(e.getCount());
d.setSupId(e.getSupId());
d.setZczbhhzbapzbh(e.getZczbhhzbapzbh());
QueryWrapper<CompanyProductRelevanceEntity> ew = new QueryWrapper<>();
ew.eq("customerId", d.getSupId());
ew.eq("udiRlIdFk", d.getProductId());
ew.last("limit 1");
CompanyProductRelevanceEntity companyProductRelevanceEntity = companyProductRelevanceDao.selectOne(ew);
if (companyProductRelevanceEntity != null) {
d.setPrice(companyProductRelevanceEntity.getPrice());
}
return d;
}).collect(Collectors.toList());
purOrderDetailService.insertPurOrderDetailEntity(purOrderDetailEntityList);
@ -529,8 +544,8 @@ public class IoPurChangeService {
ioOrderDetailBizEntity.setManufacturer(basicProductsEntity.getManufactory());
ioOrderDetailBizEntity.setMeasname(basicProductsEntity.getMeasname());
ioOrderDetailBizEntity.setSpec(basicProductsEntity.getGgxh());
if (basicProductsEntity.getPrice() != null) {
ioOrderDetailBizEntity.setPrice(BigDecimal.valueOf(basicProductsEntity.getPrice()));
if (obj.getPrice() != null) {
ioOrderDetailBizEntity.setPrice(obj.getPrice());
}
ioOrderDetailBizEntity.setSupId(obj.getSupId());
ioOrderDetailBizService.insert(ioOrderDetailBizEntity);

@ -314,7 +314,7 @@ public interface BaseMapperPlus<M, T, V> extends BaseMapper<T> {
}
}
} catch (Exception e) {
log.error("insertIgnoreBatch fail", e);
log.error("replaceBatch fail", e);
return false;
}
return true;

@ -1,9 +1,21 @@
package com.glxp.api.dao.basic;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.glxp.api.entity.basic.BasicDestinyRel;
import com.glxp.api.dao.BaseMapperPlus;
import com.glxp.api.entity.basic.BasicCorpEntity;
import com.glxp.api.entity.basic.BasicDestinyRelEntity;
import com.glxp.api.req.basic.FilterUdiRelRequest;
import com.glxp.api.res.basic.UdiRelevanceResponse;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface BasicDestinyRelMapper extends BaseMapper<BasicDestinyRel> {
public interface BasicDestinyRelMapper extends BaseMapperPlus<BasicDestinyRelMapper, BasicDestinyRelEntity, BasicDestinyRelEntity> {
List<UdiRelevanceResponse> filterUdiJoinSup(FilterUdiRelRequest filterUdiRelRequest);
List<UdiRelevanceResponse> filterDestinyProducts(FilterUdiRelRequest filterUdiRelRequest);
}

@ -0,0 +1,9 @@
package com.glxp.api.dao.inout;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.glxp.api.entity.inout.IoDestinyProcessCodeEntity;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface IoDestinyProcessCodeMapper extends BaseMapper<IoDestinyProcessCodeEntity> {
}

@ -0,0 +1,9 @@
package com.glxp.api.dao.inout;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.glxp.api.entity.inout.IoDestinyProcessDetailEntity;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface IoDestinyProcessDetailMapper extends BaseMapper<IoDestinyProcessDetailEntity> {
}

@ -0,0 +1,9 @@
package com.glxp.api.dao.inout;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.glxp.api.entity.inout.IoDestinyProcessEntity;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface IoDestinyProcessMapper extends BaseMapper<IoDestinyProcessEntity> {
}

@ -70,7 +70,7 @@ public interface IoOrderDao extends BaseMapperPlus<IoOrderDao, IoOrderEntity, Io
*
* @return
*/
List<String> selectWaitSubmitOrder(@Param("thirdSys") String thirdSys);
List<String> selectWaitSubmitOrder(@Param("thirdSys") String thirdSys, @Param("orderStartTime") String orderStartTime);
boolean updateOrder(IoOrderEntity orderEntity);

@ -11,7 +11,7 @@ import lombok.Data;
*/
@Data
@TableName(value = "udi_wms.basic_destiny_rel")
public class BasicDestinyRel {
public class BasicDestinyRelEntity {
@TableId(value = "id", type = IdType.INPUT)
private Long id;

@ -0,0 +1,82 @@
package com.glxp.api.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 java.math.BigDecimal;
import java.util.Date;
import lombok.Data;
/**
*
*/
@Data
@TableName(value = "io_destiny_process_code")
public class IoDestinyProcessCodeEntity {
@TableId(value = "id", type = IdType.INPUT)
private Long id;
/**
*
*/
@TableField(value = "orderIdFk")
private String orderIdFk;
/**
* ID
*/
@TableField(value = "bindRlFk")
private String bindRlFk;
/**
* DIUUID
*/
@TableField(value = "uuidFk")
private String uuidFk;
/**
* DI
*/
@TableField(value = "nameCode")
private String nameCode;
/**
*
*/
@TableField(value = "batchNo")
private String batchNo;
/**
*
*/
@TableField(value = "productDate")
private String productDate;
/**
*
*/
@TableField(value = "expireDate")
private String expireDate;
/**
*
*/
@TableField(value = "price")
private BigDecimal price;
/**
* ID
*/
@TableField(value = "supId")
private String supId;
/**
*
*/
@TableField(value = "`count`")
private Integer count;
@TableField(value = "updateTime")
private Date updateTime;
}

@ -0,0 +1,35 @@
package com.glxp.api.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;
/**
*
*/
@Data
@TableName(value = "io_destiny_process_detail")
public class IoDestinyProcessDetailEntity {
@TableId(value = "id", type = IdType.INPUT)
private Long id;
/**
* id
*/
@TableField(value = "relId")
private Long relId;
/**
*
*/
@TableField(value = "`count`")
private Integer count;
/**
*
*/
@TableField(value = "reCount")
private Integer reCount;
}

@ -0,0 +1,84 @@
package com.glxp.api.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 java.util.Date;
import lombok.Data;
/**
*
*/
@Data
@TableName(value = "io_destiny_process")
public class IoDestinyProcessEntity {
@TableId(value = "id", type = IdType.INPUT)
private Long id;
/**
* id
*/
@TableField(value = "destinyId")
private Long destinyId;
/**
*
*/
@TableField(value = "destinyNo")
private Long destinyNo;
/**
*
*/
@TableField(value = "billNo")
private String billNo;
/**
*
*/
@TableField(value = "billDate")
private Date billDate;
/**
*
*/
@TableField(value = "invCode")
private String invCode;
/**
*
*/
@TableField(value = "remark")
private String remark;
/**
*
*/
@TableField(value = "createTime")
private Date createTime;
/**
*
*/
@TableField(value = "updateTime")
private Date updateTime;
/**
*
*/
@TableField(value = "`createUser`")
private String createUser;
/**
*
*/
@TableField(value = "updateUser")
private String updateUser;
/**
* 0 稿 1 2
*/
@TableField(value = "`status`")
private Integer status;
}

@ -191,5 +191,10 @@ public class ThrProductsEntity {
@TableField("supCode")
private String supCode;
@TableField("type")
private Integer type;
@TableField(exist = false)
private String createByName;
}

@ -0,0 +1,21 @@
package com.glxp.api.req.basic;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
import java.util.List;
@Data
public class BasicDestinyRelRequest {
private List<Long> list;
private Long pId;
private Long id;
private int count;
public List<Long> getList() {
return list;
}
public Long getpId() {
return pId;
}
}

@ -34,6 +34,7 @@ public class FilterThrProductsRequest extends ListPageRequest {
private String uuid;
private Integer diType;
private Integer type;
public List<ThrProductsEntity> getThrProductsEntities() {
return thrProductsEntities;

@ -98,6 +98,7 @@ public class UdiRelevanceResponse {
private Integer recentDateTime;
private Integer isDateBy;
private String relCode;
private int index;
//关联查询字典
private String unitFk; //供应商ID
@ -120,6 +121,8 @@ public class UdiRelevanceResponse {
private String syqsfxyjxmj;
private String mjfs;
private String categoryName;
private int count;
private Long deId;
private Integer bpcrid;

@ -1,7 +1,24 @@
package com.glxp.api.service.basic;
import com.glxp.api.req.basic.BasicDestinyRelRequest;
import com.glxp.api.req.basic.FilterUdiRelRequest;
import com.glxp.api.res.basic.UdiRelevanceResponse;
import org.springframework.stereotype.Service;
import java.util.List;
public interface BasicDestinyRelService{
Boolean addModeldestinyProduct(BasicDestinyRelRequest basicDestinyRelRequest);
List<UdiRelevanceResponse> filterUdiJoinSup(FilterUdiRelRequest filterUdiRelRequest);
List<Long> filterDestinyRelIds(Long pId);
List<UdiRelevanceResponse> filterDestinyProducts(FilterUdiRelRequest filterUdiRelRequest);
Boolean delectModeldestinyProduct(BasicDestinyRelRequest basicDestinyRelRequest);
Boolean uploadModeldestinyProduct(BasicDestinyRelRequest basicDestinyRelRequest);
}

@ -10,16 +10,21 @@ import com.glxp.api.constant.ConstantStatus;
import com.glxp.api.constant.ConstantType;
import com.glxp.api.dao.basic.BasicBussinessTypeDao;
import com.glxp.api.entity.basic.BasicBussinessTypeEntity;
import com.glxp.api.entity.inout.IoOrderDetailBizEntity;
import com.glxp.api.entity.thrsys.ThrOrderUploadBustypesEntity;
import com.glxp.api.req.basic.FilterBussinessTypeRequest;
import com.glxp.api.res.basic.BasicBussinessTypeResponse;
import com.glxp.api.service.auth.CustomerService;
import com.glxp.api.service.basic.IBasicBussinessTypeService;
import com.glxp.api.service.system.SystemParamConfigService;
import com.glxp.api.service.thrsys.ThrOrderUploadBustypesService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
@ -34,6 +39,8 @@ public class BasicBussinessTypeServiceImpl extends ServiceImpl<BasicBussinessTyp
private CustomerService customerService;
@Resource
private BasicBussinessTypeDao basicBussinessTypeDao;
@Resource
private ThrOrderUploadBustypesService thrOrderUploadBustypesService;
@Override
public List<BasicBussinessTypeResponse> filterList(FilterBussinessTypeRequest filterBussinessTypeRequest) {
@ -257,6 +264,19 @@ public class BasicBussinessTypeServiceImpl extends ServiceImpl<BasicBussinessTyp
bussinessTypeEntities = basicBussinessTypeDao.selectList(new QueryWrapper<BasicBussinessTypeEntity>()
.gt("spUse", 0).eq("enable", true).eq("corpType", ConstantStatus.CORP_TYPE_OUT).eq("actionType", 2)
.eq("inStock", true).eq("mainAction", ConstantType.TYPE_PUT));
break;
case Constant.ORDER_THIRD_UPLOAD:
List<ThrOrderUploadBustypesEntity> thrOrderUploadBustypesEntities = thrOrderUploadBustypesService.list();
List<String> actions = new ArrayList<>();
thrOrderUploadBustypesEntities.forEach(item ->
{
actions.add(item.getAction());
});
if (CollUtil.isNotEmpty(actions)) {
bussinessTypeEntities = basicBussinessTypeDao.selectList(new QueryWrapper<BasicBussinessTypeEntity>().in("action", actions));
}
break;
default:
break;

@ -0,0 +1,97 @@
package com.glxp.api.service.basic.impl;
import cn.hutool.core.util.IdUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageHelper;
import com.glxp.api.dao.basic.BasicDestinyRelMapper;
import com.glxp.api.dao.basic.UdiRelevanceDao;
import com.glxp.api.entity.basic.BasicDestinyRelEntity;
import com.glxp.api.req.basic.BasicDestinyRelRequest;
import com.glxp.api.req.basic.FilterUdiRelRequest;
import com.glxp.api.res.basic.UdiRelevanceResponse;
import com.glxp.api.service.basic.BasicDestinyRelService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@Service
public class BasicDestinyRelServiceImpl implements BasicDestinyRelService {
@Resource
BasicDestinyRelMapper basicDestinyRelMapper;
@Resource
UdiRelevanceDao udiRelevanceDao;
@Override
public Boolean addModeldestinyProduct(BasicDestinyRelRequest basicDestinyRelRequest) {
List<BasicDestinyRelEntity> basicDestinyRelEntitList = new ArrayList<>();
for (Long str : basicDestinyRelRequest.getList()) {
BasicDestinyRelEntity basicDestinyRelEntity = new BasicDestinyRelEntity();
basicDestinyRelEntity.setId(IdUtil.getSnowflakeNextId());
basicDestinyRelEntity.setRelId(str);
basicDestinyRelEntity.setPId(basicDestinyRelRequest.getpId());
basicDestinyRelEntitList.add(basicDestinyRelEntity);
}
Boolean flag = basicDestinyRelMapper.insertBatch(basicDestinyRelEntitList);
return flag;
}
@Override
public List<UdiRelevanceResponse> filterUdiJoinSup(FilterUdiRelRequest filterUdiRelRequest) {
if (filterUdiRelRequest == null) {
return Collections.emptyList();
}
if (filterUdiRelRequest.getPage() != null) {
int offset = (filterUdiRelRequest.getPage() - 1) * filterUdiRelRequest.getLimit();
PageHelper.offsetPage(offset, filterUdiRelRequest.getLimit());
}
List<UdiRelevanceResponse> data = basicDestinyRelMapper.filterUdiJoinSup(filterUdiRelRequest);
return data;
}
@Override
public List<Long> filterDestinyRelIds(Long pId) {
List<Long> stringList = new ArrayList<>();
QueryWrapper<BasicDestinyRelEntity> ew = new QueryWrapper<>();
ew.eq("pId", pId);
List<BasicDestinyRelEntity> basicDestinyRelEntities = basicDestinyRelMapper.selectList(ew);
for (BasicDestinyRelEntity basicDestinyRelEntity : basicDestinyRelEntities) {
stringList.add(basicDestinyRelEntity.getRelId());
}
return stringList;
}
@Override
public List<UdiRelevanceResponse> filterDestinyProducts(FilterUdiRelRequest filterUdiRelRequest) {
if (filterUdiRelRequest == null) {
return Collections.emptyList();
}
if (filterUdiRelRequest.getPage() != null) {
int offset = (filterUdiRelRequest.getPage() - 1) * filterUdiRelRequest.getLimit();
PageHelper.offsetPage(offset, filterUdiRelRequest.getLimit());
}
List<UdiRelevanceResponse> data = basicDestinyRelMapper.filterDestinyProducts(filterUdiRelRequest);
return data;
}
@Override
public Boolean delectModeldestinyProduct(BasicDestinyRelRequest basicDestinyRelRequest) {
return basicDestinyRelMapper.deleteById(basicDestinyRelRequest.getId()) > 0 ? true : false;
}
@Override
public Boolean uploadModeldestinyProduct(BasicDestinyRelRequest basicDestinyRelRequest) {
BasicDestinyRelEntity basicDestinyRelEntity=new BasicDestinyRelEntity();
basicDestinyRelEntity.setId(basicDestinyRelRequest.getId());
basicDestinyRelEntity.setCount(basicDestinyRelRequest.getCount());
return basicDestinyRelMapper.updateById(basicDestinyRelEntity)> 0 ? true : false;
}
}

@ -0,0 +1,8 @@
package com.glxp.api.service.inout;
import com.glxp.api.entity.inout.IoDestinyProcessCodeEntity;
import com.baomidou.mybatisplus.extension.service.IService;
public interface IoDestinyProcessCodeService{
}

@ -0,0 +1,8 @@
package com.glxp.api.service.inout;
import com.glxp.api.entity.inout.IoDestinyProcessDetailEntity;
import com.baomidou.mybatisplus.extension.service.IService;
public interface IoDestinyProcessDetailService{
}

@ -0,0 +1,6 @@
package com.glxp.api.service.inout;
public interface IoDestinyProcessService{
}

@ -0,0 +1,8 @@
package com.glxp.api.service.inout.impl;
import org.springframework.stereotype.Service;
import com.glxp.api.service.inout.IoDestinyProcessCodeService;
@Service
public class IoDestinyProcessCodeServiceImpl implements IoDestinyProcessCodeService {
}

@ -0,0 +1,11 @@
package com.glxp.api.service.inout.impl;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.glxp.api.dao.inout.IoDestinyProcessDetailMapper;
import com.glxp.api.entity.inout.IoDestinyProcessDetailEntity;
import com.glxp.api.service.inout.IoDestinyProcessDetailService;
@Service
public class IoDestinyProcessDetailServiceImpl implements IoDestinyProcessDetailService{
}

@ -0,0 +1,10 @@
package com.glxp.api.service.inout.impl;
import com.glxp.api.service.inout.IoDestinyProcessService;
import org.springframework.stereotype.Service;
@Service
public class IoDestinyProcessServiceImpl implements IoDestinyProcessService {
}

@ -27,6 +27,7 @@ import com.glxp.api.entity.basic.BasicCorpEntity;
import com.glxp.api.entity.inout.*;
import com.glxp.api.entity.inv.*;
import com.glxp.api.entity.system.SyncDataBustypeEntity;
import com.glxp.api.entity.system.SyncUploadDataSetEntity;
import com.glxp.api.entity.thrsys.ThrOrderUploadBustypesEntity;
import com.glxp.api.entity.thrsys.ThrSystemBusApiEntity;
import com.glxp.api.entity.thrsys.ThrSystemDetailEntity;
@ -42,6 +43,7 @@ import com.glxp.api.service.basic.IBasicBussinessTypeService;
import com.glxp.api.service.inout.*;
import com.glxp.api.service.inv.*;
import com.glxp.api.service.system.SyncUploadDataBustypeService;
import com.glxp.api.service.system.SyncUploadDataSetService;
import com.glxp.api.service.thrsys.ThrOrderUploadBustypesService;
import com.glxp.api.util.MsDateUtil;
import com.glxp.api.util.IntUtil;
@ -844,14 +846,14 @@ public class IoOrderServiceImpl implements IoOrderService {
udiwmsOrderRequest.setBillType(billType);
String response = httpOkClient.uCloudPost(thrSystemEntity.getThridUrl() + "/udiwms/erp/submitOrders", udiwmsOrderRequest);
if (StrUtil.isBlank(response)) {
log.info("单据提交失败,无返回信息");
log.error("----单据上传----" + billNo + "单据提交失败,无返回信息");
return ResultVOUtils.error(500, "提交失败");
} else {
BaseResponse baseResponse = JSONObject.parseObject(response, BaseResponse.class);
if (baseResponse.getCode() == 20000) {
return ResultVOUtils.success("提交成功");
} else {
log.error("单据提交失败,错误信息:{}", baseResponse.getMessage());
log.error("----单据上传----" + billNo + baseResponse.getMessage());
return ResultVOUtils.error(500, "提交失败");
}
}
@ -865,11 +867,14 @@ public class IoOrderServiceImpl implements IoOrderService {
@Resource
ThrOrderUploadBustypesService thrOrderUploadBustypesService;
@Resource
SyncUploadDataSetService syncUploadDataSetService;
@Override
public BaseResponse submitOrderToThrSys(ThrSystemDetailEntity thrSystemDetailEntity) {
//查询可以提交到第三方系统的单据
List<String> billNos = orderDao.selectWaitSubmitOrder(thrSystemDetailEntity.getThirdSysFk());
SyncUploadDataSetEntity syncUploadDataSetEntity = syncUploadDataSetService.selectSet();
List<String> billNos = orderDao.selectWaitSubmitOrder(thrSystemDetailEntity.getThirdSysFk(),syncUploadDataSetEntity.getOrderStartTime());
if (CollUtil.isNotEmpty(billNos)) {
log.info("开始提交单据到第三方系统,本次提交单据数量:{}", billNos.size());
for (String billNo : billNos) {
@ -879,25 +884,25 @@ public class IoOrderServiceImpl implements IoOrderService {
log.error(billNo + ":" + orderEntity.getAction() + "单据类型未设置自动上传");
return ResultVOUtils.error(500, billNo + ":" + orderEntity.getAction() + "单据类型未设置自动上传");
}
if (thrOrderUploadBustypesEntity.getOrderSource().contains(orderEntity.getFromType() + "")) {
if (!thrOrderUploadBustypesEntity.getOrderSource().contains(orderEntity.getFromType() + "")) {
log.error(billNo + ":" + "单据来源不允许自动提交");
return ResultVOUtils.error(500, billNo + ":" + "单据来源不允许自动提交");
continue;
}
if (IntUtil.value(thrOrderUploadBustypesEntity.getOrderStatus()) == 1) {
if (orderEntity.getStatus() != ConstantStatus.ORDER_STATUS_CHECK_REW) {
log.error(billNo + ":" + "非待审核单据");
return ResultVOUtils.error(500, billNo + ":" + "非待审核单据");
continue;
}
} else if (IntUtil.value(thrOrderUploadBustypesEntity.getOrderStatus()) == 2) {
if (orderEntity.getStatus() != ConstantStatus.ORDER_STATUS_AUDITED) {
log.error(billNo + ":" + "非已审核单据");
return ResultVOUtils.error(500, billNo + ":" + "非已审核单据");
continue;
}
} else if (IntUtil.value(thrOrderUploadBustypesEntity.getOrderStatus()) == 3) {
if (IntUtil.value(orderEntity.getCheckStatus()) != 1) {
log.error(billNo + ":" + "非已确认单据");
return ResultVOUtils.error(500, billNo + ":" + "非已确认单据");
continue;
}
}
return submitToThrSys(billNo);

@ -8,6 +8,7 @@ import com.glxp.api.entity.system.SyncDataSetEntity;
import com.glxp.api.req.system.ScheduledRequest;
import com.glxp.api.service.sync.HeartService;
import com.glxp.api.util.RedisUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -20,12 +21,11 @@ import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.Arrays;
@Slf4j
@Component
@EnableScheduling
public class SyncHeartTask implements SchedulingConfigurer {
final Logger logger = LoggerFactory.getLogger(SyncHeartTask.class);
@Resource
protected ScheduledDao scheduledDao;
@Resource
@ -45,7 +45,7 @@ public class SyncHeartTask implements SchedulingConfigurer {
ScheduledEntity scheduledEntity = scheduledDao.findScheduled(scheduledRequest);
String cron = scheduledEntity.getCron();
if (cron.isEmpty()) {
logger.error("cron is null");
log.error("cron is null");
}
return new CronTrigger(cron).nextExecutionTime(triggerContext);
});
@ -54,12 +54,10 @@ public class SyncHeartTask implements SchedulingConfigurer {
private void process() {
logger.info("数据同步心跳");
log.info("数据同步心跳--");
//查询数据同步设置
SyncDataSetEntity syncDataSetEntity = syncDataSetDao.selectSet();
if (syncDataSetEntity.isDownstreamEnable()) {
//定时上传最近更新基础数据至上游轮询时间
long timeInterval1 = syncDataSetEntity.getSyncTime() * 6 * 1000L;
long curTime1 = System.currentTimeMillis();
@ -82,7 +80,7 @@ public class SyncHeartTask implements SchedulingConfigurer {
redisUtil.set("SPS_SYNC_UPLOAD_DATA", curTime1);
}
} catch (Exception e) {
logger.error(ExceptionUtils.getStackTrace(e));
log.error(ExceptionUtils.getStackTrace(e));
e.printStackTrace();
}
@ -103,7 +101,7 @@ public class SyncHeartTask implements SchedulingConfigurer {
redisUtil.set("SPS_SYNC_UPLOAD_ORDER", curTime2);
}
} catch (Exception e) {
logger.error(ExceptionUtils.getStackTrace(e));
log.error(ExceptionUtils.getStackTrace(e));
e.printStackTrace();
}
@ -121,13 +119,13 @@ public class SyncHeartTask implements SchedulingConfigurer {
heartService.dlAllOrder();
} catch (Exception e) {
e.printStackTrace();
logger.error(ExceptionUtils.getStackTrace(e));
log.error(ExceptionUtils.getStackTrace(e));
}
try {
heartService.dlAllDiProducts();
} catch (Exception e) {
e.printStackTrace();
logger.error(ExceptionUtils.getStackTrace(e));
log.error(ExceptionUtils.getStackTrace(e));
}
Arrays.stream(BasicExportTypeEnum.values()).forEach(i -> {
heartService.pullData(i);

@ -274,8 +274,10 @@ public class SyncThirdSysTask implements SchedulingConfigurer {
long curTime = new Date().getTime();
if (vo != null) {
long lastTime = vo.getNextTime();
if (curTime - lastTime < thrSystemDetailEntity.getTime().intValue() * 1000 * 60) {
log.info("定时任务时间未到", taskKey);
long timeInterval = Long.parseLong(thrSystemDetailEntity.getTime().intValue() + "") * 1000 * 60;
if (curTime - lastTime < timeInterval) {
log.info("定时任务时间未到---" + taskKey);
return false;
} else {
return true;

@ -28,6 +28,12 @@ public class UdiInfoUtil {
if (StrUtil.isNotEmpty(udiProductEntity.getScbssfbhsxrq()) && "否".equals(udiProductEntity.getScbssfbhsxrq())) {
udiProductEntity.setAllowNoExpire(true);
}
if (StrUtil.isNotEmpty(udiProductEntity.getScbssfbhxlh()) && "否".equals(udiProductEntity.getScbssfbhxlh())) {
udiProductEntity.setAllowNoExpire(true);
} else if (StrUtil.isEmpty(udiProductEntity.getScbssfbhxlh())) {
udiProductEntity.setAllowNoExpire(true);
}
return udiProductEntity;
}
@ -47,12 +53,17 @@ public class UdiInfoUtil {
if (StrUtil.isNotEmpty(udiProductEntity.getScbssfbhsxrq()) && "否".equals(udiProductEntity.getScbssfbhsxrq())) {
udiProductEntity.setAllowNoExpire(true);
}
//名字转拼音
if(StrUtil.isNotBlank(udiProductEntity.getCpmctymc())){
if (StrUtil.isNotEmpty(udiProductEntity.getScbssfbhxlh()) && "否".equals(udiProductEntity.getScbssfbhxlh())) {
udiProductEntity.setAllowNoExpire(true);
} else if (StrUtil.isEmpty(udiProductEntity.getScbssfbhxlh())) {
udiProductEntity.setAllowNoExpire(true);
}
//名字转拼音
if (StrUtil.isNotBlank(udiProductEntity.getCpmctymc())) {
try {
String pinyin= PinyinUtils.converterToFirstSpell(udiProductEntity.getCpmctymc());
String pinyin = PinyinUtils.converterToFirstSpell(udiProductEntity.getCpmctymc());
udiProductEntity.setPinyinInitial(pinyin);
}catch (Exception e){
} catch (Exception e) {
logger.error(ExceptionUtils.getStackTrace(e));
e.printStackTrace();
}

@ -1,7 +1,7 @@
<?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.dao.basic.BasicDestinyRelMapper">
<resultMap id="BaseResultMap" type="com.glxp.api.entity.basic.BasicDestinyRel">
<resultMap id="BaseResultMap" type="com.glxp.api.entity.basic.BasicDestinyRelEntity">
<!--@mbg.generated-->
<!--@Table udi_wms.basic_destiny_rel-->
<id column="id" jdbcType="BIGINT" property="id" />
@ -13,4 +13,287 @@
<!--@mbg.generated-->
id, relId, pId, `count`
</sql>
<select id="filterUdiJoinSup" parameterType="com.glxp.api.req.basic.FilterUdiRelRequest"
resultType="com.glxp.api.res.basic.UdiRelevanceResponse">
select basic_udirel.*,
basic_products.id as PRId,
basic_products.originUuid,
basic_products.nameCode,
basic_products.deviceRecordKey,
basic_products.packRatio,
basic_products.packUnit,
basic_products.packLevel,
basic_products.bhxjsl,
basic_products.bhzxxsbzsl,
basic_products.zxxsbzbhsydysl,
basic_products.bhxjcpbm,
basic_products.bzcj,
basic_products.cpmctymc,
basic_products.cplb,
basic_products.flbm,
basic_products.ggxh,
basic_products.qxlb,
basic_products.tyshxydm,
basic_products.ylqxzcrbarmc,
basic_products.zczbhhzbapzbh,
basic_products.ylqxzcrbarywmc,
basic_products.sydycpbs,
basic_products.sjcpbm,
basic_products.versionNumber,
basic_products.diType,
basic_products.ybbm,
basic_products.sptm,
basic_products.manufactory,
basic_products.measname,
basic_products.productType,
basic_products.scbssfbhph,
basic_products.scbssfbhxlh,
basic_products.scbssfbhscrq,
basic_products.scbssfbhsxrq,
basic_products.cpms,
basic_products.allowNoBatch,
basic_products.allowNoExpire,
basic_products.allowNoProduct,
basic_products.allowNoSerial,
basic_products.spmc,
basic_products.cplx,
basic_products.hchzsb,
basic_products.cpdls,
company_product_relevance.price,
basic_products.basicPrductRemak1,
basic_products.basicPrductRemak2,
basic_products.basicPrductRemak3,
basic_products.basicPrductRemak4,
basic_products.basicPrductRemak5,
basic_products.basicPrductRemak6,
basic_products.basicPrductRemak7,
basic_products.basicPrductRemak8,
basic_products.sfwblztlcp,
basic_products.cgzmraqxgxx,
basic_products.sfbjwycxsy,
basic_products.zdcfsycs,
basic_products.sfwwjbz,
basic_products.syqsfxyjxmj,
basic_products.mjfs,
basic_products.categoryName,
company_product_relevance.unitFk,
basic_corp.erpId as customerId,
basic_corp.name companyName
FROM basic_udirel
inner JOIN basic_products
ON basic_products.uuid = basic_udirel.uuid
left join company_product_relevance
on basic_udirel.id = company_product_relevance.udiRlIdFk
left JOIN basic_corp on basic_corp.erpId = company_product_relevance.customerId
left join basic_hosp_type bht on basic_udirel.relCode = bht.code
left join thr_products tp on tp.code = basic_udirel.mainId
left join basic_product_category_rel on basic_product_category_rel.relId = basic_udirel.id
left join basic_product_category on basic_product_category_rel.code = basic_product_category.code
<where>
<if test="ylqxzcrbarmc != '' and ylqxzcrbarmc != null">
AND basic_products.ylqxzcrbarmc LIKE concat('%', #{ylqxzcrbarmc}, '%')
</if>
<if test="category != '' and category != null">
AND basic_product_category.name = #{category}
</if>
<if test="manufactory != '' and manufactory != null">
AND basic_products.manufactory LIKE concat('%', #{manufactory}, '%')
</if>
<if test="supName != '' and supName != null">
AND supName LIKE concat('%', #{supName}, '%')
</if>
<if test="ids != null and ids.size() > 0">
and basic_udirel.id not in
<foreach collection="ids" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="pinyinInitial != null and pinyinInitial != ''">
AND basic_products.pinyinInitial like concat('%', #{pinyinInitial}, '%')
</if>
<if test="thrPiId != '' and thrPiId != null">
and (basic_udirel.thirdId LIKE concat('%', #{thrPiId}, '%')
or basic_udirel.thirdId1 LIKE concat('%', #{thrPiId}, '%')
or basic_udirel.thirdId2 LIKE concat('%', #{thrPiId}, '%')
or basic_udirel.thirdId3 LIKE concat('%', #{thrPiId}, '%')
or basic_udirel.thirdId4 LIKE concat('%', #{thrPiId}, '%'))
</if>
<if test="ggxh != '' and ggxh != null">
AND basic_products.ggxh LIKE concat('%', #{ggxh}, '%')
</if>
<if test="cpmctymc != '' and cpmctymc != null">
AND basic_products.cpmctymc LIKE concat('%', #{cpmctymc}, '%')
</if>
<if test="nameCode != '' and nameCode != null">
AND nameCode LIKE concat(#{nameCode}, '%')
</if>
<if test="thirdId != '' and thirdId != null">
AND basic_udirel.thirdId LIKE concat(#{thirdId}, '%')
</if>
<if test="uuid != '' and uuid != null">
AND basic_udirel.uuid = #{uuid}
</if>
<if test="unitFk != '' and unitFk != null">
AND company_product_relevance.unitFk = #{unitFk}
</if>
<if test="id != '' and id != null">
AND basic_udirel.id = #{id}
</if>
<if test="udplatCode != '' and udplatCode != null">
AND basic_udirel.udplatCode = #{udplatCode}
</if>
<if test="diType != null">
AND basic_products.diType = #{diType}
</if>
<if test="lockStatus != '' and lockStatus != null">
AND basic_udirel.lockStatus = #{lockStatus}
</if>
<if test="zczbhhzbapzbh != '' and zczbhhzbapzbh != null">
AND basic_products.zczbhhzbapzbh LIKE concat(#{zczbhhzbapzbh}, '%')
</if>
<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>
<if test="mainId != '' and mainId != null">
AND mainId = #{mainId}
</if>
<if test="unionFilterStr != '' and unionFilterStr != null">
or basic_products.cpmctymc LIKE concat('%', #{unionFilterStr}, '%')
or basic_products.ylqxzcrbarmc LIKE concat('%', #{unionFilterStr}, '%')
or basic_products.ggxh LIKE concat('%', #{unionFilterStr}, '%')
or basic_products.zczbhhzbapzbh LIKE concat('%', #{unionFilterStr}, '%')
</if>
<if test="isAdavence != '' and isAdavence != null">
AND isAdavence = #{isAdavence}
</if>
<if test="uniqueNameCode != '' and uniqueNameCode != null">
AND nameCode = #{uniqueNameCode}
</if>
<if test="relIds != null and relIds.size() > 0">
and basic_udirel.id in
<foreach collection="relIds" item="item" index="index" separator="," open="(" close=")">
#{item}
</foreach>
</if>
<if test="flbm != '' and flbm != null">
and (tp.flbm = #{flbm} or basic_products.flbm = #{flbm} or tp.cplb = #{flbm} or
basic_udirel.relCode = #{flbm})
</if>
<if test="companyName != '' and companyName != null">
AND basic_corp.name like concat('%', #{companyName}, '%')
</if>
<if test="basicPrductRemak1 != '' and basicPrductRemak1 != null">
AND basic_products.basicPrductRemak1 like concat('%', #{basicPrductRemak1}, '%')
</if>
<if test="basicPrductRemak2 != '' and basicPrductRemak2 != null">
AND basic_products.basicPrductRemak2 like concat('%', #{basicPrductRemak2}, '%')
</if>
<if test="basicPrductRemak3 != '' and basicPrductRemak3 != null">
AND basic_products.basicPrductRemak3 like concat('%', #{basicPrductRemak3}, '%')
</if>
<if test="basicPrductRemak4 != '' and basicPrductRemak4 != null">
AND basic_products.basicPrductRemak4 like concat('%', #{basicPrductRemak4}, '%')
</if>
<if test="basicPrductRemak5 != '' and basicPrductRemak5 != null">
AND basic_products.basicPrductRemak5 like concat('%', #{basicPrductRemak5}, '%')
</if>
<if test="basicPrductRemak6 != '' and basicPrductRemak6 != null">
AND basic_products.basicPrductRemak6 like concat('%', #{basicPrductRemak6}, '%')
</if>
<if test="basicPrductRemak7 != '' and basicPrductRemak7 != null">
AND basic_products.basicPrductRemak7 like concat('%', #{basicPrductRemak7}, '%')
</if>
<if test="basicPrductRemak8 != '' and basicPrductRemak8 != null">
AND basic_products.basicPrductRemak8 like concat('%', #{basicPrductRemak8}, '%')
</if>
</where>
GROUP BY basic_udirel.id
</select>
<select id="filterDestinyProducts" parameterType="com.glxp.api.req.basic.FilterUdiRelRequest"
resultType="com.glxp.api.res.basic.UdiRelevanceResponse">
SELECT
basic_udirel.*,
basic_products.id AS PRId,
basic_products.originUuid,
basic_products.nameCode,
basic_products.deviceRecordKey,
basic_products.packRatio,
basic_products.packUnit,
basic_products.packLevel,
basic_products.bhxjsl,
basic_products.bhzxxsbzsl,
basic_products.zxxsbzbhsydysl,
basic_products.bhxjcpbm,
basic_products.bzcj,
basic_products.cpmctymc,
basic_products.cplb,
basic_products.flbm,
basic_products.ggxh,
basic_products.qxlb,
basic_products.tyshxydm,
basic_products.ylqxzcrbarmc,
basic_products.zczbhhzbapzbh,
basic_products.ylqxzcrbarywmc,
basic_products.sydycpbs,
basic_products.sjcpbm,
basic_products.versionNumber,
basic_products.diType,
basic_products.ybbm,
basic_products.sptm,
basic_products.manufactory,
basic_products.measname,
basic_products.productType,
basic_products.scbssfbhph,
basic_products.scbssfbhxlh,
basic_products.scbssfbhscrq,
basic_products.scbssfbhsxrq,
basic_products.cpms,
basic_products.allowNoBatch,
basic_products.allowNoExpire,
basic_products.allowNoProduct,
basic_products.allowNoSerial,
basic_products.spmc,
basic_products.cplx,
basic_products.hchzsb,
basic_products.cpdls,
basic_products.basicPrductRemak1,
basic_products.basicPrductRemak2,
basic_products.basicPrductRemak3,
basic_products.basicPrductRemak4,
basic_products.basicPrductRemak5,
basic_products.basicPrductRemak6,
basic_products.basicPrductRemak7,
basic_products.basicPrductRemak8,
basic_destiny_rel.count as count,
basic_destiny_rel.id as deId
FROM
basic_udirel
INNER JOIN basic_products ON basic_products.uuid = basic_udirel.uuid
INNER JOIN basic_destiny_rel ON basic_destiny_rel.relId = basic_udirel.id
<where>
<if test="ids != null and ids.size() > 0">
and basic_udirel.id in
<foreach collection="ids" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="diType != null">
AND basic_products.diType = #{diType}
</if>
<if test="cpmctymc != '' and cpmctymc != null">
AND basic_products.cpmctymc like concat('%', #{cpmctymc}, '%')
</if>
</where>
</select>
</mapper>

@ -0,0 +1,25 @@
<?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.dao.inout.IoDestinyProcessCodeMapper">
<resultMap id="BaseResultMap" type="com.glxp.api.entity.inout.IoDestinyProcessCodeEntity">
<!--@mbg.generated-->
<!--@Table udi_wms.io_destiny_process_code-->
<id column="id" jdbcType="BIGINT" property="id" />
<result column="orderIdFk" jdbcType="VARCHAR" property="orderIdFk" />
<result column="bindRlFk" jdbcType="VARCHAR" property="bindRlFk" />
<result column="uuidFk" jdbcType="VARCHAR" property="uuidFk" />
<result column="nameCode" jdbcType="VARCHAR" property="nameCode" />
<result column="batchNo" jdbcType="VARCHAR" property="batchNo" />
<result column="productDate" jdbcType="VARCHAR" property="productDate" />
<result column="expireDate" jdbcType="VARCHAR" property="expireDate" />
<result column="price" jdbcType="DECIMAL" property="price" />
<result column="supId" jdbcType="VARCHAR" property="supId" />
<result column="count" jdbcType="INTEGER" property="count" />
<result column="updateTime" jdbcType="TIMESTAMP" property="updateTime" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
id, orderIdFk, bindRlFk, uuidFk, nameCode, batchNo, productDate, expireDate, price,
supId, `count`, updateTime
</sql>
</mapper>

@ -0,0 +1,16 @@
<?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.dao.inout.IoDestinyProcessDetailMapper">
<resultMap id="BaseResultMap" type="com.glxp.api.entity.inout.IoDestinyProcessDetailEntity">
<!--@mbg.generated-->
<!--@Table udi_wms.io_destiny_process_detail-->
<id column="id" jdbcType="BIGINT" property="id" />
<result column="relId" jdbcType="BIGINT" property="relId" />
<result column="count" jdbcType="INTEGER" property="count" />
<result column="reCount" jdbcType="INTEGER" property="reCount" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
id, relId, `count`, reCount
</sql>
</mapper>

@ -0,0 +1,25 @@
<?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.dao.inout.IoDestinyProcessMapper">
<resultMap id="BaseResultMap" type="com.glxp.api.entity.inout.IoDestinyProcessEntity">
<!--@mbg.generated-->
<!--@Table udi_wms.io_destiny_process-->
<id column="id" jdbcType="BIGINT" property="id" />
<result column="destinyId" jdbcType="BIGINT" property="destinyId" />
<result column="destinyNo" jdbcType="BIGINT" property="destinyNo" />
<result column="billNo" jdbcType="VARCHAR" property="billNo" />
<result column="billDate" jdbcType="TIMESTAMP" property="billDate" />
<result column="invCode" jdbcType="VARCHAR" property="invCode" />
<result column="remark" jdbcType="VARCHAR" property="remark" />
<result column="createTime" jdbcType="TIMESTAMP" property="createTime" />
<result column="updateTime" jdbcType="TIMESTAMP" property="updateTime" />
<result column="createUser" jdbcType="VARCHAR" property="createUser" />
<result column="updateUser" jdbcType="VARCHAR" property="updateUser" />
<result column="status" jdbcType="INTEGER" property="status" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
id, destinyId, destinyNo, billNo, billDate, invCode, remark, createTime, updateTime,
`createUser`, updateUser, `status`
</sql>
</mapper>

@ -441,6 +441,11 @@
<if test="thirdSys != null and thirdSys != ''">
AND t1.thirdSys = #{thirdSys}
</if>
<if test="orderStartTime != null ">
<![CDATA[
and updateTime >= DATE_FORMAT(#{orderStartTime}, '%Y-%m-%d %H:%i:%S')
]]>
</if>
</where>
</select>

@ -3,8 +3,9 @@
<mapper namespace="com.glxp.api.dao.thrsys.ThrProductsDao">
<select id="filterThrProducts" parameterType="com.glxp.api.req.thrsys.FilterThrProductsRequest"
resultType="com.glxp.api.entity.thrsys.ThrProductsEntity">
SELECT *
SELECT *,cb.userName as createByName
FROM thr_products
LEFT JOIN auth_user cb ON thr_products.createUser = cb.id
<where>
<if test="name != '' and name != null">
AND name LIKE concat('%', #{name}, '%')
@ -42,6 +43,9 @@
<if test="supName != '' and supName != null">
AND supName LIKE concat('%', #{supName}, '%')
</if>
<if test="type != null">
AND type = #{type}
</if>
<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')
@ -167,7 +171,7 @@
(id, code, `name`, measname, spec, registerNo, manufactory,
cplb, flbm, qxlb, ybbm, sptm, tyshxydm, zczbhhzbapzbh, ylqxzcrbarmc, ylqxzcrbarywmc, cpms,
thirdSysFk, updateTime, supName, model, standard, qtbm, zczyxqz, remark, remark1, remark2, remark3,
price, createUser, createTime, updateUser, manufactoryCode, supCode)
price, createUser, createTime, updateUser, manufactoryCode, supCode, type)
values (#{id},
#{code},
#{name},
@ -199,7 +203,7 @@
#{price},
#{createUser},
#{createTime},
#{updateUser}, #{manufactoryCode}, #{supCode})
#{updateUser}, #{manufactoryCode}, #{supCode},#{type})
</insert>
<select id="selectByLastTime" resultType="com.glxp.api.entity.thrsys.ThrProductsEntity">
@ -215,7 +219,7 @@
cplb, flbm, qxlb, ybbm, sptm, tyshxydm, zczbhhzbapzbh, ylqxzcrbarmc, ylqxzcrbarywmc, cpms,
thirdSysFk, updateTime, supName, model, standard, qtbm, zczyxqz, remark, remark1, remark2, remark3,
price,
createUser, createTime, updateUser, manufactoryCode, supCode)
createUser, createTime, updateUser, manufactoryCode, supCode,type)
values
<foreach collection="list" index="index" item="item" open="(" close=")" separator=",">
#{item.code},
@ -248,7 +252,7 @@
#{item.price},
#{item.createUser},
#{item.createTime},
#{item.updateUser}, #{manufactoryCode}, #{supCode}
#{item.updateUser}, #{manufactoryCode}, #{supCode} , #{type}
</foreach>
</insert>
@ -326,6 +330,7 @@
price = #{price,jdbcType=VARCHAR},
manufactoryCode = #{manufactoryCode,jdbcType=VARCHAR},
supCode = #{supCode,jdbcType=VARCHAR}
type = #{type,jdbcType=VARCHAR}
</set>
where id = #{id,jdbcType=INTEGER}
</update>

@ -68,7 +68,7 @@ CALL Pro_Temp_ColumnWork('basic_udirel', 'groupBuy', 'tinyint', 1);
CALL Pro_Temp_ColumnWork('basic_udirel', 'isDateBy', 'tinyint', 1);
CALL Pro_Temp_ColumnWork('basic_udirel', 'needCert', 'tinyint', 1);
CALL Pro_Temp_ColumnWork('basic_udirel', 'certIdFk', 'varchar(255)', 1);
CALL Pro_Temp_ColumnWork('basic_udirel', 'zdcfsycs', 'int', 1);
CALL Pro_Temp_ColumnWork('basic_products', 'allowNoSerial', 'tinyint', 1);
@ -515,3 +515,19 @@ INSERT ignore INTO `sys_param_config`(id, `parentId`, `paramName`, `paramKey`, `
`paramType`,
`paramExplain`, `updateTime`)
VALUES (20059, 0, '是否允许编辑第三方产品信息', 'enable_edit_third', '1', 0, 0, '01', NULL);
CREATE TABLE if not exists `basic_destiny_rel`
(
`id` bigint(0) NOT NULL,
`relId` bigint(0) NULL DEFAULT NULL COMMENT '耗材产品id',
`pId` bigint(0) NULL DEFAULT NULL COMMENT '定数包模板id',
`count` int(0) NULL DEFAULT NULL COMMENT '数量',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB
CHARACTER SET = utf8mb4
COLLATE = utf8mb4_0900_ai_ci COMMENT = '定数包产品关联表'
ROW_FORMAT = Dynamic;
CALL Pro_Temp_ColumnWork('thr_products', 'type', 'int', 1);

Loading…
Cancel
Save