Browse Source

Merge branch 'test' of jishutao/kede-server into prod

anderx 2 years ago
parent
commit
4c36ddb546
30 changed files with 567 additions and 175 deletions
  1. 0 5
      src/main/java/com/goafanti/admin/service/DepartmentService.java
  2. 1 11
      src/main/java/com/goafanti/admin/service/impl/DepartmentServiceImpl.java
  3. 2 0
      src/main/java/com/goafanti/common/dao/AdminMapper.java
  4. 0 1
      src/main/java/com/goafanti/common/dao/DepartmentMapper.java
  5. 30 0
      src/main/java/com/goafanti/common/dao/TOrderExamineMapper.java
  6. 4 4
      src/main/java/com/goafanti/common/enums/OrderLogProcess.java
  7. 5 0
      src/main/java/com/goafanti/common/mapper/AdminMapper.xml
  8. 1 4
      src/main/java/com/goafanti/common/mapper/DepartmentMapper.xml
  9. 134 0
      src/main/java/com/goafanti/common/mapper/TOrderExamineMapper.xml
  10. 22 16
      src/main/java/com/goafanti/common/mapper/TOrderNewMapper.xml
  11. 97 0
      src/main/java/com/goafanti/common/model/TOrderExamine.java
  12. 1 1
      src/main/java/com/goafanti/common/utils/AsyncUtils.java
  13. 0 2
      src/main/java/com/goafanti/core/shiro/filter/AdminFilter.java
  14. 3 0
      src/main/java/com/goafanti/customer/bo/InputSelectUserLastSignBo.java
  15. 28 30
      src/main/java/com/goafanti/customer/service/impl/CustomerServiceImpl.java
  16. 3 1
      src/main/java/com/goafanti/order/bo/InputOrderNewListBo.java
  17. 10 0
      src/main/java/com/goafanti/order/bo/OrderListBo.java
  18. 13 0
      src/main/java/com/goafanti/order/bo/TOrderNewBo.java
  19. 28 29
      src/main/java/com/goafanti/order/controller/AdminNewOrderApiController.java
  20. 2 2
      src/main/java/com/goafanti/order/enums/ProcessStatus.java
  21. 73 13
      src/main/java/com/goafanti/order/service/impl/FundManagerOrderServiceImpl.java
  22. 7 3
      src/main/java/com/goafanti/order/service/impl/OrderChangeServiceImpl.java
  23. 7 4
      src/main/java/com/goafanti/order/service/impl/OrderInvoiceServiceImpl.java
  24. 80 29
      src/main/java/com/goafanti/order/service/impl/OrderNewServiceImpl.java
  25. 1 1
      src/main/java/com/goafanti/order/service/impl/OrderProjectServiceImpl.java
  26. 1 1
      src/main/java/com/goafanti/order/service/impl/OutsourceOrgServiceImpl.java
  27. 4 9
      src/main/java/com/goafanti/order/service/impl/PushOrderService.java
  28. 6 6
      src/main/resources/props/config_local.properties
  29. 1 1
      src/main/resources/props/config_test.properties
  30. 3 2
      src/main/resources/spring/spring-shiro.xml

+ 0 - 5
src/main/java/com/goafanti/admin/service/DepartmentService.java

@@ -53,11 +53,6 @@ public interface DepartmentService {
 	 */
 	List<String> comparePermissions(List<String> aDep, String deps);
 
-	/**
-	 * 获取财务管理部门
-	 * @return
-	 */
-	List<String> getFinanceDep(String aid);
 
 
 }

+ 1 - 11
src/main/java/com/goafanti/admin/service/impl/DepartmentServiceImpl.java

@@ -7,6 +7,7 @@ import java.util.List;
 import com.alibaba.fastjson.JSON;
 import com.goafanti.admin.bo.DepartmentComboBox;
 import com.goafanti.common.constant.AFTConstants;
+import com.goafanti.common.dao.AdminMapper;
 import com.goafanti.common.dao.DepartmentMapper;
 import com.goafanti.common.model.Department;
 import com.goafanti.core.shiro.token.TokenManager;
@@ -142,15 +143,4 @@ public class DepartmentServiceImpl extends BaseMybatisDao<WorkingHoursMapper> im
 		return JSON.parseArray(deps,String.class);
 	}
 
-
-	@Override
-	public List<String> getFinanceDep(String aid) {
-		return departmentMapper.getFinanceDep(aid);
-	}
-
-
-
-
-
-
 }

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

@@ -165,4 +165,6 @@ public interface AdminMapper {
     List<Admin> selectAdminByRoleType(@Param("roleType") String roleType);
 
     List<AdminCustomerBo > selectByDeps(@Param("depIds") List<Department> depIds,@Param("seniorStaff") Integer seniorStaff);
+
+    Admin getAdminByFinanceId(String id);
 }

+ 0 - 1
src/main/java/com/goafanti/common/dao/DepartmentMapper.java

@@ -116,5 +116,4 @@ public interface DepartmentMapper {
 
     Department selectByDepNo(String superId);
 
-    List<String> getFinanceDep(String aid);
 }

+ 30 - 0
src/main/java/com/goafanti/common/dao/TOrderExamineMapper.java

@@ -0,0 +1,30 @@
+package com.goafanti.common.dao;
+
+import com.goafanti.common.model.TOrderExamine;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface TOrderExamineMapper {
+    int deleteByPrimaryKey(Integer id);
+
+    int insert(TOrderExamine record);
+
+    int insertSelective(TOrderExamine record);
+
+    TOrderExamine selectByPrimaryKey(Integer id);
+
+    int updateByPrimaryKeySelective(TOrderExamine record);
+
+    int updateByPrimaryKey(TOrderExamine record);
+
+    List<TOrderExamine> selectByOrderNo(String orderNo);
+
+    void updateStatusByOrderNo(@Param("orderNo")String orderNo,@Param("aid") String aid, @Param("status")Integer status);
+
+    void insertBatch(@Param("list") List<TOrderExamine> list);
+
+    int selectByOrderNoAndAid(@Param("orderNo")String orderNo,@Param("aid") String aid);
+
+
+}

+ 4 - 4
src/main/java/com/goafanti/common/enums/OrderLogProcess.java

