Browse Source

发药上传医保

yeguodong 2 weeks ago
parent
commit
b4a339ad26

+ 1 - 1
src/main/java/cn/hnthyy/thmz/Utils/HttpUtil.java

@@ -78,7 +78,7 @@ public class HttpUtil {
      * @throws Exception
      */
     public static String sendHttpPost(String url, String jSONBody,Integer timeOut) throws Exception {
-        return sendHttpPost(url, jSONBody,"application/json",timeOut);
+        return sendHttpPost(url, jSONBody,"application/json;charset=UTF-8",timeOut);
     }
 
 

+ 6 - 1
src/main/java/cn/hnthyy/thmz/controller/yb/YbController.java

@@ -2,6 +2,7 @@ package cn.hnthyy.thmz.controller.yb;
 
 import cn.hnthyy.thmz.comment.UserLoginToken;
 import cn.hnthyy.thmz.entity.jy.ResultVo;
+import cn.hnthyy.thmz.entity.yb.SelinfoReturn;
 import cn.hnthyy.thmz.entity.yb.SelinfoSold;
 import cn.hnthyy.thmz.service.yb.YbService;
 import lombok.extern.slf4j.Slf4j;
@@ -19,10 +20,14 @@ public class YbController {
     @Autowired
     private YbService ybService;
 
-    @UserLoginToken
     @RequestMapping(value = "/saleGoodsItem", method = {RequestMethod.POST})
     public ResultVo saleGoodsItem(@RequestBody SelinfoSold selInfo) {
         return ybService.saleGoodsItem(selInfo);
     }
 
+    @RequestMapping(value = "/returnGoodsItem", method = {RequestMethod.POST})
+    public ResultVo returnGoodsItem(@RequestBody SelinfoReturn selinfoReturn) {
+        return ybService.returnGoodsItem(selinfoReturn);
+    }
+
 }

+ 4 - 4
src/main/java/cn/hnthyy/thmz/entity/yb/SelinfoReturn.java

@@ -117,7 +117,7 @@ public class SelinfoReturn {
      * 销售/退货数量
      * */
     @JSONField(name = "sel_retn_cnt")
-    private BigDecimal selRetnCnt;
+    private int selRetnCnt;
 
     
     /**
@@ -155,9 +155,9 @@ public class SelinfoReturn {
     private String mdtrtSn;
 
     /**
-     * 商品销售流水号
+     * 溯源码节点信息
      * */
-    @JSONField(name = "drug_trac_codg")
-    private String drugTracCodg;
+    @JSONField(name = "drugtracinfo")
+    private List<DrugTracCodg> drugtracinfo;
 
 }

+ 4 - 1
src/main/java/cn/hnthyy/thmz/entity/yb/SelinfoSold.java

@@ -9,8 +9,11 @@ import java.util.List;
 @Data
 public class SelinfoSold {
 
+    @JSONField(name = "id")
+    private String id;
+
     /**
-     * 医疗目录编码(如果没有就填默认值NMLC999)
+     * 医疗目录编码(国家医保编码
      * */
     @JSONField(name = "med_list_codg")
     private String medListCodg;

+ 13 - 0
src/main/java/cn/hnthyy/thmz/mapper/his/yb/SelinfoSoldMapper.java

@@ -0,0 +1,13 @@
+package cn.hnthyy.thmz.mapper.his.yb;
+
+import cn.hnthyy.thmz.entity.yb.SelinfoSold;
+import cn.hnthyy.thmz.vo.MzDrugWinVo;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Insert;
+
+public interface SelinfoSoldMapper extends BaseMapper<SelinfoSold> {
+
+    @Insert("insert into selinfo_sold_drugtrac(id,selinfo_sold_id,trac_codg)" +
+            " values(#{id,jdbcType=VARCHAR},#{selinfoSoldId,jdbcType=VARCHAR},#{tracCodg,jdbcType=VARCHAR})")
+    int insertSelinfoSoldDrugtrac(String id, String selinfoSoldId,  String tracCodg);
+}

+ 46 - 8
src/main/java/cn/hnthyy/thmz/service/yb/YbService.java

@@ -5,18 +5,18 @@ import cn.hnthyy.thmz.entity.jy.ResultVo;
 import cn.hnthyy.thmz.entity.yb.DrugTracCodg;
 import cn.hnthyy.thmz.entity.yb.SelinfoSold;
 import cn.hnthyy.thmz.entity.yb.SelinfoReturn;
+import cn.hnthyy.thmz.mapper.his.yb.SelinfoSoldMapper;
 import cn.hnthyy.thmz.service.taobao.TaobaoService;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.serializer.SerializerFeature;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
 import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.List;
-import java.util.Random;
+import java.util.*;
 
 @Slf4j
 @Service
@@ -28,15 +28,19 @@ public class YbService {
     @Autowired
     private TaobaoService taobaoService;
 
+    @Autowired
+    private SelinfoSoldMapper selinfoSoldMapper;
+
     public ResultVo saleGoodsItem(SelinfoSold selInfo) {
         ResultVo response = null;
-        selInfo.setMdtrtSn("MDTRT_ID");
+
         List<DrugTracCodg> drugTracCodgList = selInfo.getDrugtracinfo();
         if(drugTracCodgList == null || drugTracCodgList.isEmpty()) {
             response = new ResultVo(-1, "追溯码不能为空");
             return response;
         }
-        String result = taobaoService.sendGet("/queryCodeDetail?codes=" + drugTracCodgList.get(0));
+        String drugTracCodg = drugTracCodgList.get(0).getDrugTracCodg();
+        String result = taobaoService.sendGet("/queryCodeDetail?codes=" + drugTracCodg);
         JSONObject resultJson = JSONObject.parseObject(result);
         Integer code = resultJson.getInteger("code");
         if (code == 200) {
@@ -57,18 +61,22 @@ public class YbService {
         }
         int randomNumber = new Random().nextInt(90) + 10;
         String rtalDocno = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
+        if("1".equals(selInfo.getMdtrtSetlType())) {
+            selInfo.setMdtrtSn("MDTRT_ID");
+        } else {
+            selInfo.setMdtrtSn(rtalDocno + randomNumber);
+        }
         selInfo.setRtalDocno(rtalDocno + randomNumber);
         selInfo.setFixmedinsBchno(rtalDocno + randomNumber);
         selInfo.setSelRetnCnt(drugTracCodgList.size());
         String now = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
         selInfo.setSelRetnTime(now);
-        selInfo.setSelRetnOpterName("");
-        selInfo.setMdtrtSetlType("1");
 
 
         String realUrl = siInventoryServiceUrl + "/saleGoodsItem";
         try {
-            String ybResult = HttpUtil.sendHttpPost(realUrl, JSONObject.toJSONString(selInfo), 8000);
+            String jsonString = JSONObject.toJSONString(selInfo, SerializerFeature.WriteNonStringKeyAsString);
+            String ybResult = HttpUtil.sendHttpPost(realUrl, jsonString, 8000);
             JSONObject ybResultJson = JSONObject.parseObject(ybResult);
             int responseCode = 0;
             if(ybResultJson.getInteger("code") != 200) {
@@ -79,13 +87,43 @@ public class YbService {
             e.printStackTrace();
             response = new ResultVo(-1, "商品销售失败");
         }
+        String id = UUID.randomUUID().toString().replaceAll("-", "");
+        selInfo.setId(id);
+        int insertSelinfo = selinfoSoldMapper.insert(selInfo);
+        if(insertSelinfo > 0) {
+            for(DrugTracCodg codg : drugTracCodgList) {
+                String itemId = UUID.randomUUID().toString().replaceAll("-", "");
+                selinfoSoldMapper.insertSelinfoSoldDrugtrac(itemId, id, codg.getDrugTracCodg());
+            }
+        }
+
 
         return response;
     }
 
     public ResultVo returnGoodsItem(SelinfoReturn selinfoReturn) {
         ResultVo response = null;
+        List<DrugTracCodg> drugTracCodgList = selinfoReturn.getDrugtracinfo();
+        selinfoReturn.setSelRetnCnt(drugTracCodgList.size());
+        String now = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
+        selinfoReturn.setSelRetnTime(now);
         selinfoReturn.setMdtrtSn("MDTRT_ID");
+
+        String realUrl = siInventoryServiceUrl + "/returnGoodsItem";
+        try {
+            String jsonString = JSONObject.toJSONString(selinfoReturn, SerializerFeature.WriteNonStringKeyAsString);
+            String ybResult = HttpUtil.sendHttpPost(realUrl, jsonString, 8000);
+            JSONObject ybResultJson = JSONObject.parseObject(ybResult);
+            int responseCode = 0;
+            if(ybResultJson.getInteger("code") != 200) {
+                responseCode = ybResultJson.getInteger("code");
+            }
+            response = new ResultVo(responseCode, ybResultJson.getString("message"));
+        } catch (Exception e) {
+            e.printStackTrace();
+            response = new ResultVo(-1, "商品销售撤销失败");
+        }
+
         return response;
 
     }

+ 1 - 1
src/main/resources/application-mhyy.yml

@@ -149,7 +149,7 @@ wxPayOrderServiceUrl: "http://130.150.161.72:8706"
 #特殊门诊生产地址
 tsmzServiceUrl: "http://130.150.161.72:8706/markMtFees"
 
-siInventoryServiceUrl: "http://130.150.161.72:8706/siInventory"
+siInventoryServiceUrl: "http://localhost:8706/siInventory"
 #流行病调查问卷生产地址
 lxbdcwjUrl: "http://tbd"