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/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/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/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/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