Browse Source

财务列表新增相关字段

anderx 3 years ago
parent
commit
37c7ad9f56

+ 4 - 2
src/main/java/com/goafanti/common/dao/TOrderMidMapper.java

@@ -34,9 +34,9 @@ public interface TOrderMidMapper {
 
     String selectDepNameByDepid(String orderDep);
 
-    void updateCostAmount(@Param("tid")Integer tid, @Param("cost")BigDecimal cost, @Param("payment")BigDecimal payment);
+    void updateCostAmount(String orderNo);
+
 
-    void updateAddCostAmount(TOrderMid in);
 
     int updateByOrderNo(TOrderMid tm);
 
@@ -53,4 +53,6 @@ public interface TOrderMidMapper {
      * @param orderNo
      */
     void updateCountProjectAndType(String orderNo);
+
+
 }

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

@@ -25,7 +25,7 @@ public interface TTaskMidMapper {
 
     void updateCertificatesCountByTid(@Param("tid")Integer tid, @Param("count")Integer count);
 
-    List<TTaskMid> selectListByTid(Integer tid);
+
 
     void updateByTid(TTaskMid tm);
 

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

@@ -339,9 +339,10 @@
   </select>
 
   <select id="updateOrderCost">
-  update  t_order_payment a,t_task_mid z
-  set  z.party_amount=z.party_amount+ #{partyAmount}
-  where a.id=#{pid} and a.tid=z.tid
+  update  t_order_payment a,t_task_mid z,t_order_task b,t_order_new  c,t_order_mid d
+  set  z.party_amount=z.party_amount+ #{partyAmount} ,d.expect_profit =c.total_amount -d.cost_amount,
+       d.actual_profit =c.total_amount -d.payment_amount
+  where a.id=#{pid} and a.tid=z.tid and a.tid=b.id and b.order_no =c.order_no and c.order_no =d.order_no
   </select>
 
 </mapper>

+ 15 - 52
src/main/java/com/goafanti/common/mapper/TOrderMidMapper.xml

@@ -469,16 +469,19 @@
 
 
   <update id="updateCostAmount">
-    update t_order_task a ,t_order_mid b
-    <set>
-      <if test="cost !=null">
-        b.cost_amount= #{cost},
-      </if>
-      <if test="payment !=null">
-        b.payment_amount= #{payment},
-      </if>
-    </set>
-    where  a.order_no=b.order_no and a.id= #{tid}
+    update t_order_mid x,(select x.order_no,sum(cost)cost,sum(party)party, sum(if(type = 1, cost, 0))zlc, sum(if(type = 1, party, 0))zlf,
+     sum(if(type = 2, cost, 0))rzc, sum(if(type = 2, party, 0))rzf, sum(if(type = 3, cost, 0))sjc, sum(if(type = 3, party, 0))sjf,
+     sum(if(type = 0 or type>3, cost, 0))qtc, sum(if(type = 0 or type>3, party, 0))qtf
+    from(select b.order_no, c.`type`, sum(cost_amount)cost, sum(party_amount)party
+         from t_task_mid a left join t_order_task b on a.tid = b.id left join business_project c on b.commodity_id = c.id
+                           left join t_order_new d on b.order_no = d.order_no left join t_order_outsource too on a.tid =too.tid
+         where   too.`type` =1 and too.refund_status =1 and d.delete_sign in (0,2) and b.order_no = #{orderNo}
+         group by b.order_no , c.`type`)x group by x.order_no)y,t_order_new z
+    set x.cost_amount =y.cost,x.payment_amount =y.party,x.patent_cost =y.zlc,x.patent_cost_actual =y.zlf,
+        x.soft_cost =y.rzc,x.soft_cost_actual =y.rzf,x.audit_cost =y.sjc,x.audit_cost_actual =y.sjf,
+        x.other_cost =qtc,x.other_cost_actual =y.qtf,x.expect_profit =z.total_amount-y.cost,
+        x.actual_profit =z.total_amount-y.party
+    where x.order_no =y.order_no and x.order_no=z.order_no
   </update>
 
 
@@ -706,46 +709,6 @@
     where a.order_no=b.order_no and a.order_no = #{orderNo};
   </update>
 
-  <update id="updateAddCostAmount" parameterType="com.goafanti.common.model.TOrderMid">
-    update t_order_mid
-    <set>
-      <if test="costActual != null">
-        payment_amount =payment_amount+ #{paymentAmount,jdbcType=DECIMAL},
-      </if>
-      <if test="patentCost != null">
-        patent_cost =patent_cost+ #{patentCost,jdbcType=DECIMAL},
-      </if>
-      <if test="patentCostActual != null">
-        patent_cost_actual =patent_cost_actual+ #{patentCostActual,jdbcType=DECIMAL},
-      </if>
-      <if test="softCost != null">
-        soft_cost =soft_cost+ #{softCost,jdbcType=DECIMAL},
-      </if>
-      <if test="softCostActual != null">
-        soft_cost_actual =soft_cost_actual+ #{softCostActual,jdbcType=DECIMAL},
-      </if>
-      <if test="auditCost != null">
-        audit_cost =audit_cost+ #{auditCost,jdbcType=DECIMAL},
-      </if>
-      <if test="auditCostActual != null">
-        audit_cost_actual =audit_cost_actual+ #{auditCostActual,jdbcType=DECIMAL},
-      </if>
-      <if test="otherCost != null">
-        other_cost =other_cost+ #{otherCost,jdbcType=DECIMAL},
-      </if>
-      <if test="otherCostActual != null">
-        other_cost_actual =other_cost_actual+ #{otherCostActual,jdbcType=DECIMAL},
-      </if>
-      <if test="expectProfit != null">
-        expect_profit =expect_profit+ #{expectProfit,jdbcType=DECIMAL},
-      </if>
-      <if test="actualProfit != null">
-        actual_profit =actual_profit+ #{actualProfit,jdbcType=DECIMAL},
-      </if>
-      <if test="costAmount != null">
-        cost_amount =cost_amount+ #{costAmount,jdbcType=DECIMAL},
-      </if>
-    </set>
-    where  order_no =#{orderNo}
-  </update>
+
+
 </mapper>

+ 1 - 8
src/main/java/com/goafanti/common/mapper/TTaskMidMapper.xml

@@ -347,11 +347,7 @@
     </if>
     where tid = #{tid,jdbcType=INTEGER}
   </update>
-  <select id="selectListByTid" resultType="com.goafanti.common.model.TTaskMid">
-    select c.id,c.tid,c.cost_amount costAmount,c.party_amount partyAmount from t_order_task a left join t_order_task b on a.order_no=b.order_no
-                                                                                              left join t_task_mid c on b.id=c.tid
-    where a.id= #{tid}
-  </select>
+
 
   <update id="updateCostAmount">
     update t_order_task a ,t_task_mid c
@@ -368,9 +364,6 @@
   <update id="updateByTid" parameterType="com.goafanti.common.model.TTaskMid">
     update t_task_mid
     <set>
-      <if test="tid != null">
-        tid = #{tid,jdbcType=INTEGER},
-      </if>
       <if test="costAmount != null">
         cost_amount = #{costAmount,jdbcType=DECIMAL},
       </if>

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

@@ -1724,7 +1724,8 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 		}else {
 			in.setOtherCost(tCount);
 		}
-		tOrderMidMapper.updateAddCostAmount(in);
+		tOrderMidMapper.updateCostAmount(projectTypePuls.getOrderNo());
+
 	}
 
 	@Override

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

