SysCusNationCodeServiceImpl.java 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. package com.kmall.admin.service.impl;
  2. import com.google.common.collect.ImmutableBiMap;
  3. import com.kmall.admin.dao.SysCusNationCodeDao;
  4. import com.kmall.admin.entity.SysCusNationCodeEntity;
  5. import com.kmall.admin.fromcomm.entity.SysUserEntity;
  6. import com.kmall.admin.service.SysCusNationCodeService;
  7. import com.kmall.admin.utils.ShiroUtils;
  8. import com.kmall.admin.utils.ValidateUtils;
  9. import com.kmall.common.constant.TablePrimaryKeyPrefix;
  10. import com.kmall.common.utils.*;
  11. import com.kmall.manager.manager.express.sf.ServiceException;
  12. import org.apache.commons.lang.StringUtils;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.stereotype.Service;
  15. import org.springframework.transaction.annotation.Transactional;
  16. import java.util.Date;
  17. import java.util.List;
  18. import java.util.Map;
  19. import java.util.Random;
  20. /**
  21. * 国别地区代码Service实现类
  22. *
  23. * @author huangyq
  24. * @email admin@qhdswl.com
  25. * @date 2018-11-10 15:26:44
  26. */
  27. @Service("sysCusNationCodeService")
  28. public class SysCusNationCodeServiceImpl
  29. implements SysCusNationCodeService {
  30. @Autowired
  31. private SysCusNationCodeDao sysCusNationCodeDao;
  32. @Override
  33. public SysCusNationCodeEntity queryObject(String sn) {
  34. return sysCusNationCodeDao.queryObject(sn);
  35. }
  36. @Override
  37. public List<SysCusNationCodeEntity> queryList(Map<String, Object> map) {
  38. return sysCusNationCodeDao.queryList(map);
  39. }
  40. @Override
  41. public int queryTotal(Map<String, Object> map) {
  42. return sysCusNationCodeDao.queryTotal(map);
  43. }
  44. @Override
  45. public int save(SysCusNationCodeEntity sysCusNationCode) {
  46. SysCusNationCodeEntity SysCusNationCodeTemp = sysCusNationCodeDao.queryObjectByName(sysCusNationCode.getName());
  47. if (SysCusNationCodeTemp != null) {
  48. throw new RRException("名称已经存在");
  49. }
  50. if (sysCusNationCode.getCode().length() > 3) {
  51. throw new RRException("代码长度有误");
  52. }
  53. SysCusNationCodeTemp = sysCusNationCodeDao.queryObjectByCode(sysCusNationCode.getCode());
  54. if (SysCusNationCodeTemp != null) {
  55. throw new RRException("代码已经存在");
  56. }
  57. if (StringUtils.isNotEmpty(sysCusNationCode.getDiscountsTaxType()) &&
  58. sysCusNationCode.getDiscountsTaxType().length() > 1) {
  59. throw new RRException("优普税率类型有误");
  60. }
  61. sysCusNationCode.setSn(TablePrimaryKeyPrefix.sys_cus_nation_code + RandomUtils.getNum(18));
  62. return sysCusNationCodeDao.save(sysCusNationCode);
  63. }
  64. @Override
  65. public int update(SysCusNationCodeEntity sysCusNationCode) {
  66. SysCusNationCodeEntity SysCusNationCodeTemp = sysCusNationCodeDao.queryObjectByName(sysCusNationCode.getName());
  67. if (SysCusNationCodeTemp != null && !SysCusNationCodeTemp.getSn().equals(sysCusNationCode.getSn())) {
  68. throw new RRException("名称已经存在");
  69. }
  70. if (sysCusNationCode.getCode().length() > 3) {
  71. throw new RRException("代码长度有误");
  72. }
  73. SysCusNationCodeTemp = sysCusNationCodeDao.queryObjectByCode(sysCusNationCode.getCode());
  74. if (SysCusNationCodeTemp != null && !SysCusNationCodeTemp.getSn().equals(sysCusNationCode.getSn())) {
  75. throw new RRException("代码已经存在");
  76. }
  77. if (StringUtils.isNotEmpty(sysCusNationCode.getDiscountsTaxType()) &&
  78. sysCusNationCode.getDiscountsTaxType().length() > 1) {
  79. throw new RRException("优普税率类型有误");
  80. }
  81. return sysCusNationCodeDao.update(sysCusNationCode);
  82. }
  83. @Override
  84. public int delete(String sn) {
  85. return sysCusNationCodeDao.delete(sn);
  86. }
  87. @Override
  88. public int deleteBatch(String[] sns) {
  89. return sysCusNationCodeDao.deleteBatch(sns);
  90. }
  91. @Override
  92. public SysCusNationCodeEntity getCusNationByName(String name) {
  93. return sysCusNationCodeDao.queryObjectByName(name);
  94. }
  95. @Override
  96. public SysCusNationCodeEntity getCusNationByCode(String code) {
  97. return sysCusNationCodeDao.queryObjectByCode(code);
  98. }
  99. @Override
  100. public List<SysCusNationCodeEntity> findCusNationByAll() {
  101. return sysCusNationCodeDao.queryAll();
  102. }
  103. @Override
  104. @Transactional
  105. public void uploadExcel(List<SysCusNationCodeEntity> sysCusNationCodeEntityList) {
  106. for (SysCusNationCodeEntity sysCusNationCodeEntity : sysCusNationCodeEntityList) {
  107. String code = sysCusNationCodeEntity.getCode();
  108. String name = sysCusNationCodeEntity.getName();
  109. String ename = sysCusNationCodeEntity.getEname();
  110. String discountsTaxType = sysCusNationCodeEntity.getDiscountsTaxType();
  111. String isValid = sysCusNationCodeEntity.getIsValid();
  112. String remark = sysCusNationCodeEntity.getRemark();
  113. if (!ValidateUtils.validateStrIsInteger(code)) {
  114. throw new ServiceException("请输入正确的代码,有问题的代码:" + code);
  115. }
  116. if (!ValidateUtils.validateChinese(name)) {
  117. throw new ServiceException("请输入正确的名称,有问题的名称:" + name);
  118. }
  119. if (!ValidateUtils.validateEName(ename)) {
  120. throw new ServiceException("请输入正确的英文名,有问题的英文名:" + ename);
  121. }
  122. if (!ValidateUtils.validateEnglishChar(discountsTaxType)) {
  123. throw new ServiceException("请输入正确的优普税率类型,有问题的优普税率类型:" + discountsTaxType);
  124. }
  125. if (!"0".equals(isValid) && !"1".equals(isValid)) {
  126. throw new ServiceException("请输入正确的是否有效,有问题的是否有效:" + isValid);
  127. }
  128. if (remark != null && !ValidateUtils.validateSpecialAllowChinese(remark)) {
  129. throw new ServiceException("请输入正确的备注,有问题的备注:" + remark);
  130. }
  131. SysUserEntity user = ShiroUtils.getUserEntity();
  132. // 查询代码是否存在
  133. SysCusNationCodeEntity temp = this.getCusNationByCode(code);
  134. if (temp == null) {
  135. // 不存在则新增
  136. sysCusNationCodeEntity.setCreaterSn(user.getUserId() + "");
  137. sysCusNationCodeEntity.setCreateTime(new Date());
  138. this.save(sysCusNationCodeEntity);
  139. } else {
  140. // 存在修改对应代码的数据
  141. SysCusNationCodeEntity SysCusNationCodeTemp = sysCusNationCodeDao.queryObjectByName(sysCusNationCodeEntity.getName());
  142. if (SysCusNationCodeTemp != null && !SysCusNationCodeTemp.getSn().equals(temp.getSn())) {
  143. throw new RRException("名称已经存在");
  144. }
  145. if (StringUtils.isNotEmpty(sysCusNationCodeEntity.getDiscountsTaxType()) &&
  146. sysCusNationCodeEntity.getDiscountsTaxType().length() > 1) {
  147. throw new RRException("优普税率类型有误");
  148. }
  149. sysCusNationCodeEntity.setSn(temp.getSn());
  150. sysCusNationCodeEntity.setModerSn(user.getUserId() + "");
  151. sysCusNationCodeEntity.setModTime(new Date());
  152. sysCusNationCodeDao.update(sysCusNationCodeEntity);
  153. }
  154. }
  155. }
  156. }