Browse Source

Merge remote-tracking branch 'origin/dev' into dev

lazhaoqian 3 years ago
parent
commit
e6a1d9d21c

+ 1 - 1
blade-common/src/main/java/org/springblade/common/utils/CreateFileUtil.java

@@ -43,7 +43,7 @@ public class CreateFileUtil {
 			}
 
 			// 格式化json字符串
-			jsonString = JsonFormatTool.formatJson(jsonString);
+			// jsonString = JsonFormatTool.formatJson(jsonString);
 
 			// 将格式化后的字符串写入文件
 			Writer write = new OutputStreamWriter(new FileOutputStream(file), "UTF-8");

+ 2 - 2
blade-service-api/blade-land-api/src/main/java/org/springblade/land/constant/LandConst.java

@@ -15,7 +15,7 @@ public interface LandConst {
 
 	String TRACK_LOGIN_URL = TRACK_URL + "/login";
 
-	String TRACK_LOCATION_URL = TRACK_URL + "/transTimeManage";
+	String TRACK_LOCATION_URL = TRACK_URL + "/transTimeManageV2";
 
 	String TRACK_TRACK_URL = TRACK_URL + "/routerPath";
 
@@ -23,7 +23,7 @@ public interface LandConst {
 
 	String LAND_ORDER_FEE = "LAND_ORDER_FEE";
 
-	String ROLE_ADMIN = "管理员";
+	String ROLE_ADMIN = "admin";
 
 	String ROLE_KH = "客户";
 

+ 3 - 0
blade-service-api/blade-land-api/src/main/java/org/springblade/land/entity/TrackLog.java

@@ -16,6 +16,7 @@
  */
 package org.springblade.land.entity;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
@@ -79,5 +80,7 @@ public class TrackLog implements Serializable {
 	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
 	private Date createTime;
 
+	@TableField(exist = false)
+	private String color;
 
 }

+ 2 - 0
blade-service-api/blade-land-api/src/main/java/org/springblade/land/vo/OrderAcctVO.java

@@ -17,6 +17,8 @@ public class OrderAcctVO {
 
 	private Long orderId;
 
+	private Long itemId;
+
 	private String shippingMode;
 
 	private String corpName;

+ 12 - 7
blade-service/blade-check/src/main/java/org/springblade/check/service/impl/AuditProecessServiceImpl.java

@@ -857,12 +857,17 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, A
 			e.setAuditMsg(auditMsg);
 			if ("ffsq".equals(e.getCheckType())) {
 				this.operationFinanceProcess(e);
-			} else if ("xsqh".equals(e.getCheckType())) {
+			} else if ("xsqh".equals(e.getCheckType()) || "cgqh".equals(e.getCheckType()) || "xstpqh".equals(e.getCheckType())) {
 				this.orderCheckProcess(e);
+			} else if ("xsgz".equals(e.getCheckType()) || "czgz".equals(e.getCheckType()) || "gzgz".equals(e.getCheckType()) || "hqgz".equals(e.getCheckType())) {
+				this.salaryCheck(e);
+			} else if ("dldd".equals(e.getCheckType())) {
+				this.agencyOrderProcess(e);
+			} else if ("ocg".equals(e.getCheckType()) || "oly".equals(e.getCheckType())) {
+				this.officeCheck(e);
 			} else {
-				throw new SecurityException("存在审批类型为空的数据,请联系管理员");
+				this.commonCheck(e);
 			}
-
 		});
 	}
 
