From ac9823878547396104c371713c50553914099edb Mon Sep 17 00:00:00 2001 From: x_z Date: Tue, 6 Sep 2022 11:34:00 +0800 Subject: [PATCH] =?UTF-8?q?1.=E6=96=B0=E5=A2=9EDI=E4=BA=A7=E5=93=81?= =?UTF-8?q?=E5=AE=A1=E6=A0=B8=EF=BC=8C=E6=B7=BB=E5=8A=A0=E4=BA=A7=E5=93=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../thrsys/ThrProductsAddDiController.java | 147 ++++++++++++++++++ .../admin/dao/thrsys/ThrProductsAddDiDao.java | 36 +++++ .../entity/thrsys/ThrProductsAddDiEntity.java | 50 ++++++ .../req/thrsys/AddThrDiProductsRequest.java | 27 ++++ .../res/thrsys/ThrProductsAddDiResponse.java | 32 ++++ .../service/basic/UdiContrastService.java | 42 +++++ .../thrsys/ThrProductsAddDiService.java | 26 ++++ .../impl/ThrProductsAddDiServiceImpl.java | 64 ++++++++ .../mapper/thrsys/ThrProductsAddDao.xml | 1 + .../mapper/thrsys/ThrProductsAddDiDao.xml | 77 +++++++++ 10 files changed, 502 insertions(+) create mode 100644 api-admin/src/main/java/com/glxp/sale/admin/controller/thrsys/ThrProductsAddDiController.java create mode 100644 api-admin/src/main/java/com/glxp/sale/admin/dao/thrsys/ThrProductsAddDiDao.java create mode 100644 api-admin/src/main/java/com/glxp/sale/admin/entity/thrsys/ThrProductsAddDiEntity.java create mode 100644 api-admin/src/main/java/com/glxp/sale/admin/req/thrsys/AddThrDiProductsRequest.java create mode 100644 api-admin/src/main/java/com/glxp/sale/admin/res/thrsys/ThrProductsAddDiResponse.java create mode 100644 api-admin/src/main/java/com/glxp/sale/admin/service/thrsys/ThrProductsAddDiService.java create mode 100644 api-admin/src/main/java/com/glxp/sale/admin/service/thrsys/impl/ThrProductsAddDiServiceImpl.java create mode 100644 api-admin/src/main/resources/mybatis/mapper/thrsys/ThrProductsAddDiDao.xml diff --git a/api-admin/src/main/java/com/glxp/sale/admin/controller/thrsys/ThrProductsAddDiController.java b/api-admin/src/main/java/com/glxp/sale/admin/controller/thrsys/ThrProductsAddDiController.java new file mode 100644 index 0000000..37ef215 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/sale/admin/controller/thrsys/ThrProductsAddDiController.java @@ -0,0 +1,147 @@ +package com.glxp.sale.admin.controller.thrsys; + + +import cn.hutool.core.bean.BeanUtil; +import com.github.pagehelper.PageInfo; +import com.glxp.sale.admin.annotation.AuthRuleAnnotation; +import com.glxp.sale.admin.entity.basic.UdiInfoEntity; +import com.glxp.sale.admin.entity.info.CompanyProductRelevanceEntity; +import com.glxp.sale.admin.entity.thrsys.ThrProductsAddDiEntity; +import com.glxp.sale.admin.entity.thrsys.ThrProductsEntity; +import com.glxp.sale.admin.req.basic.CombineRequest; +import com.glxp.sale.admin.req.inout.DeleteRequest; +import com.glxp.sale.admin.req.thrsys.AddThrDiProductsRequest; +import com.glxp.sale.admin.req.thrsys.FilterThrProductsRequest; +import com.glxp.sale.admin.res.PageSimpleResponse; +import com.glxp.sale.admin.res.thrsys.ThrProductsAddDiResponse; +import com.glxp.sale.admin.service.basic.UdiContrastService; +import com.glxp.sale.admin.service.info.CompanyProductRelevanceService; +import com.glxp.sale.admin.service.thrsys.ThrProductsAddDiService; +import com.glxp.sale.common.enums.ResultEnum; +import com.glxp.sale.common.res.BaseResponse; +import com.glxp.sale.common.util.ResultVOUtils; +import lombok.extern.slf4j.Slf4j; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.Date; +import java.util.List; + +/** + * 供应商新增DI产品相关接口 + */ +@Slf4j +@RestController +public class ThrProductsAddDiController { + + @Resource + private ThrProductsAddDiService thrProductsAddDiService; + @Resource + private UdiContrastService udiContrastService; + @Resource + private CompanyProductRelevanceService companyProductRelevanceService; + + /** + * 查询DI产品信息列表 + * + * @param filterThrProductsRequest + * @return + */ + @AuthRuleAnnotation("") + @GetMapping("udiwms/thrsys/getThrProductsDiList") + public BaseResponse filterThrProductsAddDiList(FilterThrProductsRequest filterThrProductsRequest) { + List thrProductsAddDiResponses = thrProductsAddDiService.filterThrProductsList(filterThrProductsRequest); + PageInfo pageInfo = new PageInfo<>(thrProductsAddDiResponses); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(pageInfo.getList()); + return ResultVOUtils.success(pageSimpleResponse); + } + + /** + * 添加DI产品信息 + * + * @param thrProductsAddDiEntity + * @return + */ + @AuthRuleAnnotation("") + @PostMapping("udiwms/thrsys/addThrAddDiProducts") + public BaseResponse addThrAddDiProducts(@RequestBody AddThrDiProductsRequest addThrDiProductsRequest, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); + } + thrProductsAddDiService.addThrAddDiProducts(addThrDiProductsRequest.getUuids(), addThrDiProductsRequest.getCustomerId()); + return ResultVOUtils.success(); + } + + /** + * 更新DI产品信息 + * + * @param thrProductsAddDiEntity + * @return + */ + @AuthRuleAnnotation("") + @PostMapping("udiwms/thrsys/updateThrAddDiProducts") + public BaseResponse updateDiProduct(@RequestBody ThrProductsAddDiEntity thrProductsAddDiEntity, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + + thrProductsAddDiEntity.setAuditTime(new Date()); + thrProductsAddDiService.updateDiProduct(thrProductsAddDiEntity); + if (thrProductsAddDiEntity.getStatus() == 2) { //审核通过 + ThrProductsEntity thrProductsEntity = new ThrProductsEntity(); + UdiInfoEntity udiInfoEntity = thrProductsAddDiService.getDiProductDetail(thrProductsAddDiEntity.getUuid()); + BeanUtil.copyProperties(udiInfoEntity, thrProductsEntity); + //审核通过后追加到耗材字典中 + CombineRequest combineRequest = new CombineRequest(); + combineRequest.setCustomerId(thrProductsAddDiEntity.getCustomerId()); + //插入数据,并获取关联主键 + Long udiRelIdFk = udiContrastService.createOnlyUuid(combineRequest, thrProductsAddDiEntity.getUuid()); + //回填关联关系到关联表 + CompanyProductRelevanceEntity companyProductRelevanceEntity = new CompanyProductRelevanceEntity(); + companyProductRelevanceEntity.setCustomerId(thrProductsAddDiEntity.getCustomerId()); + companyProductRelevanceEntity.setUdiRlIdFk(udiRelIdFk.intValue()); + companyProductRelevanceEntity.setCreate_time(new Date()); + companyProductRelevanceEntity.setUpdate_time(new Date()); + companyProductRelevanceEntity.setUnitFk(thrProductsAddDiEntity.getCustomerId().toString()); + companyProductRelevanceEntity.setAuditStatus("1"); + + companyProductRelevanceService.insertCompanyProductRelevance(companyProductRelevanceEntity); + } + return ResultVOUtils.success(); + } + + /** + * 删除DI产品信息 + * + * @param id + * @return + */ + @AuthRuleAnnotation("") + @PostMapping("udiwms/thrsys/delThrAddDiProducts") + public BaseResponse delThrDiProducts(@RequestBody DeleteRequest deleteRequest, BindingResult bindingResult) { + if (null != deleteRequest && deleteRequest.getId() == null) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL); + } + thrProductsAddDiService.delThrDiProducts(Long.valueOf(deleteRequest.getId())); + return ResultVOUtils.success(); + } + + /** + * 获取DI产品信息详情 + * + * @param uuid + * @return + */ + @GetMapping("udiwms/thrsys/getDiProductDetail") + public BaseResponse getDiProductDetail(String uuid) { + UdiInfoEntity udiInfoEntity = thrProductsAddDiService.getDiProductDetail(uuid); + return ResultVOUtils.success(udiInfoEntity); + } + +} diff --git a/api-admin/src/main/java/com/glxp/sale/admin/dao/thrsys/ThrProductsAddDiDao.java b/api-admin/src/main/java/com/glxp/sale/admin/dao/thrsys/ThrProductsAddDiDao.java new file mode 100644 index 0000000..7630ba8 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/sale/admin/dao/thrsys/ThrProductsAddDiDao.java @@ -0,0 +1,36 @@ +package com.glxp.sale.admin.dao.thrsys; + +import com.glxp.sale.admin.entity.basic.UdiInfoEntity; +import com.glxp.sale.admin.entity.thrsys.ThrProductsAddDiEntity; +import com.glxp.sale.admin.req.thrsys.FilterThrProductsRequest; +import com.glxp.sale.admin.res.thrsys.ThrProductsAddDiResponse; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +@Mapper +public interface ThrProductsAddDiDao { + + /** + * 添加产品信息 + * + * @param list + * @return + */ + boolean insertThrDiProducts(@Param("list") List list); + + /** + * 根据ID删除 + * + * @param id + * @return + */ + boolean deleteById(Long id); + + List filterThrProductsList(FilterThrProductsRequest filterThrProductsRequest); + + boolean updateDiProduct(ThrProductsAddDiEntity thrProductsAddDiEntity); + + UdiInfoEntity getDiProductDetail(@Param("uuid") String uuid); +} diff --git a/api-admin/src/main/java/com/glxp/sale/admin/entity/thrsys/ThrProductsAddDiEntity.java b/api-admin/src/main/java/com/glxp/sale/admin/entity/thrsys/ThrProductsAddDiEntity.java new file mode 100644 index 0000000..ce39c21 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/sale/admin/entity/thrsys/ThrProductsAddDiEntity.java @@ -0,0 +1,50 @@ +package com.glxp.sale.admin.entity.thrsys; + +import lombok.Data; + +import java.util.Date; + +/** + * 供应商新增DI产品实体类 + */ +@Data +public class ThrProductsAddDiEntity { + + private Long id; + + /** + * 国家库产品UUID + */ + private String uuid; + + /** + * 添加此产品的客户ID + */ + private Long customerId; + + /** + * 添加时间 + */ + private Date createTime; + + /** + * 审核时间 + */ + private Date auditTime; + + /** + * 审核人 + */ + private String auditUser; + + /** + * 审核状态 + */ + private int status; + + /** + * 备注 + */ + private String remark; + +} diff --git a/api-admin/src/main/java/com/glxp/sale/admin/req/thrsys/AddThrDiProductsRequest.java b/api-admin/src/main/java/com/glxp/sale/admin/req/thrsys/AddThrDiProductsRequest.java new file mode 100644 index 0000000..d9c810c --- /dev/null +++ b/api-admin/src/main/java/com/glxp/sale/admin/req/thrsys/AddThrDiProductsRequest.java @@ -0,0 +1,27 @@ +package com.glxp.sale.admin.req.thrsys; + +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.util.List; + +/** + * 供应商添加DI产品信息接口参数 + */ +@Data +public class AddThrDiProductsRequest { + + /** + * 产品UUID + */ + @NotEmpty(message = "请选择需要添加的产品") + private List uuids; + + /** + * 客户ID + */ + @NotNull(message = "参数错误") + private Long customerId; + +} diff --git a/api-admin/src/main/java/com/glxp/sale/admin/res/thrsys/ThrProductsAddDiResponse.java b/api-admin/src/main/java/com/glxp/sale/admin/res/thrsys/ThrProductsAddDiResponse.java new file mode 100644 index 0000000..0f1544b --- /dev/null +++ b/api-admin/src/main/java/com/glxp/sale/admin/res/thrsys/ThrProductsAddDiResponse.java @@ -0,0 +1,32 @@ +package com.glxp.sale.admin.res.thrsys; + +import com.glxp.sale.admin.entity.thrsys.ThrProductsAddDiEntity; +import lombok.Data; + +/** + * 供应商添加DI产品信息数据响应类 + */ +@Data +public class ThrProductsAddDiResponse extends ThrProductsAddDiEntity { + + private Long id; + + private String uuid; + + private String nameCode; + + private String cpmctymc; + + private String ggxh; + + private String ylqxzcrbarmc; + + private String zczbhhzbapzbh; + + private int status; + + private Long customerId; + + private String remark; + +} diff --git a/api-admin/src/main/java/com/glxp/sale/admin/service/basic/UdiContrastService.java b/api-admin/src/main/java/com/glxp/sale/admin/service/basic/UdiContrastService.java index e6242aa..db436cf 100644 --- a/api-admin/src/main/java/com/glxp/sale/admin/service/basic/UdiContrastService.java +++ b/api-admin/src/main/java/com/glxp/sale/admin/service/basic/UdiContrastService.java @@ -3,13 +3,17 @@ package com.glxp.sale.admin.service.basic; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import com.glxp.sale.admin.constant.ConstantStatus; +import com.glxp.sale.admin.dao.auth.CustomerInfoDao; import com.glxp.sale.admin.dao.basic.UdiRelevanceDao; +import com.glxp.sale.admin.entity.auth.CustomerInfoEntity; import com.glxp.sale.admin.entity.basic.UdiInfoEntity; import com.glxp.sale.admin.entity.basic.UdiRelevanceEntity; import com.glxp.sale.admin.entity.thrsys.ThrProductsEntity; +import com.glxp.sale.admin.req.basic.CombineRequest; import com.glxp.sale.admin.req.basic.FilterUdiInfoRequest; import com.glxp.sale.admin.req.thrsys.FilterThrProductsRequest; import com.glxp.sale.admin.service.thrsys.ThrProductsService; +import com.glxp.sale.admin.thread.UdiDlHttpClient; import com.glxp.sale.admin.util.CustomUtil; import com.glxp.sale.admin.util.DateUtil; import com.glxp.sale.admin.util.GennerOrderUtils; @@ -126,6 +130,10 @@ public class UdiContrastService { UdiRelevanceService udiRelevanceService; @Resource UdiInfoService udiInfoService; + @Resource + UdiDlHttpClient udiDlHttpClient; + @Resource + private CustomerInfoDao customerInfoDao; public void createOnlyMainId(String mainId) { FilterThrProductsRequest filterThrProductsRequest = new FilterThrProductsRequest(); @@ -166,5 +174,39 @@ public class UdiContrastService { udiInfoService.insertUdiInfo(udiInfoEntity); } + public long createOnlyUuid(CombineRequest combineRequest, String key) { + List udiInfoEntities = udiDlHttpClient.getOrUpdateByUuid(key); + UdiRelevanceEntity udiRelevanceEntity = new UdiRelevanceEntity(); + String time = DateUtil.getDateTime(); + udiRelevanceEntity.setUpdateTime(time); + udiRelevanceEntity.setModifyTime(time); + udiRelevanceEntity.setUuid(udiInfoEntities.get(0).getUuid()); + udiRelevanceEntity.setManufactory(udiInfoEntities.get(0).getYlqxzcrbarmc()); + if (StrUtil.isNotBlank(combineRequest.getSupName())) { + udiRelevanceEntity.setSupName(combineRequest.getSupName()); + } else { + CustomerInfoEntity customerInfoEntity = customerInfoDao.selectById(combineRequest.getCustomerId()); + udiRelevanceEntity.setSupName(customerInfoEntity.getCustomerName()); + } + if (StrUtil.isNotBlank(combineRequest.getPrice())) { + udiRelevanceEntity.setPrice(combineRequest.getPrice()); + } + long relId = gennerOrderUtils.getRelId(); + udiRelevanceEntity.setId(String.valueOf(relId)); + udiRelevanceService.insertUdiRelevance(udiRelevanceEntity); + insertUdiInfos(udiInfoEntities); + return relId; + } + + public void insertUdiInfos(List udiInfoEntities) { + if (CollUtil.isNotEmpty(udiInfoEntities)) { + UdiInfoEntity udiInfoEntity = udiInfoService.findByUuid(udiInfoEntities.get(0).getUuid()); + + if (udiInfoEntity == null) { + udiInfoService.insertUdiInfos(UdiInfoUtil.initUdiInfoEntitys(udiInfoEntities)); + } + } + } + } diff --git a/api-admin/src/main/java/com/glxp/sale/admin/service/thrsys/ThrProductsAddDiService.java b/api-admin/src/main/java/com/glxp/sale/admin/service/thrsys/ThrProductsAddDiService.java new file mode 100644 index 0000000..4be5f4b --- /dev/null +++ b/api-admin/src/main/java/com/glxp/sale/admin/service/thrsys/ThrProductsAddDiService.java @@ -0,0 +1,26 @@ +package com.glxp.sale.admin.service.thrsys; + +import com.glxp.sale.admin.entity.basic.UdiInfoEntity; +import com.glxp.sale.admin.entity.thrsys.ThrProductsAddDiEntity; +import com.glxp.sale.admin.req.thrsys.FilterThrProductsRequest; +import com.glxp.sale.admin.res.thrsys.ThrProductsAddDiResponse; + +import java.util.List; + +public interface ThrProductsAddDiService { + + List filterThrProductsList(FilterThrProductsRequest filterThrProductsRequest); + + /** + * 删除DI产品信息 + * + * @param id + */ + boolean delThrDiProducts(Long id); + + boolean updateDiProduct(ThrProductsAddDiEntity thrProductsAddDiEntity); + + boolean addThrAddDiProducts(List uuids, Long customerId); + + UdiInfoEntity getDiProductDetail(String uuid); +} diff --git a/api-admin/src/main/java/com/glxp/sale/admin/service/thrsys/impl/ThrProductsAddDiServiceImpl.java b/api-admin/src/main/java/com/glxp/sale/admin/service/thrsys/impl/ThrProductsAddDiServiceImpl.java new file mode 100644 index 0000000..51d3588 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/sale/admin/service/thrsys/impl/ThrProductsAddDiServiceImpl.java @@ -0,0 +1,64 @@ +package com.glxp.sale.admin.service.thrsys.impl; + +import com.github.pagehelper.PageHelper; +import com.glxp.sale.admin.dao.thrsys.ThrProductsAddDiDao; +import com.glxp.sale.admin.entity.basic.UdiInfoEntity; +import com.glxp.sale.admin.entity.thrsys.ThrProductsAddDiEntity; +import com.glxp.sale.admin.req.thrsys.FilterThrProductsRequest; +import com.glxp.sale.admin.res.thrsys.ThrProductsAddDiResponse; +import com.glxp.sale.admin.service.thrsys.ThrProductsAddDiService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +@Service +@Transactional +public class ThrProductsAddDiServiceImpl implements ThrProductsAddDiService { + + @Resource + private ThrProductsAddDiDao thrProductsAddDiDao; + + @Override + public List filterThrProductsList(FilterThrProductsRequest filterThrProductsRequest) { + if (null != filterThrProductsRequest && filterThrProductsRequest.getPage() != null) { + int offset = (filterThrProductsRequest.getPage() - 1) * filterThrProductsRequest.getLimit(); + PageHelper.offsetPage(offset, filterThrProductsRequest.getLimit()); + } + List thrProductsAddDiResponses = thrProductsAddDiDao.filterThrProductsList(filterThrProductsRequest); + return thrProductsAddDiResponses; + } + + @Override + public boolean delThrDiProducts(Long id) { + return thrProductsAddDiDao.deleteById(id); + } + + @Override + public boolean updateDiProduct(ThrProductsAddDiEntity thrProductsAddDiEntity) { + return thrProductsAddDiDao.updateDiProduct(thrProductsAddDiEntity); + } + + @Override + public boolean addThrAddDiProducts(List uuids, Long customerId) { + List list = new ArrayList<>(uuids.size()); + Date date = new Date(); + for (String uuid : uuids) { + ThrProductsAddDiEntity thrProductsAddDiEntity = new ThrProductsAddDiEntity(); + thrProductsAddDiEntity.setCustomerId(customerId); + thrProductsAddDiEntity.setUuid(uuid); + thrProductsAddDiEntity.setCreateTime(date); + thrProductsAddDiEntity.setStatus(1); //未审核 + list.add(thrProductsAddDiEntity); + } + return thrProductsAddDiDao.insertThrDiProducts(list); + } + + @Override + public UdiInfoEntity getDiProductDetail(String uuid) { + return thrProductsAddDiDao.getDiProductDetail(uuid); + } +} diff --git a/api-admin/src/main/resources/mybatis/mapper/thrsys/ThrProductsAddDao.xml b/api-admin/src/main/resources/mybatis/mapper/thrsys/ThrProductsAddDao.xml index f37c74f..c851e3f 100644 --- a/api-admin/src/main/resources/mybatis/mapper/thrsys/ThrProductsAddDao.xml +++ b/api-admin/src/main/resources/mybatis/mapper/thrsys/ThrProductsAddDao.xml @@ -185,6 +185,7 @@ supName=#{supName}, checkStatus=#{checkStatus}, customerId=#{customerId}, + remark=#{remark}, WHERE id = #{id} diff --git a/api-admin/src/main/resources/mybatis/mapper/thrsys/ThrProductsAddDiDao.xml b/api-admin/src/main/resources/mybatis/mapper/thrsys/ThrProductsAddDiDao.xml new file mode 100644 index 0000000..67ade57 --- /dev/null +++ b/api-admin/src/main/resources/mybatis/mapper/thrsys/ThrProductsAddDiDao.xml @@ -0,0 +1,77 @@ + + + + + + + insert into thr_products_add_di (uuid, customerId, createTime, auditTime, remark, auditUser, `status`) + values + + ( #{item.uuid}, + #{item.customerId}, + #{item.createTime}, + #{item.auditTime}, + #{item.remark}, + #{item.auditUser}, + #{item.status} ) + + + + + update thr_products_add_di + + uuid=#{uuid}, + customerId=#{customerId}, + createTime=#{createTime}, + auditTime=#{auditTime}, + remark=#{remark}, + auditUser=#{auditUser}, + `status`=#{status}, + + WHERE id = #{id} + + + + delete + from thr_products_add_di + where id = #{id} + + + + + + + \ No newline at end of file