anderx 4 anni fa
parent
commit
8c4ae6b528

+ 1 - 1
src/main/java/com/goafanti/common/bo/EmailBo.java

@@ -395,7 +395,7 @@ public class EmailBo {
 		this.content = content;
 	}
 
-	public String format(String name){
+	public String format(){
         return  "<div>" + this.content + "</div>";
     }
 

+ 8 - 1
src/main/java/com/goafanti/common/dao/TOrderNewMapper.java

@@ -26,7 +26,14 @@ public interface TOrderNewMapper {
     TOrderNewBo getOrderNewDetail(String orderNo);
     int getCountByIdAndStatus(TOrderNew orderNew);
 
+    /**
+     * 获取订单信息
+     * @param ono
+     * @return orderNo ,  salesmanId,salesmanName, contractNo,email , userName, orderDep,
+     *          departmentName financeId(此财务编号为订单部门财务负责人)
+     */
     TOrderNewBo getSaleIdByOno(String ono);
+
     TOrderNewBo agreeEmailData(Integer fid);
 
     OrderRefundDetailBo orderRefundDetail(String id);
@@ -46,4 +53,4 @@ public interface TOrderNewMapper {
     List<outProvinceStatisticsList> provinceStatisticsList(InputStatistics in);
 
     List<Map<String, Object>> selectOrderByuid(String uid);
-}
+}

+ 39 - 38
src/main/java/com/goafanti/common/mapper/TOrderNewMapper.xml

@@ -46,16 +46,16 @@
     <result column="service_content" jdbcType="VARCHAR" property="serviceContent" />
   </resultMap>
   <sql id="Base_Column_List">
-    order_no, order_type, creater, create_time, update_time, buyer_id, first_amount, 
-    total_amount, settlement_amount, refund_amount, order_status, liquidation_status, 
-    process_status, project_status, approval, order_remarks, delete_sign, salesman_id, 
-    finance_id, technician_id, sign_time, settlement_time, contract_picture_url, contract_no, 
-    contract_type, contacts, contact_mobile, legal_person, legal_person_tel, proof_count, 
-    proof_aid, proof_time, proof_status, order_dep, outsource, additional_order, primary_order, 
+    order_no, order_type, creater, create_time, update_time, buyer_id, first_amount,
+    total_amount, settlement_amount, refund_amount, order_status, liquidation_status,
+    process_status, project_status, approval, order_remarks, delete_sign, salesman_id,
+    finance_id, technician_id, sign_time, settlement_time, contract_picture_url, contract_no,
+    contract_type, contacts, contact_mobile, legal_person, legal_person_tel, proof_count,
+    proof_aid, proof_time, proof_status, order_dep, outsource, additional_order, primary_order,
     old_salesman_id, back_status, agreement_url, new_user, service_content
   </sql>
   <select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap">
-    select 
+    select
     <include refid="Base_Column_List" />
     from t_order_new
     where order_no = #{orderNo,jdbcType=VARCHAR}
@@ -65,34 +65,34 @@
     where order_no = #{orderNo,jdbcType=VARCHAR}
   </delete>
   <insert id="insert" parameterType="com.goafanti.common.model.TOrderNew">
-    insert into t_order_new (order_no, order_type, creater, 
-      create_time, update_time, buyer_id, 
-      first_amount, total_amount, settlement_amount, 
-      refund_amount, order_status, liquidation_status, 
-      process_status, project_status, approval, 
-      order_remarks, delete_sign, salesman_id, 
-      finance_id, technician_id, sign_time, 
-      settlement_time, contract_picture_url, contract_no, 
-      contract_type, contacts, contact_mobile, 
-      legal_person, legal_person_tel, proof_count, 
-      proof_aid, proof_time, proof_status, 
-      order_dep, outsource, additional_order, 
-      primary_order, old_salesman_id, back_status, 
+    insert into t_order_new (order_no, order_type, creater,
+      create_time, update_time, buyer_id,
+      first_amount, total_amount, settlement_amount,
+      refund_amount, order_status, liquidation_status,
+      process_status, project_status, approval,
+      order_remarks, delete_sign, salesman_id,
+      finance_id, technician_id, sign_time,
+      settlement_time, contract_picture_url, contract_no,
+      contract_type, contacts, contact_mobile,
+      legal_person, legal_person_tel, proof_count,
+      proof_aid, proof_time, proof_status,
+      order_dep, outsource, additional_order,
+      primary_order, old_salesman_id, back_status,
       agreement_url, new_user, service_content
       )
-    values (#{orderNo,jdbcType=VARCHAR}, #{orderType,jdbcType=INTEGER}, #{creater,jdbcType=VARCHAR}, 
-      #{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP}, #{buyerId,jdbcType=VARCHAR}, 
-      #{firstAmount,jdbcType=DECIMAL}, #{totalAmount,jdbcType=DECIMAL}, #{settlementAmount,jdbcType=DECIMAL}, 
-      #{refundAmount,jdbcType=DECIMAL}, #{orderStatus,jdbcType=INTEGER}, #{liquidationStatus,jdbcType=INTEGER}, 
-      #{processStatus,jdbcType=INTEGER}, #{projectStatus,jdbcType=INTEGER}, #{approval,jdbcType=INTEGER}, 
-      #{orderRemarks,jdbcType=VARCHAR}, #{deleteSign,jdbcType=INTEGER}, #{salesmanId,jdbcType=VARCHAR}, 
-      #{financeId,jdbcType=VARCHAR}, #{technicianId,jdbcType=VARCHAR}, #{signTime,jdbcType=DATE}, 
-      #{settlementTime,jdbcType=DATE}, #{contractPictureUrl,jdbcType=VARCHAR}, #{contractNo,jdbcType=VARCHAR}, 
-      #{contractType,jdbcType=VARCHAR}, #{contacts,jdbcType=VARCHAR}, #{contactMobile,jdbcType=VARCHAR}, 
-      #{legalPerson,jdbcType=VARCHAR}, #{legalPersonTel,jdbcType=VARCHAR}, #{proofCount,jdbcType=FLOAT}, 
-      #{proofAid,jdbcType=VARCHAR}, #{proofTime,jdbcType=TIMESTAMP}, #{proofStatus,jdbcType=INTEGER}, 
-      #{orderDep,jdbcType=VARCHAR}, #{outsource,jdbcType=INTEGER}, #{additionalOrder,jdbcType=VARCHAR}, 
-      #{primaryOrder,jdbcType=VARCHAR}, #{oldSalesmanId,jdbcType=VARCHAR}, #{backStatus,jdbcType=INTEGER}, 
+    values (#{orderNo,jdbcType=VARCHAR}, #{orderType,jdbcType=INTEGER}, #{creater,jdbcType=VARCHAR},
+      #{createTime,jdbcType=TIMESTAMP}, #{updateTime,jdbcType=TIMESTAMP}, #{buyerId,jdbcType=VARCHAR},
+      #{firstAmount,jdbcType=DECIMAL}, #{totalAmount,jdbcType=DECIMAL}, #{settlementAmount,jdbcType=DECIMAL},
+      #{refundAmount,jdbcType=DECIMAL}, #{orderStatus,jdbcType=INTEGER}, #{liquidationStatus,jdbcType=INTEGER},
+      #{processStatus,jdbcType=INTEGER}, #{projectStatus,jdbcType=INTEGER}, #{approval,jdbcType=INTEGER},
+      #{orderRemarks,jdbcType=VARCHAR}, #{deleteSign,jdbcType=INTEGER}, #{salesmanId,jdbcType=VARCHAR},
+      #{financeId,jdbcType=VARCHAR}, #{technicianId,jdbcType=VARCHAR}, #{signTime,jdbcType=DATE},
+      #{settlementTime,jdbcType=DATE}, #{contractPictureUrl,jdbcType=VARCHAR}, #{contractNo,jdbcType=VARCHAR},
+      #{contractType,jdbcType=VARCHAR}, #{contacts,jdbcType=VARCHAR}, #{contactMobile,jdbcType=VARCHAR},
+      #{legalPerson,jdbcType=VARCHAR}, #{legalPersonTel,jdbcType=VARCHAR}, #{proofCount,jdbcType=FLOAT},
+      #{proofAid,jdbcType=VARCHAR}, #{proofTime,jdbcType=TIMESTAMP}, #{proofStatus,jdbcType=INTEGER},
+      #{orderDep,jdbcType=VARCHAR}, #{outsource,jdbcType=INTEGER}, #{additionalOrder,jdbcType=VARCHAR},
+      #{primaryOrder,jdbcType=VARCHAR}, #{oldSalesmanId,jdbcType=VARCHAR}, #{backStatus,jdbcType=INTEGER},
       #{agreementUrl,jdbcType=VARCHAR}, #{newUser,jdbcType=INTEGER}, #{serviceContent,jdbcType=VARCHAR}
       )
   </insert>
@@ -830,11 +830,12 @@ left join department d on o.order_dep = d.id   left join t_order_mid a on o.orde
   <!-- 通过订单编号获得订单的负责人(营销员) -->
   <select id="getSaleIdByOno" parameterType="java.lang.String" resultType="com.goafanti.order.bo.TOrderNewBo">
     select order_no orderNo ,salesman_id as salesmanId, a.name as salesmanName,
-           o.contract_no contractNo,a.email ,u.nickname as userName
-    from t_order_new o left join admin a on o.salesman_id = a.id
-                       left join `user` u on u.id = o.buyer_id
-  		where order_no = #{_parameter,jdbcType=VARCHAR}
+           o.contract_no contractNo,a.email ,u.nickname as userName,o.order_dep orderDep,
+           d.name departmentName,d.finance_id  financeId
+    from t_order_new o left join admin a on o.salesman_id = a.id left join `user` u on u.id = o.buyer_id
+    left join department d on o.order_dep=d.id where order_no = #{_parameter,jdbcType=VARCHAR}
   </select>
+
   <select id="selectOrderNewListByPage" resultType="com.goafanti.order.bo.TOrderNewBo">
   	select a.order_no as orderNo,a.create_time as createTime, date_format(a.sign_time,'%Y-%m-%d' ) as signDate,a.delete_sign deleteSign,
   	a.contract_no as contractNo, b.nickname as userName ,a.process_status as processStatus,a.total_amount as totalAmount,
@@ -1551,4 +1552,4 @@ left join department d on o.order_dep = d.id   left join t_order_mid a on o.orde
       select order_no orderNo,contract_no contractNo
       from t_order_new  where delete_sign in (0,2) and  buyer_id = #{uid}
     </select>
-</mapper>
+</mapper>

+ 14 - 13
src/main/java/com/goafanti/common/utils/SendEmailUtil.java

@@ -42,8 +42,8 @@ public class SendEmailUtil {
 	public static final String FROM = "13875952633@163.com";// 发件人的email
 	public static final String PWD = "kede2018";// 发件人密码
 	public static final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
-	
-	
+
+
 
 	private static Session getSession() {
 		Properties props = new Properties();
@@ -94,17 +94,18 @@ public class SendEmailUtil {
 //		msg.setFrom(new InternetAddress(FROM));
 		String[] adds =  emailBo.getAddress().split(",");
 		String[] ees =  emailBo.getAddressee().split(",");
+		Date date = new Date();
 		for (int i = 0; i < adds.length; i++) {
 			InternetAddress internetAddress = new InternetAddress(adds[i]);
 			msg.setRecipient(Message.RecipientType.TO, internetAddress);
 			msg.setSubject(emailBo.getSubject());
-			msg.setSentDate(new Date());
-			msg.setContent(emailBo.format(ees[i]), "text/html;charset=utf-8");
+			msg.setSentDate(date);
+			msg.setContent(emailBo.format(), "text/html;charset=utf-8");
 			// Send the message
 			Transport.send(msg);
 		}
 	}
-	
+
 	/**
 	 * 如果要给多个人发,请EmailBo 的 address , addressee用逗号隔开 注意要一一对应且个数相等
 	 * @param emailBo
@@ -132,7 +133,7 @@ public class SendEmailUtil {
 			Transport.send(msg);
 		}
 	}
-	
+
 	public static boolean isEmail(String email){
 		if (StringUtils.isEmpty(email)) {
 			return false;
@@ -143,12 +144,12 @@ public class SendEmailUtil {
         Matcher m = p.matcher(email);
         return m.matches();
     }
-	
-	
-	
-	
-	
-	
+
+
+
+
+
+
 //	public static void main(String[] args) {
 //		  EmailBo emailBo = new EmailBo( "专利提醒失败",  "312518615@qq.com",  "超管", "平台",  "系统", "专利提醒失败");
 //				try {
@@ -157,5 +158,5 @@ public class SendEmailUtil {
 //					e.printStackTrace();
 //				}
 //	}
-	
+
 }

+ 35 - 39
src/main/java/com/goafanti/order/service/OrderNewService.java

@@ -14,7 +14,7 @@ import com.goafanti.core.mybatis.page.Pagination;
 import com.goafanti.order.bo.*;
 
 public interface OrderNewService {
-	
+
 	/**
 	 * 创建订单
 	 * @param uid
@@ -30,38 +30,32 @@ public interface OrderNewService {
 	/**
 	 * 修改项目信息
 	 * @param t
-	 * @return
 	 */
 	int updateOrderTask(TOrderTask t);
 	/**
 	 * 删除项目
 	 * @param id
-	 * @return
 	 */
 	int delectOrderTask(Integer id);
 	/**
 	 * 项目详情
 	 * @param orderNo
-	 * @return
 	 */
 	 List<TOrderTaskBo> selectOrderTask(String orderNo);
 	 /**
 	  * 订单提交或保存
 	  * @param t
 	  * @param isSubmit
-	  * @return
 	  */
 	int updateServiceOrder(TOrderNewWithBLOBs t, Integer isSubmit);
 	/**
 	 * 订单详情
 	 * @param orderNo
-	 * @return
 	 */
 	TOrderNewBo getOrderNewDetail(String orderNo);
 	/**
 	 * 收款截点编辑
 	 * @param orderDun
-	 * @return
 	 */
 	int createOrderDun(String orderDun,String orderNo);
 	/**
@@ -72,8 +66,7 @@ public interface OrderNewService {
 	 * @param endTime
 	 * @param pageNo
 	 * @param pageSize
-	 * @param amountStatus 
-	 * @return
+	 * @param amountStatus
 	 */
 	Pagination<TOrderNewBo> orderNewList(String aid,String name, String orderNo, String starTime, String endTime,Integer specially ,
 										 Integer approval,Integer distribution,String depId,String contractNo,Integer outsource,Integer liquidationStatus, Integer amountStatus,
@@ -82,11 +75,10 @@ public interface OrderNewService {
 	 * 订单审核
 	 * @param orderNo
 	 * @param orderStatus
-	 * @param object 
-	 * @return
+	 * @param object
 	 */
 	int updateOrderNew(String orderNo, Integer orderStatus,String reason,Integer outsource, TOrderOutsource object);
-	
+
 	/**
 	 * 催款订单列表
 	 * @param name
@@ -95,38 +87,32 @@ public interface OrderNewService {
 	 * @param endTime
 	 * @param pageNo
 	 * @param pageSize
-	 * @return
 	 */
 	Pagination<outOrderDunListBo> dunOrderNewList(String name, String orderNo,String contractNo, String starTime, String endTime,Integer specially, String aid,String adminName,String depId,
 			Integer newStatus,Integer pageNo, Integer pageSize);
 	/**
 	 * 新增催款记录
-	 * @return
 	 */
 	int createDunLog( String dunId, String dumTime, String remarks, String attUrl);
 	/**
 	 * 查询催款记录
 	 * @param dunId
-	 * @return
 	 */
 	List<TDunLogListBo> selectDunLogList(String dunId);
 	/**
 	 * 新增退单
 	 * @param t
-	 * @return
 	 */
 	int addOrderRefund(TOrderRefundWithBLOBs t);
 	/**
 	 * 特批审核
 	 * @param orderNo
 	 * @param confirm
-	 * @return
 	 */
 	int updateApprovalOrder(String orderNo,Integer confirm,String reason);
 	/**
 	 * 查看收款截点
 	 * @param orderNo
-	 * @return
 	 */
 	List<TOrderDun> selectOrderDun(String orderNo);
 	/**
@@ -138,51 +124,61 @@ public interface OrderNewService {
 	 * @param specially
 	 * @param pageNo
 	 * @param pageSize
-	 * @return
 	 */
 	Pagination<TOrderRefundBo> orderRefundList(String name, String orderNo, String starTime, String endTime, Integer specially,
 			Integer pageNo, Integer pageSize);
-	
+
 	boolean checkOrderMain(TOrderTask t);
-	
+
 	boolean chekeOrderStatus(String orderNo);
-	
+
 	boolean chekeApprovalOrderStatus(String orderNo);
-	
+
 	int deleteOrderNew(String orderNo);
-	
+
 	boolean checkOderSettlementAmount(String orderNo);
-	
+
 	boolean checkORderTask(String orderNo);
-	
+
 	void exportOrderDunData(String name,String orderNo,String contractNo,String starTime,String endTime,Integer specially,String aid,String adminName,
 			String depId,Integer newStatus,Integer pageNo,Integer pageSize,HttpServletResponse response) throws  Exception;
-	
+
 	int updateOrderOver(String orderNo);
-	
+
 	OrderRefundDetailBo orderRefundDetail(String id);
-	
+
 	int updateOrderRefund(TOrderRefundWithBLOBs t);
-	
+
 	int updatetechnicianBackOrder(String orderNo, String reason);
-	
+
 	List<OrderDunTaskBo> selectAllOrderDun();
-	
+
 	void updateOrderDun(TOrderDun tDun);
-	
+
 	void addNoticAndSendEmail(String orderNo, OrderDunTaskBo t, Integer code)throws UnsupportedEncodingException, MessagingException;
-	
+
 	void addNewDunNoticAndSendEmail(String orderNo, OutNewOrderDunBo o);
-	
+
 	void addTimingTaskNewDunNoticAndSendEmail(TOrderNew t2, OutNewOrderDunBo o);
-	
+
 	boolean checkORderDun(String orderNo);
-	
+
 	int updateFinance(String orderNo, String newFinance);
 	List<TOrderLogBo> selectOrderLog(String orderNo);
 
-	void pushGeneralSendNoticeAndEmail(List<String> alist, Integer type,String OrderNo,String adminId,Integer approval);
-	
+	/**
+	 *  发送站内信与邮件
+	 * @param alist 接受者
+	 * @param type 通知类型
+	 * @param o 订单
+	 * @param adminId 发送者
+	 * @param approval 特批
+	 * @param tid 项目编号
+	 */
+	void pushGeneralSendNoticeAndEmail(List<String> alist, Integer type,TOrderNewBo o,String adminId,Integer approval,Integer tid);
+
+	void pushGeneralSendNoticeAndEmail(List<String> alist, Integer type,TOrderNewBo o,String adminId,Integer approval);
+
 	int pushOutsourceProjectAudit(TOrderOutsource o);
 	Pagination<OutArrearsDunListBo> arrearsDunList(InputArrearsDunListBo in);
 	/**

File diff suppressed because it is too large
+ 46 - 44
src/main/java/com/goafanti/order/service/impl/FundManagerOrderServiceImpl.java


+ 68 - 58
src/main/java/com/goafanti/order/service/impl/OrderChangeServiceImpl.java

@@ -13,6 +13,7 @@ import java.util.UUID;
 
 import javax.servlet.http.HttpServletResponse;
 
+import com.goafanti.common.model.*;
 import org.apache.poi.xssf.usermodel.XSSFCell;
 import org.apache.poi.xssf.usermodel.XSSFRow;
 import org.apache.poi.xssf.usermodel.XSSFSheet;
@@ -45,18 +46,6 @@ import com.goafanti.common.dao.TTaskMidMapper;
 import com.goafanti.common.dao.UserLockReleaseMapper;
 import com.goafanti.common.enums.NoticeStatus;
 import com.goafanti.common.error.BusinessException;
-import com.goafanti.common.model.OrderChangeLog;
-import com.goafanti.common.model.OrderExamine;
-import com.goafanti.common.model.OrderRefundInvoice;
-import com.goafanti.common.model.TChangeDun;
-import com.goafanti.common.model.TChangeTask;
-import com.goafanti.common.model.TOrderBillNew;
-import com.goafanti.common.model.TOrderNew;
-import com.goafanti.common.model.TOrderTask;
-import com.goafanti.common.model.TTaskMid;
-import com.goafanti.common.model.Admin;
-import com.goafanti.common.model.NewOrderChange;
-import com.goafanti.common.model.NewOrderDun;
 import com.goafanti.common.utils.DateUtils;
 import com.goafanti.common.utils.ExportExcelUtil;
 import com.goafanti.common.utils.StringUtils;
@@ -97,7 +86,7 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 	@Autowired
 	private TOrderNewMapper			tOrderNewMapper;
 	@Autowired
-	private TOrderLogMapper 		tOrderLogMapper;  
+	private TOrderLogMapper 		tOrderLogMapper;
 	@Autowired
 	private TOrderTaskMapper	tOrderTaskMapper;
 	@Autowired
@@ -134,9 +123,9 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 	private UserLockReleaseMapper	userLockReleaseMapper;
 	@Autowired
 	private PushOrderService pushOrderService;
-	
+
 	Logger							logger	= LoggerFactory.getLogger(OrderChangeServiceImpl.class);
-	
+
 	@Override
 	public int addOrderChange(NewOrderChangeBo t,String startRemarks) {
 		TOrderNew ton=new TOrderNew();
@@ -212,7 +201,7 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 			}
 		return 1;
 	}
-	
+
 	/*
 	 * 新增审核流程中的
 	 */
@@ -238,8 +227,8 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 				orderExamineMapper.insertSelective(o);
 			}
 		}
-		
-		
+
+
 	}
 
 	@Override
@@ -327,7 +316,7 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 							nb.setProcessState(nb.getProcessState()+1);
 						}
 					}
-				
+
 			}
 			if(nb.getStatus()==3) {
 				nb.setStatus(1);//如果驳回数据则改为正常数据
@@ -350,14 +339,14 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 			if (rejectState==3) {
 				if (orderExamineMapper.checkCountStatus(orderNo,1,null)<1) nb.setProcessState(nb.getProcessState()+1);
 			}
-			
+
 			//如果驳回到技术经理之前则将审核表中状态跳回
 			if(nb.getProcessState()==3) {
 				orderExamineMapper.updateByOrderNo(orderNo,1);
 			}else if (nb.getProcessState()<3) {
 				orderExamineMapper.updateByOrderNo(orderNo,null);
 			}
-			
+
 		}
 		OrderChangeLog ocl=new OrderChangeLog();
 		ocl.setAuditor(TokenManager.getAdminId());
@@ -370,7 +359,7 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 		newOrderChangeMapper.updateByPrimaryKeySelective(nb);
 		return 1;
 	}
