From 3925d9587584b514d70bb79b4fd176c9d5db38c7 Mon Sep 17 00:00:00 2001
From: LSH
Date: 星期一, 28 八月 2023 12:53:03 +0800
Subject: [PATCH] #出差完善

---
 src/main/java/com/zy/crm/manager/controller/BusinessTripController.java |   64 ++++++++++++++++++++++++++++++-
 1 files changed, 61 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/zy/crm/manager/controller/BusinessTripController.java b/src/main/java/com/zy/crm/manager/controller/BusinessTripController.java
index 48a9700..f76e35b 100644
--- a/src/main/java/com/zy/crm/manager/controller/BusinessTripController.java
+++ b/src/main/java/com/zy/crm/manager/controller/BusinessTripController.java
@@ -1,5 +1,6 @@
 package com.zy.crm.manager.controller;
 
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.mapper.Wrapper;
@@ -9,11 +10,14 @@
 import com.core.common.Cools;
 import com.core.common.DateUtils;
 import com.core.common.R;
+import com.zy.crm.common.model.SettleDto;
 import com.zy.crm.common.web.BaseController;
 import com.zy.crm.manager.entity.BusinessTrip;
 import com.zy.crm.manager.service.BusinessTripService;
 import com.zy.crm.manager.utils.CarNumberUtils;
 import com.zy.crm.manager.utils.TimeCalculatorUtils;
+import com.zy.crm.system.entity.User;
+import com.zy.crm.system.service.UserService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -24,6 +28,8 @@
 
     @Autowired
     private BusinessTripService businessTripService;
+    @Autowired
+    private UserService userService;
 
     @RequestMapping(value = "/businessTrip/{id}/auth")
     @ManagerAuth
@@ -61,7 +67,9 @@
     @RequestMapping(value = "/businessTrip/add/auth")
     @ManagerAuth
     public R add(BusinessTrip businessTrip) {
-
+        if (Cools.isEmpty(businessTrip) || null==businessTrip.getId()){
+            return R.error();
+        }
         Date now = new Date();
         //鍒ゆ柇杞︾墝鍙�
         if (businessTrip.getBusinessTransportation()==5 || businessTrip.getBusinessTransportation()==4){
@@ -69,16 +77,38 @@
             if (!carNumberBoolean){
                 return R.error("璇疯緭鍏ユ湁鏁堣溅鐗屽彿");
             }
+        }else {
+            businessTrip.setCarNumber("鏃�");
         }
         businessTrip.setBusinessPeersId(System.currentTimeMillis());
-//        businessTrip.setBusinessDuration(TimeCalculatorUtils.getDifferenceDayDouble(businessTrip.getBusinessStartTimeDay$(),businessTrip.getBusinessEndTimeDay$()));
-        businessTrip.setBusinessTripDays(TimeCalculatorUtils.getDifferenceDayInt(businessTrip.getBusinessStartTime(),businessTrip.getBusinessEndTime()));
+
+        if (!TimeCalculatorUtils.CompareData(businessTrip.getBusinessStartTime(),businessTrip.getBusinessEndTime())){
+            return R.error("缁撴潫鏃堕棿搴斿ぇ浜庣瓑浜庡紑濮嬫椂闂�");
+        }
+
+        if (TimeCalculatorUtils.DifferenceYest(businessTrip.getBusinessStartTime(),businessTrip.getBusinessEndTime())!=0){
+            int month = TimeCalculatorUtils.DifferenceMonth(businessTrip.getBusinessStartTime(), businessTrip.getBusinessEndTime());
+            int yest = TimeCalculatorUtils.DifferenceYest(businessTrip.getBusinessStartTime(), businessTrip.getBusinessEndTime());
+            int i = month + yest * 12;
+            if (i>12){
+                return R.error("鍑哄樊鏃堕暱涓嶅彲瓒呰繃涓�骞�");
+            }
+        }
+
+        businessTrip.setBusinessDuration(TimeCalculatorUtils.DifferenceDayMorningAfternoon(businessTrip.getBusinessStartTime(),businessTrip.getBusinessEndTime(),businessTrip.getBusinessStartTimeDay(),businessTrip.getBusinessEndTimeDay()));
+        businessTrip.setBusinessTripDays(TimeCalculatorUtils.DifferenceDayInt(businessTrip.getBusinessStartTime(),businessTrip.getBusinessEndTime()));
         businessTrip.setUserId(getUserId());
         businessTrip.setDeptId(getDeptId());
         businessTrip.setCreateTime(now);
         businessTrip.setUserId(getUserId());
         businessTrip.setUpdateTime(now);
+        businessTrip.setUpdateId(getUserId());
         businessTrip.setStatus(0);
+        businessTrip.setSettle(1);
+
+        User manager = userService.getDeptManager(getHostId(), getUser().getDeptId());        // 鑾峰彇閮ㄩ棬棰嗗
+
+        businessTrip.setSettleMsg(JSON.toJSONString(SettleDto.initBusiness(manager,getUser())));
 
         businessTripService.insert(businessTrip);
         return R.ok();
@@ -90,6 +120,34 @@
         if (Cools.isEmpty(businessTrip) || null==businessTrip.getId()){
             return R.error();
         }
+        Date now = new Date();
+        //鍒ゆ柇杞︾墝鍙�
+        if (businessTrip.getBusinessTransportation()==5 || businessTrip.getBusinessTransportation()==4){
+            boolean carNumberBoolean = CarNumberUtils.isValidLicensePlate(businessTrip.getCarNumber());
+            if (!carNumberBoolean){
+                return R.error("璇疯緭鍏ユ湁鏁堣溅鐗屽彿");
+            }
+        }else {
+            businessTrip.setCarNumber("鏃�");
+        }
+        businessTrip.setBusinessPeersId(System.currentTimeMillis());
+
+        if (!TimeCalculatorUtils.CompareData(businessTrip.getBusinessStartTime(),businessTrip.getBusinessEndTime())){
+            return R.error("缁撴潫鏃堕棿搴斿ぇ浜庣瓑浜庡紑濮嬫椂闂�");
+        }
+
+        if (TimeCalculatorUtils.DifferenceYest(businessTrip.getBusinessStartTime(),businessTrip.getBusinessEndTime())!=0){
+            int month = TimeCalculatorUtils.DifferenceMonth(businessTrip.getBusinessStartTime(), businessTrip.getBusinessEndTime());
+            int yest = TimeCalculatorUtils.DifferenceYest(businessTrip.getBusinessStartTime(), businessTrip.getBusinessEndTime());
+            int i = month + yest * 12;
+            if (i>12){
+                return R.error("鍑哄樊鏃堕暱涓嶅彲瓒呰繃涓�骞�");
+            }
+        }
+        businessTrip.setBusinessDuration(TimeCalculatorUtils.DifferenceDayMorningAfternoon(businessTrip.getBusinessStartTime(),businessTrip.getBusinessEndTime(),businessTrip.getBusinessStartTimeDay(),businessTrip.getBusinessEndTimeDay()));
+        businessTrip.setBusinessTripDays(TimeCalculatorUtils.DifferenceDayInt(businessTrip.getBusinessStartTime(),businessTrip.getBusinessEndTime()));
+        businessTrip.setUpdateTime(now);
+        businessTrip.setUpdateId(getUserId());
         businessTripService.updateById(businessTrip);
         return R.ok();
     }

--
Gitblit v1.9.1