ylx 7 роки тому
батько
коміт
a665f2bbd8
31 змінених файлів з 1375 додано та 5 видалено
  1. 13 0
      saicLogistics/src/main/java/com/fuzamei/constant/OperationType.java
  2. 12 0
      saicLogistics/src/main/java/com/fuzamei/constant/Role.java
  3. 18 0
      saicLogistics/src/main/java/com/fuzamei/constant/Status.java
  4. 68 0
      saicLogistics/src/main/java/com/fuzamei/entity/DeliverOrder.java
  5. 82 0
      saicLogistics/src/main/java/com/fuzamei/entity/IssueOrder.java
  6. 28 0
      saicLogistics/src/main/java/com/fuzamei/entity/Orders.java
  7. 98 0
      saicLogistics/src/main/java/com/fuzamei/entity/Param.java
  8. 81 0
      saicLogistics/src/main/java/com/fuzamei/entity/SendOrder.java
  9. 68 0
      saicLogistics/src/main/java/com/fuzamei/entity/TallyOrder.java
  10. 120 0
      saicLogistics/src/main/java/com/fuzamei/entity/UserDetail.java
  11. 12 0
      saicLogistics/src/main/java/com/fuzamei/mapper/BoxMapper.xml
  12. 18 0
      saicLogistics/src/main/java/com/fuzamei/mapper/OperationHistoryMapper.xml
  13. 61 0
      saicLogistics/src/main/java/com/fuzamei/mapper/OrderMapper.xml
  14. 60 0
      saicLogistics/src/main/java/com/fuzamei/mapper/OrdersIssueMapper.xml
  15. 99 0
      saicLogistics/src/main/java/com/fuzamei/mapper/UserAuthoricationMapper.xml
  16. 13 0
      saicLogistics/src/main/java/com/fuzamei/mapperInterface/BoxMapper.java
  17. 9 0
      saicLogistics/src/main/java/com/fuzamei/mapperInterface/OperationHistoryMapper.java
  18. 11 0
      saicLogistics/src/main/java/com/fuzamei/mapperInterface/OrderMapper.java
  19. 11 0
      saicLogistics/src/main/java/com/fuzamei/mapperInterface/OrdersIssueMapper.java
  20. 13 0
      saicLogistics/src/main/java/com/fuzamei/mapperInterface/UserAuthoricationMapper.java
  21. 13 0
      saicLogistics/src/main/java/com/fuzamei/service/BoxService.java
  22. 11 0
      saicLogistics/src/main/java/com/fuzamei/service/OrderService.java
  23. 12 0
      saicLogistics/src/main/java/com/fuzamei/service/OrdersIssueService.java
  24. 9 0
      saicLogistics/src/main/java/com/fuzamei/service/UserAuthoricationService.java
  25. 27 0
      saicLogistics/src/main/java/com/fuzamei/service/serviceImpl/BoxServiceImpl.java
  26. 30 0
      saicLogistics/src/main/java/com/fuzamei/service/serviceImpl/OrderServiceImpl.java
  27. 122 0
      saicLogistics/src/main/java/com/fuzamei/service/serviceImpl/OrdersIssueServiceImpl.java
  28. 59 0
      saicLogistics/src/main/java/com/fuzamei/service/serviceImpl/UserAuthoricationServiceImpl.java
  29. 151 5
      saicLogistics/src/main/java/com/fuzamei/web/OrdersIssueAction.java
  30. 25 0
      saicLogistics/src/test/java/com/fuzamei/baseTest/BaseJunit4Test.java
  31. 21 0
      saicLogistics/src/test/java/com/fuzamei/web/UserDetailTest.java

+ 13 - 0
saicLogistics/src/main/java/com/fuzamei/constant/OperationType.java

@@ -0,0 +1,13 @@
+package com.fuzamei.constant;
+
+public class OperationType {
+	private OperationType() {
+		throw new AssertionError("禁止实例化");
+	}
+	public static final Integer ADD_ORDER = 1;//添加订单
+	public static final Integer SEND = 2;//发货
+	public static final Integer DELIVER = 3;//承运
+	public static final Integer CONFIRM = 4;//确认收货
+	public static final Integer REJECT = 5;//拒绝收货
+	
+}

+ 12 - 0
saicLogistics/src/main/java/com/fuzamei/constant/Role.java

@@ -0,0 +1,12 @@
+package com.fuzamei.constant;
+
+public class Role {
+	private Role(){
+		throw new AssertionError("can not be instaniated");
+	}
+	public static final String PLANNER="计划员";
+	public static final String ADMIN="管理员";
+	public static final String SUPPLIER="供应商";
+	public static final String CARRIER="承运商";
+	public static final String STOCKER="点货员";
+}

+ 18 - 0
saicLogistics/src/main/java/com/fuzamei/constant/Status.java

@@ -0,0 +1,18 @@
+package com.fuzamei.constant;
+
+import java.util.Arrays;
+import java.util.List;
+
+public class Status {
+	private Status() {
+		throw new AssertionError("禁止实例化");
+	}
+	public static final Integer UNSEND = 1;			//待发货
+	public static final Integer UNDELIVER = 2;		//待运输
+	public static final Integer DELIVERING = 3;		//运输中
+	public static final Integer TALLIED = 4;		//已点货
+	public static final Integer REJECTED = 5;		//拒收
+	
+	
+	public static final List<Integer> ALL=Arrays.asList(new Integer[]{UNSEND,UNDELIVER,DELIVERING,TALLIED,REJECTED});
+}

+ 68 - 0
saicLogistics/src/main/java/com/fuzamei/entity/DeliverOrder.java

@@ -0,0 +1,68 @@
+package com.fuzamei.entity;
+
+public class DeliverOrder {
+	private Integer orderId;		//订单id
+	private String boxNo;			//箱号
+	private Integer boxQty;			//箱子数量
+	private String carrierName;		//承运商姓名
+	private Long transportTime;		//承运时间
+	private String carNo;			//车牌号
+	private String statusName;		//状态名
+	private Long createTime;        //订单创建时间
+	private Long updateTime;        //订单更新时间
+	public Integer getOrderId() {
+		return orderId;
+	}
+	public void setOrderId(Integer orderId) {
+		this.orderId = orderId;
+	}
+	public String getBoxNo() {
+		return boxNo;
+	}
+	public void setBoxNo(String boxNo) {
+		this.boxNo = boxNo;
+	}
+	public Integer getBoxQty() {
+		return boxQty;
+	}
+	public void setBoxQty(Integer boxQty) {
+		this.boxQty = boxQty;
+	}
+	public String getCarrierName() {
+		return carrierName;
+	}
+	public void setCarrierName(String carrierName) {
+		this.carrierName = carrierName;
+	}
+	public Long getTransportTime() {
+		return transportTime;
+	}
+	public void setTransportTime(Long transportTime) {
+		this.transportTime = transportTime;
+	}
+	public String getCarNo() {
+		return carNo;
+	}
+	public void setCarNo(String carNo) {
+		this.carNo = carNo;
+	}
+	public String getStatusName() {
+		return statusName;
+	}
+	public void setStatusName(String statusName) {
+		this.statusName = statusName;
+	}
+	public Long getCreateTime() {
+		return createTime;
+	}
+	public void setCreateTime(Long createTime) {
+		this.createTime = createTime;
+	}
+	public Long getUpdateTime() {
+		return updateTime;
+	}
+	public void setUpdateTime(Long updateTime) {
+		this.updateTime = updateTime;
+	}
+	
+}

+ 82 - 0
saicLogistics/src/main/java/com/fuzamei/entity/IssueOrder.java

@@ -0,0 +1,82 @@
+package com.fuzamei.entity;
+
+/**
+ * 
+ * @className:IssueOrder[订单发布表实体类]
+ * @author:ylx--->[yanglingxiao2009@163.com]
+ * @date:2018年1月25日下午7:27:38
+ * @version v1.0
+ */
+public class IssueOrder {
+	private Integer orderId;		//订单id
+	private String partNo;			//零件号
+	private String boxNo;			//箱号
+	private Integer inboxQty;		//箱中零件数量
+	private Long requireTime;		//订单需求时间
+	private String plannerName;		//计划员姓名
+	private String supplierName;	//供应商姓名
+	private String statusName;		//状态名
+	private Long createTime;        //订单创建时间
+	private Long updateTime;        //订单更新时间
+	public Integer getOrderId() {
+		return orderId;
+	}
+	public void setOrderId(Integer orderId) {
+		this.orderId = orderId;
+	}
+	public String getPartNo() {
+		return partNo;
+	}
+	public void setPartNo(String partNo) {
+		this.partNo = partNo;
+	}
+	public String getBoxNo() {
+		return boxNo;
+	}
+	public void setBoxNo(String boxNo) {
+		this.boxNo = boxNo;
+	}
+	public Integer getInboxQty() {
+		return inboxQty;
+	}
+	public void setInboxQty(Integer inboxQty) {
+		this.inboxQty = inboxQty;
+	}
+	public Long getRequireTime() {
+		return requireTime;
+	}
+	public void setRequireTime(Long requireTime) {
+		this.requireTime = requireTime;
+	}
+	public String getPlannerName() {
+		return plannerName;
+	}
+	public void setPlannerName(String plannerName) {
+		this.plannerName = plannerName;
+	}
+	public String getSupplierName() {
+		return supplierName;
+	}
+	public void setSupplierName(String supplierName) {
+		this.supplierName = supplierName;
+	}
+	public String getStatusName() {
+		return statusName;
+	}
+	public void setStatusName(String statusName) {
+		this.statusName = statusName;
+	}
+	public Long getCreateTime() {
+		return createTime;
+	}
+	public void setCreateTime(Long createTime) {
+		this.createTime = createTime;
+	}
+	public Long getUpdateTime() {
+		return updateTime;
+	}
+	public void setUpdateTime(Long updateTime) {
+		this.updateTime = updateTime;
+	}
+	
+}

+ 28 - 0
saicLogistics/src/main/java/com/fuzamei/entity/Orders.java

