Browse Source

订单问题修复

anderx 7 years ago
parent
commit
499e6ed664

+ 2 - 2
src/main/java/com/goafanti/admin/controller/AdminApiController.java

@@ -3109,9 +3109,9 @@ public class AdminApiController extends CertifyApiController {
 	 * 常用联系人列表
 	 */
 	@RequestMapping(value = "/frequentContactsList", method = RequestMethod.GET)
-	public Result frequentContactsList(String departmentId,String name,Integer pageSize,Integer pageNo) {
+	public Result frequentContactsList(String departmentId,String name,String roleName,Integer pageSize,Integer pageNo) {
 		Result res = new Result();
-		res.setData(adminService.frequentContactsList(departmentId, name, pageSize, pageNo));
+		res.setData(adminService.frequentContactsList(departmentId, name,roleName, pageSize, pageNo));
 		return res;
 	}
 	/**

+ 2 - 2
src/main/java/com/goafanti/admin/controller/AdminSuperviseApiController.java

@@ -111,7 +111,7 @@ public class AdminSuperviseApiController extends CertifyApiController {
 	 * 管理员列表
 	 */
 	@RequestMapping(value = "/adminList", method = RequestMethod.GET)
-	public Result adminList(Integer province, Integer number, String mobile, String name, String pageNo,
+	public Result adminList(Integer province, Integer number, String mobile, String name,String roleName, String pageNo,
 			String pageSize) {
 		Result res = new Result();
 		Integer pNo = 1;
@@ -122,7 +122,7 @@ public class AdminSuperviseApiController extends CertifyApiController {
 		if (StringUtils.isNumeric(pageNo)) {
 			pNo = Integer.parseInt(pageNo);
 		}
-		res.setData(adminService.listAdmin(province, number, mobile, name, pNo, pSize));
+		res.setData(adminService.listAdmin(province, number, mobile, name, roleName, pNo, pSize));
 		return res;
 	}
 

+ 2 - 2
src/main/java/com/goafanti/admin/controller/AdminSuperviserApiController.java

@@ -46,7 +46,7 @@ public class AdminSuperviserApiController extends CertifyApiController {
 	private AdminMapper			adminMapper;
 	/**管理员列表*/
 	@RequestMapping(value = "/adminList", method = RequestMethod.GET)
-	public Result adminList(AdminListBo alb, String rid, String pageNo,
+	public Result adminList(AdminListBo alb, String rid,String roleName, String pageNo,
 			String pageSize) {
 		Result res = new Result();
 		Integer pNo = 1;
@@ -57,7 +57,7 @@ public class AdminSuperviserApiController extends CertifyApiController {
 		if (StringUtils.isNumeric(pageNo)) {
 			pNo = Integer.parseInt(pageNo);
 		}
-		res.setData(newAdminService.listAdmin(alb,rid, pNo, pSize));
+		res.setData(newAdminService.listAdmin(alb,rid,roleName, pNo, pSize));
 		return res;
 	}
 	

+ 2 - 2
src/main/java/com/goafanti/admin/service/AdminService.java

@@ -16,7 +16,7 @@ public interface AdminService {
 
 	Admin selectByPrimaryKey(String key);
 
-	Pagination<AdminListBo> listAdmin(Integer province, Integer number, String mobile, String name, Integer pNo,
+	Pagination<AdminListBo> listAdmin(Integer province, Integer number, String mobile, String name, String roleName, Integer pNo,
 			Integer pSize);
 
 	int insert(Admin ad);
@@ -73,7 +73,7 @@ public interface AdminService {
 
 	int addFrequentContacts(String id);
 
-	Pagination<AdminListBo>  frequentContactsList(String depId, String name, Integer pageSize, Integer pageNo);
+	Pagination<AdminListBo>  frequentContactsList(String depId, String name, String roleName, Integer pageSize, Integer pageNo);
 
 	int deleteFrequentContacts(String id);
 }

+ 1 - 1
src/main/java/com/goafanti/admin/service/NewAdminService.java

@@ -9,7 +9,7 @@ import com.goafanti.common.model.Admin;
 import com.goafanti.core.mybatis.page.Pagination;
 
 public interface NewAdminService {
-	Pagination<AdminListBo> listAdmin(AdminListBo alb,String rid,Integer pageNo, Integer pageSize);
+	Pagination<AdminListBo> listAdmin(AdminListBo alb,String rid,String roleName, Integer pageNo, Integer pageSize);
 	
 	List<Admin> selectAllAdmin();
 

+ 10 - 25
src/main/java/com/goafanti/admin/service/impl/AdminServiceImpl.java

@@ -59,32 +59,16 @@ public class AdminServiceImpl extends BaseMybatisDao<AdminMapper> implements Adm
 
 	@SuppressWarnings("unchecked")
 	@Override
-	public Pagination<AdminListBo> listAdmin(Integer province, Integer number, String mobile, String name,
+	public Pagination<AdminListBo> listAdmin(Integer province, Integer number, String mobile, String name,String roleName,
 			Integer pageNo, Integer pageSize) {
 		Map<String, Object> params = new HashMap<>();
-
-		if (StringUtils.isNotBlank(mobile)) {
-			params.put("mobile", mobile);
-		}
-
-		if (StringUtils.isNotBlank(name)) {
-			params.put("name", name);
-		}
-
-		if (null != number) {
-			params.put("number", number);
-		}
-
-		if (pageNo == null || pageNo < 0) {
-			pageNo = 1;
-		}
-
-		if (pageSize == null || pageSize < 0 || pageSize > 10) {
-			pageSize = 10;
-		}
-		if (province != null) {
-			params.put("province", province);
-		}
+		if (StringUtils.isNotBlank(roleName))params.put("roleName", roleName);
+		if (StringUtils.isNotBlank(mobile))params.put("mobile", mobile);
+		if (StringUtils.isNotBlank(name))params.put("name", name);
+		if (null != number)params.put("number", number);
+		if (pageNo == null || pageNo < 0)pageNo = 1;
+		if (pageSize == null || pageSize < 0 || pageSize > 10)pageSize = 10;
+		if (province != null) params.put("province", province);
 		return (Pagination<AdminListBo>) findPage("findAdminListByPage", "findAdminCount", params, pageNo,
 					pageSize);
 	}
@@ -351,12 +335,13 @@ public class AdminServiceImpl extends BaseMybatisDao<AdminMapper> implements Adm
 
 	@SuppressWarnings("unchecked")
 	@Override
-	public Pagination<AdminListBo> frequentContactsList(String depId, String name, Integer pageSize, Integer pageNo) {
+	public Pagination<AdminListBo> frequentContactsList(String depId, String name,String roleName, Integer pageSize, Integer pageNo) {
 		Map<String, Object> params = new HashMap<String, Object>();
 		if(pageSize==null||pageSize<0)pageSize=10;
 		if(pageNo==null||pageNo<0)pageNo=1;
 		if (StringUtils.isNotBlank(depId)) params.put("depId", depId);
 		if (StringUtils.isNotBlank(name)) params.put("name", name);
+		if (StringUtils.isNotBlank(roleName)) params.put("roleName", roleName);
 		params.put("aid", TokenManager.getAdminId()==null?"1":TokenManager.getAdminId());
 		Pagination<AdminListBo> p = (Pagination<AdminListBo>)findPage("frequentContactsList", "frequentContactsCount", params, pageNo, pageSize);
 		return p;

+ 2 - 1
src/main/java/com/goafanti/admin/service/impl/NewAdminServiceImpl.java

@@ -34,9 +34,10 @@ public class NewAdminServiceImpl extends BaseMybatisDao<AdminMapper> implements
 	private AdminLocationMapper	adminLocationMapper;
 	
 	@Override
-	public Pagination<AdminListBo> listAdmin(AdminListBo alb, String rid, Integer pageNo, Integer pageSize) {
+	public Pagination<AdminListBo> listAdmin(AdminListBo alb, String rid,String roleName,Integer pageNo, Integer pageSize) {
 		Map<String,Object> params = new HashMap<String, Object>();
 		if(StringUtils.isNotBlank(alb.getName())) params.put("name", alb.getName());
+		if(StringUtils.isNotBlank(roleName)) params.put("roleName", roleName);
 		if(StringUtils.isNotBlank(alb.getDepartmentId())) params.put("departmentId", alb.getDepartmentId());
 		if(StringUtils.isNotBlank(rid)) params.put("rid", rid);
 		if(StringUtils.isNotBlank(alb.getDuty())) params.put("duty",alb.getDuty());

+ 2 - 0
src/main/java/com/goafanti/common/dao/TOrderRefundMapper.java

@@ -95,4 +95,6 @@ public interface TOrderRefundMapper {
 	int updateByPrimaryKey(TOrderRefund record);
 	
 	int updateRefundById(TOrderRefund record);
+
+	int checkOrderNo(String orderNo);
 }

+ 30 - 2
src/main/java/com/goafanti/common/mapper/AdminMapper.xml

@@ -674,7 +674,12 @@
     left join admin_location al on a.id = al.admin_id
     left join admin aa on aa.id = a.superior_id
     left join department dm on a.department_id = dm.id
+    left join user_role x on x.uid=a.id
+    left join `role` y on x.rid=y.id
     where a.id <![CDATA[ <> ]]> '1'
+    <if test="roleName != null"> 
+    	where y.role_name= #{roleName,jdbcType=VARCHAR}
+    </if>
     <if test="mobile != null"> 
     	and a.mobile = #{mobile,jdbcType=VARCHAR}
     </if>
@@ -696,6 +701,11 @@
   <select id="findAdminCount" parameterType="java.lang.String" resultType="java.lang.Integer">
    	select count(1) from admin
     where id <![CDATA[ <> ]]> '1'
+     left join `role` y on x.rid=y.id
+    where a.id <![CDATA[ <> ]]> '1'
+    <if test="roleName != null"> 
+    	where y.role_name= #{roleName,jdbcType=VARCHAR}
+    </if>
     <if test="mobile != null"> 
     	and mobile = #{mobile,jdbcType=VARCHAR}
     </if>
@@ -734,8 +744,12 @@
     left join admin_location al on a.id = al.admin_id
     left join admin aa on aa.id = a.superior_id
     left join user_role ur on a.id=ur.uid
+    left join `role` y on ur.rid=y.id
     where a.id <![CDATA[ <> ]]> '1'
     and a.status ='正常'
+    <if test="roleName != null"> 
+    	and y.role_name= #{roleName,jdbcType=VARCHAR}
+    </if>
     <if test="name != null"> 
     	and a.name like concat('%',#{name,jdbcType=VARCHAR},'%')
     </if>
@@ -770,8 +784,12 @@
    	select count(t.counts) 
    	from(select a.id counts from (select a.id  from admin a
    	left join user_role ur on a.id=ur.uid
+   	 left join `role` y on ur.rid=y.id
     where a.id <![CDATA[ <> ]]> '1'
     and (a.status != '注销' or a.status is null)
+    <if test="roleName != null"> 
+    	and y.role_name= #{roleName,jdbcType=VARCHAR}
+    </if>
     <if test="name != null"> 
     	and a.name like concat('%',#{name,jdbcType=VARCHAR},'%')
     </if>
@@ -982,8 +1000,12 @@
   	 select a.id,b.id as contactId,b.name,b.position,b.contact_mobile as contactMobile,c.name as departmentName
     from admin_contacts a left join admin b 
     on a.contacts_id=b.id left join department c 
-    on c.id=b.department_id
+    on c.id=b.department_id left join user_role x on x.uid=b.id
+    left join `role` y on x.rid=y.id
     where b.status ='正常'
+    <if test="roleName != null"> 
+    and y.role_name= #{roleName,jdbcType=VARCHAR}
+    </if>
     <if test="aid != null"> 
     and a.aid= #{aid,jdbcType=VARCHAR}
     </if>
@@ -1001,7 +1023,13 @@
   <select id="frequentContactsCount" parameterType="java.lang.String" resultType="java.lang.Integer">
    select count(*)
     from admin_contacts a left join admin b 
-    on a.contacts_id=b.id where b.status ='正常'
+    on a.contacts_id=b.id 
+    left join user_role x on x.uid=b.id
+    left join `role` y on x.rid=y.id
+    where b.status ='正常'
+    <if test="roleName != null"> 
+    and y.role_name= #{roleName,jdbcType=VARCHAR}
+    </if>
     <if test="aid != null"> 
     and a.aid= #{aid,jdbcType=VARCHAR}
     </if>

+ 4 - 3
src/main/java/com/goafanti/common/mapper/TOrderNewMapper.xml

@@ -1106,7 +1106,7 @@
   	from t_order_new a  left join `user` b on a.buyer_id=b.id
   	left join admin c on a.salesman_id=c.id
   	left join admin d on a.finance_id=d.id
-  	<if test="specially == 2">
+  		<if test="specially == 2">
 	left join (select * from t_order_back a where back_status=0) e on a.order_no=e.order_no
   	left join admin f on e.initiate=f.id
   	</if>
@@ -1124,6 +1124,7 @@
   	</if>
   	<if test="specially == 2">
   	and a.order_status in(3,5) 
+  	and a.salesman_id = #{aid,jdbcType=VARCHAR}
   	</if>
   	<if test="specially == 3">
   	and a.approval = 1 and  a.order_status=2
@@ -1217,7 +1218,7 @@
     a.reason,b.liquidation_status as liquidationStatus
     from t_order_refund a left join t_order_new b on a.order_no=b.order_no
     left join `user` c on b.buyer_id=c.id 
-    where  b.delete_sign = 0 and b.order_status = 6
+    where  b.delete_sign = 0 
     <if test="name != null">
   	and c.nickname like CONCAT('%',#{name,jdbcType=VARCHAR},'%')
   	</if>
@@ -1241,7 +1242,7 @@
 		count(*)
   	 from t_order_refund a left join t_order_new b on a.order_no=b.order_no
     left join `user` c on b.buyer_id=c.id 
-    where  b.delete_sign = 0 and b.order_status = 6
+    where  b.delete_sign = 0 
     <if test="name != null">
   	and c.nickname like CONCAT('%',#{name,jdbcType=VARCHAR},'%')
   	</if>

+ 5 - 1
src/main/java/com/goafanti/common/mapper/TOrderRefundMapper.xml

@@ -535,5 +535,9 @@
     </set>
     where id = #{id,jdbcType=INTEGER}
   </update>
-  
+  <select id="checkOrderNo" resultType="java.lang.Integer">
+	select count(*) from t_order_refund
+	where refund_status=0
+	and order_no= #{orderNo,jdbcType=VARCHAR}  
+  </select>
 </mapper>

+ 4 - 2
src/main/java/com/goafanti/common/mapper/TOrderTaskMapper.xml

@@ -674,6 +674,7 @@
     and a.commodity_quantity =1
     </if>
     <if test="specially == 1">
+    and a.task_receiver= #{aid,jdbcType=VARCHAR}
     and a.super_id is null
     </if>
     <if test="specially == 2">
@@ -711,10 +712,11 @@
     where e.delete_sign=0 
     <if test="specially == 0">
     and a.task_receiver= #{aid,jdbcType=VARCHAR}
-    and a.commodity_quantity =1<!-- 不看父任务 -->
+    and a.commodity_quantity =1
     </if>
     <if test="specially == 1">
-    and a.super_id is null<!-- 不看子任务 -->
+    and a.task_receiver= #{aid,jdbcType=VARCHAR}
+    and a.super_id is null
     </if>
     <if test="specially == 2">
     and d.superior_id= (select department_id from admin where  id= #{aid,jdbcType=VARCHAR})

+ 2 - 1
src/main/java/com/goafanti/common/task/OrderDunTask.java

@@ -14,6 +14,7 @@ import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Controller;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 
@@ -79,5 +80,5 @@ public class OrderDunTask {
 		 orderNewService.updateOrderDun(tDun);
 		orderNewService.addNoticAndSendEmail(t.getOrderNo(),t,NoticeStatus.ORDER_DUN.getCode());
 	}
-  	
+ 
 }

+ 2 - 0
src/main/java/com/goafanti/order/enums/OrderNewState.java

@@ -16,6 +16,8 @@ public enum OrderNewState {
 	YJX(4, "已结项"),
 	/** 已驳回 **/
 	YBH(5, "已驳回"),
+	/** 退单中 **/
+	TDZ(6, "退单中"),
 	/** 已退单 **/
 	YTD(6, "已退单");
 	

+ 17 - 13
src/main/java/com/goafanti/order/service/impl/OrderNewServiceImpl.java

@@ -15,11 +15,13 @@ import javax.mail.MessagingException;
 
 import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.apache.xmlbeans.impl.xb.xsdschema.Public;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 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 com.alibaba.fastjson.JSON;
 import com.goafanti.admin.bo.AdminListBo;
@@ -44,6 +46,7 @@ import com.goafanti.common.model.TDunLog;
 import com.goafanti.common.model.TOrderBack;
 import com.goafanti.common.model.TOrderDun;
 import com.goafanti.common.model.TOrderNew;
+import com.goafanti.common.model.TOrderRefund;
 import com.goafanti.common.model.TOrderRefundWithBLOBs;
 import com.goafanti.common.model.TOrderTask;
 import com.goafanti.common.utils.ExportExcelUtil;
@@ -187,19 +190,23 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 
 	@Override
 	public int updateServiceOrder(TOrderNew t, Integer isSubmit) {
-		OrganizationContactBook contactBook=new OrganizationContactBook();
-		contactBook.setId(UUID.randomUUID().toString());
-		contactBook.setAid(TokenManager.getAdminId()==null?"1":TokenManager.getAdminId());
-		contactBook.setUid(t.getBuyerId());
-		contactBook.setName(t.getContacts());
-		contactBook.setMobile(t.getContactMobile());
-		organizationContactBookMapper.insertSelective(contactBook);
+		TOrderNew t2=tOrderNewMapper.selectByPrimaryKey(t.getOrderNo());
+		//判断手机号码是否存在
+		if (StringUtils.isNotBlank(t.getContacts())&&StringUtils.isNotBlank(t.getContactMobile())&&
+				organizationContactBookMapper.checkContacts(t2.getBuyerId(), t2.getContactMobile(),TokenManager.getAdminId()==null?"1":TokenManager.getAdminId() )>0) {
+			OrganizationContactBook contactBook=new OrganizationContactBook();
+			contactBook.setId(UUID.randomUUID().toString());
+			contactBook.setAid(TokenManager.getAdminId()==null?"1":TokenManager.getAdminId());
+			contactBook.setUid(t2.getBuyerId());
+			contactBook.setName(t.getContacts());
+			contactBook.setMobile(t.getContactMobile());
+			organizationContactBookMapper.insertSelective(contactBook);
+		}
 		if (isSubmit==1) {
 			t.setOrderStatus(OrderNewState.QDDS.getCode());
 			t.setProcessStatus(ProcessStatus.YPYXGLY.getCode());
 			
 		}
-		TOrderNew t2=tOrderNewMapper.selectByPrimaryKey(t.getOrderNo());
 		if (t2.getApproval()==ApprovalNewState.BH.getCode()||
 				t2.getOrderStatus()==OrderNewState.QDSHJJ.getCode()||
 					t2.getOrderStatus()==OrderNewState.YBH.getCode()) {
@@ -370,7 +377,7 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 		t.setResult("");
 		TOrderNew tOrder=new TOrderNew(); 
 		tOrder.setOrderNo(t.getOrderNo());
-		//tOrder.setOrderStatus(OrderNewState.YTD.getCode());
+		tOrder.setOrderStatus(OrderNewState.TDZ.getCode());
 		tOrderNewMapper.updateByPrimaryKeySelective(tOrder);
 		return tOrderRefundMapper.insertSelective(t);
 	}
@@ -465,7 +472,7 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 		TOrderNew tOrder= tOrderNewMapper.selectByPrimaryKey(orderNo);
 		if (tOrder.getSettlementAmount()==null||
 				tOrder.getSettlementAmount().doubleValue()==0||
-					tOrder.getOrderStatus()==OrderNewState.YTD.getCode()){
+					tOrder.getOrderStatus()==OrderNewState.TDZ.getCode()){
 				return true;
 		}
 		return false;
@@ -581,7 +588,6 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 		 tOrderDunMapper.updateByPrimaryKeySelective(tDun);
 	}
 
-
 	public void addNotic(String orderNo,Integer type,AdminListBo a,TOrderNewBo b) {
 		LoggerUtils.debug(logger, "======================站内消息发送启动===================");
 		 String id="1";
@@ -596,7 +602,6 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 		n.setReaded(0);//未读
 		noticeMapper.insertSelective(n);
 	}
-	
 	public void  sendEmail(String orderNo,String dunId,AdminListBo a,TOrderNewBo b) throws UnsupportedEncodingException, MessagingException{
 		LoggerUtils.debug(logger, "======================邮件信息发送===================");
 		String content = "<div>客户名称: "+ b.getUserName() +"</div><div>订单编号: " + orderNo + "</div>";
@@ -630,5 +635,4 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 		 addNotic(type==NoticeStatus.ORDER_DUN.getCode()?t.getOrderNo():orderNo,type,a, b);
 	}
 	
-	
 }

+ 1 - 3
src/main/java/com/goafanti/order/service/impl/OrderProjectServiceImpl.java

@@ -101,9 +101,7 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 		Map<String, Object> params = new HashMap<String, Object>();
 		if(pageSize==null||pageSize<0)pageSize=10;
 		if(pageNo==null||pageNo<0)pageNo=1;
-		if (specially!=null&&(specially==0||specially==2)) {
-			params.put("aid", TokenManager.getAdminId()==null?"1":TokenManager.getAdminId());
-		}
+		params.put("aid", TokenManager.getAdminId()==null?"1":TokenManager.getAdminId());
 		if (null!=specially) params.put("specially", specially);
 		if (StringUtils.isNotBlank(name)) params.put("name", name);
 		if (StringUtils.isNotBlank(orderNo)) params.put("orderNo", orderNo);