代码调整

master
toesbieya 6 years ago
parent 0f60d33ea8
commit d375bf5619
  1. 12
      java/cloud/common/src/main/java/cn/toesbieya/jxc/common/constant/DocConstant.java
  2. 12
      java/cloud/common/src/main/java/cn/toesbieya/jxc/common/constant/DocumentConstant.java
  3. 2
      java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/BizDoc.java
  4. 2
      java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/BizPurchaseInbound.java
  5. 1
      java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/BizSellOrder.java
  6. 1
      java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/BizSellOutbound.java
  7. 2
      java/cloud/common/src/main/java/cn/toesbieya/jxc/common/model/entity/SysUser.java
  8. 5
      java/cloud/nacos-config/jxc-common-database.yml
  9. 1
      java/cloud/nacos-config/jxc-common-redis.yml
  10. 6
      java/cloud/nacos-config/jxc-gateway.yml
  11. 2
      java/cloud/nacos-config/jxc-web-doc.yml
  12. 34
      java/cloud/schedule/src/main/java/cn/toesbieya/jxc/schedule/task/DocTask.java
  13. 22
      java/cloud/schedule/src/main/java/cn/toesbieya/jxc/schedule/task/StatisticTask.java
  14. 3
      java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/aspect/RestExceptionAspect.java
  15. 30
      java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/utils/QiniuUtil.java
  16. 10
      java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/utils/SessionUtil.java
  17. 4
      java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/utils/ThreadUtil.java
  18. 8
      java/cloud/web/web-common/src/main/java/cn/toesbieya/jxc/web/common/utils/WebUtil.java
  19. 30
      java/cloud/web/web-modules/account/src/main/java/cn/toesbieya/jxc/account/controller/AccountController.java
  20. 28
      java/cloud/web/web-modules/account/src/main/java/cn/toesbieya/jxc/account/service/AccountService.java
  21. 2
      java/cloud/web/web-modules/doc/pom.xml
  22. 8
      java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/DocApplication.java
  23. 20
      java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/controller/DocHistoryController.java
  24. 35
      java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/controller/PurchaseInboundController.java
  25. 55
      java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/controller/PurchaseOrderController.java
  26. 35
      java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/controller/SellOrderController.java
  27. 35
      java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/controller/SellOutboundController.java
  28. 2
      java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/enumeration/DocFinishEnum.java
  29. 2
      java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/enumeration/DocHistoryEnum.java
  30. 2
      java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/enumeration/DocStatusEnum.java
  31. 4
      java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/mapper/DocHistoryMapper.java
  32. 4
      java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/mapper/PurchaseInboundMapper.java
  33. 2
      java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/mapper/PurchaseInboundSubMapper.java
  34. 4
      java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/mapper/PurchaseOrderMapper.java
  35. 2
      java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/mapper/PurchaseOrderSubMapper.java
  36. 4
      java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/mapper/SellOrderMapper.java
  37. 2
      java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/mapper/SellOrderSubMapper.java
  38. 4
      java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/mapper/SellOutboundMapper.java
  39. 2
      java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/mapper/SellOutboundSubMapper.java
  40. 2
      java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/DocHistorySearch.java
  41. 2
      java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/DocSearch.java
  42. 2
      java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/DocStatusUpdate.java
  43. 2
      java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/PurchaseInboundExport.java
  44. 2
      java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/PurchaseInboundSearch.java
  45. 2
      java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/PurchaseInboundVo.java
  46. 2
      java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/PurchaseOrderExport.java
  47. 2
      java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/PurchaseOrderSearch.java
  48. 2
      java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/PurchaseOrderVo.java
  49. 2
      java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/SellOrderExport.java
  50. 2
      java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/SellOrderSearch.java
  51. 2
      java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/SellOrderVo.java
  52. 2
      java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/SellOutboundExport.java
  53. 2
      java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/SellOutboundSearch.java
  54. 2
      java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/model/vo/SellOutboundVo.java
  55. 34
      java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/service/DocHistoryService.java
  56. 40
      java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/service/PurchaseInboundService.java
  57. 37
      java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/service/PurchaseOrderService.java
  58. 74
      java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/service/SellOrderService.java
  59. 44
      java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/service/SellOutboundService.java
  60. 18
      java/cloud/web/web-modules/doc/src/main/java/cn/toesbieya/jxc/doc/util/DocUtil.java
  61. 2
      java/cloud/web/web-modules/doc/src/main/resources/bootstrap.yml
  62. 4
      java/cloud/web/web-modules/doc/src/main/resources/mapper/BizPurchaseInbound.xml
  63. 4
      java/cloud/web/web-modules/doc/src/main/resources/mapper/BizPurchaseInboundSub.xml
  64. 4
      java/cloud/web/web-modules/doc/src/main/resources/mapper/BizPurchaseOrder.xml
  65. 4
      java/cloud/web/web-modules/doc/src/main/resources/mapper/BizPurchaseOrderSub.xml
  66. 4
      java/cloud/web/web-modules/doc/src/main/resources/mapper/BizSellOrder.xml
  67. 4
      java/cloud/web/web-modules/doc/src/main/resources/mapper/BizSellOrderSub.xml
  68. 4
      java/cloud/web/web-modules/doc/src/main/resources/mapper/BizSellOutbound.xml
  69. 4
      java/cloud/web/web-modules/doc/src/main/resources/mapper/BizSellOutboundSub.xml
  70. 0
      java/cloud/web/web-modules/doc/src/main/resources/script/get_doc_id.lua
  71. 33
      java/cloud/web/web-modules/message/src/main/java/cn/toesbieya/jxc/message/controller/ManageController.java
  72. 36
      java/cloud/web/web-modules/message/src/main/java/cn/toesbieya/jxc/message/controller/MsgUserController.java
  73. 35
      java/cloud/web/web-modules/message/src/main/java/cn/toesbieya/jxc/message/controller/UserController.java
  74. 16
      java/cloud/web/web-modules/message/src/main/java/cn/toesbieya/jxc/message/service/ManageService.java
  75. 8
      java/cloud/web/web-modules/message/src/main/java/cn/toesbieya/jxc/message/service/UserService.java
  76. 12
      java/cloud/web/web-modules/message/src/main/resources/mapper/Msg.xml
  77. 2
      java/cloud/web/web-modules/pom.xml
  78. 6
      java/cloud/web/web-modules/record/src/main/java/cn/toesbieya/jxc/record/controller/RecordController.java
  79. 3
      java/cloud/web/web-modules/record/src/main/java/cn/toesbieya/jxc/record/mapper/RecAttachmentMapper.java
  80. 27
      java/cloud/web/web-modules/record/src/main/java/cn/toesbieya/jxc/record/service/RecordService.java
  81. 8
      java/cloud/web/web-modules/record/src/main/resources/mapper/RecAttachment.xml
  82. 10
      java/cloud/web/web-modules/statistic/src/main/java/cn/toesbieya/jxc/statistic/controller/StatisticController.java
  83. 16
      java/cloud/web/web-modules/statistic/src/main/java/cn/toesbieya/jxc/statistic/service/StatisticService.java
  84. 10
      java/cloud/web/web-modules/stock/src/main/java/cn/toesbieya/jxc/stock/controller/StockController.java
  85. 26
      java/cloud/web/web-modules/stock/src/main/java/cn/toesbieya/jxc/stock/service/StockService.java
  86. 16
      java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/controller/CategoryController.java
  87. 16
      java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/controller/CustomerController.java
  88. 14
      java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/controller/DepartmentController.java
  89. 30
      java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/controller/ResourceController.java
  90. 23
      java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/controller/RoleController.java
  91. 18
      java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/controller/SupplierController.java
  92. 26
      java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/controller/SysResourceController.java
  93. 18
      java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/controller/UserController.java
  94. 34
      java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/service/CategoryService.java
  95. 7
      java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/service/CustomerService.java
  96. 7
      java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/service/DepartmentService.java
  97. 28
      java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/service/ResourceService.java
  98. 33
      java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/service/RoleService.java
  99. 16
      java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/service/SupplierService.java
  100. 15
      java/cloud/web/web-modules/system/src/main/java/cn/toesbieya/jxc/system/service/UserService.java
  101. Some files were not shown because too many files have changed in this diff Show More

@ -0,0 +1,12 @@
package cn.toesbieya.jxc.common.constant;
public interface DocConstant {
//更新单据ID时的redis锁的键
String UPDATE_DOC_LOCK_KEY = "UPDATE_DOC";
//单据ID的redis缓存的键
String DOC_TYPE_REDIS_KEY = "DOC_ID";
//单据类型
String[] DOC_TYPE = {"CGDD", "CGRK", "CGTH", "XSDD", "XSCK", "XSTH"};
}

@ -1,12 +0,0 @@
package cn.toesbieya.jxc.common.constant;
public interface DocumentConstant {
//更新单据ID时的redis锁的键
String UPDATE_DOCUMENTS_LOCK_KEY = "UPDATE_DOCUMENTS";
//单据ID的redis缓存的键
String DOCUMENT_TYPE_REDIS_KEY = "documentsID";
//单据类型
String[] DOCUMENT_TYPE = {"CGDD", "CGRK", "CGTH", "XSDD", "XSCK", "XSTH"};
}