@@ -508,7 +508,10 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 				taskMid.setCompleteCount(task2.getCommodityQuantity());
 				taskMid.setStockCount(0);
 			}
-			tTaskMidMapper.updateByTid(taskMid);
+			if (taskMid.getPromulgateCount()!=null||taskMid.getSetUpCount()!=null||
+					taskMid.getCompleteCount()!=null ||taskMid.getStockCount()!=null){
+				tTaskMidMapper.updateByTid(taskMid);
+			}
 			tOrderTaskMapper.updateByPrimaryKeySelective(t);
 			projectSplitPush(b.getTid(), b.getProjectStatus(),task2);
 			pushTaskLog(b.getTid(), b.getProjectStatus());

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

@@ -1,5 +1,6 @@
 package com.goafanti.order.service.impl;
 
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.HashMap;
@@ -7,6 +8,7 @@ import java.util.List;
 import java.util.Map;
 
 import com.goafanti.common.dao.*;
+import com.goafanti.common.model.*;
 import com.goafanti.order.bo.*;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -14,13 +16,6 @@ import org.springframework.stereotype.Service;
 
 import com.goafanti.common.enums.NoticeStatus;
 import com.goafanti.common.enums.OrderLogProcess;
-import com.goafanti.common.model.Admin;
-import com.goafanti.common.model.OutsourceLog;
-import com.goafanti.common.model.OutsourceOrganization;
-import com.goafanti.common.model.TOrderLog;
-import com.goafanti.common.model.TOrderNew;
-import com.goafanti.common.model.TOrderOutsource;
-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;
@@ -53,6 +48,18 @@ public class OutsourceOrgServiceImpl  extends BaseMybatisDao<TOrderOutsourceMapp
 	private OutsourceLogMapper	outsourceLogMapper;
 	@Autowired
 	private OrderNewService	OrderNewService;