-	
+
 	private void sendNotice(Integer status,NewOrderChangeBo nb) {
 		//0发起2通过 3驳回
 		Integer type=0;
@@ -379,10 +368,12 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 		if(status==3)type=NoticeStatus.ORDER_CHANGE_NO.getCode();
 		//获取发起人与发起人部门
 		AdminListBo a = adminMapper.getDeptNameByAid(TokenManager.getAdminId());
+		//获取客户信息
+		TOrderNewBo o=tOrderNewMapper.getSaleIdByOno(nb.getOrderNo());
 		//获取接收者
-		//流程状态 0营销员 1营销管理员 2技术员 3技术经理 4技术总监 5财务专员(退单) 6财务总监 7总裁 8董事长 9 财务专员(非退单)
+		//流程状态 0营销员 1营销管理员 2技术员 3技术经理 4技术总监 5财务专员(退单) 6财务总监 7总裁 8董事长
 		List<String> alist = new ArrayList<>();
-		TOrderNew o=tOrderNewMapper.selectByPrimaryKey(nb.getOrderNo());
+		//获取部门负责财务人员
 		switch (nb.getProcessState()) {
 		case 0:
 			alist.add(o.getSalesmanId());
@@ -402,8 +393,8 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 			}
 			break;
 		case 5:
-			alist.add(organizationManagementMapper.selectByPrimaryKey(o.getOrderDep()).getFinanceId());
-			break;	
+			alist.add(o.getFinanceId());
+			break;
 		case 6:
 			for (Admin admin : adminMapper.getAdminRoleList("财务管理员")) {
 				alist.add(admin.getId());
@@ -411,7 +402,7 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 			break;
 		case 7:
 			if(nb.getStatus()==2) {
-				alist.add(organizationManagementMapper.selectByPrimaryKey(o.getOrderDep()).getFinanceId());
+				alist.add(o.getFinanceId());
 			}else {
 				for (Admin admin : adminMapper.getAdminRoleList("总裁")) {
 					alist.add(admin.getId());
@@ -420,22 +411,18 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 			break;
 		case 8:
 			if(nb.getStatus()==2) {
-				alist.add(organizationManagementMapper.selectByPrimaryKey(o.getOrderDep()).getFinanceId());
+				alist.add(o.getFinanceId());
 			}else {
 				for (Admin admin : adminMapper.getAdminRoleList("运营决策者")) {
 					alist.add(admin.getId());
 				}
 			}
 			break;
-		case 9:
-			alist.add(organizationManagementMapper.selectByPrimaryKey(o.getOrderDep()).getFinanceId());
-			break;	
-		
 		}
 		//发送站内信息与邮件
-		orderNewService.pushGeneralSendNoticeAndEmail(alist, type, o.getOrderNo(), TokenManager.getAdminId(),0);
+		orderNewService.pushGeneralSendNoticeAndEmail(alist, type, o, TokenManager.getAdminId(),0);
 	}
-	
+
 	/**
 	 * 变更完成复制出原订单镜像
 	 */
@@ -443,7 +430,7 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 		TOrderNew t1=tOrderNewMapper.selectByPrimaryKey(nb.getOrderNo());
 		List<OutNewOrderDunBo> td2=newOrderDunMapper.selectListNewOrderDun(nb.getOrderNo(), null, null);
 		List<TOrderTaskBo> tt1=tOrderTaskMapper.selectOrderTaskAll(nb.getOrderNo());
-		List<TOrderLogBo> tl1=tOrderLogMapper.selectOrderByNo(nb.getOrderNo());		
+		List<TOrderLogBo> tl1=tOrderLogMapper.selectOrderByNo(nb.getOrderNo());
 		String newOrderNo=idGenerator.generateId().toString();
 		t1.setOrderNo(newOrderNo);
 		nb.setUsedOrder(newOrderNo);
@@ -491,7 +478,7 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 		orderNew.setPrimaryOrder(newOrderNo);
 		tOrderNewMapper.updateByPrimaryKeySelective(orderNew);
 	}
-	
+
 	@Override
 	public boolean checkOderNo(String orderNo) {
 		int i=newOrderChangeMapper.checkOderNo(orderNo);
@@ -567,9 +554,9 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 			noc.setRefundableAmount(t.getRefundableAmount());
 		}
 		if(changeType!=1)newOrderChangeMapper.updateByPrimaryKeySelective(noc);
-		return 1; 
+		return 1;
 	}