@@ -18,9 +18,13 @@ public class Orders {
 	private Long requireTime;		//订单需求时间
 	private Long sendTime;			//订单发货时间
 	private Integer plannerId;		//计划员id
+	private String plannerName;		//计划员姓名
 	private Integer supplierId;		//供应商id
+	private String supplierName;	//供应商姓名
 	private Integer carrierId;		//承运商id
+	private String carrierName;		//承运商姓名
 	private Integer receiverId;		//收货员id
+	private String receiverName;	//收货员姓名
 	private Long transportTime;		//承运时间
 	private Long tallyTime;			//点货时间
 	private String carNo;			//车牌号
@@ -28,6 +32,30 @@ public class Orders {
 	private String statusName;		//状态名
 	private Long createTime;        //订单创建时间
 	private Long updateTime;        //订单更新时间
+	public String getPlannerName() {
+		return plannerName;
+	}
+	public void setPlannerName(String plannerName) {
+		this.plannerName = plannerName;
+	}
+	public String getSupplierName() {
+		return supplierName;
+	}
+	public void setSupplierName(String supplierName) {
+		this.supplierName = supplierName;
+	}
+	public String getCarrierName() {
+		return carrierName;
+	}
+	public void setCarrierName(String carrierName) {
+		this.carrierName = carrierName;
+	}
+	public String getReceiverName() {
+		return receiverName;
+	}
+	public void setReceiverName(String receiverName) {
+		this.receiverName = receiverName;
+	}
 	public String getBoxName() {
 		return boxName;
 	}

+ 98 - 0
saicLogistics/src/main/java/com/fuzamei/entity/Param.java

@@ -8,7 +8,12 @@ package com.fuzamei.entity;
  */
 public class Param {
 	private Integer userId;				//用户id
+	private Integer page;				//页数
+	private Integer rowNum;				//单页显示条目数量
+	private Integer startPage;			//起始页
 	private String supplierName;		//供应商名称
+	private Integer supplierId;			//供应商id
+	private Integer plannerId;			//计划员id
 	private String boxNo;				//箱号
 	private String partNo;				//零件号
 	private Integer inboxQty;			//箱中零件数量
@@ -19,6 +24,92 @@ public class Param {
 	private Integer confirm;			//收货确认码1表示确认收货,0表示拒绝收货
 	private Long startTime;				//起始时间
 	private Long endTime;				//结束时间
+	private Long requireTime;			//需求时间
+	private Long createTime;			//创建时间
+	private Long updateTime;			//更新时间
+	private Integer operationTypeId;	//操作类型id
+	private Integer operatorId;			//操作人id
+	private Long operationTime;			//操作时间
+	private UserDetail userDetail;		//用户详细信息对象
+	private Orders order;				//整个订单详细信息
+	public Orders getOrder() {
+		return order;
+	}
+	public void setOrder(Orders order) {
+		this.order = order;
+	}
+	public Integer getPlannerId() {
+		return plannerId;
+	}
+	public void setPlannerId(Integer plannerId) {
+		this.plannerId = plannerId;
+	}
+	public Long getCreateTime() {
+		return createTime;
+	}
+	public void setCreateTime(Long createTime) {
+		this.createTime = createTime;
+	}
+	public Integer getOperationTypeId() {
+		return operationTypeId;
+	}
+	public void setOperationTypeId(Integer operationTypeId) {
+		this.operationTypeId = operationTypeId;
+	}
+	public Integer getOperatorId() {
+		return operatorId;
+	}
+	public void setOperatorId(Integer operatorId) {
+		this.operatorId = operatorId;
+	}
+	public Long getOperationTime() {
+		return operationTime;
+	}
+	public void setOperationTime(Long operationTime) {
+		this.operationTime = operationTime;
+	}
+	public Long getRequireTime() {
+		return requireTime;
+	}
+	public void setRequireTime(Long requireTime) {
+		this.requireTime = requireTime;
+	}
+	public Long getUpdateTime() {
+		return updateTime;
+	}
+	public void setUpdateTime(Long updateTime) {
+		this.updateTime = updateTime;
+	}
+	public Integer getSupplierId() {
+		return supplierId;
+	}
+	public void setSupplierId(Integer supplierId) {
+		this.supplierId = supplierId;
+	}
+	public Integer getRowNum() {
+		return rowNum;
+	}
+	public void setRowNum(Integer rowNum) {
+		this.rowNum = rowNum;
+	}
+	public Integer getStartPage() {
+		return startPage;
+	}
+	public void setStartPage(Integer startPage) {
+		this.startPage = startPage;
+	}
+	public UserDetail getUserDetail() {
+		return userDetail;
+	}
+	public void setUserDetail(UserDetail userDetail) {
+		this.userDetail = userDetail;
+	}
+	public Integer getPage() {
+		return page;
+	}
+	public void setPage(Integer page) {
+		this.page = page;
+	}
 	public Integer getUserId() {
 		return userId;
 	}
@@ -91,5 +182,12 @@ public class Param {
 	public void setEndTime(Long endTime) {
 		this.endTime = endTime;
 	}
+	@Override
+	public String toString() {
+		return "Param [userId=" + userId + ", supplierName=" + supplierName + ", boxNo=" + boxNo + ", partNo=" + partNo
+				+ ", inboxQty=" + inboxQty + ", statusId=" + statusId + ", orderId=" + orderId + ", carrierId="
+				+ carrierId + ", carNo=" + carNo + ", confirm=" + confirm + ", startTime=" + startTime + ", endTime="
+				+ endTime + "]";
+	}
 	
 }

+ 81 - 0
saicLogistics/src/main/java/com/fuzamei/entity/SendOrder.java

@@ -0,0 +1,81 @@
+package com.fuzamei.entity;
+/**
+ * 
+ * @className:SendOrder[部件发货表实体类]
+ * @author:ylx--->[yanglingxiao2009@163.com]
+ * @date:2018年1月25日下午7:32:45
+ * @version v1.0
+ */
+public class SendOrder {
+	private Integer orderId;		//订单id
+	private String partNo;			//零件号
+	private String boxNo;			//箱号
+	private Integer inboxQty;		//箱中零件数量
+	private Long sendTime;			//订单发货时间
+	private String supplierName;	//供应商姓名
+	private String carrierName;		//承运商姓名
+	private String statusName;		//状态名
+	private Long createTime;        //订单创建时间
+	private Long updateTime;        //订单更新时间
+	public Integer getOrderId() {
+		return orderId;
+	}
+	public void setOrderId(Integer orderId) {
+		this.orderId = orderId;
+	}
+	public String getPartNo() {
+		return partNo;
+	}
+	public void setPartNo(String partNo) {
+		this.partNo = partNo;
+	}
+	public String getBoxNo() {
+		return boxNo;
+	}
+	public void setBoxNo(String boxNo) {
+		this.boxNo = boxNo;
+	}
+	public Integer getInboxQty() {
+		return inboxQty;
+	}
+	public void setInboxQty(Integer inboxQty) {
+		this.inboxQty = inboxQty;
+	}
+	public Long getSendTime() {
+		return sendTime;
+	}
+	public void setSendTime(Long sendTime) {
+		this.sendTime = sendTime;
+	}
+	public String getSupplierName() {
+		return supplierName;
+	}
+	public void setSupplierName(String supplierName) {
+		this.supplierName = supplierName;
+	}
+	public String getCarrierName() {
+		return carrierName;
+	}
+	public void setCarrierName(String carrierName) {
+		this.carrierName = carrierName;
+	}
+	public String getStatusName() {
+		return statusName;
+	}
+	public void setStatusName(String statusName) {
+		this.statusName = statusName;
+	}
+	public Long getCreateTime() {
+		return createTime;
+	}
+	public void setCreateTime(Long createTime) {
+		this.createTime = createTime;
+	}
+	public Long getUpdateTime() {
+		return updateTime;
+	}
+	public void setUpdateTime(Long updateTime) {
+		this.updateTime = updateTime;
+	}
+	
+}

+ 68 - 0
saicLogistics/src/main/java/com/fuzamei/entity/TallyOrder.java

@@ -0,0 +1,68 @@
+package com.fuzamei.entity;
+
+public class TallyOrder {
+	private Integer orderId;		//订单id
+	private String partNo;			//零件号
+	private String boxNo;			//箱号
+	private Integer boxQty;			//箱子数量
+	private Long tallyTime;			//点货时间
+	private String receiverName;	//收货员姓名
+	private String carNo;			//车牌号
+	private String statusName;		//状态名
+	private Long createTime;        //订单创建时间
+	public Integer getOrderId() {
+		return orderId;
+	}
+	public void setOrderId(Integer orderId) {
+		this.orderId = orderId;
+	}
+	public String getPartNo() {
+		return partNo;
+	}
+	public void setPartNo(String partNo) {
+		this.partNo = partNo;
+	}
+	public String getBoxNo() {
+		return boxNo;
+	}
+	public void setBoxNo(String boxNo) {
+		this.boxNo = boxNo;
+	}
+	public Integer getBoxQty() {
+		return boxQty;
+	}
+	public void setBoxQty(Integer boxQty) {
+		this.boxQty = boxQty;
+	}
+	public Long getTallyTime() {
+		return tallyTime;
+	}
+	public void setTallyTime(Long tallyTime) {
+		this.tallyTime = tallyTime;
+	}
+	public String getReceiverName() {
+		return receiverName;
+	}
+	public void setReceiverName(String receiverName) {
+		this.receiverName = receiverName;
+	}
+	public String getCarNo() {
+		return carNo;
+	}
+	public void setCarNo(String carNo) {
+		this.carNo = carNo;
+	}
+	public String getStatusName() {
+		return statusName;
+	}
+	public void setStatusName(String statusName) {
+		this.statusName = statusName;
+	}
+	public Long getCreateTime() {
+		return createTime;
+	}
+	public void setCreateTime(Long createTime) {
+		this.createTime = createTime;
+	}
+	
+}

+ 120 - 0
saicLogistics/src/main/java/com/fuzamei/entity/UserDetail.java

@@ -0,0 +1,120 @@
+package com.fuzamei.entity;
+/**
+ * 
+ * @className:UserDetail[用户所有详细信息实体类]
+ * @author:ylx--->[yanglingxiao2009@163.com]
+ * @date:2018年1月25日上午10:05:27
+ * @version v1.0
+ */
+
+import java.util.List;
+
+public class UserDetail {
+	private Integer id;					//主键id
+	private Integer userId;				//用户id
+	private String username;			//账号名
+	private String password;			//密码
+	private Integer pId;				//上级id
+	private Integer roleId;				//角色id
+	private String roleName;			//角色名称
+	private String personName;			//人名
+	private Integer random;				//随机数(用于产生公钥私钥)
+	private String token;				//令牌
+	private Long createTime;			//用户创建时间
+	private Long updateTime;			//更新时间
+	private List<Module> modules;		//模块信息
+	private List<UserDetail> users;			//对应的人员信息
+	public Integer getId() {
+		return id;
+	}
+	public void setId(Integer id) {
+		this.id = id;
+	}
+	public Integer getUserId() {
+		return userId;
+	}
+	public void setUserId(Integer userId) {
+		this.userId = userId;
+	}
+	public String getUsername() {
+		return username;
+	}
+	public void setUsername(String username) {
+		this.username = username;
+	}
+	public String getPassword() {
+		return password;
+	}
+	public void setPassword(String password) {
+		this.password = password;
+	}
+	public Integer getpId() {
+		return pId;
+	}
+	public void setpId(Integer pId) {
+		this.pId = pId;
+	}
+	public Integer getRoleId() {
+		return roleId;
+	}
+	public void setRoleId(Integer roleId) {
+		this.roleId = roleId;
+	}
+	public String getRoleName() {
+		return roleName;
+	}
+	public void setRoleName(String roleName) {
+		this.roleName = roleName;
+	}
+	public String getPersonName() {
+		return personName;
+	}
+	public void setPersonName(String personName) {
+		this.personName = personName;
+	}
+	public Integer getRandom() {
+		return random;
+	}
+	public void setRandom(Integer random) {
+		this.random = random;
+	}
+	public String getToken() {
+		return token;
+	}
+	public void setToken(String token) {
+		this.token = token;
+	}
+	public Long getCreateTime() {
+		return createTime;
+	}
+	public void setCreateTime(Long createTime) {
+		this.createTime = createTime;
+	}
+	public Long getUpdateTime() {
+		return updateTime;
+	}
+	public void setUpdateTime(Long updateTime) {
+		this.updateTime = updateTime;
+	}
+	public List<Module> getModules() {
+		return modules;
+	}
+	public void setModules(List<Module> modules) {
+		this.modules = modules;
+	}
+	public List<UserDetail> getUsers() {
+		return users;
+	}
+	public void setUsers(List<UserDetail> users) {
+		this.users = users;
+	}
+	@Override
+	public String toString() {
+		return "UserDetail [id=" + id + ", userId=" + userId + ", username=" + username + ", password=" + password
+				+ ", pId=" + pId + ", roleId=" + roleId + ", roleName=" + roleName + ", personName=" + personName
+				+ ", random=" + random + ", token=" + token + ", createTime=" + createTime + ", updateTime="
+				+ updateTime + ", modules=" + modules + ", users=" + users + "]";
+	}
+	
+	
+}

+ 12 - 0
saicLogistics/src/main/java/com/fuzamei/mapper/BoxMapper.xml

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace = "com.fuzamei.mapperInterface.BoxMapper">
+	
+	<select id="checkIfHasTheBoxNo" resultType="int">
+		select count(*) from box where box_no=#{boxNo}
+	</select>
+	
+	<select id="queryAllBoxInformation" resultType="Box">
+		select * from box
+	</select>
+</mapper>

+ 18 - 0
saicLogistics/src/main/java/com/fuzamei/mapper/OperationHistoryMapper.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace = "com.fuzamei.mapperInterface.OperationHistoryMapper">
+	
+	<!-- 插入订单操作记录表中 -->
+	<insert id="addToHistory">
+		insert into
+			operation_history(order_id,
+						  	  operation_type_id,
+						  	  operator_id,
+						      operation_time)
+			values(#{orderId},
+				   #{operationTypeId},
+				   #{operatorId},
+				   #{operationTime}) 
+	</insert>
+	
+</mapper>

+ 61 - 0
saicLogistics/src/main/java/com/fuzamei/mapper/OrderMapper.xml

@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace = "com.fuzamei.mapperInterface.OrderMapper">
+	
+	<select id="queryOrderById" resultType="int">
+		select count(*) from orders where order_id=#{orderId}
+	</select>
+	
+	<select id="queryFullOrderByOrderId" resultType="Orders">
+		select 
+			temp.order_id,
+			temp.part_no,
+			temp.box_no,
+			b.box_name,
+			temp.box_qty,
+			temp.inbox_qty,
+			temp.require_time,
+			temp.send_time,
+			temp.planner_id,
+			up.person_name as planner_name,
+			temp.supplier_id,
+			us.person_name as supplier_name,
+			temp.carrier_id,
+			uc.person_name as carrier_name,
+			temp.receiver_id,
+			ur.person_name as receiver_name,
+			temp.transport_time,
+			temp.tally_time,
+			temp.car_no,
+			temp.status_id,
+			s.status_name,
+			temp.create_time,
+			temp.update_time
+		from
+			(select * from orders where orderId=#{orderId})temp
+		left join 
+			status s
+		on 
+			temp.status_id=s.status_id
+		left join 
+			box b
+		on 
+			temp.box_no=b.box_no
+		left join
+			user up
+		on 
+			temp.planner_id=up.user_id
+		left join 
+			user us
+		on 
+			temp.supplier_id=us.user_id
+		left join 
+			user uc
+		on 
+			temp.carrier_id=uc.user_id
+		left join 
+			user ur
+		on 
+			temp.receiver_id=ur.user_id
+	</select>
+</mapper>

+ 60 - 0
saicLogistics/src/main/java/com/fuzamei/mapper/OrdersIssueMapper.xml

@@ -2,6 +2,66 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace = "com.fuzamei.mapperInterface.OrdersIssueMapper">
 	
+	<select id="queryOrdersByPlanner" parameterType="Param" resultType="Order">
+		select 
+			o.order_id,
+			u.person_name as supplier_name,
+			o.part_no,
+			o.box_no,
+			o.inbox_qty,
+			o.require_time,
+			o.update_time,
+			s.status_name
+		from 
+			orders o
+		left join 
+			status s
+		on 
+			o.status_id=s.status_id
+		left join 
+			users u
+		on 
+			o.supplier_id=u.user_id
+		<where>
+			<if test="supplierName!=null">
+				o.supplier_name=#{supplierName}
+			</if>
+			<if test="boxNo!=null">
+				and o.box_no=#{boxNo}
+			</if>
+			<if test="startTime!=null and endTime!=null">
+				and o.require_time between #{startTime} and #{endTime}
+			</if>
+		</where>
+		limit #{startPage},#{rowNum}
+		order by o.require_time desc
+	</select>
+	
+	<!-- 插入新订单 -->
+	<insert id="addOrder">
+		insert into 
+			orders(order_id,
+				   part_no,
+				   box_no,
+				   inbox_qty,
+				   require_time,
+				   create_time,
+				   update_time,
+				   status_id,
+				   planner_id,
+				   supplier_id)
+			values(#{orderId},
+				   #{partNo},
+				   #{boxNo},
+				   #{inboxQty},
+				   #{requireTime},
+				   #{createTime},
+				   #{updateTime},
+				   #{statusId},
+				   #{plannerId},
+				   #{supplierId})
+	</insert>
+	
 	
 	
 </mapper>

+ 99 - 0
saicLogistics/src/main/java/com/fuzamei/mapper/UserAuthoricationMapper.xml

@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace = "com.fuzamei.mapperInterface.UserAuthoricationMapper">
+	
+	<!-- 根据userId和角色名称查询用户所有详细信息 -->
+	<select id="queryUserDetail" resultMap="UserDetailRM">
+		select 
+			temp.id,
+			temp.user_id,
+			temp.username,
+			temp.password,
+			temp.p_id,
+			temp.role_id,
+			temp.role_name,
+			temp.person_name,
+			temp.random,
+			temp.create_time,
+			temp.update_time,
+			m.id as id2,
+			m.module_id,
+			m.module_name,
+			supplier.id as id3,
+			supplier.user_id as s_user_id,
+			supplier.person_name as s_person_name
+		from 
+			(select 
+				u.id,
+				u.user_id,
+				u.username,
+				u.password,
+				u.p_id,
+				u.role_id,
+				r.role_name,
+				u.person_name,
+				u.random,
+				u.create_time,	
+				u.update_time
+			from 
+				users u
+			left join 
+				role r
+			on 
+				u.role_id=r.role_id
+			where u.user_id=#{userId})temp
+		left join 
+			role_module rm
+		on 
+			rm.role_id=temp.role_id
+		left join 
+			module m
+		on 
+			m.module_id=rm.module_id
+		left join 
+			planner_supplier ps
+		on 
+			temp.user_id=ps.planner_id
+		left join 
+			users supplier
+		on 
+			ps.supplier_id=supplier.user_id
+	</select>
+	
+	<resultMap type="UserDetail" id="UserDetailRM" autoMapping="true">
+		<id column="id" property="id"/>
+		<collection property="modules" ofType="Module" javaType="java.util.List">
+			<id column="id2" property="id"/>
+			<result column="module_name" property="module_name"/>
+		</collection>
+		<collection property="users" ofType="UserDetail" javaType="java.util.List">
+			<id column="id3" property="id"/>
+			<result column="s_user_id" property="userId"/>
+			<result column="s_person_name" property="personName"/>
+		</collection>
+	</resultMap>
+	
+	<!-- 根据id和角色名称查询用户是否存在来判断权限 -->
+	<select id="queryUserAuthority" resultType="UserDetail">
+		select 
+			u.id,
+			u.user_id,
+			u.username,
+			u.password,
+			u.p_id,
+			u.role_id,
+			r.role_name,
+			u.person_name,
+			u.random,
+			u.create_time,	
+			u.update_time 
+		from
+			users u
+		left join 
+			role r
+		on 
+			u.role_id=r.role_id
+		where 
+			u.user_id=#{userId}
+	</select>
+</mapper>

+ 13 - 0
saicLogistics/src/main/java/com/fuzamei/mapperInterface/BoxMapper.java

@@ -0,0 +1,13 @@
+package com.fuzamei.mapperInterface;
+
+import java.util.List;
+
+import com.fuzamei.entity.Box;
+
+public interface BoxMapper {
+
+	int checkIfHasTheBoxNo(String boxNo);
+
+	List<Box> queryAllBoxInformation();
+
+}

+ 9 - 0
saicLogistics/src/main/java/com/fuzamei/mapperInterface/OperationHistoryMapper.java

@@ -0,0 +1,9 @@
+package com.fuzamei.mapperInterface;
+
+import com.fuzamei.entity.Param;
+
+public interface OperationHistoryMapper {
+
+	void addToHistory(Param param);
+
+}

+ 11 - 0
saicLogistics/src/main/java/com/fuzamei/mapperInterface/OrderMapper.java

@@ -0,0 +1,11 @@
+package com.fuzamei.mapperInterface;
+
+import com.fuzamei.entity.Orders;
+
+public interface OrderMapper {
+
+	int queryOrderById(int orderId);
+
+	Orders queryFullOrderByOrderId(int orderId);
+
+}

+ 11 - 0
saicLogistics/src/main/java/com/fuzamei/mapperInterface/OrdersIssueMapper.java

@@ -1,5 +1,16 @@
 package com.fuzamei.mapperInterface;
 
+import java.util.List;
+
+import com.fuzamei.entity.Orders;
+import com.fuzamei.entity.Param;
+
 public interface OrdersIssueMapper {
 
+	List<Orders> queryOrdersByPlanner(Param param);//计划员查询的订单信息
+
+	int findQueryCountByPlanner(Param param);//计划员查询条数总数
+
+	void addOrder(Param param);//新订单生成
+
 }

+ 13 - 0
saicLogistics/src/main/java/com/fuzamei/mapperInterface/UserAuthoricationMapper.java

@@ -0,0 +1,13 @@
+package com.fuzamei.mapperInterface;
+
+import org.apache.ibatis.annotations.Param;
+
+import com.fuzamei.entity.UserDetail;
+
+public interface UserAuthoricationMapper {
+
+	UserDetail queryUserDetail(Integer userId);
+
+	UserDetail queryUserAuthority(Integer userId);
+
+}

+ 13 - 0
saicLogistics/src/main/java/com/fuzamei/service/BoxService.java

@@ -0,0 +1,13 @@
+package com.fuzamei.service;
+
+import java.util.List;
+
+import com.fuzamei.entity.Box;
+
+public interface BoxService {
+
+	void checkIfHasTheBoxNo(String checkBlankAndAssignString);
+
+	List<Box> queryAllBoxInformation();
+
+}

+ 11 - 0
saicLogistics/src/main/java/com/fuzamei/service/OrderService.java

@@ -0,0 +1,11 @@
+package com.fuzamei.service;
+
+import com.fuzamei.entity.Orders;
+
+public interface OrderService {
+
+	void checkIfHasTheSameId(int checkAndAssignInt);
+
+	Orders queryFullOrderByOrderId(int checkAndAssignInt);
+
+}

+ 12 - 0
saicLogistics/src/main/java/com/fuzamei/service/OrdersIssueService.java

@@ -1,6 +1,18 @@
 package com.fuzamei.service;
 
+import java.util.Map;
+
+import com.fuzamei.entity.Orders;
+import com.fuzamei.entity.Param;
+import com.fuzamei.util.PageDTO;
+
 public interface OrdersIssueService {
+
+	PageDTO queryOrdersByPlanner(Param param);
+
+	void addOrder(Param param);
+
+	Map<String, Object> orderTracking(Param param);
 	
 	
 }

+ 9 - 0
saicLogistics/src/main/java/com/fuzamei/service/UserAuthoricationService.java

@@ -0,0 +1,9 @@
+package com.fuzamei.service;
+
+import com.fuzamei.entity.UserDetail;
+
+public interface UserAuthoricationService {
+	UserDetail queryUserDetail(Integer userId,String... roleNames);
+
+	void queryUserAuthority(Integer userId, String... roleNames);
+}

+ 27 - 0
saicLogistics/src/main/java/com/fuzamei/service/serviceImpl/BoxServiceImpl.java

@@ -0,0 +1,27 @@
+package com.fuzamei.service.serviceImpl;
+
+import java.util.List;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.fuzamei.entity.Box;
+import com.fuzamei.mapperInterface.BoxMapper;
+import com.fuzamei.service.BoxService;
+@Service
+public class BoxServiceImpl implements BoxService {
+	
+	@Autowired
+	private BoxMapper boxMapper;
+
+	@Override
+	public void checkIfHasTheBoxNo(String boxNo) {
+		int count = boxMapper.checkIfHasTheBoxNo(boxNo);
+		if(count==0) throw new RuntimeException("该箱号不存在");
+	}
+
+	@Override
+	public List<Box> queryAllBoxInformation() {
+		return boxMapper.queryAllBoxInformation();
+	}
+}

+ 30 - 0
saicLogistics/src/main/java/com/fuzamei/service/serviceImpl/OrderServiceImpl.java

@@ -0,0 +1,30 @@
+package com.fuzamei.service.serviceImpl;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.fuzamei.entity.Orders;
+import com.fuzamei.mapperInterface.OrderMapper;
+import com.fuzamei.service.OrderService;
+@Service
+public class OrderServiceImpl implements OrderService {
+	
+	@Autowired
+	private OrderMapper orderMapper;
+
+	@Override
+	public void checkIfHasTheSameId(int orderId) {
+		int count = orderMapper.queryOrderById(orderId);
+		if(count!=0) throw new RuntimeException("订单号已存在");
+	}
+
+	@Override
+	public Orders queryFullOrderByOrderId(int orderId) {
+		Orders order = orderMapper.queryFullOrderByOrderId(orderId);
+		if(null==order){
+			throw new RuntimeException("该订单不存在");
+		}
+		return order;
+	}
+	
+}

+ 122 - 0
saicLogistics/src/main/java/com/fuzamei/service/serviceImpl/OrdersIssueServiceImpl.java

@@ -1,14 +1,136 @@
 package com.fuzamei.service.serviceImpl;
 
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
+import com.fuzamei.constant.OperationType;
+import com.fuzamei.constant.Role;
+import com.fuzamei.constant.Status;
+import com.fuzamei.entity.DeliverOrder;
+import com.fuzamei.entity.IssueOrder;
+import com.fuzamei.entity.Orders;
+import com.fuzamei.entity.Param;
+import com.fuzamei.entity.SendOrder;
+import com.fuzamei.entity.TallyOrder;
+import com.fuzamei.entity.UserDetail;
+import com.fuzamei.mapperInterface.OperationHistoryMapper;
 import com.fuzamei.mapperInterface.OrdersIssueMapper;
 import com.fuzamei.service.OrdersIssueService;
+import com.fuzamei.util.PageDTO;
 
 @Service
 public class OrdersIssueServiceImpl implements OrdersIssueService {
 	
 	@Autowired
 	private OrdersIssueMapper ordersIssueMapper;
+	
+	@Autowired
+	private OperationHistoryMapper operationHistoryMapper;
+
+	@Override
+	public PageDTO queryOrdersByPlanner(Param param) {
+		PageDTO pageDto=new PageDTO();
+		List<Orders> orderList = ordersIssueMapper.queryOrdersByPlanner(param);
+		int count = ordersIssueMapper.findQueryCountByPlanner(param);
+		pageDto.setRows(orderList);
+		pageDto.setTotal(count);
+		return pageDto;
+	}
+
+	@Override
+	@Transactional(rollbackFor=Exception.class)
+	public void addOrder(Param param) {
+		Long currentTime = System.currentTimeMillis();
+		//插入【订单表】
+		param.setPlannerId(param.getUserId());
+		param.setRequireTime(currentTime);
+		param.setCreateTime(currentTime);
+		param.setUpdateTime(currentTime);
+		param.setStatusId(Status.UNSEND);
+		ordersIssueMapper.addOrder(param);
+		//插入【操作记录】
+		param.setOperationTypeId(OperationType.ADD_ORDER);
+		param.setOperatorId(param.getUserId());
+		param.setOperationTime(currentTime);
+		operationHistoryMapper.addToHistory(param);
+	}
+
+	@Override
+	public Map<String, Object> orderTracking(Param param) {
+		Orders order = param.getOrder();
+		return dispatchOrderInfo(order);
+	}
+	
+	/**
+	 * 
+	* @Title: dispatchOrderInfo
+	* @Description: TODO(将order表中的所有数据分发给各个小订单表中,然后根据当时订单的状态包装成map)
+	* @param @param order
+	* @param @return    设定文件
+	* @return Map<String,Object>    返回类型
+	* @author ylx
+	* @date 2018年1月25日 下午9:11:39
+	* @throws
+	 */
+	public static final Map<String, Object> dispatchOrderInfo(Orders order){
+		Map<String, Object> map = new LinkedHashMap<String, Object>();
+		IssueOrder issueOrder=new IssueOrder();
+		issueOrder.setOrderId(order.getOrderId());
+		issueOrder.setBoxNo(order.getBoxNo());
+		issueOrder.setCreateTime(order.getCreateTime());
+		issueOrder.setInboxQty(order.getInboxQty());
+		issueOrder.setPartNo(order.getPartNo());
+		issueOrder.setPlannerName(order.getPlannerName());
+		issueOrder.setRequireTime(order.getRequireTime());
+		issueOrder.setUpdateTime(order.getUpdateTime());
+		issueOrder.setStatusName(order.getStatusName());
+		issueOrder.setSupplierName(order.getSupplierName());
+		map.put("issueOrder", issueOrder);
+		if(!Status.UNSEND.equals(order.getStatusName())){
+			SendOrder sendOrder=new SendOrder();
+			sendOrder.setOrderId(order.getOrderId());
+			sendOrder.setBoxNo(order.getBoxNo());
+			sendOrder.setCarrierName(order.getCarrierName());
+			sendOrder.setCreateTime(order.getSendTime());
+			sendOrder.setUpdateTime(order.getUpdateTime());
+			sendOrder.setInboxQty(order.getInboxQty());
+			sendOrder.setPartNo(order.getPartNo());
+			sendOrder.setSendTime(order.getSendTime());
+			sendOrder.setStatusName(order.getStatusName());
+			sendOrder.setSupplierName(order.getSupplierName());
+			map.put("sendOrder", sendOrder);
+		}
+		if(Status.DELIVERING.equals(order.getStatusName())||Status.TALLIED.equals(order.getStatusName())||Status.REJECTED.equals(order.getStatusName())){
+			DeliverOrder deliverOrder = new DeliverOrder();
+			deliverOrder.setBoxNo(order.getBoxNo());
+			deliverOrder.setBoxQty(order.getBoxQty());
+			deliverOrder.setCarNo(order.getCarNo());
+			deliverOrder.setCarrierName(order.getCarrierName());
+			deliverOrder.setCreateTime(order.getTransportTime());
+			deliverOrder.setOrderId(order.getOrderId());
+			deliverOrder.setStatusName(order.getStatusName());
+			deliverOrder.setTransportTime(order.getTransportTime());
+			deliverOrder.setUpdateTime(order.getUpdateTime());
+			map.put("deliverOrder", deliverOrder);
+		}
+		if(Status.TALLIED.equals(order.getStatusName())||Status.REJECTED.equals(order.getStatusName())){
+			TallyOrder tallyOrder=new TallyOrder();
+			tallyOrder.setBoxNo(order.getBoxNo());
+			tallyOrder.setBoxQty(order.getBoxQty());
+			tallyOrder.setCarNo(order.getCarNo());
+			tallyOrder.setCreateTime(order.getTallyTime());
+			tallyOrder.setOrderId(order.getOrderId());
+			tallyOrder.setPartNo(order.getPartNo());
+			tallyOrder.setReceiverName(order.getReceiverName());
+			tallyOrder.setStatusName(order.getStatusName());
+			tallyOrder.setTallyTime(order.getTallyTime());
+			map.put("tallyOrder", tallyOrder);
+		}
+		return map;
+	}
 }

+ 59 - 0
saicLogistics/src/main/java/com/fuzamei/service/serviceImpl/UserAuthoricationServiceImpl.java

@@ -0,0 +1,59 @@
+package com.fuzamei.service.serviceImpl;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.fuzamei.entity.UserDetail;
+import com.fuzamei.mapperInterface.UserAuthoricationMapper;
+import com.fuzamei.service.UserAuthoricationService;
+@Service
+public class UserAuthoricationServiceImpl implements UserAuthoricationService {
+
+	@Autowired
+	private UserAuthoricationMapper userAuthoricationMapper;
+	
+	@Override
+	public UserDetail queryUserDetail(Integer userId,String... roleNames) {
+		UserDetail userDetail = userAuthoricationMapper.queryUserDetail(userId);
+		if(userDetail==null){
+			throw new RuntimeException("无此用户");
+		}
+		if (roleNames.length!=0) {
+			String roleName = userDetail.getRoleName();
+			boolean flag = false;
+			for (String name : roleNames) {
+				if (name.equals(roleName)) {
+					flag = true;
+					break;
+				}
+			}
+			if (!flag) {
+				throw new RuntimeException("无权操作");
+			} 
+		}
+		return userDetail;
+	}
+
+	@Override
+	public void queryUserAuthority(Integer userId, String... roleNames) {
+		UserDetail userDetail = userAuthoricationMapper.queryUserAuthority(userId);
+		if(userDetail==null){
+			throw new RuntimeException("无此用户");
+		}
+		if (roleNames.length!=0) {
+			String roleName = userDetail.getRoleName();
+			boolean flag = false;
+			for (String name : roleNames) {
+				if (name.equals(roleName)) {
+					flag = true;
+					break;
+				}
+			}
+			if (!flag) {
+				throw new RuntimeException("无权操作");
+			} 
+		}
+		
+	}
+
+}

+ 151 - 5
saicLogistics/src/main/java/com/fuzamei/web/OrdersIssueAction.java

@@ -1,5 +1,6 @@
 package com.fuzamei.web;
 
+import java.util.List;
 import java.util.Map;
 
 import org.springframework.beans.factory.annotation.Autowired;
@@ -9,24 +10,44 @@ import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
 
 import com.fuzamei.constant.HintMSG;
+import com.fuzamei.constant.Role;
+import com.fuzamei.entity.Box;
 import com.fuzamei.entity.Orders;
 import com.fuzamei.entity.Param;
+import com.fuzamei.entity.UserDetail;
+import com.fuzamei.service.BoxService;
+import com.fuzamei.service.OrderService;
 import com.fuzamei.service.OrdersIssueService;
+import com.fuzamei.service.UserAuthoricationService;
 import com.fuzamei.util.JSONUtil;
+import com.fuzamei.util.PageDTO;
+import com.fuzamei.util.ValidationUtil;
 
 @RestController
-@RequestMapping(path="/ordersIssue")
+@RequestMapping("/ordersIssue")
 public class OrdersIssueAction {
 
 	@Autowired
 	private OrdersIssueService ordersIssueService;
 	
+	@Autowired
+	private UserAuthoricationService userAuthoricationService;
+	
+	@Autowired
+	private OrderService orderService;
+	
+	@Autowired
+	private BoxService boxService;
+	
+	private Integer rowNum = 10;
+	
 	/**
 	 * 
 	* @Title: queryOrdersByPlanner
 	* @Description: TODO(由计划员查询订单信息)
 	{
 		"userId":"xxx",
+		"page":"1",
 		"supplierName":"",
 		"boxNo":"",
 		"startTime":"",
@@ -37,14 +58,139 @@ public class OrdersIssueAction {
 	* @date 2018年1月24日 下午8:58:24
 	* @throws
 	 */
-	@RequestMapping(path="queryOrdersByPlanner",method=RequestMethod.POST)
+	@RequestMapping(value="/queryOrdersByPlanner",method=RequestMethod.POST)
 	public Map<String, Object> queryOrdersByPlanner(@RequestBody Param param){
 		try {
-			Integer userId = param.getUserId();
-			
-			return JSONUtil.getJsonMap(200, true, HintMSG.QUERY_SUCCESS, null);
+			userAuthoricationService.queryUserAuthority(ValidationUtil.checkAndAssignInt(param.getUserId()), Role.PLANNER);
+			int page = ValidationUtil.checkMinAndAssignInt(param.getPage(), 1);
+			Long startTime=ValidationUtil.checkAndAssignDefaultLong(param.getStartTime(), 0L);
+			Long endTime=ValidationUtil.checkAndAssignDefaultLong(param.getEndTime(), Long.MAX_VALUE);
+			param.setStartTime(startTime);
+			if(startTime<=endTime) param.setEndTime(endTime);
+			else param.setEndTime(Long.MAX_VALUE);
+			param.setStartPage((page - 1) * rowNum);
+			param.setRowNum(rowNum);
+			PageDTO pageDto = ordersIssueService.queryOrdersByPlanner(param);
+			return JSONUtil.getJsonMap(200, true, HintMSG.QUERY_SUCCESS, pageDto);
 		} catch (Exception e) {
 			return JSONUtil.getJsonMap(500, false, HintMSG.QUERY_FAIL+":"+e.getMessage(), null);
 		}
 	}
+	
+	/**
+	 * 
+	* @Title: addOrder
+	* @Description: TODO(由计划员增加新订单)
+	{
+		"userId":"xxx",
+		"orderId":"",
+		"supplierId":"",
+		"partNo":"",
+		"boxNo":"",
+		"inboxQty":""
+	}
+	* @param @return    设定文件
+	* @return Map<String,Object>    返回类型
+	* @author ylx
+	* @date 2018年1月25日 下午1:58:45
+	* @throws
+	 */
+	@RequestMapping(value="/addOrder",method=RequestMethod.POST)
+	public Map<String, Object> addOrder(@RequestBody Param param){
+		try {
+			orderService.checkIfHasTheSameId(ValidationUtil.checkAndAssignInt(param.getOrderId()));
+			UserDetail userDetail = userAuthoricationService.queryUserDetail(ValidationUtil.checkAndAssignInt(param.getUserId()), Role.PLANNER);//检测当前操作用户权限
+			List<UserDetail> users = userDetail.getUsers();
+			int supplierId = ValidationUtil.checkAndAssignInt(param.getSupplierId());
+			boolean flag=false;
+			for (UserDetail user : users) {
+				if(user.getUserId().equals(supplierId)){
+					flag=true;
+					break;
+				}
+			}
+			if(!flag) throw new RuntimeException("查无此供应商");
+			boxService.checkIfHasTheBoxNo(ValidationUtil.checkBlankAndAssignString(param.getBoxNo()));//检测箱号是否存在
+			ValidationUtil.checkAndAssignInt(param.getInboxQty());
+			ordersIssueService.addOrder(param);//生成新订单
+			return JSONUtil.getJsonMap(200, true, HintMSG.OPERATION_SUCCESS, null);
+		} catch (Exception e) {
+			return JSONUtil.getJsonMap(500, false, HintMSG.OPERATION_FAIL+":"+e.getMessage(), null);
+		}
+	}
+	
+	/**
+	 * 
+	* @Title: showSuppliersUnderPlanner
+	* @Description: TODO(当用户添加订单时点击供应商列表时显示该计划员下的所有供应商)
+	{
+		"userId":"xxx"
+	}
+	* @return Map<String,Object>    返回类型
+	* @author ylx
+	* @date 2018年1月25日 下午3:24:56
+	* @throws
+	 */
+	@RequestMapping(value="/showSuppliersUnderPlanner",method=RequestMethod.POST)
+	public Map<String, Object> showSuppliersUnderPlanner(@RequestBody Param param){
+		try {
+			UserDetail userDetail = userAuthoricationService.queryUserDetail(ValidationUtil.checkAndAssignInt(param.getUserId()), Role.PLANNER);//检测当前操作用户权限
+			return JSONUtil.getJsonMap(200, true, HintMSG.QUERY_SUCCESS, userDetail.getUsers());
+		} catch (Exception e) {
+			return JSONUtil.getJsonMap(500, false, HintMSG.QUERY_FAIL+":"+e.getMessage(), null);
+		}
+	}
+	
+	/**
+	 * 
+	* @Title: showAllBoxNo
+	* @Description: TODO(当计划员点击箱号,显示所有箱号)
+	{
+		"userId":"xxx"
+	}
+	* @param @return    设定文件
+	* @return Map<String,Object>    返回类型
+	* @author ylx
+	* @date 2018年1月25日 下午3:57:17
+	* @throws
+	 */
+	@RequestMapping(value="/showAllBoxNo",method=RequestMethod.POST)
+	public Map<String, Object> showAllBoxNo(@RequestBody Param param){
+		try {
+			userAuthoricationService.queryUserAuthority(ValidationUtil.checkAndAssignInt(param.getUserId()), Role.PLANNER);//检测当前操作用户权限
+			List<Box> boxList = boxService.queryAllBoxInformation();
+			return JSONUtil.getJsonMap(200, true, HintMSG.QUERY_SUCCESS, boxList);
+		} catch (Exception e) {
+			return JSONUtil.getJsonMap(500, false, HintMSG.QUERY_FAIL+":"+e.getMessage(), null);
+		}
+	}
+	
+	/**
+	 * 
+	* @Title: orderTracking
+	* @Description: TODO(查询订单的跟踪情况)
+	{
+		"userId":"xxx",
+		"orderId":""
+	}
+	* @param @return    设定文件
+	* @return Map<String,Object>    返回类型
+	* @author ylx
+	* @date 2018年1月25日 下午7:41:16
+	* @throws
+	 */
+	@RequestMapping(value="/orderTracking",method=RequestMethod.POST)
+	public Map<String, Object> orderTracking(@RequestBody Param param){
+		try {
+			userAuthoricationService.queryUserAuthority(ValidationUtil.checkAndAssignInt(param.getUserId()),Role.PLANNER,Role.SUPPLIER);//检测当前操作用户权限
+			Orders order = orderService.queryFullOrderByOrderId(ValidationUtil.checkAndAssignInt(param.getOrderId()));
+			param.setOrder(order);
+			Map<String, Object> map = ordersIssueService.orderTracking(param);
+			return JSONUtil.getJsonMap(200, true, HintMSG.QUERY_SUCCESS, map);
+		} catch (Exception e) {
+			return JSONUtil.getJsonMap(500, false, HintMSG.QUERY_FAIL+":"+e.getMessage(), null);
+		}
+	}
+	
+	
 }

+ 25 - 0
saicLogistics/src/test/java/com/fuzamei/baseTest/BaseJunit4Test.java

@@ -0,0 +1,25 @@
+package com.fuzamei.baseTest;
+
+import org.junit.runner.RunWith;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.test.context.transaction.TransactionConfiguration;
+import org.springframework.transaction.annotation.Transactional;
+
+/*
+ * spring整合Junit4单元测试基类,
+ * 其他类实现该类可以省略一些注解配置。
+ * */
+//使用junit4进行单元测试
+@RunWith(SpringJUnit4ClassRunner.class)
+//加载配置文件,可以指定多个配置文件,locations指定的是一个数组
+@ContextConfiguration(locations={"classpath:applicationContext.xml","classpath:spring-mvc.xml"})
+//启动事务控制
+@Transactional
+//配置事务管理器,同时指定自动回滚,如果是true,不管成功与否全部回滚(默认是true)
+@TransactionConfiguration(transactionManager="transactionManager",defaultRollback=false)
+public class BaseJunit4Test {
+	//进行测试时,将测试类继承该类
+    //注入service对象
+    //然后在方法上使用@Test,@RollBack,@Transaction等注解单独修饰
+}

+ 21 - 0
saicLogistics/src/test/java/com/fuzamei/web/UserDetailTest.java

@@ -0,0 +1,21 @@
+package com.fuzamei.web;
+
+import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import com.fuzamei.baseTest.BaseJunit4Test;
+import com.fuzamei.constant.Role;
+import com.fuzamei.entity.UserDetail;
+import com.fuzamei.service.UserAuthoricationService;
+
+public class UserDetailTest extends BaseJunit4Test{
+	
+	@Autowired
+	private UserAuthoricationService userAuthoricationService;
+	
+	@Test
+	public void test01(){
+		UserDetail queryUserDetail = userAuthoricationService.queryUserDetail(1002, Role.PLANNER);
+		System.out.println(queryUserDetail);
+	}
+}