From 34981c30a78e8bbd7791131059a9210f9928b62c Mon Sep 17 00:00:00 2001
From: 刘光辉 <347230014@qq.com>
Date: 星期四, 17 九月 2026 09:24:09 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master' into master
---
jnpf-lims/jnpf-lims-biz/src/main/java/jnpf/service/impl/OrderServiceImpl.java | 272 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 272 insertions(+), 0 deletions(-)
diff --git a/jnpf-lims/jnpf-lims-biz/src/main/java/jnpf/service/impl/OrderServiceImpl.java b/jnpf-lims/jnpf-lims-biz/src/main/java/jnpf/service/impl/OrderServiceImpl.java
new file mode 100644
index 0000000..7aa9725
--- /dev/null
+++ b/jnpf-lims/jnpf-lims-biz/src/main/java/jnpf/service/impl/OrderServiceImpl.java
@@ -0,0 +1,272 @@
+package jnpf.service.impl;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.dynamic.datasource.annotation.DSTransactional;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.google.common.collect.ImmutableMap;
+import jnpf.base.BillRuleApi;
+import jnpf.base.service.SuperServiceImpl;
+import jnpf.entity.OrderEntity;
+import jnpf.entity.OrderEntryEntity;
+import jnpf.entity.OrderReceivableEntity;
+import jnpf.exception.DataException;
+import jnpf.flowable.WorkFlowApi;
+import jnpf.mapper.OrderEntryMapper;
+import jnpf.mapper.OrderMapper;
+import jnpf.mapper.OrderReceivableMapper;
+import jnpf.model.order.*;
+import jnpf.permission.UserApi;
+import jnpf.permission.entity.UserEntity;
+import jnpf.service.OrderService;
+import jnpf.util.*;
+import lombok.RequiredArgsConstructor;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 璁㈠崟淇℃伅
+ *
+ * @author JNPF寮�鍙戝钩鍙扮粍
+ * @version V3.1.0
+ * @copyright 寮曡繄淇℃伅鎶�鏈湁闄愬叕鍙�
+ * @date 2021/3/15 9:19
+ */
+@Service
+@RequiredArgsConstructor
+public class OrderServiceImpl extends SuperServiceImpl<OrderMapper, OrderEntity> implements OrderService {
+
+
+ private final OrderReceivableMapper orderReceivableMapper;
+
+ private final OrderEntryMapper orderEntryMapper;
+
+ private final BillRuleApi billRuleApi;
+
+ private final UserApi usersApi;
+
+ private final WorkFlowApi workFlowApi;
+
+ /**
+ * 鍓嶅崟
+ **/
+ private static final String PREV = "prev";
+ /**
+ * 鍚庡崟
+ **/
+ private static final String NEXT = "next";
+
+ @Override
+ public List<OrderEntity> getList(PaginationOrder paginationOrder) {
+ Map<String, String> fileMap = ImmutableMap.of("orderCode", "f_order_code", "orderDate", "f_order_date",
+ "customerName", "f_customer_name", "salesmanName", "f_salesman_name",
+ "receivableMoney", "f_receivable_money", "currentState", "f_current_state");
+ paginationOrder.setSidx(fileMap.get(paginationOrder.getSidx()));
+
+ QueryWrapper<OrderEntity> queryWrapper = new QueryWrapper<>();
+ //鍏抽敭瀛楋紙璁㈠崟缂栫爜銆佸鎴峰悕绉般�佷笟鍔′汉鍛橈級
+ String keyWord = paginationOrder.getKeyword() != null ? paginationOrder.getKeyword() : null;
+ if (!StringUtils.isEmpty(keyWord)) {
+ queryWrapper.lambda().and(
+ t -> t.like(OrderEntity::getOrderCode, keyWord)
+ .or().like(OrderEntity::getCustomerName, keyWord)
+ .or().like(OrderEntity::getSalesmanName, keyWord)
+ );
+ }
+ //璧峰鏃ユ湡-缁撴潫鏃ユ湡
+ if (ObjectUtil.isNotEmpty(paginationOrder.getStartTime()) && ObjectUtil.isNotEmpty(paginationOrder.getEndTime())) {
+ queryWrapper.lambda().between(OrderEntity::getOrderDate, new Date(paginationOrder.getStartTime()), new Date(paginationOrder.getEndTime()));
+ }
+ //璁㈠崟鐘舵��
+ String mark = paginationOrder.getEnabledMark();
+ if (ObjectUtil.isNotEmpty(mark)) {
+ queryWrapper.lambda().eq(OrderEntity::getEnabledMark, mark);
+ }
+
+ //娴佺▼鏁版嵁鏌ヨ
+ if (ObjectUtil.isNotEmpty(paginationOrder.getTemplateId())) {
+ List<String> flowIdsByTemplateId = workFlowApi.getFlowIdsByTemplateId(paginationOrder.getTemplateId());
+ queryWrapper.lambda().in(OrderEntity::getFlowId, flowIdsByTemplateId);
+ }
+ //鎺掑簭
+ if (StringUtils.isEmpty(paginationOrder.getSidx())) {
+ queryWrapper.lambda().orderByDesc(OrderEntity::getCreatorTime);
+ } else {
+ queryWrapper = "asc".equalsIgnoreCase(paginationOrder.getSort()) ? queryWrapper.orderByAsc(paginationOrder.getSidx()) : queryWrapper.orderByDesc(paginationOrder.getSidx());
+ }
+ Page<OrderEntity> page = new Page<>(paginationOrder.getCurrentPage(), paginationOrder.getPageSize());
+ IPage<OrderEntity> orderEntityPage = this.page(page, queryWrapper);
+ List<OrderEntity> data = orderEntityPage.getRecords();
+ return paginationOrder.setData(data, page.getTotal());
+ }
+
+ @Override
+ public List<OrderEntryEntity> getOrderEntryList(String id) {
+ QueryWrapper<OrderEntryEntity> queryWrapper = new QueryWrapper<>();
+ queryWrapper.lambda().eq(OrderEntryEntity::getOrderId, id).orderByDesc(OrderEntryEntity::getSortCode);
+ return orderEntryMapper.selectList(queryWrapper);
+ }
+
+ @Override
+ public List<OrderReceivableEntity> getOrderReceivableList(String id) {
+ QueryWrapper<OrderReceivableEntity> queryWrapper = new QueryWrapper<>();
+ queryWrapper.lambda().eq(OrderReceivableEntity::getOrderId, id).orderByDesc(OrderReceivableEntity::getSortCode);
+ return orderReceivableMapper.selectList(queryWrapper);
+ }
+
+ @Override
+ public OrderEntity getPrevOrNextInfo(String id, String method) {
+ QueryWrapper<OrderEntity> result = new QueryWrapper<>();
+ OrderEntity orderEntity = getInfo(id);
+ String orderBy = "desc";
+ if (PREV.equals(method)) {
+ result.lambda().gt(OrderEntity::getCreatorTime, orderEntity.getCreatorTime());
+ orderBy = "";
+ } else if (NEXT.equals(method)) {
+ result.lambda().lt(OrderEntity::getCreatorTime, orderEntity.getCreatorTime());
+ }
+ result.lambda().notIn(OrderEntity::getId, orderEntity.getId());
+ if (StringUtil.isNotEmpty(orderBy)) {
+ result.lambda().orderByDesc(OrderEntity::getCreatorTime);
+ }
+ List<OrderEntity> data = this.list(result);
+ if (!data.isEmpty()) {
+ return data.get(0);
+ }
+ return null;
+ }
+
+ @Override
+ public OrderInfoVO getInfoVo(String id, String method) throws DataException {
+ OrderInfoVO infoModel = null;
+ OrderEntity orderEntity = this.getPrevOrNextInfo(id, method);
+ if (orderEntity != null) {
+ List<OrderEntryEntity> orderEntryList = this.getOrderEntryList(orderEntity.getId());
+ List<OrderReceivableEntity> orderReceivableList = this.getOrderReceivableList(orderEntity.getId());
+ infoModel = JsonUtilEx.getJsonToBeanEx(orderEntity, OrderInfoVO.class);
+ UserEntity createUser = null;
+ if (StringUtil.isNotEmpty(infoModel.getCreatorUserId())) {
+ createUser = usersApi.getInfoById(infoModel.getCreatorUserId());
+ }
+ infoModel.setCreatorUserId(createUser != null ? createUser.getRealName() + "/" + createUser.getAccount() : "");
+ UserEntity lastUser = null;
+ if (StringUtil.isNotEmpty(infoModel.getLastModifyUserId())) {
+ lastUser = usersApi.getInfoById(infoModel.getLastModifyUserId());
+ }
+ infoModel.setLastModifyUserId(lastUser != null ? lastUser.getRealName() + "/" + lastUser.getAccount() : "");
+ List<OrderInfoOrderEntryModel> orderEntryModels = JsonUtil.getJsonToList(orderEntryList, OrderInfoOrderEntryModel.class);
+ infoModel.setGoodsList(orderEntryModels);
+ List<OrderInfoOrderReceivableModel> orderReceivableModels = JsonUtil.getJsonToList(orderReceivableList, OrderInfoOrderReceivableModel.class);
+ infoModel.setCollectionPlanList(orderReceivableModels);
+ }
+ return infoModel;
+ }
+
+ @Override
+ public OrderEntity getInfo(String id) {
+ QueryWrapper<OrderEntity> queryWrapper = new QueryWrapper<>();
+ queryWrapper.lambda().eq(OrderEntity::getId, id);
+ return this.getOne(queryWrapper);
+ }
+
+ @Override
+ public void delete(OrderEntity entity) {
+ QueryWrapper<OrderEntity> orderWrapper = new QueryWrapper<>();
+ orderWrapper.lambda().eq(OrderEntity::getId, entity.getId());
+ this.remove(orderWrapper);
+ QueryWrapper<OrderEntryEntity> entryWrapper = new QueryWrapper<>();
+ entryWrapper.lambda().eq(OrderEntryEntity::getOrderId, entity.getId());
+ orderEntryMapper.delete(entryWrapper);
+ QueryWrapper<OrderReceivableEntity> receivableWrapper = new QueryWrapper<>();
+ receivableWrapper.lambda().eq(OrderReceivableEntity::getOrderId, entity.getId());
+ orderReceivableMapper.delete(receivableWrapper);
+ }
+
+ @Override
+ @DSTransactional
+ public void create(OrderEntity entity, List<OrderEntryEntity> orderEntryList, List<OrderReceivableEntity> orderReceivableList) {
+ entity.setCreatorUserId(UserProvider.getUser().getUserId());
+ entity.setEnabledMark(1);
+ for (int i = 0; i < orderEntryList.size(); i++) {
+ orderEntryList.get(i).setId(RandomUtil.uuId());
+ orderEntryList.get(i).setOrderId(entity.getId());
+ orderEntryList.get(i).setSortCode(Long.parseLong(i + ""));
+ orderEntryMapper.insert(orderEntryList.get(i));
+ }
+ for (int i = 0; i < orderReceivableList.size(); i++) {
+ orderReceivableList.get(i).setId(RandomUtil.uuId());
+ orderReceivableList.get(i).setOrderId(entity.getId());
+ orderReceivableList.get(i).setSortCode(Long.parseLong(i + ""));
+ orderReceivableMapper.insert(orderReceivableList.get(i));
+ }
+ billRuleApi.useBillNumber("OrderNumber");
+ this.save(entity);
+ }
+
+ @Override
+ @DSTransactional
+ public boolean update(String id, OrderEntity entity, List<OrderEntryEntity> orderEntryList, List<OrderReceivableEntity> orderReceivableList) {
+ entity.setId(id);
+ entity.setLastModifyTime(new Date());
+ entity.setLastModifyUserId(UserProvider.getUser().getUserId());
+ QueryWrapper<OrderEntryEntity> entryWrapper = new QueryWrapper<>();
+ entryWrapper.lambda().eq(OrderEntryEntity::getOrderId, entity.getId());
+ orderEntryMapper.delete(entryWrapper);
+ QueryWrapper<OrderReceivableEntity> receivableWrapper = new QueryWrapper<>();
+ receivableWrapper.lambda().eq(OrderReceivableEntity::getOrderId, entity.getId());
+ orderReceivableMapper.delete(receivableWrapper);
+ for (int i = 0; i < orderEntryList.size(); i++) {
+ orderEntryList.get(i).setId(RandomUtil.uuId());
+ orderEntryList.get(i).setOrderId(entity.getId());
+ orderEntryList.get(i).setSortCode(Long.parseLong(i + ""));
+ orderEntryMapper.insert(orderEntryList.get(i));
+ }
+ for (int i = 0; i < orderReceivableList.size(); i++) {
+ orderReceivableList.get(i).setId(RandomUtil.uuId());
+ orderReceivableList.get(i).setOrderId(entity.getId());
+ orderReceivableList.get(i).setSortCode(Long.parseLong(i + ""));
+ orderReceivableMapper.insert(orderReceivableList.get(i));
+ }
+ return this.updateById(entity);
+ }
+
+ @Override
+ public void data(String id, String data) {
+ OrderForm orderForm = JsonUtil.getJsonToBean(data, OrderForm.class);
+ OrderEntity entity = JsonUtil.getJsonToBean(orderForm, OrderEntity.class);
+ List<OrderEntryModel> goodsList = orderForm.getGoodsList() != null ? orderForm.getGoodsList() : new ArrayList<>();
+ List<OrderEntryEntity> orderEntryList = JsonUtil.getJsonToList(goodsList, OrderEntryEntity.class);
+ List<OrderReceivableModel> collectionPlanList = orderForm.getCollectionPlanList() != null ? orderForm.getCollectionPlanList() : new ArrayList<>();
+ List<OrderReceivableEntity> orderReceivableList = JsonUtil.getJsonToList(collectionPlanList, OrderReceivableEntity.class);
+ entity.setId(id);
+ entity.setLastModifyTime(new Date());
+ entity.setLastModifyUserId(UserProvider.getUser().getUserId());
+ QueryWrapper<OrderEntryEntity> entryWrapper = new QueryWrapper<>();
+ entryWrapper.lambda().eq(OrderEntryEntity::getOrderId, entity.getId());
+ orderEntryMapper.delete(entryWrapper);
+ QueryWrapper<OrderReceivableEntity> receivableWrapper = new QueryWrapper<>();
+ receivableWrapper.lambda().eq(OrderReceivableEntity::getOrderId, entity.getId());
+ orderReceivableMapper.delete(receivableWrapper);
+ for (int i = 0; i < orderEntryList.size(); i++) {
+ orderEntryList.get(i).setId(RandomUtil.uuId());
+ orderEntryList.get(i).setOrderId(entity.getId());
+ orderEntryList.get(i).setSortCode(Long.parseLong(i + ""));
+ orderEntryMapper.insert(orderEntryList.get(i));
+ }
+ for (int i = 0; i < orderReceivableList.size(); i++) {
+ orderReceivableList.get(i).setId(RandomUtil.uuId());
+ orderReceivableList.get(i).setOrderId(entity.getId());
+ orderReceivableList.get(i).setSortCode(Long.parseLong(i + ""));
+ orderReceivableMapper.insert(orderReceivableList.get(i));
+ }
+ this.saveOrUpdate(entity);
+ }
+
+
+}
--
Gitblit v1.8.0