@@ -7,16 +7,17 @@ import org.apache.commons.lang3.StringUtils;
 
 
 public enum OrderLogProcess {
-//	流程1=提交,2=审核,3=驳回,4=特批,5=财务派单,6=财务首付,7=项目订单派单,8=项目派单,9=项目完成,0=发起退单,10=退单完成,11=财务全款,
+//	流程1=提交,2=审核,3=驳回,4=特批,5=财务审核 ,25=项目总监审核,6=财务首付,7=项目订单派单,8=项目派单,9=项目完成,0=发起退单,10=退单完成,11=财务全款,
 //	12=离职转交,13=发起会员项目,14=订单外包驳回,15=项目外包通过,16=项目外包驳回,17=订单离职转交,18=会员项目发起,19=会员财务通过,
 //	20=会员特批通过,21=会员财务驳回,22=会员特批驳回,23=会员项目完成
 	TJ(1, "营销员提交"),
 	SH(2, "管理员审核"),
 	BH(3, "驳回"),
 	TP(4, "特批通过"),
-	CWPD(5, "财务派单"),
+	CWSH(5, "财务审核"),
+	XMZJSH(25, "项目总监审核"),
 	CWSF(6, "财务首付"),
-	XMDDPD(7, "项目总监派单"),
+	XMZJPD(7, "项目总监派单"),
 	XMJLPD(8, "项目经理派单"),
 	XMWC(9, "项目完成"),
 	FQTD(0,"发起退单"),
@@ -35,7 +36,6 @@ public enum OrderLogProcess {
 	HYTPBH(22,"会员特批驳回"),
 	HYXMWC(23,"会员项目完成"),
 	DDZJ(24,"订单转交"),
-
 	NOT(99,"未知"),
 	;
 

+ 5 - 0
src/main/java/com/goafanti/common/mapper/AdminMapper.xml

@@ -1214,4 +1214,9 @@
       </foreach>
     </if>
   </select>
+  <select id="getAdminByFinanceId" resultType="com.goafanti.common.model.Admin">
+    select b.id ,b.name
+    from department a left join admin b on a.finance_id=b.id
+    where a.id= #{id}
+  </select>
 </mapper>

+ 1 - 4
src/main/java/com/goafanti/common/mapper/DepartmentMapper.xml

@@ -550,9 +550,6 @@
     from department where super_id=  #{superId}
     order by dep_no desc limit 1
   </select>
-    <select id="getFinanceDep" resultType="java.lang.String">
-      select id from department
-      where finance_id = #{aid};
-    </select>
+
 
 </mapper>

+ 134 - 0
src/main/java/com/goafanti/common/mapper/TOrderExamineMapper.xml

@@ -0,0 +1,134 @@
+<?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.goafanti.common.dao.TOrderExamineMapper">
+  <resultMap id="BaseResultMap" type="com.goafanti.common.model.TOrderExamine">
+    <id column="id" jdbcType="INTEGER" property="id" />
+    <result column="order_no" jdbcType="VARCHAR" property="orderNo" />
+    <result column="aid" jdbcType="VARCHAR" property="aid" />
+    <result column="status" jdbcType="INTEGER" property="status" />
+    <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
+    <result column="aname" jdbcType="VARCHAR" property="aname" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    id, order_no, aid, `status`, create_time, aname
+  </sql>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
+    select
+    <include refid="Base_Column_List" />
+    from t_order_examine
+    where id = #{id,jdbcType=INTEGER}
+  </select>
+
+    <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
+    delete from t_order_examine
+    where id = #{id,jdbcType=INTEGER}
+  </delete>
+  <insert id="insert" keyColumn="id" keyProperty="id" parameterType="com.goafanti.common.model.TOrderExamine" useGeneratedKeys="true">
+    insert into t_order_examine (order_no, aid, `status`,
+      create_time, aname)
+    values (#{orderNo,jdbcType=VARCHAR}, #{aid,jdbcType=VARCHAR}, #{status,jdbcType=INTEGER},
+      #{createTime,jdbcType=TIMESTAMP}, #{aname,jdbcType=VARCHAR})
+  </insert>
+  <insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="com.goafanti.common.model.TOrderExamine" useGeneratedKeys="true">
+    insert into t_order_examine
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="orderNo != null">
+        order_no,
+      </if>
+      <if test="aid != null">
+        aid,
+      </if>
+      <if test="status != null">
+        `status`,
+      </if>
+      <if test="createTime != null">
+        create_time,
+      </if>
+      <if test="aname != null">
+        aname,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="orderNo != null">
+        #{orderNo,jdbcType=VARCHAR},
+      </if>
+      <if test="aid != null">
+        #{aid,jdbcType=VARCHAR},
+      </if>
+      <if test="status != null">
+        #{status,jdbcType=INTEGER},
+      </if>
+      <if test="createTime != null">
+        #{createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="aname != null">
+        #{aname,jdbcType=VARCHAR},
+      </if>
+    </trim>
+  </insert>
+
+  <update id="updateByPrimaryKeySelective" parameterType="com.goafanti.common.model.TOrderExamine">
+    update t_order_examine
+    <set>
+      <if test="orderNo != null">
+        order_no = #{orderNo,jdbcType=VARCHAR},
+      </if>
+      <if test="aid != null">
+        aid = #{aid,jdbcType=VARCHAR},
+      </if>
+      <if test="status != null">
+        `status` = #{status,jdbcType=INTEGER},
+      </if>
+      <if test="createTime != null">
+        create_time = #{createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="aname != null">
+        aname = #{aname,jdbcType=VARCHAR},
+      </if>
+    </set>
+    where id = #{id,jdbcType=INTEGER}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.goafanti.common.model.TOrderExamine">
+    update t_order_examine
+    set order_no = #{orderNo,jdbcType=VARCHAR},
+      aid = #{aid,jdbcType=VARCHAR},
+      `status` = #{status,jdbcType=INTEGER},
+      create_time = #{createTime,jdbcType=TIMESTAMP},
+      aname = #{aname,jdbcType=VARCHAR}
+    where id = #{id,jdbcType=INTEGER}
+  </update>
+
+
+  <select id="selectByOrderNo" resultMap="BaseResultMap">
+    select
+    <include refid="Base_Column_List" />
+    from t_order_examine
+    where order_no = #{orderNo,jdbcType=VARCHAR}
+  </select>
+
+
+  <update id="updateStatusByOrderNo">
+    update t_order_examine
+    set status= #{status}
+    where order_no = #{orderNo,jdbcType=VARCHAR}
+    <if test="aid!=null">
+      and aid = #{aid}
+    </if>
+  </update>
+
+  <insert id="insertBatch">
+    insert into t_order_examine (order_no, aid, `status`, aname)
+    values
+    <foreach item="item" index="index" collection="list" separator=",">
+      (#{item.orderNo,jdbcType=VARCHAR}, #{item.aid,jdbcType=VARCHAR}, #{item.status,jdbcType=INTEGER},
+       #{item.aname,jdbcType=VARCHAR})
+    </foreach>
+  </insert>
+  <select id="selectByOrderNoAndAid" resultType="java.lang.Integer">
+    select count(*)
+    from t_order_examine where status=0
+    and order_no = #{orderNo} and aid= #{aid}
+  </select>
+
+
+</mapper>

+ 22 - 16
src/main/java/com/goafanti/common/mapper/TOrderNewMapper.xml

@@ -1038,7 +1038,7 @@ left join department d on o.order_dep = d.id   left join t_order_mid a on o.orde
         </if>
       </if>
   	<if test="specially == 4">
-  	and a.process_status in (5,6,7,99)
+      and a.process_status in (3,5,6,7,99)
   	and a.order_status  in(1,2,3,4,6)
   	</if>
     <if test="deps!=null">
@@ -1047,13 +1047,16 @@ left join department d on o.order_dep = d.id   left join t_order_mid a on o.orde
         #{dep}
       </foreach>
     </if>
-  	<if test="distribution == 0">
-  	and a.process_status &lt; 6
-  	</if>
+    <if test="distribution == 0">
+      and a.process_status = 3
+    </if>
   	<if test="distribution == 1">
-  	and a.process_status = 6
+  	and a.process_status = 5
   	</if>
   	<if test="distribution == 2">
+  	and a.process_status = 6
+  	</if>
+  	<if test="distribution == 3">
   	and a.process_status = 7
   	</if>
   	<if test="name != null">
@@ -1204,7 +1207,7 @@ left join department d on o.order_dep = d.id   left join t_order_mid a on o.orde
        </if>
      </if>
   	<if test="specially == 4">
-  	and a.process_status in (5,6,7,99)
+  	and a.process_status in (3,5,6,7,99)
   	and a.order_status  in(1,2,3,4,6)
   	</if>
      <if test="deps!=null">
@@ -1213,15 +1216,18 @@ left join department d on o.order_dep = d.id   left join t_order_mid a on o.orde
          #{dep}
        </foreach>
      </if>
-  	<if test="distribution == 0">
-  	and a.process_status &lt; 6
-  	</if>
-  	<if test="distribution == 1">
-  	and a.process_status = 6
-  	</if>
-  	<if test="distribution == 2">
-  	and a.process_status = 7
-  	</if>
+     <if test="distribution == 0">
+       and a.process_status = 3
+     </if>
+     <if test="distribution == 1">
+       and a.process_status = 5
+     </if>
+     <if test="distribution == 2">
+       and a.process_status = 6
+     </if>
+     <if test="distribution == 3">
+       and a.process_status = 7
+     </if>
   	<if test="name != null">
   	and b.nickname like CONCAT('%',#{name,jdbcType=VARCHAR},'%')
   	</if>
@@ -2044,7 +2050,7 @@ left join department d on o.order_dep = d.id   left join t_order_mid a on o.orde
      left join (select a.department_id depId,group_concat(a.name) name
         from admin a left join user_role b on a.id=b.uid left join `role` c on b.rid =c.id
         where c.role_type ='9996' and a.status ='0' group by a.department_id )yxgly on c.id =yxgly.depId
-     left join admin d on c.finance_id =d.id
+     left join (select order_no ,group_concat(aname)name from t_order_examine group by order_no ) d on a.order_no=d.order_no
      left join (select group_concat(a.name) name
         from admin a left join user_role b on a.id=b.uid left join `role` c on b.rid =c.id
         where c.role_type in ('99998','99988') and a.status ='0' ) zc on 1=1

+ 97 - 0
src/main/java/com/goafanti/common/model/TOrderExamine.java

@@ -0,0 +1,97 @@
+package com.goafanti.common.model;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * t_order_examine
+ * @author
+ */
+public class TOrderExamine implements Serializable {
+    private Integer id;
+
+    /**
+     * 订单编号
+     */
+    private String orderNo;
+
+    /**
+     * 审核人编号
+     */
+    private String aid;
+
+    /**
+     * 0未审核 ,1已审核
+     */
+    private Integer status;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 审核人名称
+     */
+    private String aname;
+
+    private static final long serialVersionUID = 1L;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getOrderNo() {
+        return orderNo;
+    }
+
+    public void setOrderNo(String orderNo) {
+        this.orderNo = orderNo;
+    }
+
+    public String getAid() {
+        return aid;
+    }
+
+    public void setAid(String aid) {
+        this.aid = aid;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public String getAname() {
+        return aname;
+    }
+
+    public void setAname(String aname) {
+        this.aname = aname;
+    }
+
+    public TOrderExamine() {
+    }
+
+    public TOrderExamine(String orderNo, String aid,String aname) {
+        this.orderNo = orderNo;
+        this.aid = aid;
+        this.aname=aname;
+        this.status=0;
+    }
+}

+ 1 - 1
src/main/java/com/goafanti/common/utils/AsyncUtils.java

@@ -564,7 +564,7 @@ public class AsyncUtils {
 	}
 
 	public void updateFinanceExamine(String id) {
-		tOrderNewMapper.updateExamineById(id,ProcessStatus.YPCWZY.getCode());
+		tOrderNewMapper.updateExamineById(id,ProcessStatus.YPCW_JSZJ.getCode());
 		newOrderChangeMapper.updateExamineById(id,OrderChangeProcess.CWZY.getCode());
 	}
 

+ 0 - 2
src/main/java/com/goafanti/core/shiro/filter/AdminFilter.java

@@ -21,8 +21,6 @@ public class AdminFilter extends AccessControlFilter {
 
 	@Autowired
 	private ShiroFilterUtils		shiroFilterUtils;
-	@Autowired
-	private AdminMapper adminMapper;
 
 	@Override
 	protected boolean isAccessAllowed(ServletRequest request, ServletResponse response, Object mappedValue)

+ 3 - 0
src/main/java/com/goafanti/customer/bo/InputSelectUserLastSignBo.java

@@ -5,6 +5,9 @@ public class InputSelectUserLastSignBo {
     private Integer shareType;
     private String nickname;
     private String aid;
+    /**
+     *  0=15天,1=30天,2=60天,3=90天,4=18天,5=1年,6=2年
+     */
     private Integer daysType;
     private String endTime;
     private Integer pageSize;

+ 28 - 30
src/main/java/com/goafanti/customer/service/impl/CustomerServiceImpl.java

@@ -1,45 +1,38 @@
 package com.goafanti.customer.service.impl;
 
-import java.lang.reflect.InvocationTargetException;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.*;
-
-import javax.annotation.Resource;
-
 import com.goafanti.admin.bo.AdminListBo;
+import com.goafanti.common.bo.Error;
 import com.goafanti.common.bo.Result;
+import com.goafanti.common.bo.userDaysBo;
+import com.goafanti.common.constant.AFTConstants;
+import com.goafanti.common.constant.ErrorConstants;
 import com.goafanti.common.dao.*;
 import com.goafanti.common.enums.*;
+import com.goafanti.common.error.BusinessException;
 import com.goafanti.common.model.*;
+import com.goafanti.common.utils.*;
 import com.goafanti.common.utils.excel.NewExcelUtil;
+import com.goafanti.core.mybatis.BaseMybatisDao;
+import com.goafanti.core.mybatis.page.Pagination;
+import com.goafanti.core.shiro.token.TokenManager;
 import com.goafanti.customer.bo.*;
+import com.goafanti.customer.service.CustomerService;
 import com.goafanti.order.bo.TOrderNewBo;
+import com.goafanti.user.bo.OutUserChannel;
 import org.apache.commons.beanutils.BeanUtils;
 import org.apache.commons.beanutils.PropertyUtils;
 import org.apache.ibatis.builder.BuilderException;
-import org.apache.poi.ss.formula.functions.T;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 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.goafanti.common.bo.Error;
-import com.goafanti.common.bo.userDaysBo;
-import com.goafanti.common.constant.AFTConstants;
-import com.goafanti.common.constant.ErrorConstants;
-import com.goafanti.common.error.BusinessException;
-import com.goafanti.common.utils.BeanUtilsExt;
-import com.goafanti.common.utils.DateUtils;
-import com.goafanti.common.utils.ExportExcelUtil;
-import com.goafanti.common.utils.PasswordUtil;
-import com.goafanti.common.utils.StringUtils;
-import com.goafanti.core.mybatis.BaseMybatisDao;
-import com.goafanti.core.mybatis.page.Pagination;
-import com.goafanti.core.shiro.token.TokenManager;
-import com.goafanti.customer.service.CustomerService;
-import com.goafanti.user.bo.OutUserChannel;
+import javax.annotation.Resource;
+import java.lang.reflect.InvocationTargetException;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.*;
 
 @Service
 public class CustomerServiceImpl extends BaseMybatisDao<UserMapper> implements CustomerService {
@@ -729,7 +722,11 @@ public class CustomerServiceImpl extends BaseMybatisDao<UserMapper> implements C
 		//处理中间表
 		UserMid um =new UserMid();
 		um.setUid(userFollow.getUid());
-		um.setLastFollowTime(userFollow.getCreateTime());
+		//检查客户,修改小程序打卡,如果负责人和跟进人是同一个,则刷新最后跟进时间
+		User user = userMapper.selectByPrimaryKey(fbb.getUid());
+		if (aid.equals(user.getAid())){
+			um.setLastFollowTime(userFollow.getCreateTime());
+		}
 		um.setFollowNumber(followCount);
 		um.setFollowExplain(userFollow.getResult());
 		um.setFollowDep(userFollow.getFollowDep());
@@ -2786,12 +2783,13 @@ public class CustomerServiceImpl extends BaseMybatisDao<UserMapper> implements C
 		if (in.getDaysType()!=null){
 			Calendar cal=Calendar.getInstance();
 			cal=DateUtils.setMidnight(cal);
-			if (in.getDaysType()==0)cal.add(Calendar.DATE,-29);
-			else if (in.getDaysType()==1)cal.add(Calendar.DATE,-59);
-			else if (in.getDaysType()==2)cal.add(Calendar.DATE,-89);
-			else if (in.getDaysType()==3)cal.add(Calendar.DATE,-179);
-			else if (in.getDaysType()==4)cal.add(Calendar.DATE,-364);
-			else if (in.getDaysType()==5)cal.add(Calendar.DATE,-729);
+			if (in.getDaysType()==0)cal.add(Calendar.DATE,-14);
+			else if (in.getDaysType()==1)cal.add(Calendar.DATE,-29);
+			else if (in.getDaysType()==2)cal.add(Calendar.DATE,-59);
+			else if (in.getDaysType()==3)cal.add(Calendar.DATE,-89);
+			else if (in.getDaysType()==4)cal.add(Calendar.DATE,-179);
+			else if (in.getDaysType()==5)cal.add(Calendar.DATE,-364);
+			else if (in.getDaysType()==6)cal.add(Calendar.DATE,-729);
 			param.put("lastTime",DateUtils.formatDate(cal.getTime(),AFTConstants.YYYYMMDDHHMMSS));
 		}
 		return param;

+ 3 - 1
src/main/java/com/goafanti/order/bo/InputOrderNewListBo.java

@@ -1,6 +1,5 @@
 package com.goafanti.order.bo;
 
-import java.util.List;
 
 public class InputOrderNewListBo {
     private String aid;
@@ -10,6 +9,9 @@ public class InputOrderNewListBo {
     private String endTime;
     private Integer specially;
     private Integer approval;
+    /**
+     * 0=未审核,1=未分配,2=部分分配,3=全部分配
+     */
     private Integer distribution;
     private String deps;
     private String contractNo;

+ 10 - 0
src/main/java/com/goafanti/order/bo/OrderListBo.java

@@ -151,6 +151,16 @@ public class OrderListBo {
 
 	private String departmentId;
 
+	private Integer myExamine;
+
+	public Integer getMyExamine() {
+		return myExamine;
+	}
+
+	public void setMyExamine(Integer myExamine) {
+		this.myExamine = myExamine;
+	}
+
 	public String getExamineName() {
 		return examineName;
 	}

+ 13 - 0
src/main/java/com/goafanti/order/bo/TOrderNewBo.java

@@ -57,6 +57,10 @@ public class TOrderNewBo extends TOrderNew{
 	 * 是否变更 0否 1是
 	 */
 	private Integer ischange;
+	/**
+	 * 当前审核
+	 */
+	private Integer myExamine;
 	private Integer stopProject;
 
 	/**
@@ -89,6 +93,15 @@ public class TOrderNewBo extends TOrderNew{
 	 */
 	private String addDeductionOther;
 
+
+	public Integer getMyExamine() {
+		return myExamine;
+	}
+
+	public void setMyExamine(Integer myExamine) {
+		this.myExamine = myExamine;
+	}
+
 	public String getManagerId() {
 		return managerId;
 	}

+ 28 - 29
src/main/java/com/goafanti/order/controller/AdminNewOrderApiController.java

@@ -1,37 +1,36 @@
 package com.goafanti.order.controller;
 
 
-
-import java.io.IOException;
-import java.util.Comparator;
-import java.util.List;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
+import com.goafanti.common.bo.Result;
 import com.goafanti.common.constant.AFTConstants;
+import com.goafanti.common.constant.ErrorConstants;
+import com.goafanti.common.controller.CertifyApiController;
 import com.goafanti.common.enums.AttachmentType;
-import com.goafanti.common.model.*;
+import com.goafanti.common.model.TOrderAssist;
+import com.goafanti.common.model.TOrderNew;
+import com.goafanti.common.model.TOrderNewWithBLOBs;
+import com.goafanti.common.model.TOrderRefundWithBLOBs;
 import com.goafanti.common.utils.DateUtils;
+import com.goafanti.common.utils.excel.NewExcelUtil;
 import com.goafanti.core.shiro.token.TokenManager;
 import com.goafanti.order.bo.*;
+import com.goafanti.order.enums.ApprovalNewState;
+import com.goafanti.order.enums.OrderNewState;
 import com.goafanti.order.enums.SalesTypes;
 import com.goafanti.order.service.OrderAssistService;
+import com.goafanti.order.service.OrderNewService;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
-import org.springframework.cache.annotation.Cacheable;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
 
-import com.goafanti.common.bo.Result;
-import com.goafanti.common.constant.ErrorConstants;
-import com.goafanti.common.controller.CertifyApiController;
-import com.goafanti.common.utils.excel.NewExcelUtil;
-import com.goafanti.order.enums.ApprovalNewState;
-import com.goafanti.order.enums.OrderNewState;
-import com.goafanti.order.service.OrderNewService;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.Comparator;
+import java.util.List;
 
 @RestController
 @RequestMapping(value = "/api/admin/newOrder")
@@ -194,23 +193,23 @@ public class AdminNewOrderApiController extends CertifyApiController {
 	@RequestMapping(value = "/updateServiceOrderNew",method = RequestMethod.POST)
 	public Result updateServiceOrder(TOrderNewWithBLOBs t,Integer isSubmit,String signDate){
 		Result res = new Result();
-		if (StringUtils.isBlank(t.getOrderNo())) {
-			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "订单编号"));
-			return res;
-		}
-		if (null == t.getTotalAmount() || null == t.getFirstAmount()) {
-			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "订单金额 和 首付金额"));
-			return res;
-		}
-		if (StringUtils.isBlank(t.getContractPictureUrl())) {
-			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "合同图片"));
-			return res;
-		}
 		if (null == isSubmit) {
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "提交状态"));
 			return res;
 		}
 		if (isSubmit == 1) {
+			if (StringUtils.isBlank(t.getOrderNo())) {
+				res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "订单编号"));
+				return res;
+			}
+			if (null == t.getTotalAmount() || null == t.getFirstAmount()) {
+				res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "订单金额 和 首付金额"));
+				return res;
+			}
+			if (StringUtils.isBlank(t.getContractPictureUrl())) {
+				res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "合同图片"));
+				return res;
+			}
 			if (StringUtils.isBlank(t.getContacts())||StringUtils.isBlank(t.getContactMobile())){
 				res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "联系人与电话"));
 				return res;

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

@@ -15,8 +15,8 @@ public enum ProcessStatus {
 	YPYXJL(1,"已派营经理"),
 	/** 已派营销管理员 **/
 	YPYXGLY(2,"已派营销管理员"),
-	/** 已派财务专员 **/
-	YPCWZY(3,"已派财务专员"),
+	/** 已派财务与技术总监**/
+	YPCW_JSZJ(3,"已派财务与技术总监"),
 	/** 已派特批审核 **/
 	YPTPSH(4,"已派特批审核"),
 	/** 已派咨询师管理员 **/

+ 73 - 13
src/main/java/com/goafanti/order/service/impl/FundManagerOrderServiceImpl.java

@@ -71,6 +71,8 @@ public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper>
 	@Autowired
 	private DepartmentService departmentService;
 	@Autowired
+	private TOrderExamineMapper tOrderExamineMapper;
+	@Autowired
 	private AsyncUtils	asyncUtils;
 
 
@@ -110,9 +112,9 @@ public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper>
 			record.setOrderNo(orderNo);
 			record.setFinanceId(financeId);
 			if(torder.getProcessStatus()<ProcessStatus.YPZXSGLY.getCode()) {
-				record.setProcessStatus(ProcessStatus.YPCWZY.getCode());
+				record.setProcessStatus(ProcessStatus.YPCW_JSZJ.getCode());
 			}
-			addOrderLog(orderNo, OrderLogProcess.CWPD.getCode(),null);
+			addOrderLog(orderNo, OrderLogProcess.CWSH.getCode(),null);
 			r = tOrderNewMapper.updateByPrimaryKeySelective(record);
 		}else{
 			//返回错误标志 提示订单编号或者财务专员选择错误
@@ -164,6 +166,15 @@ public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper>
 		}
 		Pagination<OrderListBo> data = (Pagination<OrderListBo>)findPage("financeList", "financeCount", params, pageNo, pageSize);
 		result.put("pagination", data);
+		//如果是财务看,则要看是否还需要审核
+		if (TokenManager.hasRole(AFTConstants.FINANCE)){
+			List<OrderListBo> list = (List<OrderListBo>) data.getList();
+			for (OrderListBo o : list) {
+				int i = tOrderExamineMapper.selectByOrderNoAndAid(o.getOrderNo(), TokenManager.getAdminId());
+				if (i==0) o.setMyExamine(1);
+				else o.setMyExamine(0);
+			}
+		}
 		Map<String, Object> count = tOrderNewMapper.countTotalAndActually(order,fids,listDep);
 		result.put("count", count);
 		return result;
@@ -208,10 +219,13 @@ public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper>
 				throw new BusinessException(new Error( "邮件发送失败,对方设置邮箱错误","邮件发送失败,对方设置邮箱错误"));
 			}
 			TOrderNewBo order = tOrderNewMapper.getSaleIdByOno(t.getOrderNo());
