diff --git a/src/main/java/com/syjiaer/clinic/server/entity/social/SocialCompareCode.java b/src/main/java/com/syjiaer/clinic/server/entity/social/SocialCompareCode.java
new file mode 100644
index 0000000..8891e0a
--- /dev/null
+++ b/src/main/java/com/syjiaer/clinic/server/entity/social/SocialCompareCode.java
@@ -0,0 +1,48 @@
+package com.syjiaer.clinic.server.entity.social;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.io.Serializable;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+import lombok.experimental.Accessors;
+/**
+ *
+ * 医保目录3301上传编号对照表
+ *
+ *
+ * @author NiuZiYuan
+ * @since 2025-06-03
+ */
+@Getter
+@Setter
+@ToString
+@Accessors(chain = true)
+@TableName("social_compare_code")
+@ApiModel(value = "SocialCompareCode对象", description = "医保目录3301上传编号对照表")
+public class SocialCompareCode implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+
+ @ApiModelProperty("医保目录编码")
+ private String code;
+
+ @ApiModelProperty("来源表 goods item item_group_list")
+ private String tableName;
+
+ @ApiModelProperty("3301上报编号")
+ private String compareCode;
+
+ @ApiModelProperty("逻辑删除 0是默认")
+ private Byte delFlag;
+
+ @ApiModelProperty("原始请求参数")
+ private String request;
+}
diff --git a/src/main/java/com/syjiaer/clinic/server/mapper/social/SocialCompareCodeMapper.java b/src/main/java/com/syjiaer/clinic/server/mapper/social/SocialCompareCodeMapper.java
new file mode 100644
index 0000000..8fb9b39
--- /dev/null
+++ b/src/main/java/com/syjiaer/clinic/server/mapper/social/SocialCompareCodeMapper.java
@@ -0,0 +1,18 @@
+package com.syjiaer.clinic.server.mapper.social;
+
+import com.syjiaer.clinic.server.entity.social.SocialCompareCode;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+
+/**
+ *
+ * 医保目录3301上传编号对照表 Mapper 接口
+ *
+ *
+ * @author NiuZiYuan
+ * @since 2025-06-03
+ */
+public interface SocialCompareCodeMapper extends BaseMapper {
+
+}
+
diff --git a/src/main/java/com/syjiaer/clinic/server/service/item/ItemService.java b/src/main/java/com/syjiaer/clinic/server/service/item/ItemService.java
index 496aa6a..39de01f 100644
--- a/src/main/java/com/syjiaer/clinic/server/service/item/ItemService.java
+++ b/src/main/java/com/syjiaer/clinic/server/service/item/ItemService.java
@@ -28,6 +28,7 @@ import com.syjiaer.clinic.server.mapper.social.SocialDirectoryMapper;
import com.syjiaer.clinic.server.mapper.social.SocialDirectoryUpinfoMapper;
import com.syjiaer.clinic.server.mapper.social.SocialItemMapper;
import com.syjiaer.clinic.server.service.BaseService;
+import com.syjiaer.clinic.server.service.social.SocialCompareService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -64,6 +65,8 @@ public class ItemService extends BaseService {
private SocialRequest socialRequest;
@Autowired
private Config config;
+ @Autowired
+ private SocialCompareService socialCompareService;
/*
* 获取项目列表
@@ -424,185 +427,197 @@ public class ItemService extends BaseService {
HashMap resultMap = new HashMap<>();
- resultMap.put("createOrDelete",createOrDelete);
- QueryWrapper socialItemQueryWrapper = new QueryWrapper<>();
- socialItemQueryWrapper.eq("code",code);
- socialItemQueryWrapper.last("limit 1");
-
- QueryWrapper directoryQueryWrapper = new QueryWrapper<>();
- directoryQueryWrapper.eq("code",code);
- directoryQueryWrapper.last("limit 1");
-
- //请求入参目录类别
- String requestListType = "";
- //查询3301编号是否存在已及更新的表
- String handleTable = "social_item";
- //自己系统的自增ID
- String selfId = "";
- //自己系统的名称
- String selfName = "";
-
- if (type.equals("goods")) {
- QueryWrapper queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("hilist_code",code);
- queryWrapper.last(" limit 1");
-
-
-
- Goods goods = goodsMapper.selectOne(queryWrapper);
-
- if (goods == null) {
- throw new MessageException("商品医保编码不存在");
- }
-
- //1301 西药中成药
- //1302 中药饮片
- //1306 医用材料
- requestListType = switch (goods.getType()) {
- case 1301 -> "101";
- case 1302 -> "102";
- case 1306 -> "301";
- default -> requestListType;
- };
-
- handleTable = "social_directory";
- selfId = "sd_"+goods.getId().toString();
- selfName = goods.getName();
- } else if (type.equals("item")) {
- QueryWrapper- queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("social_code",code);
- queryWrapper.last(" limit 1");
- Item item = itemMapper.selectOne(queryWrapper);
- if (item == null) {
- throw new MessageException("诊疗项目医保编码不存在");
- }
-
- //全部对应服务项目
- requestListType = "201";
-
- selfId = "i_"+item.getId().toString();
- selfName = item.getName();
-
- }else if (type.equals("item_group_list")) {
- QueryWrapper queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("social_code",code);
- queryWrapper.last(" limit 1");
- ItemGroupList itemGroupListInfo = itemGroupListMapper.selectOne(queryWrapper);
- if (itemGroupListInfo == null) {
- throw new MessageException("组套医保编码不存在");
- }
-
- //全部对应服务项目
- requestListType = "201";
- selfId = "igl_"+itemGroupListInfo.getId().toString();
- selfName = itemGroupListInfo.getName();
- }
-
-
- if (requestListType.isEmpty()) {
- throw new MessageException("请求参数错误");
- }
-
-
- if (handleTable.equals("social_directory")) {
- SocialDirectory socialDirectory = socialDirectoryMapper.selectOne(directoryQueryWrapper);
-
- if (socialDirectory == null) {
- throw new MessageException("医保目录编码不存在");
- }
-
- //当前商品已经处设置过compareCode socialDirectory.getCompareCode()!=""
-
-
- if (socialDirectory.getCompareCode()!=null && !socialDirectory.getCompareCode().isEmpty() && !Objects.equals(createOrDelete, "delete")) {
-
- System.out.println(socialDirectory.getCompareCode());
-
- log.info("call3301:socialDirectory已存在compareCode:code:{}:compareCode:{}",code,socialDirectory.getCompareCode());
-
- resultMap.put("compareCode",socialDirectory.getCompareCode());
- return resultMap;
- }
- }else{
- SocialItem socialItem = socialItemMapper.selectOne(socialItemQueryWrapper);
-
- if (socialItem == null) {
- throw new MessageException("诊疗项目-医保目录编码不存在");
- }
-
- if (socialItem.getCompareCode()!=null && !socialItem.getCompareCode().isEmpty() && !Objects.equals(createOrDelete, "delete")) {
-
- log.info("call3301:socialItem已存在compareCode:code:{}:compareCode:{}",code,socialItem.getCompareCode());
-
- resultMap.put("compareCode",socialItem.getCompareCode());
- return resultMap;
- }
- }
-
- if (createOrDelete.equals("delete"))
+ //兼容之前写好的代码
+ if (Objects.equals(createOrDelete, "create"))
{
-
- if (handleTable.equals("social_directory")) {
- //更新socialDirectoryMapper中compareCode字段为空
- socialDirectoryMapper.update(
- new SocialDirectory(),
- new UpdateWrapper().set("compare_code","").eq("code",code)
- );
- }else{
- //更新socialItemMapper中compareCode字段为空
- socialItemMapper.update(
- new SocialItem(),
- new UpdateWrapper().set("compare_code","").eq("code",code)
- );
- }
-
- IM3302 iM3302 = new IM3302();
- iM3302.setFixmedinsCode(config.get("social","msgid"));
- iM3302.setFixmedinsHilistId(selfId);
- iM3302.setListType(requestListType);
- iM3302.setMedListCodg(code);
-
- socialRequest.call3302(iM3302);
-
- log.info("call3302:socialItem删除compareCode:code:{}:compareCode:{}",code,selfId);
-
- resultMap.put("compareCode",code);
+ return socialCompareService.report(code,type);
+ }else{
+ socialCompareService.delete(code,type);
return resultMap;
}
- IM3301 iM3301 = new IM3301();
- iM3301.setFixmedinsHilistId(selfId);
- iM3301.setFixmedinsHilistName(selfName);
- iM3301.setListType(requestListType);
- iM3301.setMedListCodg(code);
- iM3301.setBegndate(LocalDateTime.of(2025,1,1,0,0,0));
- iM3301.setEnddate(LocalDateTime.of(2050,1,1,0,0,0));
-
- List