This commit is contained in:
zhn
2022-04-22 18:47:24 +08:00
parent dea23dde9f
commit 7d8883a8d8
@@ -6,19 +6,25 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.system.vo.LoginUser;
import com.jero.modules.dummy.entity.DummyContentChangeEO;
import com.jero.modules.dummy.entity.DummyInventoryBaseEO;
import com.jero.modules.dummy.entity.DummyInventoryInfoEO;
import com.jero.modules.dummy.entity.DummyReadEO;
import com.jero.modules.dummy.enums.InventoryStateEnum;
import com.jero.modules.dummy.enums.ReadFlagEnum;
import com.jero.modules.dummy.mapper.DummyInventoryBaseEOMapper;
import com.jero.modules.dummy.service.IDummyContentChangeEOService;
import com.jero.modules.dummy.service.IDummyInventoryBaseEOService;
import com.jero.modules.dummy.service.IDummyInventoryInfoEOService;
import com.jero.modules.dummy.service.IDummyReadEOService;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.service.ISysUserService;
import net.sf.json.JSONArray;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
@@ -38,6 +44,10 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl<DummyInventoryB
private DummyReadEOServiceImpl dummyReadEOService;
@Autowired
private IDummyReadEOService iDummyReadEOService;
@Autowired
private IDummyContentChangeEOService iDummyContentChangeEOService;
@Autowired
private IDummyInventoryInfoEOService iDummyInventoryInfoEOService;
/**
@@ -174,8 +184,8 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl<DummyInventoryB
*/
@Override
public void issue(DummyInventoryBaseEO dummyInventoryBaseEO) {
//发布与撤回均需要发消息
this.updateById(dummyInventoryBaseEO);
//发布与撤回均需要发消息(向订阅的人员发消息)
//首次发布不发消息
//(1)首次发布将虚拟清单的基础数据和详情数据存入维护清单内容变更表_dummy_content_change
//(2)撤回再次编辑完后再次发布
@@ -185,12 +195,69 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl<DummyInventoryB
//先判断是发布还是撤回 1-->发布 2-->撤回
if(InventoryStateEnum.ISSUE.getValue().equals(dummyInventoryBaseEO.getState())){
//发布,分别对比基础表数据和详情表数据
//先判断第一次发布的时候是否保存过数据
LambdaQueryWrapper<DummyContentChangeEO> wrapper =new LambdaQueryWrapper<>();
wrapper.in(DummyContentChangeEO::getConnectId,dummyInventoryBaseEO.getId());
List<DummyContentChangeEO> dummyContentChangeEOList = iDummyContentChangeEOService.list(wrapper);
//基础数据
LambdaQueryWrapper<DummyInventoryBaseEO> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(DummyInventoryBaseEO::getId,dummyInventoryBaseEO.getId());
List<DummyInventoryBaseEO> dummyInventoryBaseEOList = this.list(queryWrapper);
//详情数据
LambdaQueryWrapper<DummyInventoryInfoEO> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.in(DummyInventoryInfoEO::getDummyInventoryBaseId,dummyInventoryBaseEO.getId());
List<DummyInventoryInfoEO> dummyInventoryInfoEOList = iDummyInventoryInfoEOService.list(lambdaQueryWrapper);
//1.基础表数据对比
if(dummyContentChangeEOList.size() == 0){
//没有添加过需要进行第一次添加
List<DummyContentChangeEO> list = new ArrayList<>();
if(dummyInventoryBaseEOList.size() != 0){
String base = JSONArray.fromObject(dummyInventoryBaseEOList).toString();
DummyContentChangeEO dummyContentChangeEOBase = new DummyContentChangeEO();
dummyContentChangeEOBase.setConnectId(dummyInventoryBaseEO.getId());
dummyContentChangeEOBase.setContentJson(base);
list.add(dummyContentChangeEOBase);
}
if(dummyInventoryInfoEOList.size() != 0){
String info = JSONArray.fromObject(dummyInventoryInfoEOList).toString();
DummyContentChangeEO dummyContentChangeEOInfo = new DummyContentChangeEO();
dummyContentChangeEOInfo.setParentId(dummyInventoryBaseEO.getId());
dummyContentChangeEOInfo.setContentJson(info);
list.add(dummyContentChangeEOInfo);
}
if(list.size() != 0){
iDummyContentChangeEOService.saveBatch(list);
}
}else{
//1.查询之前保存过的基础数据
LambdaQueryWrapper<DummyContentChangeEO> wrapperBase =new LambdaQueryWrapper<>();
wrapperBase.in(DummyContentChangeEO::getConnectId,dummyInventoryBaseEO.getId());
List<DummyContentChangeEO> dummyContentChangeEOBaseList = iDummyContentChangeEOService.list(wrapperBase);
//2. 查询之前保存过的详情数据
LambdaQueryWrapper<DummyContentChangeEO> wrapperInfo =new LambdaQueryWrapper<>();
wrapperInfo.in(DummyContentChangeEO::getParentId,dummyInventoryBaseEO.getId());
List<DummyContentChangeEO> dummyContentChangeEOInfoList = iDummyContentChangeEOService.list(wrapperInfo);
//3.截止到现在发布,期间修改的数据(基础)
//数据为-->dummyInventoryBaseEOList
//详情表数据(一条基础数据可能对应多个详情数据---一对多)
//4.截止到现在发布,期间修改的数据(详情)
//数据为-->dummyInventoryInfoEOList
//5.分别对比基础表数据和详情表数据
//5.1.基础表数据对比
//5.2详情表数据(一条基础数据可能对应多个详情数据---一对多)
//6.数据对比完成后.删除之前保存的dummy_inventory_info中的数据,重新保存最新的数据
}
}else{
//撤回