-	
+
 	private void chekeAmout(NewOrderChangeBo t) {
 		BigDecimal amout=t.getTotalAmount();
 		List<TChangeTaskOut> list = selectChangeTask(t.getId());
@@ -589,7 +576,7 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 			throw new BusinessException("收款节点金额总和不等于合同总金额。");
 		}
 	}
-	
+
 
 	/**
 	   *   判断变更项目是否拆分父子数量是否一直
@@ -600,7 +587,7 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 		//x记录父值y记录子值
 		int x=0;
 		int y=0;
-		
+
 		for (TChangeTaskOut tcto : list) {
 			if (tcto.getSplitStatus()==1&&tcto.getType()!=3) {
 				x+=tcto.getCommodityQuantity();
@@ -634,19 +621,42 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 		changeAdopt(nb);
 		TOrderNew o=pushChange(nb);
 		newOrderChangeMapper.updateByPrimaryKeySelective(nb);
+		TOrderNewBo order=tOrderNewMapper.getSaleIdByOno(nb.getOrderNo());
+		List<String> alist = getAllAid(nb.getId());
+		orderNewService.pushGeneralSendNoticeAndEmail(alist,NoticeStatus.ORDER_CHANGE_END.getCode(), order, TokenManager.getAdminId(),0);
 		return 1;
 	}
 
+	/**
+	 * 获取除发起者意外所有审核者
+	 * @param id
+	 * @return
+	 */
+	private List<String> getAllAid(Integer id) {
+		List<String> alist = new ArrayList<>();
+		List<String>newl=new ArrayList<>();
+		List<OrderChangeLogBo>  list=orderChangeLogMapper.selectOrderChangeLogList(id.toString());
+		for (OrderChangeLogBo log : list) {
+			if (!log.getStatus().equals(0)){
+				if (!newl.contains(log.getAuditor())){
+					newl.add(log.getAuditor());
+				}
+			}
+		}
+		alist.addAll(newl);
+		return alist;
+	}
+
 
 	@Override
 	public int pushCompleteRefund(NewOrderChangeBo nb) {
 		nb.setStatus(6);
 		NewOrderChangeBo nob=newOrderChangeMapper.selectById(nb.getId());
-		TOrderNew o=tOrderNewMapper.selectByPrimaryKey(nob.getOrderNo());
+		TOrderNewBo o=tOrderNewMapper.getSaleIdByOno(nob.getOrderNo());
 		List<String> alist = new ArrayList<>();
 		alist.add(o.getSalesmanId());
 		newOrderChangeMapper.updateByPrimaryKeySelective(nb);
-		orderNewService.pushGeneralSendNoticeAndEmail(alist,NoticeStatus.ORDER_CHANGE_YES.getCode(), o.getOrderNo(), TokenManager.getAdminId(),0);
+		orderNewService.pushGeneralSendNoticeAndEmail(alist,NoticeStatus.ORDER_CHANGE_YES.getCode(), o, TokenManager.getAdminId(),0);
 		return 1;
 	}
 