@ -1,12 +1,10 @@
package cn.toesbieya.jxc.common.model.entity;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
@Data
@NoArgsConstructor
public class BizDoc implements Serializable {
private static final long serialVersionUID = 1L;
private String id;

@ -2,13 +2,11 @@ package cn.toesbieya.jxc.common.model.entity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
public class BizPurchaseInbound extends BizDoc {
private String pid;
}

@ -10,7 +10,6 @@ import java.math.BigDecimal;
@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
public class BizSellOrder extends BizDoc {
private Integer customerId;
private String customerName;

@ -8,7 +8,6 @@ import lombok.ToString;
@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
@NoArgsConstructor
public class BizSellOutbound extends BizDoc {
private String pid;
}

@ -7,8 +7,6 @@ import lombok.NoArgsConstructor;
import java.io.Serializable;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class SysUser implements Serializable {
private static final long serialVersionUID = 1L;
private Integer id;

@ -2,14 +2,13 @@ spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/repo?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=true
username: username
password: password
username:
password:
mybatis-plus:
mapper-locations:
- classpath*:/mapper/**/*.xml
configuration:
map-underscore-to-camel-case: false
local-cache-scope: STATEMENT
cache-enabled: false
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

@ -2,6 +2,7 @@ spring:
redis:
host: localhost
port: 6379
password:
timeout: 3000
lettuce:
pool:

@ -22,10 +22,10 @@ spring:
predicates:
- Path=/account/**
- id: jxc-web-document
uri: lb://jxc-web-document
- id: jxc-web-doc
uri: lb://jxc-web-doc
predicates:
- Path=/document/**
- Path=/doc/**
- id: jxc-web-message
uri: lb://jxc-web-message

@ -1,4 +1,4 @@
server:
port: 8001
servlet:
context-path: /document
context-path: /doc

@ -1,6 +1,6 @@
package cn.toesbieya.jxc.schedule.task;
import cn.toesbieya.jxc.common.constant.DocumentConstant;
import cn.toesbieya.jxc.common.constant.DocConstant;
import cn.toesbieya.jxc.common.utils.DateUtil;
import cn.toesbieya.jxc.common.utils.RedisUtil;
import lombok.extern.slf4j.Slf4j;
@ -19,7 +19,7 @@ import java.util.Map;
@Component
@Slf4j
@DependsOn("redisUtil")
public class DocumentTask implements CommandLineRunner {
public class DocTask implements CommandLineRunner {
@Override
public void run(String... args) {
template("初始化单据ID", 0);
@ -28,25 +28,25 @@ public class DocumentTask implements CommandLineRunner {
//每天零点重置单据ID的值
@Async("scheduledExecutor")
@Scheduled(cron = "1 0 0 */1 * ?")
public void autoRefreshDocumentID() {
public void autoRefreshDocId() {
template("定时更新单据ID", 1);
}
//启动时初始化单据ID
private void initDocumentsID() {
String[] fields = new String[DocumentConstant.DOCUMENT_TYPE.length + 1];
private void initDocId() {
String[] fields = new String[DocConstant.DOC_TYPE.length + 1];
fields[0] = "date";
System.arraycopy(DocumentConstant.DOCUMENT_TYPE, 0, fields, 1, fields.length - 1);
System.arraycopy(DocConstant.DOC_TYPE, 0, fields, 1, fields.length - 1);
List<Object> result = RedisUtil.hmget(DocumentConstant.DOCUMENT_TYPE_REDIS_KEY, fields);
List<Object> result = RedisUtil.hmget(DocConstant.DOC_TYPE_REDIS_KEY, fields);
long now = DateUtil.getTimestampNow();
//日期不是今天时,更新全部
Object firstItem = result.get(0);
if (null == firstItem || now != (long) firstItem) {
updateAllDocument(now);
log.info("更新【{}】种单据ID成功", DocumentConstant.DOCUMENT_TYPE.length);
updateAllDoc(now);
log.info("更新【{}】种单据ID成功", DocConstant.DOC_TYPE.length);
return;
}
@ -58,31 +58,31 @@ public class DocumentTask implements CommandLineRunner {
for (int i = 1; i < resultSize; i++) {
if (result.get(i) == null) {
updateNum++;
update.put(DocumentConstant.DOCUMENT_TYPE[i - 1], 1);
update.put(DocConstant.DOC_TYPE[i - 1], 1);
}
}
if (updateNum > 0) {
RedisUtil.hmset(DocumentConstant.DOCUMENT_TYPE_REDIS_KEY, update);
RedisUtil.hmset(DocConstant.DOC_TYPE_REDIS_KEY, update);
log.info("更新增加的单据【{}】种", updateNum);
}
}
//每种单据的值置为1
private void updateAllDocument(long now) {
private void updateAllDoc(long now) {
Map<String, Object> map = new HashMap<>();
map.put("date", now);
for (String v : DocumentConstant.DOCUMENT_TYPE) {
for (String v : DocConstant.DOC_TYPE) {
map.put(v, 1);
}
RedisUtil.hmset(DocumentConstant.DOCUMENT_TYPE_REDIS_KEY, map);
RedisUtil.hmset(DocConstant.DOC_TYPE_REDIS_KEY, map);
}
//模板
private void template(String action, int type) {
Instant start = Instant.now();
String lockKey = DocumentConstant.UPDATE_DOCUMENTS_LOCK_KEY;
String lockKey = DocConstant.UPDATE_DOC_LOCK_KEY;
try (RedisUtil.Locker locker = new RedisUtil.Locker(lockKey)) {
if (!locker.lock()) {
@ -91,10 +91,10 @@ public class DocumentTask implements CommandLineRunner {
}
if (type == 0) {
initDocumentsID();
initDocId();
}
else {
updateAllDocument(DateUtil.getTimestampNow());
updateAllDoc(DateUtil.getTimestampNow());
}
log.info("{}成功,耗时:{}毫秒", action, ChronoUnit.MILLIS.between(start, Instant.now()));

@ -21,11 +21,11 @@ import java.util.Map;
@Slf4j
public class StatisticTask implements CommandLineRunner {
@Resource
private StatisticMapper statisticMapper;
private StatisticMapper mapper;
@Override
public void run(String... args) throws Exception {
this.autoStat();
autoStat();
}
//每天零点统计信息
@ -38,23 +38,23 @@ public class StatisticTask implements CommandLineRunner {
long today = DateUtil.getTimestampNow();
//检查是否已统计过昨日已完成的订单数
if (!statisticMapper.checkDailyFinishOrderExist(lastDay)) {
Integer lastDayPurchaseOrderFinish = statisticMapper.getPurchaseOrderLastDayFinishOrderNum();
Integer lastDaySellOrderFinish = statisticMapper.getSellOrderLastDayFinishOrderNum();
if (!mapper.checkDailyFinishOrderExist(lastDay)) {
Integer lastDayPurchaseOrderFinish = mapper.getPurchaseOrderLastDayFinishOrderNum();
Integer lastDaySellOrderFinish = mapper.getSellOrderLastDayFinishOrderNum();
StatFinishOrder param = new StatFinishOrder();
param.setPurchase(lastDayPurchaseOrderFinish);
param.setSell(lastDaySellOrderFinish);
param.setTime(lastDay);
statisticMapper.insertFinishOrder(param);
mapper.insertFinishOrder(param);
}
//检查是否已统计过昨日的采购额、销售额、毛利
if (!statisticMapper.checkDailyProfitExist(lastDay)) {
if (!mapper.checkDailyProfitExist(lastDay)) {
//昨日各个商品的采购额、销售额
List<StatProfitGoods> purchaseProfitGoods = statisticMapper.getPurchaseOrderDailyProfitGoods(lastDay, today);
List<StatProfitGoods> sellProfitGoods = statisticMapper.getSellOrderDailyProfitGoods(lastDay, today);
List<StatProfitGoods> purchaseProfitGoods = mapper.getPurchaseOrderDailyProfitGoods(lastDay, today);
List<StatProfitGoods> sellProfitGoods = mapper.getSellOrderDailyProfitGoods(lastDay, today);
//昨日的采购总额、销售总额
BigDecimal totalPurchase = new BigDecimal(0);
@ -104,10 +104,10 @@ public class StatisticTask implements CommandLineRunner {
statProfitTotal.setProfit(totalProfit);
statProfitTotal.setTime(lastDay);
statisticMapper.insertProfitTotal(statProfitTotal);
mapper.insertProfitTotal(statProfitTotal);
if (purchaseProfitGoods.size() > 0) {
statisticMapper.insertProfitGoodsBatch(purchaseProfitGoods);
mapper.insertProfitGoodsBatch(purchaseProfitGoods);
}
}

@ -68,13 +68,12 @@ public class RestExceptionAspect {
private void recordUserAction(Exception e) {
RecUserAction action = ThreadUtil.getAction();
if (action != null && !StringUtils.isEmpty(action.getAction())) {
action.setTime(System.currentTimeMillis());
action.setError(Util.exception2Str(e));
action.setType(UserActionEnum.FAIL.getCode());
recordApi.insertUserAction(action);
}
ThreadUtil.clearAll();
}
}

@ -13,6 +13,8 @@ import org.springframework.context.annotation.DependsOn;
import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;
import java.util.List;
@Slf4j
@Component
@DependsOn("redisUtil")
@ -21,6 +23,20 @@ public class QiniuUtil {
private final Auth auth;
private final BucketManager bucketManager;
@Autowired
public QiniuUtil(QiniuConfig config) {
this.config = config;
if (StringUtils.isEmpty(config.getAccessKey())) {
this.auth = null;
this.bucketManager = null;
return;
}
this.auth = Auth.create(config.getAccessKey(), config.getSecretKey());
this.bucketManager = new BucketManager(this.auth, new Configuration(Region.huadong()));
}
public String getToken() {
String key = config.getRedisCacheKey();
@ -54,17 +70,7 @@ public class QiniuUtil {
}
}
@Autowired
public QiniuUtil(QiniuConfig config) {
this.config = config;
if (StringUtils.isEmpty(config.getAccessKey())) {
this.auth = null;
this.bucketManager = null;
return;
}
this.auth = Auth.create(config.getAccessKey(), config.getSecretKey());
this.bucketManager = new BucketManager(this.auth, new Configuration(Region.huadong()));
public void deleteBatch(List<String> key) {
deleteBatch(key.toArray(new String[0]));
}
}

@ -0,0 +1,10 @@
package cn.toesbieya.jxc.web.common.utils;
import cn.toesbieya.jxc.common.model.vo.UserVo;
public class SessionUtil extends cn.toesbieya.jxc.common.utils.SessionUtil {
public static UserVo get() {
UserVo user = ThreadUtil.getUser();
return user == null ? get(WebUtil.getRequest()) : user;
}
}

@ -15,7 +15,9 @@ public class ThreadUtil {
if (user == null) user = SessionUtil.get(request);
if (user == null) return;
RecUserAction userAction = RecUserAction.builder()
RecUserAction userAction =
RecUserAction
.builder()
.uid(user.getId())
.uname(user.getName())
.ip(IpUtil.getIp(request))

@ -2,9 +2,13 @@ package cn.toesbieya.jxc.web.common.utils;
import cn.toesbieya.jxc.common.model.vo.Result;
import com.alibaba.fastjson.JSON;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Objects;
public class WebUtil {
public static void responseJson(HttpServletResponse response, Result result) throws IOException {
@ -13,4 +17,8 @@ public class WebUtil {
response.getWriter().print(JSON.toJSONString(result));
}
public static HttpServletRequest getRequest() {
return ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
}
}

@ -7,8 +7,8 @@ import cn.toesbieya.jxc.account.vo.RegisterParam;
import cn.toesbieya.jxc.common.model.entity.SysUser;
import cn.toesbieya.jxc.common.model.vo.UserVo;
import cn.toesbieya.jxc.common.model.vo.Result;
import cn.toesbieya.jxc.common.utils.SessionUtil;
import cn.toesbieya.jxc.web.common.utils.IpUtil;
import cn.toesbieya.jxc.web.common.utils.SessionUtil;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
@ -22,46 +22,46 @@ import java.net.URLDecoder;
@RequestMapping("account")
public class AccountController {
@Resource
private AccountService accountService;
private AccountService service;
@PostMapping("login")
public Result login(HttpServletRequest request, @Valid @RequestBody LoginParam param) {
return accountService.login(param, IpUtil.getIp(request));
return service.login(param, IpUtil.getIp(request));
}
@GetMapping("logout")
public Result logout(HttpServletRequest request) {
UserVo user = SessionUtil.get(request);
return accountService.logout(user, IpUtil.getIp(request));
UserVo user = SessionUtil.get();
return service.logout(user, IpUtil.getIp(request));
}
@PostMapping("register")
public Result register(@Valid @RequestBody RegisterParam param) {
return accountService.register(param);
return service.register(param);
}
@PostMapping("updatePwd")
public Result updatePwd(HttpServletRequest request, @RequestBody PasswordUpdateParam param) {
SysUser user = SessionUtil.get(request);
public Result updatePwd(@RequestBody PasswordUpdateParam param) {
SysUser user = SessionUtil.get();
param.setId(user.getId());
String errMsg = validateUpdatePwdParam(param);
if (errMsg != null) return Result.fail(errMsg);
return accountService.updatePwd(param);
return service.updatePwd(param);
}
@GetMapping("updateAvatar")
public Result updateAvatar(HttpServletRequest request, @RequestParam String key) throws UnsupportedEncodingException {
public Result updateAvatar(@RequestParam String key) throws UnsupportedEncodingException {
if (StringUtils.isEmpty(key)) return Result.fail("参数错误");
UserVo user = SessionUtil.get(request);
return accountService.updateAvatar(user, URLDecoder.decode(key, "utf-8"));
UserVo user = SessionUtil.get();
return service.updateAvatar(user, URLDecoder.decode(key, "utf-8"));
}
@GetMapping("validate")
public Result validate(HttpServletRequest request, @RequestParam String pwd) {
SysUser current = SessionUtil.get(request);
public Result validate(@RequestParam String pwd) {
SysUser current = SessionUtil.get();
if (!pwd.equals(current.getPwd())) {
return Result.fail("校验失败");
@ -76,7 +76,7 @@ public class AccountController {
return Result.success();
}
return Result.success(accountService.checkName(name, id) ? null : "该用户名已存在");
return Result.success(service.checkName(name, id) ? null : "该用户名已存在");
}
private String validateUpdatePwdParam(PasswordUpdateParam vo) {

@ -22,7 +22,6 @@ import cn.toesbieya.jxc.common.utils.SessionUtil;
import cn.toesbieya.jxc.web.common.annoation.TimeCost;
import cn.toesbieya.jxc.web.common.annoation.UserAction;
import cn.toesbieya.jxc.web.common.utils.QiniuUtil;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.Reference;
@ -50,12 +49,13 @@ public class AccountService {
@TimeCost
public Result login(LoginParam param, String ip) {
Wrapper<SysUser> wrapper =
long now = System.currentTimeMillis();
SysUser user = userMapper.selectOne(
Wrappers.lambdaQuery(SysUser.class)
.eq(SysUser::getName, param.getUsername())
.eq(SysUser::getPwd, param.getPassword());
SysUser user = userMapper.selectOne(wrapper);
.eq(SysUser::getPwd, param.getPassword())
);
if (user == null) {
return Result.fail("用户名或密码错误");
@ -132,12 +132,13 @@ public class AccountService {
//记录登陆信息
recordApi.insertLoginHistory(
RecLoginHistory.builder()
RecLoginHistory
.builder()
.uid(user.getId())
.uname(user.getName())
.ip(ip)
.type(RecLoginHistoryEnum.LOGIN.getCode())
.time(System.currentTimeMillis())
.time(now)
.build()
);
@ -147,7 +148,8 @@ public class AccountService {
public Result logout(UserVo user, String ip) {
if (user != null) {
recordApi.insertLoginHistory(
RecLoginHistory.builder()
RecLoginHistory
.builder()
.uid(user.getId())
.uname(user.getName())
.ip(ip)
@ -164,7 +166,10 @@ public class AccountService {
public Result register(RegisterParam param) {
String name = param.getUsername();
if (0 != userMapper.selectCount(Wrappers.lambdaQuery(SysUser.class).eq(SysUser::getName, name))) {
if (userMapper
.selectCount(Wrappers.lambdaQuery(SysUser.class).eq(SysUser::getName, name))
.equals(0)
) {
return Result.fail("该用户名称已存在");
}
@ -207,10 +212,8 @@ public class AccountService {
if (!StringUtils.isEmpty(oldAvatar)) {
qiniuUtil.delete(oldAvatar);
}
user.setAvatar(avatar);
SessionUtil.save(user);
return Result.success("上传头像成功");
}
@ -221,10 +224,11 @@ public class AccountService {
}
public boolean checkName(String name, Integer id) {
return 0 == userMapper.selectCount(
Integer num = userMapper.selectCount(
Wrappers.lambdaQuery(SysUser.class)
.eq(SysUser::getName, name)
.ne(id != null, SysUser::getId, id)
);
return num == null || num.equals(0);
}
}

@ -9,7 +9,7 @@
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>document</artifactId>
<artifactId>doc</artifactId>
</project>

@ -1,13 +1,13 @@
package cn.toesbieya.jxc.document;
package cn.toesbieya.jxc.doc;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication(scanBasePackages = "cn.toesbieya.jxc")
@MapperScan("cn.toesbieya.jxc.document.mapper")
public class DocumentApplication {
@MapperScan("cn.toesbieya.jxc.doc.mapper")
public class DocApplication {
public static void main(String[] args) {
SpringApplication.run(DocumentApplication.class, args);
SpringApplication.run(DocApplication.class, args);
}
}

@ -0,0 +1,20 @@
package cn.toesbieya.jxc.doc.controller;
import cn.toesbieya.jxc.common.model.vo.Result;
import cn.toesbieya.jxc.doc.model.vo.DocHistorySearch;
import cn.toesbieya.jxc.doc.service.DocHistoryService;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@RestController
@RequestMapping("history")
public class DocHistoryController {
@Resource
private DocHistoryService service;
@PostMapping("search")
public Result search(@RequestBody DocHistorySearch vo) {
return Result.success(service.search(vo));
}
}

@ -1,21 +1,20 @@
package cn.toesbieya.jxc.document.controller;
package cn.toesbieya.jxc.doc.controller;
import cn.toesbieya.jxc.common.model.entity.BizPurchaseInbound;
import cn.toesbieya.jxc.common.model.entity.BizPurchaseInboundSub;
import cn.toesbieya.jxc.common.model.vo.Result;
import cn.toesbieya.jxc.common.model.vo.UserVo;
import cn.toesbieya.jxc.common.utils.SessionUtil;
import cn.toesbieya.jxc.document.enumeration.DocStatusEnum;
import cn.toesbieya.jxc.document.model.vo.DocStatusUpdate;
import cn.toesbieya.jxc.document.model.vo.PurchaseInboundSearch;
import cn.toesbieya.jxc.document.model.vo.PurchaseInboundVo;
import cn.toesbieya.jxc.document.service.PurchaseInboundService;
import cn.toesbieya.jxc.doc.enumeration.DocStatusEnum;
import cn.toesbieya.jxc.doc.model.vo.DocStatusUpdate;
import cn.toesbieya.jxc.doc.model.vo.PurchaseInboundSearch;
import cn.toesbieya.jxc.doc.model.vo.PurchaseInboundVo;
import cn.toesbieya.jxc.doc.service.PurchaseInboundService;
import cn.toesbieya.jxc.web.common.utils.SessionUtil;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
import java.util.List;
@ -50,11 +49,11 @@ public class PurchaseInboundController {
}
@PostMapping("add")
public Result add(HttpServletRequest request, @RequestBody PurchaseInboundVo vo) {
public Result add(@RequestBody PurchaseInboundVo vo) {
String errMsg = validateSub(vo.getData());
if (errMsg != null) return Result.fail(errMsg);
UserVo user = SessionUtil.get(request);
UserVo user = SessionUtil.get();
vo.setCid(user.getId());
vo.setCname(user.getName());
@ -74,7 +73,7 @@ public class PurchaseInboundController {
}
@PostMapping("commit")
public Result commit(HttpServletRequest request, @RequestBody PurchaseInboundVo vo) {
public Result commit(@RequestBody PurchaseInboundVo vo) {
boolean isFirst = StringUtils.isEmpty(vo.getId());
String errMsg = validateSub(vo.getData());
@ -83,7 +82,7 @@ public class PurchaseInboundController {
vo.setStatus(DocStatusEnum.WAIT_VERIFY.getCode());
if (isFirst) {
UserVo user = SessionUtil.get(request);
UserVo user = SessionUtil.get();
vo.setCid(user.getId());
vo.setCname(user.getName());
vo.setCtime(System.currentTimeMillis());
@ -92,19 +91,19 @@ public class PurchaseInboundController {
}
@PostMapping("withdraw")
public Result withdraw(HttpServletRequest request, @RequestBody DocStatusUpdate vo) {
return service.withdraw(vo, SessionUtil.get(request));
public Result withdraw(@RequestBody DocStatusUpdate vo) {
return service.withdraw(vo, SessionUtil.get());
}
@PostMapping("pass")
public Result pass(HttpServletRequest request, @RequestBody DocStatusUpdate vo) {
public Result pass(@RequestBody DocStatusUpdate vo) {
if (StringUtils.isEmpty(vo.getPid())) return Result.fail("参数错误");
return service.pass(vo, SessionUtil.get(request));
return service.pass(vo, SessionUtil.get());
}
@PostMapping("reject")
public Result reject(HttpServletRequest request, @RequestBody DocStatusUpdate vo) {
return service.reject(vo, SessionUtil.get(request));
public Result reject(@RequestBody DocStatusUpdate vo) {
return service.reject(vo, SessionUtil.get());
}
@GetMapping("del")

@ -1,22 +1,21 @@
package cn.toesbieya.jxc.document.controller;
package cn.toesbieya.jxc.doc.controller;
import cn.toesbieya.jxc.common.model.entity.BizPurchaseOrder;
import cn.toesbieya.jxc.common.model.entity.BizPurchaseOrderSub;
import cn.toesbieya.jxc.common.model.vo.Result;
import cn.toesbieya.jxc.common.model.vo.UserVo;
import cn.toesbieya.jxc.common.utils.SessionUtil;
import cn.toesbieya.jxc.document.enumeration.DocFinishEnum;
import cn.toesbieya.jxc.document.enumeration.DocStatusEnum;
import cn.toesbieya.jxc.document.model.vo.DocStatusUpdate;
import cn.toesbieya.jxc.document.model.vo.PurchaseOrderSearch;
import cn.toesbieya.jxc.document.model.vo.PurchaseOrderVo;
import cn.toesbieya.jxc.document.service.PurchaseOrderService;
import cn.toesbieya.jxc.doc.enumeration.DocFinishEnum;
import cn.toesbieya.jxc.doc.enumeration.DocStatusEnum;
import cn.toesbieya.jxc.doc.model.vo.DocStatusUpdate;
import cn.toesbieya.jxc.doc.model.vo.PurchaseOrderSearch;
import cn.toesbieya.jxc.doc.model.vo.PurchaseOrderVo;
import cn.toesbieya.jxc.doc.service.PurchaseOrderService;
import cn.toesbieya.jxc.web.common.utils.SessionUtil;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
import java.util.List;
@ -25,14 +24,14 @@ import java.util.List;
@RequestMapping("purchase/order")
public class PurchaseOrderController {
@Resource
private PurchaseOrderService orderService;
private PurchaseOrderService service;
@GetMapping("getById")
public Result getById(@RequestParam String id) {
if (StringUtils.isEmpty(id)) {
return Result.fail("参数错误");
}
PurchaseOrderVo vo = orderService.getById(id);
PurchaseOrderVo vo = service.getById(id);
return vo == null ? Result.fail("获取单据信息失败") : Result.success(vo);
}
@ -41,21 +40,21 @@ public class PurchaseOrderController {
if (StringUtils.isEmpty(id)) {
return Result.fail("参数错误");
}
return Result.success(orderService.getSubById(id));
return Result.success(service.getSubById(id));
}
@PostMapping("search")
public Result search(@RequestBody PurchaseOrderSearch vo) {
return Result.success(orderService.search(vo));
return Result.success(service.search(vo));
}
@PostMapping("export")
public void export(@RequestBody PurchaseOrderSearch vo, HttpServletResponse response) throws Exception {
orderService.export(vo, response);
service.export(vo, response);
}
@PostMapping("add")
public Result add(HttpServletRequest request, @RequestBody PurchaseOrderVo vo) {
public Result add(@RequestBody PurchaseOrderVo vo) {
if (vo.getSid() == null
|| StringUtils.isEmpty(vo.getSname())
|| vo.getTotal() == null) {
@ -65,7 +64,7 @@ public class PurchaseOrderController {
String errMsg = validateSub(vo.getData());
if (errMsg != null) return Result.fail(errMsg);
UserVo user = SessionUtil.get(request);
UserVo user = SessionUtil.get();
vo.setCid(user.getId());
vo.setCname(user.getName());
@ -73,7 +72,7 @@ public class PurchaseOrderController {
vo.setStatus(DocStatusEnum.DRAFT.getCode());
vo.setFinish(DocFinishEnum.TO_BE_STARTED.getCode());
return orderService.add(vo);
return service.add(vo);
}
@PostMapping("update")
@ -82,11 +81,11 @@ public class PurchaseOrderController {
if (errMsg == null) errMsg = validateSub(vo.getData());
if (errMsg != null) return Result.fail(errMsg);
return orderService.update(vo);
return service.update(vo);
}
@PostMapping("commit")
public Result commit(HttpServletRequest request, @RequestBody PurchaseOrderVo vo) {
public Result commit(@RequestBody PurchaseOrderVo vo) {
boolean isFirst = StringUtils.isEmpty(vo.getId());
String errMsg = validateSub(vo.getData());
@ -96,34 +95,34 @@ public class PurchaseOrderController {
vo.setStatus(DocStatusEnum.WAIT_VERIFY.getCode());
if (isFirst) {
UserVo user = SessionUtil.get(request);
UserVo user = SessionUtil.get();
vo.setCid(user.getId());
vo.setCname(user.getName());
vo.setCtime(System.currentTimeMillis());
}
return orderService.commit(vo);
return service.commit(vo);
}
@PostMapping("withdraw")
public Result withdraw(HttpServletRequest request, @RequestBody DocStatusUpdate vo) {
return orderService.withdraw(vo, SessionUtil.get(request));
public Result withdraw(@RequestBody DocStatusUpdate vo) {
return service.withdraw(vo, SessionUtil.get());
}
@PostMapping("pass")
public Result pass(HttpServletRequest request, @RequestBody DocStatusUpdate vo) {
return orderService.pass(vo, SessionUtil.get(request));
public Result pass(@RequestBody DocStatusUpdate vo) {
return service.pass(vo, SessionUtil.get());
}
@PostMapping("reject")
public Result reject(HttpServletRequest request, @RequestBody DocStatusUpdate vo) {
return orderService.reject(vo, SessionUtil.get(request));
public Result reject(@RequestBody DocStatusUpdate vo) {
return service.reject(vo, SessionUtil.get());
}
@GetMapping("del")
public Result del(@RequestParam String id) {
if (StringUtils.isEmpty(id)) return Result.fail("参数错误");
return orderService.del(id);
return service.del(id);
}
private String validateUpdate(BizPurchaseOrder main) {

@ -1,21 +1,20 @@
package cn.toesbieya.jxc.document.controller;
package cn.toesbieya.jxc.doc.controller;
import cn.toesbieya.jxc.common.model.entity.BizSellOrder;
import cn.toesbieya.jxc.common.model.entity.BizSellOrderSub;
import cn.toesbieya.jxc.common.model.vo.Result;
import cn.toesbieya.jxc.common.model.vo.UserVo;
import cn.toesbieya.jxc.common.utils.SessionUtil;
import cn.toesbieya.jxc.document.enumeration.DocStatusEnum;
import cn.toesbieya.jxc.document.model.vo.DocStatusUpdate;
import cn.toesbieya.jxc.document.model.vo.SellOrderSearch;
import cn.toesbieya.jxc.document.model.vo.SellOrderVo;
import cn.toesbieya.jxc.document.service.SellOrderService;
import cn.toesbieya.jxc.doc.enumeration.DocStatusEnum;
import cn.toesbieya.jxc.doc.model.vo.DocStatusUpdate;
import cn.toesbieya.jxc.doc.model.vo.SellOrderSearch;
import cn.toesbieya.jxc.doc.model.vo.SellOrderVo;
import cn.toesbieya.jxc.doc.service.SellOrderService;
import cn.toesbieya.jxc.web.common.utils.SessionUtil;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
import java.util.List;
@ -50,7 +49,7 @@ public class SellOrderController {
}
@PostMapping("add")
public Result add(HttpServletRequest request, @RequestBody SellOrderVo vo) {
public Result add(@RequestBody SellOrderVo vo) {
if (vo.getCustomerId() == null
|| StringUtils.isEmpty(vo.getCustomerName())
|| vo.getTotal() == null) {
@ -59,7 +58,7 @@ public class SellOrderController {
String errMsg = validateSub(vo.getData());
if (errMsg != null) return Result.fail(errMsg);
UserVo user = SessionUtil.get(request);
UserVo user = SessionUtil.get();
vo.setCid(user.getId());
vo.setCname(user.getName());
@ -79,7 +78,7 @@ public class SellOrderController {
}
@PostMapping("commit")
public Result commit(HttpServletRequest request,@RequestBody SellOrderVo vo) {
public Result commit(@RequestBody SellOrderVo vo) {
boolean isFirst = StringUtils.isEmpty(vo.getId());
String errMsg = validateSub(vo.getData());
@ -89,7 +88,7 @@ public class SellOrderController {
vo.setStatus(DocStatusEnum.WAIT_VERIFY.getCode());
if (isFirst) {
UserVo user = SessionUtil.get(request);
UserVo user = SessionUtil.get();
vo.setCid(user.getId());
vo.setCname(user.getName());
@ -100,18 +99,18 @@ public class SellOrderController {
}
@PostMapping("withdraw")
public Result withdraw(HttpServletRequest request,@RequestBody DocStatusUpdate vo) {
return service.withdraw(vo, SessionUtil.get(request));
public Result withdraw(@RequestBody DocStatusUpdate vo) {
return service.withdraw(vo, SessionUtil.get());
}
@PostMapping("pass")
public Result pass(HttpServletRequest request,@RequestBody DocStatusUpdate vo) {
return service.pass(vo, SessionUtil.get(request));
public Result pass(@RequestBody DocStatusUpdate vo) {
return service.pass(vo, SessionUtil.get());
}
@PostMapping("reject")
public Result reject(HttpServletRequest request,@RequestBody DocStatusUpdate vo) {
return service.reject(vo, SessionUtil.get(request));
public Result reject(@RequestBody DocStatusUpdate vo) {
return service.reject(vo, SessionUtil.get());
}
@GetMapping("del")

@ -1,21 +1,20 @@
package cn.toesbieya.jxc.document.controller;
package cn.toesbieya.jxc.doc.controller;
import cn.toesbieya.jxc.common.model.entity.BizSellOutbound;
import cn.toesbieya.jxc.common.model.entity.BizSellOutboundSub;
import cn.toesbieya.jxc.common.model.vo.Result;
import cn.toesbieya.jxc.common.model.vo.UserVo;
import cn.toesbieya.jxc.common.utils.SessionUtil;
import cn.toesbieya.jxc.document.enumeration.DocStatusEnum;
import cn.toesbieya.jxc.document.model.vo.DocStatusUpdate;
import cn.toesbieya.jxc.document.model.vo.SellOutboundSearch;
import cn.toesbieya.jxc.document.model.vo.SellOutboundVo;
import cn.toesbieya.jxc.document.service.SellOutboundService;
import cn.toesbieya.jxc.doc.enumeration.DocStatusEnum;
import cn.toesbieya.jxc.doc.model.vo.DocStatusUpdate;
import cn.toesbieya.jxc.doc.model.vo.SellOutboundSearch;
import cn.toesbieya.jxc.doc.model.vo.SellOutboundVo;
import cn.toesbieya.jxc.doc.service.SellOutboundService;
import cn.toesbieya.jxc.web.common.utils.SessionUtil;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
import java.util.List;
@ -50,11 +49,11 @@ public class SellOutboundController {
}
@PostMapping("add")
public Result add(HttpServletRequest request, @RequestBody SellOutboundVo vo) {
public Result add(@RequestBody SellOutboundVo vo) {
String errMsg = validateSub(vo.getData());
if (errMsg != null) return Result.fail(errMsg);
UserVo user = SessionUtil.get(request);
UserVo user = SessionUtil.get();
vo.setCid(user.getId());
vo.setCname(user.getName());
@ -74,7 +73,7 @@ public class SellOutboundController {
}
@PostMapping("commit")
public Result commit(HttpServletRequest request, @RequestBody SellOutboundVo vo) {
public Result commit(@RequestBody SellOutboundVo vo) {
boolean isFirst = StringUtils.isEmpty(vo.getId());
String errMsg = validateSub(vo.getData());
@ -83,7 +82,7 @@ public class SellOutboundController {
vo.setStatus(DocStatusEnum.WAIT_VERIFY.getCode());
if (isFirst) {
UserVo user = SessionUtil.get(request);
UserVo user = SessionUtil.get();
vo.setCid(user.getId());
vo.setCname(user.getName());
@ -93,21 +92,21 @@ public class SellOutboundController {
}
@PostMapping("withdraw")
public Result withdraw(HttpServletRequest request, @RequestBody DocStatusUpdate vo) {
return service.withdraw(vo, SessionUtil.get(request));
public Result withdraw(@RequestBody DocStatusUpdate vo) {
return service.withdraw(vo, SessionUtil.get());
}
@PostMapping("pass")
public Result pass(HttpServletRequest request, @RequestBody DocStatusUpdate vo) {
public Result pass(@RequestBody DocStatusUpdate vo) {
if (StringUtils.isEmpty(vo.getPid())) {
return Result.fail("参数错误");
}
return service.pass(vo, SessionUtil.get(request));
return service.pass(vo, SessionUtil.get());
}
@PostMapping("reject")
public Result reject(HttpServletRequest request, @RequestBody DocStatusUpdate vo) {
return service.reject(vo, SessionUtil.get(request));
public Result reject(@RequestBody DocStatusUpdate vo) {
return service.reject(vo, SessionUtil.get());
}
@GetMapping("del")

@ -1,4 +1,4 @@
package cn.toesbieya.jxc.document.enumeration;
package cn.toesbieya.jxc.doc.enumeration;
public enum DocFinishEnum {
TO_BE_STARTED(0), UNDERWAY(1), FINISHED(2);

@ -1,4 +1,4 @@
package cn.toesbieya.jxc.document.enumeration;
package cn.toesbieya.jxc.doc.enumeration;
public enum DocHistoryEnum {
WITHDRAW(0), COMMIT(1), PASS(2), REJECT(3);

@ -1,4 +1,4 @@
package cn.toesbieya.jxc.document.enumeration;
package cn.toesbieya.jxc.doc.enumeration;
public enum DocStatusEnum {
DRAFT(0), WAIT_VERIFY(1), VERIFIED(2);

@ -1,7 +1,7 @@
package cn.toesbieya.jxc.document.mapper;
package cn.toesbieya.jxc.doc.mapper;
import cn.toesbieya.jxc.common.model.entity.BizDocHistory;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
public interface DocumentHistoryMapper extends BaseMapper<BizDocHistory> {
public interface DocHistoryMapper extends BaseMapper<BizDocHistory> {
}

@ -1,7 +1,7 @@
package cn.toesbieya.jxc.document.mapper;
package cn.toesbieya.jxc.doc.mapper;
import cn.toesbieya.jxc.common.model.entity.BizPurchaseInbound;
import cn.toesbieya.jxc.document.model.vo.PurchaseInboundExport;
import cn.toesbieya.jxc.doc.model.vo.PurchaseInboundExport;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;

@ -1,4 +1,4 @@
package cn.toesbieya.jxc.document.mapper;
package cn.toesbieya.jxc.doc.mapper;
import cn.toesbieya.jxc.common.model.entity.BizPurchaseInboundSub;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;

@ -1,7 +1,7 @@
package cn.toesbieya.jxc.document.mapper;
package cn.toesbieya.jxc.doc.mapper;
import cn.toesbieya.jxc.common.model.entity.BizPurchaseOrder;
import cn.toesbieya.jxc.document.model.vo.PurchaseOrderExport;
import cn.toesbieya.jxc.doc.model.vo.PurchaseOrderExport;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;

@ -1,4 +1,4 @@
package cn.toesbieya.jxc.document.mapper;
package cn.toesbieya.jxc.doc.mapper;
import cn.toesbieya.jxc.common.model.entity.BizPurchaseOrderSub;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;

@ -1,7 +1,7 @@
package cn.toesbieya.jxc.document.mapper;
package cn.toesbieya.jxc.doc.mapper;
import cn.toesbieya.jxc.common.model.entity.BizSellOrder;
import cn.toesbieya.jxc.document.model.vo.SellOrderExport;
import cn.toesbieya.jxc.doc.model.vo.SellOrderExport;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;

@ -1,4 +1,4 @@
package cn.toesbieya.jxc.document.mapper;
package cn.toesbieya.jxc.doc.mapper;
import cn.toesbieya.jxc.common.model.entity.BizSellOrderSub;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;

@ -1,7 +1,7 @@
package cn.toesbieya.jxc.document.mapper;
package cn.toesbieya.jxc.doc.mapper;
import cn.toesbieya.jxc.common.model.entity.BizSellOutbound;
import cn.toesbieya.jxc.document.model.vo.SellOutboundExport;
import cn.toesbieya.jxc.doc.model.vo.SellOutboundExport;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;

@ -1,4 +1,4 @@
package cn.toesbieya.jxc.document.mapper;
package cn.toesbieya.jxc.doc.mapper;
import cn.toesbieya.jxc.common.model.entity.BizSellOutboundSub;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;

@ -1,4 +1,4 @@
package cn.toesbieya.jxc.document.model.vo;
package cn.toesbieya.jxc.doc.model.vo;
import cn.toesbieya.jxc.common.model.vo.BaseSearch;
import lombok.Data;

@ -1,4 +1,4 @@
package cn.toesbieya.jxc.document.model.vo;
package cn.toesbieya.jxc.doc.model.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;

@ -1,4 +1,4 @@
package cn.toesbieya.jxc.document.model.vo;
package cn.toesbieya.jxc.doc.model.vo;
import cn.toesbieya.jxc.common.model.entity.BizPurchaseInbound;
import cn.toesbieya.jxc.common.model.entity.BizPurchaseInboundSub;

@ -1,4 +1,4 @@
package cn.toesbieya.jxc.document.model.vo;
package cn.toesbieya.jxc.doc.model.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;

@ -1,4 +1,4 @@
package cn.toesbieya.jxc.document.model.vo;
package cn.toesbieya.jxc.doc.model.vo;
import cn.toesbieya.jxc.common.model.entity.BizPurchaseOrder;
import cn.toesbieya.jxc.common.model.entity.BizPurchaseOrderSub;

@ -1,4 +1,4 @@
package cn.toesbieya.jxc.document.model.vo;
package cn.toesbieya.jxc.doc.model.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;

@ -1,4 +1,4 @@
package cn.toesbieya.jxc.document.model.vo;
package cn.toesbieya.jxc.doc.model.vo;
import lombok.Data;
import lombok.EqualsAndHashCode;

@ -1,4 +1,4 @@
package cn.toesbieya.jxc.document.model.vo;
package cn.toesbieya.jxc.doc.model.vo;
import cn.toesbieya.jxc.common.model.entity.BizSellOrder;
import cn.toesbieya.jxc.common.model.entity.BizSellOrderSub;

@ -1,4 +1,4 @@
package cn.toesbieya.jxc.document.model.vo;
package cn.toesbieya.jxc.doc.model.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;

@ -1,4 +1,4 @@
package cn.toesbieya.jxc.document.model.vo;
package cn.toesbieya.jxc.doc.model.vo;
import lombok.Data;
import lombok.EqualsAndHashCode;

@ -1,4 +1,4 @@
package cn.toesbieya.jxc.document.model.vo;
package cn.toesbieya.jxc.doc.model.vo;
import cn.toesbieya.jxc.common.model.entity.BizSellOutbound;
import cn.toesbieya.jxc.common.model.entity.BizSellOutboundSub;

@ -0,0 +1,34 @@
package cn.toesbieya.jxc.doc.service;
import cn.toesbieya.jxc.common.model.entity.BizDocHistory;
import cn.toesbieya.jxc.doc.mapper.DocHistoryMapper;
import cn.toesbieya.jxc.doc.model.vo.DocHistorySearch;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import javax.annotation.Resource;
import java.util.List;
@Service
public class DocHistoryService {
@Resource
private DocHistoryMapper mapper;
public List<BizDocHistory> search(DocHistorySearch vo) {
String pid = vo.getPid();
String type = vo.getType();
String uid = vo.getUid();
String uname = vo.getUname();
Wrapper<BizDocHistory> wrapper = Wrappers.lambdaQuery(BizDocHistory.class)
.eq(!StringUtils.isEmpty(pid), BizDocHistory::getPid, pid)
.inSql(!StringUtils.isEmpty(type), BizDocHistory::getType, type)
.inSql(!StringUtils.isEmpty(uid), BizDocHistory::getUid, uid)
.like(!StringUtils.isEmpty(uname), BizDocHistory::getUname, uname)
.orderByDesc(BizDocHistory::getId);
return mapper.selectList(wrapper);
}
}

@ -1,4 +1,4 @@
package cn.toesbieya.jxc.document.service;
package cn.toesbieya.jxc.doc.service;
import cn.toesbieya.jxc.api.service.RecordApi;
import cn.toesbieya.jxc.api.service.StockApi;
@ -8,15 +8,15 @@ import cn.toesbieya.jxc.common.model.entity.*;
import cn.toesbieya.jxc.common.model.vo.Result;
import cn.toesbieya.jxc.common.model.vo.UserVo;
import cn.toesbieya.jxc.common.utils.Util;
import cn.toesbieya.jxc.document.enumeration.DocFinishEnum;
import cn.toesbieya.jxc.document.enumeration.DocHistoryEnum;
import cn.toesbieya.jxc.document.enumeration.DocStatusEnum;
import cn.toesbieya.jxc.document.mapper.*;
import cn.toesbieya.jxc.document.model.vo.DocStatusUpdate;
import cn.toesbieya.jxc.document.model.vo.PurchaseInboundExport;
import cn.toesbieya.jxc.document.model.vo.PurchaseInboundSearch;
import cn.toesbieya.jxc.document.model.vo.PurchaseInboundVo;
import cn.toesbieya.jxc.document.util.DocUtil;
import cn.toesbieya.jxc.doc.enumeration.DocFinishEnum;
import cn.toesbieya.jxc.doc.enumeration.DocHistoryEnum;
import cn.toesbieya.jxc.doc.enumeration.DocStatusEnum;
import cn.toesbieya.jxc.doc.mapper.*;
import cn.toesbieya.jxc.doc.model.vo.DocStatusUpdate;
import cn.toesbieya.jxc.doc.model.vo.PurchaseInboundExport;
import cn.toesbieya.jxc.doc.model.vo.PurchaseInboundSearch;
import cn.toesbieya.jxc.doc.model.vo.PurchaseInboundVo;
import cn.toesbieya.jxc.doc.util.DocUtil;
import cn.toesbieya.jxc.web.common.annoation.Lock;
import cn.toesbieya.jxc.web.common.annoation.UserAction;
import cn.toesbieya.jxc.web.common.model.vo.PageResult;
@ -47,7 +47,7 @@ public class PurchaseInboundService {
@Resource
private PurchaseOrderSubMapper orderSubMapper;
@Resource
private DocumentHistoryMapper historyMapper;
private DocHistoryMapper historyMapper;
@Reference
private StockApi stockApi;
@Reference
@ -61,7 +61,7 @@ public class PurchaseInboundService {
PurchaseInboundVo vo = new PurchaseInboundVo(main);
vo.setData(this.getSubById(id));
vo.setData(getSubById(id));
vo.setImageList(recordApi.getAttachmentByPid(id));
return vo;
@ -128,7 +128,7 @@ public class PurchaseInboundService {
String id = vo.getId();
String info = vo.getInfo();
if (this.rejectById(id) < 1) {
if (rejectById(id) < 1) {
return Result.fail("撤回失败,请刷新重试");
}
@ -158,7 +158,7 @@ public class PurchaseInboundService {
long now = System.currentTimeMillis();
//检查采购订单状态、入库商品是否符合订单要求
List<BizPurchaseInboundSub> subList = this.getSubById(vo.getId());
List<BizPurchaseInboundSub> subList = getSubById(id);
String err = checkOrder(pid, subList);
if (err != null) return Result.fail("通过失败," + err);
@ -179,7 +179,7 @@ public class PurchaseInboundService {
List<BizStock> stockList = new ArrayList<>();
DocFinishEnum finish = DocFinishEnum.FINISHED;
List<BizPurchaseOrderSub> orderSubList = this.getOrderSubListByPid(pid);
List<BizPurchaseOrderSub> orderSubList = getOrderSubListByPid(pid);
//生成需要入库的商品列表
for (BizPurchaseOrderSub orderSub : orderSubList) {
@ -250,7 +250,7 @@ public class PurchaseInboundService {
String id = vo.getId();
String info = vo.getInfo();
if (this.rejectById(id) < 1) {
if (rejectById(id) < 1) {
return Result.fail("驳回失败,请刷新重试");
}
@ -279,7 +279,7 @@ public class PurchaseInboundService {
}
//同时删除子表和附件
this.delSubByPid(id);
delSubByPid(id);
recordApi.delAttachmentByPid(id);
return Result.success("删除成功");
@ -291,7 +291,7 @@ public class PurchaseInboundService {
String err = checkOrder(doc.getPid(), subList);
if (err != null) return Result.fail(err);
String id = DocUtil.getDocumentID("CGRK");
String id = DocUtil.getDocId("CGRK");
if (StringUtils.isEmpty(id)) {
return Result.fail("获取单号失败");
@ -335,7 +335,7 @@ public class PurchaseInboundService {
);
//删除旧的子表
this.delSubByPid(docId);
delSubByPid(docId);
//插入新的子表
subMapper.insertBatch(doc.getData());
@ -372,7 +372,7 @@ public class PurchaseInboundService {
return "采购订单状态异常";
}
List<BizPurchaseOrderSub> orderSubList = this.getOrderSubListByPid(pid);
List<BizPurchaseOrderSub> orderSubList = getOrderSubListByPid(pid);
if (CollectionUtils.isEmpty(orderSubList)) return "没有找到采购订单的数据";

@ -1,4 +1,4 @@
package cn.toesbieya.jxc.document.service;
package cn.toesbieya.jxc.doc.service;
import cn.toesbieya.jxc.api.service.RecordApi;
import cn.toesbieya.jxc.api.vo.AttachmentOperation;
@ -8,16 +8,16 @@ import cn.toesbieya.jxc.common.model.entity.BizPurchaseOrderSub;
import cn.toesbieya.jxc.common.model.entity.RecAttachment;
import cn.toesbieya.jxc.common.model.vo.Result;
import cn.toesbieya.jxc.common.model.vo.UserVo;
import cn.toesbieya.jxc.document.enumeration.DocHistoryEnum;
import cn.toesbieya.jxc.document.enumeration.DocStatusEnum;
import cn.toesbieya.jxc.document.mapper.DocumentHistoryMapper;
import cn.toesbieya.jxc.document.mapper.PurchaseOrderMapper;
import cn.toesbieya.jxc.document.mapper.PurchaseOrderSubMapper;
import cn.toesbieya.jxc.document.model.vo.DocStatusUpdate;
import cn.toesbieya.jxc.document.model.vo.PurchaseOrderExport;
import cn.toesbieya.jxc.document.model.vo.PurchaseOrderSearch;
import cn.toesbieya.jxc.document.model.vo.PurchaseOrderVo;
import cn.toesbieya.jxc.document.util.DocUtil;
import cn.toesbieya.jxc.doc.enumeration.DocHistoryEnum;
import cn.toesbieya.jxc.doc.enumeration.DocStatusEnum;
import cn.toesbieya.jxc.doc.mapper.DocHistoryMapper;
import cn.toesbieya.jxc.doc.mapper.PurchaseOrderMapper;
import cn.toesbieya.jxc.doc.mapper.PurchaseOrderSubMapper;
import cn.toesbieya.jxc.doc.model.vo.DocStatusUpdate;
import cn.toesbieya.jxc.doc.model.vo.PurchaseOrderExport;
import cn.toesbieya.jxc.doc.model.vo.PurchaseOrderSearch;
import cn.toesbieya.jxc.doc.model.vo.PurchaseOrderVo;
import cn.toesbieya.jxc.doc.util.DocUtil;
import cn.toesbieya.jxc.web.common.annoation.Lock;
import cn.toesbieya.jxc.web.common.annoation.UserAction;
import cn.toesbieya.jxc.web.common.model.vo.PageResult;
@ -41,7 +41,7 @@ public class PurchaseOrderService {
@Resource
private PurchaseOrderSubMapper subMapper;
@Resource
private DocumentHistoryMapper historyMapper;
private DocHistoryMapper historyMapper;
@Reference
private RecordApi recordApi;
@ -53,7 +53,7 @@ public class PurchaseOrderService {
PurchaseOrderVo vo = new PurchaseOrderVo(main);
vo.setData(this.getSubById(id));
vo.setData(getSubById(id));
vo.setImageList(recordApi.getAttachmentByPid(id));
return vo;
@ -110,7 +110,6 @@ public class PurchaseOrderService {
);
result.setMsg(result.isSuccess() ? "提交成功" : "提交失败," + result.getMsg());
return result;
}
@ -121,7 +120,7 @@ public class PurchaseOrderService {
String id = vo.getId();
String info = vo.getInfo();
if (this.rejectById(id) < 1) {
if (rejectById(id) < 1) {
return Result.fail("撤回失败,请刷新重试");
}
@ -185,7 +184,7 @@ public class PurchaseOrderService {
String id = vo.getId();
String info = vo.getInfo();
if (this.rejectById(id) < 1) {
if (rejectById(id) < 1) {
return Result.fail("驳回失败,请刷新重试");
}
@ -214,14 +213,14 @@ public class PurchaseOrderService {
}
//同时删除子表和附件
this.delSubByPid(id);
delSubByPid(id);
recordApi.delAttachmentByPid(id);
return Result.success("删除成功");
}
private Result addMain(PurchaseOrderVo doc) {
String id = DocUtil.getDocumentID("CGDD");
String id = DocUtil.getDocId("CGDD");
if (StringUtils.isEmpty(id)) {
return Result.fail("获取单号失败");
@ -272,7 +271,7 @@ public class PurchaseOrderService {
);
//删除旧的子表
this.delSubByPid(docId);
delSubByPid(docId);
//插入新的子表
List<BizPurchaseOrderSub> subList = doc.getData();

@ -1,4 +1,4 @@
package cn.toesbieya.jxc.document.service;
package cn.toesbieya.jxc.doc.service;
import cn.toesbieya.jxc.api.service.RecordApi;
import cn.toesbieya.jxc.api.service.StockApi;
@ -8,16 +8,16 @@ import cn.toesbieya.jxc.common.model.vo.Result;
import cn.toesbieya.jxc.common.model.vo.StockSearch;
import cn.toesbieya.jxc.common.model.vo.StockSearchResult;
import cn.toesbieya.jxc.common.model.vo.UserVo;
import cn.toesbieya.jxc.document.enumeration.DocHistoryEnum;
import cn.toesbieya.jxc.document.enumeration.DocStatusEnum;
import cn.toesbieya.jxc.document.mapper.DocumentHistoryMapper;
import cn.toesbieya.jxc.document.mapper.SellOrderMapper;
import cn.toesbieya.jxc.document.mapper.SellOrderSubMapper;
import cn.toesbieya.jxc.document.model.vo.DocStatusUpdate;
import cn.toesbieya.jxc.document.model.vo.SellOrderExport;
import cn.toesbieya.jxc.document.model.vo.SellOrderSearch;
import cn.toesbieya.jxc.document.model.vo.SellOrderVo;
import cn.toesbieya.jxc.document.util.DocUtil;
import cn.toesbieya.jxc.doc.enumeration.DocHistoryEnum;
import cn.toesbieya.jxc.doc.enumeration.DocStatusEnum;
import cn.toesbieya.jxc.doc.mapper.DocHistoryMapper;
import cn.toesbieya.jxc.doc.mapper.SellOrderMapper;
import cn.toesbieya.jxc.doc.mapper.SellOrderSubMapper;
import cn.toesbieya.jxc.doc.model.vo.DocStatusUpdate;
import cn.toesbieya.jxc.doc.model.vo.SellOrderExport;
import cn.toesbieya.jxc.doc.model.vo.SellOrderSearch;
import cn.toesbieya.jxc.doc.model.vo.SellOrderVo;
import cn.toesbieya.jxc.doc.util.DocUtil;
import cn.toesbieya.jxc.web.common.annoation.Lock;
import cn.toesbieya.jxc.web.common.annoation.UserAction;
import cn.toesbieya.jxc.web.common.model.vo.PageResult;
@ -42,7 +42,7 @@ public class SellOrderService {
@Resource
private SellOrderSubMapper subMapper;
@Resource
private DocumentHistoryMapper historyMapper;
private DocHistoryMapper historyMapper;
@Resource
private StockApi stockApi;
@Resource
@ -56,7 +56,7 @@ public class SellOrderService {
SellOrderVo vo = new SellOrderVo(main);
vo.setData(this.getSubById(id));
vo.setData(getSubById(id));
vo.setImageList(recordApi.getAttachmentByPid(id));
return vo;
@ -123,7 +123,7 @@ public class SellOrderService {
String id = vo.getId();
String info = vo.getInfo();
if (this.rejectById(id) < 1) {
if (rejectById(id) < 1) {
return Result.fail("撤回失败,请刷新重试");
}
@ -187,7 +187,7 @@ public class SellOrderService {
String id = vo.getId();
String info = vo.getInfo();
if (this.rejectById(id) < 1) {
if (rejectById(id) < 1) {
return Result.fail("驳回失败,请刷新重试");
}
@ -216,7 +216,7 @@ public class SellOrderService {
}
//同时删除子表和附件
this.delSubByPid(id);
delSubByPid(id);
recordApi.delAttachmentByPid(id);
return Result.success("删除成功");
@ -226,7 +226,7 @@ public class SellOrderService {
String err = checkStock(doc.getData());
if (err != null) return Result.fail(err);
String id = DocUtil.getDocumentID("XSDD");
String id = DocUtil.getDocId("XSDD");
if (StringUtils.isEmpty(id)) {
return Result.fail("获取单号失败");
@ -277,7 +277,7 @@ public class SellOrderService {
);
//删除旧的子表
this.delSubByPid(docId);
delSubByPid(docId);
//插入新的子表
List<BizSellOrderSub> subList = doc.getData();
@ -305,25 +305,6 @@ public class SellOrderService {
return null;
}
//根据主表ID删除子表
private void delSubByPid(String pid) {
subMapper.delete(
Wrappers.lambdaQuery(BizSellOrderSub.class)
.eq(BizSellOrderSub::getPid, pid)
);
}
//驳回单据,只有等待审核单据的才能被驳回
private int rejectById(String id) {
return mainMapper.update(
null,
Wrappers.lambdaUpdate(BizSellOrder.class)
.set(BizSellOrder::getStatus, DocStatusEnum.DRAFT.getCode())
.eq(BizSellOrder::getId, id)
.eq(BizSellOrder::getStatus, DocStatusEnum.WAIT_VERIFY.getCode())
);
}
//添加、修改、提交、审核通过都必须检验库存是否足够
private String checkStock(List<BizSellOrderSub> list) {
List<String> cids = list.stream().map(i -> String.valueOf(i.getCid())).collect(Collectors.toList());
@ -352,6 +333,25 @@ public class SellOrderService {
return null;
}
//根据主表ID删除子表
private void delSubByPid(String pid) {
subMapper.delete(
Wrappers.lambdaQuery(BizSellOrderSub.class)
.eq(BizSellOrderSub::getPid, pid)
);
}
//驳回单据,只有等待审核单据的才能被驳回
private int rejectById(String id) {
return mainMapper.update(
null,
Wrappers.lambdaUpdate(BizSellOrder.class)
.set(BizSellOrder::getStatus, DocStatusEnum.DRAFT.getCode())
.eq(BizSellOrder::getId, id)
.eq(BizSellOrder::getStatus, DocStatusEnum.WAIT_VERIFY.getCode())
);
}
private Wrapper<BizSellOrder> getSearchCondition(SellOrderSearch vo) {
Integer customerId = vo.getCustomerId();
String customerName = vo.getCustomerName();

@ -1,4 +1,4 @@
package cn.toesbieya.jxc.document.service;
package cn.toesbieya.jxc.doc.service;
import cn.toesbieya.jxc.api.service.RecordApi;
import cn.toesbieya.jxc.api.service.StockApi;
@ -9,15 +9,15 @@ import cn.toesbieya.jxc.common.model.vo.Result;
import cn.toesbieya.jxc.common.model.vo.StockOutboundVo;
import cn.toesbieya.jxc.common.model.vo.UserVo;
import cn.toesbieya.jxc.common.utils.Util;
import cn.toesbieya.jxc.document.enumeration.DocFinishEnum;
import cn.toesbieya.jxc.document.enumeration.DocHistoryEnum;
import cn.toesbieya.jxc.document.enumeration.DocStatusEnum;
import cn.toesbieya.jxc.document.mapper.*;
import cn.toesbieya.jxc.document.model.vo.DocStatusUpdate;
import cn.toesbieya.jxc.document.model.vo.SellOutboundExport;
import cn.toesbieya.jxc.document.model.vo.SellOutboundSearch;
import cn.toesbieya.jxc.document.model.vo.SellOutboundVo;
import cn.toesbieya.jxc.document.util.DocUtil;
import cn.toesbieya.jxc.doc.enumeration.DocFinishEnum;
import cn.toesbieya.jxc.doc.enumeration.DocHistoryEnum;
import cn.toesbieya.jxc.doc.enumeration.DocStatusEnum;
import cn.toesbieya.jxc.doc.mapper.*;
import cn.toesbieya.jxc.doc.model.vo.DocStatusUpdate;
import cn.toesbieya.jxc.doc.model.vo.SellOutboundExport;
import cn.toesbieya.jxc.doc.model.vo.SellOutboundSearch;
import cn.toesbieya.jxc.doc.model.vo.SellOutboundVo;
import cn.toesbieya.jxc.doc.util.DocUtil;
import cn.toesbieya.jxc.web.common.annoation.Lock;
import cn.toesbieya.jxc.web.common.annoation.UserAction;
import cn.toesbieya.jxc.web.common.model.vo.PageResult;
@ -50,7 +50,7 @@ public class SellOutboundService {
@Resource
private SellOrderSubMapper orderSubMapper;
@Resource
private DocumentHistoryMapper historyMapper;
private DocHistoryMapper historyMapper;
@Resource
private StockApi stockApi;
@Resource
@ -64,7 +64,7 @@ public class SellOutboundService {
SellOutboundVo vo = new SellOutboundVo(main);
vo.setData(this.getSubById(id));
vo.setData(getSubById(id));
vo.setImageList(recordApi.getAttachmentByPid(id));
return vo;
@ -131,7 +131,7 @@ public class SellOutboundService {
String id = vo.getId();
String info = vo.getInfo();
if (this.rejectById(id) < 1) {
if (rejectById(id) < 1) {
return Result.fail("撤回失败,请刷新重试");
}
@ -160,8 +160,8 @@ public class SellOutboundService {
String pid = vo.getPid();
long now = System.currentTimeMillis();
List<BizSellOutboundSub> subList = this.getSubById(vo.getId());
String err = this.check(vo.getPid(), subList);
List<BizSellOutboundSub> subList = getSubById(vo.getId());
String err = check(vo.getPid(), subList);
if (err != null) return Result.fail("通过失败," + err);
if (1 > mainMapper.update(
@ -190,7 +190,7 @@ public class SellOutboundService {
//更新销售订单子表的剩余未出库数量,记录销售订单的完成情况
DocFinishEnum finish = DocFinishEnum.FINISHED;
List<BizSellOrderSub> orderSubList = this.getOrderSubListByPid(pid);
List<BizSellOrderSub> orderSubList = getOrderSubListByPid(pid);
for (BizSellOrderSub orderSub : orderSubList) {
if (orderSub.getRemainNum().equals(BigDecimal.ZERO)) {
@ -255,7 +255,7 @@ public class SellOutboundService {
String id = vo.getId();
String info = vo.getInfo();
if (this.rejectById(id) < 1) {
if (rejectById(id) < 1) {
return Result.fail("驳回失败,请刷新重试");
}
@ -284,7 +284,7 @@ public class SellOutboundService {
}
//同时删除子表和附件
this.delSubByPid(id);
delSubByPid(id);
recordApi.delAttachmentByPid(id);
return Result.success("删除成功");
@ -296,7 +296,7 @@ public class SellOutboundService {
String err = check(doc.getPid(), subList);
if (err != null) return Result.fail(err);
String id = DocUtil.getDocumentID("XSCK");
String id = DocUtil.getDocId("XSCK");
if (StringUtils.isEmpty(id)) return Result.fail("获取单号失败");
@ -338,7 +338,7 @@ public class SellOutboundService {
);
//删除旧的子表
this.delSubByPid(docId);
delSubByPid(docId);
//插入新的子表
subMapper.insertBatch(doc.getData());
@ -376,14 +376,14 @@ public class SellOutboundService {
return "销售订单状态异常";
}
List<BizSellOrderSub> orderSubList = this.getOrderSubListByPid(pid);
List<BizSellOrderSub> orderSubList = getOrderSubListByPid(pid);
if (CollectionUtils.isEmpty(orderSubList)) {
return "没有找到销售订单的数据";
}
//按分类统计商品的出库数量
Map<Integer, BigDecimal> outboundCount = this.getOutboundCount(docSubList);
Map<Integer, BigDecimal> outboundCount = getOutboundCount(docSubList);
String[] cids = new String[outboundCount.size()];

@ -1,10 +1,10 @@
package cn.toesbieya.jxc.document.util;
package cn.toesbieya.jxc.doc.util;
import cn.toesbieya.jxc.common.constant.DocumentConstant;
import cn.toesbieya.jxc.common.constant.DocConstant;
import cn.toesbieya.jxc.common.model.entity.BizDoc;
import cn.toesbieya.jxc.common.utils.DateUtil;
import cn.toesbieya.jxc.common.utils.RedisUtil;
import cn.toesbieya.jxc.document.model.vo.DocSearch;
import cn.toesbieya.jxc.doc.model.vo.DocSearch;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.google.common.io.ByteStreams;
@ -20,11 +20,11 @@ import java.util.Arrays;
@Slf4j
public class DocUtil {
private static String GET_DOCUMENT_ID_SCRIPT;
private static String GET_DOC_ID_SCRIPT;
static {
try {
GET_DOCUMENT_ID_SCRIPT = new String(ByteStreams.toByteArray(new ClassPathResource("/script/get_document_id.lua").getInputStream()));
GET_DOC_ID_SCRIPT = new String(ByteStreams.toByteArray(new ClassPathResource("/script/get_doc_id.lua").getInputStream()));
}
catch (IOException e) {
e.printStackTrace();
@ -32,17 +32,17 @@ public class DocUtil {
}
//获取单号,形如 {type}0001
public static String getDocumentID(String type) {
if (!Arrays.asList(DocumentConstant.DOCUMENT_TYPE).contains(type)) {
public static String getDocId(String type) {
if (!Arrays.asList(DocConstant.DOC_TYPE).contains(type)) {
log.error("单据类型有误,【{}】不存在", type);
return null;
}
RedisScript<Long> redisScript = new DefaultRedisScript<>(GET_DOCUMENT_ID_SCRIPT, Long.class);
RedisScript<Long> redisScript = new DefaultRedisScript<>(GET_DOC_ID_SCRIPT, Long.class);
Long result = RedisUtil.getStringRedisTemplate().execute(
redisScript,
Arrays.asList(DocumentConstant.UPDATE_DOCUMENTS_LOCK_KEY, DocumentConstant.DOCUMENT_TYPE_REDIS_KEY),
Arrays.asList(DocConstant.UPDATE_DOC_LOCK_KEY, DocConstant.DOC_TYPE_REDIS_KEY),
String.valueOf(DateUtil.getTimestampNow()),
type
);

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.toesbieya.jxc.document.mapper.PurchaseInboundMapper">
<select id="export" resultType="cn.toesbieya.jxc.document.model.vo.PurchaseInboundExport">
<mapper namespace="cn.toesbieya.jxc.doc.mapper.PurchaseInboundMapper">
<select id="export" resultType="cn.toesbieya.jxc.doc.model.vo.PurchaseInboundExport">
select id,
pid,
cname,

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.toesbieya.jxc.document.mapper.PurchaseInboundSubMapper">
<mapper namespace="cn.toesbieya.jxc.doc.mapper.PurchaseInboundSubMapper">
<insert id="insertBatch" parameterType="cn.toesbieya.jxc.common.model.entity.BizPurchaseInboundSub">
INSERT INTO biz_purchase_inbound_sub(pid, cid, cname, num) VALUES
insert into biz_purchase_inbound_sub(pid, cid, cname, num) values
<foreach collection="list" item="i" separator=",">
(#{i.pid}, #{i.cid}, #{i.cname}, #{i.num})
</foreach>

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.toesbieya.jxc.document.mapper.PurchaseOrderMapper">
<select id="export" resultType="cn.toesbieya.jxc.document.model.vo.PurchaseOrderExport">
<mapper namespace="cn.toesbieya.jxc.doc.mapper.PurchaseOrderMapper">
<select id="export" resultType="cn.toesbieya.jxc.doc.model.vo.PurchaseOrderExport">
select id,
sname,
cname,

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.toesbieya.jxc.document.mapper.PurchaseOrderSubMapper">
<mapper namespace="cn.toesbieya.jxc.doc.mapper.PurchaseOrderSubMapper">
<insert id="insertBatch" parameterType="cn.toesbieya.jxc.common.model.entity.BizPurchaseOrderSub">
INSERT INTO biz_purchase_order_sub(pid, cid, cname, num, price, remain_num) VALUES
insert into biz_purchase_order_sub(pid, cid, cname, num, price, remain_num) values
<foreach collection="list" item="i" separator=",">
(#{i.pid}, #{i.cid}, #{i.cname}, #{i.num}, #{i.price}, #{i.remainNum})
</foreach>

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.toesbieya.jxc.document.mapper.SellOrderMapper">
<select id="export" resultType="cn.toesbieya.jxc.document.model.vo.SellOrderExport">
<mapper namespace="cn.toesbieya.jxc.doc.mapper.SellOrderMapper">
<select id="export" resultType="cn.toesbieya.jxc.doc.model.vo.SellOrderExport">
select id,
customer_name,
cname,

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.toesbieya.jxc.document.mapper.SellOrderSubMapper">
<mapper namespace="cn.toesbieya.jxc.doc.mapper.SellOrderSubMapper">
<insert id="insertBatch" parameterType="cn.toesbieya.jxc.common.model.entity.BizSellOrderSub">
INSERT INTO biz_sell_order_sub(pid, cid, cname, num, price, remain_num) VALUES
insert into biz_sell_order_sub(pid, cid, cname, num, price, remain_num) values
<foreach collection="list" item="i" separator=",">
(#{i.pid}, #{i.cid}, #{i.cname}, #{i.num}, #{i.price}, #{i.remainNum})
</foreach>

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.toesbieya.jxc.document.mapper.SellOutboundMapper">
<select id="export" resultType="cn.toesbieya.jxc.document.model.vo.SellOutboundExport">
<mapper namespace="cn.toesbieya.jxc.doc.mapper.SellOutboundMapper">
<select id="export" resultType="cn.toesbieya.jxc.doc.model.vo.SellOutboundExport">
select id,
pid,
cname,

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.toesbieya.jxc.document.mapper.SellOutboundSubMapper">
<mapper namespace="cn.toesbieya.jxc.doc.mapper.SellOutboundSubMapper">
<insert id="insertBatch" parameterType="cn.toesbieya.jxc.common.model.entity.BizSellOutboundSub">
INSERT INTO biz_sell_outbound_sub(pid, sid, cid, cname, num) VALUES
insert into biz_sell_outbound_sub(pid, sid, cid, cname, num) values
<foreach collection="list" item="i" separator=",">
(#{i.pid}, #{i.sid}, #{i.cid}, #{i.cname}, #{i.num})
</foreach>

@ -3,37 +3,36 @@ package cn.toesbieya.jxc.message.controller;
import cn.toesbieya.jxc.common.model.entity.Msg;
import cn.toesbieya.jxc.common.model.entity.SysUser;
import cn.toesbieya.jxc.common.model.vo.Result;
import cn.toesbieya.jxc.common.utils.SessionUtil;
import cn.toesbieya.jxc.message.constant.MsgConstant;
import cn.toesbieya.jxc.message.model.vo.MsgSearch;
import cn.toesbieya.jxc.message.service.MsgManageService;
import cn.toesbieya.jxc.message.service.ManageService;
import cn.toesbieya.jxc.web.common.utils.SessionUtil;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
@RestController
@RequestMapping("manage")
public class MsgManageController {
public class ManageController {
@Resource
private MsgManageService msgManageService;
private ManageService service;
@RequestMapping("search")
public Result search(@RequestBody MsgSearch vo) {
return Result.success(msgManageService.search(vo));
return Result.success(service.search(vo));
}
@PostMapping("add")
public Result add(HttpServletRequest request, @RequestBody Msg msg) {
public Result add(@RequestBody Msg msg) {
String errMsg = validateAdd(msg);
if (errMsg != null) return Result.fail(errMsg);
msg.setId(null);
SysUser user = SessionUtil.get(request);
SysUser user = SessionUtil.get();
setAddInfo(user, msg);
return msgManageService.add(msg);
return service.add(msg);
}
@PostMapping("update")
@ -42,11 +41,11 @@ public class MsgManageController {
if (errMsg == null) errMsg = validateUpdate(msg);
if (errMsg != null) return Result.fail(errMsg);
return msgManageService.update(msg);
return service.update(msg);
}
@PostMapping("publish")
public Result publish(HttpServletRequest request, @RequestBody Msg msg) {
public Result publish(@RequestBody Msg msg) {
boolean isFirstCreate = msg.getId() == null;
String errMsg = validateAdd(msg);
@ -55,7 +54,7 @@ public class MsgManageController {
}
if (errMsg != null) return Result.fail(errMsg);
SysUser user = SessionUtil.get(request);
SysUser user = SessionUtil.get();
if (isFirstCreate) setAddInfo(user, msg);
msg.setPid(user.getId());
@ -63,25 +62,25 @@ public class MsgManageController {
msg.setPtime(System.currentTimeMillis());
msg.setStatus(MsgConstant.STATUS_PUBLISHED);
return msgManageService.publish(msg);
return service.publish(msg);
}
@PostMapping("withdraw")
public Result withdraw(HttpServletRequest request, @RequestBody Msg msg) {
public Result withdraw(@RequestBody Msg msg) {
if (msg.getId() == null) return Result.fail("参数错误");
SysUser user = SessionUtil.get(request);
SysUser user = SessionUtil.get();
msg.setWid(user.getId());
msg.setWname(user.getName());
msg.setWtime(System.currentTimeMillis());
msg.setStatus(MsgConstant.STATUS_WITHDREW);
return msgManageService.withdraw(msg);
return service.withdraw(msg);
}
@GetMapping("del")
public Result del(@RequestParam Integer id, @RequestParam String title) {
return msgManageService.del(id, title);
return service.del(id, title);
}
private void setAddInfo(SysUser user, Msg msg) {

@ -1,36 +0,0 @@
package cn.toesbieya.jxc.message.controller;
import cn.toesbieya.jxc.common.model.entity.SysUser;
import cn.toesbieya.jxc.common.model.vo.Result;
import cn.toesbieya.jxc.common.utils.SessionUtil;
import cn.toesbieya.jxc.message.model.vo.MsgPersonalSearch;
import cn.toesbieya.jxc.message.service.MsgUserService;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
@RestController
@RequestMapping("user")
public class MsgUserController {
@Resource
private MsgUserService msgUserService;
@PostMapping("search")
public Result search(HttpServletRequest request, @RequestBody MsgPersonalSearch vo) {
SysUser user = SessionUtil.get(request);
vo.setUid(user.getId());
vo.setCtime(user.getCtime());
return Result.success(msgUserService.search(vo));
}
@GetMapping("read")
public Result read(HttpServletRequest request, @RequestParam Integer id) {
return msgUserService.read(SessionUtil.get(request), id);
}
@GetMapping("readAll")
public Result readAll(HttpServletRequest request) {
return msgUserService.readAll(SessionUtil.get(request));
}
}

@ -0,0 +1,35 @@
package cn.toesbieya.jxc.message.controller;
import cn.toesbieya.jxc.common.model.entity.SysUser;
import cn.toesbieya.jxc.common.model.vo.Result;
import cn.toesbieya.jxc.message.model.vo.MsgPersonalSearch;
import cn.toesbieya.jxc.message.service.UserService;
import cn.toesbieya.jxc.web.common.utils.SessionUtil;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@RestController
@RequestMapping("user")
public class UserController {
@Resource
private UserService service;
@PostMapping("search")
public Result search(@RequestBody MsgPersonalSearch vo) {
SysUser user = SessionUtil.get();
vo.setUid(user.getId());
vo.setCtime(user.getCtime());
return Result.success(service.search(vo));
}
@GetMapping("read")
public Result read(@RequestParam Integer id) {
return service.read(SessionUtil.get(), id);
}
@GetMapping("readAll")
public Result readAll() {
return service.readAll(SessionUtil.get());
}
}

@ -22,9 +22,9 @@ import java.util.List;
import java.util.stream.Collectors;
@Service
public class MsgManageService {
public class ManageService {
@Resource
private MsgMapper msgMapper;
private MsgMapper mapper;
public PageResult<Msg> search(MsgSearch vo) {
String title = vo.getTitle();
@ -39,20 +39,18 @@ public class MsgManageService {
.orderByDesc(Msg::getId);
PageHelper.startPage(vo.getPage(), vo.getPageSize());
List<Msg> list = msgMapper.selectList(wrapper);
return new PageResult<>(list);
return new PageResult<>(mapper.selectList(wrapper));
}
@UserAction("'添加消息:'+#msg.title")
public Result add(Msg msg) {
msgMapper.insert(msg);
mapper.insert(msg);
return Result.success("添加成功", msg);
}
@UserAction("'修改消息:'+#msg.title")
public Result update(Msg msg) {
int rows = msgMapper.update(
int rows = mapper.update(
null,
Wrappers.lambdaUpdate(Msg.class)
.set(Msg::getTitle, msg.getTitle())
@ -110,7 +108,7 @@ public class MsgManageService {
@UserAction("'撤回消息:'+#msg.title")
public Result withdraw(Msg msg) {
int rows = msgMapper.update(
int rows = mapper.update(
null,
Wrappers.lambdaUpdate(Msg.class)
.set(Msg::getStatus, msg.getStatus())
@ -125,7 +123,7 @@ public class MsgManageService {
@UserAction("'删除消息:'+#title")
public Result del(int id, String title) {
int rows = msgMapper.deleteById(id);
int rows = mapper.deleteById(id);
return rows > 0 ? Result.success("删除成功") : Result.fail("删除失败,请刷新重试");
}
}

@ -17,7 +17,7 @@ import javax.annotation.Resource;
import java.util.List;
@Service
public class MsgUserService {
public class UserService {
@Resource
private MsgMapper msgMapper;
@Resource
@ -31,11 +31,13 @@ public class MsgUserService {
public Result read(SysUser user, int id) {
//如果该消息已读,直接返回
if (0 != msgStateMapper.selectCount(
if (!msgStateMapper
.selectCount(
Wrappers.lambdaQuery(MsgState.class)
.eq(MsgState::getId, id)
.eq(MsgState::getMid, user.getId())
)) {
)
.equals(0)) {
return Result.success();
}

@ -1,13 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cn.toesbieya.jxc.message.mapper.MsgMapper">
<sql id="unreadCondition">
where status = 1
and ptime <![CDATA[ >= ]]> #{ctime}
and (broadcast = 1 or broadcast = 0 and find_in_set(recipient, #{uid}))
and id not in (select mid from msg_state where uid = #{uid})
</sql>
<select id="getReadByUser" parameterType="cn.toesbieya.jxc.message.model.vo.MsgPersonalSearch"
resultType="cn.toesbieya.jxc.common.model.entity.Msg">
select a.id,
@ -31,7 +24,10 @@
pname,
ptime
from msg
<include refid="unreadCondition"/>
where status = 1
and ptime <![CDATA[ >= ]]> #{ctime}
and (broadcast = 1 or broadcast = 0 and find_in_set(recipient, #{uid}))
and id not in (select mid from msg_state where uid = #{uid})
order by id desc
</select>
</mapper>

@ -15,7 +15,7 @@
<module>statistic</module>
<module>system</module>
<module>stock</module>
<module>document</module>
<module>doc</module>
</modules>
<modelVersion>4.0.0</modelVersion>

@ -15,15 +15,15 @@ import javax.annotation.Resource;
@RequestMapping("record")
public class RecordController {
@Resource
private RecordService recordService;
private RecordService service;
@PostMapping("searchLoginHistory")
public Result searchLoginHistory(@RequestBody LoginHistorySearch vo) {
return Result.success(recordService.searchLoginHistory(vo));
return Result.success(service.searchLoginHistory(vo));
}
@PostMapping("searchUserAction")
public Result searchUserAction(@RequestBody UserActionSearch vo) {
return Result.success(recordService.searchUserAction(vo));
return Result.success(service.searchUserAction(vo));
}
}

@ -2,12 +2,9 @@ package cn.toesbieya.jxc.record.mapper;
import cn.toesbieya.jxc.common.model.entity.RecAttachment;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface RecAttachmentMapper extends BaseMapper<RecAttachment> {
int insertBatch(List<RecAttachment> list);
List<String> getUrlByPid(@Param("pid") String pid);
}

@ -19,11 +19,13 @@ import com.github.pagehelper.PageHelper;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import javax.annotation.Resource;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
@Service
@org.apache.dubbo.config.annotation.Service
@ -58,8 +60,7 @@ public class RecordService implements RecordApi {
.orderByDesc(RecLoginHistory::getTime);
PageHelper.startPage(vo.getPage(), vo.getPageSize());
List<RecLoginHistory> list = loginHistoryMapper.selectList(wrapper);
return new PageResult<>(list);
return new PageResult<>(loginHistoryMapper.selectList(wrapper));
}
public PageResult<RecUserAction> searchUserAction(UserActionSearch vo) {
@ -83,8 +84,7 @@ public class RecordService implements RecordApi {
.orderByDesc(RecUserAction::getTime);
PageHelper.startPage(vo.getPage(), vo.getPageSize());
List<RecUserAction> list = userActionMapper.selectList(wrapper);
return new PageResult<>(list);
return new PageResult<>(userActionMapper.selectList(wrapper));
}
public List<RecAttachment> getAttachmentByPid(String pid) {
@ -104,29 +104,31 @@ public class RecordService implements RecordApi {
List<RecAttachment> uploadImageList = vo.getUploadImageList();
List<String> deleteImageList = vo.getDeleteImageList();
if (uploadImageList != null && uploadImageList.size() > 0) {
if (!CollectionUtils.isEmpty(uploadImageList)) {
attachmentMapper.insertBatch(uploadImageList);
}
if (deleteImageList != null && deleteImageList.size() > 0) {
if (!CollectionUtils.isEmpty(deleteImageList)) {
attachmentMapper.delete(
Wrappers.lambdaQuery(RecAttachment.class)
.in(RecAttachment::getUrl, deleteImageList)
);
qiniuUtil.deleteBatch(deleteImageList.toArray(new String[0]));
}
}
@Transactional(rollbackFor = Exception.class)
public void delAttachmentByPid(String pid) {
List<String> urls = attachmentMapper.getUrlByPid(pid);
List<RecAttachment> list = attachmentMapper.selectList(
Wrappers.lambdaQuery(RecAttachment.class)
.eq(RecAttachment::getPid, pid)
);
if (urls.size() == 0) return;
if (CollectionUtils.isEmpty(list)) return;
attachmentMapper.delete(Wrappers.lambdaQuery(RecAttachment.class).eq(RecAttachment::getPid, pid));
qiniuUtil.deleteBatch(urls.toArray(new String[0]));
List<String> urls = list.stream().map(RecAttachment::getUrl).collect(Collectors.toList());
qiniuUtil.deleteBatch(urls);
}
@Async("dbInsertExecutor")
@ -134,16 +136,13 @@ public class RecordService implements RecordApi {
if (StringUtils.isEmpty(history.getAddress())) {
history.setAddress(IpUtil.getIpAddress(history.getIp()));
}
history.setId(null);
loginHistoryMapper.insert(history);
}
@Async("dbInsertExecutor")
public void insertUserAction(RecUserAction action) {
action.setId(null);
userActionMapper.insert(action);
}
}

@ -3,15 +3,9 @@
<mapper namespace="cn.toesbieya.jxc.record.mapper.RecAttachmentMapper">
<insert id="insertBatch" parameterType="cn.toesbieya.jxc.common.model.entity.RecAttachment">
insert into rec_attachment (pid, name, time, sort, url,size)
VALUES
values
<foreach collection="list" item="i" separator=",">
(#{i.pid}, #{i.name}, #{i.time}, #{i.sort}, #{i.url},#{i.size})
</foreach>
</insert>
<select id="getUrlByPid" resultType="java.lang.String">
select url
from rec_attachment
where pid = #{pid}
</select>
</mapper>

@ -12,25 +12,25 @@ import javax.annotation.Resource;
@RequestMapping("statistic")
public class StatisticController {
@Resource
private StatisticService statisticService;
private StatisticService service;
@GetMapping("getFourBlock")
public Result getFourBlock() {
return Result.success(statisticService.getFourBlock());
return Result.success(service.getFourBlock());
}
@GetMapping("getDailyProfitStat")
public Result getDailyProfitStat() {
return Result.success(statisticService.getDailyProfitStat());
return Result.success(service.getDailyProfitStat());
}
@GetMapping("getDailyFinishOrder")
public Result getDailyFinishOrder() {
return Result.success(statisticService.getDailyFinishOrder());
return Result.success(service.getDailyFinishOrder());
}
@GetMapping("getTotalProfitGoods")
public Result getTotalProfitGoods() {
return Result.success(statisticService.getTotalProfitGoods());
return Result.success(service.getTotalProfitGoods());
}
}

@ -21,7 +21,7 @@ import java.util.Map;
@Slf4j
public class StatisticService {
@Resource
private StatisticMapper statisticMapper;
private StatisticMapper mapper;
//获取首页四个色块的数据,在线用户、今日采购额、今日销售额、今日毛利润
public FourBlockStat getFourBlock() {
@ -29,8 +29,8 @@ public class StatisticService {
FourBlockStat stat = new FourBlockStat();
BigDecimal purchase = statisticMapper.getPurchaseOrderDailyTotalPurchasePrice(now, null);
BigDecimal sell = statisticMapper.getSellOrderDailyTotalPurchasePrice(now, null);
BigDecimal purchase = mapper.getPurchaseOrderDailyTotalPurchasePrice(now, null);
BigDecimal sell = mapper.getSellOrderDailyTotalPurchasePrice(now, null);
long onlineNum = WebSocketUtil.getOnlineUserNum();
@ -45,25 +45,25 @@ public class StatisticService {
//获取历史七天的每日采购额、销售额、毛利润
public List<StatProfitTotal> getDailyProfitStat() {
long lastWeekDay = DateUtil.getTimestampBeforeNow(7);
return statisticMapper.searchTotalProfit(lastWeekDay, null);
return mapper.searchTotalProfit(lastWeekDay, null);
}
//获取历史七天已完成的采购订单数、销售订单数
public List<StatFinishOrder> getDailyFinishOrder() {
long lastWeekDay = DateUtil.getTimestampBeforeNow(7);
return statisticMapper.searchFinishOrder(lastWeekDay, null);
return mapper.searchFinishOrder(lastWeekDay, null);
}
//获取每种商品的采购总额、销售总额、总毛利
public Collection<StatProfitGoods> getTotalProfitGoods() {
//获取历史的信息
List<StatProfitGoods> history = statisticMapper.getHistoryTotalProfitGoods();
List<StatProfitGoods> history = mapper.getHistoryTotalProfitGoods();
//获取今日的信息
long today = DateUtil.getTimestampNow();
long nextDay = DateUtil.getTimestampBeforeNow(-1);
history.addAll(statisticMapper.getPurchaseOrderDailyProfitGoods(today, nextDay));
history.addAll(statisticMapper.getSellOrderDailyProfitGoods(today, nextDay));
history.addAll(mapper.getPurchaseOrderDailyProfitGoods(today, nextDay));
history.addAll(mapper.getSellOrderDailyProfitGoods(today, nextDay));
Map<Integer, StatProfitGoods> map = new HashMap<>(history.size());

@ -13,27 +13,27 @@ import javax.servlet.http.HttpServletResponse;
@RequestMapping("stock/current")
public class StockController {
@Resource
private StockService stockService;
private StockService service;
@PostMapping("search")
public Result search(@RequestBody StockSearch vo) {
return Result.success(stockService.search(vo));
return Result.success(service.search(vo));
}
@GetMapping("getDetail")
public Result getDetail(@RequestParam String cids) {
if (StringUtils.isEmpty(cids)) return Result.fail("参数错误");
return Result.success(stockService.getDetail(cids));
return Result.success(service.getDetail(cids));
}
@GetMapping("getDetailById")
public Result getDetailById(@RequestParam String ids) {
if (StringUtils.isEmpty(ids)) return Result.fail("参数错误");
return Result.success(stockService.getDetailById(ids));
return Result.success(service.getDetailById(ids));
}
@PostMapping("export")
public void export(@RequestBody StockSearch vo, HttpServletResponse response) throws Exception {
stockService.export(vo, response);
service.export(vo, response);
}
}

@ -28,7 +28,7 @@ import java.util.List;
@org.apache.dubbo.config.annotation.Service
public class StockService implements StockApi {
@Resource
private StockMapper stockMapper;
private StockMapper mapper;
private final ExcelUtil.CommonMergeOptions mergeOptions =
new ExcelUtil.CommonMergeOptions(
@ -39,43 +39,43 @@ public class StockService implements StockApi {
public PageResult<StockSearchResult> search(StockSearch vo) {
PageHelper.startPage(vo.getPage(), vo.getPageSize());
return new PageResult<>(this.getByCondition(vo));
return new PageResult<>(getByCondition(vo));
}
@Override
public List<StockSearchResult> getByCondition(StockSearch vo) {
return mapper.search(getSearchCondition(vo));
}
@Override
@SuppressWarnings("unchecked")
public List<BizStock> getDetail(String cids) {
return stockMapper.selectList(
return mapper.selectList(
Wrappers.lambdaQuery(BizStock.class)
.inSql(!StringUtils.isEmpty(cids), BizStock::getCid, cids)
.ge(BizStock::getNum, 0)
.gt(BizStock::getNum, 0)
.orderByDesc(BizStock::getCgddid, BizStock::getCgrkid)
);
}
public List<BizStock> getDetailById(String ids) {
return stockMapper.selectList(
return mapper.selectList(
Wrappers.lambdaQuery(BizStock.class)
.inSql(!StringUtils.isEmpty(ids), BizStock::getId, ids)
);
}
public void export(StockSearch vo, HttpServletResponse response) throws Exception {
List<StockExport> list = stockMapper.export(getSearchCondition(vo));
List<StockExport> list = mapper.export(getSearchCondition(vo));
ExcelUtil.export(list, response, "库存导出", mergeOptions);
}
@Override
public List<StockSearchResult> getByCondition(StockSearch vo) {
return stockMapper.search(getSearchCondition(vo));
}
@Override
public void inbound(List<BizStock> list) {
if (CollectionUtils.isEmpty(list)) {
throw new JsonResultException("入库失败,没有需要入库的商品");
}
stockMapper.insertBatch(list);
mapper.insertBatch(list);
}
@Override
@ -85,7 +85,7 @@ public class StockService implements StockApi {
throw new JsonResultException("出库失败,没有需要出库的商品");
}
for (StockOutboundVo vo : list) {
int rows = stockMapper.outbound(vo.getId(), vo.getNum());
int rows = mapper.outbound(vo.getId(), vo.getNum());
if (rows < 1) {
throw new JsonResultException("出库失败");
}

@ -3,7 +3,7 @@ package cn.toesbieya.jxc.system.controller;
import cn.toesbieya.jxc.common.model.entity.SysCategory;
import cn.toesbieya.jxc.common.model.vo.Result;
import cn.toesbieya.jxc.system.model.vo.CategorySearch;
import cn.toesbieya.jxc.system.service.SysCategoryService;
import cn.toesbieya.jxc.system.service.CategoryService;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
@ -11,18 +11,18 @@ import javax.annotation.Resource;
@RestController
@RequestMapping("category")
public class SysCategoryController {
public class CategoryController {
@Resource
private SysCategoryService categoryService;
private CategoryService service;
@GetMapping("getAll")
public Result getAll() {
return Result.success(categoryService.getAll());
return Result.success(service.getAll());
}
@PostMapping("search")
public Result search(@RequestBody CategorySearch vo) {
return Result.success(categoryService.search(vo));
return Result.success(service.search(vo));
}
@PostMapping("add")
@ -33,7 +33,7 @@ public class SysCategoryController {
category.setId(null);
category.setCtime(System.currentTimeMillis());
return categoryService.add(category);
return service.add(category);
}
@PostMapping("update")
@ -41,7 +41,7 @@ public class SysCategoryController {
String errMsg = validateCategoryUpdateParam(category);
if (errMsg != null) return Result.fail(errMsg);
return categoryService.update(category);
return service.update(category);
}
@PostMapping("del")
@ -49,7 +49,7 @@ public class SysCategoryController {
if (category.getId() == null) {
return Result.fail("删除失败,参数错误");
}
return categoryService.del(category);
return service.del(category);
}
private String validateCategoryCreateParam(SysCategory category) {

@ -2,7 +2,7 @@ package cn.toesbieya.jxc.system.controller;
import cn.toesbieya.jxc.common.model.entity.SysCustomer;
import cn.toesbieya.jxc.common.model.vo.Result;
import cn.toesbieya.jxc.system.service.SysCustomerService;
import cn.toesbieya.jxc.system.service.CustomerService;
import cn.toesbieya.jxc.system.model.vo.CustomerSearch;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
@ -11,18 +11,18 @@ import javax.annotation.Resource;
@RestController
@RequestMapping("customer")
public class SysCustomerController {
public class CustomerController {
@Resource
private SysCustomerService customerService;
private CustomerService service;
@GetMapping("getLimitRegion")
public Result getLimitRegion() {
return Result.success(customerService.getLimitRegion());
return Result.success(service.getLimitRegion());
}
@PostMapping("search")
public Result search(@RequestBody CustomerSearch vo) {
return Result.success(customerService.search(vo));
return Result.success(service.search(vo));
}
@PostMapping("add")
@ -32,7 +32,7 @@ public class SysCustomerController {
customer.setId(null);
customer.setCtime(System.currentTimeMillis());
return customerService.add(customer);
return service.add(customer);
}
@PostMapping("update")
@ -40,13 +40,13 @@ public class SysCustomerController {
String errMsg = validateUpdateParam(customer);
if (errMsg != null) return Result.fail("修改失败," + errMsg);
return customerService.update(customer);
return service.update(customer);
}
@PostMapping("del")
public Result del(@RequestBody SysCustomer customer) {
if (customer.getId() == null) return Result.fail("删除失败,参数错误");
return customerService.del(customer);
return service.del(customer);
}
private String validateCreateParam(SysCustomer customer) {

@ -4,7 +4,7 @@ import cn.toesbieya.jxc.common.enumeration.GeneralStatusEnum;
import cn.toesbieya.jxc.common.model.entity.SysDepartment;
import cn.toesbieya.jxc.common.model.vo.DepartmentVo;
import cn.toesbieya.jxc.common.model.vo.Result;
import cn.toesbieya.jxc.system.service.SysDepartmentService;
import cn.toesbieya.jxc.system.service.DepartmentService;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
@ -14,13 +14,13 @@ import java.util.stream.Collectors;
@RestController
@RequestMapping("department")
public class SysDepartmentController {
public class DepartmentController {
@Resource
private SysDepartmentService departmentService;
private DepartmentService service;
@GetMapping("get")
public Result get(boolean all) {
List<DepartmentVo> list = departmentService.getAll();
List<DepartmentVo> list = service.getAll();
if (!all) {
list = list
.stream()
@ -40,7 +40,7 @@ public class SysDepartmentController {
department.setId(null);
return departmentService.add(department);
return service.add(department);
}
@PostMapping("update")
@ -52,7 +52,7 @@ public class SysDepartmentController {
return Result.fail("修改失败,参数错误");
}
return departmentService.update(department);
return service.update(department);
}
@PostMapping("del")
@ -61,6 +61,6 @@ public class SysDepartmentController {
return Result.fail("删除失败,参数错误");
}
return departmentService.del(department);
return service.del(department);
}
}

@ -0,0 +1,30 @@
package cn.toesbieya.jxc.system.controller;
import cn.toesbieya.jxc.common.model.entity.SysResource;
import cn.toesbieya.jxc.common.model.vo.Result;
import cn.toesbieya.jxc.system.service.ResourceService;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@RestController
@RequestMapping("resource")
public class ResourceController {
@Resource
private ResourceService service;
@GetMapping("getAll")
public Result getAll() {
return Result.success(service.getAll());
}
@PostMapping("update")
public Result update(@RequestBody SysResource resource) {
if (resource.getId() == null
|| resource.getTotalRate() == null
|| resource.getIpRate() == null) {
return Result.fail("参数错误");
}
return service.update(resource);
}
}

@ -3,46 +3,45 @@ package cn.toesbieya.jxc.system.controller;
import cn.toesbieya.jxc.common.model.entity.SysRole;
import cn.toesbieya.jxc.common.model.entity.SysUser;
import cn.toesbieya.jxc.common.model.vo.Result;
import cn.toesbieya.jxc.common.utils.SessionUtil;
import cn.toesbieya.jxc.system.model.vo.RoleSearch;
import cn.toesbieya.jxc.system.service.SysRoleService;
import cn.toesbieya.jxc.system.service.RoleService;
import cn.toesbieya.jxc.web.common.utils.SessionUtil;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
@RequestMapping("role")
@RestController
public class SysRoleController {
public class RoleController {
@Resource
private SysRoleService roleService;
private RoleService service;
@GetMapping("get")
public Result get() {
return Result.success(roleService.get());
return Result.success(service.get());
}
@PostMapping("search")
public Result search(@RequestBody RoleSearch vo) {
return Result.success(roleService.search(vo));
return Result.success(service.search(vo));
}
@PostMapping("add")
public Result add(HttpServletRequest request, @RequestBody SysRole role) {
public Result add(@RequestBody SysRole role) {
if (StringUtils.isEmpty(role.getName())
|| role.getStatus() == null) {
return Result.fail("添加失败,参数错误");
}
SysUser user = SessionUtil.get(request);
SysUser user = SessionUtil.get();
role.setId(null);
role.setCid(user.getId());
role.setCname(user.getName());
role.setCtime(System.currentTimeMillis());
return roleService.add(role);
return service.add(role);
}
@PostMapping("update")
@ -53,7 +52,7 @@ public class SysRoleController {
return Result.fail("修改失败,参数错误");
}
return roleService.update(role);
return service.update(role);
}
@PostMapping("del")
@ -62,6 +61,6 @@ public class SysRoleController {
return Result.fail("删除失败,参数错误");
}
return roleService.del(role);
return service.del(role);
}
}

@ -3,7 +3,7 @@ package cn.toesbieya.jxc.system.controller;
import cn.toesbieya.jxc.common.model.entity.SysSupplier;
import cn.toesbieya.jxc.common.model.vo.Result;
import cn.toesbieya.jxc.system.model.vo.SupplierSearch;
import cn.toesbieya.jxc.system.service.SysSupplierService;
import cn.toesbieya.jxc.system.service.SupplierService;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
@ -11,18 +11,18 @@ import javax.annotation.Resource;
@RestController
@RequestMapping("supplier")
public class SysSupplierController {
public class SupplierController {
@Resource
private SysSupplierService supplierService;
private SupplierService service;
@GetMapping("getLimitRegion")
public Result getLimitRegion() {
return Result.success(supplierService.getLimitRegion());
return Result.success(service.getLimitRegion());
}
@PostMapping("search")
public Result search(@RequestBody SupplierSearch vo) {
return Result.success(supplierService.search(vo));
return Result.success(service.search(vo));
}
@PostMapping("add")
@ -32,21 +32,19 @@ public class SysSupplierController {
supplier.setId(null);
supplier.setCtime(System.currentTimeMillis());
return supplierService.add(supplier);
return service.add(supplier);
}
@PostMapping("update")
public Result update(@RequestBody SysSupplier supplier) {
String errMsg = validateUpdateParam(supplier);
if (errMsg != null) return Result.fail("修改失败," + errMsg);
return supplierService.update(supplier);
return errMsg == null ? service.update(supplier) : Result.fail("修改失败," + errMsg);
}
@PostMapping("del")
public Result del(@RequestBody SysSupplier supplier) {
if (supplier.getId() == null) return Result.fail("删除失败,参数错误");
return supplierService.del(supplier);
return service.del(supplier);
}
private String validateCreateParam(SysSupplier supplier) {

@ -1,26 +0,0 @@
package cn.toesbieya.jxc.system.controller;
import cn.toesbieya.jxc.common.model.vo.Result;
import cn.toesbieya.jxc.system.service.SysResourceService;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
@RestController
@RequestMapping("resource")
public class SysResourceController {
@Resource
private SysResourceService resourceService;
@GetMapping("get")
public Result get() {
return Result.success(resourceService.get());
}
@GetMapping("getAll")
public Result getAll() {
return Result.success(resourceService.getAll());
}
}

@ -4,7 +4,7 @@ import cn.toesbieya.jxc.common.model.entity.RecUserAction;
import cn.toesbieya.jxc.common.model.entity.SysUser;
import cn.toesbieya.jxc.common.model.vo.Result;
import cn.toesbieya.jxc.system.model.vo.UserSearch;
import cn.toesbieya.jxc.system.service.SysUserService;
import cn.toesbieya.jxc.system.service.UserService;
import cn.toesbieya.jxc.web.common.utils.ThreadUtil;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.PostMapping;
@ -18,13 +18,13 @@ import java.util.stream.Collectors;
@RestController
@RequestMapping("user")
public class SysUserController {
public class UserController {
@Resource
private SysUserService userService;
private UserService service;
@PostMapping("search")
public Result search(@RequestBody UserSearch vo) {
return Result.success(userService.search(vo));
return Result.success(service.search(vo));
}
@PostMapping("add")
@ -33,7 +33,7 @@ public class SysUserController {
if (errMsg != null) {
return Result.fail(errMsg);
}
return userService.add(user);
return service.add(user);
}
@PostMapping("update")
@ -42,7 +42,7 @@ public class SysUserController {
if (errMsg != null) {
return Result.fail(errMsg);
}
return userService.update(user);
return service.update(user);
}
@PostMapping("del")
@ -50,7 +50,7 @@ public class SysUserController {
if (user.getId() == null) {
return Result.fail("删除失败");
}
return userService.del(user);
return service.del(user);
}
@PostMapping("kick")
@ -62,7 +62,7 @@ public class SysUserController {
List<String> names = users.stream().map(SysUser::getName).collect(Collectors.toList());
action.setAction("踢出用户:【" + String.join(",", names) + "】");
return userService.kick(users);
return service.kick(users);
}
@PostMapping("resetPwd")
@ -70,7 +70,7 @@ public class SysUserController {
if (user.getId() == null || StringUtils.isEmpty(user.getName())) {
return Result.fail("参数错误");
}
return userService.resetPwd(user);
return service.resetPwd(user);
}
private String validateUserCreateParam(SysUser user) {

@ -16,12 +16,12 @@ import java.util.List;
@Service
@Slf4j
public class SysCategoryService {
public class CategoryService {
@Resource
private SysCategoryMapper categoryMapper;
private SysCategoryMapper mapper;
public List<SysCategory> getAll() {
return categoryMapper.selectList(null);
return mapper.selectList(null);
}
public List<SysCategory> search(CategorySearch vo) {
@ -34,7 +34,7 @@ public class SysCategoryService {
Long startTime = vo.getStartTime();
Long endTime = vo.getEndTime();
return categoryMapper.selectList(
return mapper.selectList(
Wrappers.lambdaQuery(SysCategory.class)
.eq(id != null, SysCategory::getId, id)
.inSql(!StringUtils.isEmpty(ids), SysCategory::getId, ids)
@ -54,7 +54,7 @@ public class SysCategoryService {
String err = check(category);
if (err != null) return Result.fail("添加失败," + err);
int rows = categoryMapper.insert(category);
int rows = mapper.insert(category);
return rows > 0 ? Result.success("添加成功") : Result.fail("添加失败");
}
@ -64,7 +64,7 @@ public class SysCategoryService {
String err = check(category);
if (err != null) return Result.fail("修改失败," + err);
int rows = categoryMapper.update(
int rows = mapper.update(
null,
Wrappers.lambdaUpdate(SysCategory.class)
.set(SysCategory::getPid, category.getPid())
@ -79,31 +79,26 @@ public class SysCategoryService {
@Lock("'category'+#category.id")
public Result del(SysCategory category) {
Integer cid = category.getId();
if (hasChildren(cid)) {
return Result.fail("请先删除该分类下的子节点");
}
if (categoryMapper.checkIsUse(cid)) {
if (mapper.checkIsUse(cid)) {
return Result.fail("该分类已在业务中使用,不可删除");
}
int rows = categoryMapper.deleteById(cid);
int rows = mapper.deleteById(cid);
return rows > 0 ? Result.success("删除成功") : Result.fail("删除失败,请刷新后重试");
}
private String check(SysCategory category) {
//当该分类不是顶级节点时,判断其父节点是否允许有下级
if (category.getPid() != 0) {
SysCategory parent = categoryMapper.selectById(category.getPid());
if (!category.getPid().equals(0)) {
SysCategory parent = mapper.selectById(category.getPid());
if (parent == null || parent.getType() == 1) {
return "父节点状态变更,请刷新后重试";
}
}
Integer id = category.getId();
Integer exist = categoryMapper.selectCount(
Integer exist = mapper.selectCount(
Wrappers.lambdaQuery(SysCategory.class)
.eq(SysCategory::getName, category.getName())
.ne(id != null, SysCategory::getId, id)
@ -111,17 +106,14 @@ public class SysCategoryService {
if (exist != null && exist > 0) {
return String.format("分类【%s】已存在", category.getName());
}
Integer cid = category.getId();
if (cid != null && category.getType() == 1 && hasChildren(cid)) {
if (id != null && category.getType() == 1 && hasChildren(id)) {
return "该分类下存在子节点,不能改为实体类型";
}
return null;
}
private boolean hasChildren(Integer id) {
Integer checkNum = categoryMapper.selectCount(
Integer checkNum = mapper.selectCount(
Wrappers.lambdaQuery(SysCategory.class)
.eq(SysCategory::getPid, id)
);

@ -21,7 +21,7 @@ import javax.annotation.Resource;
import java.util.*;
@Service
public class SysCustomerService {
public class CustomerService {
@Resource
private SysCustomerMapper customerMapper;
@Resource
@ -90,7 +90,6 @@ public class SysCustomerService {
if (isNameExist(customer.getName(), null)) {
return Result.fail("添加失败,客户【" + customer.getName() + "】已存在");
}
int rows = customerMapper.insert(customer);
return rows > 0 ? Result.success("添加成功") : Result.fail("添加失败");
}
@ -101,7 +100,7 @@ public class SysCustomerService {
String name = customer.getName();
if (isNameExist(name, id)) {
return Result.fail("修改失败,客户【" + name + "】已存在");
return Result.fail(String.format("修改失败,客户【%s】已存在", name));
}
int rows = customerMapper.update(
@ -129,7 +128,7 @@ public class SysCustomerService {
return rows > 0 ? Result.success("删除成功") : Result.fail("删除失败,请刷新重试");
}
public boolean isNameExist(String name, Integer id) {
private boolean isNameExist(String name, Integer id) {
Integer num = customerMapper.selectCount(
Wrappers.lambdaQuery(SysCustomer.class)
.eq(SysCustomer::getName, name)

@ -23,11 +23,11 @@ import java.util.stream.Collectors;
@Service
@org.apache.dubbo.config.annotation.Service
public class SysDepartmentService implements DepartmentApi {
public class DepartmentService implements DepartmentApi {
@Resource
private SysDepartmentMapper departmentMapper;
@Resource
private SysRoleService roleService;
private RoleService roleService;
public List<DepartmentVo> getAll() {
return departmentMapper.selectChildrenById(1);
@ -91,7 +91,6 @@ public class SysDepartmentService implements DepartmentApi {
if (isNameExist(null, department.getPid(), department.getName())) {
return Result.fail("添加失败,存在名称相同的同级部门");
}
int rows = departmentMapper.insert(department);
return rows > 0 ? Result.success("添加成功") : Result.fail("添加失败");
}
@ -101,7 +100,6 @@ public class SysDepartmentService implements DepartmentApi {
if (isNameExist(department.getId(), department.getPid(), department.getName())) {
return Result.fail("修改失败,存在名称相同的同级部门");
}
departmentMapper.updateById(department);
return Result.success("修改成功");
}
@ -120,7 +118,6 @@ public class SysDepartmentService implements DepartmentApi {
.ne(id != null, SysDepartment::getId, id)
.eq(SysDepartment::getPid, pid)
);
return num != null && num > 0;
}
}

@ -3,8 +3,9 @@ package cn.toesbieya.jxc.system.service;
import cn.toesbieya.jxc.api.service.system.ResourceApi;
import cn.toesbieya.jxc.common.model.entity.SysResource;
import cn.toesbieya.jxc.common.model.entity.SysRole;
import cn.toesbieya.jxc.system.mapper.SysResourceMapper;
import cn.toesbieya.jxc.common.model.vo.ResourceVo;
import cn.toesbieya.jxc.common.model.vo.Result;
import cn.toesbieya.jxc.system.mapper.SysResourceMapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
@ -17,22 +18,12 @@ import java.util.List;
@Service
@org.apache.dubbo.config.annotation.Service
public class SysResourceService implements ResourceApi {
public class ResourceService implements ResourceApi {
@Resource
private SysResourceMapper resourceMapper;
public List<ResourceVo> get() {
List<SysResource> list = resourceMapper.selectList(
Wrappers.lambdaQuery(SysResource.class)
.eq(SysResource::isAdmin, false)
);
return completeNode(list);
}
private SysResourceMapper mapper;
public List<ResourceVo> getAll() {
List<SysResource> list = resourceMapper.selectList(null);
return completeNode(list);
return completeNode(mapper.selectList(null));
}
@Override
@ -47,12 +38,17 @@ public class SysResourceService implements ResourceApi {
return Collections.emptyList();
}
List<SysResource> list = resourceMapper.selectList(
List<SysResource> list = mapper.selectList(
Wrappers.lambdaQuery(SysResource.class)
.inSql(SysResource::getId, ids)
);
return this.completeNode(list);
return completeNode(list);
}
public Result update(SysResource resource) {
int rows = mapper.updateById(resource);
return Result.success("修改成功");
}
private List<ResourceVo> completeNode(List<SysResource> list) {

@ -1,6 +1,7 @@
package cn.toesbieya.jxc.system.service;
import cn.toesbieya.jxc.api.service.system.RoleApi;
import cn.toesbieya.jxc.common.enumeration.GeneralStatusEnum;
import cn.toesbieya.jxc.common.model.entity.SysRole;
import cn.toesbieya.jxc.common.model.vo.Result;
import cn.toesbieya.jxc.system.mapper.SysRoleMapper;
@ -18,21 +19,20 @@ import java.util.List;
@Service
@org.apache.dubbo.config.annotation.Service
public class SysRoleService implements RoleApi {
public class RoleService implements RoleApi {
@Resource
private SysRoleMapper roleMapper;
@Override
public SysRole getRoleById(Integer id) {
return id == null ? null : roleMapper.selectById(id);
}
private SysRoleMapper mapper;
public List<SysRole> get() {
return roleMapper.selectList(Wrappers.lambdaQuery(SysRole.class).eq(SysRole::getStatus, 1));
return mapper.selectList(
Wrappers.lambdaQuery(SysRole.class)
.eq(SysRole::getStatus, GeneralStatusEnum.ENABLED.getCode())
);
}
public List<SysRole> getAll() {
return roleMapper.selectList(null);
@Override
public SysRole getRoleById(Integer id) {
return id == null ? null : mapper.selectById(id);
}
public PageResult<SysRole> search(RoleSearch vo) {
@ -56,8 +56,7 @@ public class SysRoleService implements RoleApi {
.orderByDesc(SysRole::getCtime);
PageHelper.startPage(vo.getPage(), vo.getPageSize());
return new PageResult<>(roleMapper.selectList(wrapper));
return new PageResult<>(mapper.selectList(wrapper));
}
@UserAction("'添加角色:'+#role.name")
@ -66,7 +65,7 @@ public class SysRoleService implements RoleApi {
return Result.fail("添加失败,角色名称重复");
}
int rows = roleMapper.insert(role);
int rows = mapper.insert(role);
return rows > 0 ? Result.success("添加成功") : Result.fail("添加失败");
}
@ -79,7 +78,7 @@ public class SysRoleService implements RoleApi {
return Result.fail("修改失败,角色名称重复");
}
int rows = roleMapper.update(
mapper.update(
null,
Wrappers.lambdaUpdate(SysRole.class)
.set(SysRole::getName, name)
@ -89,12 +88,12 @@ public class SysRoleService implements RoleApi {
.set(SysRole::getResourceId, role.getResourceId())
.eq(SysRole::getId, id)
);
return rows > 0 ? Result.success("修改成功") : Result.fail("修改失败,请刷新重试");
return Result.success("修改成功");
}
@UserAction("'删除角色:'+#role.name")
public Result del(SysRole role) {
int rows = roleMapper.delete(
int rows = mapper.delete(
Wrappers.lambdaQuery(SysRole.class)
.eq(SysRole::getId, role.getId())
.eq(SysRole::getStatus, 0)
@ -103,7 +102,7 @@ public class SysRoleService implements RoleApi {
}
private boolean isNameExist(String name, Integer id) {
Integer num = roleMapper.selectCount(
Integer num = mapper.selectCount(
Wrappers.lambdaQuery(SysRole.class)
.eq(SysRole::getName, name)
.ne(id != null, SysRole::getId, id)

@ -1,5 +1,6 @@
package cn.toesbieya.jxc.system.service;
import cn.toesbieya.jxc.common.enumeration.GeneralStatusEnum;
import cn.toesbieya.jxc.common.model.entity.SysRegion;
import cn.toesbieya.jxc.common.model.entity.SysSupplier;
import cn.toesbieya.jxc.common.model.vo.Result;
@ -21,7 +22,7 @@ import javax.annotation.Resource;
import java.util.*;
@Service
public class SysSupplierService {
public class SupplierService {
@Resource
private SysSupplierMapper supplierMapper;
@Resource
@ -87,9 +88,8 @@ public class SysSupplierService {
@UserAction("'添加供应商:'+ #supplier.name")
public Result add(SysSupplier supplier) {
if (isNameExist(supplier.getName(), null)) {
return Result.fail("添加失败,供应商【" + supplier.getName() + "】已存在");
return Result.fail(String.format("添加失败,供应商【%s】已存在", supplier.getName()));
}
int rows = supplierMapper.insert(supplier);
return rows > 0 ? Result.success("添加成功") : Result.fail("添加失败");
}
@ -100,10 +100,10 @@ public class SysSupplierService {
String name = supplier.getName();
if (isNameExist(name, id)) {
return Result.fail("修改失败,供应商【" + name + "】已存在");
return Result.fail(String.format("修改失败,供应商【%s】已存在", name));
}
int rows = supplierMapper.update(
supplierMapper.update(
null,
Wrappers.lambdaUpdate(SysSupplier.class)
.set(SysSupplier::getName, name)
@ -115,7 +115,7 @@ public class SysSupplierService {
.set(SysSupplier::getRemark, supplier.getRemark())
.eq(SysSupplier::getId, id)
);
return rows > 0 ? Result.success("修改成功") : Result.fail("修改失败,请刷新重试");
return Result.success("修改成功");
}
@UserAction("删除供应商:'+ #supplier.name")
@ -123,12 +123,12 @@ public class SysSupplierService {
int rows = supplierMapper.delete(
Wrappers.lambdaQuery(SysSupplier.class)
.eq(SysSupplier::getId, supplier.getId())
.eq(SysSupplier::getStatus, 0)
.eq(SysSupplier::getStatus, GeneralStatusEnum.DISABLED.getCode())
);
return rows > 0 ? Result.success("删除成功") : Result.fail("删除失败,请刷新重试");
}
public boolean isNameExist(String name, Integer id) {
private boolean isNameExist(String name, Integer id) {
Integer num = supplierMapper.selectCount(
Wrappers.lambdaQuery(SysSupplier.class)
.eq(SysSupplier::getName, name)

@ -24,7 +24,7 @@ import java.util.*;
import java.util.stream.Collectors;
@Service
public class SysUserService {
public class UserService {
private static final String DEFAULT_PWD = DigestUtils.md5DigestAsHex("123456".getBytes());
@Resource
private SysUserMapper userMapper;
@ -41,7 +41,7 @@ public class SysUserService {
Wrapper<SysUser> wrapper =
Wrappers.lambdaQuery(SysUser.class)
.eq(SysUser::isAdmin, false)
.eq(SysUser::isAdmin, 0)
.eq(id != null, SysUser::getId, id)
.like(!StringUtils.isEmpty(name), SysUser::getName, name)
.inSql(!StringUtils.isEmpty(roleIds), SysUser::getRole, roleIds)
@ -51,9 +51,7 @@ public class SysUserService {
.orderByDesc(SysUser::getCtime);
PageHelper.startPage(vo.getPage(), vo.getPageSize());
List<SysUser> users = userMapper.selectList(wrapper);
PageResult<SysUser> pageResult = new PageResult<>(users);
int userNum = users.size();
@ -115,7 +113,7 @@ public class SysUserService {
return Result.fail("该用户名称已存在");
}
int rows = userMapper.update(
userMapper.update(
null,
Wrappers.lambdaUpdate(SysUser.class)
.set(SysUser::getName, name)
@ -125,7 +123,7 @@ public class SysUserService {
.eq(SysUser::getId, id)
);
return rows > 0 ? Result.success("修改成功") : Result.fail("修改失败,请刷新后重试");
return Result.success("修改成功");
}
@UserAction("'删除用户:'+#user.name")
@ -134,7 +132,7 @@ public class SysUserService {
int rows = userMapper.delete(
Wrappers.lambdaQuery(SysUser.class)
.eq(SysUser::getId, user.getId())
.eq(SysUser::isAdmin, false)
.eq(SysUser::isAdmin, 0)
);
WebSocketUtil.sendLogoutEvent(Collections.singletonList(user.getId()), "该用户已删除");
return rows > 0 ? Result.success("删除成功") : Result.fail("删除失败,请刷新后重试");
@ -164,13 +162,12 @@ public class SysUserService {
return rows > 0 ? Result.success() : Result.fail("重置失败,未匹配到用户");
}
public boolean isNameExist(String name, Integer id) {
private boolean isNameExist(String name, Integer id) {
Integer num = userMapper.selectCount(
Wrappers.lambdaQuery(SysUser.class)
.eq(SysUser::getName, name)
.ne(id != null, SysUser::getId, id)
);
return num != null && num > 0;
}
}

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save