ValidateUtil


import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import org.apache.commons.validator.GenericValidator;

/**
*
* @version : 1.00
* Create Time : 2011-2-22-下午04:31:36
* Description :
* 内容校验类
*/
public class ValidateUtil implements Serializable{
private static final long serialVersionUID = 1L;

/**
* 默认编码格式
*/
private static final String DEFAULT_ENCODING = "UTF-8";

/**
* Function : 检查字符串的格式
* @param str : 被检查的字符串
* @param hasCN : 允许有中文
* @param hasNum : 允许有数字
* @param hasLetter : 允许有字母
* @param specialChars : 允许有特殊字符,输入方式:假设允许下划线则参数为,"_" 假如允许下划线和问号则参数为,"_","?"
* example : 字母、数字、问号、句号和感叹号组成的字符串:isRealChar("xxxx",false,true,true,"?","。","!")
* @return 匹配则返回true,不匹配返回false
*/
public static boolean isRealChar(String str,boolean hasCN,boolean hasNum,boolean hasLetter,String... specialChars){
String regex_start = "^[";
String regex_end = "]+$";

if(hasCN == true){
regex_start = regex_start + "|\u4e00-\u9fa5";
}else if(hasNum == true){
regex_start = regex_start + "|0-9";
}else if(hasLetter == true){
regex_start = regex_start + "|a-zA-Z";
}
if(specialChars != null){
for(int i = 0;i<specialChars.length;i++){
regex_start = regex_start +"|"+specialChars[i];
}
}

return match(regex_start+regex_end,str);
}

/**
* @param str
* @return
* about version :1.00
* create time : 2011-2-22-下午04:37:22
* Description : 验证邮箱的有效性
* 成功匹配则返回true
* 不匹配则返回false
*/
public static boolean isEmail(String str)
{
//return str.matches("[\\w\\.\\-]+@([\\w\\-]+\\.)+[\\w\\-]+") ;
String regex = "^([\\w-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([\\w-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$";
return match(regex, str);
}

/**
* @param str
* @return
* about version :1.00
* create time : 2011-2-22-下午04:38:38
* Description :验证IP地址
* 匹配返回true
* 不匹配返回false
*/
public static boolean isIP(String str)
{
String num = "(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)";
String regex = "^" + num + "\\." + num + "\\." + num + "\\." + num + "$";
return match(regex, str);
}

/**
*
* @param str
* @return
* about version :1.00
* create time : 2011-2-22-下午04:47:59
* Description : 校验网址(规则:以http://或https://开头)
* 匹配则返回true
* 不匹配则返回false
*/
public static boolean isUrl(String str)
{
String regex = "http(s)?://([\\w-]+\\.)+[\\w-]+(/[\\w- ./?%&=]*)?";
return match(regex, str);
}

/**
* @param str
* @return
* about version :1.00
* create time : 2011-2-22-下午04:49:46
* Description :验证是否是固定电话(规则:xxxx(区号,3或4位)-(连接线,必备)xxxxxx(电话,6到8位),如028-83035137)
* 匹配则返回true
* 不匹配则返回false
*/
public static boolean isTelephone(String str)
{
String regex = "^(\\d{3,4}-)?\\d{6,8}$";
return match(regex, str);
}

/**
* @param value
* @return
* about version :1.00
* create time : 2011-2-22-下午04:51:00
* Description : 验证是否是手机号(规则:以1开头,接任意数字,11位)
* 匹配则返回true
* 不匹配则返回false
*/
public static boolean isMobilePhone(String value)
{
//String regex = "^[1]+[3,5]+\\d{9}$";
String regex = "^[1]+\\d{10}";
return value.matches(regex);
}

/**
* @param str
* @return
* about version :1.00
* create time : 2011-2-22-下午05:01:02
* Description :邮编地址
* 匹配则返回true
* 不匹配则返回false
*/
public static boolean isPostalcode(String str)
{
String regex = "^\\d{6}$";
return match(regex, str);
}

/**
* @param str
* @return
* about version :1.00
* create time : 2011-2-22-下午05:03:46
* Description :验证15位或18位身份证号
* 匹配则返回true
* 不匹配则返回false
*/
public static boolean isIDcard(String str)
{
String regex = "(^\\d{18}$)|(^\\d{15}$)";
return match(regex, str);
}

/**
* @param str 被验证数据
* @param digit 验证长度:小数点后几位
* @return
* about version :1.00
* create time : 2011-2-22-下午05:12:03
* Description : 验证是否符合指定位数的小数
* 匹配则返回true
* 不匹配则返回false
*/
public static boolean isDecimal(String str,int digit)
{
String regex = "^[0-9]+(.[0-9]{"+digit+"})?$";
return match(regex, str);
}


/**
* @param str
* @return
* about version :1.00
* create time : 2011-2-22-下午05:18:49
* Description :验证是否是1~12月
* 匹配则返回true
* 不匹配则返回false
*/
public static boolean isMonth(String str)
{
String regex = "^(0?[1-9]|1[0-2])$";
return match(regex, str);
}

/**
* @param str
* @return
* about version :1.00
* create time : 2011-2-22-下午05:22:57
* Description : 校验日期格式(格式:xxxx-xx-xx,并且考虑闰月、大小月的情况)
* 匹配则返回true
* 不匹配则返回false
*/
public static boolean isDate(String str)
{
//严格验证时间格式的(匹配[2002-01-31], [1997-04-30], [2004-01-01])不匹配([2002-01-32], [2003-02-29], [04-01-01])
String regex = "^((((19|20)(([02468][048])|([13579][26]))-02-29))|((20[0-9][0-9])|(19[0-9][0-9]))-((((0[1-9])|(1[0-2]))-((0[1-9])|(1\\d)|(2[0-8])))|((((0[13578])|(1[02]))-31)|(((01,3-9])|(1[0-2]))-(29|30)))))$";
//没加时间验证的YYYY-MM-DD
// String regex = "^((((1[6-9]|[2-9]\\d)\\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\\d|3[01]))|(((1[6-9]|[2-9]\\d)\\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\\d|30))|(((1[6-9]|[2-9]\\d)\\d{2})-0?2-(0?[1-9]|1\\d|2[0-8]))|(((1[6-9]|[2-9]\\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$";
//加了时间验证的YYYY-MM-DD 00:00:00
// String regex = "^((((1[6-9]|[2-9]\\d)\\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\\d|3[01]))|(((1[6-9]|[2-9]\\d)\\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\\d|30))|(((1[6-9]|[2-9]\\d)\\d{2})-0?2-(0?[1-9]|1\\d|2[0-8]))|(((1[6-9]|[2-9]\\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-)) (20|21|22|23|[0-1]?\\d):[0-5]?\\d:[0-5]?\\d$";
return match(regex, str);
}

/**
* @param str : 实际日期
* @param format :日期格式,如yyyy-MM-dd
* @return
* @throws ParseException
* about version :1.00
* create time : 2011-2-22-下午05:46:37
* Description : 判断是否是指定日期格式
* 匹配则返回true
* 不匹配则返回false
*/
public static boolean isDateFormat(String str, String format) throws ParseException {
if (GenericValidator.isBlankOrNull(str) || GenericValidator.isBlankOrNull(format)) {
return false;
}
SimpleDateFormat sdf = new SimpleDateFormat(format);
sdf.setLenient(true);

Date date = sdf.parse(str);
String str2 = sdf.format(date);

if (!str.equals(str2)) {
return false;
}else{
return true;
}
}

/**
* @param str
* @param sign : 三种"+","-","all",分别表示正数、负数、正负都行
* @return
* about version :1.00
* create time : 2011-2-22-下午05:31:02
* Description :校验指定类型的数字
* 匹配则返回true
* 不匹配则返回false
*/
public static boolean isNumber(String str,String sign)
{
String regex = "";
if("+".equals(sign)){
regex = "^[+]?[0-9]*$";
}else if("-".equals(sign)){
regex = "^[-][0-9]*$";
}else{
regex = "^[+-]?[0-9]*$";
}
return match(regex, str);
}

/**
* @param str
* @return
* about version :1.00
* create time : 2011-2-22-下午05:36:04
* Description :验证非0正整数
* 匹配则返回true
* 不匹配则返回false
*/
public static boolean isIntNumber(String str)
{
String regex = "^\\+?[1-9][0-9]*$";
return match(regex, str);
}

/**
* @param str
* @return
* about version :1.00
* create time : 2011-2-22-下午05:38:38
* Description :验证大写字母
* 匹配则返回true
* 不匹配则返回false
*/
public static boolean isUpChar(String str)
{
String regex = "^[A-Z]+$";
return match(regex, str);
}

/**
* @param str
* @return
* about version :1.00
* create time : 2011-2-22-下午05:39:14
* Description : 验证小写字母
* 匹配则返回true
* 不匹配则返回false
*/
public static boolean isLowChar(String str)
{
String regex = "^[a-z]+$";
return match(regex, str);
}

/**
* @param str
* @return
* about version :1.00
* create time : 2011-2-22-下午05:39:57
* Description :验证输入的是字母
* 匹配则返回true
* 不匹配则返回false
*/
public static boolean isLetter(String str)
{
String regex = "^[A-Za-z]+$";
return match(regex, str);
}

/**
* @param str
* @param encoding : 编码格式,如GBK, 不输入默认为UTF-8
* @return :返回指定编码格式下字符串的长度
* about version :1.00
* create time : 2011-2-22-下午05:54:16
* Description :选择不同编码,返回字符串长度
*/
public static int checkLength(String str,String encoding) {
int length;
try {
if(encoding == null||"".equals(encoding)){
length = str.getBytes(DEFAULT_ENCODING).length;
}else{
length = str.getBytes(encoding).length;
}
} catch (UnsupportedEncodingException e) {
length = str.getBytes().length;
}
return length;
}




/**
* @param regex
* @param str
* @return
* about version :1.00
* create time : 2011-2-22-下午04:41:57
* Description : 正则表达式验证方法
* 匹配表达式则返回true
* 不匹配则返回false
*/
private static boolean match(String regex, String str)
{
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(str);
return matcher.matches();
}
}