@@ -687,7 +697,7 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 			if (to.getTaskStatus()>TaskState.UN_DISTRIBUTION.getCode()&&to.getTaskStatus()<TaskState.INVALID.getCode()) {
 				i++;
 			}
-			
+
 		}
 		if (i==taskBos.size()) {
 			o.setProcessStatus(ProcessStatus.YQBFPZXSGLY.getCode());
@@ -698,7 +708,7 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 		}
 		o.setDeleteSign(0);
 		tOrderNewMapper.updateByPrimaryKeySelective(o);
-		return o; 
+		return o;
 	}
 
 	private void pushTaskAndDun(Integer id,String orderNo) {
@@ -724,7 +734,7 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 				ot.setCommodityPrice(cd.getCommodityPrice());
 				ot.setCommodityQuantity(cd.getCommodityQuantity());
 				tOrderTaskMapper.updateByPrimaryKeySelective(ot);
-				
+
 			}else if(cd.getType()==3) {
 				tOrderTaskMapper.deleteByPrimaryKey(cd.getTid());
 			}
@@ -760,8 +770,8 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 		}
 	}
 
-	
-	
+
+
 	@Override
 	public Map<String, Object> listOrderInvoiceAndBill(String orderNo) {
 		Map<String, Object> map=new HashMap<>();
@@ -817,21 +827,21 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
     			}
     		}
     		//返回名称及参数
