1、销售出库 医保删除逻辑

dev_2.5_ocean
qiuyt 4 months ago
parent 24fd90e76f
commit 22dda55b20

@ -6,12 +6,12 @@ import com.github.pagehelper.PageInfo;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.controller.BaseController;
import com.glxp.api.dao.collect.IoCollectOrderBackupMapper;
import com.glxp.api.entity.collect.IoCollectOrderBackup;
import com.glxp.api.entity.collect.IoCollectOrderCodeMan;
import com.glxp.api.http.ErpBasicClient;
import com.glxp.api.req.basic.BasicCollectUserRequest;
import com.glxp.api.req.collect.CollectOrderBizRequest;
import com.glxp.api.req.collect.CollectOrderRequest;
import com.glxp.api.req.collect.CollectOrderUploadCountRequest;
import com.glxp.api.req.collect.*;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.basic.UserWorkResponse;
import com.glxp.api.res.collect.CollectOrderBizResponse;
@ -20,6 +20,7 @@ import com.glxp.api.res.collect.IoCollectOrderResponse;
import com.glxp.api.service.basic.BasicCollectUserService;
import com.glxp.api.service.collect.IoCollectOrderBackupService;
import com.glxp.api.service.collect.IoCollectOrderBizBackupService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@ -36,6 +37,7 @@ import java.util.stream.Collectors;
* @modyified By :
*/
@RestController
@Slf4j
public class IoCollectOrderBackupController extends BaseController {
@Resource
@ -48,22 +50,23 @@ public class IoCollectOrderBackupController extends BaseController {
@PostMapping("/udiwms/basic/collect/orderFinish/filter")
public BaseResponse filterOrder(@RequestBody CollectOrderRequest collectOrderRequest) {
List<Long> workPlaceCodes = null;
List<UserWorkResponse> page;
if (collectOrderRequest.getWorkPlaceCode() == null) {
Long userId = getUserId();
BasicCollectUserRequest request = new BasicCollectUserRequest();
request.setPage(1);
request.setLimit(100);
request.setUserId(userId.toString());
page = basicCollectUserService.filterList(request);
if (page != null) {
workPlaceCodes = page.stream()
.map(UserWorkResponse::getWorkplaceId)
.collect(Collectors.toList());
}
collectOrderRequest.setWorkPlaceCodes(workPlaceCodes);
}
// List<Long> workPlaceCodes = null;
// List<UserWorkResponse> page;
// if (collectOrderRequest.getWorkPlaceCode() == null) {
// Long userId = getUserId();
// BasicCollectUserRequest request = new BasicCollectUserRequest();
// request.setPage(1);
// request.setLimit(100);
// request.setUserId(userId.toString());
// page = basicCollectUserService.filterList(request);
// if (page != null) {
// workPlaceCodes = page.stream()
// .map(UserWorkResponse::getWorkplaceId)
// .collect(Collectors.toList());
// }
// collectOrderRequest.setWorkPlaceCodes(workPlaceCodes);
// }
log.error("collectOrderRequest"+collectOrderRequest);
List<IoCollectOrderResponse> orderResponses = ioCollectOrderBackupService.filterList(collectOrderRequest);
PageInfo<IoCollectOrderResponse> pageInfo = new PageInfo<>(orderResponses);
PageSimpleResponse<IoCollectOrderResponse> pageSimpleResponse = new PageSimpleResponse<>();
@ -111,13 +114,39 @@ public class IoCollectOrderBackupController extends BaseController {
if (StrUtil.isEmpty(collectOrderRequest.getBillNo()))
return ResultVOUtils.error(500, "单据号不能为空");
Boolean aBoolean = ioCollectOrderBackupService.orderUpload(collectOrderRequest.getBillNo(), getUser());
if (!aBoolean) {
return ResultVOUtils.error("上传失败");
}
return ResultVOUtils.success();
}
@Resource
private ErpBasicClient erpBasicClient;
/**
*
*
* @param collectOrderRequest
* @return
*/
@Resource
private IoCollectOrderBackupMapper ioCollectOrderBackupMapper;
@PostMapping("/udiwms/basic/collect/order/orderMedicalDelete")
public BaseResponse orderMedicalDelete(@RequestBody CollectOrderRequest collectOrderRequest) {
PostOrderMedicalDeleteRequest postOrderMedicalDeleteRequest = new PostOrderMedicalDeleteRequest();
postOrderMedicalDeleteRequest.setThirdSys("thirdId");
postOrderMedicalDeleteRequest.setBillNo(collectOrderRequest.getBillNo());
postOrderMedicalDeleteRequest.setBusType(collectOrderRequest.getBusType());
BaseResponse baseResponse = erpBasicClient.orderMedicalDelete(postOrderMedicalDeleteRequest);
if (baseResponse.getCode() == 20000) {
IoCollectOrderBackup ioCollectOrderBackup = new IoCollectOrderBackup();
ioCollectOrderBackup.setUploadStatus(4);
ioCollectOrderBackupMapper.update(
ioCollectOrderBackup,new QueryWrapper<IoCollectOrderBackup>().eq("billNo",collectOrderRequest.getBillNo())
);
}
return baseResponse;
}
/**
*
*

@ -22,6 +22,9 @@ public interface SysWorkplaceDocumentDao extends BaseMapperPlus<SysWorkplaceDocu
List<SysWorkplaceDocumentResponse> filterListByWorkplace(WorkBindBusTypeRequest request);
Integer findMaxNumberByWorkplaceCode(Long workplaceCode);
List<SysWorkplaceDocumentResponse> filterListExhibitGoods(WorkBindBusTypeRequest request);
}

@ -176,5 +176,7 @@ public class IoCollectCodeBackup implements Serializable {
@ApiModelProperty(value = "关联关系数量")
private Integer relCodeCount;
@TableField(exist = false)
private String invDataType;
private static final long serialVersionUID = 1L;
}

@ -16,6 +16,7 @@ import com.glxp.api.http.req.UdiwmsBusTypeRequest;
import com.glxp.api.http.req.UdiwmsUnitRequest;
import com.glxp.api.req.basic.*;
import com.glxp.api.req.collect.PostCollectOrderRequest;
import com.glxp.api.req.collect.PostOrderMedicalDeleteRequest;
import com.glxp.api.req.drugMachine.PutGoodsA001Request;
import com.glxp.api.req.thrsys.*;
import com.glxp.api.res.PageSimpleResponse;
@ -297,6 +298,32 @@ public class ErpBasicClient {
return ResultVOUtils.error(500, "连接第三方系统接口服务出错" + e.getMessage());
}
}
/**
*
*
* @param postOrderMedicalDeleteRequest
* @return
*/
public BaseResponse orderMedicalDelete(PostOrderMedicalDeleteRequest postOrderMedicalDeleteRequest) {
ThrSystemEntity basicThirdSysEntity = basicThirdSysService.selectByThirdId(postOrderMedicalDeleteRequest.getThirdSys());
String url = basicThirdSysEntity.getThridUrl() + "/udiwms/erp/orderMedicalDelete";
String response = null;
try {
response = HttpUtil.post(url, JSONUtil.toJsonStr(postOrderMedicalDeleteRequest));
// response = httpOkClient.uCloudPost(url, postOrderRequest);
if (StrUtil.isEmpty(response)) {
return ResultVOUtils.error(500, "连接第三方系统接口服务出错");
}
// 判断不是
return JSONUtil.toBean(response, BaseResponse.class);
} catch (Exception e) {
log.error("获取医保单据信息原来数据===" + response);
log.error("获取医保单据信息", e);
return ResultVOUtils.error(500, "连接第三方系统接口服务出错" + e.getMessage());
}
}
/**

@ -0,0 +1,17 @@
package com.glxp.api.req.collect;
import com.glxp.api.entity.collect.IoCollectOrderBackup;
import lombok.Data;
import java.util.List;
@Data
public class PostOrderMedicalDeleteRequest {
private String thirdSys;
private String billNo;
private String busType;
}

@ -201,6 +201,7 @@ public class CollectOrderBizResponse {
private String measname;
private String invDataType;

@ -77,7 +77,20 @@ public class SysWorkplaceDocumentService extends ServiceImpl<SysWorkplaceDocumen
} else
return null;
}
public SysWorkplaceDocumentEntity filterListExhibitGoods(Long workplaceCode, String busType) {
WorkBindBusTypeRequest request = new WorkBindBusTypeRequest();
request.setWorkplaceCode(workplaceCode);
request.setDocumentTypeCode(busType);
List<SysWorkplaceDocumentResponse> sysWorkplaceDocumentResponses = sysWorkplaceDocumentDao.filterListExhibitGoods(request);
if (CollUtil.isNotEmpty(sysWorkplaceDocumentResponses)) {
SysWorkplaceDocumentResponse sysWorkplaceDocumentResponse = sysWorkplaceDocumentResponses.get(0);
SysWorkplaceDocumentEntity sysWorkplaceDocumentEntity = new SysWorkplaceDocumentEntity();
BeanUtils.copyProperties(sysWorkplaceDocumentResponse, sysWorkplaceDocumentEntity);
return sysWorkplaceDocumentEntity;
} else
return null;
}
public boolean addBusType(SysWorkplaceDocumentEntity entity, Long userId) {
entity.setId(IdUtil.getSnowflakeNextId());
entity.setCreateTime(new Date());

@ -5,6 +5,7 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.thread.ThreadUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
@ -176,10 +177,19 @@ public class IoCollectOrderBackupService extends ServiceImpl<IoCollectOrderBacku
@Transactional(rollbackFor = Exception.class)
public void generateOrder(String billNo, AuthAdmin authAdmin) {
log.error("单据返回=========1111" );
IoCollectOrderBackup collectOrder = getByBillNo(billNo);
SysWorkplaceDocumentEntity sysWorkplaceDocumentEntity = sysWorkplaceDocumentService.findByWorkplaceCode(collectOrder.getWorkPlaceCode(), collectOrder.getBusType());
// 如果是null 就可能是上货工位进行医保上传
if(Objects.isNull(sysWorkplaceDocumentEntity)){
sysWorkplaceDocumentEntity = sysWorkplaceDocumentService.filterListExhibitGoods(collectOrder.getWorkPlaceCode(), collectOrder.getBusType());
}
log.error("单据返回=========2222-1"+sysWorkplaceDocumentEntity +collectOrder.getWorkPlaceCode()+ collectOrder.getBusType());
log.error("单据返回=========2222-2"+collectOrder.getWorkPlaceCode()+ "==="+collectOrder.getBusType());
//1.内部系统,且单据为扫码生成业务单则创建系统单据
if (IntUtil.value(sysWorkplaceDocumentEntity.getIsMatching()) == 1 && sysWorkplaceDocumentEntity.getScanType() == 1) {
//todo
@ -207,10 +217,13 @@ public class IoCollectOrderBackupService extends ServiceImpl<IoCollectOrderBacku
updateReview(authAdmin, orderEntity);
}
}
log.error("单据返回=========2222"+collectOrder );
if (sysWorkplaceDocumentEntity != null) {
Integer uploadYb = sysWorkplaceDocumentEntity.getUploadYb();
if (uploadYb == 1) {
log.error("单据返回=========3333" );
uploadThrid(collectOrder);
}
}
@ -417,6 +430,21 @@ public class IoCollectOrderBackupService extends ServiceImpl<IoCollectOrderBacku
orderRequest.setCollectOrderList(collectOrderList);
// 判断此单据 有没有码已经上传过了一个有上传就进行错误返回
String paramValue = systemParamConfigService.selectValueByParamKey("checkCodeUploading");
for (CollectOrderBizResponse collectOrderBizResponse : orderRequest.getCollectOrderList().get(0).getCollectOrderBizResponseList()) {
long count = ioCollectCodeBackService.count(
new QueryWrapper<IoCollectCodeBackup>()
.eq("billNo",collectOrderBizResponse.getBillNo())
.eq("fifoSplit","1").or().eq("fifoSplit","4")
.last("limit 1")
);
if(count >0){
collectOrderBizResponse.setInvDataType("1");
}else {
collectOrderBizResponse.setInvDataType("0");
}
}
if (StrUtil.isNotEmpty(paramValue) && paramValue.equals("0")) {
List<String> codeList = new ArrayList<>();
for (CollectOrderBizResponse collectOrderBizResponse : collectOrderBizResponses) {
@ -446,7 +474,7 @@ public class IoCollectOrderBackupService extends ServiceImpl<IoCollectOrderBacku
}
// 医保上传
BaseResponse baseResponse = erpBasicClient.postOrder(orderRequest);
log.debug("单据返回=========" + baseResponse);
log.error("单据返回=========" + baseResponse);
if (baseResponse.getCode() == 20000) {
// 触发上传 转发至中继服务 到外网 再到国家同步库
ThreadUtil.execAsync(() -> {
@ -523,6 +551,8 @@ public class IoCollectOrderBackupService extends ServiceImpl<IoCollectOrderBacku
IoCollectOrderBackup updateOrder = new IoCollectOrderBackup();
updateOrder.setBillNo(billNo);
try {
log.error("单据返回=========0000"+billNo );
this.generateOrder(billNo, authAdmin);
updateOrder.setUploadStatus(2);
} catch (Exception e) {

@ -75,4 +75,33 @@
SELECT MAX(number) AS maxNumber
FROM sys_workplace_document
</select>
<select id="filterListExhibitGoods" resultType="com.glxp.api.res.basic.SysWorkplaceDocumentResponse">
select sys_workplace_document.*,
aw.name invName,
basic_bussiness_type.name innerBusName,
thr_bustype_origin.name outBusName
from sys_workplace_document
left join auth_warehouse aw on aw.code = sys_workplace_document.invCode
left join basic_bussiness_type on sys_workplace_document.documentTypeCode = basic_bussiness_type.action
left join thr_bustype_origin on thr_bustype_origin.action = sys_workplace_document.documentTypeCode
left join sys_workplace_bus on sys_workplace_bus.busTypeCode = sys_workplace_document.documentTypeCode
LEFT JOIN sys_workplace_put_rel ON sys_workplace_bus.workplaceCode = sys_workplace_put_rel.collectWorkCode
LEFT JOIN sys_workplace ON sys_workplace.workplaceId = sys_workplace_put_rel.workPlaceCode
<where>
<if test="documentTypeCode != '' and documentTypeCode != null">
AND documentTypeCode = #{documentTypeCode}
</if>
<if test="workplaceCode != '' and workplaceCode != null">
AND sys_workplace_put_rel.workPlaceCode = #{workplaceCode}
</if>
<if test="isPopular >= 0 and isPopular != null">
AND isPopular = #{isPopular}
</if>
<if test="busKey != null and busKey != ''">
AND sys_workplace_document.busName like concat('%', #{busKey}, '%')
</if>
</where>
GROUP BY sys_workplace_document.documentTypeCode
ORDER BY sys_workplace_document.number
</select>
</mapper>

Loading…
Cancel
Save