Bladeren bron

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	common/target/classes/com/jpsoft/employment/modules/base/entity/InstallationRequirement.class
#	common/target/classes/com/jpsoft/employment/modules/base/entity/WorkOrder.class
yanliming 3 weken geleden
bovenliggende
commit
3e350ee7c2
31 gewijzigde bestanden met toevoegingen van 313 en 45 verwijderingen
  1. 57 19
      .idea/workspace.xml
  2. 1 1
      common/src/main/java/com/jpsoft/employment/modules/base/dao/ConstructionProgressDAO.java
  3. 1 0
      common/src/main/java/com/jpsoft/employment/modules/base/dao/RevenueInfoDAO.java
  4. 1 0
      common/src/main/java/com/jpsoft/employment/modules/base/dao/TechnicianInfoDAO.java
  5. 4 0
      common/src/main/java/com/jpsoft/employment/modules/base/entity/InstallationRequirement.java
  6. 1 0
      common/src/main/java/com/jpsoft/employment/modules/base/entity/WorkOrder.java
  7. 1 1
      common/src/main/java/com/jpsoft/employment/modules/base/service/ConstructionProgressService.java
  8. 1 0
      common/src/main/java/com/jpsoft/employment/modules/base/service/RevenueInfoService.java
  9. 1 0
      common/src/main/java/com/jpsoft/employment/modules/base/service/TechnicianInfoService.java
  10. 1 1
      common/src/main/java/com/jpsoft/employment/modules/base/service/impl/ConstructionProgressServiceImpl.java
  11. 6 0
      common/src/main/java/com/jpsoft/employment/modules/base/service/impl/RevenueInfoServiceImpl.java
  12. 5 0
      common/src/main/java/com/jpsoft/employment/modules/base/service/impl/TechnicianInfoServiceImpl.java
  13. 11 0
      common/src/main/resources/mapper/base/RevenueInfo.xml
  14. 6 0
      common/src/main/resources/mapper/base/TechnicianInfo.xml
  15. 6 0
      common/src/main/resources/mapper/base/WorkOrder.xml
  16. BIN
      common/target/classes/com/jpsoft/employment/modules/base/dao/ConstructionProgressDAO.class
  17. BIN
      common/target/classes/com/jpsoft/employment/modules/base/dao/TechnicianInfoDAO.class
  18. BIN
      common/target/classes/com/jpsoft/employment/modules/base/service/ConstructionProgressService.class
  19. BIN
      common/target/classes/com/jpsoft/employment/modules/base/service/TechnicianInfoService.class
  20. BIN
      common/target/classes/com/jpsoft/employment/modules/base/service/impl/ConstructionProgressServiceImpl.class
  21. BIN
      common/target/classes/com/jpsoft/employment/modules/base/service/impl/TechnicianInfoServiceImpl.class
  22. 6 0
      common/target/classes/mapper/base/WorkOrder.xml
  23. 1 0
      web/src/main/java/com/jpsoft/employment/config/WebMvcConfig.java
  24. 3 3
      web/src/main/java/com/jpsoft/employment/modules/mobile/controller/ResourceApiController.java
  25. 47 0
      web/src/main/java/com/jpsoft/employment/modules/mobile/controller/RevenueApiController.java
  26. 17 10
      web/src/main/java/com/jpsoft/employment/modules/mobile/controller/TechnicianApiController.java
  27. 136 10
      web/src/main/java/com/jpsoft/employment/modules/mobile/controller/WorkOrderApiController.java
  28. BIN
      web/target/classes/com/jpsoft/employment/config/WebMvcConfig.class
  29. BIN
      web/target/classes/com/jpsoft/employment/modules/mobile/controller/ResourceApiController.class
  30. BIN
      web/target/classes/com/jpsoft/employment/modules/mobile/controller/TechnicianApiController.class
  31. BIN
      web/target/classes/com/jpsoft/employment/modules/mobile/controller/WorkOrderApiController.class

+ 57 - 19
.idea/workspace.xml

@@ -7,13 +7,41 @@
     <bookmark url="file://$PROJECT_DIR$/web/src/main/java/com/jpsoft/employment/modules/mobile/controller/CustomerInfoApiController.java" line="63" />
   </component>
   <component name="ChangeListManager">
