Merge pull request 'feat:添加图片备注,重置流程' (#159) from feat/updatePrevailCloudLog into test

Reviewed-on: #159
feature/pullPictureLog
sunchenliang 1 year ago
commit 60aabbeeeb

@ -15,6 +15,10 @@ import java.util.Map;
*/
@Data
public class PictureSourceResult {
/**
* id
*/
Long id;
/**
* no
*/
@ -204,4 +208,9 @@ public class PictureSourceResult {
*/
Long submitTime;
/**
*
*/
String comment;
}

@ -13,4 +13,6 @@ public interface OcrPictureMybatisDao extends BaseMapper<OcrPicture> {
OcrPicture getPackagePictureInfo(@Param("packageId") String packageId, @Param("pictureId") String pictureId);
OcrPicture selectByRemark(@Param("remark") String remark);
String getPictureApproveResult(Long id);
}

@ -364,6 +364,11 @@ public class OcrPicture implements BaseDto, java.io.Serializable {
@TableField(value = "location")
private String location;
@ApiModelProperty(value = "备注")
@Schema(description = "备注")
@TableField(value = "comment")
private String comment;
@ApiModelProperty(value = "拍照时间")
@TableField(value = "photo_date_timestamp")
@JsonSerialize(using = DateSerializer.class)

@ -4,6 +4,7 @@ import cn.jyjz.xiaoyao.common.base.vo.ResultVo;
import cn.jyjz.xiaoyao.common.base.vo.UserToken;
import cn.jyjz.xiaoyao.common.mybatisplus.base.BaseService;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrPicture;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrTaskchildPicture;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@ -32,6 +33,9 @@ public interface OcrPictureService extends BaseService<OcrPicture> {
public ResultVo createTaskChild(List<OcrPicture> ocrPictureList, String tenantId, HttpServletRequest request);
String getPictureApproveResult(Long id);
void deletePictureInfo(Long id);
/**
*
*
@ -86,4 +90,5 @@ public interface OcrPictureService extends BaseService<OcrPicture> {
*/
OcrPicture selectByRemark(String remark);
OcrTaskchildPicture getOcrTaskChildPictureByPictureId(String pictureId);
}

@ -13,6 +13,8 @@ import cn.jyjz.xiaoyao.common.base.vo.UserToken;
import cn.jyjz.xiaoyao.common.mybatisplus.base.BaseServiceImpl;
import cn.jyjz.xiaoyao.oa.from.dataobject.Category;
import cn.jyjz.xiaoyao.oa.from.service.CategoryService;
import cn.jyjz.xiaoyao.oa.from.service.UserapproveService;
import cn.jyjz.xiaoyao.oa.from.service.impl.UserapproveServiceImpl;
import cn.jyjz.xiaoyao.ocr.api.utils.ApiConfig;
import cn.jyjz.xiaoyao.ocr.dataDao.OcrPictureMybatisDao;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrPackagetask;
@ -83,6 +85,8 @@ public class OcrPictureServiceImpl extends BaseServiceImpl<OcrPictureMybatisDao,
@Resource
private OcrPackagetaskService ocrPackagetaskService;
@Resource
private OcrTaskchildPictureService ocrTaskchildPictureService;
@Resource
IFlowInstanceService flowInstanceService;
@ -103,6 +107,8 @@ public class OcrPictureServiceImpl extends BaseServiceImpl<OcrPictureMybatisDao,
@Resource
OcrPictureMybatisDao pictureMybatisDao;
@Autowired
private UserapproveService userapproveService;
public ResultVo createTaskChild(List<OcrPicture> ocrPictureList, String tenantId, UserToken sysUser, String search_month, HttpServletRequest request, String buessinessno) {
@ -343,6 +349,11 @@ public class OcrPictureServiceImpl extends BaseServiceImpl<OcrPictureMybatisDao,
return pictureMybatisDao.selectByRemark(remark);
}
@Override
public OcrTaskchildPicture getOcrTaskChildPictureByPictureId(String pictureId) {
return ocrTaskchildPictureService.getOne(new LambdaQueryWrapper<OcrTaskchildPicture>().eq(OcrTaskchildPicture::getPictureid,pictureId));
}
// @Override
// public Long getPhotoDateTime(OcrPicture picture) {
// long timestamp = 0L;
@ -504,6 +515,24 @@ public class OcrPictureServiceImpl extends BaseServiceImpl<OcrPictureMybatisDao,
return ResultVoUtil.error("失败。");
}
@Override
public String getPictureApproveResult(Long id) {
return pictureMybatisDao.getPictureApproveResult(id);
}
@Override
public void deletePictureInfo(Long id) {
//删除图片表
pictureMybatisDao.deleteById(id);
//删除图片信息表
ocrPictureInfoService.remove(new LambdaQueryWrapper<OcrPictureInfo>().eq(OcrPictureInfo::getPictureId,id));
OcrTaskchildPicture taskchildPicture = ocrTaskchildPictureService.getOne(new LambdaQueryWrapper<OcrTaskchildPicture>().eq(OcrTaskchildPicture::getPictureid, id));
//删除任务表
ocrTaskchildPictureService.remove(new LambdaQueryWrapper<OcrTaskchildPicture>().eq(OcrTaskchildPicture::getPictureid,id));
//删除审批记录表
userapproveService.delete(taskchildPicture.getId().toString());
}
public void bubbleSortOpt(List<OcrPicture> compareList) {
if (null == compareList) {
@ -695,7 +724,7 @@ public class OcrPictureServiceImpl extends BaseServiceImpl<OcrPictureMybatisDao,
boolean saveBatch = false;
synchronized(lock) {
// 同步的代码块
saveBatch = this.saveBatch(ocrPictureList);
saveBatch = this.saveOrUpdateBatch(ocrPictureList);
}
//3.添加图片信息

@ -2,6 +2,7 @@ package cn.jyjz.xiaoyao.ocr.thread;
import cn.jyjz.xiaoyao.ocr.api.entity.PictureSourceResult;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrPicture;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrTaskchildPicture;
import cn.jyjz.xiaoyao.ocr.service.OcrPictureService;
import cn.jyjz.xiaoyao.ocr.thread.entity.PictureImgToLocalEntity;
import com.google.common.collect.Sets;
@ -42,9 +43,17 @@ public class TaskQueue {
Long taskId = pictureSourceResult.getTaskId();
OcrPicture ocrPicture = ocrPictureService.selectByRemark(String.valueOf(taskId));
if (ocrPicture != null) {
OcrTaskchildPicture taskchildPicture = ocrPictureService.getOcrTaskChildPictureByPictureId(ocrPicture.getId().toString());
if (taskchildPicture != null && pictureSourceResult.getTaskStatus() != null
&& pictureSourceResult.getTaskStatus() == 6 && taskchildPicture.getStates() == 5) {
String result = ocrPictureService.getPictureApproveResult(ocrPicture.getId());
ocrPictureService.deletePictureInfo(ocrPicture.getId());
pictureSourceResult.setComment(result);
pictureSourceResult.setId(ocrPicture.getId());
} else {
return true;
}
}
resultSet.add(String.valueOf(taskId));
pictureDisposeQueue.put(pictureSourceResult);
} catch (InterruptedException e) {

@ -23,12 +23,12 @@ import java.util.*;
* @version 1.0
* @date 2024/3/14 11:15
*/
public class PictureDisposeTask implements Runnable{
public class PictureDisposeTask implements Runnable {
protected Logger logger = LoggerFactory.getLogger(getClass());
private PictureSourceResult pictureSourceResult;
public PictureDisposeTask(PictureSourceResult pictureSourceResult){
public PictureDisposeTask(PictureSourceResult pictureSourceResult) {
this.pictureSourceResult = pictureSourceResult;
}
@ -41,17 +41,17 @@ public class PictureDisposeTask implements Runnable{
OcrPictureService ocrPictureService = SpringUtils.getBean("ocrPictureService");
//获取当前任务中有多少图片
List<Map<String,Object>> livePhoto = pictureSourceResult.getLivePhoto();
List<Map<String, Object>> livePhoto = pictureSourceResult.getLivePhoto();
//定义新增集合对象
List<OcrPicture> ocrPictureList = new ArrayList<>();
int index =0;
int index = 0;
for (Map<String, Object> map : livePhoto) {
if(index>0){
if (index > 0) {
continue;
}
//检查图片地址是否为空
if(map.get("imgUrl")!=null && !StringUtils.isEmpty(map.get("imgUrl").toString())){
if (map.get("imgUrl") != null && !StringUtils.isEmpty(map.get("imgUrl").toString())) {
//判断该任务是否存在判断依据是任务ID相同提报时间不同则可以插入
// LambdaQueryWrapper<OcrPicture> ocrPictureLambdaQueryWrapper = new LambdaQueryWrapper<>();
// ocrPictureLambdaQueryWrapper.eq(OcrPicture::getRemark,pictureSourceResult.getTaskId());
@ -66,8 +66,16 @@ public class PictureDisposeTask implements Runnable{
// }
//不为空开始组装参数 入库
OcrPicture picture = new OcrPicture();
//id
if (pictureSourceResult.getId() != null) {
picture.setId(pictureSourceResult.getId());
}
//备注
if (pictureSourceResult.getComment() != null) {
picture.setComment(pictureSourceResult.getComment());
}
//定位信息
if(pictureSourceResult.getLocation()!=null){
if (pictureSourceResult.getLocation() != null) {
picture.setLocation(JSONObject.toJSONString(pictureSourceResult.getLocation()));
}
//业务主体
@ -75,21 +83,21 @@ public class PictureDisposeTask implements Runnable{
//业务主体名称
picture.setTenantname(pictureSourceResult.getAccountName());
//业务主体状态
if(pictureSourceResult.getAccountStatus()!=null){
if (pictureSourceResult.getAccountStatus() != null) {
picture.setTenantstatus(pictureSourceResult.getAccountStatus().toString());
}
//租户编号
if(pictureSourceResult.getAccountNo()!=null){
if (pictureSourceResult.getAccountNo() != null) {
picture.setPictureid(pictureSourceResult.getAccountNo().toString());
}
//租户名称
picture.setPicturename(pictureSourceResult.getAccountName());
//租户状态
if(pictureSourceResult.getAccountStatus()!=null) {
if (pictureSourceResult.getAccountStatus() != null) {
picture.setPicturestatus(pictureSourceResult.getAccountStatus().toString());
}
//项目编号
if(pictureSourceResult.getProjectNo()!=null){
if (pictureSourceResult.getProjectNo() != null) {
picture.setProjectid(pictureSourceResult.getProjectNo().toString());
}
//项目id
@ -98,19 +106,19 @@ public class PictureDisposeTask implements Runnable{
//项目名称
picture.setProjectidname(pictureSourceResult.getProjectName());
//项目状态
if(pictureSourceResult.getProjectNo()!=null) {
if (pictureSourceResult.getProjectNo() != null) {
picture.setProjectstatus(pictureSourceResult.getProjectNo().toString());
}
//所属主计划id
if(pictureSourceResult.getPlanNo()!=null) {
if (pictureSourceResult.getPlanNo() != null) {
picture.setPlanid(pictureSourceResult.getPlanNo().toString());
}
//所属计划名称
picture.setPlanname(pictureSourceResult.getPlanName());
//所属计划状态
picture.setPlanstatus( pictureSourceResult.getPlanstatus());
picture.setPlanstatus(pictureSourceResult.getPlanstatus());
//所属子计划id
if(pictureSourceResult.getPlanChildNo()!=null) {
if (pictureSourceResult.getPlanChildNo() != null) {
picture.setPlanchildid(pictureSourceResult.getPlanChildNo().toString());
}
//所属子计划名称
@ -124,7 +132,7 @@ public class PictureDisposeTask implements Runnable{
//任务来源名称
picture.setField4("无量云2.0");
//所属任务状态
if(pictureSourceResult.getTenantStatus()!=null) {
if (pictureSourceResult.getTenantStatus() != null) {
picture.setTaskstatus(pictureSourceResult.getTenantStatus().toString());
}
//提报人id
@ -138,78 +146,78 @@ public class PictureDisposeTask implements Runnable{
//拜访详细地址
StringBuilder addressDetails = new StringBuilder();
//拜访省份
if(pictureSourceResult.getProvince()!=null){
if(pictureSourceResult.getProvince().get("name")!=null){
if (pictureSourceResult.getProvince() != null) {
if (pictureSourceResult.getProvince().get("name") != null) {
addressDetails.append(pictureSourceResult.getProvince().get("name").toString());
picture.setReleaseprovince(pictureSourceResult.getProvince().get("name").toString());
}
}
//拜访城市
if(pictureSourceResult.getCity()!=null){
if(pictureSourceResult.getCity().get("name")!=null){
if (pictureSourceResult.getCity() != null) {
if (pictureSourceResult.getCity().get("name") != null) {
addressDetails.append(pictureSourceResult.getCity().get("name").toString());
picture.setReleasearea(pictureSourceResult.getCity().get("name").toString());
}
}
//拜访定位信息
if(pictureSourceResult.getLocation()!=null){
if(pictureSourceResult.getCity().get("address")!=null){
if (pictureSourceResult.getLocation() != null) {
if (pictureSourceResult.getCity().get("address") != null) {
addressDetails.append(pictureSourceResult.getCity().get("address").toString());
}
}
picture.setField10(addressDetails.toString());
//拜访客户类型
if(pictureSourceResult.getTerminalType()!=null){
if(pictureSourceResult.getTerminalType().get("name")!=null){
if (pictureSourceResult.getTerminalType() != null) {
if (pictureSourceResult.getTerminalType().get("name") != null) {
picture.setField2(pictureSourceResult.getTerminalType().get("name").toString());
}
}
//拜访客户名称
if(pictureSourceResult.getCustomerName()!=null){
if(pictureSourceResult.getCustomerName().get("name")!=null){
if (pictureSourceResult.getCustomerName() != null) {
if (pictureSourceResult.getCustomerName().get("name") != null) {
picture.setField3(pictureSourceResult.getCustomerName().get("name").toString());
}
}
//拜访客户级别
if(pictureSourceResult.getTerminalLevel()!=null){
if(pictureSourceResult.getTerminalLevel().get("name")!=null){
if (pictureSourceResult.getTerminalLevel() != null) {
if (pictureSourceResult.getTerminalLevel().get("name") != null) {
picture.setField6(pictureSourceResult.getTerminalLevel().get("name").toString());
}
}
//拜访项目类别
if(pictureSourceResult.getProjectType()!=null){
if(pictureSourceResult.getProjectType().get("name")!=null){
if (pictureSourceResult.getProjectType() != null) {
if (pictureSourceResult.getProjectType().get("name") != null) {
picture.setField17(pictureSourceResult.getProjectType().get("name").toString());
}
}
//拜访品种
if(pictureSourceResult.getProductName()!=null){
if(pictureSourceResult.getProductName().get("name")!=null){
if (pictureSourceResult.getProductName() != null) {
if (pictureSourceResult.getProductName().get("name") != null) {
picture.setField9(pictureSourceResult.getProductName().get("name").toString());
}
}
//厂商
if(pictureSourceResult.getManufacturer()!=null){
if(pictureSourceResult.getManufacturer().get("name")!=null){
if (pictureSourceResult.getManufacturer() != null) {
if (pictureSourceResult.getManufacturer().get("name") != null) {
picture.setField5(pictureSourceResult.getManufacturer().get("name").toString());
}
}
//拜访科室
if(StringUtils.isNotBlank(pictureSourceResult.getCompanyDepartment())){
if (StringUtils.isNotBlank(pictureSourceResult.getCompanyDepartment())) {
picture.setField7(pictureSourceResult.getCompanyDepartment());
}
//拜访小结
if(StringUtils.isNotBlank(pictureSourceResult.getDiscoveredIssues())){
if (StringUtils.isNotBlank(pictureSourceResult.getDiscoveredIssues())) {
picture.setField8(pictureSourceResult.getDiscoveredIssues());
}
//拜访日期
if(StringUtils.isNotBlank(pictureSourceResult.getVisitDate())){
if (StringUtils.isNotBlank(pictureSourceResult.getVisitDate())) {
picture.setField11(pictureSourceResult.getVisitDate());
}
@ -219,18 +227,18 @@ public class PictureDisposeTask implements Runnable{
//图片创建时间
// picture.setPhotoDateTimestamp(System.currentTimeMillis());
System.out.println("SubmitDateTimestamp1=================>>>>>>>"+pictureSourceResult.getSubmitTime());
System.out.println("SubmitDateTimestamp2=================>>>>>>>"+picture.getSubmitDateTimestamp());
System.out.println("SubmitDateTimestamp1=================>>>>>>>" + pictureSourceResult.getSubmitTime());
System.out.println("SubmitDateTimestamp2=================>>>>>>>" + picture.getSubmitDateTimestamp());
//定位距离
if(StringUtils.isNotBlank(pictureSourceResult.getDistance())){
if (StringUtils.isNotBlank(pictureSourceResult.getDistance())) {
picture.setField12(pictureSourceResult.getDistance());
}
//设置图片信息
if(map.get("imgName")!=null){
if (map.get("imgName") != null) {
picture.setImgname(map.get("imgName").toString());
}
if(map.get("imgUrl")!=null){
if (map.get("imgUrl") != null) {
picture.setImgurl(map.get("imgUrl").toString());
}
//默认为创建人为admin

@ -250,11 +250,20 @@
</select>
<select id="selectByRemark" resultMap="BaseResultMap">
SELECT `ID`
SELECT
<include refid="Base_Column_List"/>
FROM
ocr_picture
WHERE `remark` = #{remark}
LIMIT 1
</select>
<select id="getPictureApproveResult" resultType="java.lang.String">
SELECT
CONCAT('审批节点:',t1.TASKNODE,',审批结果:',t1.STATES,',不通过原因:',t2.REASON)
FROM
ocr_taskchild_picture t1
LEFT JOIN oa_userapprove_t t2 ON t1.ID = t2.FORMID
where t1.PICTUREID = #{id,jdbcType=BIGINT}
</select>
</mapper>

Loading…
Cancel
Save