Explorar o código

变更BUG修复

Signed-off-by: anderx <312518615@qq.com>
anderx %!s(int64=6) %!d(string=hai) anos
pai
achega
7543415131

+ 8 - 4
src/main/java/com/goafanti/common/constant/AFTConstants.java

@@ -17,20 +17,24 @@ public class AFTConstants {
 
 	public static final String	APPROVAL_DECISION					= "99999";				// 特批决策者
 	
-	public static final String	CED									= "999998";				// 总裁
+	public static final String	CED									= "99998";				// 总裁
 
-	public static final String	VICE_CEO							= "999997";				// 集团副总
+	public static final String	VICE_CEO							= "99997";				// 集团副总
 
 		
-	public static final String  TECH_ADMIN                          = "99998";				// 技术管理员
+	public static final String  TECH_ADMIN                          = "9998";				// 技术管理员
 	
-	public static final String  FINANCE_ADMIN                       = "99997";				// 财务管理员
+	public static final String  FINANCE_ADMIN                       = "9997";				// 财务管理员
 
 	public static final String	AREAADMIN							= "";					// 地区管理员
 
 	public static final String	AUDITORADMIN						= "";					// 审核员
 
 	public static final String	MANAGERADMIN						= "";					// 客户经理
+	
+	public static final String  FINANCEMANAGERADMIN					= "997";					// 财务经理
+	
+	public static final String  FINANCEADMIN						= "97";					// 财务专员
 
 	public static final String	SALESMANAGERADMIN					= "";					// 营销经理
 

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

@@ -189,5 +189,7 @@ public interface AdminMapper {
 	List<String> getaidFrequentContacts(String id);
 
 	List<String> listNameByDepAndName(@Param("depId")String depId,@Param("roleName")String roleName);
+
+	List<String> selectBySuperId(String aid);
 	
 }

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

@@ -94,7 +94,7 @@ public interface TOrderNewMapper {
 
 	int updateFinance(@Param("aid")String aid, @Param("orderNos")List<String> orderNos, @Param("newFinance")String newFinance);
 	int checkContractNo(String sno);
-	Map<String, Object> countTotalAndActually(OrderListBo o);
+	Map<String, Object> countTotalAndActually(@Param("o")OrderListBo o, @Param("fids")List<String> fids);
 	TOrderBillNew getLastPayment(String orderNo);
 	int updateSalesmanId(@Param("aid")String aid, @Param("transferId")String transferId);
 }

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

@@ -80,7 +80,7 @@ public interface TTaskHoursMapper {
 
 	List<TOrderTaskListBo> getOrderDunData(String name, String taskId, String starTime, String endTime);
 
-	List<TOrderTaskListBo> getTaskHoursData( @Param("name")String name,  @Param("taskId")String taskId,  @Param("startTime")String startTime,  @Param("endTime")String endTime,@Param("fid")String fid);
+	List<TOrderTaskListBo> getTaskHoursData( @Param("name")String name,  @Param("taskId")String taskId,@Param("orderNo")String orderNo,  @Param("startTime")String startTime,  @Param("endTime")String endTime,@Param("fid")String fid );
 
 	List<TTaskHours> taskHoursDetailsList( @Param("taskId")String taskId,  @Param("aid")String aid);
 }

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

@@ -1149,4 +1149,7 @@
 		where department_id= #{depId}
 		and c.role_name= #{roleName}
   </select>
+  <select id="selectBySuperId" resultType="java.lang.String">
+  	select id from admin where superior_id= #{aid}
+  </select>
 </mapper>

+ 37 - 19
src/main/java/com/goafanti/common/mapper/TOrderNewMapper.xml

@@ -1102,6 +1102,12 @@ where delete_sign != 1 and (approval = 0 or approval = 2) and outsource=  #{o.ou
   		<if test="o.financeId != null and o.financeId != &quot;&quot;">
 	  	and d.finance_id = #{o.financeId,jdbcType=VARCHAR}
 	  	</if>
+	  	<if test="fids != null and o.financeId != &quot;&quot;">
+	  	and d.finance_id = 
+	   <foreach item="item" collection="fids" separator="," open="(" close=")" index="">
+       		#{item}
+     	</foreach>
+		</if>
   		<if test="o.orderStatus != null and o.orderStatus != &quot;&quot;">
 	  	and o.order_status = #{o.orderStatus,jdbcType=INTEGER}
 	  	</if>
@@ -1152,6 +1158,12 @@ where delete_sign != 1 and (approval = 0 or approval = 2) and outsource=  #{o.ou
 	  	<if test="o.financeId != null and o.financeId != &quot;&quot;">
 	  	and d.finance_id = #{o.financeId,jdbcType=VARCHAR}
 	  	</if>
+	  	<if test="fids != null and o.financeId != &quot;&quot;">
+	  	and d.finance_id = 
+	   <foreach item="item" collection="fids" separator="," open="(" close=")" index="">
+        #{item.id}
+       </foreach>
+		</if>
   		<if test="o.orderStatus != null and o.orderStatus != &quot;&quot;">
 	  	and o.order_status = #{o.orderStatus,jdbcType=INTEGER}
 	  	</if>
@@ -1518,37 +1530,43 @@ where super_id is null ) e on e.order_no=a.order_no
   select sum(b.amount) actuallyTotalAmount,sum(o.total_amount) signTotalAmount from t_order_new o 
   left join department d   on o.order_dep=d.id left join `user` u on o.buyer_id = u.id 
   left join ( select sum(transaction_amount) as amount , order_no from t_order_bill_new group by order_no ) b on b.order_no = o.order_no