-    <list default="true" id="26f59b4a-23ab-4f82-9dad-16520ce4a7cc" name="更改" comment="客户主页后台提交工单接口修改">
-      <change beforePath="$PROJECT_DIR$/.idea/shelf/_2025_10_9_9_16____.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/shelf/_2025_10_9_9_16____.xml" afterDir="false" />
+    <list default="true" id="26f59b4a-23ab-4f82-9dad-16520ce4a7cc" name="更改" comment="">
+      <change afterPath="$PROJECT_DIR$/web/src/main/java/com/jpsoft/employment/modules/mobile/controller/RevenueApiController.java" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/common/target/classes/com/jpsoft/employment/modules/base/dao/MessageInfoDAO.class" beforeDir="false" afterPath="$PROJECT_DIR$/common/target/classes/com/jpsoft/employment/modules/base/dao/MessageInfoDAO.class" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/common/target/classes/com/jpsoft/employment/modules/base/service/MessageInfoService.class" beforeDir="false" afterPath="$PROJECT_DIR$/common/target/classes/com/jpsoft/employment/modules/base/service/MessageInfoService.class" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/common/target/classes/com/jpsoft/employment/modules/base/service/impl/MessageInfoServiceImpl.class" beforeDir="false" afterPath="$PROJECT_DIR$/common/target/classes/com/jpsoft/employment/modules/base/service/impl/MessageInfoServiceImpl.class" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/web/src/main/java/com/jpsoft/employment/modules/mobile/controller/MessageApiController.java" beforeDir="false" afterPath="$PROJECT_DIR$/web/src/main/java/com/jpsoft/employment/modules/mobile/controller/MessageApiController.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/common/src/main/java/com/jpsoft/employment/modules/base/dao/ConstructionProgressDAO.java" beforeDir="false" afterPath="$PROJECT_DIR$/common/src/main/java/com/jpsoft/employment/modules/base/dao/ConstructionProgressDAO.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/common/src/main/java/com/jpsoft/employment/modules/base/dao/RevenueInfoDAO.java" beforeDir="false" afterPath="$PROJECT_DIR$/common/src/main/java/com/jpsoft/employment/modules/base/dao/RevenueInfoDAO.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/common/src/main/java/com/jpsoft/employment/modules/base/dao/TechnicianInfoDAO.java" beforeDir="false" afterPath="$PROJECT_DIR$/common/src/main/java/com/jpsoft/employment/modules/base/dao/TechnicianInfoDAO.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/common/src/main/java/com/jpsoft/employment/modules/base/entity/InstallationRequirement.java" beforeDir="false" afterPath="$PROJECT_DIR$/common/src/main/java/com/jpsoft/employment/modules/base/entity/InstallationRequirement.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/common/src/main/java/com/jpsoft/employment/modules/base/entity/WorkOrder.java" beforeDir="false" afterPath="$PROJECT_DIR$/common/src/main/java/com/jpsoft/employment/modules/base/entity/WorkOrder.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/common/src/main/java/com/jpsoft/employment/modules/base/service/ConstructionProgressService.java" beforeDir="false" afterPath="$PROJECT_DIR$/common/src/main/java/com/jpsoft/employment/modules/base/service/ConstructionProgressService.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/common/src/main/java/com/jpsoft/employment/modules/base/service/RevenueInfoService.java" beforeDir="false" afterPath="$PROJECT_DIR$/common/src/main/java/com/jpsoft/employment/modules/base/service/RevenueInfoService.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/common/src/main/java/com/jpsoft/employment/modules/base/service/TechnicianInfoService.java" beforeDir="false" afterPath="$PROJECT_DIR$/common/src/main/java/com/jpsoft/employment/modules/base/service/TechnicianInfoService.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/common/src/main/java/com/jpsoft/employment/modules/base/service/impl/ConstructionProgressServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/common/src/main/java/com/jpsoft/employment/modules/base/service/impl/ConstructionProgressServiceImpl.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/common/src/main/java/com/jpsoft/employment/modules/base/service/impl/RevenueInfoServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/common/src/main/java/com/jpsoft/employment/modules/base/service/impl/RevenueInfoServiceImpl.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/common/src/main/java/com/jpsoft/employment/modules/base/service/impl/TechnicianInfoServiceImpl.java" beforeDir="false" afterPath="$PROJECT_DIR$/common/src/main/java/com/jpsoft/employment/modules/base/service/impl/TechnicianInfoServiceImpl.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/common/src/main/resources/mapper/base/RevenueInfo.xml" beforeDir="false" afterPath="$PROJECT_DIR$/common/src/main/resources/mapper/base/RevenueInfo.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/common/src/main/resources/mapper/base/TechnicianInfo.xml" beforeDir="false" afterPath="$PROJECT_DIR$/common/src/main/resources/mapper/base/TechnicianInfo.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/common/src/main/resources/mapper/base/WorkOrder.xml" beforeDir="false" afterPath="$PROJECT_DIR$/common/src/main/resources/mapper/base/WorkOrder.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/common/target/classes/com/jpsoft/employment/modules/base/dao/ConstructionProgressDAO.class" beforeDir="false" afterPath="$PROJECT_DIR$/common/target/classes/com/jpsoft/employment/modules/base/dao/ConstructionProgressDAO.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/common/target/classes/com/jpsoft/employment/modules/base/dao/TechnicianInfoDAO.class" beforeDir="false" afterPath="$PROJECT_DIR$/common/target/classes/com/jpsoft/employment/modules/base/dao/TechnicianInfoDAO.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/common/target/classes/com/jpsoft/employment/modules/base/entity/InstallationRequirement.class" beforeDir="false" afterPath="$PROJECT_DIR$/common/target/classes/com/jpsoft/employment/modules/base/entity/InstallationRequirement.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/common/target/classes/com/jpsoft/employment/modules/base/entity/WorkOrder.class" beforeDir="false" afterPath="$PROJECT_DIR$/common/target/classes/com/jpsoft/employment/modules/base/entity/WorkOrder.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/common/target/classes/com/jpsoft/employment/modules/base/service/ConstructionProgressService.class" beforeDir="false" afterPath="$PROJECT_DIR$/common/target/classes/com/jpsoft/employment/modules/base/service/ConstructionProgressService.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/common/target/classes/com/jpsoft/employment/modules/base/service/TechnicianInfoService.class" beforeDir="false" afterPath="$PROJECT_DIR$/common/target/classes/com/jpsoft/employment/modules/base/service/TechnicianInfoService.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/common/target/classes/com/jpsoft/employment/modules/base/service/impl/ConstructionProgressServiceImpl.class" beforeDir="false" afterPath="$PROJECT_DIR$/common/target/classes/com/jpsoft/employment/modules/base/service/impl/ConstructionProgressServiceImpl.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/common/target/classes/com/jpsoft/employment/modules/base/service/impl/TechnicianInfoServiceImpl.class" beforeDir="false" afterPath="$PROJECT_DIR$/common/target/classes/com/jpsoft/employment/modules/base/service/impl/TechnicianInfoServiceImpl.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/common/target/classes/mapper/base/TechnicianInfo.xml" beforeDir="false" afterPath="$PROJECT_DIR$/common/target/classes/mapper/base/TechnicianInfo.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/common/target/classes/mapper/base/WorkOrder.xml" beforeDir="false" afterPath="$PROJECT_DIR$/common/target/classes/mapper/base/WorkOrder.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/web/src/main/java/com/jpsoft/employment/config/WebMvcConfig.java" beforeDir="false" afterPath="$PROJECT_DIR$/web/src/main/java/com/jpsoft/employment/config/WebMvcConfig.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/web/src/main/java/com/jpsoft/employment/modules/mobile/controller/ResourceApiController.java" beforeDir="false" afterPath="$PROJECT_DIR$/web/src/main/java/com/jpsoft/employment/modules/mobile/controller/ResourceApiController.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/web/src/main/java/com/jpsoft/employment/modules/mobile/controller/TechnicianApiController.java" beforeDir="false" afterPath="$PROJECT_DIR$/web/src/main/java/com/jpsoft/employment/modules/mobile/controller/TechnicianApiController.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/web/src/main/java/com/jpsoft/employment/modules/mobile/controller/WorkOrderApiController.java" beforeDir="false" afterPath="$PROJECT_DIR$/web/src/main/java/com/jpsoft/employment/modules/mobile/controller/WorkOrderApiController.java" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/web/target/classes/com/jpsoft/employment/config/WebMvcConfig.class" beforeDir="false" afterPath="$PROJECT_DIR$/web/target/classes/com/jpsoft/employment/config/WebMvcConfig.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/web/target/classes/com/jpsoft/employment/modules/mobile/controller/ResourceApiController.class" beforeDir="false" afterPath="$PROJECT_DIR$/web/target/classes/com/jpsoft/employment/modules/mobile/controller/ResourceApiController.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/web/target/classes/com/jpsoft/employment/modules/mobile/controller/TechnicianApiController.class" beforeDir="false" afterPath="$PROJECT_DIR$/web/target/classes/com/jpsoft/employment/modules/mobile/controller/TechnicianApiController.class" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/web/target/classes/com/jpsoft/employment/modules/mobile/controller/WorkOrderApiController.class" beforeDir="false" afterPath="$PROJECT_DIR$/web/target/classes/com/jpsoft/employment/modules/mobile/controller/WorkOrderApiController.class" afterDir="false" />
     </list>
     <option name="SHOW_DIALOG" value="false" />
     <option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -233,9 +261,9 @@
       <select />
     </treeState>
   </component>