@@ -946,9 +951,9 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, A
 		List<AuditProecess> auditProecessList = proecessList.stream().filter(e -> e.getBatchNo() == max).collect(Collectors.toList());
 		//如果最新审批记录 第一级已经操作,就禁止撤回
 		long count = auditProecessList.stream().filter(
-			e -> e.getBatchNo() == max &&
-				e.getLevelId() == 1 &&
-				("A".equals(e.getAuditStatus()) || "B".equals(e.getAuditStatus())))
+				e -> e.getBatchNo() == max &&
+					e.getLevelId() == 1 &&
+					("A".equals(e.getAuditStatus()) || "B".equals(e.getAuditStatus())))
 			.count();
 		if (count > 0) {
 			throw new SecurityException("第一级审批已经开始,禁止撤回");
@@ -1537,7 +1542,7 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, A
 
 	@Override
 	@Transactional(rollbackFor = Exception.class)
-	@GlobalTransactional(rollbackFor = Exception.class,timeoutMills = 12000000)
+	@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
 	public void agencyOrderProcess(AuditProecess auditProecess) {
 		//查看最新操作记录,防止重复提交
 		AuditProecess proecessTemp = baseMapper.selectById(auditProecess.getId());

+ 3 - 3
blade-service/blade-client/src/main/java/org/springblade/client/corps/service/impl/CorpsAttnServiceImpl.java

@@ -73,9 +73,9 @@ public class CorpsAttnServiceImpl extends ServiceImpl<CorpsAttnMapper, CorpsAttn
 		user.setRealName(attn.getCname());
 		user.setUserType(1);
 		user.setPhone(attn.getTel());
-		user.setRoleId(attn.getRoleId());
-		user.setDeptId(attn.getDeptId());
-		user.setPostId(attn.getPostId());
+		user.setRoleId(corpsAttn.getRoleId());
+		user.setDeptId(corpsAttn.getDeptId());
+		user.setPostId(corpsAttn.getPostId());
 
 		if (ObjectUtil.isNotEmpty(attn.getUserId())) {
 			user.setId(attn.getUserId());

+ 1 - 2
blade-service/blade-land/src/main/java/org/springblade/land/controller/TrackLogController.java

@@ -33,7 +33,6 @@ import org.springblade.land.vo.TrackLogVO;
 import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
-import java.util.List;
 import java.util.Map;
 
 /**
@@ -88,7 +87,7 @@ public class TrackLogController extends BladeController {
 	@GetMapping("/track")
 	@ApiOperationSupport(order = 2)
 	@ApiOperation(value = "陆运轨迹", notes = "传入trackLog")
-	public R<List<List<Double>>> track(TrackLog trackLog) {
+	public R<Map<String, Object>> track(TrackLog trackLog) {
 		return R.data(trackLogService.track(trackLog));
 	}
 

+ 2 - 1
blade-service/blade-land/src/main/java/org/springblade/land/mapper/OrderMapper.xml

@@ -26,6 +26,7 @@
 
     <select id="selectAcct" resultType="org.springblade.land.vo.OrderAcctVO">
         select t1.id as orderId,
+               t2.id as itemId,
                t3.cname as corpName,
                t3.short_name as corpShortName,
                t2.arrival_time as arrivalTime,
@@ -75,7 +76,7 @@
             <if test="acct.status == 2">and t2.status not in (0, 1, 4)</if>
             <if test="acct.status == 3">and t2.status = 4</if>
         </where>
-        group by t1.id, t2.plate_no
+        group by t1.id, t2.id, t2.plate_no, t2.arrival_time
         order by t2.arrival_time desc
     </select>
 

+ 1 - 2
blade-service/blade-land/src/main/java/org/springblade/land/service/ITrackLogService.java

@@ -21,7 +21,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import org.springblade.land.entity.TrackLog;
 import org.springblade.land.vo.TrackLogVO;
 
-import java.util.List;
 import java.util.Map;
 
 /**
@@ -55,6 +54,6 @@ public interface ITrackLogService extends IService<TrackLog> {
 	 * @param trackLog
 	 * @return
 	 */
-	List<List<Double>> track(TrackLog trackLog);
+	Map<String, Object> track(TrackLog trackLog);
 
 }

+ 26 - 7
blade-service/blade-land/src/main/java/org/springblade/land/service/impl/OrderServiceImpl.java

@@ -515,16 +515,28 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 		BigDecimal freight = BigDecimal.ZERO;
 		List<OrderItem> itemList = order.getItemList();
 		for (OrderItem item : itemList) {
-			OrderItem itemTemp = orderItemMapper.selectById(item.getId());
-
 			item.setBillNo(order.getBillNo());
 			item.setShippingMode(order.getShippingMode());
 			item.setSalesman(order.getSalesman());
 			item.setSalesmanDept(order.getSalesmanDept());
-			item.setUpdateUser(AuthUtil.getUserId());
-			item.setUpdateTime(new Date());
-			orderItemMapper.updateById(item);
+			if (ObjectUtil.isEmpty(item.getId())) {
+				item.setOrderId(order.getId());
+				item.setKind(1);
+				item.setTenantId(AuthUtil.getTenantId());
+				item.setCreateUser(AuthUtil.getUserId());
+				item.setCreateTime(new Date());
+				orderItemMapper.insert(item);
+			} else {
+				item.setUpdateUser(AuthUtil.getUserId());
+				item.setUpdateTime(new Date());
+				orderItemMapper.updateById(item);
+			}
 
+			Integer ctnQuantity = orderItemMapper.selectCount(new LambdaQueryWrapper<OrderItem>()
+				.eq(OrderItem::getParentId, item.getId())
+				.eq(OrderItem::getKind, 2)
+				.eq(OrderItem::getIsDeleted, 0)
+			);
 			freight = freight.add(item.getLandAmountD().multiply(new BigDecimal(String.valueOf(item.getCtnQuantity()))));
 
 			BigDecimal landWeight = new BigDecimal("0.000000");
@@ -532,7 +544,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 				landWeight = item.getLandWeight().divide(new BigDecimal(item.getCtnQuantity()), 6, RoundingMode.HALF_UP);
 			}
 
-			if (item.getCtnQuantity() >= itemTemp.getCtnQuantity()) {
+			if (item.getCtnQuantity() >= ctnQuantity) {
 				List<OrderItem> itemKind = orderItemMapper.selectList(new LambdaQueryWrapper<OrderItem>()
 					.eq(OrderItem::getParentId, item.getId())
 					.eq(OrderItem::getIsDeleted, 0)
@@ -546,10 +558,17 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 					kind.setSize(item.getSize());
 					kind.setGoods(item.getGoods());
 					kind.setRemarks(item.getRemarks());
+
+					kind.setBillNo(order.getBillNo());
+					kind.setShippingMode(order.getShippingMode());
+					kind.setSalesman(order.getSalesman());
+					kind.setSalesmanDept(order.getSalesmanDept());
+					kind.setUpdateUser(AuthUtil.getUserId());
+					kind.setUpdateTime(new Date());
 					orderItemMapper.updateById(kind);
 				}
 
-				buildCtn(item.getCtnQuantity() - itemTemp.getCtnQuantity(), landWeight, order, item);
+				buildCtn(item.getCtnQuantity() - ctnQuantity, landWeight, order, item);
 			} else {
 				OrderItem temp = new OrderItem();
 				temp.setIsDeleted(1);

+ 39 - 21
blade-service/blade-land/src/main/java/org/springblade/land/service/impl/TrackLogServiceImpl.java

@@ -68,30 +68,26 @@ public class TrackLogServiceImpl extends ServiceImpl<TrackLogMapper, TrackLog> i
 			map.put("token", key.getToken());
 			map.put("cid", key.getCid());
 			map.put("srt", key.getSrt());
-			map.put("vclN", trackLog.getPlateNo());
-			map.put("vco", "2");
+			map.put("vnos", trackLog.getPlateNo() + "_" + trackLog.getColor());
 
 			DataExchangeService des = new DataExchangeService(5000, 8000);
 			String res = des.postHttps(LandConst.TRACK_LOCATION_URL, map);
-			System.out.println("RES::" + res);
 			trackLog.setDetail(res);
 
 			JSONObject result = getData(res);
 			// 处理数据
-			JSONObject temp = result.getJSONObject("result");
+			JSONObject temp = result.getJSONObject("result").getJSONObject("firstVcl");
 
-			BigDecimal divisor = new BigDecimal("600000");
-			BigDecimal longitude = new BigDecimal(temp.getString("lon")).divide(divisor, 6, RoundingMode.HALF_UP);
-			BigDecimal latitude = new BigDecimal(temp.getString("lat")).divide(divisor, 6, RoundingMode.HALF_UP);
 			List<Double> location = new ArrayList<>();
-			location.add(longitude.doubleValue());
-			location.add(latitude.doubleValue());
+			location.add(dealGrid(temp.getString("lon")));
+			location.add(dealGrid(temp.getString("lat")));
 
 			data.put("location", location);
 			data.put("address", temp.getString("adr"));
 			data.put("time", temp.getString("utc"));
 			data.put("speed", temp.getString("spd"));
 			data.put("mileage", temp.getString("mil"));
+			data.put("distance", temp.getString("runDistance"));
 		} catch (Exception e) {
 			throw new RuntimeException("获取数据失败:" + e.getMessage());
 		}
@@ -105,41 +101,58 @@ public class TrackLogServiceImpl extends ServiceImpl<TrackLogMapper, TrackLog> i
 
 	@Override
 	@Transactional(rollbackFor = Exception.class)
-	public List<List<Double>> track(TrackLog trackLog) {
+	public Map<String, Object> track(TrackLog trackLog) {
 		TrackKey key = CacheUtil.get(LandConst.LAND_CACHE, LandConst.TRACK_TOKEN, trackLog.getTenantId(), TrackKey.class, false);
 		if (ObjectUtil.isEmpty(key)) {
 			throw new RuntimeException("获取请求token失败");
 		}
 
-		List<List<Double>> data = new ArrayList<>();
+		Map<String, Object> data = new HashMap<>();
 		try {
 			Map<String, String> map = new HashMap<>(7);
 			map.put("token", key.getToken());
 			map.put("cid", key.getCid());
 			map.put("srt", key.getSrt());
 			map.put("vclN", trackLog.getPlateNo());
-			map.put("vco", "2");
+			map.put("vco", trackLog.getColor());
 			map.put("qryBtm", getInitDay());
 			map.put("qryEtm", DateUtil.formatDateTime(new Date()));
 
 			DataExchangeService des = new DataExchangeService(5000, 8000);
 			String res = des.postHttps(LandConst.TRACK_TRACK_URL, map);
-			System.out.println("RES::" + res);
 			trackLog.setDetail(res);
 
 			JSONObject result = getData(res);
 			// 处理数据
-			JSONArray array = result.getJSONObject("result").getJSONArray("trackArray");
-			for (Object obj : array) {
+			JSONArray trackJsonArray = result.getJSONObject("result").getJSONArray("trackArray");
+			List<List<Double>> trackArray = new ArrayList<>();
+			for (Object obj : trackJsonArray) {
 				JSONObject temp = (JSONObject) obj;
-				BigDecimal divisor = new BigDecimal("600000");
-				BigDecimal longitude = new BigDecimal(temp.getString("lon")).divide(divisor, 6, RoundingMode.HALF_UP);
-				BigDecimal latitude = new BigDecimal(temp.getString("lat")).divide(divisor, 6, RoundingMode.HALF_UP);
 				List<Double> tempList = new ArrayList<>();
-				tempList.add(longitude.doubleValue());
-				tempList.add(latitude.doubleValue());
-				data.add(tempList);
+				tempList.add(dealGrid(temp.getString("lon")));
+				tempList.add(dealGrid(temp.getString("lat")));
+				trackArray.add(tempList);
 			}
+			data.put("trackArray", trackArray);
+
+			JSONArray parkJsonArray = result.getJSONObject("result").getJSONArray("parkArray");
+			List<Map<String, Object>> parkArray = new ArrayList<>();
+			for (Object obj : parkJsonArray) {
+				JSONObject temp = (JSONObject) obj;
+
+				List<Double> tempList = new ArrayList<>();
+				tempList.add(dealGrid(temp.getString("parkLon")));
+				tempList.add(dealGrid(temp.getString("parkLat")));
+
+				Map<String, Object> tempMap = new HashMap<>();
+				tempMap.put("location", tempList);
+				tempMap.put("address", temp.getString("parkAdr"));
+				tempMap.put("bte", temp.getString("parkBte"));
+				tempMap.put("ete", temp.getString("parkEte"));
+				tempMap.put("duration", temp.getString("parkMins"));
+				parkArray.add(tempMap);
+			}
+			data.put("parkArray", parkArray);
 		} catch (Exception e) {
 			throw new RuntimeException("获取数据失败:" + e.getMessage());
 		}
@@ -159,6 +172,11 @@ public class TrackLogServiceImpl extends ServiceImpl<TrackLogMapper, TrackLog> i
 		return result;
 	}
 
+	private Double dealGrid(String grid) {
+		BigDecimal divisor = new BigDecimal("600000");
+		return new BigDecimal(grid).divide(divisor, 6, RoundingMode.HALF_UP).doubleValue();
+	}
+
 	private String getInitDay() {
 		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
 		Calendar calendar = Calendar.getInstance();