diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java index e6b169c05..e93b87f78 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java @@ -200,11 +200,36 @@ public class EmisBaseService { /** * 获取客户完整手机号 国家+电话 eg: 0086-1381861188 - * @param countryCode * @param phone * @return */ - public String getCompletePhone(String countryCode,String phone){ + public String getCompletePhone(String phone){ + + if(StringUtils.isAnyEmpty(phone) ){ + return phone; + } + phone = phone.trim(); //去除头尾空白符 + if(StringUtils.isEmpty(phone)){ + return ""; + } + // 去除所有空白 + phone = phone.replaceAll(" ", ""); + + String str2 = ""; +// for(int i = 0;i < phone.length();i++) { +// //对字符串的每个字符进行处理,如果在0-9之间就追加到str2上 +// if(phone.charAt(i) >= 48 && phone.charAt(i) <= 57) { +// str2 += phone.charAt(i); +// } +// } + // 去除左边的0 +// countryCode = countryCode.replaceAll("^(0+)", ""); +// phone = phone.replaceAll("^(0+)", ""); + + return phone; + } + + public String getCompletePhone_old(String countryCode,String phone){ if(StringUtils.isAnyEmpty(phone,countryCode) ){ return phone; @@ -2106,51 +2131,60 @@ public class EmisBaseService { * @return */ public EmisCustomerUser createCustomerUser(EmisCustomerUser emisCustomerUser) { - // 直接返回客户 - if(emisCustomerUser.getCustomerCode() != null){ - return emisCustomerUser; + if (emisCustomerUser.getCustomerCode() != null) { + return emisCustomerUser; } - EmisCustomerUser oldUser=getCustomerUserByPhone(emisCustomerUser.getPhone()); - if(oldUser!=null){ - if(oldUser.getCustomerCode() == null){ - // 产生 customerCode - String siteCode = oldUser.getOwnerSite(); - if(StringUtils.isEmpty(siteCode)){ - siteCode="88888"; + redissonService.lock("EMIS_CREATE_USER_LOCK",100); + try { + + EmisCustomerUser oldUser = getCustomerUserByPhone(emisCustomerUser.getPhone()); + if (oldUser != null) { + if (oldUser.getCustomerCode() == null) { + + // 产生 customerCode + String siteCode = oldUser.getOwnerSite(); + if (StringUtils.isEmpty(siteCode)) { + siteCode = "88888"; + } + // 根据所属网点获取客户编码 + String customerCode = genCustomerCode(siteCode); + oldUser.setCustomerCode(customerCode); + oldUser.preUpdate(); + oldUser.setUserName(customerCode); + emisCustomerUserMapper.updateEmisCustomerUser(oldUser); + } - // 根据所属网点获取客户编码 - String customerCode=genCustomerCode(siteCode); - oldUser.setCustomerCode(customerCode); - oldUser.preUpdate(); - oldUser.setUserName(customerCode); - emisCustomerUserMapper.updateEmisCustomerUser(oldUser); + redissonService.unlock("EMIS_CREATE_USER_LOCK"); + return oldUser; } - return oldUser; - } + // 产生 customerCode + String siteCode = emisCustomerUser.getOwnerSite(); + if (StringUtils.isEmpty(siteCode)) { + siteCode = "88888"; + } + // 根据所属网点获取客户编码 + String customerCode = genCustomerCode(siteCode); - // 产生 customerCode - String siteCode = emisCustomerUser.getOwnerSite(); - if(StringUtils.isEmpty(siteCode)){ - siteCode="88888"; - } - // 根据所属网点获取客户编码 - String customerCode=genCustomerCode(siteCode); - - // 插入现金客户数据 - emisCustomerUser.setCustomerCode(customerCode); - emisCustomerUser.setOwnerSite(siteCode); - emisCustomerUser.setUserName(emisCustomerUser.getCustomerCode()); + // 插入现金客户数据 + emisCustomerUser.setCustomerCode(customerCode); + emisCustomerUser.setOwnerSite(siteCode); + emisCustomerUser.setUserName(emisCustomerUser.getCustomerCode()); // emisCustomerUser.setCustomerType("1"); // emisCustomerUser.setSettledType("1"); // emisCustomerUser.setUserType("1"); - emisCustomerUser.preInsert(); - emisCustomerUserMapper.insertEmisCustomerUser(emisCustomerUser); - - return emisCustomerUser; + emisCustomerUser.preInsert(); + emisCustomerUserMapper.insertEmisCustomerUser(emisCustomerUser); + redissonService.unlock("EMIS_CREATE_USER_LOCK"); + return emisCustomerUser; + }catch(Exception ex){ + redissonService.unlock("EMIS_CREATE_USER_LOCK"); + ex.printStackTrace(); + return emisCustomerUser; + } } diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillServiceImpl.java index 7f13f0952..429f7f448 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillServiceImpl.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillServiceImpl.java @@ -1225,8 +1225,9 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb else if( "3".equals(emisWaybillSave.getPaymentType()) ) { // + String recievePhone=getCompletePhone(recieveAddress.getPhone()); // 通过电话判断客户是否存在 - EmisCustomerUser emisCustomerUser=getCustomerUserByPhone(recieveAddress.getPhone()); + EmisCustomerUser emisCustomerUser=getCustomerUserByPhone(recievePhone); if(emisCustomerUser!=null){ customerCode=emisCustomerUser.getCustomerCode(); customerName=emisCustomerUser.getCustomerName(); @@ -1236,7 +1237,7 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb newEmisCustomerUser.setCustomerName(recieveAddress.getName()); newEmisCustomerUser.setCountry(recieveAddress.getCountry()); - newEmisCustomerUser.setPhone(recieveAddress.getPhone()); + newEmisCustomerUser.setPhone(recievePhone); newEmisCustomerUser.setProvince(recieveAddress.getProvince()); newEmisCustomerUser.setCity(recieveAddress.getCity()); newEmisCustomerUser.setCounty(recieveAddress.getCounty()); @@ -1261,7 +1262,7 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb // 寄付和其他 else{ // 通过电话判断客户是否存在 - String sendPhone=getCompletePhone(sendAddress.getCounty(),sendAddress.getPhone()); + String sendPhone=getCompletePhone(sendAddress.getPhone()); EmisCustomerUser emisCustomerUser=getCustomerUserByPhone(sendPhone); if(emisCustomerUser!=null){ customerCode=emisCustomerUser.getCustomerCode(); @@ -1284,6 +1285,9 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb newEmisCustomerUser.setSettledType("1"); newEmisCustomerUser.setUserType("1"); + newEmisCustomerUser.setBlOpenOms("0"); + newEmisCustomerUser.setRemark("开单自动生成的现金用户"); + newEmisCustomerUser.setSalesmen(emisWaybillSave.getSalesmen()); newEmisCustomerUser.setPayee(emisWaybillSave.getPayee());