Browse Source

Merge branch 'test'

# Conflicts:
#	src/main/java/com/goafanti/common/utils/HttpUtils.java
anderx 2 years ago
parent
commit
7ab91c7440
77 changed files with 5552 additions and 2372 deletions
  1. 0 1
      pom.xml
  2. 2 3
      src/main/java/com/goafanti/RD/controller/RDContorller.java
  3. 5 0
      src/main/java/com/goafanti/common/bo/Result.java
  4. 4 0
      src/main/java/com/goafanti/common/controller/WebpageController.java
  5. 2 0
      src/main/java/com/goafanti/common/dao/ExpenseAccountMapper.java
  6. 28 0
      src/main/java/com/goafanti/common/dao/PublicReleaseClockMapper.java
  7. 33 0
      src/main/java/com/goafanti/common/dao/PublicReleaseDateClockMapper.java
  8. 1 2
      src/main/java/com/goafanti/common/dao/PublicReleaseDetailsMapper.java
  9. 12 2
      src/main/java/com/goafanti/common/dao/PublicReleaseMapper.java
  10. 27 0
      src/main/java/com/goafanti/common/dao/StandardDocumentMapper.java
  11. 2 0
      src/main/java/com/goafanti/common/dao/TOrderMidMapper.java
  12. 2 0
      src/main/java/com/goafanti/common/dao/TOrderNewMapper.java
  13. 28 0
      src/main/java/com/goafanti/common/dao/TOrderPublicReleaseCountMapper.java
  14. 6 78
      src/main/java/com/goafanti/common/dao/TTaskLogMapper.java
  15. 4 0
      src/main/java/com/goafanti/common/dao/UserNamesMapper.java
  16. 3 1
      src/main/java/com/goafanti/common/enums/AttachmentType.java
  17. 12 2
      src/main/java/com/goafanti/common/mapper/ExpenseAccountMapper.xml
  18. 102 0
      src/main/java/com/goafanti/common/mapper/PublicReleaseClockMapper.xml
  19. 115 0
      src/main/java/com/goafanti/common/mapper/PublicReleaseDateClockMapper.xml
  20. 1 1
      src/main/java/com/goafanti/common/mapper/PublicReleaseDetailsMapper.xml
  21. 775 866
      src/main/java/com/goafanti/common/mapper/PublicReleaseMapper.xml
  22. 186 0
      src/main/java/com/goafanti/common/mapper/StandardDocumentMapper.xml
  23. 637 746
      src/main/java/com/goafanti/common/mapper/TOrderMidMapper.xml
  24. 4 2
      src/main/java/com/goafanti/common/mapper/TOrderNewMapper.xml
  25. 131 0
      src/main/java/com/goafanti/common/mapper/TOrderPublicReleaseCountMapper.xml
  26. 105 289
      src/main/java/com/goafanti/common/mapper/TTaskLogMapper.xml
  27. 7 0
      src/main/java/com/goafanti/common/mapper/UserNamesMapper.xml
  28. 252 2
      src/main/java/com/goafanti/common/model/PublicRelease.java
  29. 129 0
      src/main/java/com/goafanti/common/model/PublicReleaseClock.java
  30. 141 0
      src/main/java/com/goafanti/common/model/PublicReleaseDateClock.java
  31. 225 0
      src/main/java/com/goafanti/common/model/StandardDocument.java
  32. 237 2
      src/main/java/com/goafanti/common/model/TOrderMid.java
  33. 183 0
      src/main/java/com/goafanti/common/model/TOrderPublicReleaseCount.java
  34. 128 169
      src/main/java/com/goafanti/common/model/TTaskLog.java
  35. 5 0
      src/main/java/com/goafanti/common/utils/DateUtils.java
  36. 1 1
      src/main/java/com/goafanti/common/utils/FileUtils.java
  37. 21 26
      src/main/java/com/goafanti/common/utils/HttpUtils.java
  38. 1 0
      src/main/java/com/goafanti/core/cache/serializer/FastJsonRedisSerializer.java
  39. 2 2
      src/main/java/com/goafanti/core/mybatis/page/Pagination.java
  40. 38 0
      src/main/java/com/goafanti/customer/bo/InputExcelUser.java
  41. 26 0
      src/main/java/com/goafanti/customer/controller/AdminCustomerApiController.java
  42. 3 0
      src/main/java/com/goafanti/customer/service/CustomerService.java
  43. 59 7
      src/main/java/com/goafanti/customer/service/impl/CustomerServiceImpl.java
  44. 35 0
      src/main/java/com/goafanti/expenseAccount/bo/ExpenseCountsBo.java
  45. 83 5
      src/main/java/com/goafanti/expenseAccount/bo/ExpenseCountsOrder.java
  46. 19 0
      src/main/java/com/goafanti/expenseAccount/bo/SonExpenseAccount.java
  47. 31 2
      src/main/java/com/goafanti/expenseAccount/service/impl/ExpenseAccountServiceImpl.java
  48. 10 1
      src/main/java/com/goafanti/expenseAccount/service/impl/ExpenseCountsServiceImpl.java
  49. 28 0
      src/main/java/com/goafanti/order/bo/OutTTaskLog.java
  50. 1 1
      src/main/java/com/goafanti/order/controller/AdminNewOrderApiController.java
  51. 10 0
      src/main/java/com/goafanti/order/controller/OrderProjectApiController.java
  52. 2 0
      src/main/java/com/goafanti/order/service/OrderNewService.java
  53. 1 0
      src/main/java/com/goafanti/order/service/OrderProjectService.java
  54. 3 0
      src/main/java/com/goafanti/order/service/impl/OrderChangeServiceImpl.java
  55. 70 0
      src/main/java/com/goafanti/order/service/impl/OrderNewServiceImpl.java
  56. 9 2
      src/main/java/com/goafanti/order/service/impl/OrderProjectServiceImpl.java
  57. 2 2
      src/main/java/com/goafanti/organization/service/impl/OrganizationServiceImpl.java
  58. 88 0
      src/main/java/com/goafanti/standard/bo/InputStandardList.java
  59. 26 0
      src/main/java/com/goafanti/standard/bo/OutStandardDocument.java
  60. 104 0
      src/main/java/com/goafanti/standard/controller/StandardApiController.java
  61. 18 0
      src/main/java/com/goafanti/standard/service/StandardService.java
  62. 107 0
      src/main/java/com/goafanti/standard/service/impl/StandardServiceImpl.java
  63. 98 0
      src/main/java/com/goafanti/weChat/bo/CheckOrderNoOut.java
  64. 14 0
      src/main/java/com/goafanti/weChat/bo/InputPublicDtails.java
  65. 1 1
      src/main/java/com/goafanti/weChat/bo/InputPublicReleaseList.java
  66. 49 0
      src/main/java/com/goafanti/weChat/bo/InputreleaseAndExpenseCount.java
  67. 21 0
      src/main/java/com/goafanti/weChat/bo/OutPublicDtails.java
  68. 21 2
      src/main/java/com/goafanti/weChat/bo/OutPublicRelease.java
  69. 12 2
      src/main/java/com/goafanti/weChat/bo/OutPublicReleaseDetails.java
  70. 32 1
      src/main/java/com/goafanti/weChat/bo/OutPublicReleaseList.java
  71. 252 0
      src/main/java/com/goafanti/weChat/bo/releaseAndExpenseCountOut.java
  72. 77 26
      src/main/java/com/goafanti/weChat/controller/AdminReleaseApiController.java
  73. 11 0
      src/main/java/com/goafanti/weChat/service/PublicReleaseService.java
  74. 607 119
      src/main/java/com/goafanti/weChat/service/impl/PublicReleaseServiceImpl.java
  75. 5 5
      src/main/resources/props/config_local.properties
  76. 2 1
      src/main/resources/props/config_test.properties
  77. 18 0
      src/main/webapp/WEB-INF/views/admin/standard.html

+ 0 - 1
pom.xml

@@ -462,7 +462,6 @@
 			<scope>compile</scope>
 		</dependency>
 
-
 	</dependencies>
 	<build>
 		<resources>

+ 2 - 3
src/main/java/com/goafanti/RD/controller/RDContorller.java

@@ -11,7 +11,6 @@ import com.goafanti.common.utils.excel.FileUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.http.MediaType;
-import org.springframework.validation.BindingResult;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RequestParam;
@@ -22,7 +21,7 @@ import javax.servlet.http.HttpServletResponse;
 
 @RestController
 @RequestMapping(value = "/api/admin/RD")
