|
@@ -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);
|
|
|
+ }
|
|
|
|
|
|
}
|