请领单-提交:新增回退单重新提交逻辑
This commit is contained in:
parent
22e4a3dbe8
commit
b909e0d45e
|
|
@ -61,4 +61,6 @@ public class InvoicingQldGwcEntity {
|
|||
*/
|
||||
private MaterialInfoEntity materialInfo;
|
||||
|
||||
private String qldNo;
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -245,120 +245,154 @@ public class QingLingServiceImpl implements IQinglingApi {
|
|||
@Transactional(rollbackFor = Exception.class)
|
||||
public Map<String, Object> submitQld(InvoicingQldGwcEntity dto) {
|
||||
Map<String, Object> result = Maps.newHashMap();
|
||||
//当前购物车信息
|
||||
QueryWrapper<NuInvoicingQldGwc> gwcQW = new QueryWrapper<>();
|
||||
gwcQW.eq("nu_id", dto.getNuId());
|
||||
gwcQW.eq("elder_id", dto.getElderId());
|
||||
List<NuInvoicingQldGwc> gwcList = invoicingQldGwcService.list(gwcQW);
|
||||
|
||||
//检测哪些物料有未完成请领流程的
|
||||
{
|
||||
//请领流程未完成物料id
|
||||
List<InvoicingQldInfoEntity> disabledWlList = invoicingQldMainMapper.queryUnFinishWlid(dto);
|
||||
if (!CollectionUtils.isEmpty(disabledWlList)) {
|
||||
// 提取gwcList中的所有wlId
|
||||
Set<String> gwcWlIds = gwcList.stream()
|
||||
.map(NuInvoicingQldGwc::getWlId)
|
||||
.collect(Collectors.toSet());
|
||||
|
||||
// 过滤disabledWlList,只保留在gwcList中也存在的wlId
|
||||
disabledWlList = disabledWlList.stream()
|
||||
.filter(item -> gwcWlIds.contains(item.getWlId()))
|
||||
.collect(Collectors.toList());
|
||||
if (!CollectionUtils.isEmpty(disabledWlList)) {
|
||||
result.put("status", "exist");
|
||||
result.put("existList", disabledWlList);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//可以正常提交
|
||||
String status = "1";//待出库(已提交)
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
|
||||
//存储主表数据
|
||||
NuInvoicingQldMain saveData = new NuInvoicingQldMain();
|
||||
//处理请领单编号
|
||||
{
|
||||
// 查询机构编码
|
||||
JSONObject deptInfo = sysBaseAPI.getDeptInfo();
|
||||
String deptCode = deptInfo.getString("code");
|
||||
String today = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd"));
|
||||
|
||||
// 构建今天的前缀模式
|
||||
String todayPrefix = "Q" + deptCode + today;
|
||||
|
||||
// 查询今天所有的编号
|
||||
if (StringUtils.isNotBlank(dto.getQldNo())) {
|
||||
//回退单-提交
|
||||
QueryWrapper<NuInvoicingQldMain> qw = new QueryWrapper<>();
|
||||
qw.likeRight("qld_no", todayPrefix);
|
||||
qw.select("qld_no");
|
||||
qw.eq("qld_no", dto.getQldNo());
|
||||
NuInvoicingQldMain one = invoicingQldMainService.getOne(qw);
|
||||
dto.setNuId(one.getNuId());
|
||||
dto.setElderId(one.getElderId());
|
||||
String status = "1";
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
|
||||
List<NuInvoicingQldMain> list = invoicingQldMainService.list(qw);
|
||||
int maxOrderNo = 0;
|
||||
//日志表插记录
|
||||
NuInvoicingQldLog logData = new NuInvoicingQldLog();
|
||||
logData.setQldNo(dto.getQldNo());//请领单号
|
||||
logData.setStatus(status);//单子操作状态
|
||||
logData.setJdMc(status);//节点mc(字典qld_status)
|
||||
logData.setOpeBy(sysUser.getId());//操作人
|
||||
logData.setOpeTime(new Date());//操作时间
|
||||
logData.setNuId(dto.getNuId());//护理单元id
|
||||
logData.setElderId(dto.getElderId());//长者id
|
||||
invoicingQldLogMapper.insert(logData);
|
||||
|
||||
if (list != null && !list.isEmpty()) {
|
||||
// 从qldNo中提取序号,找到最大值
|
||||
for (NuInvoicingQldMain item : list) {
|
||||
if (item.getQldNo() != null && item.getQldNo().startsWith(todayPrefix)) {
|
||||
// 提取序号部分(最后几位)
|
||||
String orderStr = item.getQldNo().substring(todayPrefix.length());
|
||||
try {
|
||||
int order = Integer.parseInt(orderStr);
|
||||
if (order > maxOrderNo) {
|
||||
maxOrderNo = order;
|
||||
}
|
||||
} catch (NumberFormatException e) {
|
||||
// 如果解析失败,跳过
|
||||
}
|
||||
//更新单子为待收货
|
||||
one.setStatus(status);
|
||||
one.setIzYgRead("N");//员工改为未读
|
||||
one.setIzKgRead("N");//库管改为未读
|
||||
one.setTjBy(sysUser.getId());//作废人
|
||||
one.setTjTime(new Date());//作废时间
|
||||
invoicingQldMainService.updateById(one);
|
||||
|
||||
result.put("status", "success");
|
||||
return null;
|
||||
} else {
|
||||
//购物车-提交
|
||||
//当前购物车信息
|
||||
QueryWrapper<NuInvoicingQldGwc> gwcQW = new QueryWrapper<>();
|
||||
gwcQW.eq("nu_id", dto.getNuId());
|
||||
gwcQW.eq("elder_id", dto.getElderId());
|
||||
List<NuInvoicingQldGwc> gwcList = invoicingQldGwcService.list(gwcQW);
|
||||
|
||||
//检测哪些物料有未完成请领流程的
|
||||
{
|
||||
//请领流程未完成物料id
|
||||
List<InvoicingQldInfoEntity> disabledWlList = invoicingQldMainMapper.queryUnFinishWlid(dto);
|
||||
if (!CollectionUtils.isEmpty(disabledWlList)) {
|
||||
// 提取gwcList中的所有wlId
|
||||
Set<String> gwcWlIds = gwcList.stream()
|
||||
.map(NuInvoicingQldGwc::getWlId)
|
||||
.collect(Collectors.toSet());
|
||||
|
||||
// 过滤disabledWlList,只保留在gwcList中也存在的wlId
|
||||
disabledWlList = disabledWlList.stream()
|
||||
.filter(item -> gwcWlIds.contains(item.getWlId()))
|
||||
.collect(Collectors.toList());
|
||||
if (!CollectionUtils.isEmpty(disabledWlList)) {
|
||||
result.put("status", "exist");
|
||||
result.put("existList", disabledWlList);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int nextOrderNo = maxOrderNo + 1;
|
||||
String qldOrder = String.format("%03d", nextOrderNo);
|
||||
saveData.setQldNo(todayPrefix + qldOrder);
|
||||
//可以正常提交
|
||||
String status = "1";//待出库(已提交)
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
|
||||
//存储主表数据
|
||||
NuInvoicingQldMain saveData = new NuInvoicingQldMain();
|
||||
//处理请领单编号
|
||||
{
|
||||
// 查询机构编码
|
||||
JSONObject deptInfo = sysBaseAPI.getDeptInfo();
|
||||
String deptCode = deptInfo.getString("code");
|
||||
String today = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd"));
|
||||
|
||||
// 构建今天的前缀模式
|
||||
String todayPrefix = "Q" + deptCode + today;
|
||||
|
||||
// 查询今天所有的编号
|
||||
QueryWrapper<NuInvoicingQldMain> qw = new QueryWrapper<>();
|
||||
qw.likeRight("qld_no", todayPrefix);
|
||||
qw.select("qld_no");
|
||||
|
||||
List<NuInvoicingQldMain> list = invoicingQldMainService.list(qw);
|
||||
int maxOrderNo = 0;
|
||||
|
||||
if (list != null && !list.isEmpty()) {
|
||||
// 从qldNo中提取序号,找到最大值
|
||||
for (NuInvoicingQldMain item : list) {
|
||||
if (item.getQldNo() != null && item.getQldNo().startsWith(todayPrefix)) {
|
||||
// 提取序号部分(最后几位)
|
||||
String orderStr = item.getQldNo().substring(todayPrefix.length());
|
||||
try {
|
||||
int order = Integer.parseInt(orderStr);
|
||||
if (order > maxOrderNo) {
|
||||
maxOrderNo = order;
|
||||
}
|
||||
} catch (NumberFormatException e) {
|
||||
// 如果解析失败,跳过
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int nextOrderNo = maxOrderNo + 1;
|
||||
String qldOrder = String.format("%03d", nextOrderNo);
|
||||
saveData.setQldNo(todayPrefix + qldOrder);
|
||||
}
|
||||
saveData.setStatus(status);
|
||||
saveData.setIzYgRead("N");//员工有新消息
|
||||
saveData.setIzKgRead("N");//库管有新消息
|
||||
saveData.setTjBy(sysUser.getId());//提交人
|
||||
saveData.setTjTime(new Date());//提交时间
|
||||
saveData.setJdMc(status);//节点名称
|
||||
saveData.setNuId(dto.getNuId());
|
||||
saveData.setElderId(dto.getElderId());
|
||||
invoicingQldMainService.save(saveData);
|
||||
|
||||
//子表存储
|
||||
List<NuInvoicingQldInfo> infoList = BeanUtil.copyToList(gwcList, NuInvoicingQldInfo.class);
|
||||
infoList.stream().forEach(item -> {
|
||||
item.setQldNo(saveData.getQldNo());//请领单单号
|
||||
item.setCreateBy(null);
|
||||
item.setCreateTime(null);
|
||||
item.setUpdateBy(null);
|
||||
item.setUpdateTime(null);
|
||||
});
|
||||
invoicingQldInfoService.saveBatch(infoList);
|
||||
|
||||
//清空购物车信息
|
||||
InvoicingQldQueryEntity gwcDeleteParam = new InvoicingQldQueryEntity();
|
||||
gwcDeleteParam.setNuId(dto.getNuId());
|
||||
gwcDeleteParam.setElderId(dto.getElderId());
|
||||
invoicingQldGwcService.removeAllGwc(gwcDeleteParam);
|
||||
|
||||
//日志表插记录
|
||||
NuInvoicingQldLog logData = new NuInvoicingQldLog();
|
||||
logData.setQldNo(saveData.getQldNo());//请领单号
|
||||
logData.setStatus(status);//单子操作状态
|
||||
logData.setJdMc(status);//节点mc(字典qld_status)
|
||||
logData.setOpeBy(sysUser.getId());//操作人
|
||||
logData.setOpeTime(new Date());//操作时间
|
||||
logData.setNuId(dto.getNuId());//护理单元id
|
||||
logData.setElderId(dto.getElderId());//长者id
|
||||
invoicingQldLogMapper.insert(logData);
|
||||
|
||||
result.put("status", "success");
|
||||
return result;
|
||||
}
|
||||
saveData.setStatus(status);
|
||||
saveData.setIzYgRead("N");//员工有新消息
|
||||
saveData.setIzKgRead("N");//库管有新消息
|
||||
saveData.setTjBy(sysUser.getId());//提交人
|
||||
saveData.setTjTime(new Date());//提交时间
|
||||
saveData.setJdMc(status);//节点名称
|
||||
saveData.setNuId(dto.getNuId());
|
||||
saveData.setElderId(dto.getElderId());
|
||||
invoicingQldMainService.save(saveData);
|
||||
|
||||
//子表存储
|
||||
List<NuInvoicingQldInfo> infoList = BeanUtil.copyToList(gwcList, NuInvoicingQldInfo.class);
|
||||
infoList.stream().forEach(item -> {
|
||||
item.setQldNo(saveData.getQldNo());//请领单单号
|
||||
item.setCreateBy(null);
|
||||
item.setCreateTime(null);
|
||||
item.setUpdateBy(null);
|
||||
item.setUpdateTime(null);
|
||||
});
|
||||
invoicingQldInfoService.saveBatch(infoList);
|
||||
|
||||
//清空购物车信息
|
||||
InvoicingQldQueryEntity gwcDeleteParam = new InvoicingQldQueryEntity();
|
||||
gwcDeleteParam.setNuId(dto.getNuId());
|
||||
gwcDeleteParam.setElderId(dto.getElderId());
|
||||
invoicingQldGwcService.removeAllGwc(gwcDeleteParam);
|
||||
|
||||
//日志表插记录
|
||||
NuInvoicingQldLog logData = new NuInvoicingQldLog();
|
||||
logData.setQldNo(saveData.getQldNo());//请领单号
|
||||
logData.setStatus(status);//单子操作状态
|
||||
logData.setJdMc(status);//节点mc(字典qld_status)
|
||||
logData.setOpeBy(sysUser.getId());//操作人
|
||||
logData.setOpeTime(new Date());//操作时间
|
||||
logData.setNuId(dto.getNuId());//护理单元id
|
||||
logData.setElderId(dto.getElderId());//长者id
|
||||
invoicingQldLogMapper.insert(logData);
|
||||
|
||||
result.put("status", "success");
|
||||
return result;
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue