Procházet zdrojové kódy

处理公出最公出限制表接口开发

anderx před 1 rokem
rodič
revize
3a08606a02

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

@@ -38,7 +38,7 @@ public interface OrderYearMaxDurationMapper {
      * @param orderYearMaxDuration 查询条件
      * @return 总行数
      */
-    long queryAllByCount(OrderYearMaxDuration orderYearMaxDuration);
+    int queryAllByCount(OrderYearMaxDuration orderYearMaxDuration);
 
     /**
      * 新增数据
@@ -81,5 +81,6 @@ public interface OrderYearMaxDurationMapper {
      */
     int deleteById(Integer id);
 
+    void updateByOrderNoAndYear(OrderYearMaxDuration orderYearMaxDuration);
 }
 

+ 21 - 6
src/main/java/com/goafanti/common/mapper/OrderYearMaxDurationMapper.xml

@@ -24,7 +24,7 @@
     </select>
 
     <!--查询指定行数据-->
-    <select id="findOrderYearMaxDurationCount" resultMap="OrderYearMaxDurationMap">
+    <select id="findOrderYearMaxDurationList" resultMap="OrderYearMaxDurationMap">
         select
         id, order_no, year, status, max_duration, create_time
         from order_year_max_duration
@@ -52,7 +52,7 @@
     </select>
 
     <!--统计总行数-->
-    <select id="queryAllByCount" resultType="java.lang.Intger">
+    <select id="queryAllByCount" resultType="java.lang.Integer">
         select count(1)
         from order_year_max_duration
         <where>
@@ -79,15 +79,15 @@
 
     <!--新增所有列-->
     <insert id="insert" keyProperty="id" useGeneratedKeys="true">