-			 response.addHeader("Content-Disposition", "attachment;filename="  + new String(fileName.getBytes(),"iso-8859-1"));  
+			 response.addHeader("Content-Disposition", "attachment;filename="  + new String(fileName.getBytes(),"iso-8859-1"));
 			 response.setContentType("application/octet-stream;charset=utf-8");
     		 // 返回数据流
-			 wb.write(out); 
+			 wb.write(out);
 			 out.flush();
 			 out.close();
 		} catch (Exception e) {
 			throw new BusinessException(new Error("表格生成错误。"));
 		}finally {
-			out.flush(); 
-			 out.close(); 
+			out.flush();
+			 out.close();
 		}
 	}
-	
-	
+
+
 			public static String getProcessState(Integer processState,Integer status) {
 				String str="";
 				if (processState == 0) {
@@ -929,7 +939,7 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 						if (tt.getSplitStatus()==0) {
 							tChangeDunMapper.updateByTid(tt.getTid(),tt.getCid(),3);
 						}else if (tt.getSplitStatus()==1) {
-							//删除父类下所有的子类	
+							//删除父类下所有的子类
 							tChangeTaskMapper.updateByTid(null,tt.getTid(),tt.getCid(),3);
 							tChangeDunMapper.updateByTid(tt.getTid(),tt.getCid(),3);
 						}else if(tt.getSplitStatus()==2) {
@@ -971,15 +981,15 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 					return tChangeDunMapper.updateByPrimaryKeySelective(t);
 				}else if(t.getType()==3){
 					if (t.getDid()!=null) {
-						return tChangeDunMapper.updateByPrimaryKeySelective(t);	
+						return tChangeDunMapper.updateByPrimaryKeySelective(t);
 					}else {
 						return tChangeDunMapper.deleteByPrimaryKey(t.getId());
 					}
-					
+
 				}else {
 					return 0;
 				}
-				
+
 			}
 
 			@Override
@@ -1065,7 +1075,7 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 						return false;
 					}else {
 						return true;
-					}	
+					}
 				}
 				return true;
 			}

+ 21 - 17
src/main/java/com/goafanti/order/service/impl/OrderInvoiceServiceImpl.java

@@ -8,6 +8,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import com.goafanti.order.bo.TOrderNewBo;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -52,8 +53,8 @@ public class OrderInvoiceServiceImpl extends BaseMybatisDao<TOrderInvoiceMapper>
 		sendNoticeAndEmail(o);
 		return tOrderInvoiceMapper.insertSelective(o);
 	}
-	
-	
+
+
 
 	@Override
 	public int updateServiceOrder(TOrderInvoice o) {
@@ -84,14 +85,15 @@ public class OrderInvoiceServiceImpl extends BaseMybatisDao<TOrderInvoiceMapper>
 				}
 			}
 		}
-		orderNewService.pushGeneralSendNoticeAndEmail(aids, NoticeStatus.ORDER_INVPICE_START.getCode(),o.getOrderNo(), TokenManager.getAdminId(),0);
+		TOrderNewBo order = tOrderNewMapper.getSaleIdByOno(o.getOrderNo());
+		orderNewService.pushGeneralSendNoticeAndEmail(aids, NoticeStatus.ORDER_INVPICE_START.getCode(),order, TokenManager.getAdminId(),0);
 	}
 
 	@SuppressWarnings("deprecation")
 	@Override
 	public boolean checkAmount(TOrderInvoice t) {
 		TOrderNew tn=tOrderNewMapper.selectByPrimaryKey(t.getOrderNo());
-		
+
 			String i=tOrderInvoiceMapper.checkApplyAmount(t.getOrderNo(),t.getId());//新建时直接查所有数据,修改时除掉修改订单
 			//处理精度问题
 		BigDecimal q=t.getAmount().add(new BigDecimal(i)).setScale(4, BigDecimal.ROUND_DOWN);;
@@ -103,7 +105,7 @@ public class OrderInvoiceServiceImpl extends BaseMybatisDao<TOrderInvoiceMapper>
 		return false;
 	}
 
-	
+
 	@SuppressWarnings("unchecked")
 	@Override
 	public Pagination<TOrderInvoiceBo> financeOrderInvoiceList(InputOrderInvoiceBo o,Integer pageNo,
@@ -128,29 +130,29 @@ public class OrderInvoiceServiceImpl extends BaseMybatisDao<TOrderInvoiceMapper>
 			Admin a=adminMapper.selectByPrimaryKey(TokenManager.getAdminId());
 			aDep.add(a.getDepartmentId());
 			params.put("aDep", aDep);
-		} 
+		}
 		if(StringUtils.isNotBlank(o.getOrderNo()))params.put("orderNo", o.getOrderNo());
 		if(StringUtils.isNotBlank(o.getName()))params.put("name", o.getName());
 		if(null==o.getApproval())params.put("approval", o.getApproval());
 		if(null==o.getStatus())params.put("status", o.getStatus());
 		return (Pagination<TOrderInvoiceBo>)findPage("financeOrderInvoiceList", "financeOrderInvoiceCount", params, pageNo, pageSize);
-		
+
 	}
 
 	@Override
 	public TOrderInvoiceDetails selectByIdOrderInvoice(Integer id) {
 		return tOrderInvoiceMapper.selectByInvoiceDitails(id);
 	}
-	
+
 	@Override
 	public TOrderInvoiceDetails getInvoiceDetails(String orderNo) {
 		return tOrderInvoiceMapper.getInvoiceDetails(orderNo);
 	}
-	
+
 
 	@SuppressWarnings("unchecked")
 	@Override
-	public Pagination<TOrderInvoiceBo> salesmanOrderInvoiceList( String orderNo, 
+	public Pagination<TOrderInvoiceBo> salesmanOrderInvoiceList( String orderNo,
 			Integer pageNo, Integer pageSize) {
 		Map<String, Object> params = new HashMap<String, Object>();
 		if(pageSize==null||pageSize<0)pageSize=10;
@@ -178,16 +180,17 @@ public class OrderInvoiceServiceImpl extends BaseMybatisDao<TOrderInvoiceMapper>
 			type=NoticeStatus.ORDER_INVPICE_END.getCode();
 			aids.add(o.getSalesmanId());
 			//重新计算开票金额
-			
+
 		}
-		orderNewService.pushGeneralSendNoticeAndEmail(aids, type,t2.getOrderNo(), TokenManager.getAdminId(),0);
+		TOrderNewBo order = tOrderNewMapper.getSaleIdByOno(t2.getOrderNo());
+		orderNewService.pushGeneralSendNoticeAndEmail(aids, type,order, TokenManager.getAdminId(),0);
 		tOrderInvoiceMapper.updateByPrimaryKeySelective(t);
 		if(examine==2)tOrderMidMapper.updateInvoice(t2.getOrderNo());
-		return 1; 
+		return 1;
 	}
 
-		
-		
+
+
 
 
 
@@ -240,9 +243,10 @@ public class OrderInvoiceServiceImpl extends BaseMybatisDao<TOrderInvoiceMapper>
 			}else if(o.getType()==1) {
 				aids.addAll(adminMapper.listNameByDepAndName(ts.getOrderDep(), "营销管理员"));
 			}
-		
+
 		}
-		orderNewService.pushGeneralSendNoticeAndEmail(aids,type,o.getOrderNo(), TokenManager.getAdminId(),0);
+		TOrderNewBo order = tOrderNewMapper.getSaleIdByOno(o.getOrderNo());
+		orderNewService.pushGeneralSendNoticeAndEmail(aids,type,order, TokenManager.getAdminId(),0);
 		return tOrderInvoiceMapper.updateByPrimaryKeySelective(t);
 	}
 

+ 33 - 20
src/main/java/com/goafanti/order/service/impl/OrderNewServiceImpl.java

@@ -24,7 +24,7 @@ import com.goafanti.common.dao.*;
 import com.goafanti.common.model.*;
 import com.goafanti.order.bo.*;
 import com.goafanti.organization.bo.*;
-import org.apache.commons.lang3.StringUtils;
+import com.goafanti.common.utils.StringUtils;
 import org.apache.poi.xssf.usermodel.XSSFCell;
 import org.apache.poi.xssf.usermodel.XSSFRow;
 import org.apache.poi.xssf.usermodel.XSSFSheet;
@@ -367,7 +367,8 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 					userMidMapper.insertSelective(um);
 				}
 			}
-			pushGeneralSendNoticeAndEmail(aids, type,t2.getOrderNo(), TokenManager.getAdminId(),t.getApproval());
+			TOrderNewBo order = tOrderNewMapper.getSaleIdByOno(t2.getOrderNo());
+			pushGeneralSendNoticeAndEmail(aids, type,order, TokenManager.getAdminId(),t.getApproval());
 		}
 		if (t2.getApproval()==ApprovalNewState.BH.getCode()||
 				t2.getOrderStatus()==OrderNewState.QDSHJJ.getCode()||
@@ -644,7 +645,8 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 		if (aids.isEmpty()) {
 			throw new BusinessException(new Error( "邮件发送失败,对方设置邮箱错误","邮件发送失败,对方设置邮箱错误"));
 		}
-		pushGeneralSendNoticeAndEmail(aids, type,t2.getOrderNo(), TokenManager.getAdminId(),t2.getApproval());
+		TOrderNewBo order = tOrderNewMapper.getSaleIdByOno(t2.getOrderNo());
+		pushGeneralSendNoticeAndEmail(aids, type,order, TokenManager.getAdminId(),t2.getApproval());
 		return 1;
 	}
 
@@ -870,7 +872,8 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 			type=NoticeStatus.ORDER_APPROVA_NO.getCode();
 		}
 		addOrderLog(tl,reason);
-		pushGeneralSendNoticeAndEmail(aids, type,t2.getOrderNo(), TokenManager.getAdminId(),t2.getApproval());
+		TOrderNewBo order = tOrderNewMapper.getSaleIdByOno(orderNo);
+		pushGeneralSendNoticeAndEmail(aids, type,order, TokenManager.getAdminId(),t2.getApproval());
 		//新增特批催款信息
 
 		return tOrderNewMapper.updateByPrimaryKeySelective(t);
@@ -1123,7 +1126,8 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 		addBackOrder(orderNo, reason);
 		List<String> aids = new ArrayList<>();
 		aids.add(t.getSalesmanId());
-		pushGeneralSendNoticeAndEmail(aids, NoticeStatus.ORDER_NO.getCode(),t.getOrderNo(), TokenManager.getAdminId(),t.getApproval());
+		TOrderNewBo order = tOrderNewMapper.getSaleIdByOno(orderNo);
+		pushGeneralSendNoticeAndEmail(aids, NoticeStatus.ORDER_NO.getCode(),order, TokenManager.getAdminId(),t.getApproval());
 		return tOrderNewMapper.updateByPrimaryKeySelective(t);
 	}
 
@@ -1159,8 +1163,8 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 
 	public void addNotic(Integer type,AdminListBo a,TOrderNewBo b) {
 		StringBuffer sb=new StringBuffer();
-		sb=sb.append(b.getUserName()).append(", 合同编号-").append(b.getContractNo())
-				.append(", 订单编号-").append(b.getOrderNo()).append(", 操作人: ").append(a.getDepartmentName()).append("-").append(a.getName()).append("。");
+		sb=sb.append("客户名称[").append(b.getUserName()).append("], 合同编号[").append(b.getContractNo())
+				.append("] 订单编号[").append(b.getOrderNo()).append("] 操作人: ").append(a.getDepartmentName()).append("-").append(a.getName()).append("。");
 		Notice n =new Notice();
 		n.setId(UUID.randomUUID().toString());
 		n.setAid(b.getSalesmanId());
@@ -1203,36 +1207,44 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 		return tOrderLogMapper.selectOrderByNo(orderNo);
 	}
 
-	public  void pushGeneralSendNoticeAndEmail(List<String> alist, Integer type,String orderNo,String adminId,Integer approval) {
+	public  void pushGeneralSendNoticeAndEmail(List<String> alist, Integer type,TOrderNewBo order,String adminId,Integer approval) {
+		pushGeneralSendNoticeAndEmail( alist,  type, order, adminId, approval,null);
+	}
+	public  void pushGeneralSendNoticeAndEmail(List<String> alist, Integer type,TOrderNewBo order,String adminId,Integer approval,Integer tid) {
 		AdminListBo a = adminMapper.getDeptNameByAid(adminId);
 		String approvalType="";
+		String noticeTypeName = NoticeStatus.getValueByCode(type);
 		if (approval!=ApprovalNewState.FTP.getCode()) approvalType="[特批]";
-		String str=approvalType+NoticeStatus.getValueByCode(type)+": 订单编号 -"+orderNo+", 操作人:"+a.getDepartmentName()+"-"+a.getName()+"。";
+		StringBuffer str=new StringBuffer(approvalType).append(noticeTypeName).append(":");
+		if (tid != null) {str=str.append("项目编号[").append(tid).append("],");}
+		str=str.append("客户名称[") .append(order.getUserName()).append("],");
+		if(StringUtils.isNotBlank(order.getContractNo()))str=str.append("合同编号[").append(order.getContractNo()).append("],");
+		str=str.append("订单编号[").append(order.getOrderNo()).append("],").append("操作人:")
+				.append(a.getDepartmentName()).append("-").append(a.getName()).append("。");
 		String adminIds="";
 		List<Notice> nlist=new  ArrayList<>();
 		for (String string : alist) {
 			Notice n =new Notice();
 			n.setId(UUID.randomUUID().toString());
 			n.setNoticeType(type);
-			n.setContent(str);
+			n.setContent(str.toString());
 			n.setCreateTime(new Date());
 			n.setReaded(0);//未读
 			n.setAid(string);
 			nlist.add(n);
 			Admin admin = adminMapper.selectAllByid(string);
-			if(admin!=null&&admin.getEmail()!=null&&SendEmailUtil.isEmail(admin.getEmail().trim()))adminIds+=admin.getEmail()+",";
+			//去除邮件重复的
+			if(admin!=null&&admin.getEmail()!=null&&SendEmailUtil.isEmail(admin.getEmail().trim())){
+				if (!adminIds.contains(admin.getEmail())){
+					adminIds+=admin.getEmail()+",";
+				}
+			}
 		}
 		if(!nlist.isEmpty())asyncUtils.addNoticeBatch(nlist);
 		if (!nlist.isEmpty()&&StringUtils.isNotBlank(adminIds)) {
 			adminIds=adminIds.substring(0, adminIds.length()-1);
-			EmailBo bo = new EmailBo(NoticeStatus.getValueByCode(type), adminIds, a.getDepartmentName(), a.getName(), "请登录查看"
-					,null,null,null,null,null,null,0,approval);
-			try {
-				//使用专利邮件模板
-				asyncUtils.patentSend(bo);
-			} catch (UnsupportedEncodingException | MessagingException e) {
-				throw new BusinessException(new Error( "邮件发送错误","邮件发送错误"));
-			}
+			EmailBo bo=new EmailBo(noticeTypeName,adminIds,str.toString());
+			asyncUtils.send(bo);
 		}
 	}
 
@@ -1259,7 +1271,8 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 			Admin a =adminMapper.selectByPrimaryKey(TokenManager.getAdminId());
 			OutsourceLog ol=new OutsourceLog(o.getTid(),0,o.getReason(), TokenManager.getAdminId(),a.getName());
 			outsourceLogMapper.insertSelective(ol);
-			pushGeneralSendNoticeAndEmail(aids, NoticeStatus.PROJECT_OUTSOURCE_START.getCode(),o.getOrderNo(), TokenManager.getAdminId(),t2.getApproval());
+			TOrderNewBo order = tOrderNewMapper.getSaleIdByOno(o.getOrderNo());
+			pushGeneralSendNoticeAndEmail(aids, NoticeStatus.PROJECT_OUTSOURCE_START.getCode(),order, TokenManager.getAdminId(),t2.getApproval(),o.getTid());
 		}
 		List<OutPaymentNode> list=paymentNodeMapper.selectByStatus(0);
 		for (OutPaymentNode outPaymentNode : list) {

+ 47 - 46
src/main/java/com/goafanti/order/service/impl/OrderProjectServiceImpl.java

@@ -139,9 +139,9 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 	private AsyncUtils	asyncUtils;
 	@Value(value = "${upload.path}")
 	private String 					uploadPath 			= null;
-	
+
 	Logger							logger	= LoggerFactory.getLogger(OrderProjectServiceImpl.class);
-	
+
 	@Override
 	@Transactional
 	public int updateProjectDistribution(Integer taskId, String taskReceiverId,String remarks,Integer type) {
@@ -179,7 +179,8 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 		tOrderTaskMapper.updateByPrimaryKey(t);
 		List<String> aids = new ArrayList<>();
 		aids.add(taskReceiverId);
-		orderNewService.pushGeneralSendNoticeAndEmail(aids, NoticeStatus.ORDER_TASK_TO.getCode(),t.getOrderNo(), TokenManager.getAdminId(),0);
+		TOrderNewBo order = tOrderNewMapper.getSaleIdByOno(t.getOrderNo());
+		orderNewService.pushGeneralSendNoticeAndEmail(aids, NoticeStatus.ORDER_TASK_TO.getCode(),order, TokenManager.getAdminId(),0,taskId);
 		checkProjiectAllocation(t.getOrderNo());
 		return 1;
 	}
@@ -228,13 +229,13 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 			//标记最新的打卡
 			publicReleaseMapper.updateSignByAidAndUid(tn.getBuyerId(),tn.getSalesmanId());
 	}
