Browse Source

代采订单更新币别、税率、供应商名称、供应商code;处理移动端请假、加班、出差更新bug

git-svn-id: svn+ssh://10.10.101.21/source/platform/platform-b2b@7360 f3bf4e98-0cf0-11e4-a00c-a99a8b9d557d
hejq 9 years ago
parent
commit
99d6b3ad50

+ 26 - 9
src/main/java/com/uas/platform/b2b/mobile/service/impl/FeePleaseServiceImpl.java

@@ -55,6 +55,7 @@ public class FeePleaseServiceImpl implements FeePleaseService {
 	@Override
 	public ModelMap saveFeePlease(FeePlease feePlease, List<FeePleaseDetail> feePleaseDetails) {
 		ModelMap map = new ModelMap();
+		Long id = 0L;
 		if (feePlease.getFp_id() == null) {// 新增单据
 			SimpleDateFormat sdf = new SimpleDateFormat("yyMMmmSS");
 			feePlease.setFp_code("FP" + sdf.format(new Date()));
@@ -69,19 +70,33 @@ public class FeePleaseServiceImpl implements FeePleaseService {
 				}
 			}
 			feePleaseDetails = feePleaseDetailDao.save(feeDetails);
+			id = feePleaseDetails.get(0).getFeePlease().getFp_id();
+			if (feePleaseDetails.get(0).getFpd_id() != null) {
+				map.put("success", true);
+				map.put("fp_id", id);
+			} else {
+				map.put("success", false);
+			}
 		} else { // 更新单据操作
 			FeePlease fee = feePleaseDao.findOne(feePlease.getFp_id());
+			id = feePlease.getFp_id();
 			if (fee != null) {
 				fee.setFp_status(MobileStatus.ENTERING.getPhrase());
 				fee.setFp_statuscode(MobileStatus.ENTERING.name());
 				fee.setFp_recorddate(new Date());
 				feePleaseDao.save(fee);
+				if (!CollectionUtils.isEmpty(feePleaseDetails)) {
+					for (FeePleaseDetail feedetail : feePleaseDetails) {
+						if (feedetail.getFpd_id() != null) {
+							FeePleaseDetail detail = feePleaseDetailDao.findOne(feedetail.getFpd_id());
+							detail.setFpd_address(feedetail.getFpd_address());
+							detail.setFpd_detno(feedetail.getFpd_detno());
+							detail.setFpd_location(feedetail.getFpd_location());
+							feePleaseDetailDao.save(detail);
+						}
+					}
+				}
 			}
-		}
-		if (feePleaseDetails.get(0).getFpd_id() != null) {
-			map.put("success", true);
-			map.put("fp_id", feePleaseDetails.get(0).getFeePlease().getFp_id());
-		} else {
 			map.put("success", false);
 		}
 		String appName = "出差单";
@@ -111,10 +126,12 @@ public class FeePleaseServiceImpl implements FeePleaseService {
 					node = approvalFlowService.getNodeInfoByEnuuAndAppNameAndNodelev(feePlease.getEnuu(), appName,
 							node.getNodelev() + 1);
 					if (applog.getId() != null) {
-						feePlease = feePleaseDao.findOne(feePleaseDetails.get(0).getFeePlease().getFp_id());
-						feePlease.setFp_status(MobileStatus.COMMITED.getPhrase());
-						feePlease.setFp_statuscode(MobileStatus.COMMITED.name());
-						feePleaseDao.save(feePlease);
+						if (id != null) {
+							feePlease = feePleaseDao.findOne(id);
+							feePlease.setFp_status(MobileStatus.COMMITED.getPhrase());
+							feePlease.setFp_statuscode(MobileStatus.COMMITED.name());
+							feePleaseDao.save(feePlease);
+						}
 
 						// 新增待审批
 						AppFlowOperation operation = new AppFlowOperation();

+ 13 - 10
src/main/java/com/uas/platform/b2b/mobile/service/impl/VacationServiceImpl.java

@@ -78,6 +78,12 @@ public class VacationServiceImpl implements VacationService {
 			vacation.setVa_emname(userBaseInfoDao.findByUserUU(vacation.getEmcode()).getUserName());
 			vacation.setVa_recorder(userBaseInfoDao.findByUserUU(vacation.getEmcode()).getUserName());
 			va = vacationDao.save(vacation);
+			if (va.getVa_id() != null) {
+				map.put("success", true);
+				map.put("va_id", va.getVa_id());
+			} else {
+				map.put("success", false);
+			}
 		} else { // 更新单据
 			va = vacationDao.findOne(vacation.getVa_id());
 			va.setVa_statuscode(MobileStatus.ENTERING.name());
@@ -91,12 +97,6 @@ public class VacationServiceImpl implements VacationService {
 			va = vacationDao.save(va);
 		}
 
-		if (va.getVa_id() != null) {
-			map.put("success", true);
-			map.put("va_id", va.getVa_id());
-		} else {
-			map.put("success", false);
-		}
 		// 审批流
 		// TODO 暂时这里先只做人员的线路
 		String appName = "请假单";
@@ -140,10 +140,13 @@ public class VacationServiceImpl implements VacationService {
 						operation.setNodelevel(node.getNodelev());
 						operation.setSourceid(vacation.getVa_id());
 						appFlowOperationDao.save(operation);
-						vacation = vacationDao.findOne(va.getVa_id());
-						vacation.setVa_status(MobileStatus.COMMITED.getPhrase());
-						vacation.setVa_statuscode(MobileStatus.COMMITED.name());
-						vacationDao.save(vacation);
+
+						if (va.getVa_id() != null) {// 更新单据状态
+							vacation = vacationDao.findOne(va.getVa_id());
+							vacation.setVa_status(MobileStatus.COMMITED.getPhrase());
+							vacation.setVa_statuscode(MobileStatus.COMMITED.name());
+							vacationDao.save(vacation);
+						}
 					}
 				}
 			}

+ 25 - 7
src/main/java/com/uas/platform/b2b/mobile/service/impl/WorkOvertimeServiceImpl.java

@@ -60,6 +60,7 @@ public class WorkOvertimeServiceImpl implements WorkOvertimeService {
 	@Override
 	public ModelMap saveWorkOvertime(WorkOvertime workOvertime, List<WorkOvertimeDet> workOvertimeDets) {
 		ModelMap map = new ModelMap();
+		Long id = 0L;
 		if (workOvertime.getWo_id() == null) {// 新增单据
 			SimpleDateFormat sdf = new SimpleDateFormat("yyMMmmSS");
 			workOvertime.setWo_code("WO" + sdf.format(new Date()));
@@ -78,21 +79,38 @@ public class WorkOvertimeServiceImpl implements WorkOvertimeService {
 				}
 			}
 			workOvertimeDets = workOvertimeDetDao.save(workOvertimeDetails);
+			if (!CollectionUtils.isEmpty(workOvertimeDets)) {
+				map.put("success", true);
+				id = workOvertimeDets.get(0).getWorkOvertime().getWo_id();
+				map.put("wo_id", id);
+			} else {
+				map.put("success", false);
+			}
 		} else {// 更新单据
 			WorkOvertime wo = workOvertimeDao.findOne(workOvertime.getWo_id());
+			id = workOvertime.getWo_id();
 			if (wo != null) {
 				wo.setWo_status(MobileStatus.ENTERING.getPhrase());
 				wo.setWo_statuscode(MobileStatus.ENTERING.name());
 				wo.setWo_worktask(workOvertime.getWo_worktask());
 				workOvertimeDao.save(wo);// 更新主表
+				if (!CollectionUtils.isEmpty(workOvertimeDets)) {
+					for (WorkOvertimeDet det : workOvertimeDets) {
+						if (det.getWod_id() != null) {
+							WorkOvertimeDet wodet = workOvertimeDetDao.findOne(det.getWod_id());
+							wodet.setWod_count(det.getWod_count());
+							wodet.setWod_detno(det.getWod_detno());
+							wodet.setEmcode(det.getEmcode());
+							wodet.setWod_empname(userBaseInfoDao.findByUserUU(det.getEmcode()).getUserName());
+							wodet.setWod_enddate(det.getWod_enddate());
+							wodet.setWod_startdate(det.getWod_startdate());
+							workOvertimeDetDao.save(wodet);
+						}
+					}
+				}
+				map.put("success", true);
 			}
 		}
-		if (!CollectionUtils.isEmpty(workOvertimeDets)) {
-			map.put("success", true);
-			map.put("wo_id", workOvertimeDets.get(0).getWorkOvertime().getWo_id());
-		} else {
-			map.put("success", false);
-		}
 		// 审批流
 		// TODO 暂时这里先只做人员的线路
 		String appName = "加班单";
@@ -122,7 +140,7 @@ public class WorkOvertimeServiceImpl implements WorkOvertimeService {
 					node = approvalFlowService.getNodeInfoByEnuuAndAppNameAndNodelev(workOvertime.getEnuu(), appName,
 							node.getNodelev() + 1);
 					if (applog.getId() != null) {
-						workOvertime = workOvertimeDao.findOne(workOvertimeDets.get(0).getWorkOvertime().getWo_id());
+						workOvertime = workOvertimeDao.findOne(id);
 						workOvertime.setWo_status(MobileStatus.COMMITED.getPhrase());
 						workOvertime.setWo_statuscode(MobileStatus.COMMITED.name());
 						workOvertimeDao.save(workOvertime);

+ 29 - 0
src/main/java/com/uas/platform/b2b/model/DeputyOrder.java

@@ -181,6 +181,18 @@ public class DeputyOrder implements Serializable {
 	@Column(name = "deo_erpdate")
 	private Date erpdate;
 
+	/**
+	 * 币别
+	 */
+	@Column(name = "deo_currency")
+	private String currency;
+
+	/**
+	 * 费率
+	 */
+	@Column(name = "deo_rate")
+	private Double rate;
+
 	/*******************
 	 * 下单明细
 	 *******************/
@@ -774,6 +786,22 @@ public class DeputyOrder implements Serializable {
 		this.erpdate = erpdate;
 	}
 
+	public String getCurrency() {
+		return currency;
+	}
+
+	public void setCurrency(String currency) {
+		this.currency = currency;
+	}
+
+	public Double getRate() {
+		return rate;
+	}
+
+	public void setRate(Double rate) {
+		this.rate = rate;
+	}
+
 	public Short getPrint() {
 		return print;
 	}
@@ -781,4 +809,5 @@ public class DeputyOrder implements Serializable {
 	public void setPrint(Short print) {
 		this.print = print;
 	}
+
 }

+ 6 - 2
src/main/java/com/uas/platform/b2b/service/impl/DeputyOrderServiceImpl.java

@@ -166,7 +166,9 @@ public class DeputyOrderServiceImpl implements DeputyOrderService {
 		order.setVenduseruu(deorder.getVenduseruu());
 		order.setEnuu(SystemSession.getUser().getEnterprise().getUu());
 		order.setEntrystatus(deorder.getEntrystatus());
-		order.setDeputyuu(Long.valueOf(10041166));
+		order.setDeputyuu(Long.valueOf(10041166));// TODO 以后需要添加其他中间商
+		order.setRate(vendorRate());
+		order.setCurrency("USD");
 		int i = 1;
 		if (order.getId() == null) {// 新增
 			List<DeputyOrderItem> items = new ArrayList<DeputyOrderItem>();
@@ -190,8 +192,10 @@ public class DeputyOrderServiceImpl implements DeputyOrderService {
 			} else {
 				map.put("error", "订单保存失败");
 			}
+		} else {// 更新
+			deputyOrderDao.save(order);
+			map.put("id", order.getId());
 		}
-
 		return map;
 	}
 

+ 2 - 2
src/main/webapp/resources/js/index/app.js

@@ -9234,7 +9234,7 @@ app.controller('SaleSendCtrl', ['$scope', '$filter', 'SaleSend', 'ngTableParams'
 		}
 		
 		$scope.submit = function() {
-			$scope.deOrder.entrystatus = '提交';
+			$scope.deOrder.entrystatus = '提交';
 			angular.forEach($scope.deOrder.deputyOrderItems, function(item) {
 				$scope.deOrder.totalamount += item.amount * item.unitprice;
 				$scope.deOrder.totalpayament += item.amount * item.unitprice;
@@ -9333,7 +9333,7 @@ app.controller('SaleSendCtrl', ['$scope', '$filter', 'SaleSend', 'ngTableParams'
 		}
 		
 		$scope.submit = function() {
-			$scope.deOrder.entrystatus = '提交';
+			$scope.deOrder.entrystatus = '提交';
 			DeputyOrder.saveDeOrder({deOrder: $scope.deOrder}, {}, function(data) {
 				if(data.id) {
 					window.location.hash = "#/purc/deputy/"+data.id;