瀏覽代碼

Merge branch 'feat-wenwen-20210826'

shc 3 年之前
父節點
當前提交
7f5dddd421

+ 1 - 0
hnqz-common/hnqz-common-taxhelper/src/main/java/com/qunzhixinxi/hnqz/common/taxhelper/common/CommonConstants.java

@@ -56,4 +56,5 @@ public interface CommonConstants {
 	String H5_TOKEN_METHOD = "税邦云H5TOKEN方法";
 	String BINDING_CARD_CODE_METHOD = "税邦云绑卡验证码";
 	String ACK_BINDING_CARD_METHOD = "税邦云绑卡确认";
+	String USER_AGREEMENT_SIGNATURE_METHOD = "用户签约方法";
 }

+ 5 - 89
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/ApiController.java

@@ -1204,25 +1204,12 @@ public class ApiController {
 	public R getUserScorePackageList2(Page page, int selType, String packageName, String selDate, String activeId) {
 
 		UserVO userVO = sysUserService.selectUserVoById(SecurityUtils.getUser().getId());
-//		Page scorePage = null;
 
-		List<WmScorePackageApiOutput> scorePackageList = new ArrayList<>();
+		List<WmScorePackageApiOutput> scorePackageList;
 		if (1 == selType && isZbRole(userVO.getRoleList(), 5)) {
 			return R.ok();
 		}
 
-
-//		LambdaQueryWrapper<WmScorePackage> scoreQuery = Wrappers.lambdaQuery(query);
-//		Boolean inFlag = false;
-
-
-		List<Map<String, Object>> resultList = new ArrayList<>();
-
-//		String packageType2 = "1";
-//		if("1".equals(userVO.getUserType())){
-//			packageType2 = "2";
-//		}
-
 		IPage<WmScorePackageApiOutput> scorePage;
 		// 小程序角色:5-全职学术信息沟通专员, 6-兼职学术信息沟通专员, 10-兼职CRC, 13-HCP
 		if (1 == selType && (isZbRole(userVO.getRoleList(), 6) || isZbRole(userVO.getRoleList(), 10)
@@ -1233,19 +1220,13 @@ public class ApiController {
 			query.setScorePackageName(packageName);
 			query.setBelongDate(selDate);
 			query.setZbId(userVO.getUserId() + "");
-//			query.setPackageType2(packageType2);
-
-//			scorePage = wmScorePackageService.page(page, scoreQuery);
+			// 0: 平台手动,1:系统对接
+			query.setSourceType("0");
 			scorePage = wmScorePackageService.getPackageListForReceive(page, query);
 			scorePackageList = scorePage.getRecords();
 
 			for (WmScorePackageApiOutput item : scorePackageList) {
-//				Map<String, Object> map = new HashMap<>();
-//				map.put("id", item.getId());
-//				map.put("packageName", item.getScorePackageName());
-//				map.put("score", item.getScore());
-//				map.put("packageEntName", item.getPackageEntName());
-//				map.put("userNum", item.getUserNum());
+
 				WmScorePackageStatus queryGetUser = new WmScorePackageStatus();
 				queryGetUser.setPackageId(item.getId());
 				queryGetUser.setStatus("2");
@@ -1258,35 +1239,16 @@ public class ApiController {
 					item.setScore(String.format("%.2f", Integer.parseInt(item.getScore()) / 100.0));
 				}
 
-//				map.put("taskNum", item.getTaskNum());
-//				map.put("createTime", item.getCreateTime());
-//				map.put("description", item.getDescription());
-//				map.put("packageType1", item.getPackageType1());
-//				if ("1".equals(item.getPackageType1())) {
-//					map.put("type1", "定额");
-//				} else if ("2".equals(item.getPackageType1())) {
-//					map.put("type1", "定量");
-//				} else if ("3".equals(item.getPackageType1())) {
-//					map.put("type1", "通用");
-//				}
-
-//				resultList.add(map);
 			}
-//			scorePage.setRecords(resultList);
 			return R.ok(scorePage);
 		}
 
-//		WmScorePackageStatus status = new WmScorePackageStatus();
-//		status.setDeptId(userVO.getDeptId() + "");
-//		status.setUserId(userVO.getUserId() + "");
-//		LambdaQueryWrapper<WmScorePackageStatus> statusQuery = Wrappers.lambdaQuery(status);
 
 		if (2 == selType) {
 			WmScorePackageApiInput input = new WmScorePackageApiInput();
 			input.setScorePackageName(packageName);
 			input.setSelDate(selDate);
 			input.setUserId(userVO.getUserId() + "");
-//			input.setPackageType2(packageType2);
 			if (isZbRole(userVO.getRoleList(), 5)) {
 				input.setTypeid("3");
 
@@ -1317,47 +1279,14 @@ public class ApiController {
 			} else {
 				return R.ok();
 			}
-//			if(inFlag){
-//				List<WmScorePackage> inList =  wmScorePackageService.list(scoreQuery);
-//				List<String> ids = inList.stream().map(WmScorePackage::getId).collect(Collectors.toList());
-//				System.err.println("-----"+inList.size());
-//				if (CollectionUtils.isNotEmpty(ids)) {
-//					statusQuery.in(WmScorePackageStatus::getPackageId,ids);
-//				}else {
-//					statusQuery.eq(WmScorePackageStatus::getPackageId,"-1");
-//				}
-//			}
 
 
 			scorePage = wmScorePackageStatusService.getReceivedPackageList(page, input);
 
 			scorePackageList = scorePage.getRecords();
 			if (CollectionUtils.isNotEmpty(scorePackageList)) {
-//				Map<String, Object> map = new HashMap<>();
 				for (WmScorePackageApiOutput item : scorePackageList) {
-//					WmScorePackage item = wmScorePackageService.getById(status1.getPackageId());
-//					map.put("id", item.getId());
-//					map.put("packageName", item.getScorePackageName());
-//					map.put("score", item.getScore());
-////					map.put("packageEntName", sysDeptService.getById(item.getSendPackageDeptId()).getName());
-//					map.put("packageEntName", item.getPackageEntName());
-//					map.put("userNum", item.getUserNum());
-//					map.put("taskNum", item.getTaskNum());
-//					map.put("createTime", item.getCreateTime());
-//					map.put("description", item.getDescription());
-//					map.put("packageType1", item.getPackageType1());
-
-//					if ("1".equals(item.getStatus())) {
-//						item.setStatusLabel("审核中");
-//					} else if ("2".equals(item.getStatus())) {
-//						item.setStatusLabel("审核通过");
-//					} else if ("3".equals(item.getStatus())) {
-//						item.setStatusLabel("审核不通过");
-//					}
-//					if (!"0".equals(item.getEnableType())) {
-//						item.setStatusLabel("已终止");
-//					}
-//					map.put("taskAddFlag", item.getTaskAddFlag());
+
 
 					WmScorePackageStatus queryGetUser = new WmScorePackageStatus();
 					queryGetUser.setPackageId(item.getId());
@@ -1378,10 +1307,6 @@ public class ApiController {
 					wmTask.setRealFlag("0");
 					List<WmTask> wmTaskList = wmTaskService.list(Wrappers.query(wmTask)
 							.lambda().ne(WmTask::getTaskStatus, "4"));
-//							.ne(WmTask::getRealFlag, "1").ne(WmTask::getTaskStatus, "4"));
-
-//					map.put("taskFinishNum", wmTaskList.size());
-//					map.put("speedProgress", "0");
 					item.setTaskFinishNum(wmTaskList.size());
 					item.setSpeedProgress(0);
 					item.setFinishScore(0);
@@ -1408,11 +1333,9 @@ public class ApiController {
 							if (d > 100) {
 								d = 100;
 							}
-//							map.put("speedProgress", new Double(d).intValue());
 							item.setSpeedProgress(new Double(d).intValue());
 						}
 					} else {
-//					} else if ("2".equals(item.getPackageType1())) {
 						Integer waitApprovalTaskNum = 0;
 						double d = Math.ceil(wmTaskList.size() * 100 / item.getTaskNum());
 						if (d > 100) {
@@ -1424,19 +1347,12 @@ public class ApiController {
 							}
 						}
 						item.setWaitApprovalTaskNum(waitApprovalTaskNum);
-//						map.put("speedProgress", new Double(d).intValue());
 						item.setSpeedProgress(new Double(d).intValue());
 					}
-
-//					resultList.add(map);
-
 				}
 			}
-//			scorePage.setRecords(resultList);
 			return R.ok(scorePage);
-
 		}
-
 		return R.ok();
 
 	}

+ 33 - 10
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/PartyAController.java

@@ -11,6 +11,7 @@ import com.qunzhixinxi.hnqz.admin.entity.dto.ScorePackageSettleNoteDTO;
 import com.qunzhixinxi.hnqz.admin.entity.dto.SettlementDTO;
 import com.qunzhixinxi.hnqz.admin.entity.dto.TaxHelperAckBindingCardDTO;
 import com.qunzhixinxi.hnqz.admin.entity.dto.TaxHelperAddMemberDTO;
+import com.qunzhixinxi.hnqz.admin.entity.dto.TaxHelperAgreementSignatureDTO;
 import com.qunzhixinxi.hnqz.admin.entity.dto.TaxHelperBindingCardCodeDTO;
 import com.qunzhixinxi.hnqz.admin.entity.dto.TaxHelperTokenDTO;
 import com.qunzhixinxi.hnqz.admin.entity.input.TaskSettleBatch;
@@ -65,7 +66,7 @@ public class PartyAController {
 	 * @return 增员操作结果
 	 */
 	@PostMapping(value = "/tax-helper/member")
-	public R taxHelperAddMember(@RequestBody EncryptedInput input) {
+	public R<?> taxHelperAddMember(@RequestBody EncryptedInput input) {
 
 		// 获取解密的文档
 		String decodeStr = input.getEncryptedInfo();
@@ -81,6 +82,28 @@ public class PartyAController {
 		}
 	}
 
+	// /**
+	//  * 用户协议签署
+	//  * @param input 加密信息
+	//  * @return 签署结果
+	//  */
+	// @PostMapping(value = "/tax-helper/agreement-signature")
+	// public R<?> taxHelperAgreementSignature(@RequestBody EncryptedInput input){
+	//
+	// 	// 获取解密的文档
+	// 	String decodeStr = input.getEncryptedInfo();
+	//
+	// 	// 实际业务处理
+	// 	TaxHelperAgreementSignatureDTO taxHelperAgreementSignatureDTO = JSONUtil.toBean(decodeStr, TaxHelperAgreementSignatureDTO.class);
+	// 	Map<String, String> result = partyAService.userAgreementAuthorization(taxHelperAgreementSignatureDTO);
+	//
+	// 	if ("2000".equals(result.get("code"))) {
+	// 		return R.ok(result);
+	// 	} else {
+	// 		return R.failed(result);
+	// 	}
+	// }
+
 	/**
 	 * 获取税邦云h5认证token
 	 *
@@ -88,7 +111,7 @@ public class PartyAController {
 	 * @return 结果
 	 */
 	@PostMapping(value = "/tax-helper/h5-token")
-	public R taxHelperH5Token(@RequestBody EncryptedInput input) {
+	public R<?> taxHelperH5Token(@RequestBody EncryptedInput input) {
 
 		// 获取解密的文档
 		String decodeStr = input.getEncryptedInfo();
@@ -111,7 +134,7 @@ public class PartyAController {
 	 * @return 结果
 	 */
 	@PostMapping(value = "/tax-helper/binding-card-code")
-	public R taxHelperBindingCardVerification(@RequestBody EncryptedInput input) {
+	public R<?> taxHelperBindingCardVerification(@RequestBody EncryptedInput input) {
 
 		// 获取解密的文档
 		String decodeStr = input.getEncryptedInfo();
@@ -134,7 +157,7 @@ public class PartyAController {
 	 * @return 结果
 	 */
 	@PostMapping(value = "/tax-helper/ack-binding-card")
-	public R taxHelperAckBindingCard(@RequestBody EncryptedInput input) {
+	public R<?> taxHelperAckBindingCard(@RequestBody EncryptedInput input) {
 		// 获取解密的文档
 		String decodeStr = input.getEncryptedInfo();
 
@@ -156,7 +179,7 @@ public class PartyAController {
 	 * @return 结果
 	 */
 	@PostMapping("/score-package")
-	public R createScorePackage(@RequestBody EncryptedInput input) {
+	public R<?> createScorePackage(@RequestBody EncryptedInput input) {
 		// 获取解密的文档
 		String decodeStr = input.getEncryptedInfo();
 
@@ -178,7 +201,7 @@ public class PartyAController {
 	 * @return 结果
 	 */
 	@PutMapping(value = "/score-package/pick-up")
-	public R pickUpScorePackage(@RequestBody EncryptedInput input) {
+	public R<?> pickUpScorePackage(@RequestBody EncryptedInput input) {
 		// 获取解密文档
 		String decodeStr = input.getEncryptedInfo();
 
@@ -200,7 +223,7 @@ public class PartyAController {
 	 * @return 结果
 	 */
 	@DeleteMapping("/score-package/cancellation")
-	public R cancelScorePackage(@RequestBody EncryptedInput input) {
+	public R<?> cancelScorePackage(@RequestBody EncryptedInput input) {
 		// 获取解密文档
 		String decodeStr = input.getEncryptedInfo();
 
@@ -222,7 +245,7 @@ public class PartyAController {
 	 * @return 结果
 	 */
 	@PostMapping("/score-package/evidence")
-	public R submitEvidence(@RequestBody EncryptedInput input) {
+	public R<?> submitEvidence(@RequestBody EncryptedInput input) {
 		// 获取解密文档
 		String decodeStr = input.getEncryptedInfo();
 
@@ -244,7 +267,7 @@ public class PartyAController {
 	 * @return 结果
 	 */
 	@PostMapping(value = "/settlement-note")
-	public R submitSettlement(@RequestBody EncryptedInput input) {
+	public R<?> submitSettlement(@RequestBody EncryptedInput input) {
 		// 获取解密文档
 		String decodeStr = input.getEncryptedInfo();
 
@@ -266,7 +289,7 @@ public class PartyAController {
 	 * @return 结果
 	 */
 	@PostMapping(value = "/settlement")
-	public R doSettlement(@RequestBody EncryptedInput input){
+	public R<?> doSettlement(@RequestBody EncryptedInput input){
 		// 获取解密文档
 		String decodeStr = input.getEncryptedInfo();
 

+ 0 - 17
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmScorePackageStatusController.java

@@ -68,23 +68,6 @@ public class WmScorePackageStatusController {
 		orderItem.setColumn("create_time");
 		orderItem.setAsc(false);
 		page.addOrder(orderItem);
-
-//		WmScorePackage wmScorePackage=new WmScorePackage();
-//		wmScorePackage.setSendPackageDeptId(SecurityUtils.getUser().getDeptId()+"");
-//		wmScorePackage.setTypeid("4");
-//    	List<WmScorePackage> wmScorePackageList=wmScorePackageService.list(Wrappers.query(wmScorePackage));
-//    	if(wmScorePackageList.size()>0)
-//		{
-//			List<String> stringList=new ArrayList<>();
-//			for (WmScorePackage wmScorePackage1:wmScorePackageList) {
-//				stringList.add(wmScorePackage1.getId());
-//			}
-//			if(stringList.size()>0)
-//			{
-//				return R.ok(wmScorePackageStatusService.page(page, Wrappers.query(wmScorePackageStatus).lambda().in(WmScorePackageStatus::getPackageId,stringList)));
-//			}
-//
-//		}
 		wmScorePackageStatus.setUserId(String.valueOf(SecurityUtils.getUser().getId()));
         return R.ok(wmScorePackageStatusService.getWmScorePackageStatusPage(page,wmScorePackageStatus));
     }

+ 19 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/entity/dto/TaxHelperAgreementSignatureDTO.java

@@ -0,0 +1,19 @@
+package com.qunzhixinxi.hnqz.admin.entity.dto;
+
+import lombok.Data;
+
+/**
+ * {@code TaxHelperAgreementSignatureDTO}
+ * <p>
+ * 税邦云签约dto
+ *
+ * @author Hengchen.Sun
+ * @version 1.0.0
+ * @date 2021/08/30 16:22:06
+ */
+@Data
+public class TaxHelperAgreementSignatureDTO  extends BaseTaxHelperDTO{
+	private static final long serialVersionUID = -3051890641975938436L;
+
+
+}

+ 6 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/PartyAService.java

@@ -8,6 +8,7 @@ import com.qunzhixinxi.hnqz.admin.entity.dto.ScorePackageSettleNoteDTO;
 import com.qunzhixinxi.hnqz.admin.entity.dto.SettlementDTO;
 import com.qunzhixinxi.hnqz.admin.entity.dto.TaxHelperAckBindingCardDTO;
 import com.qunzhixinxi.hnqz.admin.entity.dto.TaxHelperAddMemberDTO;
+import com.qunzhixinxi.hnqz.admin.entity.dto.TaxHelperAgreementSignatureDTO;
 import com.qunzhixinxi.hnqz.admin.entity.dto.TaxHelperBindingCardCodeDTO;
 import com.qunzhixinxi.hnqz.admin.entity.dto.TaxHelperTokenDTO;
 import com.qunzhixinxi.hnqz.admin.entity.input.TaskSettleBatch;
@@ -104,4 +105,9 @@ public interface PartyAService {
 	 */
 	Map<String, String> doSettlement(List<ExecSettlementDTO> execSettlementDTOList);
 
+	/**
+	 * 签署用户信息
+	 * @return 签署结果
+	 */
+	Map<String, String> userAgreementAuthorization(TaxHelperAgreementSignatureDTO taxHelperAgreementSignatureDTO);
 }

+ 130 - 3
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/PartyAServiceImpl.java

@@ -1,6 +1,7 @@
 package com.qunzhixinxi.hnqz.admin.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.date.LocalDateTimeUtil;
 import cn.hutool.core.lang.Assert;
 import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -10,6 +11,7 @@ import com.qunzhixinxi.hnqz.admin.api.constant.CacheConstants;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysUser;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysUserRole;
+import com.qunzhixinxi.hnqz.admin.api.entity.UserAgreementSignatureRecord;
 import com.qunzhixinxi.hnqz.admin.config.TaxNotifyConfig;
 import com.qunzhixinxi.hnqz.admin.entity.MonitoringIndicator;
 import com.qunzhixinxi.hnqz.admin.entity.SysCertResultRecord;
@@ -28,6 +30,7 @@ import com.qunzhixinxi.hnqz.admin.entity.dto.ScorePackageSettleNoteDTO;
 import com.qunzhixinxi.hnqz.admin.entity.dto.SettlementDTO;
 import com.qunzhixinxi.hnqz.admin.entity.dto.TaxHelperAckBindingCardDTO;
 import com.qunzhixinxi.hnqz.admin.entity.dto.TaxHelperAddMemberDTO;
+import com.qunzhixinxi.hnqz.admin.entity.dto.TaxHelperAgreementSignatureDTO;
 import com.qunzhixinxi.hnqz.admin.entity.dto.TaxHelperBindingCardCodeDTO;
 import com.qunzhixinxi.hnqz.admin.entity.dto.TaxHelperTokenDTO;
 import com.qunzhixinxi.hnqz.admin.entity.input.Record;
@@ -42,6 +45,7 @@ import com.qunzhixinxi.hnqz.admin.enums.PackageFinishStatusEnum;
 import com.qunzhixinxi.hnqz.admin.enums.ScorePackageStatusEnum;
 import com.qunzhixinxi.hnqz.admin.enums.SubjectTypeEnum;
 import com.qunzhixinxi.hnqz.admin.mapper.SysCertResultRecordMapper;
+import com.qunzhixinxi.hnqz.admin.mapper.UserAgreementSignatureRecordMapper;
 import com.qunzhixinxi.hnqz.admin.service.MonitoringIndicatorService;
 import com.qunzhixinxi.hnqz.admin.service.PartyAService;
 import com.qunzhixinxi.hnqz.admin.service.SysDeptService;
@@ -61,13 +65,17 @@ import com.qunzhixinxi.hnqz.common.taxhelper.config.TaxHelperConfig;
 import com.qunzhixinxi.hnqz.common.taxhelper.entity.model.TaxHelperAddMemberModel;
 import com.qunzhixinxi.hnqz.common.taxhelper.entity.model.TaxHelperBindingCardConfirmModel;
 import com.qunzhixinxi.hnqz.common.taxhelper.entity.model.TaxHelperBindingCardVerificationModel;
+import com.qunzhixinxi.hnqz.common.taxhelper.entity.model.TaxHelperGetUserAgreementModel;
 import com.qunzhixinxi.hnqz.common.taxhelper.entity.model.TaxHelperH5BizTokenModel;
 import com.qunzhixinxi.hnqz.common.taxhelper.entity.model.TaxHelperSettlementModel;
+import com.qunzhixinxi.hnqz.common.taxhelper.entity.model.TaxHelperUserAgreementAuthorizationModel;
 import com.qunzhixinxi.hnqz.common.taxhelper.entity.request.TaxHelperAddMemberRequest;
 import com.qunzhixinxi.hnqz.common.taxhelper.entity.request.TaxHelperBindingCardConfirmRequest;
 import com.qunzhixinxi.hnqz.common.taxhelper.entity.request.TaxHelperBindingCardVerificationRequest;
+import com.qunzhixinxi.hnqz.common.taxhelper.entity.request.TaxHelperGetUserAgreementRequest;
 import com.qunzhixinxi.hnqz.common.taxhelper.entity.request.TaxHelperH5BizTokenRequest;
 import com.qunzhixinxi.hnqz.common.taxhelper.entity.request.TaxHelperSettlementRequest;
+import com.qunzhixinxi.hnqz.common.taxhelper.entity.request.TaxHelperUserAgreementAuthorizationRequest;
 import com.qunzhixinxi.hnqz.common.taxhelper.entity.response.TaxHelperResponse;
 import com.qunzhixinxi.hnqz.common.taxhelper.enums.TaxHelperCertStatus;
 import com.qunzhixinxi.hnqz.common.taxhelper.service.TaxHelperService;
@@ -178,6 +186,8 @@ public class PartyAServiceImpl implements PartyAService {
 
 	private final RedisTemplate redisTemplate;
 
+	private final UserAgreementSignatureRecordMapper userAgreementSignatureRecordMapper;
+
 	/**
 	 * 税邦云增员
 	 *
@@ -254,6 +264,121 @@ public class PartyAServiceImpl implements PartyAService {
 		return getResultMap(CommonConstants.CLIENT_ERROR_CODE + "", response.getMessage());
 	}
 
+	/**
+	 * 回传用户协议授权信息
+	 *
+	 * @return 回传结果
+	 */
+	public Map<String, String> userAgreementAuthorization(TaxHelperAgreementSignatureDTO taxHelperAgreementSignatureDTO) {
+
+		// 获取用户并校验
+		SysUser member = userService.getOne(Wrappers.<SysUser>query()
+				.eq("username", taxHelperAgreementSignatureDTO.getUsername())
+				.eq("dept_id", taxHelperAgreementSignatureDTO.getDeptId()));
+		String info = checkoutMemberInfo(member, CommonConstants.USER_AGREEMENT_SIGNATURE_METHOD);
+		if (StringUtils.isNotEmpty(info)) {
+			return getResultMap("4000", info);
+		}
+
+		// 校验用户是否已经签署了信息
+		if (member.getTaxHelperAgreementSignature() == 1) {
+			return getResultMap("2000", "协议已签署");
+		}
+
+		// 获取部门并校验
+		SysDept dept = deptService.getById(taxHelperAgreementSignatureDTO.getDeptId());
+		info = checkoutDeptInfo(dept);
+		if (StringUtils.isNotEmpty(info)) {
+			return getResultMap("4000", info);
+		}
+
+		// 校验结算信息
+		SysDeptSub query = new SysDeptSub();
+		query.setDeptId(dept.getDeptId());
+		query.setSubjectType(SubjectTypeEnum.TYPE_SHUIBANGYUN.getCode());
+		query.setEnableFlag(SubjectTypeEnum.ENABLE_FLAG_TRUE.getCode());
+		SysDeptSub deptSub = sysDeptSubService.getOne(Wrappers.query(query));
+		info = checkoutDeptSubInfo(deptSub, ChannelEnum.TAX_HELPER, null);
+		if (StringUtils.isNotEmpty(info)) {
+			return getResultMap("4000", info);
+		}
+
+		// 签约开始
+		log.info("【{}({})】,获取签约信息", member.getRealname(), member.getUsername());
+		TaxHelperConfig config = new TaxHelperConfig();
+		config.setAppId(deptSub.getAppId());
+		config.setAppSecrete(deptSub.getAppSecret());
+		config.setQueryUrl(deptSub.getQueryUrl());
+
+		// 获取
+		TaxHelperGetUserAgreementModel getUserAgreementModel = new TaxHelperGetUserAgreementModel(config);
+		getUserAgreementModel.setEnterpriseCode(dept.getTaxCode());
+		TaxHelperGetUserAgreementRequest getUserAgreementRequest = new TaxHelperGetUserAgreementRequest(getUserAgreementModel);
+		TaxHelperResponse userAgreement = taxHelperService.getUserAgreement(getUserAgreementRequest);
+
+		// 记录认证结果
+		SysCertResultRecord record = new SysCertResultRecord();
+		record.setCode(userAgreement.getCode());
+		record.setCreateTime(LocalDateTime.now());
+		record.setDeptId(dept.getDeptId());
+		record.setMessage(StringUtils.isNotEmpty(userAgreement.getMessage()) ? userAgreement.getMessage() : "无");
+		record.setStatus(null);
+		record.setSubjectType(1);
+		record.setMethod("税邦云用户协议");
+		record.setUserId(member.getUserId());
+		sysCertResultRecordMapper.insert(record);
+
+
+		if (!userAgreement.success()) {
+			return getResultMap("4000", userAgreement.getMessage());
+		}
+
+
+		// 签约
+		log.info("【{}({})】,签约开始", member.getRealname(), member.getUsername());
+		TaxHelperUserAgreementAuthorizationModel model = new TaxHelperUserAgreementAuthorizationModel(config);
+		model.setEnterpriseCode(dept.getTaxCode());
+		LocalDateTime signTime = LocalDateTime.now();
+		model.setAuthorizationTime(LocalDateTimeUtil.format(signTime, CommonConstants.DEFAULT_DATE_TIME_FORMAT_PATTERN));
+		model.setIdCard(member.getIdCardNumber());
+
+		TaxHelperUserAgreementAuthorizationRequest request = new TaxHelperUserAgreementAuthorizationRequest(model);
+		TaxHelperResponse response = taxHelperService.userAgreementAuthorization(request);
+
+		// 记录认证结果
+		record.setCode(response.getCode());
+		record.setCreateTime(LocalDateTime.now());
+		record.setDeptId(dept.getDeptId());
+		record.setMessage(StringUtils.isNotEmpty(response.getMessage()) ? response.getMessage() : "无");
+		record.setStatus(null);
+		record.setSubjectType(1);
+		record.setMethod("税邦云回传用户协议授权信息");
+		record.setUserId(member.getUserId());
+		sysCertResultRecordMapper.insert(record);
+
+		if (response.success()) {
+			// 签署协议
+			UserAgreementSignatureRecord uasr = new UserAgreementSignatureRecord();
+			uasr.setAgreement(userAgreement.getData());
+			uasr.setUserId(member.getUserId());
+			uasr.setCreateTime(LocalDateTime.now());
+			uasr.setTarget(1);
+			uasr.setSignTime(signTime);
+			userAgreementSignatureRecordMapper.insert(uasr);
+
+
+			// 修改用户状态
+			member.setUpdateTime(LocalDateTime.now());
+			member.setTaxHelperAgreementSignature(1);
+			userService.updateById(member);
+
+
+			return getResultMap("2000", response.getMessage());
+		}
+		return getResultMap("4000", response.getMessage());
+	}
+
+
 	/**
 	 * 获取税邦云H5 token
 	 *
@@ -1117,7 +1242,7 @@ public class PartyAServiceImpl implements PartyAService {
 		for (WmScorePackageSettleNote note : noteList) {
 			tmp = tmp.add(note.getSettleAmount());
 		}
-		String errInfo = checkoutSettleLimit(member,noteList.stream().mapToInt(WmScorePackageSettleNote::getId).boxed()
+		String errInfo = checkoutSettleLimit(member, noteList.stream().mapToInt(WmScorePackageSettleNote::getId).boxed()
 				.collect(Collectors.toList()), deptSub.getLimitAmount(), tmp);
 		if (StringUtils.isNotEmpty(errInfo)) {
 			log.error(errInfo);
@@ -1150,12 +1275,12 @@ public class PartyAServiceImpl implements PartyAService {
 	 * 校验结算限制
 	 *
 	 * @param user         被校验者
-	 * @param noteIds 	   结算记录id
+	 * @param noteIds      结算记录id
 	 * @param limitAmount  限制金额
 	 * @param settleAmount 本次上传证据链累计金额
 	 * @return 校验错误信息,如果没有错误返回{@code null}
 	 */
-	private String checkoutSettleLimit(SysUser user, List<Integer> noteIds ,BigDecimal limitAmount, BigDecimal settleAmount) {
+	private String checkoutSettleLimit(SysUser user, List<Integer> noteIds, BigDecimal limitAmount, BigDecimal settleAmount) {
 
 		String info = null;
 
@@ -1371,6 +1496,8 @@ public class PartyAServiceImpl implements PartyAService {
 		List<Integer> taxHelperCertStatusList = new ArrayList<>();
 		if (CommonConstants.ADD_MEMBER_METHOD.equals(methodName)) {
 			taxHelperCertStatusList.add(TaxHelperCertStatus.UN_CERT.getCode());
+		} else if (CommonConstants.USER_AGREEMENT_SIGNATURE_METHOD.equals(methodName)){
+			taxHelperCertStatusList.add(TaxHelperCertStatus.ADD_MEMBER.getCode());
 		} else if (CommonConstants.H5_TOKEN_METHOD.equals(methodName)) {
 			taxHelperCertStatusList.add(TaxHelperCertStatus.ADD_MEMBER.getCode());
 			taxHelperCertStatusList.add(TaxHelperCertStatus.UNCHECKED_BIND.getCode());

+ 6 - 0
hnqz-upms/hnqz-upms-biz/src/main/resources/mapper/WmScorePackageMapper.xml

@@ -1060,6 +1060,9 @@
 		<if test="query.packageType2 != null and query.packageType2 != ''">
 			AND p.package_type2= #{query.packageType2}
 		</if>
+		<if test="query.sourceType != null and query.sourceType != ''">
+			AND p.source_type= #{query.sourceType}
+		</if>
 		and p.id not in (
 		select s.package_id from wm_score_package_status s where s.user_id = #{query.zbId} and s.status != 3
 		)
@@ -1079,6 +1082,9 @@
 		<if test="query.packageType2 != null and query.packageType2 != ''">
 			AND p.package_type2= #{query.packageType2}
 		</if>
+		<if test="query.sourceType != null and query.sourceType != ''">
+			AND p.source_type= #{query.sourceType}
+		</if>
 		and p.id not in (
 		select s.package_id from wm_score_package_status s where s.user_id = #{query.zbId} and s.status != 3
 		)

+ 2 - 1
hnqz-upms/hnqz-upms-biz/src/main/resources/mapper/WmScorePackageStatusMapper.xml

@@ -138,7 +138,8 @@
 		left join sys_user u on u.dept_id=p.send_package_dept_id
 		left join sys_user u1 on u1.user_id = s.user_id
 		where  s.del_flag=0  and p.del_flag=0
-		and p.typeid=4
+		  and p.typeid=4
+		  and p.source_type = '0'
 		<if test="query.id!=null and query.id!=''">
 			and s.id=#{query.id}
 		</if>