|  | @@ -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;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      }
 |