// 1.查询上传机构 List<Map<String, Object>> orgList = nationInventoryReadMapper.queryOrgList(fixmedinsCode); // 查询最近时间的上传机构 QueryWrapper<HisInvUploadInfoBDO> query = new QueryWrapper<>(); query.orderByDesc("upload_end_time"); List<HisInvUploadInfoBDO> list = hisInvUploadInfoBService.list(query); String currentFixmedinsCode = null; if(list.size()>0 && list.get(0).getUploadEndTime()!=null) { currentFixmedinsCode = list.get(0).getFixmedinsCode(); } // 继续执行标志,如果上次没有执行完成,继续按上次机构执行 Boolean isContinue = ValidateUtil.isEmpty(currentFixmedinsCode)?true:false; // 2.循环机构信息 for (Map<String, Object> org : orgList) { fixmedinsCode = org.get("o_insurancecode").toString(); if (fixmedinsCode.equals(currentFixmedinsCode)){ isContinue = true; } if(isContinue==false){ continue; } String fixmedinsName = org.get("o_insurancename").toString(); String orgid = org.get("orgid").toString(); String porgid = org.get("porgid").toString(); String fixmedinsSyscode = "04"; String fixmedinsSyscodeName = "新版橘杏"; String infno = ""; // 3501、3502、3503、3504、3505、3506 TODO 3507单独接口处理 String linkInvDetailStartId = ""; String linkInvDetailEndId = ""; Integer uploadSuccessCnt = 0; Integer uploadRemainingCnt = 0; Integer uploadFailCnt = 0; Date uploadStartTime = new Date(); Date uploadEndTime; String linkDb = "clinic"; String linkIdName = "linkId"; // 盘存上传 3501 Integer uploadDtlSuccessCnt = 0; Integer uploadDtlRemainingCnt = 0; Integer uploadDtlFailCnt = 0; String uploadErrMsg = ""; Integer uploadDtlSuccessCntN3502 = 0; Integer uploadDtlRemainingCntN3502 = 0; Integer uploadDtlFailCntN3502 = 0; String uploadErrMsgN3502 = ""; infno = "3501"; String baseId = fixmedinsCode+new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()); String hisInvUploadInfoBId = baseId; query = new QueryWrapper<>(); query.lambda().eq(HisInvUploadInfoBDO::getFixmedinsCode,fixmedinsCode); list = hisInvUploadInfoBService.list(query); Boolean hasInfoBId = false; if(list.size()>0){ HisInvUploadInfoBDO hisInvUploadInfoBDONew = list.get(0); uploadSuccessCnt = hisInvUploadInfoBDONew.getUploadSuccessCnt(); uploadRemainingCnt = hisInvUploadInfoBDONew.getUploadRemainingCnt(); uploadFailCnt = hisInvUploadInfoBDONew.getUploadFailCnt(); hasInfoBId = true; hisInvUploadInfoBId = hisInvUploadInfoBDONew.getHisInvUploadInfoBId(); } String hisInvUploadDetailBId = baseId+infno; String hisInvUploadDetailBIdN3502 = baseId+"3502"; // 检查当前机构是否需要盘存 QueryWrapper<HisInvUploadDetailBDO> queryDetail = new QueryWrapper<>(); queryDetail.lambda().eq(HisInvUploadDetailBDO::getInfno,"3501"); List<HisInvUploadDetailBDO> checkList = hisInvUploadDetailBService.list(queryDetail); if(checkList.size()==0){ List<Map<String,Object>> n3501List = nationInventoryReadMapper.queryN3501(orgid); Integer index = 0; uploadRemainingCnt = uploadRemainingCnt+n3501List.size()*2; for(Map<String,Object> obj:n3501List){ // 记录序号 index++; // 记录总体进度 HisInvUploadInfoBDO hisInvUploadInfoBDO = new HisInvUploadInfoBDO(); hisInvUploadInfoBDO.setFixmedinsCode(fixmedinsCode); hisInvUploadInfoBDO.setFixmedinsName(fixmedinsName); hisInvUploadInfoBDO.setFixmedinsSyscode(fixmedinsSyscode); hisInvUploadInfoBDO.setFixmedinsSyscodeName(fixmedinsSyscodeName); hisInvUploadInfoBDO.setUploadSuccessCnt(uploadSuccessCnt); hisInvUploadInfoBDO.setUploadFailCnt(uploadFailCnt); hisInvUploadInfoBDO.setUploadRemainingCnt(uploadRemainingCnt); hisInvUploadInfoBDO.setUploadStartTime(uploadStartTime); hisInvUploadInfoBDO.setValiFlag("1"); hisInvUploadInfoBDO.setCrterId("gm"); hisInvUploadInfoBDO.setCrterName("管理员"); hisInvUploadInfoBDO.setCrteTime(new Date()); hisInvUploadInfoBDO.setOpterId("gm"); hisInvUploadInfoBDO.setOpterName("管理员"); hisInvUploadInfoBDO.setOptTime(new Date()); hisInvUploadInfoBDO.setRevision(1); hisInvUploadInfoBDO.setFixmedinsAdmdvs(fixmedinsCode.substring(1,7)); hisInvUploadInfoBDO.setUploadStatus("01"); // 记录明显进度 HisInvUploadDetailBDO hisInvUploadDetailBDO = new HisInvUploadDetailBDO(); hisInvUploadDetailBDO.setFixmedinsCode(fixmedinsCode); hisInvUploadDetailBDO.setFixmedinsName(fixmedinsName); hisInvUploadDetailBDO.setFixmedinsSyscode(fixmedinsSyscode); hisInvUploadDetailBDO.setFixmedinsSyscodeName(fixmedinsSyscodeName); hisInvUploadDetailBDO.setValiFlag("1"); hisInvUploadDetailBDO.setCrterId("gm"); hisInvUploadDetailBDO.setCrterName("管理员"); hisInvUploadDetailBDO.setCrteTime(new Date()); hisInvUploadDetailBDO.setOpterId("gm"); hisInvUploadDetailBDO.setOpterName("管理员"); hisInvUploadDetailBDO.setOptTime(new Date()); hisInvUploadDetailBDO.setRevision(1); hisInvUploadDetailBDO.setUploadStatus("01"); hisInvUploadDetailBDO.setUploadSuccessCnt(uploadDtlSuccessCnt); hisInvUploadDetailBDO.setUploadFailCnt(uploadDtlFailCnt); hisInvUploadDetailBDO.setUploadRemainingCnt(uploadDtlRemainingCnt); hisInvUploadDetailBDO.setUploadStartTime(uploadStartTime); hisInvUploadDetailBDO.setUploadErrMsg(uploadErrMsg); hisInvUploadDetailBDO.setLinkInvDetailStartId(linkInvDetailStartId); hisInvUploadDetailBDO.setLinkInvDetailEndId(linkInvDetailEndId); hisInvUploadDetailBDO.setInfno(infno); hisInvUploadDetailBDO.setHisInvUploadDetailBId(hisInvUploadDetailBId); N3501InputDTO.Invinfo invinfo = JSON.parseObject(JSON.toJSONString(obj), N3501InputDTO.Invinfo.class); String trdnFlag = obj.get("trdnFlag").toString(); // 溯源码查询 Map<String,Object> queryTracode = new HashMap<>(); queryTracode.put("orgid",orgid); queryTracode.put("drugid",obj.get("drugid").toString()); queryTracode.put("ispiece",Integer.valueOf(trdnFlag)); queryTracode.put("sellStatus",1); // 溯源码已核销 List<Map<String, Object>> tracodeList= nationInventoryReadMapper.queryTracode(queryTracode); List<DrugtracinfoDTO> drugtracinfoDTOS = new ArrayList<>(); // 调用医保接口 String sequenceNumber = stringRedisTemplate.opsForValue().get("sequenceNumber"); if(ValidateUtil.isEmpty(sequenceNumber)){ sequenceNumber = "1000"; } String msgid = fixmedinsCode +(new SimpleDateFormat("yyyyMMddHHmmss").format(new Date())+sequenceNumber); sequenceNumber = (Integer.valueOf(sequenceNumber)+1)+""; String msgid3502 = fixmedinsCode +(new SimpleDateFormat("yyyyMMddHHmmss").format(new Date())+sequenceNumber); sequenceNumber = (Integer.valueOf(sequenceNumber)+1)+""; stringRedisTemplate.opsForValue().set("sequenceNumber", sequenceNumber.toString()); // 上传医保 3501 BusinessInput businessInput = new BusinessInput(); infno = "3501"; businessInput.setInfno(infno); businessInput.setFixmedinsCode(fixmedinsCode); businessInput.setFixmedinsName(fixmedinsName); businessInput.setMsgid(msgid); JSONObject inputJson = new JSONObject(); inputJson.put("invinfo",invinfo); businessInput.setInput(inputJson.toString()); BusinessOutput businessOutput = yiBaoDllCallService.dllBusinessByUrl(businessInput,Integer.valueOf(sequenceNumber)); // 记录进度 if("0".equals(businessOutput.getInfcode())){ uploadDtlSuccessCnt= uploadDtlSuccessCnt+1; uploadDtlRemainingCnt= n3501List.size()-uploadDtlSuccessCnt-uploadDtlFailCnt; uploadSuccessCnt= uploadSuccessCnt+1; uploadRemainingCnt= uploadRemainingCnt-1; hisInvUploadDetailBDO.setUploadStatus("02"); hisInvUploadInfoBDO.setUploadStatus("02"); if(uploadRemainingCnt==0){ hisInvUploadInfoBDO.setUploadStatus("03"); } if(uploadDtlRemainingCnt==0){ hisInvUploadDetailBDO.setUploadStatus("03"); } if(uploadFailCnt>0){ hisInvUploadInfoBDO.setUploadStatus("04"); } if(uploadDtlFailCnt>0){ hisInvUploadDetailBDO.setUploadStatus("04"); } }else{ uploadDtlFailCnt= uploadDtlFailCnt+1; uploadDtlRemainingCnt= n3501List.size()-uploadDtlSuccessCnt-uploadDtlFailCnt; uploadErrMsg = uploadErrMsg+"&"+(msgid+"-"+businessOutput.getErrMsg()); uploadFailCnt= uploadFailCnt+1; uploadRemainingCnt= uploadRemainingCnt-1; hisInvUploadDetailBDO.setUploadStatus("02"); hisInvUploadInfoBDO.setUploadStatus("02"); if(uploadRemainingCnt==0){ hisInvUploadInfoBDO.setUploadStatus("03"); } if(uploadDtlRemainingCnt==0){ hisInvUploadDetailBDO.setUploadStatus("03"); } if(uploadFailCnt>0){ hisInvUploadInfoBDO.setUploadStatus("04"); } if(uploadDtlFailCnt>0){ hisInvUploadDetailBDO.setUploadStatus("04"); } } // 记录医保日志 this.addChsTrnsLogC(businessInput,businessOutput); // // 3502的msgid ChsMedinsProdInvDDO chsMedinsProdInvDDO = new ChsMedinsProdInvDDO(); chsMedinsProdInvDDO.setMedinsProdInvNo(msgid); // 记录溯源码 for(Map tracode : tracodeList){ ChsFixmedinsProdInvTracDDO chsFixmedinsProdInvTracDDO = new ChsFixmedinsProdInvTracDDO(); Map filedMap = new HashMap(); filedMap.put("fixmedinsHilistId","medinsListCodg"); filedMap.put("fixmedinsHilistName","medinsListName"); this.setField(invinfo,chsFixmedinsProdInvTracDDO,filedMap); chsFixmedinsProdInvTracDDO.setOptinsNo(fixmedinsCode.substring(1,7)); chsFixmedinsProdInvTracDDO.setDrugTracCodg(tracode.get("tracecode").toString()); chsFixmedinsProdInvTracDDO.setFixmedinsCode(fixmedinsCode); chsFixmedinsProdInvTracDDO.setMedinsProdInvChgNo(msgid3502); chsFixmedinsProdInvTracDDO.setFixmedinsProdInvTracSn(UUID.fastUUID().toString().replaceAll("-", "").substring(0, 30)); DrugtracinfoDTO drugtracinfoDTO = new DrugtracinfoDTO(); drugtracinfoDTO.setDrugTracCodg(tracode.get("tracecode").toString()); drugtracinfoDTOS.add(drugtracinfoDTO); // 查询是否重复 if(chsFixmedinsProdInvTracDService.list(new QueryWrapper<ChsFixmedinsProdInvTracDDO>().lambda() .eq(ChsFixmedinsProdInvTracDDO::getFixmedinsCode, fixmedinsCode) .eq(ChsFixmedinsProdInvTracDDO::getDrugTracCodg, drugtracinfoDTO.getDrugTracCodg()) ).size()<1) { drugtracinfoDTOS.add(drugtracinfoDTO); chsFixmedinsProdInvTracDService.save(chsFixmedinsProdInvTracDDO); } } invinfo.setDrugtracinfo(drugtracinfoDTOS); // 3501写入数据库 Map filedMap = new HashMap(); filedMap.put("fixmedinsHilistId","medinsListCodg"); filedMap.put("fixmedinsHilistName","medinsListName"); this.setField(invinfo,chsMedinsProdInvDDO,filedMap); chsMedinsProdInvDDO.setFixmedinsCode(fixmedinsCode); chsMedinsProdInvDDO.setInvDate(invinfo.getInvdate()); chsMedinsProdInvDDO.setTrdnFlag(trdnFlag); chsMedinsProdInvDDO.setOptinsNo(fixmedinsCode.substring(1,7)); chsMedinsProdInvDDO.setLinkDb(linkDb); chsMedinsProdInvDDO.setLinkId(obj.get(linkIdName).toString()); if(index==1){ linkInvDetailStartId = obj.get(linkIdName).toString(); } linkInvDetailEndId = obj.get(linkIdName).toString(); chsMedinsProdInvDDO.setLinkTable("whse_batch"); chsMedinsProdInvDDO.setUploadOuptPara(JSONObject.toJSONString(businessOutput)); chsMedinsProdInvDDO.setUploadInptPara(JSONObject.toJSONString(businessInput)); chsMedinsProdInvDService.save(chsMedinsProdInvDDO); // 记录进度 hisInvUploadInfoBDO.setUploadSuccessCnt(uploadSuccessCnt); hisInvUploadInfoBDO.setUploadFailCnt(uploadFailCnt); hisInvUploadInfoBDO.setUploadRemainingCnt(uploadRemainingCnt); hisInvUploadInfoBDO.setUploadEndTime(new Date()); hisInvUploadInfoBDO.setHisInvUploadInfoBId(hisInvUploadInfoBId); if(hasInfoBId || index>1){ hisInvUploadInfoBService.updateById(hisInvUploadInfoBDO); }else{ hisInvUploadInfoBService.save(hisInvUploadInfoBDO); } hisInvUploadDetailBDO.setUploadSuccessCnt(uploadDtlSuccessCnt); hisInvUploadDetailBDO.setUploadFailCnt(uploadDtlFailCnt); hisInvUploadDetailBDO.setUploadRemainingCnt(uploadDtlRemainingCnt); hisInvUploadDetailBDO.setUploadStartTime(uploadStartTime); hisInvUploadDetailBDO.setUploadErrMsg(uploadErrMsg); hisInvUploadDetailBDO.setUploadEndTime(new Date()); hisInvUploadDetailBDO.setLinkInvDetailStartId(linkInvDetailStartId); hisInvUploadDetailBDO.setLinkInvDetailEndId(linkInvDetailEndId); hisInvUploadDetailBDO.setInfno(infno); hisInvUploadDetailBDO.setHisInvUploadDetailBId(hisInvUploadDetailBId); hisInvUploadDetailBDO.setHisInvUploadInfoBId(hisInvUploadInfoBId); if(index>1){ hisInvUploadDetailBService.updateById(hisInvUploadDetailBDO); }else{ hisInvUploadDetailBService.save(hisInvUploadDetailBDO); } // 3502 库存变更 N3502InputDTO.Invinfo invinfoChg = new N3502InputDTO.Invinfo(); BeanUtils.copyProperties(invinfo,invinfoChg); invinfoChg.setCnt(invinfo.getInvCnt()); invinfoChg.setPric(BigDecimal.valueOf(Double.parseDouble(obj.get("retailprc").toString()))); invinfoChg.setInvChgTime(invinfo.getInvdate()); invinfoChg.setInvChgType(InsuranceConstant.INV_CHG_TYPE_106); invinfoChg.setInvChgOpterName("管理员"); invinfoChg.setDrugtracinfo(drugtracinfoDTOS); // 上传医保 3502 businessInput = new BusinessInput(); infno = "3502"; businessInput.setInfno(infno); businessInput.setFixmedinsCode(fixmedinsCode); businessInput.setFixmedinsName(fixmedinsName); businessInput.setMsgid(msgid3502); inputJson = new JSONObject(); inputJson.put("invinfo",invinfoChg); businessInput.setInput(inputJson.toString()); businessOutput = yiBaoDllCallService.dllBusinessByUrl(businessInput,Integer.valueOf(sequenceNumber)); // 记录日志 this.addChsTrnsLogC(businessInput,businessOutput); // 记录进度 if("0".equals(businessOutput.getInfcode())){ uploadDtlSuccessCntN3502= uploadDtlSuccessCntN3502+1; uploadDtlRemainingCntN3502= n3501List.size()-uploadDtlSuccessCntN3502-uploadDtlFailCntN3502; uploadSuccessCnt= uploadSuccessCnt+1; uploadRemainingCnt= uploadRemainingCnt-1; hisInvUploadDetailBDO.setUploadStatus("02"); hisInvUploadInfoBDO.setUploadStatus("02"); if(uploadRemainingCnt==0){ hisInvUploadInfoBDO.setUploadStatus("03"); } if(uploadDtlRemainingCntN3502==0){ hisInvUploadDetailBDO.setUploadStatus("03"); } if(uploadFailCnt>0){ hisInvUploadInfoBDO.setUploadStatus("04"); } if(uploadDtlFailCntN3502>0){ hisInvUploadDetailBDO.setUploadStatus("04"); } }else{ uploadDtlFailCntN3502= uploadDtlFailCntN3502+1; uploadDtlRemainingCntN3502= n3501List.size()-uploadDtlSuccessCntN3502-uploadDtlFailCntN3502; uploadErrMsgN3502 = uploadErrMsgN3502+"&"+(msgid+"-"+businessOutput.getErrMsg()); uploadFailCnt= uploadFailCnt+1; uploadRemainingCnt= uploadRemainingCnt-1; hisInvUploadDetailBDO.setUploadStatus("02"); hisInvUploadInfoBDO.setUploadStatus("02"); if(uploadRemainingCnt==0){ hisInvUploadInfoBDO.setUploadStatus("03"); } if(uploadDtlRemainingCntN3502==0){ hisInvUploadDetailBDO.setUploadStatus("03"); } if(uploadFailCnt>0){ hisInvUploadInfoBDO.setUploadStatus("04"); } if(uploadDtlFailCntN3502>0){ hisInvUploadDetailBDO.setUploadStatus("04"); } } // 3502写入数据库 ChsMedinsProdInvChgDDO chsMedinsProdInvChgDDO = new ChsMedinsProdInvChgDDO(); filedMap = new HashMap(); filedMap.put("fixmedinsHilistId","medinsListCodg"); filedMap.put("fixmedinsHilistName","medinsListName"); this.setField(invinfoChg,chsMedinsProdInvChgDDO,filedMap); chsMedinsProdInvChgDDO.setFixmedinsCode(fixmedinsCode); chsMedinsProdInvChgDDO.setMedinsProdInvChgNo(msgid3502); chsMedinsProdInvChgDDO.setInvChgTime(invinfo.getInvdate()); chsMedinsProdInvChgDDO.setInvChgType(InsuranceConstant.INV_CHG_TYPE_101); chsMedinsProdInvChgDDO.setTrdnFlag(trdnFlag); chsMedinsProdInvChgDDO.setOptinsNo(fixmedinsCode.substring(1,7)); chsMedinsProdInvChgDDO.setLinkDb(linkDb); chsMedinsProdInvChgDDO.setLinkId(obj.get(linkIdName).toString()); chsMedinsProdInvChgDDO.setUploadOuptPara(JSONObject.toJSONString(businessOutput)); chsMedinsProdInvChgDDO.setUploadInptPara(JSONObject.toJSONString(businessInput)); chsMedinsProdInvChgDService.save(chsMedinsProdInvChgDDO); // 记录进度 hisInvUploadInfoBDO.setUploadSuccessCnt(uploadSuccessCnt); hisInvUploadInfoBDO.setUploadFailCnt(uploadFailCnt); hisInvUploadInfoBDO.setUploadRemainingCnt(uploadRemainingCnt); hisInvUploadInfoBDO.setUploadEndTime(new Date()); hisInvUploadInfoBDO.setHisInvUploadInfoBId(hisInvUploadInfoBId); hisInvUploadInfoBService.updateById(hisInvUploadInfoBDO); hisInvUploadDetailBDO.setUploadSuccessCnt(uploadDtlSuccessCntN3502); hisInvUploadDetailBDO.setUploadFailCnt(uploadDtlFailCntN3502); hisInvUploadDetailBDO.setUploadRemainingCnt(uploadDtlRemainingCntN3502); hisInvUploadDetailBDO.setUploadStartTime(uploadStartTime); hisInvUploadDetailBDO.setUploadErrMsg(uploadErrMsgN3502); hisInvUploadDetailBDO.setUploadEndTime(new Date()); hisInvUploadDetailBDO.setLinkInvDetailStartId(linkInvDetailStartId); hisInvUploadDetailBDO.setLinkInvDetailEndId(linkInvDetailEndId); hisInvUploadDetailBDO.setHisInvUploadDetailBId(hisInvUploadDetailBIdN3502); hisInvUploadDetailBDO.setHisInvUploadInfoBId(hisInvUploadInfoBId); hisInvUploadDetailBDO.setInfno(infno); if(index>1){ hisInvUploadDetailBService.updateById(hisInvUploadDetailBDO); }else{ hisInvUploadDetailBService.save(hisInvUploadDetailBDO); } } } },优化上诉代码
最新发布
07-16
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值