diff --git a/src/main/java/com/glxp/api/constant/Constant.java b/src/main/java/com/glxp/api/constant/Constant.java index e22166a49..c197d1e18 100644 --- a/src/main/java/com/glxp/api/constant/Constant.java +++ b/src/main/java/com/glxp/api/constant/Constant.java @@ -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"; } diff --git a/src/main/java/com/glxp/api/controller/basic/BasicDestinyRelController.java b/src/main/java/com/glxp/api/controller/basic/BasicDestinyRelController.java index 3c8851174..c14fef462 100644 --- a/src/main/java/com/glxp/api/controller/basic/BasicDestinyRelController.java +++ b/src/main/java/com/glxp/api/controller/basic/BasicDestinyRelController.java @@ -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 thrProductsEntities = thrProductsService.filterThrProducts(filterThrProductsRequest); + PageInfo pageInfo = new PageInfo<>(thrProductsEntities); + PageSimpleResponse 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 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 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 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 idList = basicDestinyRelService.filterDestinyRelIds(Long.valueOf(companyProductRelevanceRequest.getId())); + + List basicInstrumentMaintainRelevanceResponses = null; + FilterUdiRelRequest filterUdiRelRequest = new FilterUdiRelRequest(); + BeanCopyUtils.copy(companyProductRelevanceRequest, filterUdiRelRequest); + if (idList.size() > 0) { + filterUdiRelRequest.setIds(idList); + } + basicInstrumentMaintainRelevanceResponses = basicDestinyRelService.filterUdiJoinSup(filterUdiRelRequest); + PageInfo pageInfo; + pageInfo = new PageInfo<>(basicInstrumentMaintainRelevanceResponses); + PageSimpleResponse 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 thrProductsEntities = new ArrayList<>(); + //查询详情id过滤 + List 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 pageInfo = new PageInfo<>(thrProductsEntities); + PageSimpleResponse 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(); + } + + + } diff --git a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java index 7abcef388..7d113c064 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoCodeTempController.java @@ -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 + ",序列号"; diff --git a/src/main/java/com/glxp/api/dao/basic/BasicDestinyRelMapper.java b/src/main/java/com/glxp/api/dao/basic/BasicDestinyRelMapper.java index b1706ff09..f5bf24964 100644 --- a/src/main/java/com/glxp/api/dao/basic/BasicDestinyRelMapper.java +++ b/src/main/java/com/glxp/api/dao/basic/BasicDestinyRelMapper.java @@ -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 { +public interface BasicDestinyRelMapper extends BaseMapperPlus { + + List filterUdiJoinSup(FilterUdiRelRequest filterUdiRelRequest); + + List filterDestinyProducts(FilterUdiRelRequest filterUdiRelRequest); + + } \ No newline at end of file diff --git a/src/main/java/com/glxp/api/dao/inout/IoDestinyProcessCodeMapper.java b/src/main/java/com/glxp/api/dao/inout/IoDestinyProcessCodeMapper.java new file mode 100644 index 000000000..01a97f2b2 --- /dev/null +++ b/src/main/java/com/glxp/api/dao/inout/IoDestinyProcessCodeMapper.java @@ -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 { +} \ No newline at end of file diff --git a/src/main/java/com/glxp/api/dao/inout/IoDestinyProcessDetailMapper.java b/src/main/java/com/glxp/api/dao/inout/IoDestinyProcessDetailMapper.java new file mode 100644 index 000000000..6c9c05b32 --- /dev/null +++ b/src/main/java/com/glxp/api/dao/inout/IoDestinyProcessDetailMapper.java @@ -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 { +} \ No newline at end of file diff --git a/src/main/java/com/glxp/api/dao/inout/IoDestinyProcessMapper.java b/src/main/java/com/glxp/api/dao/inout/IoDestinyProcessMapper.java new file mode 100644 index 000000000..fc6c49cd5 --- /dev/null +++ b/src/main/java/com/glxp/api/dao/inout/IoDestinyProcessMapper.java @@ -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 { +} \ No newline at end of file diff --git a/src/main/java/com/glxp/api/entity/basic/BasicDestinyRel.java b/src/main/java/com/glxp/api/entity/basic/BasicDestinyRelEntity.java similarity index 94% rename from src/main/java/com/glxp/api/entity/basic/BasicDestinyRel.java rename to src/main/java/com/glxp/api/entity/basic/BasicDestinyRelEntity.java index 47eeb9380..27938a843 100644 --- a/src/main/java/com/glxp/api/entity/basic/BasicDestinyRel.java +++ b/src/main/java/com/glxp/api/entity/basic/BasicDestinyRelEntity.java @@ -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; diff --git a/src/main/java/com/glxp/api/entity/inout/IoDestinyProcessCodeEntity.java b/src/main/java/com/glxp/api/entity/inout/IoDestinyProcessCodeEntity.java new file mode 100644 index 000000000..0a1b789e3 --- /dev/null +++ b/src/main/java/com/glxp/api/entity/inout/IoDestinyProcessCodeEntity.java @@ -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; + + /** + * DI信息UUID外键 + */ + @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; +} \ No newline at end of file diff --git a/src/main/java/com/glxp/api/entity/inout/IoDestinyProcessDetailEntity.java b/src/main/java/com/glxp/api/entity/inout/IoDestinyProcessDetailEntity.java new file mode 100644 index 000000000..864eb342a --- /dev/null +++ b/src/main/java/com/glxp/api/entity/inout/IoDestinyProcessDetailEntity.java @@ -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; +} \ No newline at end of file diff --git a/src/main/java/com/glxp/api/entity/inout/IoDestinyProcessEntity.java b/src/main/java/com/glxp/api/entity/inout/IoDestinyProcessEntity.java new file mode 100644 index 000000000..4f502b5b2 --- /dev/null +++ b/src/main/java/com/glxp/api/entity/inout/IoDestinyProcessEntity.java @@ -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; +} \ No newline at end of file diff --git a/src/main/java/com/glxp/api/req/basic/BasicDestinyRelRequest.java b/src/main/java/com/glxp/api/req/basic/BasicDestinyRelRequest.java new file mode 100644 index 000000000..79c2e4c70 --- /dev/null +++ b/src/main/java/com/glxp/api/req/basic/BasicDestinyRelRequest.java @@ -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 list; + private Long pId; + private Long id; + private int count; + public List getList() { + return list; + } + + public Long getpId() { + return pId; + } +} diff --git a/src/main/java/com/glxp/api/res/basic/UdiRelevanceResponse.java b/src/main/java/com/glxp/api/res/basic/UdiRelevanceResponse.java index 47af0d2c3..dde051c2d 100644 --- a/src/main/java/com/glxp/api/res/basic/UdiRelevanceResponse.java +++ b/src/main/java/com/glxp/api/res/basic/UdiRelevanceResponse.java @@ -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; diff --git a/src/main/java/com/glxp/api/service/basic/BasicDestinyRelService.java b/src/main/java/com/glxp/api/service/basic/BasicDestinyRelService.java index 2ec8ac5ca..6cece5ef2 100644 --- a/src/main/java/com/glxp/api/service/basic/BasicDestinyRelService.java +++ b/src/main/java/com/glxp/api/service/basic/BasicDestinyRelService.java @@ -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 filterUdiJoinSup(FilterUdiRelRequest filterUdiRelRequest); + + List filterDestinyRelIds(Long pId); + + List filterDestinyProducts(FilterUdiRelRequest filterUdiRelRequest); + + Boolean delectModeldestinyProduct(BasicDestinyRelRequest basicDestinyRelRequest); + + Boolean uploadModeldestinyProduct(BasicDestinyRelRequest basicDestinyRelRequest); + } diff --git a/src/main/java/com/glxp/api/service/basic/impl/BasicBussinessTypeServiceImpl.java b/src/main/java/com/glxp/api/service/basic/impl/BasicBussinessTypeServiceImpl.java index 79d9e52c6..9e3a6b811 100644 --- a/src/main/java/com/glxp/api/service/basic/impl/BasicBussinessTypeServiceImpl.java +++ b/src/main/java/com/glxp/api/service/basic/impl/BasicBussinessTypeServiceImpl.java @@ -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 filterList(FilterBussinessTypeRequest filterBussinessTypeRequest) { @@ -257,6 +264,19 @@ public class BasicBussinessTypeServiceImpl extends ServiceImpl() .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 thrOrderUploadBustypesEntities = thrOrderUploadBustypesService.list(); + List actions = new ArrayList<>(); + thrOrderUploadBustypesEntities.forEach(item -> + { + actions.add(item.getAction()); + }); + if (CollUtil.isNotEmpty(actions)) { + bussinessTypeEntities = basicBussinessTypeDao.selectList(new QueryWrapper().in("action", actions)); + } + break; default: break; diff --git a/src/main/java/com/glxp/api/service/basic/impl/BasicDestinyRelServiceImpl.java b/src/main/java/com/glxp/api/service/basic/impl/BasicDestinyRelServiceImpl.java new file mode 100644 index 000000000..b90b5ff42 --- /dev/null +++ b/src/main/java/com/glxp/api/service/basic/impl/BasicDestinyRelServiceImpl.java @@ -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 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 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 data = basicDestinyRelMapper.filterUdiJoinSup(filterUdiRelRequest); + return data; + } + + @Override + public List filterDestinyRelIds(Long pId) { + + List stringList = new ArrayList<>(); + QueryWrapper ew = new QueryWrapper<>(); + ew.eq("pId", pId); + List basicDestinyRelEntities = basicDestinyRelMapper.selectList(ew); + for (BasicDestinyRelEntity basicDestinyRelEntity : basicDestinyRelEntities) { + stringList.add(basicDestinyRelEntity.getRelId()); + } + return stringList; + } + + @Override + public List 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 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; + } +} diff --git a/src/main/java/com/glxp/api/service/inout/IoDestinyProcessCodeService.java b/src/main/java/com/glxp/api/service/inout/IoDestinyProcessCodeService.java new file mode 100644 index 000000000..76a0e54fb --- /dev/null +++ b/src/main/java/com/glxp/api/service/inout/IoDestinyProcessCodeService.java @@ -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{ + + +} diff --git a/src/main/java/com/glxp/api/service/inout/IoDestinyProcessDetailService.java b/src/main/java/com/glxp/api/service/inout/IoDestinyProcessDetailService.java new file mode 100644 index 000000000..b51861a54 --- /dev/null +++ b/src/main/java/com/glxp/api/service/inout/IoDestinyProcessDetailService.java @@ -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{ + + +} diff --git a/src/main/java/com/glxp/api/service/inout/IoDestinyProcessService.java b/src/main/java/com/glxp/api/service/inout/IoDestinyProcessService.java new file mode 100644 index 000000000..24633790e --- /dev/null +++ b/src/main/java/com/glxp/api/service/inout/IoDestinyProcessService.java @@ -0,0 +1,6 @@ +package com.glxp.api.service.inout; + + +public interface IoDestinyProcessService{ + +} diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoDestinyProcessCodeServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoDestinyProcessCodeServiceImpl.java new file mode 100644 index 000000000..e98d51ac2 --- /dev/null +++ b/src/main/java/com/glxp/api/service/inout/impl/IoDestinyProcessCodeServiceImpl.java @@ -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 { + +} diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoDestinyProcessDetailServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoDestinyProcessDetailServiceImpl.java new file mode 100644 index 000000000..5812f8875 --- /dev/null +++ b/src/main/java/com/glxp/api/service/inout/impl/IoDestinyProcessDetailServiceImpl.java @@ -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{ + +} diff --git a/src/main/java/com/glxp/api/service/inout/impl/IoDestinyProcessServiceImpl.java b/src/main/java/com/glxp/api/service/inout/impl/IoDestinyProcessServiceImpl.java new file mode 100644 index 000000000..fa72cff7c --- /dev/null +++ b/src/main/java/com/glxp/api/service/inout/impl/IoDestinyProcessServiceImpl.java @@ -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 { + +} diff --git a/src/main/java/com/glxp/api/task/SyncHeartTask.java b/src/main/java/com/glxp/api/task/SyncHeartTask.java index 2dcc0989d..290f08b5b 100644 --- a/src/main/java/com/glxp/api/task/SyncHeartTask.java +++ b/src/main/java/com/glxp/api/task/SyncHeartTask.java @@ -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); diff --git a/src/main/java/com/glxp/api/task/SyncThirdSysTask.java b/src/main/java/com/glxp/api/task/SyncThirdSysTask.java index 7c9b708c8..fe6c696f3 100644 --- a/src/main/java/com/glxp/api/task/SyncThirdSysTask.java +++ b/src/main/java/com/glxp/api/task/SyncThirdSysTask.java @@ -277,7 +277,7 @@ public class SyncThirdSysTask implements SchedulingConfigurer { long timeInterval = Long.parseLong(thrSystemDetailEntity.getTime().intValue() + "") * 1000 * 60; if (curTime - lastTime < timeInterval) { - log.info("定时任务时间未到", taskKey); + log.info("定时任务时间未到---" + taskKey); return false; } else { return true; diff --git a/src/main/java/com/glxp/api/util/udi/UdiInfoUtil.java b/src/main/java/com/glxp/api/util/udi/UdiInfoUtil.java index 252bdbbc8..438491fde 100644 --- a/src/main/java/com/glxp/api/util/udi/UdiInfoUtil.java +++ b/src/main/java/com/glxp/api/util/udi/UdiInfoUtil.java @@ -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(); } diff --git a/src/main/resources/mybatis/mapper/basic/BasicDestinyRelMapper.xml b/src/main/resources/mybatis/mapper/basic/BasicDestinyRelMapper.xml index 64cbdd712..4eb4ee9c4 100644 --- a/src/main/resources/mybatis/mapper/basic/BasicDestinyRelMapper.xml +++ b/src/main/resources/mybatis/mapper/basic/BasicDestinyRelMapper.xml @@ -1,7 +1,7 @@ - + @@ -13,4 +13,287 @@ id, relId, pId, `count` + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mybatis/mapper/inout/IoDestinyProcessCodeMapper.xml b/src/main/resources/mybatis/mapper/inout/IoDestinyProcessCodeMapper.xml new file mode 100644 index 000000000..cb71a6f81 --- /dev/null +++ b/src/main/resources/mybatis/mapper/inout/IoDestinyProcessCodeMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, orderIdFk, bindRlFk, uuidFk, nameCode, batchNo, productDate, expireDate, price, + supId, `count`, updateTime + + \ No newline at end of file diff --git a/src/main/resources/mybatis/mapper/inout/IoDestinyProcessDetailMapper.xml b/src/main/resources/mybatis/mapper/inout/IoDestinyProcessDetailMapper.xml new file mode 100644 index 000000000..9357cd2dc --- /dev/null +++ b/src/main/resources/mybatis/mapper/inout/IoDestinyProcessDetailMapper.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + id, relId, `count`, reCount + + \ No newline at end of file diff --git a/src/main/resources/mybatis/mapper/inout/IoDestinyProcessMapper.xml b/src/main/resources/mybatis/mapper/inout/IoDestinyProcessMapper.xml new file mode 100644 index 000000000..63cd8b7a6 --- /dev/null +++ b/src/main/resources/mybatis/mapper/inout/IoDestinyProcessMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + id, destinyId, destinyNo, billNo, billDate, invCode, remark, createTime, updateTime, + `createUser`, updateUser, `status` + + \ No newline at end of file