-        insert into order_year_max_duration(order_no, year, status, max_duration, create_time)
-        values (#{orderNo}, #{year}, #{status}, #{maxDuration}, #{createTime})
+        insert into order_year_max_duration(order_no, year, status, max_duration)
+        values (#{orderNo}, #{year}, #{status}, #{maxDuration})
     </insert>
 
     <insert id="insertBatch" keyProperty="id" useGeneratedKeys="true">
-        insert into order_year_max_duration(order_no, year, status, max_duration, create_time)
+        insert into order_year_max_duration(order_no, year, status, max_duration)
         values
         <foreach collection="entities" item="entity" separator=",">
-            (#{entity.orderNo}, #{entity.year}, #{entity.status}, #{entity.maxDuration}, #{entity.createTime})
+            (#{entity.orderNo}, #{entity.year}, #{entity.status}, #{entity.maxDuration})
         </foreach>
     </insert>
 
@@ -127,6 +127,21 @@
         </set>
         where id = #{id}
     </update>
+    <update id="updateByOrderNoAndYear">
+        update order_year_max_duration
+        <set>
+            <if test="orderNo != null and orderNo != ''">
+                order_no = #{orderNo},
+            </if>
+            <if test="status != null">
+                status = #{status},
+            </if>
+            <if test="maxDuration != null">
+                max_duration = #{maxDuration},
+            </if>
+        </set>
+        where order_no = #{orderNo} and year = #{year}
+    </update>
 
     <!--通过主键删除-->
     <delete id="deleteById">

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

@@ -2019,9 +2019,9 @@ left join department d on o.order_dep = d.id   left join t_order_mid a on o.orde
 
 
   <select id="selectgetAll" resultType="com.goafanti.common.model.TOrderNew">
-    SELECT DISTINCT order_no orderNo
-    from public_release a
-    where a.order_no is not null
+    select order_no orderNo,contract_picture_url contractPictureUrl ,agreement_url agreementUrl ,service_content serviceContent,
+    total_amount totalAmount
+    from t_order_new where delete_sign in (0,2) and process_status>0
   </select>
   <select id="getProcessName" resultType="com.goafanti.order.bo.OrderProcessName">
     select a.order_no orderNo,a.approval,a.process_status processStatus  ,b.name yxy,mg.name yxjl,

+ 7 - 0
src/main/java/com/goafanti/common/model/OrderYearMaxDuration.java

@@ -36,6 +36,13 @@ public class OrderYearMaxDuration implements Serializable {
      */
     private Date createTime;
 
+    public OrderYearMaxDuration(String orderNo, Integer year) {
+        this.orderNo = orderNo;
+        this.year = year;
+    }
+
+    public OrderYearMaxDuration() {
+    }
 
     public Integer getId() {
         return id;

+ 2 - 3
src/main/java/com/goafanti/expenseAccount/controller/ExpenseAccountController.java

@@ -5,7 +5,6 @@ import com.goafanti.common.constant.AFTConstants;
 import com.goafanti.common.constant.ErrorConstants;
 import com.goafanti.common.controller.CertifyApiController;
 import com.goafanti.common.model.ExpenseAccount;
-import com.goafanti.common.model.TOrderPublicReleaseCount;
 import com.goafanti.common.utils.ParamUtils;
 import com.goafanti.common.utils.excel.NewExcelUtil;
 import com.goafanti.core.shiro.token.TokenManager;
@@ -443,8 +442,8 @@ public class ExpenseAccountController extends CertifyApiController {
      */
     @RequestMapping(value = "/pushExpenseTotalAmount",method = RequestMethod.GET)
     public Result pushExpenseTotalAmount(){
-        List<TOrderPublicReleaseCount> list =expenseAccountService.pushExpenseTotalAmount();
-        return res().data(list);
+        expenseAccountService.pushExpenseTotalAmount();
+        return res().data(true);
     }
 
     /**

+ 1 - 2
src/main/java/com/goafanti/expenseAccount/service/ExpenseAccountService.java

@@ -1,7 +1,6 @@
 package com.goafanti.expenseAccount.service;
 
 import com.goafanti.common.model.ExpenseAccount;
-import com.goafanti.common.model.TOrderPublicReleaseCount;
 import com.goafanti.core.mybatis.page.Pagination;
 import com.goafanti.expenseAccount.bo.*;
 
@@ -79,5 +78,5 @@ public interface ExpenseAccountService {
 
     Object mainExpenseExport(Integer id, HttpServletResponse response);
 
-    List<TOrderPublicReleaseCount> pushExpenseTotalAmount();
+    void pushExpenseTotalAmount();
 }

+ 4 - 6
src/main/java/com/goafanti/expenseAccount/service/impl/ExpenseAccountServiceImpl.java

@@ -468,15 +468,13 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
     }
 
     @Override
-    public List<TOrderPublicReleaseCount> pushExpenseTotalAmount() {
-                        orderNewService.pushOrderPublicReleaseCount("800326086952370176");
+    public void pushExpenseTotalAmount() {
+//                        orderNewService.pushOrderPublicReleaseCount("800326086952370176");
         List<TOrderNew> tOrderNews = orderNewService.selectGetAll();
-        List<TOrderPublicReleaseCount> list=new ArrayList<>();
         for (TOrderNew e : tOrderNews) {
-            TOrderPublicReleaseCount tOrderPublicReleaseCount = orderNewService.pushOrderPublicReleaseCount(e.getOrderNo());
-            list.add(tOrderPublicReleaseCount);
+            orderNewService.pushOrderPublicReleaseCount(e);
+
         }
-        return list;
     }
 
     public void pushMainExpenseExport(MainExpenseAccount mainExpenseAccount,HttpServletResponse response, String uploadPath) {

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

@@ -230,7 +230,7 @@ public interface OrderNewService {
 
 	void orderNewListDownload(InputOrderNewListBo in, HttpServletResponse response);
 
-	TOrderPublicReleaseCount pushOrderPublicReleaseCount(String orderNo);
+	void pushOrderPublicReleaseCount(TOrderNew e);
 
 	List<TOrderNew> selectGetAll();
 

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

@@ -988,7 +988,8 @@ public class OrderChangeServiceImpl extends BaseMybatisDao<NewOrderChangeMapper>
 		date.setTime(date.getTime()+500);
 		addOrderChangeLog("变更完成。", 4, nb.getOrderNo(), nb.getId(),date);
 		pushGeneralSendNoticeAndEmail(alist,NoticeStatus.ORDER_CHANGE_END.getCode(), order, TokenManager.getAdminId(),0);
-		orderNewService.pushOrderPublicReleaseCount(nb.getOrderNo());
+		//需修改
+//		orderNewService.pushOrderPublicReleaseCount(nb.getOrderNo());
 		//修改投标标识
 		tOrderMidMapper.updateBidTypeByOrderNo(nb.getOrderNo());
 		return 1;

+ 53 - 47
src/main/java/com/goafanti/order/service/impl/OrderNewServiceImpl.java

@@ -145,7 +145,7 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 	@Autowired
 	private PublicReleaseMapper publicReleaseMapper;
 	@Autowired
-	private TOrderPublicReleaseCountMapper tOrderPublicReleaseCountMapper;
+	private OrderYearMaxDurationMapper orderYearMaxDurationMapper;
 	@Autowired
 	private TOrderApprovalMapper tOrderApprovalMapper;
 
@@ -647,7 +647,7 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 		}
 		tOrderNewMapper.updateByPrimaryKeySelective(t);
 		//计算公出统计
-		pushOrderPublicReleaseCount(t.getOrderNo());
+		pushOrderPublicReleaseCount(t2);
 		updateAdminUserCountOrder(t2.getSalesmanId(),t2.getCreateTime());
 		if (newOrderFlag){
 			updateAdminUserCountOrder(t2.getSalesmanId(),date);
@@ -707,12 +707,10 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 
 	/**
 	 * 处理订单公出&报销之间数据统计
-	 * @param orderNo
 	 */
-	public TOrderPublicReleaseCount pushOrderPublicReleaseCount(String orderNo) {
+	public void pushOrderPublicReleaseCount(TOrderNew orderNew) {
 		//获取公出信息
-		List<PublicRelease> list = publicReleaseMapper.selectByOrderNo(orderNo);
-		TOrderNew orderNew = tOrderNewMapper.selectByPrimaryKey(orderNo);
+		List<PublicRelease> list = publicReleaseMapper.selectByOrderNo(orderNew.getOrderNo());
 		//公出时间统计
 		BigDecimal durationCount = BigDecimal.ZERO;
 		//公出次数
@@ -727,58 +725,66 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 		}
 		TOrderPublicReleaseCount out = null;
 		out=new TOrderPublicReleaseCount();
-		out.setOrderNo(orderNo);
+		out.setOrderNo(orderNew.getOrderNo());
 		out.setMaxDuration(0d);
 		out.setActualDuration(durationCount.doubleValue());
 		out.setPeopleCount(peopleList.size());
 		out.setFrequency(count);
-
 		//获取会员信息
-		List<TTaskMember> tTaskMembers = tTaskMemberMapper.selectByOrderNo(orderNo);
+		List<TTaskMember> tTaskMembers = tTaskMemberMapper.selectByOrderNo(orderNew.getOrderNo());
 		int yearSum=0;
 		String serviceLife = null;
-		for (TTaskMember e : tTaskMembers) {
-			if (e.getYearSum()!=null&&e.getYearSum()>yearSum){
-				yearSum=e.getYearSum();
-				serviceLife=e.getServiceLife();
-			}
-		}
-		List<String> strings = JSON.parseArray(serviceLife, String.class);
-        List<Integer> collect = null;
-        if (strings != null) {
-            collect = strings.stream().map(this::extractYear).collect(Collectors.toList());
-			int size = collect.size();
-			BigDecimal divide = orderNew.getTotalAmount().divide(new BigDecimal(size), RoundingMode.HALF_EVEN);
-			BigDecimal maxDuration = pushMaxDuration(divide);
-			int i = 1;
-			for (Integer year : collect) {
-				OrderYearMaxDuration orderYearMaxDuration = new OrderYearMaxDuration();
-				orderYearMaxDuration.setYear(year);
-				if (maxDuration.compareTo(new BigDecimal(-1))==0){
-					orderYearMaxDuration.setMaxDuration(BigDecimal.ZERO);
-					orderYearMaxDuration.setStatus(1);
-				}else {
-					orderYearMaxDuration.setMaxDuration(maxDuration.multiply(new BigDecimal(i)));
-					orderYearMaxDuration.setStatus(0);
+		if (tTaskMembers.isEmpty()){
+			OrderYearMaxDuration orderYearMaxDuration = new OrderYearMaxDuration();
+			orderYearMaxDuration.setYear(0);
+			BigDecimal maxDuration = pushMaxDuration(orderNew.getTotalAmount());
+			if (maxDuration.compareTo(new BigDecimal(-1))==0){
+				orderYearMaxDuration.setMaxDuration(BigDecimal.ZERO);
+				orderYearMaxDuration.setStatus(1);
+			}else {
+				orderYearMaxDuration.setMaxDuration(maxDuration);
+				orderYearMaxDuration.setStatus(0);
+			}
+			orderYearMaxDuration.setOrderNo(orderNew.getOrderNo());
+			orderYearMaxDurationMapper.insert(orderYearMaxDuration);
+		}else {
+			for (TTaskMember e : tTaskMembers) {
+				if (e.getYearSum()!=null&&e.getYearSum()>yearSum){
+					yearSum=e.getYearSum();
+					serviceLife=e.getServiceLife();
+				}
+			}
+			List<String> strings = JSON.parseArray(serviceLife, String.class);
+			List<Integer> collect = null;
+			if (strings != null) {
+				collect = strings.stream().map(this::extractYear).collect(Collectors.toList());
+				int size = collect.size();
+				BigDecimal divide = orderNew.getTotalAmount().divide(new BigDecimal(size), RoundingMode.HALF_EVEN);
+				BigDecimal maxDuration = pushMaxDuration(divide);
+				List<OrderYearMaxDuration> maxLists = new ArrayList<>();
+				int i = 1;
+				for (Integer year : collect) {
+					OrderYearMaxDuration orderYearMaxDuration = new OrderYearMaxDuration();
+					orderYearMaxDuration.setYear(year);
+					if (maxDuration.compareTo(new BigDecimal(-1))==0){
+						orderYearMaxDuration.setMaxDuration(BigDecimal.ZERO);
+						orderYearMaxDuration.setStatus(1);
+					}else {
+						orderYearMaxDuration.setMaxDuration(maxDuration.multiply(new BigDecimal(i)));
+						orderYearMaxDuration.setStatus(0);
+					}
+					orderYearMaxDuration.setOrderNo(orderNew.getOrderNo());
+					i++;
+					int x = orderYearMaxDurationMapper.queryAllByCount(new OrderYearMaxDuration(orderNew.getOrderNo(), year));
+					if (x>0){
+						orderYearMaxDurationMapper.updateByOrderNoAndYear(orderYearMaxDuration);
+					}else {
+						orderYearMaxDurationMapper.insert(orderYearMaxDuration);
+					}
 				}
-				orderYearMaxDuration.setOrderNo(orderNo);
-				System.out.println(orderYearMaxDuration);
-				i++;
 			}
-
 		}
 
-//
-//		List<String> yearsStrList = Arrays.asList("2019年", "2020年", "2021年(增)");
-//		List<Integer> yearsIntList = yearsStrList.stream()
-//				.map(this::extractYear)
-//				.collect(Collectors.toList());
-//
-//		System.out.println(yearsIntList);
-
-		return out;
-
-
 	}
 
 	private  Integer extractYear(String yearStr) {