+	@Autowired
+	private TTaskMidMapper	tTaskMidMapper;
+	@Autowired
+	private TOrderMidMapper	tOrderMidMapper;
+
+
+
+
+
+
+
+
 	@Override
 	public int addOutsourceOrg(OutsourceOrganization o) {
 		return outsourceOrganizationMapper.insertSelective(o);
@@ -109,7 +116,7 @@ public class OutsourceOrgServiceImpl  extends BaseMybatisDao<TOrderOutsourceMapp
 		List<String> aids = new ArrayList<>();
 		Integer type=null;
 		TOrderNew t2=tOrderNewMapper.selectByPrimaryKey(o.getOrderNo());
-		//外包订单
+		//外包订单已删除
 		if (o.getType()==null||o.getType()==0) {
 			o.setType(0);
 			TOrderNew t=new TOrderNew();
@@ -151,6 +158,7 @@ public class OutsourceOrgServiceImpl  extends BaseMybatisDao<TOrderOutsourceMapp
 				type=NoticeStatus.PROJECT_OUTSOURCE_NO.getCode();
 				ol.setStatus(2);
 				addOrderLog(o.getOrderNo(),OrderLogProcess.XMWBBH.getCode(),o.getRemarks());
+				pushRejectMid(o);
 			}
 			outsourceLogMapper.insertSelective(ol);
 		}
@@ -159,6 +167,15 @@ public class OutsourceOrgServiceImpl  extends BaseMybatisDao<TOrderOutsourceMapp
 		return tOrderOutsourceMapper.updateByPrimaryKeySelective(o);
 	}
 
