Przeglądaj źródła

Merge branch 'feat-financialbatchsettle-211119' into master

Qutong 3 lat temu
rodzic
commit
c70c6ca581

+ 58 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmPayOffController.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.pig4cloud.plugin.excel.annotation.ResponseExcel;
 import com.qunzhixinxi.hnqz.admin.entity.WmScorePackage;
+import com.qunzhixinxi.hnqz.admin.entity.WmScorePackageSettleNote;
 import com.qunzhixinxi.hnqz.admin.entity.input.WmScorePackageSettleInput;
 import com.qunzhixinxi.hnqz.admin.entity.input.WmScorePackageSettleOutput;
 import com.qunzhixinxi.hnqz.admin.entity.model.excel.WmScorePackageSettleExcelModel;
@@ -15,6 +16,7 @@ import com.qunzhixinxi.hnqz.admin.enums.SubjectTypeEnum;
 import com.qunzhixinxi.hnqz.admin.service.WmPayOffService;
 import com.qunzhixinxi.hnqz.admin.service.WmScorePackageService;
 import com.qunzhixinxi.hnqz.common.core.util.R;
+import com.qunzhixinxi.hnqz.common.ding.enums.DingEnum;
 import com.qunzhixinxi.hnqz.common.log.annotation.SysLog;
 import com.qunzhixinxi.hnqz.common.security.util.SecurityUtils;
 import io.swagger.annotations.Api;
@@ -29,7 +31,9 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 结算表
@@ -264,5 +268,59 @@ public class WmPayOffController {
 		return wmPayOffService.settleIssueBySubType(input);
 	}
 
+	/**
+	 * 批量财务结算
+	 *
+	 * @param inputList
+	 * @return
+	 */
+	@SysLog("批量财务结算" )
+	@PostMapping("/batch-financial-settle")
+	public R<?> batchFinancialSettle(@RequestBody List<WmScorePackageSettleInput> inputList) {
+		if (CollectionUtil.isEmpty(inputList)) {
+			return R.failed("数据异常");
+		}
+		List<Map<String, String>> msgList = new ArrayList<>();
+		for (WmScorePackageSettleInput input : inputList) {
+			if(StringUtils.isEmpty(input.getId()) || StringUtils.isEmpty(input.getSubType())
+				|| null == input.getInvoiceCategory() || StringUtils.isEmpty(input.getScorePackageName())) {
+				return R.failed("数据异常");
+			}
+			// 查询结算详情(用于拼接notes数据)
+			R queryR = wmPayOffService.settleById(input);
+
+			if (queryR.getCode() == 0) {
+				Map<String, Object> queryData = (Map<String, Object>) queryR.getData();
+				List<WmScorePackageSettleNote> notes = (List<WmScorePackageSettleNote>) queryData.get("notes");
+				input.setNotes(notes);
+				// 调用单个结算
+				R settleR = wmPayOffService.settleIssueBySubType(input);
+				boolean failFlag = false;
+				if (settleR.getCode() == 0) {
+					// 结算成功,不进行页面提示
+					for (WmScorePackageSettleNote note : notes) {
+						if (!DingEnum.NOTE_STATUS_SUBMIT.getType().equals(note.getSettleNoteStatus())) {
+							failFlag = true;
+						}
+					}
+				} else {
+					failFlag = true;
+				}
+				if (failFlag) {
+					Map<String, String> msgMap = new HashMap<>();
+					msgMap.put("packageName", input.getScorePackageName());
+					msgMap.put("reason", settleR.getMsg());
+					msgList.add(msgMap);
+				}
+			} else {
+				Map<String, String> msgMap = new HashMap<>();
+				msgMap.put("packageName", input.getScorePackageName());
+				msgMap.put("reason", queryR.getMsg());
+				msgList.add(msgMap);
+			}
+		}
+
+		return R.ok(msgList);
+	}
 
 }