Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
6c071eef7d
|
|
@ -61,4 +61,6 @@ public class InvoicingQldGwcEntity {
|
||||||
*/
|
*/
|
||||||
private MaterialInfoEntity materialInfo;
|
private MaterialInfoEntity materialInfo;
|
||||||
|
|
||||||
|
private String qldNo;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -245,120 +245,154 @@ public class QingLingServiceImpl implements IQinglingApi {
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public Map<String, Object> submitQld(InvoicingQldGwcEntity dto) {
|
public Map<String, Object> submitQld(InvoicingQldGwcEntity dto) {
|
||||||
Map<String, Object> result = Maps.newHashMap();
|
Map<String, Object> result = Maps.newHashMap();
|
||||||
//当前购物车信息
|
if (StringUtils.isNotBlank(dto.getQldNo())) {
|
||||||
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;
|
|
||||||
|
|
||||||
// 查询今天所有的编号
|
|
||||||
QueryWrapper<NuInvoicingQldMain> qw = new QueryWrapper<>();
|
QueryWrapper<NuInvoicingQldMain> qw = new QueryWrapper<>();
|
||||||
qw.likeRight("qld_no", todayPrefix);
|
qw.eq("qld_no", dto.getQldNo());
|
||||||
qw.select("qld_no");
|
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中提取序号,找到最大值
|
one.setStatus(status);
|
||||||
for (NuInvoicingQldMain item : list) {
|
one.setIzYgRead("N");//员工改为未读
|
||||||
if (item.getQldNo() != null && item.getQldNo().startsWith(todayPrefix)) {
|
one.setIzKgRead("N");//库管改为未读
|
||||||
// 提取序号部分(最后几位)
|
one.setTjBy(sysUser.getId());//作废人
|
||||||
String orderStr = item.getQldNo().substring(todayPrefix.length());
|
one.setTjTime(new Date());//作废时间
|
||||||
try {
|
invoicingQldMainService.updateById(one);
|
||||||
int order = Integer.parseInt(orderStr);
|
|
||||||
if (order > maxOrderNo) {
|
result.put("status", "success");
|
||||||
maxOrderNo = order;
|
return null;
|
||||||
}
|
} else {
|
||||||
} catch (NumberFormatException e) {
|
//购物车-提交
|
||||||
// 如果解析失败,跳过
|
//当前购物车信息
|
||||||
}
|
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);
|
String status = "1";//待出库(已提交)
|
||||||
saveData.setQldNo(todayPrefix + qldOrder);
|
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