+	private void pushRejectMid(OrderOutsourceDtails o) {
+		TTaskMid tm=new TTaskMid();
+		tm.setTid(o.getTid());
+		tm.setCostAmount(new BigDecimal(0));
+		tm.setPartyAmount(new BigDecimal(0));
+		tTaskMidMapper.updateByTid(tm);
+		tOrderMidMapper.updateCostAmount(o.getOrderNo());
+	}
+
 	public void addOrderLog(String orderNo, Integer code,String remarks) {
 		TOrderLog tl=new TOrderLog();
 		tl.setOrderNo(orderNo);

+ 8 - 38
src/main/java/com/goafanti/organization/service/impl/ThirdPartyCompanyServiceImpl.java

@@ -126,20 +126,8 @@ public class ThirdPartyCompanyServiceImpl extends  BaseMybatisDao<ThirdPartyComp
 			}
 			if (type!=null&&type==1) {
 				tOrderTaskMapper.updateAddCostAmount(t.getTid(), t.getTotalAmount());
-				ProjectTypePuls projectTypePuls = tOrderTaskMapper.selectByTidGetDtails(t.getTid());
-				TOrderMid in=new TOrderMid();
-				in.setOrderNo(projectTypePuls.getOrderNo());
-				in.setCostAmount(t.getTotalAmount());
-				if (projectTypePuls.getType()== ProjectType.ZL.getCode()){
-					in.setPatentCost(t.getTotalAmount());
-				}else if (projectTypePuls.getType()== ProjectType.RZ.getCode()){
-					in.setSoftCost(t.getTotalAmount());
-				}else if (projectTypePuls.getType()== ProjectType.SJ.getCode()){
-					in.setAuditCost(t.getTotalAmount());
-				}else {
-					in.setOtherCost(t.getTotalAmount());
-				}
-				tOrderMidMapper.updateAddCostAmount(in);
+
+				updateCountByTid(t.getTid());
 			}
 		thirdPartyCompanyMapper.insertSelective(t);
 		return 1;
@@ -288,7 +276,7 @@ public class ThirdPartyCompanyServiceImpl extends  BaseMybatisDao<ThirdPartyComp
 			}
 			paymentNodeMapper.deleteByParam(tpcId,null);
 			sumTaskCost(tpc.getTid());
-			updateCountByTid(tpc.getId());
+			updateCountByTid(tpc.getTid());
 		}
 		return 1;
 	}
@@ -475,21 +463,9 @@ public class ThirdPartyCompanyServiceImpl extends  BaseMybatisDao<ThirdPartyComp
 				thirdPartyCompanyMapper.updateByPrimaryKeySelective(tpc);
 			}
 			//计算成本
-			ProjectTypePuls projectTypePuls = tOrderTaskMapper.selectByTidGetDtails(tp.getTid());
-			TOrderMid in=new TOrderMid();
-			in.setOrderNo(projectTypePuls.getOrderNo());
-			in.setPaymentAmount(p.getPaymentAmount());
-			if (projectTypePuls.getType()== ProjectType.ZL.getCode()){
-				in.setPatentCostActual(p.getPaymentAmount());
-			}else if (projectTypePuls.getType()== ProjectType.RZ.getCode()){
-				in.setSoftCostActual(p.getPaymentAmount());
-			}else if (projectTypePuls.getType()== ProjectType.SJ.getCode()){
-				in.setAuditCostActual(p.getPaymentAmount());
-			}else {
-				in.setOtherCostActual(p.getPaymentAmount());
-			}
-			tOrderMidMapper.updateAddCostAmount(in);
+			ProjectTypePuls t = tOrderTaskMapper.selectByTidGetDtails(tp.getTid());
 			financialPaymentMapper.updateOrderCost(p.getId(),p.getPaymentAmount());
+			tOrderMidMapper.updateCostAmount(t.getOrderNo());
 	}
 
 
@@ -1158,17 +1134,11 @@ public class ThirdPartyCompanyServiceImpl extends  BaseMybatisDao<ThirdPartyComp
 
 	/**
 	 * 根据项目编号重新计算订单成本与已付
-	 * @param id
+	 * @param id =tid 项目编号
 	 */
 	private void updateCountByTid(Integer id) {
-		List<TTaskMid> list=tTaskMidMapper.selectListByTid(id);
-		BigDecimal cost=new BigDecimal(0);
-		BigDecimal party=new BigDecimal(0);
-		for (TTaskMid t : list) {
-			cost=cost.add(t.getCostAmount());
-			party=party.add(t.getPartyAmount());
-		}
-		tOrderMidMapper.updateCostAmount(id, cost,party);
+		TOrderTask t = tOrderTaskMapper.selectByPrimaryKey(id);
+		tOrderMidMapper.updateCostAmount(t.getOrderNo());
 	}
 
 	@Override