diff --git a/src/main/java/com/glxp/api/controller/basic/UdiContrastController.java b/src/main/java/com/glxp/api/controller/basic/UdiContrastController.java index 86fe73d1b..43af463c2 100644 --- a/src/main/java/com/glxp/api/controller/basic/UdiContrastController.java +++ b/src/main/java/com/glxp/api/controller/basic/UdiContrastController.java @@ -1,5 +1,6 @@ package com.glxp.api.controller.basic; +import com.glxp.api.req.basic.AddProductRequest; import com.glxp.api.service.inout.IoOrderDetailCodeService; import com.glxp.api.util.IntUtil; import org.springframework.beans.BeanUtils; @@ -40,6 +41,7 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; +import javax.validation.Valid; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -305,6 +307,15 @@ public class UdiContrastController { } + //耗材字段维护-新增产品 + @AuthRuleAnnotation("") + @PostMapping("/udi/udirel/addProduct") + public BaseResponse addProduct(@RequestBody @Valid AddProductRequest addProductRequest) { + udiProductService.addProduct(addProductRequest); + return ResultVOUtils.success(); + + } + public void updateDi(UdiRelevanceEntity udiRelevanceEntity, String key) { List udiInfoEntities = udiDlHttpClient.getOrUpdateByUuid(key); List originProductEntities = udiProductService.findByUuids(udiRelevanceEntity.getUuid()); diff --git a/src/main/java/com/glxp/api/entity/basic/UdiProductEntity.java b/src/main/java/com/glxp/api/entity/basic/UdiProductEntity.java index 91c11d0e3..af65e471c 100644 --- a/src/main/java/com/glxp/api/entity/basic/UdiProductEntity.java +++ b/src/main/java/com/glxp/api/entity/basic/UdiProductEntity.java @@ -95,5 +95,8 @@ public class UdiProductEntity { private String categoryName; private Date updateTime; private Integer useNum; + private String updateUser; + private Date createTime; + private String createUser; } diff --git a/src/main/java/com/glxp/api/req/basic/AddProductRequest.java b/src/main/java/com/glxp/api/req/basic/AddProductRequest.java new file mode 100644 index 000000000..571892bab --- /dev/null +++ b/src/main/java/com/glxp/api/req/basic/AddProductRequest.java @@ -0,0 +1,103 @@ +package com.glxp.api.req.basic; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; +import lombok.NoArgsConstructor; + +import javax.validation.Valid; +import javax.validation.constraints.NotEmpty; + +@NoArgsConstructor +@Data +public class AddProductRequest { + + /** + * 产品名称 + */ + @JsonProperty("name") + @NotEmpty(message = "产品名称必填!") + private String name; + + /** + * 规格型号 + */ + @JsonProperty("spec") + @NotEmpty(message = "规格型号必填!") + private String spec; + + /** + * 计量单位 + */ + @JsonProperty("measname") + @NotEmpty(message = "计量单位必填!") + private String measname; + + /** + * 生产企业 + */ + @JsonProperty("manufactory") + @NotEmpty(message = "生产企业必填!") + private String manufactory; + + /** + * 注册证号 + */ + @JsonProperty("registerNo") + @NotEmpty(message = "注册证号必填!") + private String registerNo; + + /** + * 医疗器械注册人 + */ + @JsonProperty("ylqxzcrbarmc") + private String ylqxzcrbarmc; + + /** + * 注册人英文名称 + */ + @JsonProperty("ylqxzcrbarywmc") + private String ylqxzcrbarywmc; + + /** + * 产品类别 + */ + @JsonProperty("cplb") + private String cplb; + + /** + * 分类编码 + */ + @JsonProperty("flbm") + private String flbm; + + /** + * 商品条码 + */ + @JsonProperty("sptm") + private String sptm; + + + /** + * 医保编码 + */ + @JsonProperty("ybbm") + private String ybbm; + + /** + * 统一社会信用号 + */ + @JsonProperty("tyshxydm") + private String tyshxydm; + + /** + * 器械类别 + */ + @JsonProperty("qxlb") + private String qxlb; + + /** + * 产品描述 + */ + @JsonProperty("cpms") + private String cpms; +} diff --git a/src/main/java/com/glxp/api/service/basic/ProductInfoService.java b/src/main/java/com/glxp/api/service/basic/ProductInfoService.java index 0765c15a2..c0cc49bf9 100644 --- a/src/main/java/com/glxp/api/service/basic/ProductInfoService.java +++ b/src/main/java/com/glxp/api/service/basic/ProductInfoService.java @@ -2,6 +2,7 @@ package com.glxp.api.service.basic; import com.glxp.api.entity.basic.ProductInfoEntity; +import com.glxp.api.req.basic.AddProductRequest; import com.glxp.api.req.basic.ProductInfoFilterRequest; import java.util.List; diff --git a/src/main/java/com/glxp/api/service/basic/UdiProductService.java b/src/main/java/com/glxp/api/service/basic/UdiProductService.java index ac7e6396b..923cd963d 100644 --- a/src/main/java/com/glxp/api/service/basic/UdiProductService.java +++ b/src/main/java/com/glxp/api/service/basic/UdiProductService.java @@ -1,6 +1,7 @@ package com.glxp.api.service.basic; import com.glxp.api.entity.basic.UdiProductEntity; +import com.glxp.api.req.basic.AddProductRequest; import com.glxp.api.req.basic.FilterUdiRelRequest; import com.glxp.api.req.basic.UdiInfoRequest; import com.glxp.api.res.basic.UdiRelevanceResponse; @@ -71,4 +72,5 @@ public interface UdiProductService { UdiProductEntity selectMinUdiByUuid(String uuid, Integer diType); + void addProduct(AddProductRequest addProductRequest); } diff --git a/src/main/java/com/glxp/api/service/basic/impl/ProductInfoServiceImpl.java b/src/main/java/com/glxp/api/service/basic/impl/ProductInfoServiceImpl.java index f45356bb8..8670a0026 100644 --- a/src/main/java/com/glxp/api/service/basic/impl/ProductInfoServiceImpl.java +++ b/src/main/java/com/glxp/api/service/basic/impl/ProductInfoServiceImpl.java @@ -1,5 +1,6 @@ package com.glxp.api.service.basic.impl; +import com.glxp.api.req.basic.AddProductRequest; import org.springframework.beans.BeanUtils; import com.github.pagehelper.PageHelper; import com.glxp.api.dao.basic.ProductInfoDao; diff --git a/src/main/java/com/glxp/api/service/basic/impl/UdiProductServiceImpl.java b/src/main/java/com/glxp/api/service/basic/impl/UdiProductServiceImpl.java index 78cce61c1..55025073e 100644 --- a/src/main/java/com/glxp/api/service/basic/impl/UdiProductServiceImpl.java +++ b/src/main/java/com/glxp/api/service/basic/impl/UdiProductServiceImpl.java @@ -4,32 +4,49 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; import com.github.pagehelper.PageHelper; +import com.glxp.api.constant.ConstantStatus; import com.glxp.api.dao.basic.UdiProductDao; +import com.glxp.api.dao.basic.UdiRelevanceDao; +import com.glxp.api.entity.basic.BasicBusTypeChangeEntity; import com.glxp.api.entity.basic.UdiProductEntity; +import com.glxp.api.entity.basic.UdiRelevanceEntity; import com.glxp.api.idc.service.impl.IdcServiceImpl; +import com.glxp.api.req.basic.AddProductRequest; import com.glxp.api.req.basic.FilterUdiRelRequest; import com.glxp.api.req.basic.UdiInfoRequest; import com.glxp.api.res.basic.UdiRelevanceResponse; +import com.glxp.api.service.auth.CustomerService; import com.glxp.api.service.basic.UdiProductService; +import com.glxp.api.service.basic.UdiRelevanceService; +import com.glxp.api.util.BeanCopyUtils; +import com.glxp.api.util.GennerOrderUtils; import com.glxp.api.util.HardWareUtils; import com.glxp.api.util.PinyinUtils; import com.glxp.api.util.udi.FilterUdiUtils; import org.apache.commons.lang3.exception.ExceptionUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.Collections; +import java.util.Date; import java.util.List; @Service @Transactional(rollbackFor = Exception.class) public class UdiProductServiceImpl implements UdiProductService { - + @Resource + private CustomerService customerService; @Resource UdiProductDao udiProductDao; + @Resource + UdiRelevanceDao udiRelevanceDao; + @Resource + GennerOrderUtils gennerOrderUtils; + private static final Logger logger = LoggerFactory.getLogger(UdiProductServiceImpl.class); @Override @@ -207,4 +224,38 @@ public class UdiProductServiceImpl implements UdiProductService { return udiProductEntities.get(0); return null; } + + @Override + public void addProduct(AddProductRequest addProductRequest) { + UdiProductEntity udiProductEntity = new UdiProductEntity(); + BeanUtils.copyProperties(addProductRequest,udiProductEntity); + long relId = gennerOrderUtils.getRelId(); + udiProductEntity.setId(relId); + udiProductEntity.setNameCode(relId+ ""); + udiProductEntity.setUuid(IdUtil.getSnowflakeNextId()+""); + + UdiRelevanceEntity udiRelevanceEntity = new UdiRelevanceEntity(); + udiRelevanceEntity.setId(IdUtil.getSnowflakeNextId()); + udiRelevanceEntity.setUuid(udiProductEntity.getUuid()); + udiProductEntity.setDiType(ConstantStatus.DI_TYPE_MAIN); + // TODO: 2024/2/27 初始化其他字段 + setUpdateInfo(udiProductEntity,udiRelevanceEntity); + + udiProductDao.insertUdiInfo(udiProductEntity); + udiRelevanceDao.insertUdiRelevance(udiRelevanceEntity); + } + + private void setUpdateInfo(UdiProductEntity udiProductEntity,UdiRelevanceEntity udiRelevanceEntity) { + Date now = new Date(); + String userId = String.valueOf(customerService.getUserBean().getId()); + udiProductEntity.setUpdateTime(now); + udiProductEntity.setUpdateUser(userId); + udiProductEntity.setCreateTime(now); + udiProductEntity.setCreateUser(userId); + + udiRelevanceEntity.setUpdateTime(now); + udiRelevanceEntity.setUpdateUser(userId); + udiRelevanceEntity.setCreateTime(now); + udiRelevanceEntity.setCreateUser(userId); + } } diff --git a/src/main/resources/mybatis/mapper/basic/UdiProductDao.xml b/src/main/resources/mybatis/mapper/basic/UdiProductDao.xml index aa404c63e..6fc9b8201 100644 --- a/src/main/resources/mybatis/mapper/basic/UdiProductDao.xml +++ b/src/main/resources/mybatis/mapper/basic/UdiProductDao.xml @@ -184,7 +184,10 @@ basicPrductRemak3, basicPrductRemak4, basicPrductRemak5, basicPrductRemak6, basicPrductRemak7, basicPrductRemak8, updateTime , sfwblztlcp, cgzmraqxgxx, sfbjwycxsy, zdcfsycs, sfwwjbz, syqsfxyjxmj, mjfs, categoryName, - pinyinInitial) + pinyinInitial, + updateUser, + createTime, + createUser) values (#{id}, #{uuid}, #{originUuid}, #{nameCode}, @@ -237,7 +240,10 @@ #{basicPrductRemak7}, #{basicPrductRemak8}, #{updateTime} , #{sfwblztlcp}, #{cgzmraqxgxx}, #{sfbjwycxsy}, #{zdcfsycs}, #{sfwwjbz}, #{syqsfxyjxmj}, #{mjfs}, - #{categoryName}, #{pinyinInitial}) + #{categoryName}, #{pinyinInitial}, + #{updateUser}, + #{createTime}, + #{createUser})