From 4a36a12d40453f7686e5f2664f19601b9f6b9ae2 Mon Sep 17 00:00:00 2001
From: Fancy <Fancy.fx@outlook.com>
Date: 星期四, 22 八月 2024 14:39:52 +0800
Subject: [PATCH] order status
---
pms-parent/pms-web-product/src/main/java/com/dy/pmsProduct/order/OrderSv.java | 125 +++++++++++++++++++++++++++++++----------
1 files changed, 93 insertions(+), 32 deletions(-)
diff --git a/pms-parent/pms-web-product/src/main/java/com/dy/pmsProduct/order/OrderSv.java b/pms-parent/pms-web-product/src/main/java/com/dy/pmsProduct/order/OrderSv.java
index d0140b4..3cf6817 100644
--- a/pms-parent/pms-web-product/src/main/java/com/dy/pmsProduct/order/OrderSv.java
+++ b/pms-parent/pms-web-product/src/main/java/com/dy/pmsProduct/order/OrderSv.java
@@ -1,24 +1,22 @@
package com.dy.pmsProduct.order;
-import cn.hutool.core.codec.Base64;
import com.dy.common.webFilter.UserTokenContext;
import com.dy.common.webUtil.QueryResultVo;
-import com.dy.pmsGlobal.daoOth.OthFileMapper;
import com.dy.pmsGlobal.daoPr.*;
-import com.dy.pmsGlobal.dyFile.FileOperate;
import com.dy.pmsGlobal.pojoBa.BaUser;
-import com.dy.pmsGlobal.pojoPlt.PltProduct;
import com.dy.pmsGlobal.pojoPr.*;
import com.dy.pmsGlobal.util.UserUtil;
-import com.dy.pmsProduct.order.QueryVo;
+import com.dy.pmsProduct.taskPlan.PlanStatusEnum;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.common.utils.PojoUtils;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
-import java.io.IOException;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
import java.util.List;
import java.util.Map;
@@ -28,10 +26,7 @@
private PrOrderMapper orderDao;
private PrOrderItemMapper orderItemDao;
private UserUtil userUtil;
- private FileOperate fileOperate;
- private OthFileMapper othFileMapper;
- @Value("${dy.webFile.fmUrl}")
- private String fmUrl;
+
@Autowired
public void setOrderDao(PrOrderMapper orderDao) {
this.orderDao = orderDao;
@@ -46,17 +41,6 @@
public void setUserUtil(UserUtil userUtil) {
this.userUtil = userUtil;
}
-
- @Autowired
- public void setFileOperate(FileOperate fileOperate) {
- this.fileOperate = fileOperate;
- }
-
- @Autowired
- public void setOthFileMapper(OthFileMapper othFileMapper) {
- this.othFileMapper = othFileMapper;
- }
-
@Transactional
public int save(PrOrder p) {
p.id = null;
@@ -66,29 +50,33 @@
}
p.setDeleted(false);
BaUser loginUser = userUtil.getUser(UserTokenContext.get());
- if(loginUser!=null){
+ if (loginUser != null) {
p.creator = loginUser.id;
}
int count = orderDao.insertSelective(p);
saveOrderItems(p);
return count;
}
+
@Transactional
public int update(PrOrder p) {
if (orderDao.exists(p.name, p.id)) {
throw new RuntimeException("璁㈠崟鍚嶇О涓嶈兘閲嶅");
}
int count = orderDao.updateByPrimaryKeySelective(p);
- saveOrderItems(p);
+ if (count > 0) {
+ saveOrderItems(p);
+ }
return count;
}
+
private void saveOrderItems(PrOrder p) {
- p.items.forEach(param->{
- param.orderId=p.id;
- if(param.id !=null){
+ p.items.forEach(param -> {
+ param.orderId = p.id;
+ if (param.id != null) {
orderItemDao.updateByPrimaryKeySelective(param);
- }else{
- param.deleted=false;
+ } else {
+ param.deleted = false;
orderItemDao.insert(param);
}
});
@@ -96,6 +84,7 @@
/**
* 閫昏緫鍒犻櫎瀹炰綋
+ *
* @param id 瀹炰綋ID
* @return 褰卞搷璁板綍鏁伴噺
*/
@@ -105,7 +94,8 @@
}
public PrOrder selectById(String proId) {
- PrOrder pro=orderDao.selectByPrimaryKey(Long.valueOf(proId));
+ PrOrder pro = orderDao.selectByPrimaryKey(Long.valueOf(proId));
+ changeRate(pro);
return pro;
}
@@ -122,13 +112,84 @@
//璁$畻鍒嗛〉绛変俊鎭�
rsVo.calculateAndSet(itemTotal, params);
+ List<PrOrder> orderList = orderDao.selectSome(params);
+ for (PrOrder prOrder : orderList) {
+ changeRate(prOrder);
+ }
//鏌ヨ绗﹀悎鏉′欢鐨勮褰�
- rsVo.obj = orderDao.selectSome(params);
+ rsVo.obj = orderList;
return rsVo;
+ }
+
+ private void changeRate(PrOrder prOrder) {
+ List<PrOrderItem> items = prOrder.items;
+ for (int i = 1; i < items.size(); i++) {
+ for (int j = i - 1; j >= 0; j--) {
+ //鎷跨潃i渚濇璺熶笂涓�涓瘮杈�,濡傛灉浜у搧鐩稿悓,鍒欎笂涓�涓褰昪omplete_number - number 濡傛灉 > 0 鍒嗙粰i ,濡傛灉 < 0 鍒欏皢 complete_number 缃负0
+ if (items.get(j).getProId().intValue() == items.get(i).getProId().intValue()) {
+ int remainNumber = items.get(j).getCompleteNumber() - items.get(j).getNumber();
+ if (remainNumber > 0) {
+ items.get(j).setCompleteNumber(items.get(j).getNumber());
+ items.get(j).setCompleteRate("100.00%");
+ items.get(i).setCompleteNumber(remainNumber);
+ BigDecimal remainBig = new BigDecimal(remainNumber * 100);
+ BigDecimal iNumberBig = new BigDecimal(items.get(i).getNumber());
+ BigDecimal result = remainBig.divide(iNumberBig, 2, RoundingMode.HALF_UP);
+ items.get(i).setCompleteRate(result.toString() +"%");
+ }else{
+ items.get(i).setCompleteNumber(0);
+ items.get(i).setCompleteRate("0.00%");
+ }
+ break;
+ }
+ }
+ }
}
public List<PrOrder> selectAll(QueryVo queryVo) {
Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo);
- return orderDao.selectAll(params);
+ List<PrOrder> orderList = orderDao.selectAll(params);
+ for (PrOrder prOrder : orderList) {
+ changeRate(prOrder);
+ }
+ return orderList;
}
+ /**
+ * 鍙洿鏂扮姸鎬�,涓嶆洿鏂板叾浠栧瓧娈�
+ * @param plan
+ * 鏇存柊鐘舵�� 濡傛灉鏈夊湪鎵ц涓殑浠诲姟,涓嶈鏆傚仠
+ * @return
+ */
+ /* @Transactional
+ public int updateStatus(PrOrder plan) {
+ if(plan.status == PlanStatusEnum.NORMAL.getCode()){
+ PrAssemblyPlan assemblyPlan = assemblyDao.selectByPrimaryKey(plan.id);
+ assemblyPlan.status = plan.status;
+ extractedCheck(assemblyPlan);
+ }
+ PrAssemblyPlan param = new PrAssemblyPlan();
+ param.id =plan.id;
+ param.status = plan.status;
+ return assemblyDao.updateByPrimaryKeySelective(param);
+ }
+ private void extractedCheck(PrAssemblyPlan plan) {
+ PrProductionProcess process = processDao.selectByPrimaryKey(plan.processId);
+ if(process == null || !process.proId.equals(plan.proId)){
+ throw new RuntimeException("浜у搧涓庣敓浜ф祦绋嬩笉鍖归厤");
+ }
+ //寮�濮嬫棩鏈熻灏忎簬缁撴潫鏃ユ湡
+ if(plan.startDate.compareTo(plan.endDate) > 0){
+ throw new RuntimeException("寮�濮嬫棩鏈熶笉鑳藉ぇ浜庣粨鏉熸棩鏈�");
+ }
+ //Fancy add 2024/07/09 濡傛灉鐘舵�佷负鎵ц ,鍒欑粨鏉熸棩鏈熷繀椤诲ぇ浜庣瓑浜庡綋鍓嶆棩鏈�
+ if(plan.status == PlanStatusEnum.NORMAL.getCode()){
+ String endDateStr = plan.getEndDate();
+ LocalDate endDate = LocalDate.parse(endDateStr, DateTimeFormatter.ISO_LOCAL_DATE);
+ LocalDate nextDay = endDate.plusDays(1);
+ LocalDate today = LocalDate.now(); // 鑾峰彇褰撳墠鏃ユ湡
+ if (nextDay.isBefore(today)) {
+ throw new RuntimeException("鎵ц鐘舵�佺粨鏉熸棩鏈熷繀椤诲ぇ浜庣瓑浜庡綋鍓嶆棩鏈�,璇蜂慨鏀圭粨鏉熸棩鏈�");
+ }
+ }
+ }*/
}
\ No newline at end of file
--
Gitblit v1.8.0