dev
This commit is contained in:
parent
7855c41e1a
commit
95de13fe46
|
|
@ -8,6 +8,8 @@ import lombok.experimental.Accessors;
|
|||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
|
|
@ -89,5 +91,5 @@ public class IM3505 extends BaseInputModel{
|
|||
@IMField(key="mdtrt_setl_type",name = "就诊结算类型",required = false)
|
||||
private String mdtrtSetlType;
|
||||
@IMField(key="drugtracinfo",name = "溯源码节点信息")
|
||||
private String drugtracinfo;
|
||||
private List<Map<String,String>> drugtracinfo;
|
||||
}
|
||||
|
|
@ -8,54 +8,57 @@ import lombok.experimental.Accessors;
|
|||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@ToString
|
||||
@Accessors(chain = true)
|
||||
public class IM3506 extends BaseInputModel{
|
||||
@IMField(key="med_list_codg",name = "医疗目录编码",required = true)
|
||||
@IMField(key = "med_list_codg", name = "医疗目录编码", required = true)
|
||||
private String medListCodg;
|
||||
@IMField(key="fixmedins_hilist_id",name = "定点医药机构目录编号",required = true)
|
||||
@IMField(key = "fixmedins_hilist_id", name = "定点医药机构目录编号", required = true)
|
||||
private String fixmedinsHilistId;
|
||||
@IMField(key="fixmedins_hilist_name",name = "定点医药机构目录名称",required = true)
|
||||
@IMField(key = "fixmedins_hilist_name", name = "定点医药机构目录名称", required = true)
|
||||
private String fixmedinsHilistName;
|
||||
@IMField(key="fixmedins_bchno",name = "定点医药机构批次流水号",required = true)
|
||||
@IMField(key = "fixmedins_bchno", name = "定点医药机构批次流水号", required = true)
|
||||
private String fixmedinsBchno;
|
||||
@IMField(key="setl_id",name = "结算ID")
|
||||
@IMField(key = "setl_id", name = "结算ID")
|
||||
private String setlId;
|
||||
@IMField(key="psn_no",name = "人员编号")
|
||||
@IMField(key = "psn_no", name = "人员编号")
|
||||
private String psnNo;
|
||||
@IMField(key="psn_cert_type",name = "人员证件类型",required = true)
|
||||
@IMField(key = "psn_cert_type", name = "人员证件类型", required = true)
|
||||
private String psnCertType;
|
||||
@IMField(key="certno",name = "证件号码")
|
||||
private String certNo;
|
||||
@IMField(key="psn_name",name = "人员姓名")
|
||||
@IMField(key = "certno", name = "证件号码")
|
||||
private String certno;
|
||||
@IMField(key = "psn_name", name = "人员姓名")
|
||||
private String psnName;
|
||||
@IMField(key="manu_lotnum",name = "生产批号",required = true)
|
||||
@IMField(key = "manu_lotnum", name = "生产批号", required = true)
|
||||
private String manuLotnum;
|
||||
@IMField(key="manu_date",name = "生产日期",required = true)
|
||||
@IMField(key = "manu_date", name = "生产日期", required = true)
|
||||
private LocalDate manuDate;
|
||||
@IMField(key="expy_end",name = "有效期止")
|
||||
@IMField(key = "expy_end", name = "有效期止")
|
||||
private LocalDate expyEnd;
|
||||
@IMField(key="rx_flag",name = "处方药标志",required = true)
|
||||
@IMField(key = "rx_flag", name = "处方药标志", required = true)
|
||||
private String rxFlag;
|
||||
@IMField(key="trdn_flag",name = "拆零标志",required = true)
|
||||
@IMField(key = "trdn_flag", name = "拆零标志", required = true)
|
||||
private String trdnFlag;
|
||||
@IMField(key="finl_trns_pric",name = "最终成交单价")
|
||||
@IMField(key = "finl_trns_pric", name = "最终成交单价")
|
||||
private BigDecimal finlTrnsPric;
|
||||
@IMField(key="sel_retn_cnt",name = "销售/退货数量",required = true)
|
||||
@IMField(key = "sel_retn_cnt", name = "销售/退货数量", required = true)
|
||||
private BigDecimal selRetnCnt;
|
||||
@IMField(key="sel_retn_time",name = "销售/退货时间",required = true)
|
||||
private LocalDate selRetnTime;
|
||||
@IMField(key="sel_retn_opter_name",name = "销售/退货经办人姓名",required = true)
|
||||
@IMField(key = "sel_retn_time", name = "销售/退货时间", required = true)
|
||||
private LocalDateTime selRetnTime;
|
||||
@IMField(key = "sel_retn_opter_name", name = "销售/退货经办人姓名", required = true)
|
||||
private String selRetnOpterName;
|
||||
@IMField(key="memo",name = "备注")
|
||||
@IMField(key = "memo", name = "备注")
|
||||
private String memo;
|
||||
@IMField(key="medins_prod_sel_no",name = "商品销售流水号")
|
||||
@IMField(key = "medins_prod_sel_no", name = "商品销售流水号")
|
||||
private String medinsProdSelNo;
|
||||
@IMField(key="mdtrt_sn",name = "就医流水号",required = true)
|
||||
@IMField(key = "mdtrt_sn", name = "就医流水号", required = true)
|
||||
private String mdtrtSn;
|
||||
@IMField(key="drugtracinfo",name = "溯源码节点信息")
|
||||
private String drugtracinfo;
|
||||
@IMField(key = "drugtracinfo", name = "溯源码节点信息")
|
||||
private List<Map<String,String>> drugtracinfo;
|
||||
}
|
||||
|
|
@ -16,7 +16,7 @@ import java.util.List;
|
|||
@ToString
|
||||
@Accessors(chain = true)
|
||||
public class OM2207A extends BaseOutputModel {
|
||||
|
||||
private String msgId;
|
||||
@OMField(key="setlinfo",name = "结算信息")
|
||||
private Setlinfo setlinfo;
|
||||
@OMField(key="setldetail",name = "结算基金分项信息")
|
||||
|
|
@ -27,6 +27,8 @@ public class OM2207A extends BaseOutputModel {
|
|||
public static class Setlinfo {
|
||||
@OMField(key = "mdtrt_id", name = "就诊ID")
|
||||
private String mdtrt_id;
|
||||
@OMField(key = "setl_id", name = "结算ID")
|
||||
private String setl_id;
|
||||
@OMField(key = "psn_no", name = "人员编号")
|
||||
private String psn_no;
|
||||
@OMField(key = "psn_name", name = "人员姓名")
|
||||
|
|
|
|||
|
|
@ -188,8 +188,9 @@ public class SocialRequest {
|
|||
}
|
||||
|
||||
public OM2207A call2207A(IM2207A im2207A) {
|
||||
JSONObject data = httpUtil.call("2207A",im2207A.buildToMap());
|
||||
JSONObject data = httpUtil.callBackMsgId("2207A",im2207A.buildToMap());
|
||||
OM2207A om2207A=new OM2207A();
|
||||
om2207A.setMsgId(data.get("msgid").toString());
|
||||
om2207A.setSetlinfo(JSONObject.parseObject(data.get("setlinfo").toString(), OM2207A.Setlinfo.class));
|
||||
om2207A.setSetldetail(JSONArray.parseArray(data.get("setldetail").toString(), OM2207A.Setldetail.class));
|
||||
return om2207A;
|
||||
|
|
@ -225,4 +226,7 @@ public class SocialRequest {
|
|||
}
|
||||
|
||||
|
||||
public void call3506(IM3506 im3506) {
|
||||
httpUtil.callBackMsgId("3506", im3506.buildToMap());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,25 @@
|
|||
package com.syjiaer.clinic.server.common.enums;
|
||||
|
||||
public enum RetailInventoryTypeEnum {
|
||||
Incomplete(0,"未完成"),
|
||||
Sale(1,"销售"),
|
||||
Refund(2,"退款");
|
||||
|
||||
private final Integer type;
|
||||
private final String desc;
|
||||
|
||||
RetailInventoryTypeEnum(final Integer type, final String desc) {
|
||||
this.type = type;
|
||||
this.desc = desc;
|
||||
}
|
||||
|
||||
public Integer getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public String getDesc() {
|
||||
return desc;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -11,6 +11,7 @@ import java.util.ArrayList;
|
|||
import java.util.List;
|
||||
import java.util.zip.ZipEntry;
|
||||
import java.util.zip.ZipInputStream;
|
||||
import java.util.zip.ZipOutputStream;
|
||||
|
||||
@Component
|
||||
public class FileUtil {
|
||||
|
|
@ -105,4 +106,27 @@ public class FileUtil {
|
|||
}
|
||||
return content.toString();
|
||||
}
|
||||
|
||||
|
||||
public void zipFiles(String[] srcFiles, String zipFile) {
|
||||
try (FileOutputStream fos = new FileOutputStream(zipFile);
|
||||
ZipOutputStream zos = new ZipOutputStream(fos)) {
|
||||
|
||||
for (String srcFile : srcFiles) {
|
||||
File fileToZip = new File(srcFile);
|
||||
FileInputStream fis = new FileInputStream(fileToZip);
|
||||
ZipEntry zipEntry = new ZipEntry(fileToZip.getName());
|
||||
zos.putNextEntry(zipEntry);
|
||||
|
||||
byte[] bytes = new byte[1024];
|
||||
int length;
|
||||
while ((length = fis.read(bytes)) >= 0) {
|
||||
zos.write(bytes, 0, length);
|
||||
}
|
||||
fis.close();
|
||||
}
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -217,6 +217,14 @@ public class HttpUtil {
|
|||
JSONObject output = post(config.get("social", "url"), JSON.toJSONString(getparms(infno, tag, input)),timeout);
|
||||
return output;
|
||||
}
|
||||
public JSONObject callBackMsgId(String infno, Map<String, Object> input) {
|
||||
Map<String, Object> parmsMap = getparms(infno, input);
|
||||
String msgId =parmsMap.get("msgid").toString();
|
||||
|
||||
JSONObject output = post(config.get("social", "url"), JSON.toJSONString(parmsMap));
|
||||
output.put("msgid",msgId);
|
||||
return output;
|
||||
}
|
||||
public JSONObject callBackMsgId(String infno, String tag, Map<String, Object> input) {
|
||||
|
||||
JSONObject output = post(config.get("social", "url"), JSON.toJSONString(getparms(infno, tag, input)));
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@ public class ManagerUtil {
|
|||
ManagerUser managerUser = new ManagerUser();
|
||||
managerUser.setId(Integer.parseInt(managerId.toString()));
|
||||
managerUser.setUsername(userName.toString());
|
||||
managerUser.setName(name.toString());
|
||||
return managerUser;
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
package com.syjiaer.clinic.server.controller.charge;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.syjiaer.clinic.server.common.api.output.OM2206A;
|
||||
import com.syjiaer.clinic.server.common.api.output.OM2207A;
|
||||
import com.syjiaer.clinic.server.common.util.DateUtil;
|
||||
|
|
@ -81,7 +82,11 @@ public class ChargeController extends BaseController {
|
|||
String mdtrtCertType = parmsUtil.getString("mdtrtCertType");
|
||||
String mdtrtCertNO = parmsUtil.getString("mdtrtCertNo");
|
||||
String insutype = parmsUtil.getString("insutype");
|
||||
return success( chargeService.socialRealPay(changeOrderCode,mdtrtCertType,mdtrtCertNO,insutype));
|
||||
Integer payType = parmsUtil.getInteger("payType");
|
||||
String curBalc = parmsUtil.getString("curBalc");
|
||||
OM2207A om2207A = chargeService.socialRealPay(changeOrderCode,mdtrtCertType,mdtrtCertNO,insutype);
|
||||
chargeService.recordSocialInfo(om2207A, chargeService.getByCode(changeOrderCode), payType,curBalc);
|
||||
return success( );
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -114,5 +119,19 @@ public class ChargeController extends BaseController {
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取收退费记录
|
||||
*/
|
||||
@RequestMapping("listChargeLog")
|
||||
public Result<List<ChargeLog>> getChargeList(){
|
||||
String begin = parmsUtil.getString("beginTime","开始时间为空");
|
||||
String end= parmsUtil.getString("endTime","结束时间为空");
|
||||
Integer userId = parmsUtil.getInteger("userId");
|
||||
LocalDateTime beginTime = DateUtil.getDateTime(begin);
|
||||
LocalDateTime endTime = DateUtil.getDateTime(end);
|
||||
List<ChargeLog> chargeLogs = chargeService.listChargeLog(beginTime,endTime,userId);
|
||||
|
||||
|
||||
return success(chargeLogs);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -44,13 +44,15 @@ public class SocialDirectoryController extends BaseController {
|
|||
|
||||
@RequestMapping("search")
|
||||
public Result<Object> search() {
|
||||
|
||||
Map<String, Object> parms = getParms();
|
||||
String keyword = parmsUtil.getString("keyword","请输入搜索关键词");
|
||||
Integer type= parmsUtil.getInteger("type");
|
||||
String produce= parmsUtil.getString("produce");
|
||||
int page = (Integer) parms.getOrDefault("page", 1);
|
||||
int size = (Integer) parms.getOrDefault("size", 10);
|
||||
|
||||
return success(socialDirectoryService.search(keyword, Arrays.asList(1305, 1321), page, size));
|
||||
return success(socialDirectoryService.search(keyword, type, page, size));
|
||||
}
|
||||
@RequestMapping("getByCode")
|
||||
public Result<SocialDirectoryView> getByCode() {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,92 @@
|
|||
package com.syjiaer.clinic.server.controller.social;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.syjiaer.clinic.server.common.api.input.IM2601;
|
||||
import com.syjiaer.clinic.server.common.api.input.IM3201;
|
||||
import com.syjiaer.clinic.server.common.api.output.OM3201;
|
||||
import com.syjiaer.clinic.server.common.util.DateUtil;
|
||||
import com.syjiaer.clinic.server.common.vo.Result;
|
||||
import com.syjiaer.clinic.server.controller.BaseController;
|
||||
import com.syjiaer.clinic.server.entity.charge.ChargeSocialPayLog;
|
||||
import com.syjiaer.clinic.server.entity.social.dto.ReconciliationItemDto;
|
||||
import com.syjiaer.clinic.server.entity.social.vo.ReconciliationDetailVo;
|
||||
import com.syjiaer.clinic.server.entity.social.vo.ReconciliationItemVo;
|
||||
import com.syjiaer.clinic.server.service.social.SocialReconciliationService;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/social/reconciliation")
|
||||
public class SocialReconciliationController extends BaseController {
|
||||
@Autowired
|
||||
private SocialReconciliationService socialReconciliationService;
|
||||
|
||||
|
||||
/**
|
||||
* 医保-对账列表
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping("/getList")
|
||||
public Result<List<ReconciliationItemVo>> getList(){
|
||||
String begin = parmsUtil.getString("beginTime","开始时间为空");
|
||||
String end= parmsUtil.getString("endTime","结束时间为空");
|
||||
LocalDateTime beginTime = DateUtil.getDateTime(begin);
|
||||
LocalDateTime endTime = DateUtil.getDateTime(end);
|
||||
|
||||
|
||||
return success( socialReconciliationService.getList(beginTime,endTime));
|
||||
}
|
||||
|
||||
/**
|
||||
* 对总账
|
||||
*/
|
||||
@RequestMapping("/totalDo")
|
||||
public Result<OM3201> totalDo(){
|
||||
ReconciliationItemDto dto = parmsUtil.getObject("data", ReconciliationItemDto.class);
|
||||
return success( socialReconciliationService.totalDo(dto));
|
||||
}
|
||||
/**
|
||||
* 明细对账
|
||||
*/
|
||||
@RequestMapping("/detailDo")
|
||||
public Result<List<ReconciliationDetailVo>> detailDo(){
|
||||
ReconciliationItemDto dto = parmsUtil.getObject("data", ReconciliationItemDto.class);
|
||||
return success(socialReconciliationService.detailDo(dto));
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 明细对账测试接口
|
||||
*/
|
||||
@RequestMapping("/testDetailDo")
|
||||
public Result<List<ReconciliationDetailVo>> testDetailDo(){
|
||||
|
||||
return success(socialReconciliationService.testDetailDo());
|
||||
}
|
||||
|
||||
/**
|
||||
* 冲正
|
||||
*/
|
||||
@RequestMapping("/reversal")
|
||||
public Result reversal(){
|
||||
|
||||
IM2601 im2601 = parmsUtil.getObject("data",IM2601.class);
|
||||
socialReconciliationService.reversal(im2601);
|
||||
return success();
|
||||
}
|
||||
}
|
||||
|
|
@ -7,6 +7,7 @@ import com.syjiaer.clinic.server.common.enums.UploadStatusEnum;
|
|||
import com.syjiaer.clinic.server.common.vo.Page;
|
||||
import com.syjiaer.clinic.server.common.vo.Result;
|
||||
import com.syjiaer.clinic.server.controller.BaseController;
|
||||
import com.syjiaer.clinic.server.entity.charge.ChargeInventoryLog;
|
||||
import com.syjiaer.clinic.server.entity.inventory.InventoryInit;
|
||||
import com.syjiaer.clinic.server.entity.social.dto.InventoryInitQuery;
|
||||
import com.syjiaer.clinic.server.entity.social.dto.InventoryLogQuery;
|
||||
|
|
@ -33,13 +34,14 @@ import java.util.List;
|
|||
public class SocialUploadController extends BaseController {
|
||||
@Autowired
|
||||
private SocialInventoryUploadService socialInventoryUploadService;
|
||||
|
||||
/**
|
||||
* 分页查询 商品初始化数据
|
||||
*/
|
||||
@RequestMapping("get3501List")
|
||||
public Result<Page<SocialInventoryInitVo>> get3501List() {
|
||||
InventoryInitQuery initQuery = parmsUtil.getObject("query", InventoryInitQuery.class);
|
||||
Page<SocialInventoryInitVo> page =socialInventoryUploadService.get3501List(initQuery);
|
||||
Page<SocialInventoryInitVo> page = socialInventoryUploadService.get3501List(initQuery);
|
||||
return success(page);
|
||||
}
|
||||
|
||||
|
|
@ -49,7 +51,7 @@ public class SocialUploadController extends BaseController {
|
|||
@RequestMapping("get3502List")
|
||||
public Result<Page<SocialInventoryLogVo>> get3502List() {
|
||||
InventoryLogQuery logQuery = parmsUtil.getObject("query", InventoryLogQuery.class);
|
||||
Page<SocialInventoryLogVo> page =socialInventoryUploadService.get3502List(logQuery);
|
||||
Page<SocialInventoryLogVo> page = socialInventoryUploadService.get3502List(logQuery);
|
||||
return success(page);
|
||||
}
|
||||
|
||||
|
|
@ -59,7 +61,7 @@ public class SocialUploadController extends BaseController {
|
|||
@RequestMapping("get3503List")
|
||||
public Result<Page> get3503List() {
|
||||
InventoryPurchaseLogQuery pLogQuery = parmsUtil.getObject("query", InventoryPurchaseLogQuery.class);
|
||||
Page<SocialInventoryPurchaseLogVo> page =socialInventoryUploadService.get3503List(pLogQuery);
|
||||
Page<SocialInventoryPurchaseLogVo> page = socialInventoryUploadService.get3503List(pLogQuery);
|
||||
return success(page);
|
||||
}
|
||||
|
||||
|
|
@ -70,10 +72,9 @@ public class SocialUploadController extends BaseController {
|
|||
*/
|
||||
@RequestMapping("get3505List")
|
||||
public Result<Page> get3505List() {
|
||||
// RetailInventoryQuery rlQuery = parmsUtil.getObject("query", RetailInventoryQuery.class);
|
||||
// Page<SocialInventoryPurchaseLogVo> page =socialInventoryUploadService.get3505List(rlQuery);
|
||||
// return success(page);
|
||||
return success();
|
||||
RetailInventoryQuery rlQuery = parmsUtil.getObject("query", RetailInventoryQuery.class);
|
||||
Page<ChargeInventoryLog> page = socialInventoryUploadService.get3505List(rlQuery);
|
||||
return success(page);
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -121,9 +122,9 @@ public class SocialUploadController extends BaseController {
|
|||
if (!uploadResult) {
|
||||
uploadResult = socialInventoryUploadService.upload3503();
|
||||
}
|
||||
// if (!uploadResult){
|
||||
// uploadResult = socialInventoryUploadService.upload3505();
|
||||
// }
|
||||
if (!uploadResult){
|
||||
uploadResult = socialInventoryUploadService.upload3505();
|
||||
}
|
||||
if (!uploadResult) {
|
||||
uploadResult = socialInventoryUploadService.upload3502();
|
||||
}
|
||||
|
|
@ -133,6 +134,4 @@ public class SocialUploadController extends BaseController {
|
|||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,123 @@
|
|||
package com.syjiaer.clinic.server.entity.charge;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import lombok.ToString;
|
||||
import lombok.experimental.Accessors;
|
||||
/**
|
||||
* <p>
|
||||
*
|
||||
* </p>
|
||||
*
|
||||
* @author NiuZiYuan
|
||||
* @since 2025-05-09
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
@ToString
|
||||
@Accessors(chain = true)
|
||||
@TableName("charge_social_pay_log")
|
||||
@ApiModel(value = "ChargeSocialPayLog对象", description = "")
|
||||
public class ChargeSocialPayLog implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty("自增主键")
|
||||
@TableId(value = "id", type = IdType.AUTO)
|
||||
private Integer id;
|
||||
|
||||
@ApiModelProperty("订单code")
|
||||
private String chargeOrderCode;
|
||||
|
||||
@ApiModelProperty("医保 结算id(医保返回唯一流水)")
|
||||
private String setlId;
|
||||
|
||||
@ApiModelProperty("人员编号")
|
||||
private String psnNo;
|
||||
|
||||
@ApiModelProperty("姓名")
|
||||
private String name;
|
||||
|
||||
@ApiModelProperty("余额")
|
||||
private BigDecimal balc;
|
||||
|
||||
@ApiModelProperty("基金支付总额")
|
||||
private BigDecimal fundPaySumamt;
|
||||
|
||||
@ApiModelProperty("基本医疗保险统筹基金支出")
|
||||
private BigDecimal hifpPay;
|
||||
|
||||
@ApiModelProperty("基本医疗保险统筹基金支付比例")
|
||||
private BigDecimal poolPropSelfpay;
|
||||
|
||||
@ApiModelProperty("公务员医疗补助资金支出")
|
||||
private BigDecimal cvlservPay;
|
||||
|
||||
@ApiModelProperty("企业补充医疗保险基金支出")
|
||||
private BigDecimal hifesPay;
|
||||
|
||||
@ApiModelProperty("居民大病保险资金支出")
|
||||
private BigDecimal hifmiPay;
|
||||
|
||||
@ApiModelProperty("职工大额医疗费用补助基金支出")
|
||||
private BigDecimal hifobPay;
|
||||
|
||||
@ApiModelProperty("医疗救助基金支出")
|
||||
private BigDecimal mafPay;
|
||||
|
||||
@ApiModelProperty("其他支出")
|
||||
private BigDecimal othPay;
|
||||
|
||||
@ApiModelProperty("个人负担总金额")
|
||||
private BigDecimal psnPartAmt;
|
||||
|
||||
@ApiModelProperty("个人账户支出")
|
||||
private BigDecimal acctPay;
|
||||
|
||||
@ApiModelProperty("个人现金支出")
|
||||
private BigDecimal psnCashPay;
|
||||
|
||||
@ApiModelProperty("个人现金部分支付类型")
|
||||
private Integer psPayType;
|
||||
|
||||
@ApiModelProperty("就诊ID 医保返回")
|
||||
private String mdtrtId;
|
||||
|
||||
@ApiModelProperty("险种类型")
|
||||
private String insutype;
|
||||
|
||||
@ApiModelProperty("清算类型")
|
||||
private String clrType;
|
||||
|
||||
@ApiModelProperty("清算经办机构")
|
||||
private String clrOptins;
|
||||
|
||||
@ApiModelProperty("结算时间")
|
||||
private LocalDateTime setlTime;
|
||||
|
||||
@ApiModelProperty("医疗类别")
|
||||
private String medType;
|
||||
|
||||
@ApiModelProperty("接口号")
|
||||
private String infno;
|
||||
|
||||
@ApiModelProperty("消息id")
|
||||
private String msgid;
|
||||
|
||||
@ApiModelProperty("支付类型 1收费 0退费")
|
||||
private Integer chargeType;
|
||||
|
||||
@ApiModelProperty("原有余额")
|
||||
private String originalBalc;
|
||||
|
||||
@ApiModelProperty("证件号码")
|
||||
private String certno;
|
||||
}
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
package com.syjiaer.clinic.server.mapper.charge;
|
||||
|
||||
import com.syjiaer.clinic.server.entity.charge.ChargeSocialPayLog;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author NiuZiYuan
|
||||
* @since 2025-05-09
|
||||
*/
|
||||
public interface ChargeSocialPayLogMapper extends BaseMapper<ChargeSocialPayLog> {
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -114,6 +114,9 @@ public class ChargeService extends BaseService {
|
|||
@Autowired
|
||||
@Lazy
|
||||
private ChargeService chargeService;
|
||||
|
||||
@Autowired
|
||||
private ChargeSocialPayLogMapper chargeSocialPayLogMapper;
|
||||
@Autowired
|
||||
private Config config;
|
||||
|
||||
|
|
@ -687,5 +690,97 @@ public class ChargeService extends BaseService {
|
|||
return page;
|
||||
}
|
||||
|
||||
/*
|
||||
查询收费记录
|
||||
*/
|
||||
public List<ChargeLog> listChargeLog(LocalDateTime beginTime, LocalDateTime endTime, Integer userId) {
|
||||
QueryWrapper<ChargeLog> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.ge("charge_time",beginTime);
|
||||
queryWrapper.le("charge_time",endTime);
|
||||
if (userId!=null){
|
||||
queryWrapper.eq("sale_person_id",userId);
|
||||
queryWrapper.or().eq("docker_id",userId);
|
||||
}
|
||||
return chargeLogMapper.selectList(queryWrapper);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 记录医保收费信息
|
||||
* @param om2102A
|
||||
* @param dbOrder
|
||||
* @param payType
|
||||
* @param curBalc
|
||||
*/
|
||||
public void recordSocialInfo(OM2207A om2102A, ChargeOrder dbOrder, Integer payType,String curBalc) {
|
||||
ChargeSocialPayLog socialPayLog = new ChargeSocialPayLog();
|
||||
OM2207A.Setlinfo setlinfo = om2102A.getSetlinfo();
|
||||
socialPayLog.setChargeOrderCode(dbOrder.getCode());
|
||||
socialPayLog.setSetlId(setlinfo.getSetl_id());
|
||||
socialPayLog.setPsnNo(setlinfo.getPsn_no());
|
||||
socialPayLog.setName(setlinfo.getPsn_name());
|
||||
socialPayLog.setBalc(setlinfo.getBalc());
|
||||
socialPayLog.setFundPaySumamt(setlinfo.getFund_pay_sumamt());
|
||||
socialPayLog.setHifpPay(setlinfo.getHifp_pay());
|
||||
socialPayLog.setPoolPropSelfpay(setlinfo.getPool_prop_selfpay());
|
||||
socialPayLog.setCvlservPay(setlinfo.getCvlserv_pay());
|
||||
socialPayLog.setHifesPay(setlinfo.getHifes_pay());
|
||||
socialPayLog.setHifmiPay(setlinfo.getHifmi_pay());
|
||||
socialPayLog.setHifobPay(setlinfo.getHifob_pay());
|
||||
socialPayLog.setMafPay(setlinfo.getMaf_pay());
|
||||
socialPayLog.setOthPay(setlinfo.getOth_pay());
|
||||
socialPayLog.setPsnPartAmt(setlinfo.getPsn_part_amt());
|
||||
socialPayLog.setAcctPay(setlinfo.getAcct_pay());
|
||||
socialPayLog.setPsnCashPay(setlinfo.getPsn_cash_pay());
|
||||
socialPayLog.setPsPayType(payType);
|
||||
socialPayLog.setMdtrtId(setlinfo.getMdtrt_id());
|
||||
socialPayLog.setInsutype(setlinfo.getInsutype());
|
||||
socialPayLog.setClrType(setlinfo.getClr_type());
|
||||
socialPayLog.setClrOptins(setlinfo.getClr_optins());
|
||||
socialPayLog.setSetlTime(setlinfo.getSetl_time());
|
||||
socialPayLog.setMedType(setlinfo.getMed_type());
|
||||
socialPayLog.setInfno("2102A");
|
||||
socialPayLog.setMsgid(om2102A.getMsgId());
|
||||
socialPayLog.setChargeType(ChargeTypeEnum.CHARGE.getChargeType());
|
||||
socialPayLog.setOriginalBalc(curBalc);
|
||||
chargeSocialPayLogMapper.insert(socialPayLog);
|
||||
}
|
||||
|
||||
// public void recordSocialInfo(OM2103 om2103, RetailOrder dbOrder) {
|
||||
// QueryWrapper<RetailSocialPayLog> logQuery = new QueryWrapper<>();
|
||||
// logQuery.eq("retail_order_code", dbOrder.getCode());
|
||||
// logQuery.eq("charge_type", ChargeTypeEnum.CHARGE.getChargeType());
|
||||
// RetailSocialPayLog charge = retailSocialPayLogService.getOne(logQuery);
|
||||
// RetailSocialPayLog refund = new RetailSocialPayLog();
|
||||
// OM2103.Setlinfo refundSetlinfo = om2103.getSetlinfo();
|
||||
// refund.setRetailOrderCode(dbOrder.getCode());
|
||||
// refund.setSetlId(refundSetlinfo.getSetl_id());
|
||||
// refund.setPsnNo(charge.getPsnNo());
|
||||
// refund.setName(charge.getName());
|
||||
// refund.setBalc(refundSetlinfo.getBalc());
|
||||
// refund.setFundPaySumamt(refundSetlinfo.getFund_pay_sumamt());
|
||||
// refund.setHifpPay(refundSetlinfo.getHifp_pay());
|
||||
// refund.setPoolPropSelfpay(refundSetlinfo.getPool_prop_selfpay());
|
||||
// refund.setCvlservPay(refundSetlinfo.getCvlserv_pay());
|
||||
// refund.setHifesPay(refundSetlinfo.getHifes_pay());
|
||||
// refund.setHifmiPay(refundSetlinfo.getHifmi_pay());
|
||||
// refund.setHifobPay(refundSetlinfo.getHifob_pay());
|
||||
// refund.setMafPay(refundSetlinfo.getMaf_pay());
|
||||
// refund.setOthPay(refundSetlinfo.getOth_pay());
|
||||
// refund.setPsnPartAmt(charge.getPsnPartAmt());
|
||||
// refund.setAcctPay(refundSetlinfo.getAcct_pay());
|
||||
// refund.setPsnCashPay(charge.getPsnCashPay());
|
||||
// refund.setPsPayType(charge.getPsPayType());
|
||||
// refund.setMdtrtId(refundSetlinfo.getMdtrt_id());
|
||||
// refund.setInsutype(charge.getInsutype());
|
||||
// refund.setClrType(charge.getClrType());
|
||||
// refund.setClrOptins(refundSetlinfo.getClr_optins());
|
||||
// refund.setSetlTime(refundSetlinfo.getSetl_time());
|
||||
// refund.setMedType(charge.getMedType());
|
||||
// refund.setInfno("2103");
|
||||
// refund.setMsgid(om2103.getMsgid());
|
||||
// refund.setChargeType(ChargeTypeEnum.REFUND.getChargeType());
|
||||
// refund.setCertno(charge.getCertno());
|
||||
// retailSocialPayLogService.save(refund);
|
||||
// }
|
||||
}
|
||||
|
|
|
|||
|
|
@ -298,6 +298,7 @@ public class InventoryService extends BaseService {
|
|||
throw new MessageException("订单不存在");
|
||||
}
|
||||
InventoryLog log = null;
|
||||
//更新库存数量
|
||||
if (!updateGoods.getWholeNumber().equals(dbInventory.getWholeNumber())) {
|
||||
log = adjustNumber(updateGoods.getId(),
|
||||
updateGoods.getWholeNumber(), updateGoods.getFragmentNumber(), "库存调整");
|
||||
|
|
@ -323,6 +324,14 @@ public class InventoryService extends BaseService {
|
|||
inventoryPurchaseLog.setUploadStatus(UploadStatusEnum.NoUpload.getStatus());
|
||||
inventoryPurchaseLogMapper.insert(inventoryPurchaseLog);
|
||||
}
|
||||
//更新库存基本信息 效期 生产日期 生产批次
|
||||
Inventory updateInventory = new Inventory();
|
||||
updateInventory.setId(updateGoods.getId());
|
||||
updateInventory.setProductionDate(updateGoods.getProductionDate());
|
||||
updateInventory.setExpiryDate(updateGoods.getExpiryDate());
|
||||
updateInventory.setProductionBatchCode(updateGoods.getProductionBatchCode());
|
||||
updateInventory.setPurchaseUnitPrice(updateGoods.getPurchaseUnitPrice());
|
||||
inventoryMapper.updateById(updateInventory);
|
||||
|
||||
//更新订单总价
|
||||
QueryWrapper<Inventory> queryGoods = new QueryWrapper<>();
|
||||
|
|
|
|||
|
|
@ -184,9 +184,9 @@ public class SocialDirectoryService extends BaseService {
|
|||
|
||||
//模糊搜索
|
||||
if (keyword != null && !keyword.trim().isEmpty()) {
|
||||
codeqw.like("name", keyword);
|
||||
codeqw.or().like("code", keyword);
|
||||
codeqw.or().like("keyword", keyword);
|
||||
codeqw.and(wrapper->
|
||||
wrapper.like("name", keyword).or().like("code", keyword).or().like("keyword", keyword)
|
||||
);
|
||||
}
|
||||
// 执行查询
|
||||
|
||||
|
|
|
|||
|
|
@ -6,12 +6,18 @@ import com.syjiaer.clinic.server.common.api.input.*;
|
|||
import com.syjiaer.clinic.server.common.api.request.SocialRequest;
|
||||
import com.syjiaer.clinic.server.common.constants.Constants;
|
||||
import com.syjiaer.clinic.server.common.enums.InventorySocialTypeEnum;
|
||||
import com.syjiaer.clinic.server.common.enums.RetailInventoryTypeEnum;
|
||||
import com.syjiaer.clinic.server.common.enums.RetailOrderPayTypeEnum;
|
||||
import com.syjiaer.clinic.server.common.enums.UploadStatusEnum;
|
||||
import com.syjiaer.clinic.server.common.exception.MessageException;
|
||||
import com.syjiaer.clinic.server.common.vo.Page;
|
||||
import com.syjiaer.clinic.server.entity.charge.ChargeInventoryLog;
|
||||
import com.syjiaer.clinic.server.entity.charge.ChargeOrder;
|
||||
import com.syjiaer.clinic.server.entity.charge.ChargeSocialPayLog;
|
||||
import com.syjiaer.clinic.server.entity.goods.Goods;
|
||||
import com.syjiaer.clinic.server.entity.inventory.*;
|
||||
import com.syjiaer.clinic.server.entity.manager.ManagerUser;
|
||||
import com.syjiaer.clinic.server.entity.organization.OrganizationMember;
|
||||
import com.syjiaer.clinic.server.entity.social.SocialDirectory;
|
||||
import com.syjiaer.clinic.server.entity.social.dto.InventoryInitQuery;
|
||||
import com.syjiaer.clinic.server.entity.social.dto.InventoryLogQuery;
|
||||
|
|
@ -21,18 +27,26 @@ import com.syjiaer.clinic.server.entity.social.vo.NotDoNumberVo;
|
|||
import com.syjiaer.clinic.server.entity.social.vo.SocialInventoryInitVo;
|
||||
import com.syjiaer.clinic.server.entity.social.vo.SocialInventoryLogVo;
|
||||
import com.syjiaer.clinic.server.entity.social.vo.SocialInventoryPurchaseLogVo;
|
||||
import com.syjiaer.clinic.server.mapper.charge.ChargeInventoryLogMapper;
|
||||
import com.syjiaer.clinic.server.mapper.charge.ChargeOrderMapper;
|
||||
import com.syjiaer.clinic.server.mapper.charge.ChargeSocialPayLogMapper;
|
||||
import com.syjiaer.clinic.server.mapper.goods.GoodsMapper;
|
||||
import com.syjiaer.clinic.server.mapper.inventory.*;
|
||||
import com.syjiaer.clinic.server.mapper.manager.ManagerUserMapper;
|
||||
import com.syjiaer.clinic.server.mapper.organization.OrganizationMemberMapper;
|
||||
import com.syjiaer.clinic.server.mapper.social.SocialDirectoryMapper;
|
||||
import com.syjiaer.clinic.server.service.BaseService;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/*
|
||||
* 医保进销存上报
|
||||
|
|
@ -46,10 +60,14 @@ public class SocialInventoryUploadService extends BaseService {
|
|||
@Autowired
|
||||
private InventoryLogMapper inventoryLogMapper;
|
||||
@Autowired
|
||||
private OrganizationMemberMapper organizationMemberMapper;
|
||||
@Autowired
|
||||
private InventoryMapper inventoryMapper;
|
||||
@Autowired
|
||||
private GoodsMapper goodsMapper;
|
||||
@Autowired
|
||||
private ManagerUserMapper managerUserMapper;
|
||||
@Autowired
|
||||
private SocialDirectoryMapper socialDirectoryMapper;
|
||||
@Autowired
|
||||
private InventoryPurchaseMapper inventoryPurchaseMapper;
|
||||
|
|
@ -57,6 +75,12 @@ public class SocialInventoryUploadService extends BaseService {
|
|||
private SocialRequest socialRequest;
|
||||
@Autowired
|
||||
private InventorySupplierMapper inventorySupplierMapper;
|
||||
@Autowired
|
||||
private ChargeInventoryLogMapper chargeInventoryLogMapper;
|
||||
@Autowired
|
||||
private ChargeOrderMapper chargeOrderMapper;
|
||||
@Autowired
|
||||
private ChargeSocialPayLogMapper chargeSocialPayLogMapper;
|
||||
|
||||
public Page<SocialInventoryInitVo> get3501List(InventoryInitQuery initQuery) {
|
||||
if (initQuery == null) {
|
||||
|
|
@ -86,7 +110,7 @@ public class SocialInventoryUploadService extends BaseService {
|
|||
}
|
||||
Page<InventoryInit> page = pageHelper(initQuery.getPageNum(), initQuery.getPageSize(), queryWrapper, inventoryInitMapper, "id", false);
|
||||
List<SocialInventoryInitVo> voList = new ArrayList<>();
|
||||
for (InventoryInit inventoryInit : page.getList()){
|
||||
for (InventoryInit inventoryInit : page.getList()) {
|
||||
SocialInventoryInitVo vo = new SocialInventoryInitVo();
|
||||
BeanUtils.copyProperties(inventoryInit, vo);
|
||||
Goods goods = goodsMapper.selectById(inventoryInit.getGoodsId());
|
||||
|
|
@ -128,17 +152,17 @@ public class SocialInventoryUploadService extends BaseService {
|
|||
}
|
||||
Page<InventoryLog> page = pageHelper(logQuery.getPageNum(), logQuery.getPageSize(), queryWrapper, inventoryLogMapper, "id", false);
|
||||
List<SocialInventoryLogVo> voList = new ArrayList<>();
|
||||
for (InventoryLog inventoryLog : page.getList()){
|
||||
SocialInventoryLogVo vo = new SocialInventoryLogVo();
|
||||
BeanUtils.copyProperties(inventoryLog, vo);
|
||||
Goods goods = goodsMapper.selectById(inventoryLog.getGoodsId());
|
||||
vo.setName(goods.getName());
|
||||
vo.setPackagingUnit(goods.getPackagingUnit());
|
||||
vo.setMinPackagingUnit(goods.getMinPackagingUnit());
|
||||
vo.setHilistCode(goods.getHilistCode());
|
||||
voList.add(vo);
|
||||
for (InventoryLog inventoryLog : page.getList()) {
|
||||
SocialInventoryLogVo vo = new SocialInventoryLogVo();
|
||||
BeanUtils.copyProperties(inventoryLog, vo);
|
||||
Goods goods = goodsMapper.selectById(inventoryLog.getGoodsId());
|
||||
vo.setName(goods.getName());
|
||||
vo.setPackagingUnit(goods.getPackagingUnit());
|
||||
vo.setMinPackagingUnit(goods.getMinPackagingUnit());
|
||||
vo.setHilistCode(goods.getHilistCode());
|
||||
voList.add(vo);
|
||||
|
||||
}
|
||||
}
|
||||
Page<SocialInventoryLogVo> resultPage = new Page<>();
|
||||
resultPage.setList(voList);
|
||||
resultPage.setTotal_page(page.getTotal_page());
|
||||
|
|
@ -166,7 +190,7 @@ public class SocialInventoryUploadService extends BaseService {
|
|||
}
|
||||
Page<InventoryPurchaseLog> page = pageHelper(pLogQuery.getPageNum(), pLogQuery.getPageSize(), queryWrapper, inventoryPurchaseLogMapper, "id", false);
|
||||
List<SocialInventoryPurchaseLogVo> voList = new ArrayList<>();
|
||||
for (InventoryPurchaseLog inventoryPurchaseLog : page.getList()){
|
||||
for (InventoryPurchaseLog inventoryPurchaseLog : page.getList()) {
|
||||
SocialInventoryPurchaseLogVo vo = new SocialInventoryPurchaseLogVo();
|
||||
BeanUtils.copyProperties(inventoryPurchaseLog, vo);
|
||||
Inventory inventory = inventoryMapper.selectById(inventoryPurchaseLog.getInventoryId());
|
||||
|
|
@ -200,11 +224,10 @@ public class SocialInventoryUploadService extends BaseService {
|
|||
|
||||
long count3503 = inventoryPurchaseLogMapper.selectCount(pLogQuery);
|
||||
|
||||
// QueryWrapper<RetailOrderInventory> rolQuery = new QueryWrapper<>();
|
||||
// rolQuery.in("upload_status", UploadStatusEnum.NoUpload.getStatus(), UploadStatusEnum.UploadFailed.getStatus());
|
||||
// rolQuery.in("type", RetailInventoryTypeEnum.Sale.getType(), RetailInventoryTypeEnum.Refund.getType());
|
||||
// long count3505 = iRetailOrderInventoryService.count(rolQuery);
|
||||
long count3505 = 0;
|
||||
QueryWrapper<ChargeInventoryLog> rolQuery = new QueryWrapper<>();
|
||||
rolQuery.in("upload_status", UploadStatusEnum.NoUpload.getStatus(), UploadStatusEnum.UploadFailed.getStatus());
|
||||
rolQuery.in("type", RetailInventoryTypeEnum.Sale.getType(), RetailInventoryTypeEnum.Refund.getType());
|
||||
long count3505 = chargeInventoryLogMapper.selectCount(rolQuery);
|
||||
NotDoNumberVo notDoNumberVo = new NotDoNumberVo();
|
||||
notDoNumberVo.setNumber3501(count3501);
|
||||
notDoNumberVo.setNumber3502(count3502);
|
||||
|
|
@ -235,7 +258,7 @@ public class SocialInventoryUploadService extends BaseService {
|
|||
}
|
||||
JSONObject jsonObject = JSONObject.parseObject(socialDirectory.getData());
|
||||
String jsonRxFlag = (String) jsonObject.get("rx_flag");
|
||||
String rxFlag = jsonRxFlag == null||jsonRxFlag.isEmpty() ? "0" : jsonRxFlag;
|
||||
String rxFlag = jsonRxFlag == null || jsonRxFlag.isEmpty() ? "0" : jsonRxFlag;
|
||||
IM3501 im3501 = new IM3501();
|
||||
im3501.setMedListCodg(socialDirectory.getCode())
|
||||
.setMedListCodg(socialDirectory.getCode())
|
||||
|
|
@ -273,7 +296,7 @@ public class SocialInventoryUploadService extends BaseService {
|
|||
IM3502 im3502 = new IM3502();
|
||||
JSONObject jsonObject = JSONObject.parseObject(socialDirectory.getData());
|
||||
String jsonRxFlag = (String) jsonObject.get("rx_flag");
|
||||
String rxFlag = jsonRxFlag == null||jsonRxFlag.isEmpty() ? "0" : jsonRxFlag;
|
||||
String rxFlag = jsonRxFlag == null || jsonRxFlag.isEmpty() ? "0" : jsonRxFlag;
|
||||
|
||||
|
||||
im3502.setMedListCodg(socialDirectory.getCode())
|
||||
|
|
@ -329,7 +352,7 @@ public class SocialInventoryUploadService extends BaseService {
|
|||
}
|
||||
JSONObject jsonObject = JSONObject.parseObject(socialDirectory.getData());
|
||||
String jsonRxFlag = (String) jsonObject.get("rx_flag");
|
||||
String rxFlag = jsonRxFlag == null||jsonRxFlag.isEmpty() ? "0" : jsonRxFlag;
|
||||
String rxFlag = jsonRxFlag == null || jsonRxFlag.isEmpty() ? "0" : jsonRxFlag;
|
||||
|
||||
|
||||
if (curInventoryPurchaseLog.getSocialType().equals(InventorySocialTypeEnum.OTHER_INBOUND.getType())) {
|
||||
|
|
@ -341,8 +364,8 @@ public class SocialInventoryUploadService extends BaseService {
|
|||
.setFixmedinsBchno(String.valueOf(inventory.getId()))
|
||||
.setSplerName(inventorySupplier.getName())
|
||||
.setManuLotnum(inventory.getProductionBatchCode())
|
||||
.setProdentpName(goods.getProducer() == null||goods.getProducer().isEmpty() ? "-":goods.getProducer())
|
||||
.setAprvno(goods.getApprovalCode() ==null||goods.getApprovalCode().isEmpty()?"-":goods.getApprovalCode())
|
||||
.setProdentpName(goods.getProducer() == null || goods.getProducer().isEmpty() ? "-" : goods.getProducer())
|
||||
.setAprvno(goods.getApprovalCode() == null || goods.getApprovalCode().isEmpty() ? "-" : goods.getApprovalCode())
|
||||
.setManuDate(inventory.getProductionDate())
|
||||
.setExpyEnd(inventory.getExpiryDate())
|
||||
.setPurcInvoCodg(inventoryPurchase.getInvoiceCode())
|
||||
|
|
@ -378,117 +401,140 @@ public class SocialInventoryUploadService extends BaseService {
|
|||
return true;
|
||||
}
|
||||
|
||||
// public boolean upload3505() {
|
||||
// QueryWrapper<RetailOrderInventory> roQuery = new QueryWrapper<>();
|
||||
// roQuery.in("upload_status", UploadStatusEnum.NoUpload.getStatus(), UploadStatusEnum.UploadFailed.getStatus());
|
||||
// roQuery.in("type", RetailInventoryTypeEnum.Sale.getType(), RetailInventoryTypeEnum.Refund.getType());
|
||||
// roQuery.orderByAsc("id");
|
||||
// roQuery.last("limit 1");
|
||||
// RetailOrderInventory orderInventory = iRetailOrderInventoryService.getOne(roQuery);
|
||||
// if (orderInventory == null) {
|
||||
// return false;
|
||||
// }
|
||||
// Inventory inventory = iInventoryService.getById(orderInventory.getInventoryId());
|
||||
//
|
||||
// RetailOrder retailOrder = iRetailOrderService.getOne(new QueryWrapper<RetailOrder>()
|
||||
// .eq("code", orderInventory.getRetailOrderCode()));
|
||||
// ManagerUser docker =iManagerUserService.getById(retailOrder.getDockerId());
|
||||
// ManagerUser salePerson = iManagerUserService.getById(retailOrder.getSalePersonId());
|
||||
// Goods goods = iGoodsService.getById(inventory.getGoodId());
|
||||
// SocialDirectory socialDirectory = iSocialDirectoryService.getByCode(goods.getHilistCode());
|
||||
// JSONObject jsonObject = JSONObject.parseObject(socialDirectory.getData());
|
||||
// String jsonRxFlag = (String) jsonObject.get("rx_flag");
|
||||
// String rxFlag = jsonRxFlag == null||jsonRxFlag.isEmpty() ? "0" : jsonRxFlag;
|
||||
//
|
||||
// if (orderInventory.getType().equals(RetailInventoryTypeEnum.Sale.getType())){
|
||||
// //销售 走3505
|
||||
// IM3505 im3505 = new IM3505();
|
||||
// IM3505.SelInfo selInfo = new IM3505.SelInfo();
|
||||
// selInfo.setMed_list_codg(goods.getHilistCode());
|
||||
// selInfo.setFixmedins_hilist_id(String.valueOf(socialDirectory.getId()));
|
||||
// selInfo.setFixmedins_hilist_name(goods.getName());
|
||||
// selInfo.setFixmedins_bchno(String.valueOf(orderInventory.getInventoryId()));
|
||||
// selInfo.setPrsc_dr_name(docker.getName());
|
||||
// selInfo.setPhar_name(docker.getName());
|
||||
// selInfo.setPhar_prac_cert_no(docker.getDockerCertno());
|
||||
//
|
||||
// if (retailOrder.getPayType().equals(RetailOrderPayTypeEnum.MEDICARE.getCode())){
|
||||
// //医保支付
|
||||
// RetailSocialPayLog payLog = iRetailSocialPayLogService.getOne(new QueryWrapper<RetailSocialPayLog>().
|
||||
// eq("retail_order_code", orderInventory.getRetailOrderCode()));
|
||||
// selInfo.setSetl_id(payLog.getSetlId());
|
||||
// selInfo.setMdtrt_sn(payLog.getMdtrtId());
|
||||
// selInfo.setPsn_no(payLog.getPsnNo());
|
||||
// selInfo.setPsn_name(payLog.getName());
|
||||
// selInfo.setCertno(payLog.getCertno());
|
||||
// selInfo.setMdtrt_setl_type("1");
|
||||
//
|
||||
// }else {
|
||||
// selInfo.setMdtrt_sn(orderInventory.getFeedetlSn());
|
||||
// selInfo.setMdtrt_setl_type("2");
|
||||
// }
|
||||
// selInfo.setManu_lotnum(inventory.getProductionBatchCode());
|
||||
// selInfo.setManu_date(inventory.getProductionDate());
|
||||
// selInfo.setExpy_end(inventory.getExpiryDate());
|
||||
// selInfo.setRx_flag(rxFlag);
|
||||
// selInfo.setTrdn_flag(orderInventory.getTrdnFlag()?"0":"1");
|
||||
// selInfo.setRtal_docno(orderInventory.getRetailOrderCode());
|
||||
// selInfo.setSel_retn_time(orderInventory.getCreateTime());
|
||||
// selInfo.setSel_retn_cnt(BigDecimal.valueOf(orderInventory.getNumber()));
|
||||
// selInfo.setSel_retn_opter_name(salePerson.getName());
|
||||
// List<String> drugtracinfo = new ArrayList<>();
|
||||
// selInfo.setDrugtracinfo(drugtracinfo);
|
||||
// im3505.setSelinfo(selInfo);
|
||||
// socialRequest.call3505(im3505);
|
||||
// }
|
||||
//
|
||||
// if (orderInventory.getType().equals(RetailInventoryTypeEnum.Refund.getType())){
|
||||
// //退款 走3506
|
||||
// IM3506 im3506 = new IM3506();
|
||||
// IM3506.SelInfo selInfo = new IM3506.SelInfo();
|
||||
// selInfo.setMed_list_codg(goods.getHilistCode());
|
||||
// selInfo.setFixmedins_hilist_id(String.valueOf(socialDirectory.getId()));
|
||||
// selInfo.setFixmedins_hilist_name(goods.getName());
|
||||
// selInfo.setFixmedins_bchno(String.valueOf(orderInventory.getInventoryId()));
|
||||
// selInfo.setPrsc_dr_name(docker.getName());
|
||||
// selInfo.setPhar_name(docker.getName());
|
||||
// selInfo.setPhar_prac_cert_no(docker.getDockerCertno());
|
||||
//
|
||||
// if (retailOrder.getPayType().equals(RetailOrderPayTypeEnum.MEDICARE.getCode())){
|
||||
// //医保支付
|
||||
// RetailSocialPayLog payLog = iRetailSocialPayLogService.getOne(new QueryWrapper<RetailSocialPayLog>().
|
||||
// eq("retail_order_code", orderInventory.getRetailOrderCode()));
|
||||
// selInfo.setSetl_id(payLog.getSetlId());
|
||||
// selInfo.setMdtrt_sn(payLog.getMdtrtId());
|
||||
// selInfo.setPsn_no(payLog.getPsnNo());
|
||||
// selInfo.setPsn_name(payLog.getName());
|
||||
// selInfo.setCertno(payLog.getCertno());
|
||||
// selInfo.setMdtrt_setl_type("1");
|
||||
//
|
||||
// }else {
|
||||
// selInfo.setMdtrt_sn(orderInventory.getFeedetlSn());
|
||||
// selInfo.setMdtrt_setl_type("2");
|
||||
// }
|
||||
// selInfo.setManu_lotnum(inventory.getProductionBatchCode());
|
||||
// selInfo.setManu_date(inventory.getProductionDate());
|
||||
// selInfo.setExpy_end(inventory.getExpiryDate());
|
||||
// selInfo.setRx_flag(rxFlag);
|
||||
// selInfo.setTrdn_flag(orderInventory.getTrdnFlag()?"0":"1");
|
||||
// selInfo.setRtal_docno(orderInventory.getRetailOrderCode());
|
||||
// selInfo.setSel_retn_time(orderInventory.getCreateTime());
|
||||
// selInfo.setSel_retn_cnt(BigDecimal.valueOf(orderInventory.getNumber()));
|
||||
// selInfo.setSel_retn_opter_name(salePerson.getName());
|
||||
// List<String> drugtracinfo = new ArrayList<>();
|
||||
// selInfo.setDrugtracinfo(drugtracinfo);
|
||||
// im3506.setSelinfo(selInfo);
|
||||
// socialRequest.call3506(im3506);
|
||||
// }
|
||||
// RetailOrderInventory updateOrderInventory = new RetailOrderInventory();
|
||||
// updateOrderInventory.setId(orderInventory.getId());
|
||||
// updateOrderInventory.setUploadStatus(UploadStatusEnum.Uploaded.getStatus());
|
||||
// updateOrderInventory.setCreateTime(LocalDateTime.now());
|
||||
// iRetailOrderInventoryService.updateById(updateOrderInventory);
|
||||
// return true;
|
||||
// }
|
||||
public Page<ChargeInventoryLog> get3505List(RetailInventoryQuery rlQuery) {
|
||||
/**
|
||||
* 获取3505列表
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
if (rlQuery == null) {
|
||||
throw new MessageException("没有带查询条件");
|
||||
}
|
||||
QueryWrapper<ChargeInventoryLog> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.ne("type", RetailInventoryTypeEnum.Incomplete.getType());
|
||||
if (rlQuery.getPageNum() == null || rlQuery.getPageNum() == 0) {
|
||||
rlQuery.setPageNum(1);
|
||||
}
|
||||
if (rlQuery.getPageSize() == null || rlQuery.getPageSize() == 0) {
|
||||
rlQuery.setPageSize(Constants.DetailPageSize);
|
||||
}
|
||||
if (rlQuery.getUploadStatus() != null && UploadStatusEnum.getByStatus(rlQuery.getUploadStatus()) != null) {
|
||||
queryWrapper.eq("upload_status", rlQuery.getUploadStatus());
|
||||
}
|
||||
if (rlQuery.getType() != null && InventorySocialTypeEnum.getByType(rlQuery.getType()) != null) {
|
||||
queryWrapper.eq("type", rlQuery.getType());
|
||||
}
|
||||
Page<ChargeInventoryLog> chargeInventoryLogPage = pageHelper(rlQuery.getPageNum(), rlQuery.getPageSize(), queryWrapper, chargeInventoryLogMapper);
|
||||
|
||||
return chargeInventoryLogPage;
|
||||
}
|
||||
|
||||
public boolean upload3505() {
|
||||
QueryWrapper<ChargeInventoryLog> roQuery = new QueryWrapper<>();
|
||||
roQuery.in("upload_status", UploadStatusEnum.NoUpload.getStatus(), UploadStatusEnum.UploadFailed.getStatus());
|
||||
roQuery.in("type", RetailInventoryTypeEnum.Sale.getType(), RetailInventoryTypeEnum.Refund.getType());
|
||||
roQuery.orderByAsc("id");
|
||||
roQuery.last("limit 1");
|
||||
ChargeInventoryLog orderInventory = chargeInventoryLogMapper.selectOne(roQuery);
|
||||
if (orderInventory == null) {
|
||||
return false;
|
||||
}
|
||||
Inventory inventory = inventoryMapper.selectById(orderInventory.getInventoryId());
|
||||
|
||||
ChargeOrder chargeOrder = chargeOrderMapper.selectOne(new QueryWrapper<ChargeOrder>()
|
||||
.eq("code", orderInventory.getChargeOrderCode()).last("limit 1"));
|
||||
ManagerUser salePerson = managerUserMapper.selectById(chargeOrder.getSalePersonId());
|
||||
OrganizationMember docker = organizationMemberMapper.selectById(salePerson.getOrganizationMemberId());
|
||||
|
||||
|
||||
Goods goods = goodsMapper.selectById(inventory.getGoodId());
|
||||
SocialDirectory socialDirectory = socialDirectoryMapper.getByCode(goods.getHilistCode());
|
||||
JSONObject jsonObject = JSONObject.parseObject(socialDirectory.getData());
|
||||
String jsonRxFlag = (String) jsonObject.get("rx_flag");
|
||||
String rxFlag = jsonRxFlag == null||jsonRxFlag.isEmpty() ? "0" : jsonRxFlag;
|
||||
|
||||
if (orderInventory.getType().equals(RetailInventoryTypeEnum.Sale.getType())){
|
||||
//销售 走3505
|
||||
IM3505 im3505 = new IM3505();
|
||||
im3505.setMedListCodg(goods.getHilistCode());
|
||||
im3505.setFixmedinsHilistId(String.valueOf(socialDirectory.getId()));
|
||||
im3505.setFixmedinsHilistName(goods.getName());
|
||||
im3505.setFixmedinsBchno(String.valueOf(orderInventory.getInventoryId()));
|
||||
im3505.setPrscDrName(docker.getName());
|
||||
im3505.setPharName(docker.getName());
|
||||
im3505.setPharPracCertNo(docker.getIdCardNumber());
|
||||
|
||||
if (chargeOrder.getPayType().equals(RetailOrderPayTypeEnum.MEDICARE.getCode())){
|
||||
//医保支付
|
||||
ChargeSocialPayLog payLog = chargeSocialPayLogMapper.selectOne(new QueryWrapper<ChargeSocialPayLog>().
|
||||
eq("retail_order_code", orderInventory.getChargeOrderCode()).last("limit 1"));
|
||||
im3505.setSetlId(payLog.getSetlId());
|
||||
im3505.setMdtrtSn(payLog.getMdtrtId());
|
||||
im3505.setPsnNo(payLog.getPsnNo());
|
||||
im3505.setPsnName(payLog.getName());
|
||||
im3505.setCertno(payLog.getCertno());
|
||||
im3505.setMdtrtSetlType("1");
|
||||
|
||||
}else {
|
||||
im3505.setMdtrtSn(orderInventory.getFeedetlSn());
|
||||
im3505.setMdtrtSetlType("2");
|
||||
}
|
||||
im3505.setManuLotnum(inventory.getProductionBatchCode());
|
||||
im3505.setManuDate(inventory.getProductionDate());
|
||||
im3505.setExpyEnd(inventory.getExpiryDate());
|
||||
im3505.setRxFlag(rxFlag);
|
||||
im3505.setTrdnFlag(orderInventory.getTrdnFlag()?"0":"1");
|
||||
im3505.setRtalDocno(orderInventory.getChargeOrderCode());
|
||||
im3505.setSelRetnTime(LocalDate.from(orderInventory.getCreateTime()));
|
||||
im3505.setSelRetnCnt(BigDecimal.valueOf(orderInventory.getNumber()));
|
||||
im3505.setSelRetnOpterName(salePerson.getName());
|
||||
List<Map<String,String>> drugtracinfo = new ArrayList<>();
|
||||
im3505.setDrugtracinfo(drugtracinfo);
|
||||
socialRequest.call3505(im3505);
|
||||
}
|
||||
|
||||
if (orderInventory.getType().equals(RetailInventoryTypeEnum.Refund.getType())){
|
||||
//退款 走3506
|
||||
IM3506 im3506 = new IM3506();
|
||||
im3506.setMedListCodg(goods.getHilistCode());
|
||||
im3506.setFixmedinsHilistId(String.valueOf(socialDirectory.getId()));
|
||||
im3506.setFixmedinsHilistName(goods.getName());
|
||||
im3506.setFixmedinsBchno(String.valueOf(orderInventory.getInventoryId()));
|
||||
im3506.setSelRetnOpterName(docker.getName());
|
||||
|
||||
if (chargeOrder.getPayType().equals(RetailOrderPayTypeEnum.MEDICARE.getCode())){
|
||||
//医保支付
|
||||
ChargeSocialPayLog payLog = chargeSocialPayLogMapper.selectOne(new QueryWrapper<ChargeSocialPayLog>().
|
||||
eq("retail_order_code", orderInventory.getChargeOrderCode()).last("limit 1"));
|
||||
im3506.setSetlId(payLog.getSetlId());
|
||||
im3506.setMdtrtSn(payLog.getMdtrtId());
|
||||
im3506.setPsnNo(payLog.getPsnNo());
|
||||
im3506.setPsnName(payLog.getName());
|
||||
im3506.setCertno(payLog.getCertno());
|
||||
|
||||
}else {
|
||||
im3506.setMdtrtSn(orderInventory.getFeedetlSn());
|
||||
}
|
||||
im3506.setManuLotnum(inventory.getProductionBatchCode());
|
||||
im3506.setManuDate(inventory.getProductionDate());
|
||||
im3506.setExpyEnd(inventory.getExpiryDate());
|
||||
im3506.setRxFlag(rxFlag);
|
||||
im3506.setTrdnFlag(orderInventory.getTrdnFlag()?"0":"1");
|
||||
|
||||
im3506.setSelRetnCnt(BigDecimal.valueOf(orderInventory.getNumber()));
|
||||
im3506.setSelRetnOpterName(salePerson.getName());
|
||||
im3506.setSelRetnTime(LocalDateTime.now());
|
||||
im3506.setSelRetnOpterName(salePerson.getName());
|
||||
List<Map<String,String>> drugtracinfo = new ArrayList<>();
|
||||
im3506.setDrugtracinfo(drugtracinfo);
|
||||
socialRequest.call3506(im3506);
|
||||
}
|
||||
ChargeInventoryLog updateOrderInventory = new ChargeInventoryLog();
|
||||
updateOrderInventory.setId(orderInventory.getId());
|
||||
updateOrderInventory.setUploadStatus(UploadStatusEnum.Uploaded.getStatus());
|
||||
updateOrderInventory.setCreateTime(LocalDateTime.now());
|
||||
chargeInventoryLogMapper.updateById(updateOrderInventory);
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,243 @@
|
|||
package com.syjiaer.clinic.server.service.social;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.syjiaer.clinic.server.common.api.input.IM2601;
|
||||
import com.syjiaer.clinic.server.common.api.input.IM3201;
|
||||
import com.syjiaer.clinic.server.common.api.input.IM3202;
|
||||
import com.syjiaer.clinic.server.common.api.output.OM3201;
|
||||
import com.syjiaer.clinic.server.common.api.output.OM3202;
|
||||
import com.syjiaer.clinic.server.common.api.output.OM9101;
|
||||
import com.syjiaer.clinic.server.common.api.request.SocialRequest;
|
||||
import com.syjiaer.clinic.server.common.config.Config;
|
||||
import com.syjiaer.clinic.server.common.exception.MessageException;
|
||||
import com.syjiaer.clinic.server.common.util.FileUtil;
|
||||
import com.syjiaer.clinic.server.common.util.HttpUtil;
|
||||
import com.syjiaer.clinic.server.entity.charge.ChargeOrder;
|
||||
import com.syjiaer.clinic.server.entity.charge.ChargeSocialPayLog;
|
||||
import com.syjiaer.clinic.server.entity.social.dto.ReconciliationItemDto;
|
||||
import com.syjiaer.clinic.server.entity.social.vo.ReconciliationDetailVo;
|
||||
import com.syjiaer.clinic.server.entity.social.vo.ReconciliationItemVo;
|
||||
import com.syjiaer.clinic.server.mapper.charge.ChargeOrderMapper;
|
||||
import com.syjiaer.clinic.server.mapper.charge.ChargeSocialPayLogMapper;
|
||||
import com.syjiaer.clinic.server.service.BaseService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@Slf4j
|
||||
@Service
|
||||
public class SocialReconciliationService extends BaseService {
|
||||
@Autowired
|
||||
private ChargeSocialPayLogMapper chargeSocialPayLogMapper;
|
||||
@Autowired
|
||||
private ChargeOrderMapper chargeOrderMapper;
|
||||
@Autowired
|
||||
private SocialRequest socialRequest;
|
||||
@Autowired
|
||||
private FileUtil fileUtil;
|
||||
@Autowired
|
||||
private Config config;
|
||||
@Autowired
|
||||
private HttpUtil httpUtil;
|
||||
public List<ReconciliationItemVo> getList(LocalDateTime beginTime, LocalDateTime endTime) {
|
||||
QueryWrapper<ChargeSocialPayLog> clrQuery = new QueryWrapper<>();
|
||||
clrQuery.select("clr_type,insutype,clr_optins,count(0) as count");
|
||||
clrQuery.groupBy("clr_type","insutype","clr_optins");
|
||||
clrQuery.ge("setl_time",beginTime);
|
||||
clrQuery.le("setl_time",endTime);
|
||||
List<Map<String,Object>> mapList = chargeSocialPayLogMapper.selectMaps(clrQuery);
|
||||
List<ReconciliationItemVo> voList = new ArrayList<>();
|
||||
for (Map<String,Object> item : mapList){
|
||||
if (item.get("clr_type") == null || item.get("insutype") == null){
|
||||
continue;
|
||||
}
|
||||
String clr = item.get("clr_type").toString();
|
||||
String insutype = item.get("insutype").toString();
|
||||
String clr_optins = item.get("clr_optins") == null ? "" : item.get("clr_optins").toString();
|
||||
QueryWrapper<ChargeSocialPayLog> listQuery = new QueryWrapper<>();
|
||||
listQuery.eq("clr_type",clr);
|
||||
listQuery.eq("insutype",insutype);
|
||||
listQuery.eq("clr_optins",clr_optins);
|
||||
listQuery.ge("setl_time",beginTime);
|
||||
listQuery.le("setl_time",endTime);
|
||||
List<ChargeSocialPayLog> logs = chargeSocialPayLogMapper.selectList(listQuery);
|
||||
ReconciliationItemVo vo = new ReconciliationItemVo();
|
||||
vo.setReconciliationType(clr);
|
||||
vo.setInsuranceType(insutype);
|
||||
vo.setHandlingInstitution(clr_optins);
|
||||
vo.setSettlementCount(logs.size());
|
||||
for (ChargeSocialPayLog log : logs){
|
||||
vo.setTotalMedicalCost(log.getPsnPartAmt().add(vo.getTotalMedicalCost()));
|
||||
vo.setTotalFundPayment(log.getFundPaySumamt().add(vo.getTotalFundPayment()));
|
||||
vo.setTotalPersonalAccountPayment(log.getAcctPay().add(vo.getTotalPersonalAccountPayment()));
|
||||
}
|
||||
voList.add(vo);
|
||||
}
|
||||
return voList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 对总账
|
||||
* @param dto
|
||||
* @return
|
||||
*/
|
||||
public OM3201 totalDo(ReconciliationItemDto dto) {
|
||||
IM3201 im3201 = new IM3201();
|
||||
IM3201.Data inData = new IM3201.Data();
|
||||
inData.setInsutype(dto.getInsuranceType());
|
||||
inData.setClr_type(dto.getReconciliationType());
|
||||
inData.setSetl_optins(dto.getHandlingInstitution());
|
||||
inData.setStmt_begndate(dto.getBeginTime().toString());
|
||||
inData.setStmt_enddate(dto.getEndTime().toString());
|
||||
inData.setMedfee_sumamt(dto.getTotalMedicalCost());
|
||||
inData.setFund_pay_sumamt(dto.getTotalFundPayment());
|
||||
inData.setAcct_pay(dto.getTotalPersonalAccountPayment());
|
||||
inData.setFixmedins_setl_cnt(new BigDecimal(dto.getSettlementCount()));
|
||||
im3201.setData(inData);
|
||||
return socialRequest.call3201(im3201);
|
||||
}
|
||||
|
||||
/**
|
||||
* 明显对账
|
||||
* @param dto
|
||||
*/
|
||||
public List<ReconciliationDetailVo> detailDo(ReconciliationItemDto dto) {
|
||||
QueryWrapper<ChargeSocialPayLog> listQuery = new QueryWrapper<>();
|
||||
listQuery.eq("clr_type",dto.getReconciliationType());
|
||||
listQuery.eq("insutype",dto.getInsuranceType());
|
||||
listQuery.eq("clr_optins",dto.getHandlingInstitution());
|
||||
listQuery.ge("setl_time",dto.getBeginTime());
|
||||
listQuery.le("setl_time",dto.getEndTime());
|
||||
List<ChargeSocialPayLog> logs = chargeSocialPayLogMapper.selectList(listQuery);
|
||||
|
||||
try {
|
||||
String filePath = File.createTempFile("temp", ".txt").toString();
|
||||
File file = new File(filePath);
|
||||
File parentDir = file.getParentFile();
|
||||
|
||||
// 如果父目录不存在,创建多层文件夹
|
||||
if (!parentDir.exists()) {
|
||||
parentDir.mkdirs();
|
||||
}
|
||||
// 如果文件不存在,创建文件
|
||||
if (!file.exists()) {
|
||||
file.createNewFile();
|
||||
}
|
||||
//生成文件
|
||||
FileWriter writer = new FileWriter(file);
|
||||
for (ChargeSocialPayLog log : logs){
|
||||
//TODO 退费标志
|
||||
QueryWrapper<ChargeOrder> orderQuery = new QueryWrapper<>();
|
||||
orderQuery.eq("code",log.getChargeOrderCode());
|
||||
orderQuery.last("limit 1");
|
||||
ChargeOrder dbOrder = chargeOrderMapper.selectOne(orderQuery);
|
||||
String line = log.getSetlId()+"\t"+log.getMdtrtId()+"\t"+
|
||||
log.getPsnNo()+"\t"+dbOrder.getTotalPrice()+"\t"+log.getFundPaySumamt()+"\t" +log.getAcctPay()+"\t"
|
||||
+"0"+"\n";
|
||||
writer.write(line);
|
||||
}
|
||||
writer.flush();
|
||||
writer.close();
|
||||
log.info("对账明细文件创建成功,文件路径:"+filePath);
|
||||
//压缩文件为zip包
|
||||
String zipPath = filePath.substring(0,filePath.lastIndexOf("."))+".zip";
|
||||
fileUtil.zipFiles(new String[]{filePath},zipPath);
|
||||
//上传文件
|
||||
OM9101 om9101 = socialRequest.call9101(zipPath);
|
||||
//请求明细对账接口
|
||||
IM3202 im3202 = new IM3202();
|
||||
IM3202.Data inData = new IM3202.Data();
|
||||
inData.setSetl_optins(dto.getHandlingInstitution());
|
||||
inData.setFile_qury_no(om9101.getFile_qury_no());
|
||||
inData.setStmt_begndate(dto.getBeginTime().toString());
|
||||
inData.setStmt_enddate(dto.getEndTime().toString());
|
||||
inData.setMedfee_sumamt(dto.getTotalMedicalCost());
|
||||
inData.setFund_pay_sumamt(dto.getTotalFundPayment());
|
||||
inData.setCash_payamt(new BigDecimal(0));
|
||||
inData.setFixmedins_setl_cnt(BigDecimal.valueOf(dto.getSettlementCount()));
|
||||
inData.setRefd_setl_flag("0");
|
||||
im3202.setData(inData);
|
||||
OM3202 om3202 = socialRequest.call3202(im3202);
|
||||
Map<String, Object> input_dw = new HashMap<>();
|
||||
String downloadFileName = om3202.getFilename();
|
||||
input_dw.put("file_qury_no", om3202.getFile_qury_no());
|
||||
input_dw.put("fixmedins_code",config.get("social","fixmedinsCode") );
|
||||
input_dw.put("filename", om3202.getFilename());
|
||||
String savePath = file.getParent();
|
||||
//下载文件
|
||||
httpUtil.callToFile("9102", "fsDownloadIn", input_dw, savePath+"\\"+downloadFileName);
|
||||
//解析文件
|
||||
List<String> unzip = fileUtil.unzip(savePath,downloadFileName);
|
||||
List<String> readToList = fileUtil.readToList(unzip);
|
||||
List<ReconciliationDetailVo> voList = new ArrayList<>();
|
||||
for (String s : readToList){
|
||||
ReconciliationDetailVo vo = new ReconciliationDetailVo();
|
||||
List<String> sList = List.of(s.split("\t"));
|
||||
vo.setPsnNo(sList.get(0));
|
||||
vo.setMdtrtId(sList.get(1));
|
||||
vo.setSetlId(sList.get(2));
|
||||
vo.setMsgid(sList.get(3));
|
||||
vo.setStmtRslt(sList.get(4));
|
||||
vo.setRefdSetlFlag(sList.get(5));
|
||||
vo.setMemo(sList.get(6));
|
||||
vo.setMedfeeSumamt(new BigDecimal(sList.get(7)));
|
||||
vo.setFundPaySumamt(new BigDecimal(sList.get(8)));
|
||||
vo.setAcctPay(new BigDecimal(sList.get(9)));
|
||||
voList.add(vo);
|
||||
}
|
||||
return voList;
|
||||
|
||||
}catch (IOException io){
|
||||
log.error("创建文件失败");
|
||||
throw new MessageException("创建文件失败");
|
||||
|
||||
}catch (Exception e){
|
||||
log.error("未知错误",e);
|
||||
throw new MessageException("未知错误");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 测试明细对账
|
||||
* @return
|
||||
*/
|
||||
public List<ReconciliationDetailVo> testDetailDo() {
|
||||
String path = "C:/Users/jiaer/Desktop";
|
||||
String fileName = "FSI0000296920.zip";
|
||||
List<String> unzip = fileUtil.unzip(path, fileName);
|
||||
List<String> readToList = fileUtil.readToList(unzip);
|
||||
List<ReconciliationDetailVo> voList = new ArrayList<>();
|
||||
for (String s : readToList){
|
||||
ReconciliationDetailVo vo = new ReconciliationDetailVo();
|
||||
List<String> sList = List.of(s.split("\t"));
|
||||
vo.setPsnNo(sList.get(0));
|
||||
vo.setMdtrtId(sList.get(1));
|
||||
vo.setSetlId(sList.get(2));
|
||||
vo.setMsgid(sList.get(3));
|
||||
vo.setStmtRslt(sList.get(4));
|
||||
vo.setRefdSetlFlag(sList.get(5));
|
||||
vo.setMemo(sList.get(6));
|
||||
vo.setMedfeeSumamt(new BigDecimal(sList.get(7)));
|
||||
vo.setFundPaySumamt(new BigDecimal(sList.get(8)));
|
||||
vo.setAcctPay(new BigDecimal(sList.get(9)));
|
||||
voList.add(vo);
|
||||
}
|
||||
|
||||
System.out.println(voList);
|
||||
return voList;
|
||||
}
|
||||
|
||||
public void reversal(IM2601 im2601) {
|
||||
socialRequest.call2601(im2601);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
<?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.syjiaer.clinic.server.mapper.charge.ChargeSocialPayLogMapper">
|
||||
|
||||
</mapper>
|
||||
Loading…
Reference in New Issue