-			orderNewService.pushGeneralSendNoticeAndEmail(aids, NoticeStatus.ORDER_NO.getCode(),order, TokenManager.getAdminId(),t.getApproval());
+			pushGeneralSendNoticeAndEmail(aids, NoticeStatus.ORDER_NO.getCode(),order, TokenManager.getAdminId(),t.getApproval());
 		}
 		return c;
 	}
+	public void pushGeneralSendNoticeAndEmail(List<String> alist, Integer type,TOrderNewBo o,String adminId,Integer approval){
+		orderNewService.pushGeneralSendNoticeAndEmail(alist, type,o, adminId,approval);
+	}
 
 	@Override
 	public Integer addReceiptsFlow(TOrderBillNew billNew, String contractNo) {
@@ -482,7 +496,40 @@ public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper>
 		if (new1.getBackStatus()==3) {
 			t.setBackStatus(0);
 		}
+		//判断是否走入下一个流程
+		boolean flag=judgeOrderExamine(orderNo);
+		TOrderLog tl=new TOrderLog();
+		tl.setAid(TokenManager.getAdminId());
+		tl.setOrderNo(t.getOrderNo());
+		if (TokenManager.hasRole(AFTConstants.FINANCE)){
+			tl.setProcess(OrderLogProcess.CWSH.getCode());
+		}else if (TokenManager.hasRole(AFTConstants.TECH_ADMIN)){
+			tl.setProcess(OrderLogProcess.XMZJSH.getCode());
+		}
+		tl.setRemarks(remarks);
+		tOrderLogMapper.insertSelective(tl);
+		orderNewService.pushExamineName(t);
+		//如果全部派单完成才需要通知和走下个流程
+		if (flag){
+			pushNoticeAndEmail(t, new1);
+		}else {
+			List<TOrderExamine> tOrderExamines = tOrderExamineMapper.selectByOrderNo(orderNo);
+			StringBuffer str=new StringBuffer();
+			for (TOrderExamine e : tOrderExamines) {
+				if (e.getStatus()==0){
+					str=str.append(e.getAname()).append(",");
+				}
+			}
+			t.setExamineName(str.substring(0,str.length()-1));
+		}
+
+		return tOrderNewMapper.updateByPrimaryKeySelective(t);
+	}
+
+	private void pushNoticeAndEmail(TOrderNew t, TOrderNew new1) {
 		List<String> aids = new ArrayList<>();
+		StringBuffer str= new StringBuffer();
+		TOrderNewBo order = tOrderNewMapper.getSaleIdByOno(t.getOrderNo());
 		if (new1.getApproval()==ApprovalNewState.ZCDSH.getCode()||
 				new1.getApproval()==ApprovalNewState.ZCBH.getCode()) {
 			t.setProcessStatus(ProcessStatus.YPTPSH.getCode());
@@ -492,6 +539,7 @@ public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper>
 			types.add(AFTConstants.CED_ASSISTANT);
 			for (Admin admin : adminMapper.getAdminRoleTypesList(types)) {
 				aids.add(admin.getId());
+				str=str.append(admin.getName()).append(",");
 			}
 		}else if (new1.getApproval()==ApprovalNewState.DSZDSH.getCode()||
 				new1.getApproval()==ApprovalNewState.DSZBH.getCode()) {
@@ -502,27 +550,39 @@ public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper>
 			types.add(AFTConstants.APPROVAL_DECISION_ASSISTANT);
 			for (Admin admin : adminMapper.getAdminRoleTypesList(types)) {
 				aids.add(admin.getId());
+				str=str.append(admin.getName()).append(",");
 			}
 		}else  {
 			t.setProcessStatus(ProcessStatus.YPZXSGLY.getCode());
+			//设置发送邮件标识
+			order.setProcessStatus(ProcessStatus.YPZXSGLY.getCode());
 			OrganizationListOut oo=departmentMapper.selectAllById(new1.getOrderDep());
 			t.setFinanceId(oo.getFinanceId());
 			for (Admin admin : adminMapper.getAdminRoleTypeList(AFTConstants.TECH_ADMIN)) {
 				aids.add(admin.getId());
+				str=str.append(admin.getName()).append(",");
 			}
 		}
-		orderNewService.pushExamineName(t);
-		TOrderLog tl=new TOrderLog();
-		tl.setAid(TokenManager.getAdminId());
-		tl.setOrderNo(t.getOrderNo());
-		tl.setProcess(OrderLogProcess.CWPD.getCode());
-		tl.setRemarks(remarks);
-		tOrderLogMapper.insertSelective(tl);
-		TOrderNewBo order = tOrderNewMapper.getSaleIdByOno(t.getOrderNo());
-		orderNewService.pushGeneralSendNoticeAndEmail(aids, NoticeStatus.ORDER_YES.getCode(),order, TokenManager.getAdminId(),new1.getApproval());
-		return tOrderNewMapper.updateByPrimaryKeySelective(t);
+		//用与外部修改名称
+		t.setExamineName(str.substring(0,str.length()-1));
+		pushGeneralSendNoticeAndEmail(aids, NoticeStatus.ORDER_YES.getCode(),order, TokenManager.getAdminId(), new1.getApproval());
 	}
 