-    where delete_sign != 1  and (approval = 0 or approval = 2) and outsource=  #{outsource,jdbcType=INTEGER}
-  	 	<if test="processStatus == 3">
-	  	and o.process_status = #{processStatus,jdbcType=INTEGER}
+    where delete_sign != 1  and (approval = 0 or approval = 2) and outsource=  #{o.outsource,jdbcType=INTEGER}
+  	 	<if test="o.processStatus == 3">
+	  	and o.process_status = #{o.processStatus,jdbcType=INTEGER}
 	  	</if>
-	  	<if test="processStatus == 4">
-	  	and o.process_status &gt;= #{processStatus,jdbcType=INTEGER}
+	  	<if test="o.processStatus == 4">
+	  	and o.process_status &gt;= #{o.processStatus,jdbcType=INTEGER}
 	  	</if>
-  		<if test="financeId != null and financeId != &quot;&quot;">
-	  	and d.finance_id = #{financeId,jdbcType=VARCHAR}
+  		<if test="o.financeId != null and o.financeId != &quot;&quot;">
+	  	and d.finance_id = #{o.financeId,jdbcType=VARCHAR}
 	  	</if>
-  		<if test="orderStatus != null and orderStatus != &quot;&quot;">
-	  	and o.order_status = #{orderStatus,jdbcType=INTEGER}
+	  	<if test="fids != null and o.financeId != &quot;&quot;">
+	  	and d.finance_id = 
+	   <foreach item="item" collection="fids" separator="," open="(" close=")" index="">
+        #{item}
+       </foreach>
+       </if>
+  		<if test="o.orderStatus != null and o.orderStatus != &quot;&quot;">
+	  	and o.order_status = #{o.orderStatus,jdbcType=INTEGER}
 	  	</if>
-  		<if test="departmentId != null and departmentId != &quot;&quot;">
-	  	and o.order_dep = #{departmentId,jdbcType=INTEGER}
+  		<if test="o.departmentId != null and o.departmentId != &quot;&quot;">
+	  	and o.order_dep = #{o.departmentId,jdbcType=INTEGER}
 	  	</if>