-  <component name="ProjectColorInfo"><![CDATA[{
-  "associatedIndex": 3
-}]]></component>
+  <component name="ProjectColorInfo">{
+  &quot;associatedIndex&quot;: 3
+}</component>
   <component name="ProjectFrameBounds" extendedState="6">
     <option name="x" value="-8" />
     <option name="width" value="1616" />
@@ -356,15 +384,13 @@
     <option name="hideEmptyMiddlePackages" value="true" />
     <option name="showLibraryContents" value="true" />
   </component>
-  <component name="PropertiesComponent"><![CDATA[{
-  "keyToString": {
-    "应用程序.EmploymentApplication.executor": "Debug"
+  <component name="PropertiesComponent">{
+  &quot;keyToString&quot;: {
+    &quot;kotlin-language-version-configured&quot;: &quot;true&quot;,
+    &quot;应用程序.EmploymentApplication.executor&quot;: &quot;Debug&quot;
   }
-}]]></component>
+}</component>
   <component name="RecentsManager">
-    <key name="CopyClassDialog.RECENTS_KEY">
-      <recent name="com.jpsoft.employment.modules.mobile.controller" />
-    </key>
     <key name="CopyFile.RECENT_KEYS">
       <recent name="D:\java\idea-workspace\water-tank-installation-server\web\src\main\java\com\jpsoft\employment\modules\base\controller" />
       <recent name="D:\java\idea-workspace\water-tank-installation-server\common\src\main\java\com\jpsoft\employment\modules\base\service\impl" />
@@ -372,6 +398,9 @@
       <recent name="D:\java\idea-workspace\water-tank-installation-server\common\src\main\java\com\jpsoft\employment\modules\base\dao" />
       <recent name="D:\java\idea-workspace\water-tank-installation-server\common\src\main\resources\mapper\base" />
     </key>
+    <key name="CopyClassDialog.RECENTS_KEY">
+      <recent name="com.jpsoft.employment.modules.mobile.controller" />
+    </key>
   </component>
   <component name="RunManager" selected="应用程序.EmploymentApplication">
     <configuration name="EmploymentApplication" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
@@ -400,7 +429,7 @@
       </list>
     </recent_temporary>
   </component>
-  <component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="应用程序级" UseSingleDictionary="true" transferred="false" />
+  <component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="应用程序级" UseSingleDictionary="true" transferred="true" />
   <component name="SvnConfiguration">
     <configuration />
   </component>
@@ -444,7 +473,15 @@
       <option name="project" value="LOCAL" />
       <updated>1760426361907</updated>
     </task>
-    <option name="localTasksCounter" value="5" />
+    <task id="LOCAL-00005" summary="师傅端移动接口">
+      <option name="closed" value="true" />
+      <created>1760583032305</created>
+      <option name="number" value="00005" />
+      <option name="presentableId" value="LOCAL-00005" />
+      <option name="project" value="LOCAL" />
+      <updated>1760583032305</updated>
+    </task>
+    <option name="localTasksCounter" value="6" />
     <servers />
   </component>
   <component name="TimeTrackingManager">
@@ -551,7 +588,8 @@
     <MESSAGE value="客户端移动端接口&#10;1.客户主页&#10;2.客户发布工单详情&#10;3.客户合作方列表" />
     <MESSAGE value="客户端移动端接口&#10;1.客户主页后台接口新增&#10;2.客户发布工单详情&#10;3.客户合作方列表" />
     <MESSAGE value="客户主页后台提交工单接口修改" />
-    <option name="LAST_COMMIT_MESSAGE" value="客户主页后台提交工单接口修改" />
+    <MESSAGE value="师傅端移动接口" />
+    <option name="LAST_COMMIT_MESSAGE" value="师傅端移动接口" />
   </component>
   <component name="antWorkspaceConfiguration">
     <option name="IS_AUTOSCROLL_TO_SOURCE" value="false" />

+ 1 - 1
common/src/main/java/com/jpsoft/employment/modules/base/dao/ConstructionProgressDAO.java

@@ -17,5 +17,5 @@ public interface ConstructionProgressDAO {
 	List<ConstructionProgress> findByWorkOrderId(String workOrderId);
 	ConstructionProgress findLastByWorkOrderId(String workOrderId);
 	List<ConstructionProgress> search(Map<String, Object> searchParams, List<Sort> sortList);
-	int getIndex(String workOrderId);
+	Integer getIndex(String workOrderId);
 }

+ 1 - 0
common/src/main/java/com/jpsoft/employment/modules/base/dao/RevenueInfoDAO.java

@@ -15,4 +15,5 @@ public interface RevenueInfoDAO {
 	int delete(String id);
 	List<RevenueInfo> list();
 	List<RevenueInfo> search(Map<String, Object> searchParams, List<Sort> sortList);
+	Integer getRevenueAmount(Boolean paid, String technicianId);
 }

+ 1 - 0
common/src/main/java/com/jpsoft/employment/modules/base/dao/TechnicianInfoDAO.java

@@ -17,4 +17,5 @@ public interface TechnicianInfoDAO {
 	List<TechnicianInfo> search(Map<String, Object> searchParams, List<Sort> sortList);
 	List<TechnicianInfo> searchMobile(Map<String, Object> searchParams, List<Sort> sortList);
 	TechnicianInfo findByPhone(String phone);
+	TechnicianInfo findByOpenid(String openId);
 }

+ 4 - 0
common/src/main/java/com/jpsoft/employment/modules/base/entity/InstallationRequirement.java

@@ -35,6 +35,7 @@ public class InstallationRequirement {
 	
 				@ApiModelProperty(value = "水箱材质")
 	private String material;
+	private String materialName;
 	
 				@ApiModelProperty(value = "水箱尺寸")
 	private BigDecimal size;
@@ -47,6 +48,7 @@ public class InstallationRequirement {
 	
 				@ApiModelProperty(value = "施工难度(1:容易,2:中等,3:困难)")
 	private String difficulty;
+	private String difficultyName;
 	
 				@ApiModelProperty(value = "逾期入场补偿金")
 	private Boolean isSubsidy;
@@ -109,9 +111,11 @@ public class InstallationRequirement {
 
 	@ApiModelProperty(value = "施工位置")
 	private String constructionLocation;
+	private String constructionLocationName;
 
 	@ApiModelProperty(value = "施工环境")
 	private String environment;
+	private String environmentName;
 
 	@ApiModelProperty(value = "体积")
 	private BigDecimal volume;

+ 1 - 0
common/src/main/java/com/jpsoft/employment/modules/base/entity/WorkOrder.java

@@ -43,6 +43,7 @@ public class WorkOrder {
 	
 				@ApiModelProperty(value = "工单状态(0:待确认,1:待接单,2:待入场,3:施工中,4:待验收,5:质保中,6:已出保,7:已取消)")
 	private String status;
+	private String statusName;
 	
 				@ApiModelProperty(value = "报价")
 	private BigDecimal price;

+ 1 - 1
common/src/main/java/com/jpsoft/employment/modules/base/service/ConstructionProgressService.java

@@ -15,5 +15,5 @@ public interface ConstructionProgressService {
 	List<ConstructionProgress> list();
 	List<ConstructionProgress> findByWorkOrderId(String workOrderId);
 	Page<ConstructionProgress> pageSearch(Map<String, Object> searchParams, int pageNum, int pageSize, boolean count, List<Sort> sortList);
-	int getIndex(String workOrderId);
+	Integer getIndex(String workOrderId);
 }

+ 1 - 0
common/src/main/java/com/jpsoft/employment/modules/base/service/RevenueInfoService.java

@@ -14,4 +14,5 @@ public interface RevenueInfoService {
 	int delete(String id);
 	List<RevenueInfo> list();
 	Page<RevenueInfo> pageSearch(Map<String, Object> searchParams,int pageNum,int pageSize,boolean count,List<Sort> sortList);
+	Integer getRevenueAmount(Boolean paid, String technicianId);
 }

+ 1 - 0
common/src/main/java/com/jpsoft/employment/modules/base/service/TechnicianInfoService.java

@@ -16,4 +16,5 @@ public interface TechnicianInfoService {
 	Page<TechnicianInfo> pageSearch(Map<String, Object> searchParams,int pageNum,int pageSize,boolean count,List<Sort> sortList);
 	Page<TechnicianInfo> pageSearchMobile(Map<String, Object> searchParams,int pageNum,int pageSize,boolean count,List<Sort> sortList);
 	TechnicianInfo findByPhone(String phone);
+	TechnicianInfo findByOpenid(String openId);
 }

+ 1 - 1
common/src/main/java/com/jpsoft/employment/modules/base/service/impl/ConstructionProgressServiceImpl.java

@@ -74,7 +74,7 @@ public class ConstructionProgressServiceImpl implements ConstructionProgressServ
 	}
 
 	@Override
-	public int getIndex(String workOrderId){
+	public Integer getIndex(String workOrderId){
 		return constructionProgressDAO.getIndex(workOrderId);
 	}
 }

+ 6 - 0
common/src/main/java/com/jpsoft/employment/modules/base/service/impl/RevenueInfoServiceImpl.java

@@ -67,4 +67,10 @@ public class RevenueInfoServiceImpl implements RevenueInfoService {
         
         return page;
 	}
+
+	@Override
+	public Integer getRevenueAmount(Boolean paid, String technicianId) {
+		// TODO Auto-generated method stub
+		return revenueInfoDAO.getRevenueAmount(paid, technicianId);
+	}
 }

+ 5 - 0
common/src/main/java/com/jpsoft/employment/modules/base/service/impl/TechnicianInfoServiceImpl.java

@@ -82,4 +82,9 @@ public class TechnicianInfoServiceImpl implements TechnicianInfoService {
 	public TechnicianInfo findByPhone(String phone) {
 		return technicianInfoDAO.findByPhone(phone);
 	}
+
+	@Override
+	public TechnicianInfo findByOpenid(String openId) {
+		return technicianInfoDAO.findByOpenid(openId);
+	}
 }

+ 11 - 0
common/src/main/resources/mapper/base/RevenueInfo.xml

@@ -98,4 +98,15 @@ id_,amount_,work_order_id,date_time,status_,create_time,update_time,del_flag,cre
 	        ${sort.name} ${sort.order}
 	 	</foreach>
 	</select>
+	<select id="getRevenueAmount" resultType="integer">
+		SELECT SUM(amount_) FROM base_revenue_info a
+		LEFT JOIN base_work_order b ON a.work_order_id = b.id_
+		WHERE a.del_flag = FALSE
+		<if test="paid = true">
+		AND a.status_ = '2'
+		</if>
+		<if test="technicianId != null">
+		AND b.technician_id = #{technicianId}
+		</if>
+	</select>
 </mapper>

+ 6 - 0
common/src/main/resources/mapper/base/TechnicianInfo.xml

@@ -191,4 +191,10 @@
 		and phone_ = #{0}
 		limit 1
 	</select>
+	<select id="findByOpenid" parameterType="string" resultMap="TechnicianInfoMap">
+		select * from base_technician_info
+		where del_flag = 0
+		and open_id = #{0}
+		limit 1
+	</select>
 </mapper>

+ 6 - 0
common/src/main/resources/mapper/base/WorkOrder.xml

@@ -240,6 +240,12 @@
 			<if test="searchParams.key != null">
 				and (title_ like #{searchParams.key} or address_ like #{searchParams.key})
 			</if>
+			<if test="searchParams.technicianId != null">
+				and technician_id = #{searchParams.technicianId}
+			</if>
+			<if test="searchParams.date != null">
+				and create_time like #{searchParams.date}
+			</if>
 		</where>
 		<foreach item="sort" collection="sortList"  open="order by" separator=",">
 			${sort.name} ${sort.order}

BIN
common/target/classes/com/jpsoft/employment/modules/base/dao/ConstructionProgressDAO.class


BIN
common/target/classes/com/jpsoft/employment/modules/base/dao/TechnicianInfoDAO.class


BIN
common/target/classes/com/jpsoft/employment/modules/base/service/ConstructionProgressService.class


BIN
common/target/classes/com/jpsoft/employment/modules/base/service/TechnicianInfoService.class


BIN
common/target/classes/com/jpsoft/employment/modules/base/service/impl/ConstructionProgressServiceImpl.class


BIN
common/target/classes/com/jpsoft/employment/modules/base/service/impl/TechnicianInfoServiceImpl.class


+ 6 - 0
common/target/classes/mapper/base/WorkOrder.xml

@@ -240,6 +240,12 @@
 			<if test="searchParams.key != null">
 				and (title_ like #{searchParams.key} or address_ like #{searchParams.key})
 			</if>
+			<if test="searchParams.technicianId != null">
+				and technician_id = #{searchParams.technicianId}
+			</if>
+			<if test="searchParams.date != null">
+				and create_time like #{searchParams.date}
+			</if>
 		</where>
 		<foreach item="sort" collection="sortList"  open="order by" separator=",">
 			${sort.name} ${sort.order}

+ 1 - 0
web/src/main/java/com/jpsoft/employment/config/WebMvcConfig.java

@@ -61,6 +61,7 @@ public class WebMvcConfig implements WebMvcConfigurer {
 				.excludePathPatterns("/mobile/customerInfoApi/findByOpenId")
 				.excludePathPatterns("/mobile/customerInfoApi/workOrderEdit/*")
 				.excludePathPatterns("/mobile/partnerApi/**")
+				.excludePathPatterns("/mobile/workOrder/list")
 		;
 	}
 }

+ 3 - 3
web/src/main/java/com/jpsoft/employment/modules/mobile/controller/ResourceApiController.java

@@ -46,7 +46,7 @@ public class ResourceApiController {
 
         List<ArgonPartner> argonPartnerList = argonPartnerService.list();
 
-        msgResult.setResult(false);
+        msgResult.setResult(true);
         msgResult.setData(argonPartnerList);
 
         return msgResult;
@@ -85,7 +85,7 @@ public class ResourceApiController {
 
         List<LaborerInfo> laborerInfoList = laborerInfoService.list();
 
-        msgResult.setResult(false);
+        msgResult.setResult(true);
         msgResult.setData(laborerInfoList);
 
         return msgResult;
@@ -124,7 +124,7 @@ public class ResourceApiController {
 
         List<TransportationInfo> transportationInfoList = transportationInfoService.list();
 
-        msgResult.setResult(false);
+        msgResult.setResult(true);
         msgResult.setData(transportationInfoList);
 
         return msgResult;

+ 47 - 0
web/src/main/java/com/jpsoft/employment/modules/mobile/controller/RevenueApiController.java

@@ -0,0 +1,47 @@
+package com.jpsoft.employment.modules.mobile.controller;
+
+import com.jpsoft.employment.modules.base.entity.ArgonPartner;
+import com.jpsoft.employment.modules.base.entity.LaborerInfo;
+import com.jpsoft.employment.modules.base.entity.RevenueInfo;
+import com.jpsoft.employment.modules.base.entity.TransportationInfo;
+import com.jpsoft.employment.modules.base.service.ArgonPartnerService;
+import com.jpsoft.employment.modules.base.service.LaborerInfoService;
+import com.jpsoft.employment.modules.base.service.RevenueInfoService;
+import com.jpsoft.employment.modules.base.service.TransportationInfoService;
+import com.jpsoft.employment.modules.common.dto.MessageResult;
+import io.swagger.annotations.ApiOperation;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@RestController
+@RequestMapping("/mobile/revenue")
+public class RevenueApiController {
+    private Logger logger = LoggerFactory.getLogger(getClass());
+
+    @Autowired
+    private RevenueInfoService revenueInfoService;
+
+    @ApiOperation(value="我的-我的收益")
+    @PostMapping("myRevenue")
+    public MessageResult<Map> myRevenue(HttpServletRequest request) {
+        String subject = (String)request.getAttribute("subject");
+        MessageResult<Map> msgResult = new MessageResult<>();
+        Map<String,Object> map = new HashMap<>();
+
+        map.put("allAmount", revenueInfoService.getRevenueAmount(false, subject));
+        map.put("paidAmount", revenueInfoService.getRevenueAmount(true, subject));
+        map.put("rewardAmount", 0);
+
+        msgResult.setResult(true);
+        msgResult.setData(map);
+
+        return msgResult;
+    }
+}

+ 17 - 10
web/src/main/java/com/jpsoft/employment/modules/mobile/controller/TechnicianApiController.java

@@ -20,6 +20,7 @@ import springfox.documentation.annotations.ApiIgnore;
 import javax.servlet.http.HttpSession;
 import java.util.Date;
 import java.util.HashMap;
+import java.util.Map;
 import java.util.UUID;
 
 @RestController
@@ -39,16 +40,17 @@ public class TechnicianApiController {
             @ApiImplicitParam(name = "name", paramType = "query", required = true, value = "用户名"),
             @ApiImplicitParam(name = "phone", paramType = "query", required = true, value = "手机号码"),
             @ApiImplicitParam(name = "idCard", paramType = "query", required = true, value = "身份证号"),
-            @ApiImplicitParam(name = "password", paramType = "query", required = true, value = "密码")
+            @ApiImplicitParam(name = "openId", paramType = "query", required = true, value = "openId")
     })
-    public MessageResult<TechnicianInfo> register(String name, String idCard, String phone, String password) {
+    public MessageResult<TechnicianInfo> register(String name, String idCard, String phone, String openId) {
         MessageResult<TechnicianInfo> msgResult = new MessageResult<>();
 
         try {
             TechnicianInfo technicianInfo = new TechnicianInfo();
             technicianInfo.setId(UUID.randomUUID().toString());
             technicianInfo.setUserName(phone);
-            technicianInfo.setPassword(new DES3().encrypt(jwtSecret, password));
+//            technicianInfo.setPassword(new DES3().encrypt(jwtSecret, password));
+            technicianInfo.setOpenId(openId);
             technicianInfo.setRealName(name);
             technicianInfo.setIdCard(idCard);
             technicianInfo.setPhone(phone);
@@ -57,6 +59,9 @@ public class TechnicianApiController {
             technicianInfo.setCreateBy(technicianInfo.getId());
             technicianInfo.setCreateTime(new Date());
             technicianInfoService.insert(technicianInfo);
+
+            msgResult.setResult(true);
+            msgResult.setMessage("提交成功");
         }
         catch(Exception ex){
             msgResult.setResult(false);
@@ -69,22 +74,24 @@ public class TechnicianApiController {
     @ApiOperation(value = "微信登录")
     @PostMapping("wxLogin")
     @ApiImplicitParams({
-            @ApiImplicitParam(name = "phone", paramType = "query", required = true, value = "手机号码"),
-            @ApiImplicitParam(name = "openid", paramType = "query", required = false, value = "openid")
+            @ApiImplicitParam(name = "openId", paramType = "query", required = false, value = "openid")
     })
-    public MessageResult<String> wxLogin(String phone, String openid, @ApiIgnore HttpSession session) {
-        MessageResult<String> messageResult = new MessageResult<>();
+    public MessageResult<Map> wxLogin(String openId, @ApiIgnore HttpSession session) {
+        MessageResult<Map> messageResult = new MessageResult<>();
+        Map<String,Object> map = new HashMap<>();
 
         try {
-            TechnicianInfo technicianInfo = technicianInfoService.findByPhone(phone);
+            TechnicianInfo technicianInfo = technicianInfoService.findByOpenid(openId);
 
-            if (technicianInfo != null) {
+            if (technicianInfo != null && technicianInfo.getOpenId().equals(openId)) {
                 //生成token
                 String token = JwtUtil.createToken(jwtSecret, technicianInfo.getId(), DateTime.now().plusHours(6).toDate());
                 session.setAttribute("token", token);
+                map.put("token", token);
+                map.put("technicianInfo",technicianInfo);
 
                 messageResult.setResult(true);
-                messageResult.setData(token);
+                messageResult.setData(map);
             } else {
                 messageResult.setResult(false);
                 messageResult.setMessage("用户不存在或密码错误!");

+ 136 - 10
web/src/main/java/com/jpsoft/employment/modules/mobile/controller/WorkOrderApiController.java

@@ -6,6 +6,8 @@ import com.jpsoft.employment.modules.base.service.*;
 import com.jpsoft.employment.modules.common.dto.MessageResult;
 import com.jpsoft.employment.modules.common.dto.Sort;
 import com.jpsoft.employment.modules.common.utils.PojoUtils;
+import com.jpsoft.employment.modules.sys.entity.DataDictionary;
+import com.jpsoft.employment.modules.sys.service.DataDictionaryService;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
@@ -13,6 +15,7 @@ import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RequestParam;
@@ -34,6 +37,8 @@ import java.util.Map;
 public class WorkOrderApiController {
     private Logger logger = LoggerFactory.getLogger(getClass());
 
+    @Autowired
+    private TechnicianInfoService technicianInfoService;
     @Autowired
     private WorkOrderService workOrderService;
     @Autowired
@@ -44,35 +49,122 @@ public class WorkOrderApiController {
     private ConstructionProgressService constructionProgressService;
     @Autowired
     private CommentInfoService commentInfoService;
+    @Autowired
+    private DataDictionaryService dataDictionaryService;
+    @Autowired
+    private CustomerInfoService customerInfoService;
+
+    @ApiOperation(value="会员等级验证")
+    @RequestMapping(value = "checkVIP",method = RequestMethod.POST)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "orderId", paramType = "query", required = true, value = "订单编号")
+    })
+    public MessageResult<Boolean> checkVIP(String orderId, HttpServletRequest request){
+        String subject = (String)request.getAttribute("subject");
+        MessageResult<Boolean> msgResult = new MessageResult<>();
+
+        if (!subject.isEmpty()) {
+            TechnicianInfo technicianInfo = technicianInfoService.get(subject);
+//            WorkOrder workOrder = workOrderService.get(orderId);
+            ReceiveRequire receiveRequire = receiveRequireService.findByWorkOrderId(orderId);
+
+            if(receiveRequire.getLevel() > technicianInfo.getLevel()) {
+                msgResult.setResult(true);
+                msgResult.setData(false);
+            }
+            else {
+                msgResult.setResult(true);
+                msgResult.setData(true);
+            }
+        } else {
+            msgResult.setResult(false);
+            msgResult.setMessage("用户未登录");
+        }
+
+        return msgResult;
+    }
+
+    @ApiOperation(value="接单")
+    @RequestMapping(value = "acceptOrder",method = RequestMethod.POST)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "orderId", paramType = "query", required = true, value = "订单编号")
+    })
+    @Transactional(rollbackFor = Exception.class)
+    public MessageResult<WorkOrder> acceptOrder(String orderId, HttpServletRequest request){
+        String subject = (String)request.getAttribute("subject");
+        MessageResult<WorkOrder> msgResult = new MessageResult<>();
+
+        if (!subject.isEmpty()) {
+            WorkOrder workOrder = workOrderService.get(orderId);
+            workOrder.setTechnicianId(subject);
+            workOrder.setStatus("2");
+            workOrder.setUpdateBy(subject);
+            workOrder.setUpdateTime(new Date());
+            workOrderService.update(workOrder);
+
+            ConstructionProgress constructionProgress = new ConstructionProgress();
+            constructionProgress.setId(UUID.randomUUID().toString());
+            constructionProgress.setTitle("师傅确认接单");
+            constructionProgress.setSubmitBy(subject);
+            constructionProgress.setSubmitType("2");
+            constructionProgress.setSubmitTime(new Date());
+            constructionProgress.setWorkOrderId(orderId);
+            Integer index = constructionProgressService.getIndex(orderId + 1);
+            if(index == null) {
+                index = 1;
+            }
+            constructionProgress.setIndex(index);
+            constructionProgress.setDelFlag(false);
+            constructionProgress.setCreateBy(subject);
+            constructionProgress.setCreateTime(new Date());
+            constructionProgressService.insert(constructionProgress);
+
+            msgResult.setResult(true);
+            msgResult.setData(workOrder);
+        } else {
+            msgResult.setResult(false);
+            msgResult.setMessage("用户未登录");
+        }
+
+        return msgResult;
+    }
 
     @ApiOperation(value="列表")
     @RequestMapping(value = "list",method = RequestMethod.POST)
     @ApiImplicitParams({
-            @ApiImplicitParam(name = "status", paramType = "query", required = true, value = "状态"),
+            @ApiImplicitParam(name = "status", paramType = "query", required = false, value = "状态"),
             @ApiImplicitParam(name = "key", paramType = "query", required = false, value = "关键字"),
+            @ApiImplicitParam(name = "date", paramType = "query", required = false, value = "日期(yyyy-MM-dd)"),
     })
     public MessageResult<Map> list(
-            String status, String key,
+            String status, String key, String technicianId, String date,
             @RequestParam(value="pageIndex",defaultValue="1") int pageIndex,
-            @RequestParam(value="pageSize",defaultValue="20") int pageSize,
-            HttpServletRequest request){
-        String subject = (String)request.getAttribute("subject");
-
+            @RequestParam(value="pageSize",defaultValue="20") int pageSize){
         MessageResult<Map> msgResult = new MessageResult<>();
 
         Map<String,Object> searchParams = new HashMap<>();
 
         List<Sort> sortList = new ArrayList<>();
-        sortList.add(new Sort("id_","asc"));
+        sortList.add(new Sort("create_time","desc"));
 
         if (StringUtils.isNotEmpty(status)) {
             searchParams.put("status",status);
         }
+        if (StringUtils.isNotEmpty(technicianId)) {
+            searchParams.put("technicianId",technicianId);
+        }
         if (StringUtils.isNotEmpty(key)) {
             searchParams.put("key","%"+key+"%");
         }
+        if (StringUtils.isNotEmpty(date)) {
+            searchParams.put("date",date+"%");
+        }
 
         Page<WorkOrder> page = workOrderService.pageSearch(searchParams,pageIndex,pageSize,true,sortList);
+        for(WorkOrder workOrder : page.getResult()) {
+            String statusName = dataDictionaryService.findNameByCatalogNameAndValue("工单状态",workOrder.getStatus());
+            workOrder.setStatusName(statusName);
+        }
 
         msgResult.setResult(true);
         msgResult.setData(PojoUtils.pageWrapper(page));
@@ -88,12 +180,35 @@ public class WorkOrderApiController {
 
         try {
             WorkOrder workOrder = workOrderService.get(id);
+            workOrder.setStatusName(dataDictionaryService.findNameByCatalogNameAndValue("工单状态",workOrder.getStatus()));
+
             InstallationRequirement installationRequirement = installationRequirementService.findByWorkOrderId(id);
+            installationRequirement.setConstructionLocationName(dataDictionaryService.findNameByCatalogNameAndValue("施工位置",installationRequirement.getConstructionLocation()));
+            installationRequirement.setEnvironmentName(dataDictionaryService.findNameByCatalogNameAndValue("施工环境",installationRequirement.getEnvironment()));
+            installationRequirement.setMaterialName(dataDictionaryService.findNameByCatalogNameAndValue("水箱材质",installationRequirement.getMaterial()));
+            installationRequirement.setDifficultyName(dataDictionaryService.findNameByCatalogNameAndValue("施工难度",installationRequirement.getDifficulty()));
+
             ReceiveRequire receiveRequire = receiveRequireService.findByWorkOrderId(id);
+
             List<ConstructionProgress> constructionProgressList = constructionProgressService.findByWorkOrderId(id);
+            for(ConstructionProgress constructionProgress : constructionProgressList) {
+                switch (constructionProgress.getSubmitType()) {
+                    case "1":
+                        CustomerInfo customerInfo = customerInfoService.get(constructionProgress.getSubmitBy());
+                        constructionProgress.setTitle("客户(" + customerInfo.getRealName() + ")" + constructionProgress.getTitle());
+                        break;
+                    case "2":
+                        TechnicianInfo technicianInfo = technicianInfoService.get(constructionProgress.getSubmitBy());
+                        constructionProgress.setTitle("师傅(" + technicianInfo.getRealName() + ")" + constructionProgress.getTitle());
+                        break;
+                }
+            }
+
             List<CommentInfo> commentInfoList = commentInfoService.findByWorkOrderId(id);
+            TechnicianInfo technicianInfo = technicianInfoService.get(workOrder.getTechnicianId());
 
             if (workOrder != null) {
+                map.put("technician",technicianInfo);
                 map.put("info",workOrder);
                 map.put("detail",installationRequirement);
                 map.put("require",receiveRequire);
@@ -185,7 +300,7 @@ public class WorkOrderApiController {
         MessageResult<Map> msgResult = new MessageResult<>();
 
         WorkOrder workOrder = workOrderService.get(orderId);
-        workOrder.setStatus("3");
+        workOrder.setStatus("4");
         workOrder.setUpdateBy(subject);
         workOrder.setUpdateTime(new Date());
         workOrderService.update(workOrder);
@@ -201,17 +316,28 @@ public class WorkOrderApiController {
     @ApiImplicitParams({
             @ApiImplicitParam(name = "orderId", paramType = "query", required = true, value = "订单编号"),
             @ApiImplicitParam(name = "title", paramType = "query", required = true, value = "进度节点"),
+            @ApiImplicitParam(name = "content", paramType = "query", required = true, value = "描述"),
             @ApiImplicitParam(name = "images", paramType = "query", required = true, value = "图片路径(','分隔)"),
+            @ApiImplicitParam(name = "isStart", paramType = "query", required = true, value = "是否入场"),
     })
+    @Transactional(rollbackFor = Exception.class)
     public MessageResult<Map> uploadProgress(
-            String orderId, String title, String images,
+            String orderId, String title, String content, String images, Boolean isStart,
             HttpServletRequest request){
         String subject = (String)request.getAttribute("subject");
         MessageResult<Map> msgResult = new MessageResult<>();
 
+        if(isStart) {
+            WorkOrder workOrder = workOrderService.get(orderId);
+            workOrder.setStatus("3");
+            workOrder.setUpdateBy(subject);
+            workOrder.setUpdateTime(new Date());
+            workOrderService.update(workOrder);
+        }
+
         ConstructionProgress constructionProgress = new ConstructionProgress();
         constructionProgress.setId(UUID.randomUUID().toString());
-        constructionProgress.setTitle(title);
+        constructionProgress.setTitle(title + content);
         constructionProgress.setImage(images);
         constructionProgress.setSubmitBy(subject);
         constructionProgress.setSubmitType("2");

BIN
web/target/classes/com/jpsoft/employment/config/WebMvcConfig.class


BIN
web/target/classes/com/jpsoft/employment/modules/mobile/controller/ResourceApiController.class


BIN
web/target/classes/com/jpsoft/employment/modules/mobile/controller/TechnicianApiController.class


BIN
web/target/classes/com/jpsoft/employment/modules/mobile/controller/WorkOrderApiController.class