+	private boolean judgeOrderExamine(String orderNo) {
+		tOrderExamineMapper.updateStatusByOrderNo(orderNo,TokenManager.getAdminId(),1);
+		List<TOrderExamine> tOrderExamines = tOrderExamineMapper.selectByOrderNo(orderNo);
+		int max = tOrderExamines.size();
+		int yes=0;
+		for (TOrderExamine e : tOrderExamines) {
+			if (e.getStatus()==1){
+				yes++;
+			}
+		}
+		if (yes==max){
+			return true;
+		}
+		return false;
+	}
 
 
 }

+ 7 - 3
src/main/java/com/goafanti/order/service/impl/OrderChangeServiceImpl.java

@@ -524,7 +524,11 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 			break;
 		}
 		//发送站内信息与邮件
-		orderNewService.pushGeneralSendNoticeAndEmail(alist, type, o, TokenManager.getAdminId(),0);
+		pushGeneralSendNoticeAndEmail(alist, type, o, TokenManager.getAdminId(),0);
+	}
+
+	public void pushGeneralSendNoticeAndEmail(List<String> alist, Integer type,TOrderNewBo o,String adminId,Integer approval){
+		orderNewService.pushGeneralSendNoticeAndEmail(alist, type,o, adminId,approval);
 	}
 
 	/**
@@ -874,7 +878,7 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 		Date date=new Date();
 		date.setTime(date.getTime()+500);
 		addOrderChangeLog("变更完成。", 4, nb.getOrderNo(), nb.getId(),date);
-		orderNewService.pushGeneralSendNoticeAndEmail(alist,NoticeStatus.ORDER_CHANGE_END.getCode(), order, TokenManager.getAdminId(),0);
+		pushGeneralSendNoticeAndEmail(alist,NoticeStatus.ORDER_CHANGE_END.getCode(), order, TokenManager.getAdminId(),0);
 		return 1;
 	}
 
@@ -910,7 +914,7 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 		nb.setType(nob.getType());
 		newOrderChangeMapper.updateByPrimaryKeySelective(nb);
 		addOrderChangeLog("变更财务退票。", 2, nob.getOrderNo(), nb.getId());
-		orderNewService.pushGeneralSendNoticeAndEmail(alist,NoticeStatus.ORDER_CHANGE_YES.getCode(), o, TokenManager.getAdminId(),0);
+		pushGeneralSendNoticeAndEmail(alist,NoticeStatus.ORDER_CHANGE_YES.getCode(), o, TokenManager.getAdminId(),0);
 		nb.setStatus(4);
 		pushCompleteOrderChange(nb);
 		return 1;

+ 7 - 4
src/main/java/com/goafanti/order/service/impl/OrderInvoiceServiceImpl.java

@@ -145,7 +145,10 @@ public class OrderInvoiceServiceImpl extends BaseMybatisDao<TOrderInvoiceMapper>
 			}
 		}
 		TOrderNewBo order = tOrderNewMapper.getSaleIdByOno(o.getOrderNo());
-		orderNewService.pushGeneralSendNoticeAndEmail(aids, NoticeStatus.ORDER_INVPICE_START.getCode(),order, TokenManager.getAdminId(),0);
+		pushGeneralSendNoticeAndEmail(aids, NoticeStatus.ORDER_INVPICE_START.getCode(),order, TokenManager.getAdminId(),0);
+	}
+	public void pushGeneralSendNoticeAndEmail(List<String> alist, Integer type,TOrderNewBo o,String adminId,Integer approval){
+		orderNewService.pushGeneralSendNoticeAndEmail(alist, type,o, adminId,approval);
 	}
 
 	@SuppressWarnings("deprecation")
@@ -175,7 +178,7 @@ public class OrderInvoiceServiceImpl extends BaseMybatisDao<TOrderInvoiceMapper>
 		List<String> aDep=new ArrayList<>();
 		//财务专员查看自己的
 		if (TokenManager.hasRole(AFTConstants.FINANCE)) {
-			aDep.addAll(departmentService.getFinanceDep(TokenManager.getAdminId()));
+			aDep.addAll(adminMapper.getFinanceDep(TokenManager.getAdminId()));
 		}
 		//财务经理
 		if (TokenManager.hasRole(AFTConstants.FINANCE_MANAGER)) {
@@ -265,7 +268,7 @@ public class OrderInvoiceServiceImpl extends BaseMybatisDao<TOrderInvoiceMapper>
 			addInvoiceLog(id,1);
 		}
 		TOrderNewBo order = tOrderNewMapper.getSaleIdByOno(t2.getOrderNo());
-		orderNewService.pushGeneralSendNoticeAndEmail(aids, type,order, TokenManager.getAdminId(),0);
+		pushGeneralSendNoticeAndEmail(aids, type,order, TokenManager.getAdminId(),0);
 		tOrderInvoiceMapper.updateByPrimaryKeySelective(t);
 		if(examine==2)tOrderMidMapper.updateInvoice(t2.getOrderNo());
 		return 1;
@@ -335,7 +338,7 @@ public class OrderInvoiceServiceImpl extends BaseMybatisDao<TOrderInvoiceMapper>
 		}
 		pushOrderInvoiceExamine(t);
 		TOrderNewBo order = tOrderNewMapper.getSaleIdByOno(o.getOrderNo());
-		orderNewService.pushGeneralSendNoticeAndEmail(aids,type,order, TokenManager.getAdminId(),0);
+		pushGeneralSendNoticeAndEmail(aids,type,order, TokenManager.getAdminId(),0);
 		return tOrderInvoiceMapper.updateByPrimaryKeySelective(t);
 	}
 	@Override

+ 80 - 29
src/main/java/com/goafanti/order/service/impl/OrderNewServiceImpl.java

@@ -52,7 +52,6 @@ import com.goafanti.core.mybatis.page.Pagination;
 import com.goafanti.core.shiro.token.TokenManager;
 import com.goafanti.customer.bo.LockingReleaseBo;
 import com.goafanti.order.service.OrderNewService;
-import com.goafanti.order.service.OrderService;
 import com.goafanti.patent.service.PatentNewService;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -86,7 +85,7 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 	@Autowired
 	private TOrderLogMapper tOrderLogMapper;
 	@Autowired
-	private OrderService	orderService;
+	private TOrderExamineMapper	tOrderExamineMapper;
 	@Autowired
 	private IdleContractNoMapper	idleContractNoMapper;
 	@Autowired
@@ -181,9 +180,24 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 		te.setOrderNo(orderNo);
 		te.setServiceStatus(0);
 		tOrderExtendMapper.insertSelective(te);
+		addOrderExamine(t);
 		return tOrderNewMapper.insertSelective(t);
 	}
 
+	private void addOrderExamine(TOrderNew o) {
+		List<TOrderExamine> tOrderExamines = tOrderExamineMapper.selectByOrderNo(o.getOrderNo());
+		if (tOrderExamines.isEmpty()){
+			OrganizationListOut dep = departmentMapper.selectAllById(o.getOrderDep());
+			List<TOrderExamine> list =new ArrayList<>();
+			list.add(new TOrderExamine(o.getOrderNo(),dep.getFinanceId(),dep.getFinanceName()));
+			List<Admin> admins = adminMapper.selectAdminByRoleType(AFTConstants.TECH_ADMIN);
+			for (Admin admin : admins) {
+				list.add(new TOrderExamine(o.getOrderNo(),admin.getId(),admin.getName()));
+			}
+			tOrderExamineMapper.insertBatch(list);
+		}
+	}
+
 	@Override
 	public InputAddTask addOrderTask(InputAddTask t) {
 		TOrderNew order=tOrderNewMapper.selectByPrimaryKey(t.getOrderNo());
@@ -484,7 +498,7 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 					}else {
 						if (TokenManager.hasRole(AFTConstants.SALESMAN_ADMIN)){
 							addOrderLog(t2.getOrderNo(),OrderLogProcess.SH.getCode(), "管理员跳过自己审核");
-							t.setProcessStatus(ProcessStatus.YPCWZY.getCode());
+							t.setProcessStatus(ProcessStatus.YPCW_JSZJ.getCode());
 							orderStatus=OrderNewState.QDSHTG.getCode();
 						}else {
 							addOrderLog(t2.getOrderNo(),OrderLogProcess.YXJLTT.getCode(), "无经理跳过审核");
@@ -535,7 +549,7 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 						if (!str.toString().contains(admin.getName()))str.append(admin.getName()).append(",");
 					}
 				}
-			}else  if (t.getProcessStatus()==ProcessStatus.YPCWZY.getCode()){
+			}else  if (t.getProcessStatus()==ProcessStatus.YPCW_JSZJ.getCode()){
 				type=NoticeStatus.ORDER_YES.getCode();
 				Department dep = departmentMapper.selectByPrimaryKey(t.getOrderDep());
 				aids.add(dep.getFinanceId());
@@ -718,6 +732,7 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 		TOrderNewBo tOrder= tOrderNewMapper.getOrderNewDetail(orderNo);
 		String url=pushOrderService.processStatusConstant(tOrder);
 		tOrder.setContractPictureUrl(url);
+		pushMyExamine(orderNo, tOrder);
 		if (TokenManager.hasRole(AFTConstants.SUPERADMIN)||TokenManager.hasRole(AFTConstants.CUSTOMER_SERVICE)||
 				tOrder.getSalesmanId().equals(TokenManager.getAdminId())) {
 
@@ -730,6 +745,14 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 		return tOrder;
 	}
 
+	private void pushMyExamine(String orderNo, TOrderNewBo tOrder) {
+		if (TokenManager.hasRole(AFTConstants.FINANCE)||TokenManager.hasRole(AFTConstants.TECH_ADMIN)){
+			int i = tOrderExamineMapper.selectByOrderNoAndAid(orderNo, TokenManager.getAdminId());
+			if (i==0) tOrder.setMyExamine(1);
+			else tOrder.setMyExamine(0);
+		}
+	}
+
 	@Override
 	public int createOrderDun(String orderDun,String orderNo) {
 		List<TOrderDun> l=  JSON.parseArray(orderDun, TOrderDun.class);
@@ -777,6 +800,15 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 		Pagination<TOrderNewBo> x = addParams(in, params);
 		if (x != null) return x;
 		Pagination<TOrderNewBo> p = (Pagination<TOrderNewBo>)findPage("selectOrderNewListByPage", "selectOrderNewListCount", params, in.getPageNo(), in.getPageSize());
+		if (TokenManager.hasRole(AFTConstants.TECH_ADMIN)){
+			List<TOrderNewBo> list = (List<TOrderNewBo>) p.getList();
+			for (TOrderNewBo o : list) {
+				int i = tOrderExamineMapper.selectByOrderNoAndAid(o.getOrderNo(), TokenManager.getAdminId());
+				if (i==0) o.setMyExamine(1);
+				else o.setMyExamine(0);
+			}
+		}
+
 		return p;
 	}
 
@@ -971,8 +1003,27 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 				aids.addAll(adminMapper.listNameByDepAndName(t2.getOrderDep(), AFTConstants.SALESMAN_ADMIN));
 			}else if (t2.getProcessStatus()==ProcessStatus.YPYXGLY.getCode()){
 				tl.setProcess(OrderLogProcess.SH.getCode());
-				t.setProcessStatus(ProcessStatus.YPCWZY.getCode());
-				aids.add(departmentMapper.selectByPrimaryKey(t2.getOrderDep()).getFinanceId());
+				t.setProcessStatus(ProcessStatus.YPCW_JSZJ.getCode());
+				//设置财务与技术总监通知
+				//为了处理旧数据,后期可以去掉新增
+				List<TOrderExamine> tOrderExamines = tOrderExamineMapper.selectByOrderNo(orderNo);
+				if (tOrderExamines.isEmpty()){
+					OrganizationListOut dep = departmentMapper.selectAllById(t.getOrderDep());
+					List<TOrderExamine> list =new ArrayList<>();
+					list.add(new TOrderExamine(orderNo,dep.getFinanceId(),dep.getFinanceName()));
+					aids.add(dep.getFinanceId());
+					List<Admin> admins = adminMapper.selectAdminByRoleType(AFTConstants.TECH_ADMIN);
+					for (Admin admin : admins) {
+						aids.add(admin.getId());
+						list.add(new TOrderExamine(orderNo,admin.getId(),admin.getName()));
+					}
+					tOrderExamineMapper.insertBatch(list);
+				}else {
+					tOrderExamineMapper.updateStatusByOrderNo(orderNo,null,0);
+					for (TOrderExamine e : tOrderExamines) {
+						aids.add(e.getAid());
+					}
+				}
 			}
 
 			type=NoticeStatus.ORDER_YES.getCode();
@@ -997,6 +1048,9 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 		pushGeneralSendNoticeAndEmail(aids, type,order, TokenManager.getAdminId(),t2.getApproval());
 		return 1;
 	}
+
+
+
 	@Override
 	public void pushExamineName(TOrderNew t){
 		StringBuffer str =new StringBuffer();
@@ -1009,18 +1063,19 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 			t.setExamineName(admin.getName());
 		}else if (t.getProcessStatus()==ProcessStatus.YPYXGLY.getCode()){
 			if (t.getOrderDep()!=null){
-				OrganizationListOut dep = departmentMapper.selectAllById(t.getOrderDep());
-				t.setExamineName(dep.getManagerName());
+				List<Admin> admins = adminMapper.listAdminBydepIdAndRoleType(t.getOrderDep(), AFTConstants.SALESMAN_ADMIN);
+				for (Admin admin : admins) {
+					str=str.append(admin.getName()).append(",");
+				}
 			}
-		}else if (t.getProcessStatus()==ProcessStatus.YPCWZY.getCode()){
+		}else if (t.getProcessStatus()==ProcessStatus.YPCW_JSZJ.getCode()){
 			if (t.getOrderDep()!=null){
 				OrganizationListOut dep = departmentMapper.selectAllById(t.getOrderDep());
-				t.setExamineName(dep.getFinanceName());
-			}
-		}else if (t.getProcessStatus()==ProcessStatus.YPZXSGLY.getCode()){
-			List<Admin> admins = adminMapper.getAdminRoleTypeList(AFTConstants.TECH_ADMIN);
-			for (Admin e : admins) {
-				str=str.append(e.getName()).append(",");
+				str=str.append(dep.getFinanceName()).append(",");
+				List<Admin> admins = adminMapper.getAdminRoleTypeList(AFTConstants.TECH_ADMIN);
+				for (Admin admin : admins) {
+					str=str.append(admin.getName()).append(",");
+				}
 			}
 		}else if (t.getProcessStatus()==ProcessStatus.YPYXY.getCode()){
 			t.setExamineName("");
@@ -1348,6 +1403,7 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 			addBackOrder(orderNo, reason);
 		}
 		TOrderNewBo order = tOrderNewMapper.getSaleIdByOno(orderNo);
+		order.setProcessStatus(t.getProcessStatus());
 		pushGeneralSendNoticeAndEmail(aids, type,order, TokenManager.getAdminId(),t2.getApproval());
 		//新增特批催款信息
 		return tOrderNewMapper.updateByPrimaryKeySelective(t);
@@ -1616,19 +1672,7 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 	}
 
 
-
-
-
-
-
-
-
-
-
-
-
-	public void
-	sendEmail(String dunId,AdminListBo a,TOrderNewBo b){
+	public void sendEmail(String dunId,AdminListBo a,TOrderNewBo b){
 		LoggerUtils.debug(logger, "======================邮件信息发送===================");
 		String content = "<div>客户名称: "+ b.getUserName() +"</div><div>订单编号: " + b.getOrderNo() + "</div><div>合同编号: " + b.getContractNo() + "</div>";
 		String tite="订单驳回";
@@ -1668,12 +1712,19 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 	@Override
 	public  void pushGeneralSendNoticeAndEmail(List<String> alist, Integer type, TOrderNewBo order, String adminId, Integer approval, Integer tid) {
 		AdminListBo a = adminMapper.getDeptNameByAid(adminId);
+		StringBuffer str=new StringBuffer();
 		String approvalType="";
 		String noticeTypeName = NoticeStatus.getValueByCode(type);
 		if (!approval.equals(ApprovalNewState.FTP.getCode())) {
 			approvalType="[特批]";
 		}
-		StringBuffer str=new StringBuffer(approvalType).append(noticeTypeName).append(":");
+		//只有到技术总监是派单,其他都是审核
+		if (order.getProcessStatus()==null||(!order.getProcessStatus().equals(ProcessStatus.YPZXSGLY.getCode()))){
+			str=str.append("[审核]");
+		}else if (order.getProcessStatus().equals(ProcessStatus.YPZXSGLY.getCode())){
+			str=str.append("[派单]");
+		}
+		str=str.append(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())) {

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

@@ -150,7 +150,7 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 			throw  new BusinessException(new Error("分配人员不存在!","分配人员不存在!"));
 		}
 		if (type==0) {
-			addOrderLog(t.getOrderNo(), OrderLogProcess.XMDDPD.getCode(),remarks);
+			addOrderLog(t.getOrderNo(), OrderLogProcess.XMZJPD.getCode(),remarks);
 			t.setManagerId(taskReceiverId);
 			t.setConsultantId(null);
 			//设置催款触发

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

@@ -125,7 +125,7 @@ public class OutsourceOrgServiceImpl  extends BaseMybatisDao<TOrderOutsourceMapp
 			t.setOrderNo(o.getOrderNo());
 			if (o.getRefundStatus()==1) {
 				t.setOrderStatus(2);//订单审核标记通过
-				t.setProcessStatus(ProcessStatus.YPCWZY.getCode());
+				t.setProcessStatus(ProcessStatus.YPCW_JSZJ.getCode());
 				addOrderLog(o.getOrderNo(),OrderLogProcess.WBTG.getCode(),o.getRemarks());
 				aids.add(departmentMapper.selectByPrimaryKey(t2.getOrderDep()).getFinanceId());
 				type=NoticeStatus.ORDER_OUTSOURCE_YES.getCode();

+ 4 - 9
src/main/java/com/goafanti/order/service/impl/PushOrderService.java

@@ -2,19 +2,12 @@ package com.goafanti.order.service.impl;
 
 
 import com.goafanti.common.constant.AFTConstants;
-import com.goafanti.common.dao.AdminMapper;
-
-import com.goafanti.common.utils.StringUtils;
 import com.goafanti.core.shiro.token.TokenManager;
-
 import com.goafanti.order.bo.TOrderNewBo;
 import com.goafanti.order.enums.ApprovalNewState;
 import com.goafanti.order.enums.ProcessStatus;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.List;
-
 @Service
 public class PushOrderService {
     public static final String   DEFAULTS_URL="/image/noPermission.jpg";
@@ -54,9 +47,11 @@ public class PushOrderService {
             }
         }else if (TokenManager.hasRole(AFTConstants.SALESMAN_ADMIN)&&t.getProcessStatus()== ProcessStatus.YPYXGLY.getCode()){
             return  t.getContractPictureUrl();
-        }else if (TokenManager.hasRole(AFTConstants.FINANCE)&&t.getProcessStatus()== ProcessStatus.YPCWZY.getCode()){
+        }else if (TokenManager.hasRole(AFTConstants.FINANCE)&&(t.getProcessStatus()== ProcessStatus.YPCW_JSZJ.getCode())){
             return  t.getContractPictureUrl();
-        }else if (TokenManager.hasRole(AFTConstants.TECH_ADMIN)&&t.getProcessStatus()== ProcessStatus.YPZXSGLY.getCode()){
+        }else if (TokenManager.hasRole(AFTConstants.TECH_ADMIN)&&(
+                t.getProcessStatus()== ProcessStatus.YPCW_JSZJ.getCode()||t.getProcessStatus()== ProcessStatus.YPZXSGLY.getCode()
+                )){
             return  t.getContractPictureUrl();
         }else if (TokenManager.hasRole(AFTConstants.OUTSOURCE_AUDITOR)){
             return  t.getContractPictureUrl();

+ 6 - 6
src/main/resources/props/config_local.properties

@@ -1,12 +1,12 @@
 dev.name=local
 jdbc.driverClassName=com.mysql.jdbc.Driver
 #jdbc.url=jdbc\:mysql://localhost:3306/aft20221026?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false
-#jdbc.url=jdbc\:mysql://localhost:3306/aft?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false
-#jdbc.username=root
-#jdbc.password=123456
-jdbc.url=jdbc:mysql://101.37.32.31:3306/aft?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false
+jdbc.url=jdbc\:mysql://localhost:3306/aft?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false
 jdbc.username=root
-jdbc.password=aftdev
+jdbc.password=123456
+#jdbc.url=jdbc:mysql://101.37.32.31:3306/aft?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false
+#jdbc.username=root
+#jdbc.password=aftdev
 jdbc.validationQuery=SELECT 'x'
 jdbc.initialSize=3
 jdbc.maxActive=20
@@ -52,7 +52,7 @@ yxjl_max=100
 amb.maxLvl=6
 
 avatar.host=//static.jishutao.com
-static.host=//static.jishutao.com/1.2.70
+static.host=//static.jishutao.com/1.2.71
 rd.static.host=//static.jishutao.com/RD/1.0.00
 #avatar.host=//172.16.0.255:3000
 #static.host=//172.16.0.255:3000/1.2.62

+ 1 - 1
src/main/resources/props/config_test.properties

@@ -49,7 +49,7 @@ yxjl_max=100
 
 amb.maxLvl=6
 
-static.host=//static.jishutao.com/1.2.70
+static.host=//static.jishutao.com/1.2.71
 portal.host=//static.jishutao.com/portal/2.0.6
 avatar.host=//static.jishutao.com
 rd.static.host=//static.jishutao.com/RD/1.0.00

+ 3 - 2
src/main/resources/spring/spring-shiro.xml

@@ -63,7 +63,7 @@
 	<bean id="shrioRedisCacheManager"
 		class="com.goafanti.core.shiro.cache.ShiroRedisCacheManager">
 		<property name="redisTemplate" ref="sessionRedisTemplate" />
-<!--	token有效时间-->
+<!--	token有效时间  7200=120*60 则为2小时 -->
 		<property name="expire" value="7200" />
 	</bean>
 
@@ -77,7 +77,8 @@
 		class="org.apache.shiro.web.servlet.SimpleCookie">
 		<constructor-arg value="KEDE_SID" />
 		<property name="httpOnly" value="true" />
-		<property name="maxAge" value="2592000" />
+		<!--设置为7天-->
+		<property name="maxAge" value="604800" />
 		<!-- <property name="domain" value=""/> -->
 	</bean>