-public class RDContorller extends BaseApiController {
+public class RDController extends BaseApiController {
 
     @Autowired
     private RDService rdService;
@@ -41,7 +40,7 @@ public class RDContorller extends BaseApiController {
 
 
     @RequestMapping(value="/update",method = RequestMethod.POST)
-    public Result update( InputRdDetails in ,BindingResult bindingResult) {
+    public Result update( InputRdDetails in) {
         Result res= new Result();
         res.data(rdService.update(in));
         return res;

+ 5 - 0
src/main/java/com/goafanti/common/bo/Result.java

@@ -5,6 +5,11 @@ import org.apache.shiro.SecurityUtils;
 import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.List;
+
+/**
+ *
+ * @param <T> 在Controller里面设置返回对象就可以用apipost读取到
+ */
 public class Result<T> {
 	private T data;
 	private List<Error>	error	= new ArrayList<Error>();

+ 4 - 0
src/main/java/com/goafanti/common/controller/WebpageController.java

@@ -49,6 +49,10 @@ public class WebpageController extends BaseController {
 	public String adminLogin(HttpServletRequest request, ModelAndView modelview) {
 		return "/admin/login";
 	}
+	@RequestMapping(value = "/admin/standard", method = RequestMethod.GET)
+	public String adminStandard(HttpServletRequest request, ModelAndView modelview) {
+		return "/admin/standard";
+	}
 
 
 	@RequestMapping(value = "/RD/admin/login", method = RequestMethod.GET)

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

@@ -74,4 +74,6 @@ public interface ExpenseAccountMapper {
     void updateSonTypeOther(@Param("id") Integer id, @Param("types") String types);
 
     void updateRemoveOrderNo(ExpenseAccount ea);
+
+    List<ExpenseAccount> selectByOrderNo(String orderNo);
 }

+ 28 - 0
src/main/java/com/goafanti/common/dao/PublicReleaseClockMapper.java

@@ -0,0 +1,28 @@
+package com.goafanti.common.dao;
+
+import com.goafanti.common.model.PublicReleaseClock;
+
+import java.util.List;
+
+/**
+* @author Administrator
+* @description 针对表【public_release_clock(公出打卡表)】的数据库操作Mapper
+* @createDate 2024-04-19 14:56:48
+* @Entity com.goafanti.common.model.PublicReleaseClock
+*/
+public interface PublicReleaseClockMapper {
+
+    int deleteByPrimaryKey(Integer id);
+
+    int insert(PublicReleaseClock record);
+
+    int insertSelective(PublicReleaseClock record);
+
+    PublicReleaseClock selectByPrimaryKey(Integer id);
+
+    int updateByPrimaryKeySelective(PublicReleaseClock record);
+
+    int updateByPrimaryKey(PublicReleaseClock record);
+
+    List<PublicReleaseClock> selectList(List<Integer> list);
+}

+ 33 - 0
src/main/java/com/goafanti/common/dao/PublicReleaseDateClockMapper.java

@@ -0,0 +1,33 @@
+package com.goafanti.common.dao;
+
+import com.goafanti.common.model.PublicReleaseDateClock;
+
+import java.util.List;
+
+/**
+* @author Administrator
+* @description 针对表【public_release_date_clock(公出日期打卡表)】的数据库操作Mapper
+* @createDate 2024-04-22 11:38:40
+* @Entity com.goafanti.common.model.PublicReleaseDateClock
+*/
+public interface PublicReleaseDateClockMapper {
+
+    int deleteByPrimaryKey(Long id);
+
+    int insert(PublicReleaseDateClock record);
+
+    int insertSelective(PublicReleaseDateClock record);
+
+    PublicReleaseDateClock selectByPrimaryKey(Long id);
+
+    int updateByPrimaryKeySelective(PublicReleaseDateClock record);
+
+    int updateByPrimaryKey(PublicReleaseDateClock record);
+
+    void insertBatch(List<PublicReleaseDateClock> list);
+
+    List<PublicReleaseDateClock> selectByPrid(Integer id);
+
+
+    void deleteByPrid(Integer id);
+}

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

@@ -2,7 +2,6 @@ package com.goafanti.common.dao;
 
 import com.goafanti.common.model.PublicReleaseDetails;
 import com.goafanti.weChat.bo.InputPublicRelease;
-import com.goafanti.weChat.bo.OutPublicRelease;
 import com.goafanti.weChat.bo.OutPublicReleaseDetails;
 
 import java.util.List;
@@ -20,7 +19,7 @@ public interface PublicReleaseDetailsMapper {
 
     int updateByPrimaryKey(PublicReleaseDetails record);
 
-    List<OutPublicReleaseDetails> selectByPCid(Integer id);
+    List<OutPublicReleaseDetails> selectByPrid(Integer id);
 
     void insertBatch(List<PublicReleaseDetails> list);
 

+ 12 - 2
src/main/java/com/goafanti/common/dao/PublicReleaseMapper.java

@@ -3,14 +3,14 @@ package com.goafanti.common.dao;
 import com.goafanti.admin.bo.OutFinanceCount;
 import com.goafanti.common.model.OutPublicReleaseCount;
 import com.goafanti.common.model.PublicRelease;
-import com.goafanti.weChat.bo.OutPublicRelease;
-import com.goafanti.weChat.bo.OutPublicReleaseAndDetails;
+import com.goafanti.weChat.bo.*;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.Date;
 import java.util.List;
 
 public interface PublicReleaseMapper {
+
     int deleteByPrimaryKey(Integer id);
 
     int insert(PublicRelease record);
@@ -53,4 +53,14 @@ public interface PublicReleaseMapper {
 
     Integer selectCountByaidAndDate(@Param("aid") String aid, @Param("startTime") String startTime, @Param("endTime") String endTime);
     List<OutFinanceCount> selectByaidAndDate(@Param("aid") String aid, @Param("startTime") String startTime, @Param("endTime") String endTime);
+
+    List<PublicRelease> selectByOrderNo(String orderNo);
+
+    List<PublicRelease> selectMyNewPublic(String adminId);
+
+    OutPublicReleaseList selectOutListBoById(Integer id);
+
+    List<PublicRelease>  selectAll();
+
+    List<releaseAndExpenseCountOut > releaseAndExpenseCount(InputreleaseAndExpenseCount in);
 }

+ 27 - 0
src/main/java/com/goafanti/common/dao/StandardDocumentMapper.java

@@ -0,0 +1,27 @@
+package com.goafanti.common.dao;
+
+import com.goafanti.common.model.StandardDocument;
+import com.goafanti.standard.bo.OutStandardDocument;
+
+/**
+* @author Administrator
+* @description 针对表【standard_document(标准文档列表)】的数据库操作Mapper
+* @createDate 2024-05-08 17:19:34
+* @Entity com.goafanti.common.model.StandardDocument
+*/
+public interface StandardDocumentMapper {
+
+    int deleteByPrimaryKey(Long id);
+
+    int insert(StandardDocument record);
+
+    int insertSelective(StandardDocument record);
+
+    StandardDocument selectByPrimaryKey(Long id);
+
+    int updateByPrimaryKeySelective(StandardDocument record);
+
+    int updateByPrimaryKey(StandardDocument record);
+
+    OutStandardDocument selectDetailsById(Integer id);
+}

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

@@ -53,4 +53,6 @@ public interface TOrderMidMapper {
     List<TOrderMid> selectAll();
 
     void updateStopProjectByOrderNo(String orderNo);
+
+    void updateBidTypeByOrderNo(String orderNo);
 }

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

@@ -107,4 +107,6 @@ public interface TOrderNewMapper {
     List<ExpenseCountsBo> selectExpenseCount(ExpenseCountsInput in);
 
     List<ExpenseCountsBo> selectExpenseDepCount(ExpenseCountsInput in);
+
+
 }

+ 28 - 0
src/main/java/com/goafanti/common/dao/TOrderPublicReleaseCountMapper.java

@@ -0,0 +1,28 @@
+package com.goafanti.common.dao;
+
+import com.goafanti.common.model.TOrderPublicReleaseCount;
+
+/**
+* @author Administrator
+* @description 针对表【t_order_public_release_count(订单公出信息表)】的数据库操作Mapper
+* @createDate 2024-04-25 14:37:55
+* @Entity com.goafanti.common.model.TOrderPublicReleaseCount
+*/
+public interface TOrderPublicReleaseCountMapper {
+
+    int deleteByPrimaryKey(Long id);
+
+    int insert(TOrderPublicReleaseCount record);
+
+    int insertSelective(TOrderPublicReleaseCount record);
+
+    TOrderPublicReleaseCount selectByPrimaryKey(Long id);
+
+    int updateByPrimaryKeySelective(TOrderPublicReleaseCount record);
+
+    int updateByPrimaryKey(TOrderPublicReleaseCount record);
+
+    TOrderPublicReleaseCount selectByOrderNo(String orderNo);
+
+    void updateByOrderNo(TOrderPublicReleaseCount update);
+}

+ 6 - 78
src/main/java/com/goafanti/common/dao/TTaskLogMapper.java

@@ -1,98 +1,26 @@
 package com.goafanti.common.dao;
 
 import com.goafanti.common.model.TTaskLog;
-import com.goafanti.common.model.TTaskLogExample;
-import java.util.List;
+import com.goafanti.order.bo.OutTTaskLog;
 import org.apache.ibatis.annotations.Param;
 
-public interface TTaskLogMapper {
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table t_task_log
-     *
-     * @mbg.generated Tue Dec 04 15:28:04 CST 2018
-     */
-    long countByExample(TTaskLogExample example);
+import java.util.List;
 
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table t_task_log
-     *
-     * @mbg.generated Tue Dec 04 15:28:04 CST 2018
-     */
-    int deleteByExample(TTaskLogExample example);
+public interface TTaskLogMapper {
 
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table t_task_log
-     *
-     * @mbg.generated Tue Dec 04 15:28:04 CST 2018
-     */
     int deleteByPrimaryKey(Integer id);
 
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table t_task_log
-     *
-     * @mbg.generated Tue Dec 04 15:28:04 CST 2018
-     */
     int insert(TTaskLog record);
 
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table t_task_log
-     *
-     * @mbg.generated Tue Dec 04 15:28:04 CST 2018
-     */
     int insertSelective(TTaskLog record);
 
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table t_task_log
-     *
-     * @mbg.generated Tue Dec 04 15:28:04 CST 2018
-     */
-    List<TTaskLog> selectByExample(TTaskLogExample example);
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table t_task_log
-     *
-     * @mbg.generated Tue Dec 04 15:28:04 CST 2018
-     */
     TTaskLog selectByPrimaryKey(Integer id);
 
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table t_task_log
-     *
-     * @mbg.generated Tue Dec 04 15:28:04 CST 2018
-     */
-    int updateByExampleSelective(@Param("record") TTaskLog record, @Param("example") TTaskLogExample example);
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table t_task_log
-     *
-     * @mbg.generated Tue Dec 04 15:28:04 CST 2018
-     */
-    int updateByExample(@Param("record") TTaskLog record, @Param("example") TTaskLogExample example);
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table t_task_log
-     *
-     * @mbg.generated Tue Dec 04 15:28:04 CST 2018
-     */
     int updateByPrimaryKeySelective(TTaskLog record);
 
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method corresponds to the database table t_task_log
-     *
-     * @mbg.generated Tue Dec 04 15:28:04 CST 2018
-     */
     int updateByPrimaryKey(TTaskLog record);
 
 	void updateDimissionTransfer(@Param("aid")String aid, @Param("transferId")String transferId);
-}
+
+    List<OutTTaskLog> selectByTid(Integer id);
+}

+ 4 - 0
src/main/java/com/goafanti/common/dao/UserNamesMapper.java

@@ -1,6 +1,7 @@
 package com.goafanti.common.dao;
 
 import com.goafanti.common.model.UserNames;
+import com.goafanti.customer.bo.InputExcelUser;
 import com.goafanti.customer.bo.UserNamesListBo;
 import com.goafanti.user.bo.InputUserChannel;
 import org.apache.ibatis.annotations.Param;
@@ -63,4 +64,7 @@ public interface UserNamesMapper {
     List<UserNamesListBo> checkUserName( @Param("userName")String userName);
 
 	void insertBatch(List<InputUserChannel> list);
+
+
+    List<UserNamesListBo> selectUserNameList(List<InputExcelUser> list2);
 }

+ 3 - 1
src/main/java/com/goafanti/common/enums/AttachmentType.java

@@ -57,7 +57,9 @@ public enum AttachmentType {
 	VARIETIES_PICTURE("varieties_picture","业务品类图片"),
 	ORGANIZATION_APPLICATION("organization_application","企业申报书"),
 	DUN_LOG_ATTACHMENT("dun_log_attachment","催款日志附件"),
-	LEGAL_LOG_ATTACHMENT("legal_log_attachment","催款日志附件");
+	LEGAL_LOG_ATTACHMENT("legal_log_attachment","催款日志附件"),
+	STANDARD_DOCUMENT("standard_document","标准文档");
+
 
 
 	private AttachmentType(String code, String desc) {

+ 12 - 2
src/main/java/com/goafanti/common/mapper/ExpenseAccountMapper.xml

@@ -748,7 +748,7 @@
            b.remarks,b.eaaid ,eap.name ,eap.bank ,eap.accounts ,b.status,b.process_status,
            c.id sonId,c.total_amount sonTotalAmount,c.settlement_amount sonSettlementAmount,c.amount sonAmount, c.`type` sonType,c.type_other sonTypeOther,
            c.user_names ,c.release_start ,c.release_end , c.district_name districtName,c.user_names userNames,c.secondary_type ,c.secondary_type_other,c.attachment_url,
-           c.duration,pr.plan,c.real_amount sonRealAmount,o.order_no,o.contract_no,pr.type publicReleaseType,
+           c.duration,pr.plan,c.real_amount sonRealAmount,o.order_no,o.contract_no,pr.type publicReleaseType,tm.bid_type bidType,
            c.debit_id debitId, debit.real_amount DebitRealAmount ,debit.settlement_amount DebitSettlementAmount,debit.liquidation_status DebitliquidationStatus,
            d.id detId,d.`type` detType,d.amount detAmount,d.real_amount detRealAmount ,d.start_district ,d.end_district,d.vehicle,d.vehicle_other,
            d.pay_type ,d.invoice_type ,d.invoice_no,d.payer_name ,d.open_bank ,d.bank_accounts ,d.open_bank_address,d.type_other detTypeOther,
@@ -758,7 +758,7 @@
     from expense_relationship a left join expense_account b on a.id =b.id left join expense_account c on a.ea_id =c.id
     left join department dep on b.apply_dep =dep.id left join department dep2 on b.pay_dep =dep2.id
      left join expense_account_private eap on b.eaaid =eap.id left join expense_account_details d on c.id =d.eaid
-    left join t_order_new o on c.order_no =o.order_no left join t_order_mid tm on c.order_no=tm.order_no
+    left join t_order_new o on c.order_no =o.order_no   left join t_order_mid tm on c.order_no=tm.order_no
     left join public_release pr on c.prid=pr.id left join t_order_new pro on pr.order_no=pro.order_no
     left join expense_account debit on c.debit_id=debit.id
     where a.id= #{id}
@@ -822,9 +822,11 @@
     <result column="debitLiquidationStatus" jdbcType="INTEGER" property="debitLiquidationStatus" />
     <result column="order_no" jdbcType="VARCHAR" property="orderNo" />
     <result column="contract_no" jdbcType="VARCHAR" property="contractNo" />
+    <result column="projectType" jdbcType="VARCHAR" property="projectType" />
     <result column="buyer_name" jdbcType="VARCHAR" property="buyerName" />
     <result column="buyer_id" jdbcType="VARCHAR" property="buyerId" />
     <result column="publicReleaseType" jdbcType="INTEGER" property="publicReleaseType" />
+    <result column="bidType" jdbcType="INTEGER" property="bidType" />
     <association property="detList" resultMap="ExpenseAccountDetailsMap"/>
   </resultMap>
 
@@ -1105,6 +1107,7 @@
     where a.id= #{id} and c.id is null
   </select>
 
+
   <update id="updateSonTypeOther">
     update expense_account a
     set a.type_other = #{types}
@@ -1115,4 +1118,11 @@
       set a.order_no = null
       where a.id = #{id}
     </update>
+
+  <select id="selectByOrderNo" resultMap="BaseResultMap">
+  select
+  <include refid="Base_Column_List" />
+  from expense_account
+  where expense_main=0 and status=2    and order_no=#{orderNo}
+  </select>
 </mapper>

+ 102 - 0
src/main/java/com/goafanti/common/mapper/PublicReleaseClockMapper.xml

@@ -0,0 +1,102 @@
+<?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.PublicReleaseClockMapper">
+
+    <resultMap id="BaseResultMap" type="com.goafanti.common.model.PublicReleaseClock">
+            <id property="id" column="id" jdbcType="INTEGER"/>
+            <result property="prid" column="prid" jdbcType="INTEGER"/>
+            <result property="prdid" column="prdid" jdbcType="INTEGER"/>
+            <result property="photoUrl" column="photo_url" jdbcType="VARCHAR"/>
+            <result property="clockInTime" column="clock_in_time" jdbcType="TIMESTAMP"/>
+            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,prid,prdid,
+        photo_url,clock_in_time,create_time
+    </sql>
+
+    <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
+        select
+        <include refid="Base_Column_List" />
+        from public_release_clock
+        where  id = #{id,jdbcType=INTEGER} 
+    </select>
+
+
+    <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
+        delete from public_release_clock
+        where  id = #{id,jdbcType=INTEGER} 
+    </delete>
+    <insert id="insert" keyColumn="id" keyProperty="id" parameterType="com.goafanti.common.model.PublicReleaseClock" useGeneratedKeys="true">
+        insert into public_release_clock
+        ( id,prid,prdid
+        ,photo_url,clock_in_time,create_time
+        )
+        values (#{id,jdbcType=INTEGER},#{prid,jdbcType=INTEGER},#{prdid,jdbcType=INTEGER}
+        ,#{photoUrl,jdbcType=VARCHAR},#{clockInTime,jdbcType=TIMESTAMP},#{createTime,jdbcType=TIMESTAMP}
+        )
+    </insert>
+    <insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="com.goafanti.common.model.PublicReleaseClock" useGeneratedKeys="true">
+        insert into public_release_clock
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+                <if test="id != null">id,</if>
+                <if test="prid != null">prid,</if>
+                <if test="prdid != null">prdid,</if>
+                <if test="photoUrl != null">photo_url,</if>
+                <if test="clockInTime != null">clock_in_time,</if>
+                <if test="createTime != null">create_time,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+                <if test="id != null">#{id,jdbcType=INTEGER},</if>
+                <if test="prid != null">#{prid,jdbcType=INTEGER},</if>
+                <if test="prdid != null">#{prdid,jdbcType=INTEGER},</if>
+                <if test="photoUrl != null">#{photoUrl,jdbcType=VARCHAR},</if>
+                <if test="clockInTime != null">#{clockInTime,jdbcType=TIMESTAMP},</if>
+                <if test="createTime != null">#{createTime,jdbcType=TIMESTAMP},</if>
+        </trim>
+    </insert>
+    <update id="updateByPrimaryKeySelective" parameterType="com.goafanti.common.model.PublicReleaseClock">
+        update public_release_clock
+        <set>
+                <if test="prid != null">
+                    prid = #{prid,jdbcType=INTEGER},
+                </if>
+                <if test="prdid != null">
+                    prdid = #{prdid,jdbcType=INTEGER},
+                </if>
+                <if test="photoUrl != null">
+                    photo_url = #{photoUrl,jdbcType=VARCHAR},
+                </if>
+                <if test="clockInTime != null">
+                    clock_in_time = #{clockInTime,jdbcType=TIMESTAMP},
+                </if>
+                <if test="createTime != null">
+                    create_time = #{createTime,jdbcType=TIMESTAMP},
+                </if>
+        </set>
+        where   id = #{id,jdbcType=INTEGER} 
+    </update>
+    <update id="updateByPrimaryKey" parameterType="com.goafanti.common.model.PublicReleaseClock">
+        update public_release_clock
+        set 
+            prid =  #{prid,jdbcType=INTEGER},
+            prdid =  #{prdid,jdbcType=INTEGER},
+            photo_url =  #{photoUrl,jdbcType=VARCHAR},
+            clock_in_time =  #{clockInTime,jdbcType=TIMESTAMP},
+            create_time =  #{createTime,jdbcType=TIMESTAMP}
+        where   id = #{id,jdbcType=INTEGER} 
+    </update>
+
+    <select id="selectList" resultMap="BaseResultMap">
+        select
+        <include refid="Base_Column_List" />
+        from public_release_clock
+        where prid in
+        <foreach collection="list" item="item" index="index" open="(" close=")" separator=",">
+            #{item}
+        </foreach>
+    </select>
+</mapper>

+ 115 - 0
src/main/java/com/goafanti/common/mapper/PublicReleaseDateClockMapper.xml

@@ -0,0 +1,115 @@
+<?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.PublicReleaseDateClockMapper">
+
+    <resultMap id="BaseResultMap" type="com.goafanti.common.model.PublicReleaseDateClock">
+            <id property="id" column="id" jdbcType="INTEGER"/>
+            <result property="prid" column="prid" jdbcType="INTEGER"/>
+            <result property="prdid" column="prdid" jdbcType="INTEGER"/>
+            <result property="status" column="status" jdbcType="INTEGER"/>
+            <result property="clockInTime" column="clock_in_time" jdbcType="TIMESTAMP"/>
+            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,prid,prdid,
+        status,clock_in_time,create_time
+    </sql>
+
+    <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
+        select
+        <include refid="Base_Column_List" />
+        from public_release_date_clock
+        where  id = #{id,jdbcType=INTEGER} 
+    </select>
+
+
+    <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+        delete from public_release_date_clock
+        where  id = #{id,jdbcType=INTEGER} 
+    </delete>
+
+    <insert id="insert" keyColumn="id" keyProperty="id" parameterType="com.goafanti.common.model.PublicReleaseDateClock" useGeneratedKeys="true">
+        insert into public_release_date_clock
+        ( id,prid,prdid
+        ,status,clock_in_time,create_time
+        )
+        values (#{id,jdbcType=INTEGER},#{prid,jdbcType=INTEGER},#{prdid,jdbcType=INTEGER}
+        ,#{status,jdbcType=INTEGER},#{clockInTime,jdbcType=TIMESTAMP},#{createTime,jdbcType=TIMESTAMP}
+        )
+    </insert>
+    <insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="com.goafanti.common.model.PublicReleaseDateClock" useGeneratedKeys="true">
+        insert into public_release_date_clock
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+                <if test="id != null">id,</if>
+                <if test="prid != null">prid,</if>
+                <if test="prdid != null">prdid,</if>
+                <if test="status != null">status,</if>
+                <if test="clockInTime != null">clock_in_time,</if>
+                <if test="createTime != null">create_time,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+                <if test="id != null">#{id,jdbcType=INTEGER},</if>
+                <if test="prid != null">#{prid,jdbcType=INTEGER},</if>
+                <if test="prdid != null">#{prdid,jdbcType=INTEGER},</if>
+                <if test="status != null">#{status,jdbcType=INTEGER},</if>
+                <if test="clockInTime != null">#{clockInTime,jdbcType=TIMESTAMP},</if>
+                <if test="createTime != null">#{createTime,jdbcType=TIMESTAMP},</if>
+        </trim>
+    </insert>
+
+    <update id="updateByPrimaryKeySelective" parameterType="com.goafanti.common.model.PublicReleaseDateClock">
+        update public_release_date_clock
+        <set>
+                <if test="prid != null">
+                    prid = #{prid,jdbcType=INTEGER},
+                </if>
+                <if test="prdid != null">
+                    prdid = #{prdid,jdbcType=INTEGER},
+                </if>
+                <if test="status != null">
+                    status = #{status,jdbcType=INTEGER},
+                </if>
+                <if test="clockInTime != null">
+                    clock_in_time = #{clockInTime,jdbcType=TIMESTAMP},
+                </if>
+                <if test="createTime != null">
+                    create_time = #{createTime,jdbcType=TIMESTAMP},
+                </if>
+        </set>
+        where   id = #{id,jdbcType=INTEGER} 
+    </update>
+    <update id="updateByPrimaryKey" parameterType="com.goafanti.common.model.PublicReleaseDateClock">
+        update public_release_date_clock
+        set 
+            prid =  #{prid,jdbcType=INTEGER},
+            prdid =  #{prdid,jdbcType=INTEGER},
+            status =  #{status,jdbcType=INTEGER},
+            clock_in_time =  #{clockInTime,jdbcType=TIMESTAMP},
+            create_time =  #{createTime,jdbcType=TIMESTAMP}
+        where   id = #{id,jdbcType=INTEGER} 
+    </update>
+
+    <delete id="deleteByPrid">
+        delete from public_release_date_clock
+        where  prid = #{id,jdbcType=INTEGER}
+    </delete>
+
+    <insert id="insertBatch">
+        insert into public_release_date_clock
+        (prid,prdid,status,clock_in_time)
+        values
+        <foreach collection="list" item="item" index="index" separator=",">
+            (#{item.prid,jdbcType=INTEGER},#{item.prdid,jdbcType=INTEGER},#{item.status,jdbcType=INTEGER},#{item.clockInTime,jdbcType=TIMESTAMP})
+        </foreach>
+    </insert>
+
+    <select id="selectByPrid" resultMap="BaseResultMap">
+        select
+        <include refid="Base_Column_List" />
+        from public_release_date_clock
+        where  prid = #{id,jdbcType=INTEGER}
+    </select>
+</mapper>

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

@@ -216,7 +216,7 @@
   </update>
 
 
-  <select id="selectByPCid" resultType="com.goafanti.weChat.bo.OutPublicReleaseDetails">
+  <select id="selectByPrid" resultType="com.goafanti.weChat.bo.OutPublicReleaseDetails">
     select
       a.id,a.prid, a.`uid`, a.ufid, a.new_user newUser,a.longitude,a.latitude,b.nickname userName,a.main_status mainStatus,a.duration,
       a.district_name districtName ,a.clock_in clockIn,date_format(a.clock_in_time, '%Y-%m-%d %H:%i:%S')  clockInTimes,a.photo_url photoUrl

File diff suppressed because it is too large
+ 775 - 866
src/main/java/com/goafanti/common/mapper/PublicReleaseMapper.xml


+ 186 - 0
src/main/java/com/goafanti/common/mapper/StandardDocumentMapper.xml

@@ -0,0 +1,186 @@
+<?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.StandardDocumentMapper">
+
+    <resultMap id="BaseResultMap" type="com.goafanti.common.model.StandardDocument">
+            <id property="id" column="id" jdbcType="INTEGER"/>
+            <result property="url" column="url" jdbcType="VARCHAR"/>
+            <result property="serialNumber" column="serial_number" jdbcType="VARCHAR"/>
+            <result property="name" column="name" jdbcType="VARCHAR"/>
+            <result property="reference" column="reference" jdbcType="VARCHAR"/>
+            <result property="depId" column="dep_id" jdbcType="VARCHAR"/>
+            <result property="aid" column="aid" jdbcType="VARCHAR"/>
+            <result property="status" column="status" jdbcType="INTEGER"/>
+            <result property="type" column="type" jdbcType="INTEGER"/>
+            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+            <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,url,serial_number,
+        name,reference,dep_id,
+        aid,status,type,
+        create_time,update_time
+    </sql>
+
+    <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
+        select
+        <include refid="Base_Column_List" />
+        from standard_document
+        where  id = #{id,jdbcType=INTEGER} 
+    </select>
+
+    <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+        delete from standard_document
+        where  id = #{id,jdbcType=INTEGER} 
+    </delete>
+    <insert id="insert" keyColumn="id" keyProperty="id" parameterType="com.goafanti.common.model.StandardDocument" useGeneratedKeys="true">
+        insert into standard_document
+        ( id,url,serial_number
+        ,name,reference,dep_id
+        ,aid,status,type
+        ,create_time,update_time)
+        values (#{id,jdbcType=INTEGER},#{url,jdbcType=VARCHAR},#{serialNumber,jdbcType=VARCHAR}
+        ,#{name,jdbcType=VARCHAR},#{reference,jdbcType=VARCHAR},#{depId,jdbcType=VARCHAR}
+        ,#{aid,jdbcType=VARCHAR},#{status,jdbcType=INTEGER},#{type,jdbcType=INTEGER}
+        ,#{createTime,jdbcType=TIMESTAMP},#{updateTime,jdbcType=TIMESTAMP})
+    </insert>
+    <insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="com.goafanti.common.model.StandardDocument" useGeneratedKeys="true">
+        insert into standard_document
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+                <if test="id != null">id,</if>
+                <if test="url != null">url,</if>
+                <if test="serialNumber != null">serial_number,</if>
+                <if test="name != null">name,</if>
+                <if test="reference != null">reference,</if>
+                <if test="depId != null">dep_id,</if>
+                <if test="aid != null">aid,</if>
+                <if test="status != null">status,</if>
+                <if test="type != null">type,</if>
+                <if test="createTime != null">create_time,</if>
+                <if test="updateTime != null">update_time,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+                <if test="id != null">#{id,jdbcType=INTEGER},</if>
+                <if test="url != null">#{url,jdbcType=VARCHAR},</if>
+                <if test="serialNumber != null">#{serialNumber,jdbcType=VARCHAR},</if>
+                <if test="name != null">#{name,jdbcType=VARCHAR},</if>
+                <if test="reference != null">#{reference,jdbcType=VARCHAR},</if>
+                <if test="depId != null">#{depId,jdbcType=VARCHAR},</if>
+                <if test="aid != null">#{aid,jdbcType=VARCHAR},</if>
+                <if test="status != null">#{status,jdbcType=INTEGER},</if>
+                <if test="type != null">#{type,jdbcType=INTEGER},</if>
+                <if test="createTime != null">#{createTime,jdbcType=TIMESTAMP},</if>
+                <if test="updateTime != null">#{updateTime,jdbcType=TIMESTAMP},</if>
+        </trim>
+    </insert>
+    <update id="updateByPrimaryKeySelective" parameterType="com.goafanti.common.model.StandardDocument">
+        update standard_document
+        <set>
+                <if test="url != null">
+                    url = #{url,jdbcType=VARCHAR},
+                </if>
+                <if test="serialNumber != null">
+                    serial_number = #{serialNumber,jdbcType=VARCHAR},
+                </if>
+                <if test="name != null">
+                    name = #{name,jdbcType=VARCHAR},
+                </if>
+                <if test="reference != null">
+                    reference = #{reference,jdbcType=VARCHAR},
+                </if>
+                <if test="depId != null">
+                    dep_id = #{depId,jdbcType=VARCHAR},
+                </if>
+                <if test="aid != null">
+                    aid = #{aid,jdbcType=VARCHAR},
+                </if>
+                <if test="status != null">
+                    status = #{status,jdbcType=INTEGER},
+                </if>
+                <if test="type != null">
+                    type = #{type,jdbcType=INTEGER},
+                </if>
+                <if test="createTime != null">
+                    create_time = #{createTime,jdbcType=TIMESTAMP},
+                </if>
+                <if test="updateTime != null">
+                    update_time = #{updateTime,jdbcType=TIMESTAMP},
+                </if>
+        </set>
+        where   id = #{id,jdbcType=INTEGER} 
+    </update>
+    <update id="updateByPrimaryKey" parameterType="com.goafanti.common.model.StandardDocument">
+        update standard_document
+        set 
+            url =  #{url,jdbcType=VARCHAR},
+            serial_number =  #{serialNumber,jdbcType=VARCHAR},
+            name =  #{name,jdbcType=VARCHAR},
+            reference =  #{reference,jdbcType=VARCHAR},
+            dep_id =  #{depId,jdbcType=VARCHAR},
+            aid =  #{aid,jdbcType=VARCHAR},
+            status =  #{status,jdbcType=INTEGER},
+            type =  #{type,jdbcType=INTEGER},
+            create_time =  #{createTime,jdbcType=TIMESTAMP},
+            update_time =  #{updateTime,jdbcType=TIMESTAMP}
+        where   id = #{id,jdbcType=INTEGER} 
+    </update>
+
+    <resultMap id="DetailsMap" type="com.goafanti.standard.bo.OutStandardDocument">
+        <id property="id" column="id" jdbcType="INTEGER"/>
+        <result property="url" column="url" jdbcType="VARCHAR"/>
+        <result property="serialNumber" column="serial_number" jdbcType="VARCHAR"/>
+        <result property="name" column="name" jdbcType="VARCHAR"/>
+        <result property="reference" column="reference" jdbcType="VARCHAR"/>
+        <result property="depId" column="dep_id" jdbcType="VARCHAR"/>
+        <result property="aid" column="aid" jdbcType="VARCHAR"/>
+        <result property="type" column="type" jdbcType="INTEGER"/>
+        <result property="status" column="status" jdbcType="INTEGER"/>
+        <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+        <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+        <result property="adminName" column="adminName" jdbcType="VARCHAR"/>
+        <result property="depName" column="depName" jdbcType="VARCHAR"/>
+    </resultMap>
+    <select id="selectDetailsById"  resultMap="DetailsMap">
+        select
+            a.*,b.name adminName,c.name depName
+        from standard_document a left join admin b on a.aid=b.id
+        left join department c on a.dep_id=c.id
+        where  a.id = #{id,jdbcType=INTEGER}
+    </select>
+    <select id="standardList"  resultMap="DetailsMap">
+        select
+            a.*,b.name adminName,c.name depName
+        from standard_document a left join admin b on a.aid=b.id
+                                 left join department c on a.dep_id=c.id
+        where  1=1
+        <include refid="standardSql"/>
+    </select>
+    <sql id="standardSql">
+        <if test="status !=null">
+            and a.status = #{status,jdbcType=INTEGER}
+        </if>
+        <if  test="startTime !=null and endTime !=null">
+            and a.update_time between #{startTime,jdbcType=TIMESTAMP} and #{endTime,jdbcType=TIMESTAMP}
+        </if>
+        <if test="depId !=null">
+            and a.dep_id = #{depId,jdbcType=VARCHAR}
+        </if>
+        <if test="name !=null">
+            and a.name like concat('%',#{name,jdbcType=VARCHAR},'%')
+        </if>
+    </sql>
+
+    <select id="standardCount"  resultType="java.lang.Integer">
+        select
+            count(*)
+        from standard_document a
+        where  1=1
+        <include refid="standardSql"/>
+    </select>
+
+
+
+</mapper>

File diff suppressed because it is too large
+ 637 - 746
src/main/java/com/goafanti/common/mapper/TOrderMidMapper.xml


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

@@ -2070,9 +2070,11 @@ left join department d on o.order_dep = d.id   left join t_order_mid a on o.orde
     where b.status=0 and b.aid = #{financeId} and a.process_status = 3
   </select>
     <select id="selectExpenseCount" parameterType="com.goafanti.expenseAccount.bo.ExpenseCountsInput" resultType="com.goafanti.expenseAccount.bo.ExpenseCountsBo">
-      select a.order_no orderNo,a.contract_no contractNo,b.buyer_name buyerName,a.total_amount totalAmount,a.settlement_amount settlementAmount,
-             c.expenseCount,c.peopleCount,c.notExamine,c.rejectCount,d.paymentAmount,c.days,c.amount expenseAmount
+      select a.order_no orderNo,a.contract_no contractNo,b.buyer_name buyerName,toc.max_duration maxDuration ,toc.actual_duration actualDuration ,
+             toc.exceed_duration exceedDuration, a.total_amount totalAmount,a.settlement_amount settlementAmount,b.bid_type bidType,
+      c.expenseCount,c.peopleCount,c.notExamine,c.rejectCount,d.paymentAmount,c.days,c.amount expenseAmount
       from t_order_new a left join t_order_mid b on a.order_no =b.order_no
+      left join t_order_public_release_count toc on a.order_no =toc.order_no
       left join (select a.order_no,a.expenseCount,b.peopleCount,c.notExamine, c.rejectCount,a.days,a.amount
                 from (select a.order_no,count(a.id)expenseCount,sum(a.amount) amount,sum(ROUND(a.duration/7.5) )days
                       from expense_account a where a.order_no in (select a.order_no from expense_account a

+ 131 - 0
src/main/java/com/goafanti/common/mapper/TOrderPublicReleaseCountMapper.xml

@@ -0,0 +1,131 @@
+<?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.TOrderPublicReleaseCountMapper">
+
+    <resultMap id="BaseResultMap" type="com.goafanti.common.model.TOrderPublicReleaseCount">
+            <id property="id" column="id" jdbcType="INTEGER"/>
+            <result property="orderNo" column="order_no" jdbcType="VARCHAR"/>
+            <result property="status" column="status" jdbcType="INTEGER"/>
+            <result property="maxDuration" column="max_duration" jdbcType="DOUBLE"/>
+            <result property="actualDuration" column="actual_duration" jdbcType="DOUBLE"/>
+            <result property="exceedDuration" column="exceed_duration" jdbcType="DOUBLE"/>
+            <result property="peopleCount" column="people_count" jdbcType="INTEGER"/>
+            <result property="frequency" column="frequency" jdbcType="INTEGER"/>
+            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,order_no,status,
+        max_duration,actual_duration,exceed_duration,
+        people_count,frequency,create_time
+    </sql>
+
+    <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
+        select
+        <include refid="Base_Column_List" />
+        from t_order_public_release_count
+        where  id = #{id,jdbcType=INTEGER} 
+    </select>
+
+    <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+        delete from t_order_public_release_count
+        where  id = #{id,jdbcType=INTEGER} 
+    </delete>
+    <insert id="insert" keyColumn="id" keyProperty="id" parameterType="com.goafanti.common.model.TOrderPublicReleaseCount" useGeneratedKeys="true">
+        insert into t_order_public_release_count
+        ( id,order_no,status
+        ,max_duration,actual_duration,exceed_duration
+        ,people_count,frequency,create_time
+        )
+        values (#{id,jdbcType=INTEGER},#{orderNo,jdbcType=VARCHAR},#{status,jdbcType=INTEGER}
+        ,#{maxDuration,jdbcType=DOUBLE},#{actualDuration,jdbcType=DOUBLE},#{exceedDuration,jdbcType=DOUBLE}
+        ,#{peopleCount,jdbcType=INTEGER},#{frequency,jdbcType=INTEGER},#{createTime,jdbcType=TIMESTAMP}
+        )
+    </insert>
+    <insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="com.goafanti.common.model.TOrderPublicReleaseCount" useGeneratedKeys="true">
+        insert into t_order_public_release_count
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+                <if test="id != null">id,</if>
+                <if test="orderNo != null">order_no,</if>
+                <if test="status != null">status,</if>
+                <if test="maxDuration != null">max_duration,</if>
+                <if test="actualDuration != null">actual_duration,</if>
+                <if test="exceedDuration != null">exceed_duration,</if>
+                <if test="peopleCount != null">people_count,</if>
+                <if test="frequency != null">frequency,</if>
+                <if test="createTime != null">create_time,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+                <if test="id != null">#{id,jdbcType=INTEGER},</if>
+                <if test="orderNo != null">#{orderNo,jdbcType=VARCHAR},</if>
+                <if test="status != null">#{status,jdbcType=INTEGER},</if>
+                <if test="maxDuration != null">#{maxDuration,jdbcType=DOUBLE},</if>
+                <if test="actualDuration != null">#{actualDuration,jdbcType=DOUBLE},</if>
+                <if test="exceedDuration != null">#{exceedDuration,jdbcType=DOUBLE},</if>
+                <if test="peopleCount != null">#{peopleCount,jdbcType=INTEGER},</if>
+                <if test="frequency != null">#{frequency,jdbcType=INTEGER},</if>
+                <if test="createTime != null">#{createTime,jdbcType=TIMESTAMP},</if>
+        </trim>
+    </insert>
+    <update id="updateByPrimaryKeySelective" parameterType="com.goafanti.common.model.TOrderPublicReleaseCount">
+        update t_order_public_release_count
+        <set>
+                <if test="orderNo != null">
+                    order_no = #{orderNo,jdbcType=VARCHAR},
+                </if>
+                <if test="status != null">
+                    status = #{status,jdbcType=INTEGER},
+                </if>
+                <if test="maxDuration != null">
+                    max_duration = #{maxDuration,jdbcType=DOUBLE},
+                </if>
+                <if test="actualDuration != null">
+                    actual_duration = #{actualDuration,jdbcType=DOUBLE},
+                </if>
+                <if test="exceedDuration != null">
+                    exceed_duration = #{exceedDuration,jdbcType=DOUBLE},
+                </if>
+                <if test="peopleCount != null">
+                    people_count = #{peopleCount,jdbcType=INTEGER},
+                </if>
+                <if test="frequency != null">
+                    frequency = #{frequency,jdbcType=INTEGER},
+                </if>
+                <if test="createTime != null">
+                    create_time = #{createTime,jdbcType=TIMESTAMP},
+                </if>
+        </set>
+        where   id = #{id,jdbcType=INTEGER} 
+    </update>
+    <update id="updateByPrimaryKey" parameterType="com.goafanti.common.model.TOrderPublicReleaseCount">
+        update t_order_public_release_count
+        set 
+            order_no =  #{orderNo,jdbcType=VARCHAR},
+            status =  #{status,jdbcType=INTEGER},
+            max_duration =  #{maxDuration,jdbcType=DOUBLE},
+            actual_duration =  #{actualDuration,jdbcType=DOUBLE},
+            exceed_duration =  #{exceedDuration,jdbcType=DOUBLE},
+            people_count =  #{peopleCount,jdbcType=INTEGER},
+            frequency =  #{frequency,jdbcType=INTEGER},
+            create_time =  #{createTime,jdbcType=TIMESTAMP}
+        where   id = #{id,jdbcType=INTEGER} 
+    </update>
+    <update id="updateByOrderNo">
+        update t_order_public_release_count
+        set
+            actual_duration =  #{actualDuration,jdbcType=DOUBLE},
+            exceed_duration =  if(#{actualDuration,jdbcType=DOUBLE}-max_duration>0,#{actualDuration,jdbcType=DOUBLE}-max_duration,0),
+            people_count =  #{peopleCount,jdbcType=INTEGER},
+            frequency =  #{frequency,jdbcType=INTEGER}
+        where   order_no =  #{orderNo,jdbcType=VARCHAR}
+    </update>
+
+    <select id="selectByOrderNo"  resultMap="BaseResultMap">
+        select
+        <include refid="Base_Column_List" />
+        from t_order_public_release_count
+        where  order_no =  #{orderNo,jdbcType=VARCHAR}
+    </select>
+</mapper>

+ 105 - 289
src/main/java/com/goafanti/common/mapper/TTaskLogMapper.xml

@@ -1,291 +1,107 @@
 <?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">
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.goafanti.common.dao.TTaskLogMapper">
-  <resultMap id="BaseResultMap" type="com.goafanti.common.model.TTaskLog">
-    <!--
-      WARNING - @mbg.generated
-      This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Tue Dec 04 15:28:04 CST 2018.
-    -->
-    <id column="id" jdbcType="INTEGER" property="id" />
-    <result column="task_id" jdbcType="INTEGER" property="taskId" />
-    <result column="task_allocator" jdbcType="VARCHAR" property="taskAllocator" />
-    <result column="task_receiver" jdbcType="VARCHAR" property="taskReceiver" />
-    <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
-  </resultMap>
-  <sql id="Example_Where_Clause">
-    <!--
-      WARNING - @mbg.generated
-      This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Tue Dec 04 15:28:04 CST 2018.
-    -->
-    <where>
-      <foreach collection="oredCriteria" item="criteria" separator="or">
-        <if test="criteria.valid">
-          <trim prefix="(" prefixOverrides="and" suffix=")">
-            <foreach collection="criteria.criteria" item="criterion">
-              <choose>
-                <when test="criterion.noValue">
-                  and ${criterion.condition}
-                </when>
-                <when test="criterion.singleValue">
-                  and ${criterion.condition} #{criterion.value}
-                </when>
-                <when test="criterion.betweenValue">
-                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
-                </when>
-                <when test="criterion.listValue">
-                  and ${criterion.condition}
-                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
-                    #{listItem}
-                  </foreach>
-                </when>
-              </choose>
-            </foreach>
-          </trim>
-        </if>
-      </foreach>
-    </where>
-  </sql>
-  <sql id="Update_By_Example_Where_Clause">
-    <!--
-      WARNING - @mbg.generated
-      This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Tue Dec 04 15:28:04 CST 2018.
-    -->
-    <where>
-      <foreach collection="example.oredCriteria" item="criteria" separator="or">
-        <if test="criteria.valid">
-          <trim prefix="(" prefixOverrides="and" suffix=")">
-            <foreach collection="criteria.criteria" item="criterion">
-              <choose>
-                <when test="criterion.noValue">
-                  and ${criterion.condition}
-                </when>
-                <when test="criterion.singleValue">
-                  and ${criterion.condition} #{criterion.value}
-                </when>
-                <when test="criterion.betweenValue">
-                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
-                </when>
-                <when test="criterion.listValue">
-                  and ${criterion.condition}
-                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
-                    #{listItem}
-                  </foreach>
-                </when>
-              </choose>
-            </foreach>
-          </trim>
-        </if>
-      </foreach>
-    </where>
-  </sql>
-  <sql id="Base_Column_List">
-    <!--
-      WARNING - @mbg.generated
-      This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Tue Dec 04 15:28:04 CST 2018.
-    -->
-    id, task_id, task_allocator, task_receiver, create_time
-  </sql>
-  <select id="selectByExample" parameterType="com.goafanti.common.model.TTaskLogExample" resultMap="BaseResultMap">
-    <!--
-      WARNING - @mbg.generated
-      This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Tue Dec 04 15:28:04 CST 2018.
-    -->
-    select
-    <if test="distinct">
-      distinct
-    </if>
-    <include refid="Base_Column_List" />
-    from t_task_log
-    <if test="_parameter != null">
-      <include refid="Example_Where_Clause" />
-    </if>
-    <if test="orderByClause != null">
-      order by ${orderByClause}
-    </if>
-  </select>
-  <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
-    <!--
-      WARNING - @mbg.generated
-      This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Tue Dec 04 15:28:04 CST 2018.
-    -->
-    select 
-    <include refid="Base_Column_List" />
-    from t_task_log
-    where id = #{id,jdbcType=INTEGER}
-  </select>
-  <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
-    <!--
-      WARNING - @mbg.generated
-      This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Tue Dec 04 15:28:04 CST 2018.
-    -->
-    delete from t_task_log
-    where id = #{id,jdbcType=INTEGER}
-  </delete>
-  <delete id="deleteByExample" parameterType="com.goafanti.common.model.TTaskLogExample">
-    <!--
-      WARNING - @mbg.generated
-      This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Tue Dec 04 15:28:04 CST 2018.
-    -->
-    delete from t_task_log
-    <if test="_parameter != null">
-      <include refid="Example_Where_Clause" />
-    </if>
-  </delete>
-  <insert id="insert" parameterType="com.goafanti.common.model.TTaskLog">
-    <!--
-      WARNING - @mbg.generated
-      This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Tue Dec 04 15:28:04 CST 2018.
-    -->
-    insert into t_task_log (id, task_id, task_allocator, 
-      task_receiver, create_time)
-    values (#{id,jdbcType=INTEGER}, #{taskId,jdbcType=INTEGER}, #{taskAllocator,jdbcType=VARCHAR}, 
-      #{taskReceiver,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP})
-  </insert>
-  <insert id="insertSelective" parameterType="com.goafanti.common.model.TTaskLog">
-    <!--
-      WARNING - @mbg.generated
-      This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Tue Dec 04 15:28:04 CST 2018.
-    -->
-    insert into t_task_log
-    <trim prefix="(" suffix=")" suffixOverrides=",">
-      <if test="id != null">
-        id,
-      </if>
-      <if test="taskId != null">
-        task_id,
-      </if>
-      <if test="taskAllocator != null">
-        task_allocator,
-      </if>
-      <if test="taskReceiver != null">
-        task_receiver,
-      </if>
-      <if test="createTime != null">
-        create_time,
-      </if>
-    </trim>
-    <trim prefix="values (" suffix=")" suffixOverrides=",">
-      <if test="id != null">
-        #{id,jdbcType=INTEGER},
-      </if>
-      <if test="taskId != null">
-        #{taskId,jdbcType=INTEGER},
-      </if>
-      <if test="taskAllocator != null">
-        #{taskAllocator,jdbcType=VARCHAR},
-      </if>
-      <if test="taskReceiver != null">
-        #{taskReceiver,jdbcType=VARCHAR},
-      </if>
-      <if test="createTime != null">
-        #{createTime,jdbcType=TIMESTAMP},
-      </if>
-    </trim>
-  </insert>
-  <select id="countByExample" parameterType="com.goafanti.common.model.TTaskLogExample" resultType="java.lang.Long">
-    <!--
-      WARNING - @mbg.generated
-      This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Tue Dec 04 15:28:04 CST 2018.
-    -->
-    select count(*) from t_task_log
-    <if test="_parameter != null">
-      <include refid="Example_Where_Clause" />
-    </if>
-  </select>
-  <update id="updateByExampleSelective" parameterType="map">
-    <!--
-      WARNING - @mbg.generated
-      This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Tue Dec 04 15:28:04 CST 2018.
-    -->
-    update t_task_log
-    <set>
-      <if test="record.id != null">
-        id = #{record.id,jdbcType=INTEGER},
-      </if>
-      <if test="record.taskId != null">
-        task_id = #{record.taskId,jdbcType=INTEGER},
-      </if>
-      <if test="record.taskAllocator != null">
-        task_allocator = #{record.taskAllocator,jdbcType=VARCHAR},
-      </if>
-      <if test="record.taskReceiver != null">
-        task_receiver = #{record.taskReceiver,jdbcType=VARCHAR},
-      </if>
-      <if test="record.createTime != null">
-        create_time = #{record.createTime,jdbcType=TIMESTAMP},
-      </if>
-    </set>
-    <if test="_parameter != null">
-      <include refid="Update_By_Example_Where_Clause" />
-    </if>
-  </update>
-  <update id="updateByExample" parameterType="map">
-    <!--
-      WARNING - @mbg.generated
-      This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Tue Dec 04 15:28:04 CST 2018.
-    -->
-    update t_task_log
-    set id = #{record.id,jdbcType=INTEGER},
-      task_id = #{record.taskId,jdbcType=INTEGER},
-      task_allocator = #{record.taskAllocator,jdbcType=VARCHAR},
-      task_receiver = #{record.taskReceiver,jdbcType=VARCHAR},
-      create_time = #{record.createTime,jdbcType=TIMESTAMP}
-    <if test="_parameter != null">
-      <include refid="Update_By_Example_Where_Clause" />
-    </if>
-  </update>
-  <update id="updateByPrimaryKeySelective" parameterType="com.goafanti.common.model.TTaskLog">
-    <!--
-      WARNING - @mbg.generated
-      This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Tue Dec 04 15:28:04 CST 2018.
-    -->
-    update t_task_log
-    <set>
-      <if test="taskId != null">
-        task_id = #{taskId,jdbcType=INTEGER},
-      </if>
-      <if test="taskAllocator != null">
-        task_allocator = #{taskAllocator,jdbcType=VARCHAR},
-      </if>
-      <if test="taskReceiver != null">
-        task_receiver = #{taskReceiver,jdbcType=VARCHAR},
-      </if>
-      <if test="createTime != null">
-        create_time = #{createTime,jdbcType=TIMESTAMP},
-      </if>
-    </set>
-    where id = #{id,jdbcType=INTEGER}
-  </update>
-  <update id="updateByPrimaryKey" parameterType="com.goafanti.common.model.TTaskLog">
-    <!--
-      WARNING - @mbg.generated
-      This element is automatically generated by MyBatis Generator, do not modify.
-      This element was generated on Tue Dec 04 15:28:04 CST 2018.
-    -->
-    update t_task_log
-    set task_id = #{taskId,jdbcType=INTEGER},
-      task_allocator = #{taskAllocator,jdbcType=VARCHAR},
-      task_receiver = #{taskReceiver,jdbcType=VARCHAR},
-      create_time = #{createTime,jdbcType=TIMESTAMP}
-    where id = #{id,jdbcType=INTEGER}
-  </update>
-  <update id="updateDimissionTransfer" parameterType="java.lang.String">
-    update t_task_log set 
-      task_receiver = #{transferId,jdbcType=VARCHAR}
-    where task_receiver = #{aid,jdbcType=VARCHAR}
-  </update>
-</mapper>
+
+    <resultMap id="BaseResultMap" type="com.goafanti.common.model.TTaskLog">
+            <id property="id" column="id" jdbcType="INTEGER"/>
+            <result property="taskId" column="task_id" jdbcType="INTEGER"/>
+            <result property="taskAllocator" column="task_allocator" jdbcType="VARCHAR"/>
+            <result property="taskReceiver" column="task_receiver" jdbcType="VARCHAR"/>
+            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+            <result property="status" column="status" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,task_id,task_allocator,
+        task_receiver,create_time,status
+    </sql>
+
+    <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
+        select
+        <include refid="Base_Column_List" />
+        from t_task_log
+        where  id = #{id,jdbcType=INTEGER} 
+    </select>
+
+    <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
+        delete from t_task_log
+        where  id = #{id,jdbcType=INTEGER} 
+    </delete>
+    <insert id="insert" keyColumn="id" keyProperty="id" parameterType="com.goafanti.common.model.TTaskLog" useGeneratedKeys="true">
+        insert into t_task_log
+        ( id,task_id,task_allocator
+        ,task_receiver,create_time,status
+        )
+        values (#{id,jdbcType=INTEGER},#{taskId,jdbcType=INTEGER},#{taskAllocator,jdbcType=VARCHAR}
+        ,#{taskReceiver,jdbcType=VARCHAR},#{createTime,jdbcType=TIMESTAMP},#{status,jdbcType=INTEGER}
+        )
+    </insert>
+    <insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="com.goafanti.common.model.TTaskLog" useGeneratedKeys="true">
+        insert into t_task_log
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+                <if test="id != null">id,</if>
+                <if test="taskId != null">task_id,</if>
+                <if test="taskAllocator != null">task_allocator,</if>
+                <if test="taskReceiver != null">task_receiver,</if>
+                <if test="createTime != null">create_time,</if>
+                <if test="status != null">status,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+                <if test="id != null">#{id,jdbcType=INTEGER},</if>
+                <if test="taskId != null">#{taskId,jdbcType=INTEGER},</if>
+                <if test="taskAllocator != null">#{taskAllocator,jdbcType=VARCHAR},</if>
+                <if test="taskReceiver != null">#{taskReceiver,jdbcType=VARCHAR},</if>
+                <if test="createTime != null">#{createTime,jdbcType=TIMESTAMP},</if>
+                <if test="status != null">#{status,jdbcType=INTEGER},</if>
+        </trim>
+    </insert>
+    <update id="updateByPrimaryKeySelective" parameterType="com.goafanti.common.model.TTaskLog">
+        update t_task_log
+        <set>
+                <if test="taskId != null">
+                    task_id = #{taskId,jdbcType=INTEGER},
+                </if>
+                <if test="taskAllocator != null">
+                    task_allocator = #{taskAllocator,jdbcType=VARCHAR},
+                </if>
+                <if test="taskReceiver != null">
+                    task_receiver = #{taskReceiver,jdbcType=VARCHAR},
+                </if>
+                <if test="createTime != null">
+                    create_time = #{createTime,jdbcType=TIMESTAMP},
+                </if>
+                <if test="status != null">
+                    status = #{status,jdbcType=INTEGER},
+                </if>
+        </set>
+        where   id = #{id,jdbcType=INTEGER} 
+    </update>
+    <update id="updateByPrimaryKey" parameterType="com.goafanti.common.model.TTaskLog">
+        update t_task_log
+        set 
+            task_id =  #{taskId,jdbcType=INTEGER},
+            task_allocator =  #{taskAllocator,jdbcType=VARCHAR},
+            task_receiver =  #{taskReceiver,jdbcType=VARCHAR},
+            create_time =  #{createTime,jdbcType=TIMESTAMP},
+            status =  #{status,jdbcType=INTEGER}
+        where   id = #{id,jdbcType=INTEGER} 
+    </update>
+
+
+    <update id="updateDimissionTransfer" parameterType="java.lang.String">
+        update t_task_log set
+            task_receiver = #{transferId,jdbcType=VARCHAR}
+        where task_receiver = #{aid,jdbcType=VARCHAR}
+    </update>
+
+
+    <select id="selectByTid" resultType="com.goafanti.order.bo.OutTTaskLog">
+        select a.id,b.name taskAllocatorName,c.name taskReceiverName,a.create_time createTime
+        from t_task_log a
+                 left join admin b on a.task_allocator =b.id
+                 left join admin c on a.task_receiver =c.id
+        where task_id = #{id}
+    </select>
+</mapper>

+ 7 - 0
src/main/java/com/goafanti/common/mapper/UserNamesMapper.xml

@@ -152,4 +152,11 @@
 		(#{item.uid,jdbcType=VARCHAR},#{item.userName})
     </foreach>
   </insert>
+  <select id="selectUserNameList" resultType="com.goafanti.customer.bo.UserNamesListBo">
+    select id,uid,aid,name
+    from user_names where name in
+    <foreach item="item" index="index" collection="list" separator="," open="(" close=")">
+        (#{item.name})
+    </foreach>
+  </select>
 </mapper>

+ 252 - 2
src/main/java/com/goafanti/common/model/PublicRelease.java

@@ -4,10 +4,13 @@ import java.io.Serializable;
 import java.util.Date;
 
 /**
- * public_release
- * @author 
+ * 公出表
+ * @TableName public_release
  */
 public class PublicRelease implements Serializable {
+    /**
+     * 
+     */
     private Integer id;
 
     /**
@@ -195,309 +198,556 @@ public class PublicRelease implements Serializable {
      */
     private Integer clockIn;
 
+    /**
+     * 0无需审核 1需要审核 2营销审核通过 3营销审核驳回
+     */
+    private Integer techStartProcess;
+
     private static final long serialVersionUID = 1L;
 
+    /**
+     * 
+     */
     public Integer getId() {
         return id;
     }
 
+    /**
+     * 
+     */
     public void setId(Integer id) {
         this.id = id;
     }
 
+    /**
+     * 公出人
+     */
     public String getAid() {
         return aid;
     }
 
+    /**
+     * 公出人
+     */
     public void setAid(String aid) {
         this.aid = aid;
     }
 
+    /**
+     * 公出开始时间
+     */
     public Date getReleaseStart() {
         return releaseStart;
     }
 
+    /**
+     * 公出开始时间
+     */
     public void setReleaseStart(Date releaseStart) {
         this.releaseStart = releaseStart;
     }
 
+    /**
+     * 公出结束时间
+     */
     public Date getReleaseEnd() {
         return releaseEnd;
     }
 
+    /**
+     * 公出结束时间
+     */
     public void setReleaseEnd(Date releaseEnd) {
         this.releaseEnd = releaseEnd;
     }
 
+    /**
+     * 公出目标
+     */
     public String getRemarks() {
         return remarks;
     }
 
+    /**
+     * 公出目标
+     */
     public void setRemarks(String remarks) {
         this.remarks = remarks;
     }
 
+    /**
+     * 附件
+     */
     public String getAnnexUrl() {
         return annexUrl;
     }
 
+    /**
+     * 附件
+     */
     public void setAnnexUrl(String annexUrl) {
         this.annexUrl = annexUrl;
     }
 
+    /**
+     * 状态 0驳回 1发起 2同意 3 撤销 4技术驳回
+     */
     public Integer getStatus() {
         return status;
     }
 
+    /**
+     * 状态 0驳回 1发起 2同意 3 撤销 4技术驳回
+     */
     public void setStatus(Integer status) {
         this.status = status;
     }
 
+    /**
+     * 发起时间
+     */
     public Date getCreateTime() {
         return createTime;
     }
 
+    /**
+     * 发起时间
+     */
     public void setCreateTime(Date createTime) {
         this.createTime = createTime;
     }
 
+    /**
+     * 项目编号
+     */
     public String getPid() {
         return pid;
     }
 
+    /**
+     * 项目编号
+     */
     public void setPid(String pid) {
         this.pid = pid;
     }
 
+    /**
+     * 项目名称
+     */
     public String getPname() {
         return pname;
     }
 
+    /**
+     * 项目名称
+     */
     public void setPname(String pname) {
         this.pname = pname;
     }
 
+    /**
+     * 时长
+     */
     public Double getDuration() {
         return duration;
     }
 
+    /**
+     * 时长
+     */
     public void setDuration(Double duration) {
         this.duration = duration;
     }
 
+    /**
+     * 有效日期
+     */
     public String getValidDate() {
         return validDate;
     }
 
+    /**
+     * 有效日期
+     */
     public void setValidDate(String validDate) {
         this.validDate = validDate;
     }
 
+    /**
+     * 本次总结
+     */
     public String getSupplement() {
         return supplement;
     }
 
+    /**
+     * 本次总结
+     */
     public void setSupplement(String supplement) {
         this.supplement = supplement;
     }
 
+    /**
+     * 审核信息
+     */
     public String getAuditInfo() {
         return auditInfo;
     }
 
+    /**
+     * 审核信息
+     */
     public void setAuditInfo(String auditInfo) {
         this.auditInfo = auditInfo;
     }
 
+    /**
+     * 公出计划
+     */
     public String getPlan() {
         return plan;
     }
 
+    /**
+     * 公出计划
+     */
     public void setPlan(String plan) {
         this.plan = plan;
     }
 
+    /**
+     * 预计效果
+     */
     public String getExpectedEffect() {
         return expectedEffect;
     }
 
+    /**
+     * 预计效果
+     */
     public void setExpectedEffect(String expectedEffect) {
         this.expectedEffect = expectedEffect;
     }
 
+    /**
+     * 下次计划
+     */
     public String getNextPlan() {
         return nextPlan;
     }
 
+    /**
+     * 下次计划
+     */
     public void setNextPlan(String nextPlan) {
         this.nextPlan = nextPlan;
     }
 
+    /**
+     * 分类 0业务 1技术 2行政 3 技术协单 4 技术助手
+     */
     public Integer getType() {
         return type;
     }
 
+    /**
+     * 分类 0业务 1技术 2行政 3 技术协单 4 技术助手
+     */
     public void setType(Integer type) {
         this.type = type;
     }
 
+    /**
+     * 订单编号
+     */
     public String getOrderNo() {
         return orderNo;
     }
 
+    /**
+     * 订单编号
+     */
     public void setOrderNo(String orderNo) {
         this.orderNo = orderNo;
     }
 
+    /**
+     * 修改时间
+     */
     public Date getUpdateTime() {
         return updateTime;
     }
 
+    /**
+     * 修改时间
+     */
     public void setUpdateTime(Date updateTime) {
         this.updateTime = updateTime;
     }
 
+    /**
+     * 修改状态 0=否 1=是
+     */
     public Integer getUpdateStatus() {
         return updateStatus;
     }
 
+    /**
+     * 修改状态 0=否 1=是
+     */
     public void setUpdateStatus(Integer updateStatus) {
         this.updateStatus = updateStatus;
     }
 
+    /**
+     * 0否 1主公出 2协助公出
+     */
     public Integer getAssist() {
         return assist;
     }
 
+    /**
+     * 0否 1主公出 2协助公出
+     */
     public void setAssist(Integer assist) {
         this.assist = assist;
     }
 
+    /**
+     * 协单人员
+     */
     public String getAssistAid() {
         return assistAid;
     }
 
+    /**
+     * 协单人员
+     */
     public void setAssistAid(String assistAid) {
         this.assistAid = assistAid;
     }
 
+    /**
+     * 协单人员
+     */
     public String getAssistAidName() {
         return assistAidName;
     }
 
+    /**
+     * 协单人员
+     */
     public void setAssistAidName(String assistAidName) {
         this.assistAidName = assistAidName;
     }
 
+    /**
+     * 主要公出编号
+     */
     public Integer getMainId() {
         return mainId;
     }
 
+    /**
+     * 主要公出编号
+     */
     public void setMainId(Integer mainId) {
         this.mainId = mainId;
     }
 
+    /**
+     * 主要公出发起人
+     */
     public String getMainName() {
         return mainName;
     }
 
+    /**
+     * 主要公出发起人
+     */
     public void setMainName(String mainName) {
         this.mainName = mainName;
     }
 
+    /**
+     * 驳回人员
+     */
     public String getRejectName() {
         return rejectName;
     }
 
+    /**
+     * 驳回人员
+     */
     public void setRejectName(String rejectName) {
         this.rejectName = rejectName;
     }
 
+    /**
+     * 协单助手
+     */
     public String getAssistantAid() {
         return assistantAid;
     }
 
+    /**
+     * 协单助手
+     */
     public void setAssistantAid(String assistantAid) {
         this.assistantAid = assistantAid;
     }
 
+    /**
+     * 协单助手名称
+     */
     public String getAssistantName() {
         return assistantName;
     }
 
+    /**
+     * 协单助手名称
+     */
     public void setAssistantName(String assistantName) {
         this.assistantName = assistantName;
     }
 
+    /**
+     * 再次公出
+     */
     public Integer getPublicAgain() {
         return publicAgain;
     }
 
+    /**
+     * 再次公出
+     */
     public void setPublicAgain(Integer publicAgain) {
         this.publicAgain = publicAgain;
     }
 
+    /**
+     * 审核时间
+     */
     public Date getAuditTime() {
         return auditTime;
     }
 
+    /**
+     * 审核时间
+     */
     public void setAuditTime(Date auditTime) {
         this.auditTime = auditTime;
     }
 
+    /**
+     * 客户类型 0新客户 1老客户
+     */
     public String getNewUser() {
         return newUser;
     }
 
+    /**
+     * 客户类型 0新客户 1老客户
+     */
     public void setNewUser(String newUser) {
         this.newUser = newUser;
     }
 
+    /**
+     * 签单数
+     */
     public String getSignSum() {
         return signSum;
     }
 
+    /**
+     * 签单数
+     */
     public void setSignSum(String signSum) {
         this.signSum = signSum;
     }
 
+    /**
+     * 公司名称
+     */
     public String getUserNames() {
         return userNames;
     }
 
+    /**
+     * 公司名称
+     */
     public void setUserNames(String userNames) {
         this.userNames = userNames;
     }
 
+    /**
+     * 公出对象 0企业 1园区
+     */
     public Integer getObjectType() {
         return objectType;
     }
 
+    /**
+     * 公出对象 0企业 1园区
+     */
     public void setObjectType(Integer objectType) {
         this.objectType = objectType;
     }
 
+    /**
+     * 公出分类 0不含他人客户 1待审核 2已审核
+     */
     public Integer getPublicType() {
         return publicType;
     }
 
+    /**
+     * 公出分类 0不含他人客户 1待审核 2已审核
+     */
     public void setPublicType(Integer publicType) {
         this.publicType = publicType;
     }
 
+    /**
+     * 公出企业地址
+     */
     public String getDistrictName() {
         return districtName;
     }
 
+    /**
+     * 公出企业地址
+     */
     public void setDistrictName(String districtName) {
         this.districtName = districtName;
     }
 
+    /**
+     * 打卡状态 0未打卡 1已打卡 2异常打卡(冗余)
+     */
     public Integer getClockIn() {
         return clockIn;
     }
 
+    /**
+     * 打卡状态 0未打卡 1已打卡 2异常打卡(冗余)
+     */
     public void setClockIn(Integer clockIn) {
         this.clockIn = clockIn;
     }
+
+    /**
+     * 0无需审核 1需要审核 2营销审核通过 3营销审核驳回
+     */
+    public Integer getTechStartProcess() {
+        return techStartProcess;
+    }
+
+    /**
+     * 0无需审核 1需要审核 2营销审核通过 3营销审核驳回
+     */
+    public void setTechStartProcess(Integer techStartProcess) {
+        this.techStartProcess = techStartProcess;
+    }
 }

+ 129 - 0
src/main/java/com/goafanti/common/model/PublicReleaseClock.java

@@ -0,0 +1,129 @@
+package com.goafanti.common.model;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 公出打卡表
+ * @TableName public_release_clock
+ */
+public class PublicReleaseClock implements Serializable {
+    /**
+     * 
+     */
+    private Integer id;
+
+    /**
+     * 公出编号
+     */
+    private Integer prid;
+
+    /**
+     * 公出详情编号
+     */
+    private Integer prdid;
+
+    /**
+     * 附件
+     */
+    private String photoUrl;
+
+    /**
+     * 打卡时间
+     */
+    private Date clockInTime;
+
+    /**
+     * 发起时间
+     */
+    private Date createTime;
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 
+     */
+    public Integer getId() {
+        return id;
+    }
+
+    /**
+     * 
+     */
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    /**
+     * 公出编号
+     */
+    public Integer getPrid() {
+        return prid;
+    }
+
+    /**
+     * 公出编号
+     */
+    public void setPrid(Integer prid) {
+        this.prid = prid;
+    }
+
+    /**
+     * 公出详情编号
+     */
+    public Integer getPrdid() {
+        return prdid;
+    }
+
+    /**
+     * 公出详情编号
+     */
+    public void setPrdid(Integer prdid) {
+        this.prdid = prdid;
+    }
+
+    /**
+     * 附件
+     */
+    public String getPhotoUrl() {
+        return photoUrl;
+    }
+
+    /**
+     * 附件
+     */
+    public void setPhotoUrl(String photoUrl) {
+        this.photoUrl = photoUrl;
+    }
+
+    /**
+     * 打卡时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+    public Date getClockInTime() {
+        return clockInTime;
+    }
+
+    /**
+     * 打卡时间
+     */
+    public void setClockInTime(Date clockInTime) {
+        this.clockInTime = clockInTime;
+    }
+
+    /**
+     * 发起时间
+     */
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    /**
+     * 发起时间
+     */
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+}

+ 141 - 0
src/main/java/com/goafanti/common/model/PublicReleaseDateClock.java

@@ -0,0 +1,141 @@
+package com.goafanti.common.model;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 公出日期打卡表
+ * @TableName public_release_date_clock
+ */
+public class PublicReleaseDateClock implements Serializable {
+    /**
+     * 
+     */
+    private Integer id;
+
+    /**
+     * 公出编号
+     */
+    private Integer prid;
+
+    /**
+     * 公出详情编号
+     */
+    private Integer prdid;
+
+    /**
+     * 状态 0未打卡 1已打卡
+     */
+    private Integer status;
+
+    /**
+     * 打卡时间
+     */
+    private Date clockInTime;
+
+    /**
+     * 发起时间
+     */
+    private Date createTime;
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 
+     */
+    public Integer getId() {
+        return id;
+    }
+
+    /**
+     * 
+     */
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    /**
+     * 公出编号
+     */
+    public Integer getPrid() {
+        return prid;
+    }
+
+    /**
+     * 公出编号
+     */
+    public void setPrid(Integer prid) {
+        this.prid = prid;
+    }
+
+    /**
+     * 公出详情编号
+     */
+    public Integer getPrdid() {
+        return prdid;
+    }
+
+    /**
+     * 公出详情编号
+     */
+    public void setPrdid(Integer prdid) {
+        this.prdid = prdid;
+    }
+
+    /**
+     * 状态 0未打卡 1已打卡
+     */
+    public Integer getStatus() {
+        return status;
+    }
+
+    /**
+     * 状态 0未打卡 1已打卡
+     */
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    /**
+     * 打卡时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    public Date getClockInTime() {
+        return clockInTime;
+    }
+
+    /**
+     * 打卡时间
+     */
+    public void setClockInTime(Date clockInTime) {
+        this.clockInTime = clockInTime;
+    }
+
+    /**
+     * 发起时间
+     */
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    /**
+     * 发起时间
+     */
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    @Override
+    public String toString() {
+        return "PublicReleaseDateClock{" +
+                "id=" + id +
+                ", prid=" + prid +
+                ", prdid=" + prdid +
+                ", status=" + status +
+                ", clockInTime=" + clockInTime +
+                ", createTime=" + createTime +
+                '}';
+    }
+}

+ 225 - 0
src/main/java/com/goafanti/common/model/StandardDocument.java

@@ -0,0 +1,225 @@
+package com.goafanti.common.model;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 标准文档列表
+ * @TableName standard_document
+ */
+public class StandardDocument implements Serializable {
+    /**
+     * 
+     */
+    private Integer id;
+
+    /**
+     * 附件
+     */
+    private String url;
+
+    /**
+     * 标准编号
+     */
+    private String serialNumber;
+
+    /**
+     * 标准名称
+     */
+    private String name;
+
+    /**
+     * 参考
+     */
+    private String reference;
+
+    /**
+     * 订单部门
+     */
+    private String depId;
+
+    /**
+     * 负责人
+     */
+    private String aid;
+
+    /**
+     * 状态 0=关闭,1=开启
+     */
+    private Integer status;
+
+    /**
+     * 0=国家标准,1=行业标准,2=地方标准,3=团体标准,4=国际标准
+     */
+    private Integer type;
+
+    /**
+     * 发起时间
+     */
+    private Date createTime;
+
+    /**
+     * 修改时间
+     */
+    private Date updateTime;
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 
+     */
+    public Integer getId() {
+        return id;
+    }
+
+    /**
+     * 
+     */
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    /**
+     * 附件
+     */
+    public String getUrl() {
+        return url;
+    }
+
+    /**
+     * 附件
+     */
+    public void setUrl(String url) {
+        this.url = url;
+    }
+
+    /**
+     * 标准编号
+     */
+    public String getSerialNumber() {
+        return serialNumber;
+    }
+
+    /**
+     * 标准编号
+     */
+    public void setSerialNumber(String serialNumber) {
+        this.serialNumber = serialNumber;
+    }
+
+    /**
+     * 标准名称
+     */
+    public String getName() {
+        return name;
+    }
+
+    /**
+     * 标准名称
+     */
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    /**
+     * 参考
+     */
+    public String getReference() {
+        return reference;
+    }
+
+    /**
+     * 参考
+     */
+    public void setReference(String reference) {
+        this.reference = reference;
+    }
+
+    /**
+     * 订单部门
+     */
+    public String getDepId() {
+        return depId;
+    }
+
+    /**
+     * 订单部门
+     */
+    public void setDepId(String depId) {
+        this.depId = depId;
+    }
+
+    /**
+     * 负责人
+     */
+    public String getAid() {
+        return aid;
+    }
+
+    /**
+     * 负责人
+     */
+    public void setAid(String aid) {
+        this.aid = aid;
+    }
+
+    /**
+     * 状态 0=关闭,1=开启
+     */
+    public Integer getStatus() {
+        return status;
+    }
+
+    /**
+     * 状态 0=关闭,1=开启
+     */
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    /**
+     * 0=国家标准,1=行业标准,2=地方标准,3=团体标准,4=国际标准
+     */
+    public Integer getType() {
+        return type;
+    }
+
+    /**
+     * 0=国家标准,1=行业标准,2=地方标准,3=团体标准,4=国际标准
+     */
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    /**
+     * 发起时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    /**
+     * 发起时间
+     */
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    /**
+     * 修改时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    /**
+     * 修改时间
+     */
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+}

+ 237 - 2
src/main/java/com/goafanti/common/model/TOrderMid.java

@@ -5,8 +5,8 @@ import java.math.BigDecimal;
 import java.util.Date;
 
 /**
- * t_order_mid
- * @author 
+ * 订单中间表
+ * @TableName t_order_mid
  */
 public class TOrderMid implements Serializable {
     /**
@@ -189,293 +189,528 @@ public class TOrderMid implements Serializable {
      */
     private Integer stopProject;
 
+    /**
+     * 会员 0否 1是
+     */
+    private Integer bidType;
+
     private static final long serialVersionUID = 1L;
 
+    /**
+     * id
+     */
     public Integer getId() {
         return id;
     }
 
+    /**
+     * id
+     */
     public void setId(Integer id) {
         this.id = id;
     }
 
+    /**
+     * 订单编号
+     */
     public String getOrderNo() {
         return orderNo;
     }
 
+    /**
+     * 订单编号
+     */
     public void setOrderNo(String orderNo) {
         this.orderNo = orderNo;
     }
 
+    /**
+     * 营销员id
+     */
     public String getSalesmanId() {
         return salesmanId;
     }
 
+    /**
+     * 营销员id
+     */
     public void setSalesmanId(String salesmanId) {
         this.salesmanId = salesmanId;
     }
 
+    /**
+     * 财务id
+     */
     public String getFinanceId() {
         return financeId;
     }
 
+    /**
+     * 财务id
+     */
     public void setFinanceId(String financeId) {
         this.financeId = financeId;
     }
 
+    /**
+     * 营销员名称
+     */
     public String getSalesmanName() {
         return salesmanName;
     }
 
+    /**
+     * 营销员名称
+     */
     public void setSalesmanName(String salesmanName) {
         this.salesmanName = salesmanName;
     }
 
+    /**
+     * 财务名称
+     */
     public String getFinanceName() {
         return financeName;
     }
 
+    /**
+     * 财务名称
+     */
     public void setFinanceName(String financeName) {
         this.financeName = financeName;
     }
 
+    /**
+     * 最后一次收款
+     */
     public BigDecimal getFinalReceivables() {
         return finalReceivables;
     }
 
+    /**
+     * 最后一次收款
+     */
     public void setFinalReceivables(BigDecimal finalReceivables) {
         this.finalReceivables = finalReceivables;
     }
 
+    /**
+     * 最后一次收款时间
+     */
     public Date getFinalReceivablesTime() {
         return finalReceivablesTime;
     }
 
+    /**
+     * 最后一次收款时间
+     */
     public void setFinalReceivablesTime(Date finalReceivablesTime) {
         this.finalReceivablesTime = finalReceivablesTime;
     }
 
+    /**
+     * 开票金额
+     */
     public BigDecimal getInvoiceAmount() {
         return invoiceAmount;
     }
 
+    /**
+     * 开票金额
+     */
     public void setInvoiceAmount(BigDecimal invoiceAmount) {
         this.invoiceAmount = invoiceAmount;
     }
 
+    /**
+     * 创建时间
+     */
     public Date getCreateTime() {
         return createTime;
     }
 
+    /**
+     * 创建时间
+     */
     public void setCreateTime(Date createTime) {
         this.createTime = createTime;
     }
 
+    /**
+     * 公司名称(冗余)
+     */
     public String getBuyerName() {
         return buyerName;
     }
 
+    /**
+     * 公司名称(冗余)
+     */
     public void setBuyerName(String buyerName) {
         this.buyerName = buyerName;
     }
 
+    /**
+     * 应收款
+     */
     public BigDecimal getOrderReceivables() {
         return orderReceivables;
     }
 
+    /**
+     * 应收款
+     */
     public void setOrderReceivables(BigDecimal orderReceivables) {
         this.orderReceivables = orderReceivables;
     }
 
+    /**
+     * 欠款
+     */
     public BigDecimal getOrderArrears() {
         return orderArrears;
     }
 
+    /**
+     * 欠款
+     */
     public void setOrderArrears(BigDecimal orderArrears) {
         this.orderArrears = orderArrears;
     }
 
+    /**
+     * 成本实付
+     */
     public BigDecimal getPaymentAmount() {
         return paymentAmount;
     }
 
+    /**
+     * 成本实付
+     */
     public void setPaymentAmount(BigDecimal paymentAmount) {
         this.paymentAmount = paymentAmount;
     }
 
+    /**
+     * 成本金额
+     */
     public BigDecimal getCostAmount() {
         return costAmount;
     }
 
+    /**
+     * 成本金额
+     */
     public void setCostAmount(BigDecimal costAmount) {
         this.costAmount = costAmount;
     }
 
+    /**
+     * 部门名称
+     */
     public String getDepName() {
         return depName;
     }
 
+    /**
+     * 部门名称
+     */
     public void setDepName(String depName) {
         this.depName = depName;
     }
 
+    /**
+     * 省份名称
+     */
     public String getProvinceName() {
         return provinceName;
     }
 
+    /**
+     * 省份名称
+     */
     public void setProvinceName(String provinceName) {
         this.provinceName = provinceName;
     }
 
+    /**
+     * 法务 0否 1是
+     */
     public Integer getLegalAffairs() {
         return legalAffairs;
     }
 
+    /**
+     * 法务 0否 1是
+     */
     public void setLegalAffairs(Integer legalAffairs) {
         this.legalAffairs = legalAffairs;
     }
 
+    /**
+     * 催款启动日期
+     */
     public Date getDunStartTime() {
         return dunStartTime;
     }
 
+    /**
+     * 催款启动日期
+     */
     public void setDunStartTime(Date dunStartTime) {
         this.dunStartTime = dunStartTime;
     }
 
+    /**
+     * 法务状态 0法务催收中 1延期法务 2已完成法务
+     */
     public Integer getLegalAffairsType() {
         return legalAffairsType;
     }
 
+    /**
+     * 法务状态 0法务催收中 1延期法务 2已完成法务
+     */
     public void setLegalAffairsType(Integer legalAffairsType) {
         this.legalAffairsType = legalAffairsType;
     }
 
+    /**
+     * 催款日期
+     */
     public Date getOperationTime() {
         return operationTime;
     }
 
+    /**
+     * 催款日期
+     */
     public void setOperationTime(Date operationTime) {
         this.operationTime = operationTime;
     }
 
+    /**
+     * 法务状态 0否 1已回款 2已诉讼 3已坏账处理
+     */
     public Integer getLegalAffairsStatus() {
         return legalAffairsStatus;
     }
 
+    /**
+     * 法务状态 0否 1已回款 2已诉讼 3已坏账处理
+     */
     public void setLegalAffairsStatus(Integer legalAffairsStatus) {
         this.legalAffairsStatus = legalAffairsStatus;
     }
 
+    /**
+     * 会员 0否 1是
+     */
     public Integer getProjectType() {
         return projectType;
     }
 
+    /**
+     * 会员 0否 1是
+     */
     public void setProjectType(Integer projectType) {
         this.projectType = projectType;
     }
 
+    /**
+     * 服务类型
+     */
     public String getServiceType() {
         return serviceType;
     }
 
+    /**
+     * 服务类型
+     */
     public void setServiceType(String serviceType) {
         this.serviceType = serviceType;
     }
 
+    /**
+     * 服务项目
+     */
     public String getServiceProject() {
         return serviceProject;
     }
 
+    /**
+     * 服务项目
+     */
     public void setServiceProject(String serviceProject) {
         this.serviceProject = serviceProject;
     }
 
+    /**
+     * 专利成本
+     */
     public BigDecimal getPatentCost() {
         return patentCost;
     }
 
+    /**
+     * 专利成本
+     */
     public void setPatentCost(BigDecimal patentCost) {
         this.patentCost = patentCost;
     }
 
+    /**
+     * 专利成本实付
+     */
     public BigDecimal getPatentCostActual() {
         return patentCostActual;
     }
 
+    /**
+     * 专利成本实付
+     */
     public void setPatentCostActual(BigDecimal patentCostActual) {
         this.patentCostActual = patentCostActual;
     }
 
+    /**
+     * 软著成本
+     */
     public BigDecimal getSoftCost() {
         return softCost;
     }
 
+    /**
+     * 软著成本
+     */
     public void setSoftCost(BigDecimal softCost) {
         this.softCost = softCost;
     }
 
+    /**
+     * 软著成本实付
+     */
     public BigDecimal getSoftCostActual() {
         return softCostActual;
     }
 
+    /**
+     * 软著成本实付
+     */
     public void setSoftCostActual(BigDecimal softCostActual) {
         this.softCostActual = softCostActual;
     }
 
+    /**
+     * 审计成本
+     */
     public BigDecimal getAuditCost() {
         return auditCost;
     }
 
+    /**
+     * 审计成本
+     */
     public void setAuditCost(BigDecimal auditCost) {
         this.auditCost = auditCost;
     }
 
+    /**
+     * 审计成本实付
+     */
     public BigDecimal getAuditCostActual() {
         return auditCostActual;
     }
 
+    /**
+     * 审计成本实付
+     */
     public void setAuditCostActual(BigDecimal auditCostActual) {
         this.auditCostActual = auditCostActual;
     }
 
+    /**
+     * 其他成本
+     */
     public BigDecimal getOtherCost() {
         return otherCost;
     }
 
+    /**
+     * 其他成本
+     */
     public void setOtherCost(BigDecimal otherCost) {
         this.otherCost = otherCost;
     }
 
+    /**
+     * 其他成本实付
+     */
     public BigDecimal getOtherCostActual() {
         return otherCostActual;
     }
 
+    /**
+     * 其他成本实付
+     */
     public void setOtherCostActual(BigDecimal otherCostActual) {
         this.otherCostActual = otherCostActual;
     }
 
+    /**
+     * 预计毛利
+     */
     public BigDecimal getExpectProfit() {
         return expectProfit;
     }
 
+    /**
+     * 预计毛利
+     */
     public void setExpectProfit(BigDecimal expectProfit) {
         this.expectProfit = expectProfit;
     }
 
+    /**
+     * 实际毛利
+     */
     public BigDecimal getActualProfit() {
         return actualProfit;
     }
 
+    /**
+     * 实际毛利
+     */
     public void setActualProfit(BigDecimal actualProfit) {
         this.actualProfit = actualProfit;
     }
 
+    /**
+     * 暂停项目  0无 1有
+     */
     public Integer getStopProject() {
         return stopProject;
     }
 
+    /**
+     * 暂停项目  0无 1有
+     */
     public void setStopProject(Integer stopProject) {
         this.stopProject = stopProject;
     }
+
+    /**
+     * 会员 0否 1是
+     */
+    public Integer getBidType() {
+        return bidType;
+    }
+
+    /**
+     * 会员 0否 1是
+     */
+    public void setBidType(Integer bidType) {
+        this.bidType = bidType;
+    }
 }

+ 183 - 0
src/main/java/com/goafanti/common/model/TOrderPublicReleaseCount.java

@@ -0,0 +1,183 @@
+package com.goafanti.common.model;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 订单公出信息表
+ * @TableName t_order_public_release_count
+ */
+public class TOrderPublicReleaseCount implements Serializable {
+    /**
+     * 
+     */
+    private Integer id;
+
+    /**
+     * 订单编号
+     */
+    private String orderNo;
+
+    /**
+     * 状态0=无需限制,1需要限制
+     */
+    private Integer status;
+
+    /**
+     * 最大公出
+     */
+    private Double maxDuration;
+
+    /**
+     * 实际公出
+     */
+    private Double actualDuration;
+
+    /**
+     * 超出公出
+     */
+    private Double exceedDuration;
+
+    /**
+     * 公出人数
+     */
+    private Integer peopleCount;
+
+    /**
+     * 公出次数
+     */
+    private Integer frequency;
+
+    /**
+     * 发起时间
+     */
+    private Date createTime;
+
+    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;
+    }
+
+    /**
+     * 状态0=无需限制,1需要限制
+     */
+    public Integer getStatus() {
+        return status;
+    }
+
+    /**
+     * 状态0=无需限制,1需要限制
+     */
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    /**
+     * 最大公出
+     */
+    public Double getMaxDuration() {
+        return maxDuration;
+    }
+
+    /**
+     * 最大公出
+     */
+    public void setMaxDuration(Double maxDuration) {
+        this.maxDuration = maxDuration;
+    }
+
+    /**
+     * 实际公出
+     */
+    public Double getActualDuration() {
+        return actualDuration;
+    }
+
+    /**
+     * 实际公出
+     */
+    public void setActualDuration(Double actualDuration) {
+        this.actualDuration = actualDuration;
+    }
+
+    /**
+     * 超出公出
+     */
+    public Double getExceedDuration() {
+        return exceedDuration;
+    }
+
+    /**
+     * 超出公出
+     */
+    public void setExceedDuration(Double exceedDuration) {
+        this.exceedDuration = exceedDuration;
+    }
+
+    /**
+     * 公出人数
+     */
+    public Integer getPeopleCount() {
+        return peopleCount;
+    }
+
+    /**
+     * 公出人数
+     */
+    public void setPeopleCount(Integer peopleCount) {
+        this.peopleCount = peopleCount;
+    }
+
+    /**
+     * 公出次数
+     */
+    public Integer getFrequency() {
+        return frequency;
+    }
+
+    /**
+     * 公出次数
+     */
+    public void setFrequency(Integer frequency) {
+        this.frequency = frequency;
+    }
+
+    /**
+     * 发起时间
+     */
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    /**
+     * 发起时间
+     */
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+}

+ 128 - 169
src/main/java/com/goafanti/common/model/TTaskLog.java

@@ -1,170 +1,129 @@
-package com.goafanti.common.model;
-
-import java.util.Date;
-
-public class TTaskLog {
-    /**
-     *
-     * This field was generated by MyBatis Generator.
-     * This field corresponds to the database column t_task_log.id
-     *
-     * @mbg.generated Tue Dec 04 15:28:04 CST 2018
-     */
-    private Integer id;
-
-    /**
-     *
-     * This field was generated by MyBatis Generator.
-     * This field corresponds to the database column t_task_log.task_id
-     *
-     * @mbg.generated Tue Dec 04 15:28:04 CST 2018
-     */
-    private Integer taskId;
-
-    /**
-     *
-     * This field was generated by MyBatis Generator.
-     * This field corresponds to the database column t_task_log.task_allocator
-     *
-     * @mbg.generated Tue Dec 04 15:28:04 CST 2018
-     */
-    private String taskAllocator;
-
-    /**
-     *
-     * This field was generated by MyBatis Generator.
-     * This field corresponds to the database column t_task_log.task_receiver
-     *
-     * @mbg.generated Tue Dec 04 15:28:04 CST 2018
-     */
-    private String taskReceiver;
-
-    /**
-     *
-     * This field was generated by MyBatis Generator.
-     * This field corresponds to the database column t_task_log.create_time
-     *
-     * @mbg.generated Tue Dec 04 15:28:04 CST 2018
-     */
-    private Date createTime;
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method returns the value of the database column t_task_log.id
-     *
-     * @return the value of t_task_log.id
-     *
-     * @mbg.generated Tue Dec 04 15:28:04 CST 2018
-     */
-    public Integer getId() {
-        return id;
-    }
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method sets the value of the database column t_task_log.id
-     *
-     * @param id the value for t_task_log.id
-     *
-     * @mbg.generated Tue Dec 04 15:28:04 CST 2018
-     */
-    public void setId(Integer id) {
-        this.id = id;
-    }
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method returns the value of the database column t_task_log.task_id
-     *
-     * @return the value of t_task_log.task_id
-     *
-     * @mbg.generated Tue Dec 04 15:28:04 CST 2018
-     */
-    public Integer getTaskId() {
-        return taskId;
-    }
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method sets the value of the database column t_task_log.task_id
-     *
-     * @param taskId the value for t_task_log.task_id
-     *
-     * @mbg.generated Tue Dec 04 15:28:04 CST 2018
-     */
-    public void setTaskId(Integer taskId) {
-        this.taskId = taskId;
-    }
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method returns the value of the database column t_task_log.task_allocator
-     *
-     * @return the value of t_task_log.task_allocator
-     *
-     * @mbg.generated Tue Dec 04 15:28:04 CST 2018
-     */
-    public String getTaskAllocator() {
-        return taskAllocator;
-    }
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method sets the value of the database column t_task_log.task_allocator
-     *
-     * @param taskAllocator the value for t_task_log.task_allocator
-     *
-     * @mbg.generated Tue Dec 04 15:28:04 CST 2018
-     */
-    public void setTaskAllocator(String taskAllocator) {
-        this.taskAllocator = taskAllocator;
-    }
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method returns the value of the database column t_task_log.task_receiver
-     *
-     * @return the value of t_task_log.task_receiver
-     *
-     * @mbg.generated Tue Dec 04 15:28:04 CST 2018
-     */
-    public String getTaskReceiver() {
-        return taskReceiver;
-    }
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method sets the value of the database column t_task_log.task_receiver
-     *
-     * @param taskReceiver the value for t_task_log.task_receiver
-     *
-     * @mbg.generated Tue Dec 04 15:28:04 CST 2018
-     */
-    public void setTaskReceiver(String taskReceiver) {
-        this.taskReceiver = taskReceiver;
-    }
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method returns the value of the database column t_task_log.create_time
-     *
-     * @return the value of t_task_log.create_time
-     *
-     * @mbg.generated Tue Dec 04 15:28:04 CST 2018
-     */
-    public Date getCreateTime() {
-        return createTime;
-    }
-
-    /**
-     * This method was generated by MyBatis Generator.
-     * This method sets the value of the database column t_task_log.create_time
-     *
-     * @param createTime the value for t_task_log.create_time
-     *
-     * @mbg.generated Tue Dec 04 15:28:04 CST 2018
-     */
-    public void setCreateTime(Date createTime) {
-        this.createTime = createTime;
-    }
+package com.goafanti.common.model;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 项目任务日志
+ * @TableName t_task_log
+ */
+public class TTaskLog implements Serializable {
+    /**
+     * 流转id
+     */
+    private Integer id;
+
+    /**
+     * 任务id
+     */
+    private Integer taskId;
+
+    /**
+     * 分派人
+     */
+    private String taskAllocator;
+
+    /**
+     * 归属人
+     */
+    private String taskReceiver;
+
+    /**
+     * 分配时间
+     */
+    private Date createTime;
+
+    /**
+     * 状态 0=咨询师管理员派单,1=咨询师经理派单,2=咨询师经理转交,3=咨询师转交,4=咨询师回退
+     */
+    private Integer status;
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 流转id
+     */
+    public Integer getId() {
+        return id;
+    }
+
+    /**
+     * 流转id
+     */
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    /**
+     * 任务id
+     */
+    public Integer getTaskId() {
+        return taskId;
+    }
+
+    /**
+     * 任务id
+     */
+    public void setTaskId(Integer taskId) {
+        this.taskId = taskId;
+    }
+
+    /**
+     * 分派人
+     */
+    public String getTaskAllocator() {
+        return taskAllocator;
+    }
+
+    /**
+     * 分派人
+     */
+    public void setTaskAllocator(String taskAllocator) {
+        this.taskAllocator = taskAllocator;
+    }
+
+    /**
+     * 归属人
+     */
+    public String getTaskReceiver() {
+        return taskReceiver;
+    }
+
+    /**
+     * 归属人
+     */
+    public void setTaskReceiver(String taskReceiver) {
+        this.taskReceiver = taskReceiver;
+    }
+
+    /**
+     * 分配时间
+     */
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    /**
+     * 分配时间
+     */
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    /**
+     * 状态 0=咨询师管理员派单,1=咨询师经理派单,2=咨询师经理转交,3=咨询师转交,4=咨询师回退
+     */
+    public Integer getStatus() {
+        return status;
+    }
+
+    /**
+     * 状态 0=咨询师管理员派单,1=咨询师经理派单,2=咨询师经理转交,3=咨询师转交,4=咨询师回退
+     */
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
 }

+ 5 - 0
src/main/java/com/goafanti/common/utils/DateUtils.java

@@ -416,6 +416,11 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
 		return format.format(date);
 	}
 
+	public static String formatDateYYYYMMddHHmm(Date date) {
+		SimpleDateFormat format = new SimpleDateFormat(parsePatterns[2]);
+		return format.format(date);
+	}
+
 	/**
 	 * 解析日期
 	 * @param source

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

@@ -111,7 +111,7 @@ public class FileUtils {
 			if (uniq) {
 				fileName = path + uid + "/" + System.nanoTime() + "_" + sign + suffix;
 			} else {
-				fileName = path + uid + "/" +  sign + suffix;
+				fileName = path + uid + "/"  +  sign + suffix;
 			}
 		} else {
 			fileName = path + uid + "/" + System.nanoTime() + suffix;

+ 21 - 26
src/main/java/com/goafanti/common/utils/HttpUtils.java

@@ -14,7 +14,9 @@ import org.apache.http.impl.client.HttpClientBuilder;
 import org.apache.http.util.EntityUtils;
 
 import java.io.IOException;
-import java.nio.charset.Charset;
+import java.net.UnknownHostException;
+import java.nio.charset.StandardCharsets;
+import java.util.HashMap;
 import java.util.Map;
 import java.util.Set;
 
@@ -60,51 +62,44 @@ public class HttpUtils {
 			httpPost.setHeader("Accept", "application/json");
 			if (type==0){
 				httpPost.addHeader("Content-type", "application/json");
-				httpPost.setEntity(new StringEntity(JSON.toJSONString(map), Charset.forName("UTF-8")));
+				httpPost.setEntity(new StringEntity(JSON.toJSONString(map), StandardCharsets.UTF_8));
 			}else{
 				httpPost.addHeader("Content-type", "application/x-www-form-urlencoded");
-				httpPost.setEntity(new StringEntity(ParamMap(map), Charset.forName("UTF-8")));
+				httpPost.setEntity(new StringEntity(ParamMap(map), StandardCharsets.UTF_8));
 			}
 
 			HttpResponse response = null;
 			try {
 				response = httpClient.execute(httpPost);
-			if (null == response || response.getStatusLine() == null) {
-				throw new Exception("Post Request For Url[{}] is not ok. Response is null");
-			} else if (response.getStatusLine().getStatusCode() != HttpStatus.SC_OK) {
-				throw new Exception("Post Request For Url[{}] is not ok. Response Status Code is {"+response.getStatusLine().getStatusCode()+"}");
-			}
-			} catch (ClientProtocolException e) {
-				e.printStackTrace();
-			} catch (IOException e) {
-				e.printStackTrace();
+				if (null == response || response.getStatusLine() == null) {
+					throw new Exception("Post Request For Url[{}] is not ok. Response is null");
+				} else if (response.getStatusLine().getStatusCode() != HttpStatus.SC_OK) {
+					throw new Exception("Post Request For Url[{}] is not ok. Response Status Code is {"+response.getStatusLine().getStatusCode()+"}");
+				}
+			} catch (UnknownHostException uhe) {
+				LoggerUtils.error(HttpUtils.class,uhe.getMessage());
 			} catch (Exception e) {
 				e.printStackTrace();
 			}
 			String resultString=null;
 			try {
-				resultString = EntityUtils.toString(response.getEntity());
-			} catch (ParseException | IOException e) {
+                if (response != null) {
+                    resultString = EntityUtils.toString(response.getEntity());
+                }
+            } catch (ParseException | IOException e) {
 				e.printStackTrace();
 			}
-			JSONObject jsonObj = JSONObject.parseObject(resultString);
-			return jsonObj;
+            return JSONObject.parseObject(resultString);
 			}
 
 	private static String ParamMap(Map<String, Object> map) {
-		StringBuffer str =new StringBuffer();
+		StringBuilder str =new StringBuilder();
 		Set<String> strings = map.keySet();
 		for (String string : strings) {
-			str=str.append(string).append("=").append(map.get(string)).append("&");
-		}
-		String substring = str.substring(0, str.length() - 1);
-		return substring;
+            str.append(string).append("=").append(map.get(string)).append("&");
+        }
+        return str.substring(0, str.length() - 1);
 	}
 
 
-	public static void main(String[] args) {
-		JSONObject jsonObject = httpGet("https://book.yunzhan365.com/spfoh/yieb/mobile/index.html");
-		System.out.println(jsonObject.toString());
-	}
-
 }

+ 1 - 0
src/main/java/com/goafanti/core/cache/serializer/FastJsonRedisSerializer.java

@@ -32,6 +32,7 @@ public class FastJsonRedisSerializer implements RedisSerializer<Object> {
 		pc.addAccept("com.goafanti.common.bo.OutPoverty");
 		pc.addAccept("com.goafanti.common.bo.OutPovertyFlag");
 		pc.addAccept("com.goafanti.expenseAccount.bo.ExpenseCountsBo");
+		pc.addAccept("com.goafanti.weChat.bo.releaseAndExpenseCountOut");
 
 	}
 

+ 2 - 2
src/main/java/com/goafanti/core/mybatis/page/Pagination.java

@@ -9,7 +9,7 @@ public class Pagination<T> extends SimplePage implements java.io.Serializable, P
 	/**
 	 * 当前页的数据
 	 */
-	private List<?> list = new ArrayList<>();
+	private List<T> list = new ArrayList<>();
 
 	public Pagination() {
 	}
@@ -31,7 +31,7 @@ public class Pagination<T> extends SimplePage implements java.io.Serializable, P
 		return list;
 	}
 
-	public void setList(List<?> list) {
+	public void setList(List list) {
 		this.list = list;
 	}
 

+ 38 - 0
src/main/java/com/goafanti/customer/bo/InputExcelUser.java

@@ -0,0 +1,38 @@
+package com.goafanti.customer.bo;
+
+import com.goafanti.common.utils.excel.Excel;
+
+public class InputExcelUser {
+
+    @Excel(name = "客户名称")
+    private String name;
+    @Excel(name = "联系方式")
+    private String phone;
+
+    @Excel(name = "类型",readConverterExp = "0=无,1=已存在")
+    private Integer type;
+
+    public Integer getType() {
+        return type;
+    }
+
+    public void setType(Integer type) {
+        this.type = type;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getPhone() {
+        return phone;
+    }
+
+    public void setPhone(String phone) {
+        this.phone = phone;
+    }
+}

+ 26 - 0
src/main/java/com/goafanti/customer/controller/AdminCustomerApiController.java

@@ -25,7 +25,9 @@ import org.springframework.validation.BindingResult;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
@@ -1586,4 +1588,28 @@ public class AdminCustomerApiController extends BaseApiController{
 	public Result selectUserLastSignExport (InputSelectUserLastSignBo in){
 		return customerService.selectUserLastSignExport(in);
 	}
+
+
+	/**
+	 * 	Excel批量导入
+	 *
+	 * @return
+	 */
+	@RequestMapping(value = "/importExcel" , method = RequestMethod.POST)
+	public Result importExcel(@RequestParam(value = "file", required = false) MultipartFile file) {
+		Result res=new Result();
+		//判断文件是否存在
+		if(null == file){
+			res.getError().add(buildError("文件不存在!","文件不存在!"));
+			return res;
+		}
+		String fileName = file.getOriginalFilename();
+		if (!fileName.matches("^.+\\.(?i)(xls)$") && !fileName.matches("^.+\\.(?i)(xlsx)$")) {
+			res.getError().add(buildError("格式不正确","格式不正确"));
+			return res;
+		}
+//		res.data(rdService.batchList(file));
+		res.data(customerService.importExcel(file));
+		return res;
+	}
 }

+ 3 - 0
src/main/java/com/goafanti/customer/service/CustomerService.java

@@ -10,6 +10,7 @@ import com.goafanti.common.model.User;
 import com.goafanti.core.mybatis.page.Pagination;
 import com.goafanti.customer.bo.*;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.springframework.web.multipart.MultipartFile;
 
 import java.text.ParseException;
 import java.util.Date;
@@ -584,4 +585,6 @@ public interface CustomerService {
 	void updateAdminUserCountByAid(String aid);
 
 	AdminUserCount getAdminUserCount(String aid, String startTime);
+
+    Object importExcel(MultipartFile file);
 }

+ 59 - 7
src/main/java/com/goafanti/customer/service/impl/CustomerServiceImpl.java

@@ -28,6 +28,7 @@ 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 org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.socket.TextMessage;
 
 import javax.annotation.Resource;
@@ -345,6 +346,7 @@ public class CustomerServiceImpl extends BaseMybatisDao<UserMapper> implements C
 	public int addCustomer(InputAddCustomer in) throws BusinessException {
 		User user = new User();
 		Date now = new Date();
+		String aid=TokenManager.getAdminId();
 		String uid = UUID.randomUUID().toString();
 		String identifyId = UUID.randomUUID().toString();
 		user.setId(uid);
@@ -375,8 +377,8 @@ public class CustomerServiceImpl extends BaseMybatisDao<UserMapper> implements C
 		user.setChannel(0);
 		passwordUtil.encryptPassword(user);
 		String aname = adminMapper.selectByPrimaryKey(TokenManager.getAdminId()).getName();
-		if (in.getType() == UserType.PERSONAL.getCode()) {
-			if (userMapper.checkUser("", "", in.getContactMobile(), in.getType(), null, null).size() > 0)
+		if (Objects.equals(in.getType(), UserType.PERSONAL.getCode())) {
+			if (!userMapper.checkUser("", "", in.getContactMobile(), in.getType(), null, null).isEmpty())
 				throw new BusinessException(new Error(ErrorConstants.CUSTOMER_ALREADY_EXIST, in.getName(), ""));
 			UserIdentity ui = new UserIdentity();
 			ui.setId(identifyId);
@@ -392,7 +394,7 @@ public class CustomerServiceImpl extends BaseMybatisDao<UserMapper> implements C
 			ui.setInternational(AFTConstants.NO);
 			ui.setAuditStatus(IdentityProcess.SUCCESS.getCode());// 认证个人
 			userIdentityMapper.insert(ui);
-		} else if (in.getType() == UserType.ORGANIZATION.getCode()) {
+		} else if (Objects.equals(in.getType(), UserType.ORGANIZATION.getCode())) {
 			checkUserName(in);
 			UserMid um=new UserMid();
 			um.setAid(user.getAid());
@@ -425,7 +427,8 @@ public class CustomerServiceImpl extends BaseMybatisDao<UserMapper> implements C
 		}
 		userMapper.insertSelective(user);
 		UserNames un=new UserNames();
-		un.setUid(user.getId());
+		un.setUid(uid);
+		un.setAid(aid);
 		un.setName(user.getNickname());
 		userNamesMapper.insertSelective(un);
 
@@ -532,8 +535,10 @@ public class CustomerServiceImpl extends BaseMybatisDao<UserMapper> implements C
 		return selectAUC;
 	}
 
-	private void checkUserName(InputAddCustomer in) {
-		if (userMapper.checkUser("", in.getName(), "", in.getType(), null, null).size() > 0)
+
+
+    private void checkUserName(InputAddCustomer in) {
+		if (!userMapper.checkUser("", in.getName(), "", in.getType(), null, null).isEmpty())
 			throw new BusinessException(new Error(ErrorConstants.CUSTOMER_ALREADY_EXIST, in.getName(), ""));
 		String name2=null;
 		if (in.getName().contains("(")){
@@ -542,7 +547,7 @@ public class CustomerServiceImpl extends BaseMybatisDao<UserMapper> implements C
 			name2=in.getName().replace("(","(").replace(")",")");
 		}
 		if (name2!=null){
-			if (userMapper.checkUser("", name2, "", in.getType(), null, null).size() > 0)
+			if (!userMapper.checkUser("", name2, "", in.getType(), null, null).isEmpty())
 				throw new BusinessException(new Error(ErrorConstants.CUSTOMER_ALREADY_EXIST, name2, ""));
 		}
 	}
@@ -2722,6 +2727,10 @@ public class CustomerServiceImpl extends BaseMybatisDao<UserMapper> implements C
 	private Object pushRetrun(Pagination<?> page) {
 		Admin admin = adminMapper.selectByPrimaryKey(TokenManager.getAdminId());
 		List<CustomerSimpleBo> list = (List<CustomerSimpleBo>) page.getList();
+		//公出权限 0正常 1全部   =1的用户,公出status=0(应该是不用审核)
+		//不然,就是 客户是公共客户   status=2
+		//再不然就是  是我自己的客户就是 status=0
+		//再不然就是status=1  (也就是不是公共客户,也不是我自己的客户,按理是需要审核)
 		list.forEach(e ->{
 			if (admin.getPublicPurview()==1){
 				//如果是白名单不管是不是自己都可以公出
@@ -3040,6 +3049,49 @@ public class CustomerServiceImpl extends BaseMybatisDao<UserMapper> implements C
 		}
 		return param;
 	}
+	@Override
+	public Object importExcel(MultipartFile file) {
+		NewExcelUtil<InputExcelUser> newExcelUtil=new NewExcelUtil<>(InputExcelUser.class);
+		List<InputExcelUser> list = null;
+		try {
+			list = newExcelUtil.importExcel(file.getInputStream(),0);
+		} catch (Exception e) {
+			throw new BusinessException(e.getMessage());
+		}
+		return pushUserName(list);
+	}
+
+	private Object pushUserName(List<InputExcelUser> list) {
+		List<InputExcelUser> res=new ArrayList<>();
+		List<InputExcelUser> list2=new ArrayList<>();
+		int i = 0;
+		for (InputExcelUser e : list) {
+			i++;
+			list2.add(e);
+			if (list2.size()==100||i==list.size()){
+				List<UserNamesListBo> userNamesListBos = userNamesMapper.selectUserNameList(list2);
+				if (!userNamesListBos.isEmpty()){
+					for (InputExcelUser excelUser : list2) {
+						for (UserNamesListBo ex2 : userNamesListBos) {
+							if (ex2.getName().equals(excelUser.getName())){
+								excelUser.setType(1);
+								break;
+							}
+						}
+						if(excelUser.getType()==null){
+							excelUser.setType(0);
+						}
+						if (excelUser.getType()==1){
+							res.add(excelUser);
+						}
 
+					}
+				}
+				list2.clear();
+			}
+
+		}
+		return res;
+	}
 
 }

+ 35 - 0
src/main/java/com/goafanti/expenseAccount/bo/ExpenseCountsBo.java

@@ -11,6 +11,8 @@ public class ExpenseCountsBo {
     private String depId;
 
     private String depName;
+
+    private String  maxDuration ,actualDuration ,exceedDuration;
     private BigDecimal totalAmount;
     private BigDecimal settlementAmount;
     private BigDecimal expenseAmount;
@@ -21,6 +23,39 @@ public class ExpenseCountsBo {
 
     private Integer notExamine;
     private Integer days;
+    private Integer bidType;
+
+    public Integer getBidType() {
+        return bidType;
+    }
+
+    public void setBidType(Integer bidType) {
+        this.bidType = bidType;
+    }
+
+    public String getMaxDuration() {
+        return maxDuration;
+    }
+
+    public void setMaxDuration(String maxDuration) {
+        this.maxDuration = maxDuration;
+    }
+
+    public String getActualDuration() {
+        return actualDuration;
+    }
+
+    public void setActualDuration(String actualDuration) {
+        this.actualDuration = actualDuration;
+    }
+
+    public String getExceedDuration() {
+        return exceedDuration;
+    }
+
+    public void setExceedDuration(String exceedDuration) {
+        this.exceedDuration = exceedDuration;
+    }
 
     public String getDepId() {
         return depId;

+ 83 - 5
src/main/java/com/goafanti/expenseAccount/bo/ExpenseCountsOrder.java

@@ -12,14 +12,20 @@ public class ExpenseCountsOrder extends ExpenseCountsBo{
     private String contractNo;
     @Excel(name = "客户名称")
     private String buyerName;
-
-    @Excel(name = "合同金额")
+    
+    @Excel(name = "应公出工时")
+    private String  maxDuration;
+    @Excel(name = "实际公出工时")
+    private String actualDuration;
+    @Excel(name = "超出工时")
+    private String exceedDuration;
+    @Excel(name = "合同金额",scale = 6)
     private BigDecimal totalAmount;
-    @Excel(name = "已收款")
+    @Excel(name = "已收款",scale = 6)
     private BigDecimal settlementAmount;
-    @Excel(name = "报销总额")
+    @Excel(name = "报销总额",scale = 6)
     private BigDecimal expenseAmount;
-    @Excel(name = "已付成本")
+    @Excel(name = "已付成本",scale = 6)
     private BigDecimal paymentAmount;
 
     @Excel(name = "报销人数")
@@ -32,6 +38,7 @@ public class ExpenseCountsOrder extends ExpenseCountsBo{
     private Integer notExamine;
     @Excel(name = "驳回单数")
     private Integer rejectCount;
+    private Integer exceedType;
 
     @Override
     public String getOrderNo() {
@@ -64,6 +71,45 @@ public class ExpenseCountsOrder extends ExpenseCountsBo{
     }
 
     @Override
+    public String getMaxDuration() {
+        if(maxDuration==null){
+            maxDuration="0";
+        }
+        return maxDuration;
+    }
+
+    @Override
+    public void setMaxDuration(String maxDuration) {
+        this.maxDuration = maxDuration;
+    }
+
+    @Override
+    public String getActualDuration() {
+        if(actualDuration==null){
+            actualDuration="0";
+        }
+        return actualDuration;
+    }
+
+    @Override
+    public void setActualDuration(String actualDuration) {
+        this.actualDuration = actualDuration;
+    }
+
+    @Override
+    public String getExceedDuration() {
+        if(exceedDuration==null){
+            exceedDuration="0";
+        }
+        return exceedDuration;
+    }
+
+    @Override
+    public void setExceedDuration(String exceedDuration) {
+        this.exceedDuration = exceedDuration;
+    }
+
+    @Override
     public BigDecimal getTotalAmount() {
         return totalAmount;
     }
@@ -85,6 +131,9 @@ public class ExpenseCountsOrder extends ExpenseCountsBo{
 
     @Override
     public BigDecimal getExpenseAmount() {
+        if(expenseAmount==null){
+            return BigDecimal.ZERO;
+        }
         return expenseAmount;
     }
 
@@ -95,6 +144,9 @@ public class ExpenseCountsOrder extends ExpenseCountsBo{
 
     @Override
     public BigDecimal getPaymentAmount() {
+        if(paymentAmount==null){
+            paymentAmount=BigDecimal.ZERO;
+        }
         return paymentAmount;
     }
 
@@ -105,6 +157,9 @@ public class ExpenseCountsOrder extends ExpenseCountsBo{
 
     @Override
     public Integer getPeopleCount() {
+        if(peopleCount==null){
+            peopleCount=0;
+        }
         return peopleCount;
     }
 
@@ -115,6 +170,9 @@ public class ExpenseCountsOrder extends ExpenseCountsBo{
 
     @Override
     public Integer getDays() {
+        if(days==null){
+            days=0;
+        }
         return days;
     }
 
@@ -125,6 +183,9 @@ public class ExpenseCountsOrder extends ExpenseCountsBo{
 
     @Override
     public Integer getExpenseCount() {
+        if(expenseCount==null){
+            expenseCount=0;
+        }
         return expenseCount;
     }
 
@@ -135,6 +196,9 @@ public class ExpenseCountsOrder extends ExpenseCountsBo{
 
     @Override
     public Integer getNotExamine() {
+        if(notExamine==null){
+            notExamine=0;
+        }
         return notExamine;
     }
 
@@ -145,6 +209,9 @@ public class ExpenseCountsOrder extends ExpenseCountsBo{
 
     @Override
     public Integer getRejectCount() {
+        if(rejectCount==null){
+            rejectCount=0;
+        }
         return rejectCount;
     }
 
@@ -152,4 +219,15 @@ public class ExpenseCountsOrder extends ExpenseCountsBo{
     public void setRejectCount(Integer rejectCount) {
         this.rejectCount = rejectCount;
     }
+
+    public Integer getExceedType() {
+        if(exceedType==null){
+            exceedType=0;
+        }
+        return exceedType;
+    }
+
+    public void setExceedType(Integer exceedType) {
+        this.exceedType = exceedType;
+    }
 }

+ 19 - 0
src/main/java/com/goafanti/expenseAccount/bo/SonExpenseAccount.java

@@ -33,8 +33,27 @@ public class SonExpenseAccount {
     private BigDecimal debitRealAmount;
     private BigDecimal debitSettlementAmount;
     private Integer debitLiquidationStatus;
+    private Integer bidType;
+    private String  countStr;
     private List<SonExpenseAccountDetails> detList;
 
+    public Integer getBidType() {
+        return bidType;
+    }
+
+    public void setBidType(Integer bidType) {
+        this.bidType = bidType;
+    }
+
+    public String getCountStr() {
+        return countStr;
+    }
+
+    public void setCountStr(String countStr) {
+        this.countStr = countStr;
+    }
+
+
     public String getBuyerId() {
         return buyerId;
     }

+ 31 - 2
src/main/java/com/goafanti/expenseAccount/service/impl/ExpenseAccountServiceImpl.java

@@ -80,6 +80,11 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
     private DepartmentMapper departmentMapper;
     @Autowired
     private ExpenseConfigDetailsMapper expenseConfigDetailsMapper;
+    @Autowired
+    private TOrderTaskMapper tOrderTaskMapper;
+    @Autowired
+    private TOrderPublicReleaseCountMapper tOrderPublicReleaseCountMapper;
+
 
 
 
@@ -1389,7 +1394,7 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
 
     private void pushData(MainExpenseAccount res) {
         List<SonExpenseAccount> sonList = res.getSonList();
-        sonList.stream().forEach(e->{
+        for (SonExpenseAccount e : sonList) {
             if (StringUtils.isNotEmpty(e.getUserNames())){
                 String userNames = e.getUserNames();
                 String  districtName = e.getDistrictName();
@@ -1403,12 +1408,35 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
                     districtName=districtName.replace(userNames,"");
                     e.setDistrictName(districtName);
                 }
+
+
+            }
+            if (e.getOrderNo()!=null){
+                TOrderPublicReleaseCount out = tOrderPublicReleaseCountMapper.selectByOrderNo(e.getOrderNo());
+                List<ExpenseAccount> expenseAccounts = expenseAccountMapper.selectByOrderNo(e.getOrderNo());
+                BigDecimal reduce = expenseAccounts.stream().map(ExpenseAccount::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
+                String str = getString(e, out, reduce);
+                e.setCountStr(str);
             }
+        }
+
+
 
-        });
 
     }
 
+    private String getString(SonExpenseAccount e, TOrderPublicReleaseCount out, BigDecimal reduce) {
+        String maxString=":应公出" + out.getMaxDuration() + "小时";
+        if (out.getMaxDuration().equals(-1d))maxString=":不限制公出小时";
+        String str = e.getBuyerName() + e.getContractNo() +
+                maxString +
+                ",已" + out.getPeopleCount() + "人公出," +
+                out.getFrequency() + "次" +
+                "," + out.getActualDuration() + "小时" +
+                ",超过" + out.getExceedDuration() + "小时" +
+                ",已报销" + reduce.stripTrailingZeros().toPlainString() + "元";
+        return str;
+    }
 
 
     @Override
@@ -1661,6 +1689,7 @@ public class ExpenseAccountServiceImpl extends BaseMybatisDao<ExpenseAccountMapp
                 //财务管理员和超级管理员查看全部
                 in.setProcessStatus(6);
                 param.put("auditor",TokenManager.getAdminId());
+                if(StringUtils.isNotBlank(in.getAid()))param.put("aid",in.getAid());
             }else if (TokenManager.hasRole(AFTConstants.FINANCE)){
                 //0 设置为财务查看
 

+ 10 - 1
src/main/java/com/goafanti/expenseAccount/service/impl/ExpenseCountsServiceImpl.java

@@ -2,6 +2,7 @@ package com.goafanti.expenseAccount.service.impl;
 
 import com.goafanti.common.dao.TOrderNewMapper;
 import com.goafanti.common.utils.LoggerUtils;
+import com.goafanti.expenseAccount.bo.ExpenseCountsBo;
 import com.goafanti.expenseAccount.bo.ExpenseCountsInput;
 import com.goafanti.expenseAccount.service.ExpenseCountsService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -9,6 +10,8 @@ import org.springframework.cache.annotation.CacheEvict;
 import org.springframework.cache.annotation.Cacheable;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 @Service
 public class ExpenseCountsServiceImpl implements ExpenseCountsService {
 
@@ -19,7 +22,13 @@ public class ExpenseCountsServiceImpl implements ExpenseCountsService {
     public Object getCounts(ExpenseCountsInput in) {
         if (in.getTargetType()==null)in.setTargetType(1);
         if (in.getTargetType()==1){
-            return tOrderNewMapper.selectExpenseCount(in);
+            List<ExpenseCountsBo> expenseCountsBos = tOrderNewMapper.selectExpenseCount(in);
+            expenseCountsBos.forEach(e->{
+               if (e.getMaxDuration().equals("-1")){
+                   e.setMaxDuration("不限制");
+               }
+            });
+            return expenseCountsBos;
         }else {
             return tOrderNewMapper.selectExpenseDepCount(in);
         }

+ 28 - 0
src/main/java/com/goafanti/order/bo/OutTTaskLog.java

@@ -0,0 +1,28 @@
+package com.goafanti.order.bo;
+
+import com.goafanti.common.model.TTaskLog;
+
+public class OutTTaskLog extends TTaskLog {
+
+
+    private String taskAllocatorName;
+
+    private String taskReceiverName;
+
+
+    public String getTaskAllocatorName() {
+        return taskAllocatorName;
+    }
+
+    public void setTaskAllocatorName(String taskAllocatorName) {
+        this.taskAllocatorName = taskAllocatorName;
+    }
+
+    public String getTaskReceiverName() {
+        return taskReceiverName;
+    }
+
+    public void setTaskReceiverName(String taskReceiverName) {
+        this.taskReceiverName = taskReceiverName;
+    }
+}

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

@@ -340,7 +340,7 @@ public class AdminNewOrderApiController extends CertifyApiController {
 	}
 
 	/**
-	 * 		订单列表导出文件
+	 * 		订单列表导出文件(压缩包)
 	 *  specially 0 个人 1 营销员管理 2 驳回 3 特批 4 咨询师管理 5部门订单查询 6客服查询 7统计签单订单 8客户订单列表 9 复审订单 10 营销经理
 	 *  distribution (咨询师管理列表 0 未分配 1部分 2全部
 	 *  amountStatus  0 10万元以下 1 10万~20万 2 20万~30万 3 30万~40万  4 40万以上

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

@@ -228,6 +228,16 @@ public class OrderProjectApiController extends CertifyApiController {
 		res.setData(orderProjectService.TaskLogList(id));
 		return res;
 	}
+
+	/**
+	 * 任务派单日志
+	 */
+	@RequestMapping(value="/dispatchTaskLog" ,method = RequestMethod.GET)
+	public Result dispatchTaskLog(Integer id){
+		Result res=new Result();
+		res.setData(orderProjectService.dispatchTaskLog(id));
+		return res;
+	}
 	/** 任务文件上传 **/
 	@RequestMapping(value = "/uploadOrderTaskFile", method = RequestMethod.POST)
 	public Result uploadOrderTaskFile(HttpServletRequest req,String sign){

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

@@ -229,4 +229,6 @@ public interface OrderNewService {
 	void financeCountOrderUnauditedSubtraction(TOrderNew use, Integer i);
 
 	void orderNewListDownload(InputOrderNewListBo in, HttpServletResponse response);
+
+	void pushOrderPublicReleaseCount(String orderNo, Integer prid);
 }

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

@@ -148,4 +148,5 @@ public interface OrderProjectService {
 
     Object updateSatisfactionDegree(Integer id, Integer formRetrieve, Integer satisfactionDegree, String satisfactionDegreeUrl);
 
+	Object dispatchTaskLog(Integer id);
 }

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

@@ -960,6 +960,9 @@ 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(),null);
+		//修改投标标识
+		tOrderMidMapper.updateBidTypeByOrderNo(nb.getOrderNo());
 		return 1;
 	}
 

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

@@ -139,6 +139,10 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 	private AdminUserCountMapper adminUserCountMapper;
 	@Autowired
 	private FinanceCountMapper financeCountMapper;
+	@Autowired
+	private PublicReleaseMapper publicReleaseMapper;
+	@Autowired
+	private TOrderPublicReleaseCountMapper tOrderPublicReleaseCountMapper;
 
 
 	@Value(value = "${upload.path}")
@@ -606,6 +610,9 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 			if (str.length()>0)t.setExamineName(str.substring(0,str.length()-1));
 			TOrderNewBo order = tOrderNewMapper.getSaleIdByOno(t2.getOrderNo());
 			pushGeneralSendNoticeAndEmail(aids, type,order, TokenManager.getAdminId(),t.getApproval());
+
+			//如果有投标,标记成投标订单
+			tOrderMidMapper.updateBidTypeByOrderNo(t.getOrderNo());
 		}
 		//驳回重新发起,需要刷新当天和今天
 		boolean newOrderFlag=false;
@@ -632,6 +639,8 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 			}
 		}
 		tOrderNewMapper.updateByPrimaryKeySelective(t);
+		//计算公出统计
+		pushOrderPublicReleaseCount(t.getOrderNo(),null);
 		updateAdminUserCountOrder(t2.getSalesmanId(),t2.getCreateTime());
 		if (newOrderFlag){
 			updateAdminUserCountOrder(t2.getSalesmanId(),date);
@@ -641,6 +650,67 @@ public class OrderNewServiceImpl extends BaseMybatisDao<TOrderNewMapper> impleme
 
 
 
+	public void pushOrderPublicReleaseCount(String orderNo,Integer prId) {
+			List<PublicRelease> list = publicReleaseMapper.selectByOrderNo(orderNo);
+			TOrderNewBo t = tOrderNewMapper.getOrderNewDetail(orderNo);
+			BigDecimal durationCount = BigDecimal.ZERO;
+			int count=0;
+			List<String> peopleList = new ArrayList<>();
+
+			for (PublicRelease e : list) {
+				durationCount=durationCount.add(BigDecimal.valueOf(e.getDuration()));
+				if (!peopleList.contains(e.getAid())){
+					peopleList.add(e.getAid());
+				}
+				count++;
+			}
+
+		TOrderPublicReleaseCount out = tOrderPublicReleaseCountMapper.selectByOrderNo(orderNo);
+			if (out==null){
+				out=new TOrderPublicReleaseCount();
+				out.setOrderNo(orderNo);
+				out.setMaxDuration(0d);
+				out.setActualDuration(durationCount.doubleValue());
+				out.setPeopleCount(peopleList.size());
+				out.setFrequency(count);
+				pushMaxDuration(t,out);
+				tOrderPublicReleaseCountMapper.insertSelective(out);
+			}else {
+				out.setOrderNo(orderNo);
+				out.setMaxDuration(0d);
+				out.setActualDuration(durationCount.doubleValue());
+				out.setPeopleCount(peopleList.size());
+				out.setFrequency(count);
+				pushMaxDuration(t,out);
+				tOrderPublicReleaseCountMapper.updateByPrimaryKeySelective(out);
+			}
+
+
+	}
+
+	private void pushMaxDuration(TOrderNewBo t,TOrderPublicReleaseCount out ) {
+		BigDecimal res=BigDecimal.ZERO;
+		int status=1;
+		if (t.getTotalAmount().compareTo(BigDecimal.valueOf(1)) < 0) {
+			res=BigDecimal.ZERO;
+		} else if (t.getTotalAmount().compareTo(BigDecimal.valueOf(3))<0) {
+			res=BigDecimal.valueOf(15);
+
+		} else if (t.getTotalAmount().compareTo(BigDecimal.valueOf(5))<0) {
+			res=BigDecimal.valueOf(45);
+
+		} else if (t.getTotalAmount().compareTo(BigDecimal.valueOf(10))<0) {
+			res=BigDecimal.valueOf(120);
+
+		} else if (t.getTotalAmount().compareTo(BigDecimal.valueOf(10))>=0) {
+			status=0;
+		}
+		out.setMaxDuration(res.doubleValue());
+		out.setStatus(status);
+
+	}
+
+
 	@Override
 	public void updateAdminUserCountOrder(String aid,Date transferTime) {
 		String startTime= DateUtils.formatDate(transferTime,AFTConstants.YYYYMMDD);

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

@@ -320,8 +320,10 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 		Date lastSigningTime= tn.getSignTime();
 		if (!tOrderNewBos.isEmpty()){
 			for (TOrderNewBo e : tOrderNewBos) {
-				if (e.getSignTime().getTime()>lastSigningTime.getTime()){
-					lastSigningTime = e.getSignTime();
+				if(e.getSignTime()!=null){
+					if (e.getSignTime().getTime()>lastSigningTime.getTime()){
+						lastSigningTime = e.getSignTime();
+					}
 				}
 			}
 		}
@@ -1979,4 +1981,9 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
 		return tOrderTaskMapper.updateByPrimaryKeySelective(in);
 	}
 
+	@Override
+	public Object dispatchTaskLog(Integer id) {
+		return tTaskLogMapper.selectByTid(id);
+	}
+
 }

+ 2 - 2
src/main/java/com/goafanti/organization/service/impl/OrganizationServiceImpl.java

@@ -230,7 +230,7 @@ public class OrganizationServiceImpl extends BaseMybatisDao<DepartmentMapper> im
 		//财务与复审切换的时候要切换所有未审核的财务
 		boolean updateFinance=false;
 		boolean updateRetrialFinance=false;
-		if(StringUtils.isNotBlank(in.getFinanceId())&&!useDep.getFinanceId().equals(in.getFinanceId())){
+		if(StringUtils.isNotBlank(in.getFinanceId())&&!in.getFinanceId().equals(useDep.getFinanceId())){
 			dep.setFinanceId(in.getFinanceId());
 			//处理订单
 			departmentMapper.updateOrderDepFinanceNotExamine(in.getFinanceId(),useDep.getFinanceId());
@@ -239,7 +239,7 @@ public class OrganizationServiceImpl extends BaseMybatisDao<DepartmentMapper> im
 			updateFinance=true;
 		}
 		if (StringUtils.isNotBlank(in.getRetrialFinanceId())&&
-				!useDep.getRetrialFinanceId().equals(in.getRetrialFinanceId())){
+				!in.getRetrialFinanceId().equals(useDep.getRetrialFinanceId())){
 			dep.setRetrialFinanceId(in.getRetrialFinanceId());
 			departmentMapper.updateOrderDepFinanceNotExamine(in.getRetrialFinanceId(),useDep.getRetrialFinanceId());
 			List<String> list = torderNewMapper.selectByFinanceNotExamine(in.getRetrialFinanceId());

+ 88 - 0
src/main/java/com/goafanti/standard/bo/InputStandardList.java

@@ -0,0 +1,88 @@
+package com.goafanti.standard.bo;
+
+public class InputStandardList {
+    /**
+     * 分页
+     */
+    private Integer pageNo;
+    /**
+     * 每页显示条数
+     */
+    private Integer pageSize;
+    /**
+     * 名称
+     */
+    private String name;
+    /**
+     * 部门
+     */
+    private String depId;
+    /**
+     * 状态 null=全部 0=关闭  1=开启
+     */
+    private Integer status;
+    /**
+     * 开始时间
+     */
+    private String startTime;
+    /**
+     * 结束时间
+     */
+    private String endTime;
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getDepId() {
+        return depId;
+    }
+
+    public void setDepId(String depId) {
+        this.depId = depId;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    public String getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(String startTime) {
+        this.startTime = startTime;
+    }
+
+    public String getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(String endTime) {
+        this.endTime = endTime;
+    }
+
+    public Integer getPageNo() {
+        return pageNo;
+    }
+
+    public void setPageNo(Integer pageNo) {
+        this.pageNo = pageNo;
+    }
+
+    public Integer getPageSize() {
+        return pageSize;
+    }
+
+    public void setPageSize(Integer pageSize) {
+        this.pageSize = pageSize;
+    }
+}

+ 26 - 0
src/main/java/com/goafanti/standard/bo/OutStandardDocument.java

@@ -0,0 +1,26 @@
+package com.goafanti.standard.bo;
+
+import com.goafanti.common.model.StandardDocument;
+
+public class OutStandardDocument extends StandardDocument {
+
+    private String adminName;
+    private String depName;
+
+
+    public String getAdminName() {
+        return adminName;
+    }
+
+    public void setAdminName(String adminName) {
+        this.adminName = adminName;
+    }
+
+    public String getDepName() {
+        return depName;
+    }
+
+    public void setDepName(String depName) {
+        this.depName = depName;
+    }
+}

+ 104 - 0
src/main/java/com/goafanti/standard/controller/StandardApiController.java

@@ -0,0 +1,104 @@
+package com.goafanti.standard.controller;
+
+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.StandardDocument;
+import com.goafanti.core.mybatis.page.Pagination;
+import com.goafanti.core.shiro.token.TokenManager;
+import com.goafanti.standard.bo.InputStandardList;
+import com.goafanti.standard.bo.OutStandardDocument;
+import com.goafanti.standard.service.StandardService;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+
+@RestController
+@RequestMapping(value = "/api/admin/standard")
+public class StandardApiController extends CertifyApiController {
+
+    @Resource
+    private StandardService standardService;
+
+    /**
+     * 标准列表
+     */
+    @RequestMapping(value = "/list", method = RequestMethod.GET)
+    public Result list(InputStandardList in) {
+        Result res = new Result<Pagination<OutStandardDocument>>();
+        return res.data(standardService.list(in));
+    }
+    /**
+     * 标准详情
+     */
+    @RequestMapping(value = "/get", method = RequestMethod.GET)
+    public Result get(StandardDocument in) {
+        Result res = res();
+        return res.data(standardService.get(in));
+    }
+
+    /**
+     * 新增标准
+     */
+    @RequestMapping(value = "/add", method = RequestMethod.POST)
+    public Result add(StandardDocument in) {
+        Result res = res();
+        if (!TokenManager.hasRole(AFTConstants.SUPERADMIN)) {
+            res.error(buildError("操作权限不正确。"));
+            return res;
+        }
+        return res.data(standardService.add(in));
+    }
+
+    /**
+     * 删除标准
+     */
+    @RequestMapping(value = "/delete", method = RequestMethod.POST)
+    public Result delete(StandardDocument in) {
+        Result res = res();
+        if (!TokenManager.hasRole(AFTConstants.SUPERADMIN)) {
+            res.error(buildError("操作权限不正确。"));
+            return res;
+        }
+        return res.data(standardService.delete(in));
+    }
+
+    /**
+     * 更新标准
+     */
+    @RequestMapping(value = "/update", method = RequestMethod.POST)
+    public Result update(StandardDocument in) {
+        Result res = res();
+        if (!TokenManager.hasRole(AFTConstants.SUPERADMIN)) {
+            res.error(buildError("操作权限不正确。"));
+            return res;
+        }
+        return res.data(standardService.update(in));
+    }
+
+    /**
+     * 图片上传
+     */
+    @RequestMapping(value = "/uploadPicture", method = RequestMethod.POST)
+    public Result uploadPicture(HttpServletRequest req, String sign) {
+        Result res = new Result();
+        AttachmentType attachmentType = AttachmentType.getField(sign);
+
+        if (attachmentType == AttachmentType.STANDARD_DOCUMENT
+        ) {
+            res.setData(handleFiles(res, "/standard/", false, req, sign, ""));
+        } else {
+            res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "图片"));
+        }
+        return res;
+    }
+
+
+
+
+}

+ 18 - 0
src/main/java/com/goafanti/standard/service/StandardService.java

@@ -0,0 +1,18 @@
+package com.goafanti.standard.service;
+
+import com.goafanti.common.model.StandardDocument;
+import com.goafanti.core.mybatis.page.Pagination;
+import com.goafanti.standard.bo.InputStandardList;
+import com.goafanti.standard.bo.OutStandardDocument;
+
+public interface StandardService {
+    Object add(StandardDocument in);
+
+    Object delete(StandardDocument in);
+
+    Object update(StandardDocument in);
+
+    Pagination<OutStandardDocument> list(InputStandardList in);
+
+    Object get(StandardDocument in);
+}

+ 107 - 0
src/main/java/com/goafanti/standard/service/impl/StandardServiceImpl.java

@@ -0,0 +1,107 @@
+package com.goafanti.standard.service.impl;
+
+import com.goafanti.common.dao.StandardDocumentMapper;
+import com.goafanti.common.model.StandardDocument;
+import com.goafanti.common.utils.StringUtils;
+import com.goafanti.core.mybatis.BaseMybatisDao;
+import com.goafanti.core.mybatis.page.Pagination;
+import com.goafanti.standard.bo.InputStandardList;
+import com.goafanti.standard.bo.OutStandardDocument;
+import com.goafanti.standard.service.StandardService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+@Service
+public class StandardServiceImpl extends BaseMybatisDao<StandardDocumentMapper> implements StandardService {
+    @Autowired
+    private StandardDocumentMapper standardDocumentMapper;
+    @Value("${upload.path}")
+    private String uploadPath;
+
+    @Override
+    public Object add(StandardDocument in) {
+        return standardDocumentMapper.insertSelective(in);
+    }
+
+    @Override
+    public Object delete(StandardDocument in) {
+        Long id = Long.valueOf(in.getId());
+        StandardDocument use = standardDocumentMapper.selectByPrimaryKey(id);
+        if (StringUtils.isNotEmpty(in.getUrl())){
+            deleteFile(use.getUrl());
+        }
+        return standardDocumentMapper.deleteByPrimaryKey(id);
+    }
+
+    private void deleteFile( String url) {
+        if (url.contains(",")){
+            String[] split = url.split(",");
+            for (String s : split) {
+                String filePath = uploadPath + "/" + s;
+                com.goafanti.common.utils.excel.FileUtils.deleteFile(filePath);
+            }
+        }else {
+            String filePath = uploadPath + "/" + url;
+            com.goafanti.common.utils.excel.FileUtils.deleteFile(filePath);
+        }
+
+    }
+
+    private void deleteFile(String url, String newURL) {
+        if(StringUtils.isBlank(newURL)){
+         deleteFile(url);
+        }else {
+            String[] newU = newURL.split(",");
+            String[] useU = url.split(",");
+            for (String s : useU) {
+                boolean flag = false;
+                for (String s1 : newU) {
+                    if (s.equals(s1)){
+                        flag = true;
+                        break;
+                    }
+                }
+                if (!flag){
+                    deleteFile(s);
+                }
+            }
+        }
+
+    }
+
+    @Override
+    public Object update(StandardDocument in) {
+        Long id = Long.valueOf(in.getId());
+        in.setUpdateTime(new Date());
+        StandardDocument use = standardDocumentMapper.selectByPrimaryKey(id);
+        if (StringUtils.isNotEmpty(use.getUrl())&&
+                use.getUrl().equals(in.getUrl())){
+            deleteFile(use.getUrl(),in.getUrl());
+        }
+        return standardDocumentMapper.updateByPrimaryKeySelective(in);
+    }
+
+
+
+    @Override
+    public Pagination<OutStandardDocument> list(InputStandardList in) {
+        Map<String,Object> params = new HashMap();
+        if (in.getStatus()!=null)params.put("status",in.getStatus());
+        if (in.getStartTime()!=null)params.put("startTime",in.getStartTime());
+        if (in.getEndTime()!=null)params.put("endTime",in.getEndTime()+" 23:59:59");
+        if (in.getDepId()!=null)params.put("depId",in.getDepId());
+        if (in.getName()!=null)params.put("name",in.getName());
+        return (Pagination<OutStandardDocument>) findPage("standardList","standardCount",params,in.getPageNo(),in.getPageSize());
+    }
+
+    @Override
+    public Object get(StandardDocument in) {
+        return standardDocumentMapper.selectDetailsById(in.getId());
+
+    }
+}

+ 98 - 0
src/main/java/com/goafanti/weChat/bo/CheckOrderNoOut.java

@@ -0,0 +1,98 @@
+package com.goafanti.weChat.bo;
+
+import java.math.BigDecimal;
+
+public class CheckOrderNoOut {
+        private String userName;
+        private String contractNo;
+
+        private Integer peopleCount;
+        private Integer timesCount;
+        private BigDecimal durationCount;
+        private BigDecimal durationMax;
+
+        private Integer amountType;
+
+    /**
+     * 审核人
+     */
+    private String adminName;
+
+    /**
+     * 发起人
+     */
+    private String publicReleaseName;
+
+
+    public String getPublicReleaseName() {
+        return publicReleaseName;
+    }
+
+    public void setPublicReleaseName(String publicReleaseName) {
+        this.publicReleaseName = publicReleaseName;
+    }
+
+    public BigDecimal getDurationMax() {
+            return durationMax;
+        }
+
+        public void setDurationMax(BigDecimal durationMax) {
+            this.durationMax = durationMax;
+        }
+
+        public String getUserName() {
+            return userName;
+        }
+
+        public void setUserName(String userName) {
+            this.userName = userName;
+        }
+
+        public String getContractNo() {
+            return contractNo;
+        }
+
+        public void setContractNo(String contractNo) {
+            this.contractNo = contractNo;
+        }
+
+        public Integer getPeopleCount() {
+            return peopleCount;
+        }
+
+        public void setPeopleCount(Integer peopleCount) {
+            this.peopleCount = peopleCount;
+        }
+
+        public Integer getTimesCount() {
+            return timesCount;
+        }
+
+        public void setTimesCount(Integer timesCount) {
+            this.timesCount = timesCount;
+        }
+
+        public BigDecimal getDurationCount() {
+            return durationCount;
+        }
+
+        public void setDurationCount(BigDecimal durationCount) {
+            this.durationCount = durationCount;
+        }
+
+        public Integer getAmountType() {
+            return amountType;
+        }
+
+        public void setAmountType(Integer amountType) {
+            this.amountType = amountType;
+        }
+
+        public String getAdminName() {
+            return adminName;
+        }
+
+        public void setAdminName(String adminName) {
+            this.adminName = adminName;
+        }
+}

+ 14 - 0
src/main/java/com/goafanti/weChat/bo/InputPublicDtails.java

@@ -10,6 +10,12 @@ public class InputPublicDtails {
 	private String aid;
 	private String uid;
 	private Integer status;
+
+
+	/**
+	 *  审核状态 0=无 1=审核中,完成
+	 */
+	private Integer statusType;
 	private Integer clockIn;
 	/**
 	 * type 0个人 1部门 2全部
@@ -24,6 +30,14 @@ public class InputPublicDtails {
 	private Integer pageSize;
 	private Integer pageNo;
 
+	public Integer getStatusType() {
+		return statusType;
+	}
+
+	public void setStatusType(Integer statusType) {
+		this.statusType = statusType;
+	}
+
 	public String getContractNo() {
 		return contractNo;
 	}

+ 1 - 1
src/main/java/com/goafanti/weChat/bo/InputPublicReleaseList.java

@@ -4,7 +4,7 @@ public class InputPublicReleaseList {
 
 	private Integer pageSize;
 	private Integer pageNo;
-//	查看类型 0我的公出 1公出审核 2管理员 3协单(技术财税总监看全部) 4 公出企业负责人审核
+//	查看类型 0我的公出 1公出审核 2管理员 3协单(技术财税总监看全部) 4 公出企业负责人审核 5 技术公出审核
 	private Integer type;
 	private String clockTime;
 	/**

+ 49 - 0
src/main/java/com/goafanti/weChat/bo/InputreleaseAndExpenseCount.java

@@ -0,0 +1,49 @@
+package com.goafanti.weChat.bo;
+
+public class InputreleaseAndExpenseCount {
+    private String contractNo;
+    private String buyerName;
+    private String depId;
+    private String aid;
+    private Integer allStatus;
+
+    public String getContractNo() {
+        return contractNo;
+    }
+
+    public void setContractNo(String contractNo) {
+        this.contractNo = contractNo;
+    }
+
+    public String getBuyerName() {
+        return buyerName;
+    }
+
+    public void setBuyerName(String buyerName) {
+        this.buyerName = buyerName;
+    }
+
+    public String getDepId() {
+        return depId;
+    }
+
+    public void setDepId(String depId) {
+        this.depId = depId;
+    }
+
+    public String getAid() {
+        return aid;
+    }
+
+    public void setAid(String aid) {
+        this.aid = aid;
+    }
+
+    public Integer getAllStatus() {
+        return allStatus;
+    }
+
+    public void setAllStatus(Integer allStatus) {
+        this.allStatus = allStatus;
+    }
+}

+ 21 - 0
src/main/java/com/goafanti/weChat/bo/OutPublicDtails.java

@@ -1,12 +1,15 @@
 package com.goafanti.weChat.bo;
 
+import com.goafanti.common.model.PublicReleaseClock;
 import com.goafanti.common.utils.excel.Excel;
 
 import java.math.BigDecimal;
+import java.util.List;
 
 public class OutPublicDtails  {
 
 	private Integer id;
+	private Integer prdId;
 	@Excel(name = "客户名称")
 	private String userName;
 	@Excel(name = "签单状态",readConverterExp = "0=未签单,1=已签单",width = 8)
@@ -68,6 +71,24 @@ public class OutPublicDtails  {
 	@Excel(name = "订单总金额" ,scale = 6)
 	private BigDecimal totalAmout;
 
+	private List<PublicReleaseClock> list;
+
+
+	public List<PublicReleaseClock> getList() {
+		return list;
+	}
+
+	public void setList(List<PublicReleaseClock> list) {
+		this.list = list;
+	}
+
+	public Integer getPrdId() {
+		return prdId;
+	}
+
+	public void setPrdId(Integer prdId) {
+		this.prdId = prdId;
+	}
 
 	public Integer getSignBills() {
 		return signBills;

+ 21 - 2
src/main/java/com/goafanti/weChat/bo/OutPublicRelease.java

@@ -3,7 +3,6 @@ package com.goafanti.weChat.bo;
 import com.goafanti.common.model.PublicExamine;
 import com.goafanti.common.model.PublicRelease;
 
-import java.util.Date;
 import java.util.List;
 
 public class OutPublicRelease extends PublicRelease {
@@ -21,7 +20,9 @@ public class OutPublicRelease extends PublicRelease {
 	private String suprId;
 	/** 审核权限*/
 	private Integer permission;
-	/** 自己是否审核 */
+	/** 自己是否审核
+	 *   0=自己  1不是自己
+	 * */
 	private Integer myExamine;
 
 	private String reviewer;
@@ -38,9 +39,27 @@ public class OutPublicRelease extends PublicRelease {
 	 */
 	private String assistAidName;
 	private String uids;
+	private String adminExamine;
+	private String reviewerName;
 	private List<OutPublicReleaseDetails> prdList;
 	private List<PublicExamine> peList;
 
+	public String getReviewerName() {
+		return reviewerName;
+	}
+
+	public void setReviewerName(String reviewerName) {
+		this.reviewerName = reviewerName;
+	}
+
+	public String getAdminExamine() {
+		return adminExamine;
+	}
+
+	public void setAdminExamine(String adminExamine) {
+		this.adminExamine = adminExamine;
+	}
+
 	public List<PublicExamine> getPeList() {
 		return peList;
 	}

+ 12 - 2
src/main/java/com/goafanti/weChat/bo/OutPublicReleaseDetails.java

@@ -1,9 +1,9 @@
 package com.goafanti.weChat.bo;
 
+import com.goafanti.common.model.PublicReleaseDateClock;
 import com.goafanti.common.model.PublicReleaseDetails;
 
-import java.io.Serializable;
-import java.util.Date;
+import java.util.List;
 
 /**
  * public_release_details
@@ -13,6 +13,16 @@ public class OutPublicReleaseDetails extends PublicReleaseDetails {
     private String userName;
     private String clockInTimes;
 
+    private List<PublicReleaseDateClock> prdcList;
+
+    public List<PublicReleaseDateClock> getPrdcList() {
+        return prdcList;
+    }
+
+    public void setPrdcList(List<PublicReleaseDateClock> prdcList) {
+        this.prdcList = prdcList;
+    }
+
     public String getUserName() {
         return userName;
     }

+ 32 - 1
src/main/java/com/goafanti/weChat/bo/OutPublicReleaseList.java

@@ -25,13 +25,44 @@ public class OutPublicReleaseList {
 	private String 	assistAidName;
 	private String	mainName;
 	private String rejectName;
+	private String reviewerName;
 	private String assistantAid;
 	private String assistantName;
 	private String userNames;
 	private String adminExamine;
 	private Integer publicAgain;
+	private Integer publicType;
+	private Integer techStartProcess;
 	private BigDecimal expenseAmount;
 
+	private List<OutPublicReleaseDetails> prdList;
+
+
+
+	public Integer getTechStartProcess() {
+		return techStartProcess;
+	}
+
+	public void setTechStartProcess(Integer techStartProcess) {
+		this.techStartProcess = techStartProcess;
+	}
+
+	public Integer getPublicType() {
+		return publicType;
+	}
+
+	public void setPublicType(Integer publicType) {
+		this.publicType = publicType;
+	}
+
+	public String getReviewerName() {
+		return reviewerName;
+	}
+
+	public void setReviewerName(String reviewerName) {
+		this.reviewerName = reviewerName;
+	}
+
 	public BigDecimal getExpenseAmount() {
 		return expenseAmount;
 	}
@@ -40,7 +71,7 @@ public class OutPublicReleaseList {
 		this.expenseAmount = expenseAmount;
 	}
 
-	private List<OutPublicReleaseDetails> prdList;
+
 
 	public String getAdminExamine() {
 		return adminExamine;

+ 252 - 0
src/main/java/com/goafanti/weChat/bo/releaseAndExpenseCountOut.java

@@ -0,0 +1,252 @@
+package com.goafanti.weChat.bo;
+
+import com.goafanti.common.utils.excel.Excel;
+
+import java.math.BigDecimal;
+
+public class releaseAndExpenseCountOut {
+
+
+    private String orderNo;
+    @Excel(name = "合同编号")
+    private String contractNo;
+    @Excel(name = "客户名称")
+    private String buyerName;
+    @Excel(name = "部门名称")
+    private String depName;
+    @Excel(name = "营销员名称")
+    private String salesmanName;
+
+    @Excel(name = "应公出工时")
+    private String  maxDuration;
+    @Excel(name = "实际公出工时")
+    private String actualDuration;
+    @Excel(name = "超出工时")
+    private String exceedDuration;
+    @Excel(name = "合同金额",scale = 6)
+    private BigDecimal totalAmount;
+    @Excel(name = "已收款",scale = 6)
+    private BigDecimal settlementAmount;
+    @Excel(name = "报销总额",scale = 6)
+    private BigDecimal expenseAmount;
+    @Excel(name = "已付成本",scale = 6)
+    private BigDecimal paymentAmount;
+
+    @Excel(name = "报销人数")
+    private Integer peopleCount;
+    @Excel(name = "天数")
+    private Integer days;
+    @Excel(name = "报销单数")
+    private Integer expenseCount;
+    @Excel(name = "报销未审核")
+    private Integer notExamine;
+    @Excel(name = "驳回单数")
+    private Integer rejectCount;
+    private Integer exceedType;
+
+    public String getDepName() {
+        return depName;
+    }
+
+    public void setDepName(String depName) {
+        this.depName = depName;
+    }
+
+    public String getSalesmanName() {
+        return salesmanName;
+    }
+
+    public void setSalesmanName(String salesmanName) {
+        this.salesmanName = salesmanName;
+    }
+
+    public String getOrderNo() {
+        return orderNo;
+    }
+
+    
+    public void setOrderNo(String orderNo) {
+        this.orderNo = orderNo;
+    }
+
+    
+    public String getContractNo() {
+        return contractNo;
+    }
+
+    
+    public void setContractNo(String contractNo) {
+        this.contractNo = contractNo;
+    }
+
+    
+    public String getBuyerName() {
+        return buyerName;
+    }
+
+    
+    public void setBuyerName(String buyerName) {
+        this.buyerName = buyerName;
+    }
+
+    
+    public String getMaxDuration() {
+        if(maxDuration==null){
+            maxDuration="0";
+        }
+        return maxDuration;
+    }
+
+    
+    public void setMaxDuration(String maxDuration) {
+        this.maxDuration = maxDuration;
+    }
+
+    
+    public String getActualDuration() {
+        if(actualDuration==null){
+            actualDuration="0";
+        }
+        return actualDuration;
+    }
+
+    
+    public void setActualDuration(String actualDuration) {
+        this.actualDuration = actualDuration;
+    }
+
+    
+    public String getExceedDuration() {
+        if(exceedDuration==null){
+            exceedDuration="0";
+        }
+        return exceedDuration;
+    }
+
+    
+    public void setExceedDuration(String exceedDuration) {
+        this.exceedDuration = exceedDuration;
+    }
+
+    
+    public BigDecimal getTotalAmount() {
+        return totalAmount;
+    }
+
+    
+    public void setTotalAmount(BigDecimal totalAmount) {
+        this.totalAmount = totalAmount;
+    }
+
+    
+    public BigDecimal getSettlementAmount() {
+        return settlementAmount;
+    }
+
+    
+    public void setSettlementAmount(BigDecimal settlementAmount) {
+        this.settlementAmount = settlementAmount;
+    }
+
+    
+    public BigDecimal getExpenseAmount() {
+        if(expenseAmount==null){
+            return BigDecimal.ZERO;
+        }
+        return expenseAmount;
+    }
+
+    
+    public void setExpenseAmount(BigDecimal expenseAmount) {
+        this.expenseAmount = expenseAmount;
+    }
+
+    
+    public BigDecimal getPaymentAmount() {
+        if(paymentAmount==null){
+            paymentAmount=BigDecimal.ZERO;
+        }
+        return paymentAmount;
+    }
+
+    
+    public void setPaymentAmount(BigDecimal paymentAmount) {
+        this.paymentAmount = paymentAmount;
+    }
+
+    
+    public Integer getPeopleCount() {
+        if(peopleCount==null){
+            peopleCount=0;
+        }
+        return peopleCount;
+    }
+
+    
+    public void setPeopleCount(Integer peopleCount) {
+        this.peopleCount = peopleCount;
+    }
+
+    
+    public Integer getDays() {
+        if(days==null){
+            days=0;
+        }
+        return days;
+    }
+
+    
+    public void setDays(Integer days) {
+        this.days = days;
+    }
+
+    
+    public Integer getExpenseCount() {
+        if(expenseCount==null){
+            expenseCount=0;
+        }
+        return expenseCount;
+    }
+
+    
+    public void setExpenseCount(Integer expenseCount) {
+        this.expenseCount = expenseCount;
+    }
+
+    
+    public Integer getNotExamine() {
+        if(notExamine==null){
+            notExamine=0;
+        }
+        return notExamine;
+    }
+
+    
+    public void setNotExamine(Integer notExamine) {
+        this.notExamine = notExamine;
+    }
+
+    
+    public Integer getRejectCount() {
+        if(rejectCount==null){
+            rejectCount=0;
+        }
+        return rejectCount;
+    }
+
+    
+    public void setRejectCount(Integer rejectCount) {
+        this.rejectCount = rejectCount;
+    }
+
+    public Integer getExceedType() {
+        if(exceedType==null){
+            exceedType=0;
+        }
+        return exceedType;
+    }
+
+    public void setExceedType(Integer exceedType) {
+        this.exceedType = exceedType;
+    }
+}

+ 77 - 26
src/main/java/com/goafanti/weChat/controller/AdminReleaseApiController.java

@@ -67,7 +67,6 @@ public class AdminReleaseApiController extends CertifyApiController{
 
 	/**
 	 * 修改外出申请、修改公出
-	 * @return
 	 */
 	@RequestMapping(value = "/updatePublicRelease", method = RequestMethod.POST)
 	public Result updatePublicRelease(InputPublicRelease in){
@@ -86,8 +85,6 @@ public class AdminReleaseApiController extends CertifyApiController{
 
 	/**
 	 * 修改打卡地址
-	 * @param in
-	 * @return
 	 */
 	@RequestMapping(value = "/updateLocation", method = RequestMethod.POST)
 	public Result updateLocation(InputPublicRelease in){
@@ -106,22 +103,25 @@ public class AdminReleaseApiController extends CertifyApiController{
 
 	/**
 	 * 外出打卡、公出打卡
-	 * @return
 	 */
 	@RequestMapping(value = "/publicReleaseClockIn", method = RequestMethod.POST)
 	public Result publicReleaseClockIn(Integer id,String photoUrl,Integer clockIn ,String clockInRemarks,String uid ){
 		Result res =new Result();
-		Integer x=publicReleaseService.pushPublicReleaseClockIn(id,photoUrl,clockIn,clockInRemarks,uid);
+		int x=publicReleaseService.pushPublicReleaseClockIn(id,photoUrl,clockIn,clockInRemarks,uid);
 		if (x==-1){
 			res.getError().add(buildError("公出他人企业!需通过审核,才可以打卡!"));
 			return res;
 		}
+//		取消打卡限制
+//		if (x==-2){
+//			res.getError().add(buildError("已超过合同规定时限,需审核通过,才可打卡!"));
+//			return res;
+//		}
 		res.setData(x);
 		return res;
 	}
 	/**
 	 * 外出申请详情
-	 * @return
 	 */
 	@RequestMapping(value = "/dtails", method = RequestMethod.GET)
 	public Result dtails(Integer id){
@@ -133,7 +133,6 @@ public class AdminReleaseApiController extends CertifyApiController{
 
 	/**
 	 * 外出申请详情
-	 * @return
 	 */
 	@RequestMapping(value = "/followDtails", method = RequestMethod.GET)
 	public Result followDtails(String id){
@@ -144,7 +143,6 @@ public class AdminReleaseApiController extends CertifyApiController{
 
 	/**
 	 * 外出申请列表.公出列表
-	 * @return
 	 */
 	@RequestMapping(value = "/listPublicRelease", method = RequestMethod.GET)
 	public Result listPublicRelease(InputPublicReleaseList in){
@@ -155,7 +153,6 @@ public class AdminReleaseApiController extends CertifyApiController{
 
 	/**
 	 * 公出审核、外出审核 上级
-	 * @return
 	 */
 	@RequestMapping(value = "/examinePublicRelease", method = RequestMethod.POST)
 	public Result examinePublicRelease(Integer id ,Integer status,String remarks){
@@ -178,10 +175,9 @@ public class AdminReleaseApiController extends CertifyApiController{
 
 	/**
 	 * 公出审核、外出审核 营销
-	 * @return
 	 */
-	@RequestMapping(value = "/MarketersExamine", method = RequestMethod.POST)
-	public Result MarketersExamine(Integer id ,Integer status,String remarks){
+	@RequestMapping(value = "/marketersExamine", method = RequestMethod.POST)
+	public Result marketersExamine(Integer id ,Integer status,String remarks){
 		Result res =new Result();
 		if (id==null) {
 			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"公出编号"));
@@ -200,9 +196,28 @@ public class AdminReleaseApiController extends CertifyApiController{
 	}
 
 
+	@RequestMapping(value = "/techExamine", method = RequestMethod.POST)
+	public Result techExamine(Integer id ,Integer status,String remarks){
+		Result res =new Result();
+		if (id==null) {
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"公出编号"));
+			return res;
+		}
+		if (status!=0&&status!=2) {
+			res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR,"审核状态"));
+			return res;
+		}
+		if (remarks.length()>20) {
+			res.getError().add(buildError("备注长度不能超过20个字符。"));
+			return res;
+		}
+		res.setData(publicReleaseService.pushExaminePublicRelease(id,status,remarks,2));
+		return res;
+	}
+
+
 	/**
 	 * 咨询驳回
-	 * @return
 	 */
 	@RequestMapping(value = "/techReject", method = RequestMethod.POST)
 	public Result techReject(Integer id ,String remarks){
@@ -223,7 +238,6 @@ public class AdminReleaseApiController extends CertifyApiController{
 
 	/**
 	 * 外出审核日志列表
-	 * @return
 	 */
 	@RequestMapping(value = "/listPublicReleaseLog", method = RequestMethod.GET)
 	public Result listPublicReleaseLog(Integer id,String ufid){
@@ -236,7 +250,6 @@ public class AdminReleaseApiController extends CertifyApiController{
 
 	/**
 	 * 公出统计
-	 * @return
 	 */
 	@RequestMapping(value = "/publicReleaseStatistics", method = RequestMethod.GET)
 	public Result publicReleaseStatistics(InputPublicStatistics in){
@@ -247,19 +260,17 @@ public class AdminReleaseApiController extends CertifyApiController{
 
 	/**
 	 * 公出统计导出
-	 * @return
 	 */
 	@RequestMapping(value = "/publicReleaseStatistics/export", method = RequestMethod.GET)
 	public Result publicReleaseStatisticsExport(InputPublicStatistics in,HttpServletResponse response){
 		List<OutPublicStatistics> list =publicReleaseService.publicReleaseStatisticsList(in);
-      	NewExcelUtil<OutPublicStatistics>excel=new NewExcelUtil<>(OutPublicStatistics.class);
+		NewExcelUtil<OutPublicStatistics>excel=new NewExcelUtil<>(OutPublicStatistics.class);
   		 return  excel.exportExcel(list,"公出统计列表",response);
 	}
 
 
 	/**
 	 * 公出详情列表
-	 * @return
 	 */
 	@RequestMapping(value = "/publicReleaseDtails", method = RequestMethod.GET)
 	public Result publicReleaseListDtails(InputPublicDtails in){
@@ -278,16 +289,15 @@ public class AdminReleaseApiController extends CertifyApiController{
 
 	/**
 	 * 公出详情列表
-	 * @return
 	 */
 	@RequestMapping(value = "/publicReleaseDtails/export", method = RequestMethod.GET)
 	public Result publicReleaseListDtailsExport(InputPublicDtails in ,Integer exportType){
 		if (exportType==null)exportType=0;
 		List<OutPublicDtails> outList=publicReleaseService.publicReleaseListDtailsList(in);
+		publicReleaseService.pushOutPublicDtails(outList);
 		if (exportType==0){
-			List<OutPublicDtails> list=outList;
-			NewExcelUtil<OutPublicDtails>excel=new NewExcelUtil<>(OutPublicDtails.class);
-			return  excel.exportExcel(list,"公出详细列表",uploadPath);
+            NewExcelUtil<OutPublicDtails>excel=new NewExcelUtil<>(OutPublicDtails.class);
+			return  excel.exportExcel(outList,"公出详细列表",uploadPath);
 		}else if (exportType==1){
 			List<OutPublicDtailsFinance> list = new ArrayList<>();
 			for (OutPublicDtails outPublicDtails : outList) {
@@ -315,7 +325,6 @@ public class AdminReleaseApiController extends CertifyApiController{
 
 	/**
 	 * 搜索
-	 * @return
 	 */
 	@RequestMapping(value = "/addSupplement", method = RequestMethod.POST)
 	public Result addSupplement(Integer id,String supplement,String nextPlan){
@@ -366,7 +375,6 @@ public class AdminReleaseApiController extends CertifyApiController{
 
 	/**
 	 * 打卡页面获取自己最新的打卡
-	 * @return
 	 */
 	@RequestMapping(value = "/getMyNewPublic",method = RequestMethod.GET)
 	public Result getMyNewPublic (){
@@ -379,7 +387,6 @@ public class AdminReleaseApiController extends CertifyApiController{
 	 * 新增协单助手
 	 * @param id 公出编号
 	 * @param aid 协单助手编号
-	 * @return
 	 */
 	@RequestMapping(value = "/addAssistant",method = RequestMethod.POST)
 	public Result addAssistant (Integer id,String aid){
@@ -400,7 +407,6 @@ public class AdminReleaseApiController extends CertifyApiController{
 	 * 删除协单助手
 	 * @param id 公出编号
 	 * @param aid 协单助手编号
-	 * @return
 	 */
 	@RequestMapping(value = "/deleteAssistant",method = RequestMethod.POST)
 	public Result deleteAssistant (Integer id,String aid){
@@ -418,5 +424,50 @@ public class AdminReleaseApiController extends CertifyApiController{
 	}
 
 
+	/**
+	 * 技术发起公出查询发起情况
+	 */
+	@RequestMapping(value = "/checkOrderNoDuration",method = RequestMethod.GET)
+	public Result checkOrderNoDuration (InputPublicRelease in){
+		Result res =new Result();
+		return res.data(publicReleaseService.checkOrderNoDuration(in));
+	}
+
+
+	/**
+	 * 技术发起公出查询发起情况
+	 */
+	@RequestMapping(value = "/pushDateClock",method = RequestMethod.POST)
+	public Result pushDateClock (){
+		Result res =new Result();
+		return res.data(publicReleaseService.pushDateClock());
+	}
+	/**
+	 * 公出&报销表
+	 */
+	@RequestMapping(value = "/releaseAndExpenseCount",method = RequestMethod.GET)
+	public Result releaseAndExpenseCount (InputreleaseAndExpenseCount in){
+		Result res =new Result();
+		return res.data(publicReleaseService.releaseAndExpenseCount(in));
+	}/**
+	 * 公出&报销缓存清除
+	 */
+	@RequestMapping(value = "/releaseAndExpenseCountClear",method = RequestMethod.GET)
+	public Result releaseAndExpenseCountClear (){
+		Result res =new Result();
+		return res.data(publicReleaseService.releaseAndExpenseCountClear());
+	}
+
+	/**
+	 * 公出&报销表导出
+	 */
+	@RequestMapping(value = "/releaseAndExpenseCount/Export",method = RequestMethod.GET)
+	public Result releaseAndExpenseCountExport (InputreleaseAndExpenseCount in){
+		List<releaseAndExpenseCountOut> list = publicReleaseService.releaseAndExpenseCount(in);
+		NewExcelUtil<releaseAndExpenseCountOut> excelUtil=new NewExcelUtil<>(releaseAndExpenseCountOut.class);
+		return excelUtil.exportExcel(list,"公出&报销表",uploadPath);
+	}
+
+
 
 }

+ 11 - 0
src/main/java/com/goafanti/weChat/service/PublicReleaseService.java

@@ -64,4 +64,15 @@ public interface PublicReleaseService {
     int updateLocation(InputPublicRelease in);
 
 	Object publicReleaseAndCount(InputPublicDtails in);
+
+    Map checkOrderNoDuration( InputPublicRelease in);
+
+
+	void pushOutPublicDtails(List<OutPublicDtails> outList);
+
+	Object pushDateClock();
+
+	List<releaseAndExpenseCountOut> releaseAndExpenseCount(InputreleaseAndExpenseCount in);
+
+	Object releaseAndExpenseCountClear();
 }

File diff suppressed because it is too large
+ 607 - 119
src/main/java/com/goafanti/weChat/service/impl/PublicReleaseServiceImpl.java


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

@@ -1,10 +1,10 @@
 dev.name=local
 jdbc.driverClassName=com.mysql.jdbc.Driver
 
-static.host=//static.jishutao.com/1.3.12
-#static.host=//172.16.1.187/1.3.12
+static.host=//static.jishutao.com/1.3.15
+#static.host=//172.16.1.187/1.3.15
 
-#jdbc.url=jdbc\:mysql://localhost:3306/aft20221026?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false
+#jdbc.url=jdbc\:mysql://localhost:3306/aft20240430?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
@@ -56,9 +56,9 @@ yxjl_max=100
 amb.maxLvl=6
 
 
-#avatar.host=//172.16.0.255:3000
+avatar.host=//172.16.1.199:3000
 #static.host=//172.16.0.255:3000/1.2.62
-avatar.host=//static.jishutao.com
+#avatar.host=//static.jishutao.com
 rd.static.host=//static.jishutao.com/RD/1.0.03
 
 #\u5FAE\u4FE1\u6253\u5361\u5C0F\u7A0B\u5E8F

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

@@ -1,4 +1,5 @@
 dev.name=test
+static.host=//static.jishutao.com/1.3.15
 #Driver
 jdbc.driverClassName=com.mysql.jdbc.Driver
 jdbc.url=jdbc:mysql://127.0.0.1:3306/aft?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false
@@ -52,7 +53,7 @@ amb.maxLvl=6
 
 portal.host=//static.jishutao.com/portal/2.0.6
 avatar.host=//static.jishutao.com
-static.host=//static.jishutao.com/1.3.12
+
 rd.static.host=//static.jishutao.com/RD/1.0.03
 avatar.upload.host=//static.jishutao.com/upload
 

+ 18 - 0
src/main/webapp/WEB-INF/views/admin/standard.html

@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml"
+	xmlns:th="http://www.thymeleaf.org">
+<head th:replace="common::header(~{::title},~{::link})">
+	<title>科技成果页</title>
+	<link th:href="${staticHost+'/dll/dll.css'}" rel="stylesheet">
+	<link th:href="${staticHost+'/admin/standard.css'}" rel="stylesheet">
+</head>
+<body>
+	<div id="root"></div>
+	
+	<div th:replace="common::footer(~{::script})">
+		<script type="text/javascript" th:src="${staticHost+'/vendors.js'}"></script>
+		<script type="text/javascript" th:src="${staticHost+'/dll/dll.js'}"></script>
+		<script type="text/javascript" th:src="${staticHost+'/admin/standard.js'}"></script>
+	</div>
+</body>
+</html>