-	  	<if test="contractNo != null and contractNo != &quot;&quot;">
-  	and o.contract_no like CONCAT('%',#{contractNo,jdbcType=VARCHAR},'%')
+	  	<if test="o.contractNo != null and o.contractNo != &quot;&quot;">
+  	and o.contract_no like CONCAT('%',#{o.contractNo,jdbcType=VARCHAR},'%')
   	</if>
-  		<if test="liquidationStatus != null ">
-	  	and o.liquidation_status = #{liquidationStatus,jdbcType=INTEGER}
+  		<if test="o.liquidationStatus != null ">
+	  	and o.liquidation_status = #{o.liquidationStatus,jdbcType=INTEGER}
 	  	</if>
   		
-  		<if test="orderNo != null and orderNo != &quot;&quot;">
-	  	and o.order_no = #{orderNo,jdbcType=VARCHAR}
+  		<if test="o.orderNo != null and o.orderNo != &quot;&quot;">
+	  	and o.order_no = #{o.orderNo,jdbcType=VARCHAR}
 	  	</if>
-	  	<if test="buyerName != null and buyerName != &quot;&quot;">
+	  	<if test="o.buyerName != null and o.buyerName != &quot;&quot;">
 	  	<bind name="n" value="'%' + buyerName + '%'" />
 	  	and u.nickname  like #{n,jdbcType=VARCHAR}
 	  	</if>
-	  	<if test="startTime != null and startTime != &quot;&quot; and endTime != null and endTime != &quot;&quot;">
+	  	<if test="o.startTime != null and o.startTime != &quot;&quot; and o.endTime != null and o.endTime != &quot;&quot;">
 	  	<bind name="a" value="startTime + ' 00:00:00'" />
 	  	<bind name="b" value="endTime + ' 23:59:59'" />
 	  	and o.create_time between #{a,jdbcType=VARCHAR} and #{b,jdbcType=VARCHAR}

+ 8 - 6
src/main/java/com/goafanti/common/mapper/TOrderTaskMapper.xml

@@ -903,12 +903,14 @@
     where id = #{id,jdbcType=INTEGER}
   </update>
   <select id="selectOrderTask" resultType="com.goafanti.order.bo.TOrderTaskBo">
-  select 
-  		a.id,a.order_no as orderNo,a.commodity_name as commodityName,a.commodity_id as commodityId,manager_id managerId,consultant_id consultantId,
-  		a.commodity_quantity as commodityQuantity,a.commodity_price as commodityPrice,a.task_comment as taskComment,
-  		a.task_status as taskStatus,a.project_status as projectStatus,a.main,a.task_receiver as taskReceiver ,a.certificate_number as certificateNumber,
-  		d.name as contacts,d.contact_mobile as contactsMobile,c.cname
-  	 from t_order_task a left join business_project b on a.commodity_id=b.id
+  select a.id,e.contract_no contractNo,a.order_no as orderNo,h.nickname userName,f.name salesmanName,
+  g.name depName,e.order_status orderStatus,d.name as contacts,d.contact_mobile as contactsMobile,a.main, c.cname,
+  a.commodity_name as commodityName,a.commodity_quantity as commodityQuantity,i.price,a.certificate_number as certificateNumber,
+  a.commodity_id as commodityId,a.manager_id managerId,a.consultant_id consultantId,a.project_status as projectStatus,
+  a.task_comment as taskComment ,a.commodity_price as commodityPrice, a.task_status as taskStatus,  a.task_receiver as taskReceiver 
+  	 from t_order_task a left join business_project b on a.commodity_id=b.id left join t_order_new e on a.order_no=e.order_no
+  	 left join admin f on e.salesman_id=f.id left join department g on e.order_dep=g.id left join user h on e.buyer_id=h.id
+  	 left join business_project i on a.commodity_id=i.id
   	 left join business_category c on b.cid=c.id left join admin d on a.task_receiver=d.id
   	where a.super_id is null and  a.order_no= #{orderNo,jdbcType=VARCHAR}
   </select>

+ 3 - 0
src/main/java/com/goafanti/common/mapper/TTaskHoursMapper.xml

@@ -329,6 +329,9 @@
     left join admin d on a.task_receiver=d.id left join t_order_new e on a.order_no=e.order_no left join department dep on e.order_dep=dep.id  
     left join user f on e.buyer_id=f.id left join (select tid,aid,sum(hours) as hours from task_hours_count group by tid,aid) g on a.id=g.tid
     where e.delete_sign !=1 and a.super_id is null
+    <if test="orderNo != null and orderNo !=''">
+  	and e.order_no= #{orderNo,jdbcType=VARCHAR}
+  	</if>
     <if test="fid != null">
   	and e.finance_id= #{fid,jdbcType=VARCHAR}
   	</if>

+ 49 - 0
src/main/java/com/goafanti/order/bo/TOrderTaskBo.java

@@ -1,11 +1,48 @@
 package com.goafanti.order.bo;
 
+import java.math.BigDecimal;
+
 import com.goafanti.common.model.TOrderTask;
 
 public class TOrderTaskBo extends TOrderTask{
 	private String contacts;
 	private String contactsMobile;
 	private String cname;
+	private String contractNo;
+
+	private String salesmanName;
+
+	private String depName;
+
+	private String userName;
+	
+	private Integer orderStatus;
+	private BigDecimal price;
+	
+	public String getContractNo() {
+		return contractNo;
+	}
+	public void setContractNo(String contractNo) {
+		this.contractNo = contractNo;
+	}
+	public String getSalesmanName() {
+		return salesmanName;
+	}
+	public void setSalesmanName(String salesmanName) {
+		this.salesmanName = salesmanName;
+	}
+	public String getDepName() {
+		return depName;
+	}
+	public void setDepName(String depName) {
+		this.depName = depName;
+	}
+	public String getUserName() {
+		return userName;
+	}
+	public void setUserName(String userName) {
+		this.userName = userName;
+	}
 	public String getContacts() {
 		return contacts;
 	}
@@ -24,5 +61,17 @@ public class TOrderTaskBo extends TOrderTask{
 	public void setCname(String cname) {
 		this.cname = cname;
 	}
+	public Integer getOrderStatus() {
+		return orderStatus;
+	}
+	public void setOrderStatus(Integer orderStatus) {
+		this.orderStatus = orderStatus;
+	}
+	public BigDecimal getPrice() {
+		return price;
+	}
+	public void setPrice(BigDecimal price) {
+		this.price = price;
+	}
 	
 }

+ 17 - 0
src/main/java/com/goafanti/order/controller/AdminNewOrderApiController.java

@@ -493,5 +493,22 @@ public class AdminNewOrderApiController extends CertifyApiController {
  		res.data(1); 
  		return res;
 	}
+	/**
+	 * 	项目列表下载 
+	 * @throws IOException 
+	 */
+	@RequestMapping(value = "/exportOrderTaskData", method = RequestMethod.GET)
+	public Result exportOrderTaskData(String orderNo,HttpServletResponse response) throws IOException{
+		 Result res = new Result();
+ 		try {
+ 			orderNewService.exportOrderTaskData(  orderNo,response);
+		} catch (Exception e) {
+			res.getError().add(buildError("格式不正确"));
+			e.printStackTrace();
+			return res;
+		}
+ 		res.data(1); 
+ 		return res;
+	}
 	
 }

+ 0 - 5
src/main/java/com/goafanti/order/controller/FundManagerOrderApiController.java

@@ -89,11 +89,6 @@ public class FundManagerOrderApiController extends CertifyApiController {
 	@RequestMapping(value="/financeList", method = RequestMethod.GET)
 	public Result financeList(OrderListBo order, Integer pageNo, Integer pageSize ){
 		Result res = new Result();
-		//财务专员自己的id
-		if(!TokenManager.hasRole(AFTConstants.SUPERADMIN) && !TokenManager.hasRole(AFTConstants.APPROVAL_DECISION)
-				&& !TokenManager.hasRole(AFTConstants.FINANCE_ADMIN)&& !TokenManager.hasRole(AFTConstants.VICE_CEO)) {
-			order.setFinanceId(TokenManager.getAdminId());
-		}
 		//order.setProcessStatus(3);//分配给自己 改为前端 传3未分配  4已分配
 		order.setOrderStatus(2);//营销管理员审核通过
 		res.setData(fundManageOrderServiceImpl.financeList(order, pageNo, pageSize));

+ 2 - 2
src/main/java/com/goafanti/order/controller/OrderProjectApiController.java

@@ -203,9 +203,9 @@ public class OrderProjectApiController extends CertifyApiController {
 	 * @throws IOException 
 	 */
 	@RequestMapping(value = "/exportTaskHoursListData", method = RequestMethod.GET)
-	public Result exportTaskHoursListData(String name, String taskId ,String starTime,String endTime ,Integer type,HttpServletResponse response) throws IOException{
+	public Result exportTaskHoursListData(String name, String taskId ,String orderNo,String starTime,String endTime ,Integer type,HttpServletResponse response) throws IOException{
 		 Result res = new Result();
-		 XSSFWorkbook wb = orderProjectService.exportTaskHoursListData( name, taskId, starTime, endTime,type);
+		 XSSFWorkbook wb = orderProjectService.exportTaskHoursListData( name, taskId,orderNo, starTime, endTime,type);
 		 if(null == wb){
 			 res.getError().add(buildError("", "没有找到数据"));
 			 return res;

+ 1 - 0
src/main/java/com/goafanti/order/service/OrderNewService.java

@@ -174,6 +174,7 @@ public interface OrderNewService {
 	List<TOrderLogBo> selectOrderLog(String orderNo);
 
 	void pushGeneralSendNoticeAndEmail(List<String> alist, Integer type,String OrderNo,String adminId);
+	void exportOrderTaskData(String orderNo, HttpServletResponse response)throws IOException ;
 	
 	
 }

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

@@ -43,7 +43,7 @@ public interface OrderProjectService {
 	List<TaskProgressBo> selectTaskProgress(Integer tid);
 
 
-	XSSFWorkbook exportTaskHoursListData(String name, String taskId, String startTime, String endTime, Integer type);
+	XSSFWorkbook exportTaskHoursListData(String name, String taskId,String orderNo, String startTime, String endTime,  Integer type);
 
 	List<TTaskHours> taskHoursDetailsList(String taskId);
 

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

@@ -20,6 +20,7 @@ import org.springframework.stereotype.Service;
 import com.goafanti.admin.bo.AdminListBo;
 import com.goafanti.common.bo.EmailBo;
 import com.goafanti.common.bo.Error;
+import com.goafanti.common.constant.AFTConstants;
 import com.goafanti.common.constant.ErrorConstants;
 import com.goafanti.common.dao.AdminMapper;
 import com.goafanti.common.dao.NoticeMapper;
@@ -156,11 +157,19 @@ public class FundManagerOrderServiceImpl extends BaseMybatisDao<TOrderNewMapper>
 			Integer pageNo, Integer pageSize) {
 		Map<String, Object> result = new HashMap<String, Object>();
 		Map<String, Object> params = new HashMap<String, Object>();
+		if(TokenManager.hasRole(AFTConstants.FINANCEADMIN)) {
+			order.setFinanceId(TokenManager.getAdminId());
+		}
+		List<String> fids=null;
+		if(TokenManager.hasRole(AFTConstants.FINANCEMANAGERADMIN)) {
+			fids =adminMapper.selectBySuperId(TokenManager.getAdminId());
+			params.put("fids", fids);
+		}
 		if (order.getOutsource()==null)order.setOutsource(0);//默认非外包 
 		params.put("o", order);
 		Pagination<OrderListBo> data = (Pagination<OrderListBo>)findPage("financeList", "financeCount", params, pageNo, pageSize);
 		result.put("pagination", data);
-		Map<String, Object> count = tOrderNewMapper.countTotalAndActually(order);
+		Map<String, Object> count = tOrderNewMapper.countTotalAndActually(order,fids);
 		result.put("count", count);
 		return result;
 	}

+ 61 - 0
src/main/java/com/goafanti/order/service/impl/OrderNewServiceImpl.java

@@ -1016,5 +1016,66 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 		
 	}
 
+
+
+	@Override
+	public void exportOrderTaskData(String orderNo, HttpServletResponse response) throws IOException {
+		OutputStream out = response.getOutputStream();
+		try {
+			List<TOrderTaskBo> list=selectOrderTask(orderNo);
+    		String[] comment = {"合同编号","订单编号","客户名称","订单负责人","订单部门","订单状态","项目负责人","是否主项目","项目别类","项目名称","项目数量","服务市价","证书編号","项目状态","项目说明"};
+    		String fileName ="项目信息记录表" + new SimpleDateFormat("yyyy-MM-dd HH:mm").format(new Date()) + ".xls";
+    		//type 0 变更
+    		XSSFWorkbook wb =ExportExcelUtil.exportTemplateInfoS(comment,"项目信息");
+    		//根据列表编写文档
+    		XSSFSheet sheet =wb.getSheetAt(0);
+    		for (TOrderTaskBo ob : list) {
+    			//新增一行
+    			XSSFRow r = sheet.createRow(sheet.getLastRowNum()+1);
+    			for (int i = 0; i < comment.length; i++) {
+    				//当前列的只
+    				String o = "";
+    				switch (comment[i]) {
+//    "合同编号","订单编号","客户名称","订单负责人","订单部门","订单状态","项目负责人","是否主项目","项目别类","项目名称","项目数量",
+//    				"服务市价","证书編号","项目状态","项目说明"
+    				case "合同编号": o = ob.getContractNo(); break;
+    				case "订单编号": o = ob.getOrderNo().toString(); break;
+    				case "客户名称": o = ob.getUserName(); break;
+    				case "订单负责人": o = ob.getSalesmanName(); break;
+    				case "订单部门": o = ob.getDepName(); break;
+    				case "订单状态": o = OrderNewState.getValueByCode(ob.getOrderStatus());break;
+    				case "项目负责人": o = ob.getSalesmanName(); break;
+    				case "是否主项目": o = ob.getMain()==0?"否":"是"; break;
+    				case "项目别类": o = ob.getCname(); break;
+    				case "项目名称": o = ob.getCommodityName(); break;
+    				case "项目数量": o = ob.getCommodityQuantity().toString(); break;
+    				case "服务市价": o = ob.getPrice().toString(); break;
+    				case "证书編号": o = ob.getCertificateNumber(); break;
+    				case "项目状态": o = ProjectNewStage.getValueByCode(ob.getProjectStatus()); break;
+    				case "项目说明": o = ob.getTaskComment(); break;
+    				default: o = ""; break;
+    				}
+    				XSSFCell c = r.createCell(i);
+    				c.setCellValue(o);
+    			}
+    		}
+    		//返回名称及参数
+			 response.addHeader("Content-Disposition", "attachment;filename="  + new String(fileName.getBytes(),"iso-8859-1"));  
+			 response.setContentType("application/octet-stream;charset=utf-8");
+    		 // 返回数据流
+			 wb.write(out); 
+			 out.flush();
+			 out.close();
+		} catch (Exception e) {
+			throw new BusinessException(new Error("表格生成错误。"));
+		}finally {
+			out.flush(); 
+			 out.close(); 
+		}
+		
+	
+		
+	}
+
 	
 }

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

@@ -408,11 +408,11 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 
 	
 	@Override
-	public XSSFWorkbook exportTaskHoursListData(String name, String taskId, String startTime, String endTime,Integer type) {
+	public XSSFWorkbook exportTaskHoursListData(String name, String taskId, String orderNo,String startTime, String endTime,Integer type) {
 		if(StringUtils.isNoneBlank(endTime)) endTime=endTime+" 23:59:59";
 		String fid=null;
 		if(type!=null&&type==1)fid=TokenManager.getAdminId();
-		List<TOrderTaskListBo> list=tTaskHoursMapper.getTaskHoursData(name,taskId,startTime,endTime,fid);
+		List<TOrderTaskListBo> list=tTaskHoursMapper.getTaskHoursData(name,taskId,orderNo,startTime,endTime,fid);
 		if (list==null || list.size()==0) return null;
 		String[] comment = {"任务编号","任务名称","订单编号","业务别类","订单部门","客户名称","任务负责人","任务状态","工时","合同编号","签单日期","派单日期"};
 		String filePath = uploadPath + "/TaskHours";