-	
-	
-	
-	private void addtaskAttributionLog(Integer taskId, String taskReceiverId, String remarks, Integer type, Date date) {	
+
+
+
+	private void addtaskAttributionLog(Integer taskId, String taskReceiverId, String remarks, Integer type, Date date) {
 		TaskAttributionLog log=new TaskAttributionLog(taskId,TokenManager.getAdminId(),taskReceiverId,remarks,type,date);
 		taskAttributionLogMapper.insertSelective(log);
-		
+
 	}
 
 
@@ -251,7 +252,7 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 		tl.setAid(TokenManager.getAdminId());
 		if(null!=remarks)tl.setRemarks(remarks);
 		tOrderLogMapper.insertSelective(tl);
-		
+
 	}
 	public void checkProjiectAllocation(String  orderNo) {
 		List<TOrderTaskBo> taskBos=tOrderTaskMapper.selectOrderTask(orderNo);
@@ -262,7 +263,7 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 			if (to.getTaskStatus()>TaskState.UN_DISTRIBUTION.getCode()&&to.getTaskStatus()<TaskState.INVALID.getCode()) {
 				i++;
 			}
-			
+
 		}
 		if (i==taskBos.size()) {
 			tNew.setProcessStatus(ProcessStatus.YQBFPZXSGLY.getCode());
@@ -320,7 +321,7 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 		} else {
 			params.put("role", 0);
 			params.put("aid", TokenManager.getAdminId()==null?"1":TokenManager.getAdminId());
-		} 
+		}
 		Pagination<TOrderTaskListBo> p = (Pagination<TOrderTaskListBo>)findPage("selectOrderTaskListByPage", "selectOrderTaskListCount", params, ib.getPageNo(), ib.getPageSize());
 		List<TOrderTaskListBo> list=(List<TOrderTaskListBo>) p.getList();
 		for (TOrderTaskListBo t : list) {
@@ -347,8 +348,8 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 			t.setCertificateNumber("****");
 			return t;
 		}
-		
-		
+
+
 	}
 
 	@Override
@@ -381,7 +382,7 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 			task.setCertificationCorporate(t.getCertificationCorporate());
 			task.setCertificationFee(t.getCertificationFee());
 		}
-		
+
 		//根据修改的修改订单法人与联系人
 		if(StringUtils.isNotEmpty(t.getContacts()))tn.setContacts(t.getContacts());
 		if(StringUtils.isNotEmpty(t.getContactMobile()))	tn.setContactMobile(t.getContactMobile());
@@ -398,7 +399,7 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 			org.setPostalAddress(t.getPostalAddress());
 			organizationIdentityMapper.updateServiceByUid(org);
 		}
-		
+
 		//修改公司联系人
 		int adcount=organizationContactBookMapper.checkContacts(tn.getBuyerId(), t.getContactMobile(),tn.getSalesmanId());
 		if (StringUtils.isNotBlank(t.getContacts())&&StringUtils.isNotBlank(t.getContactMobile())&&adcount<1) {
@@ -441,11 +442,11 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 		tl.setTaskId(t.getId());
 		tl.setAid(TokenManager.getAdminId());
 		//项目触发发催款
-		
+
 		return 1;
 	}
-	
-	
+
+
 	public int updateProjectStatus(UpdateProjectStatusBo b) {
 		TOrderTask t=new TOrderTask();
 		t.setId(b.getTid());
@@ -465,7 +466,7 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 		return 1;
 	}
 
-	
+
 
 	private void pushTaskLog(Integer tid,Integer projectStatus) {
 		TaskLog tl = new TaskLog();
@@ -505,7 +506,7 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 			t2.setProjectStatus(task3.getProjectStatus());
 			pushOrderDunAndPaymentNode(t2.getId(),t2.getProjectStatus(),task3);
 		}
-		
+
 		if (task2.getSuperId()!=null) {//有父项目
 			TOrderTask task3 =tOrderTaskMapper.selectBySuperId(task2.getSuperId());
 			task3.setId(Integer.valueOf(task2.getSuperId()));
@@ -553,7 +554,7 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 						if (bp.getType()==2&&projectStatus==NewProjectStatus.YWCXZ.getCode()) {
 							flag=true;
 						}
-						
+
 					}
 				}else if(ob.getProjectType()==OrderDunProjectType.GX.getCode()) {
 					if (ob.getDunType()==2&&projectStatus>=NewProjectStatus.YNGS.getCode()
@@ -562,7 +563,7 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 					} else if (ob.getDunType()==3&&projectStatus==NewProjectStatus.YXZ.getCode()){
 						flag=true;
 					}
-				} 
+				}
 					if(flag) {
 					//如果启动催款,则新增欠款与应收款
 						TOrderNew tn=tOrderNewMapper.selectByPrimaryKey(task2.getOrderNo());
@@ -582,7 +583,7 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 					ob.setStatus(1);
 					ob.setStartTime(new Date());
 					newOrderDunMapper.updateByPrimaryKeySelective(ob);
-					
+
 				}
 			}
 		}
@@ -620,15 +621,15 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 						if (bp.getType()==2&&projectStatus==NewProjectStatus.YWCXZ.getCode()) {
 							flag=true;
 						}
-						
+
 					}
-				} 
+				}
 					if(flag)addNoticAndEmail( op,NoticeStatus.PAYMENT_DUN.getCode());
 			}
 		}
 	}
-	
-	
+
+
 	public void addNoticAndEmail(OutPaymentNode pn,Integer type) {
 		paymentNodeEmailBo pnb=paymentNodeMapper.selectBytidGetEmail(pn.getTid());
 		String str=NoticeStatus.getValueByCode(type)+": 订单编号 -"+pnb.getOrderNo()+", 操作人:平台超管中心-管理员。";
@@ -652,13 +653,13 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 					try {
 						asyncUtils.patentSend(bo);
 					} catch (UnsupportedEncodingException | MessagingException e) {
-						LoggerUtils.debug(logger, "=========================================发送邮件异常"); 
+						LoggerUtils.debug(logger, "=========================================发送邮件异常");
 						e.printStackTrace();
 					}
 				}
 	     }
 	}
-	
+
 	private void checkSettlementAward(TOrderNew tn,TOrderTask task) {
 		if(task.getTaskStatus()==TaskState.COMPLETE.getCode()&&tn.getTotalAmount().compareTo(tn.getSettlementAmount())==0) {
 			List<TOrderTask> l = tOrderTaskMapper.getReceiverByOid(tn.getOrderNo());
@@ -678,9 +679,9 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 						bonus.setId(UUID.randomUUID().toString());
 						tOrderBonusMapper.insertSelective(bonus);
 					}
-					
+
 				}
-				
+
 			}
 		}
 	}
@@ -762,13 +763,13 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 		if(TokenManager.getAdminId()!=null)params.put("aid", TokenManager.getAdminId());
 		if(i!=null)params.put("shiroType", i);
 		Pagination<TOrderTaskListBo> p = (Pagination<TOrderTaskListBo>)findPage("selectTaskHoursListByPage", "selectTaskHoursListCount", params, pageNo, pageSize);
-		
+
 		return p;
 	}
 
-	
-	
-	
+
+
+
 
 
 
@@ -814,10 +815,10 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 		taskProgressLogMapper.insertSelective(tpl);
 		int i=taskProgressMapper.insertSelective(tp);
 		countByTid(tp.getTaskId(),tp.getType());
-		return i; 
+		return i;
 	}
-	
-	
+
+
 	@Override
 	public int updateTaskProgress(TaskProgressBo t) {
 		TaskProgress tp=taskProgressMapper.selectByPrimaryKey(t.getId());
@@ -839,7 +840,7 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 		taskProgressLogMapper.insertSelective(tpl);
 		int i=taskProgressMapper.updateByPrimaryKeySelective(tp);
 		countByTid(tp.getTaskId(),tp.getType());
-		return i; 
+		return i;
 	}
 
 	@Override
@@ -858,7 +859,7 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 		//目前不做计算
 //		TTaskMid ttm=tTaskMidMapper.selectCountBytid(taskId,type);
 //		tTaskMidMapper.updateByPrimaryKeySelective(ttm);
-		
+
 	}
 
 
@@ -873,13 +874,13 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 		}
 		return l;
 	}
-	
+
 	@Override
 	public List<TTaskHours> taskHoursDetailsList(String taskId) {
 		String aid=TokenManager.getAdminId();
 		return tTaskHoursMapper.taskHoursDetailsList(taskId,aid);
 	}
-	
+
 	@Override
 	public int pushSplitProject(Integer tid, String splitList) {
 			String[] str=splitList.split(",");
@@ -915,7 +916,7 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 			}
 		return 1;
 	}
-	
+
 	@Override
 	public List<TOrderTaskListBo> splitProjectList(Integer tid) {
 		return tOrderTaskMapper.splitProjectList(tid);
@@ -937,7 +938,7 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 		if(pageSize==null||pageSize<0)pageSize=10;
 		if(pageNo==null||pageNo<0)pageNo=1;
 		params.put("aid", TokenManager.getAdminId()==null?"":TokenManager.getAdminId());
-		if (StringUtils.isNotBlank(name))params.put("name", name); 
+		if (StringUtils.isNotBlank(name))params.put("name", name);
 		else params.put("name", "");
 		if (StringUtils.isNotBlank(depId)) params.put("depId", depId);
 		if (StringUtils.isNotBlank(orderNo)) params.put("orderNo", orderNo);
@@ -958,14 +959,14 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 
 	@Override
 	public List<taskAttributionLogBo> taskAttributionLog(Integer tid) {
-		
+
 		return taskAttributionLogMapper.selectByTid(tid);
 	}
 
 
 	@Override
 	public List<UserOrderTask> selectUidByproject(String uid) {
-		
+
 		return tOrderTaskMapper.selectUidByproject(uid);
 	}
 

+ 8 - 10
src/main/java/com/goafanti/order/service/impl/OutsourceOrgServiceImpl.java

@@ -6,6 +6,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import com.goafanti.order.bo.*;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -30,10 +31,6 @@ import com.goafanti.common.model.TOrderTask;
 import com.goafanti.core.mybatis.BaseMybatisDao;
 import com.goafanti.core.mybatis.page.Pagination;
 import com.goafanti.core.shiro.token.TokenManager;
-import com.goafanti.order.bo.OrderOutsourceBo;
-import com.goafanti.order.bo.OrderOutsourceDtails;
-import com.goafanti.order.bo.OutOutsourceLog;
-import com.goafanti.order.bo.OutsourceOrganizationBo;
 import com.goafanti.order.enums.ProcessStatus;
 import com.goafanti.order.service.OrderNewService;
 import com.goafanti.order.service.OrderService;
@@ -77,15 +74,15 @@ public class OutsourceOrgServiceImpl  extends BaseMybatisDao<TOrderOutsourceMapp
 	}
 	@Override
 	public List<OutsourceOrganizationBo> selectOutsourceOrg(String orderNo,String tid) {
-		
+
 		return outsourceOrganizationMapper.selectOutsourceOrg(orderNo,tid);
 	}
 	@Override
 	public List<OutsourceOrganizationBo> selectOrderOutsourceOrg(String orderNo) {
-		
+
 		return outsourceOrganizationMapper.selectOrderOutsourceOrg(orderNo);
 	}
-	
+
 	@Override
 	@SuppressWarnings("unchecked")
 	public Pagination<OrderOutsourceBo> orderOutsourceList(String name, String contractNo, String starTime,String endTime,Integer tid,
@@ -164,10 +161,11 @@ public class OutsourceOrgServiceImpl  extends BaseMybatisDao<TOrderOutsourceMapp
 			}
 			outsourceLogMapper.insertSelective(ol);
 		}
-		orderNewService.pushGeneralSendNoticeAndEmail(aids, type,o.getOrderNo(), TokenManager.getAdminId(),t2.getApproval());
+		TOrderNewBo order=tOrderNewMapper.getSaleIdByOno(o.getOrderNo());
+		orderNewService.pushGeneralSendNoticeAndEmail(aids, type,order, TokenManager.getAdminId(),t2.getApproval(),o.getTid());
 		return tOrderOutsourceMapper.updateByPrimaryKeySelective(o);
 	}
-	
+
 	public void addOrderLog(String orderNo, Integer code,String remarks) {
 		TOrderLog tl=new TOrderLog();
 		tl.setOrderNo(orderNo);
@@ -175,7 +173,7 @@ public class OutsourceOrgServiceImpl  extends BaseMybatisDao<TOrderOutsourceMapp
 		tl.setAid(TokenManager.getAdminId());
 		tl.setRemarks(remarks);
 		tOrderLogMapper.insertSelective(tl);
-		
+
 	}
 	@SuppressWarnings("unchecked")
 	@Override