1、单据上传统计界面开发

2、单据上传设置在呢个价论述时间定时设置 取消起始上传时间更新逻辑 无限循环处理有问题的单据
dev_unify
qiuyt 8 months ago
parent c7f70898e7
commit 8ddb8d340c

@ -1,6 +1,7 @@
package com.glxp.api.controller.collect;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageInfo;
import com.glxp.api.common.res.BaseResponse;
import com.glxp.api.common.util.ResultVOUtils;
@ -11,6 +12,7 @@ import com.glxp.api.entity.collect.IoCollectOrderCodeMan;
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.res.PageSimpleResponse;
import com.glxp.api.res.basic.UserWorkResponse;
import com.glxp.api.res.collect.CollectOrderBizResponse;
@ -24,6 +26,8 @@ import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
/**
@ -119,5 +123,23 @@ public class IoCollectOrderBackupController extends BaseController {
List<IoCollectOrderCodeMan> list = ioCollectOrderBackupService.codeDetail(collectOrderBizRequest.getId());
return ResultVOUtils.success(list);
}
/**
*
*
* @param collectOrderUploadCountRequest
* @return
*/
@PostMapping ("/udiwms/basic/collect/orderFinish/uploadCount")
public BaseResponse uploadCount(@RequestBody CollectOrderUploadCountRequest collectOrderUploadCountRequest) {
List<Map<String, Object>> map = ioCollectOrderBackupService.listMaps(new QueryWrapper<IoCollectOrderBackup>()
.groupBy("uploadStatus")
.between(collectOrderUploadCountRequest.getStartTime()!=null
&& collectOrderUploadCountRequest.getEndTime() !=null
,"updateTime",collectOrderUploadCountRequest.getStartTime()+" 00:00:00",collectOrderUploadCountRequest.getEndTime()+" 23:59:59")
.select("uploadStatus","count(1) as count")
);
return ResultVOUtils.success(map);
}
}

@ -75,6 +75,8 @@ public class IoCollectSet implements Serializable {
@ApiModelProperty(value = "是否最后追溯码拆零")
private Boolean lastCodeSplit;
@TableField(value = "lastCodeSplit")
@ApiModelProperty(value = "自动上传已完成单据轮询时间")
private Integer startUploadHour;
private static final long serialVersionUID = 1L;
}
}

@ -154,5 +154,7 @@ public class CollectOrderRequest extends ListPageRequest {
*/
private Long bizId;
private List<Integer> uploadStatusList;
}

@ -0,0 +1,20 @@
package com.glxp.api.req.collect;
import com.baomidou.mybatisplus.annotation.TableField;
import com.glxp.api.util.page.ListPageRequest;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.List;
@Data
public class CollectOrderUploadCountRequest {
private String startTime;
private String endTime;
}

@ -349,6 +349,8 @@ public class IoCollectOrderBackupService extends ServiceImpl<IoCollectOrderBacku
updateOrder.setUploadStatus(3);
updateOrder.setUploadError(e.getMessage());
}
// 更新时间修改
updateOrder.setUpdateTime(new Date());
//更新状态
this.updateByBillNo(updateOrder);
if (updateOrder.getUploadStatus() == 3) {

@ -24,6 +24,7 @@ import org.springframework.scheduling.support.CronTrigger;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@ -50,8 +51,22 @@ public class AsyncIoCollectOrderUploadTask implements SchedulingConfigurer {
triggerContext -> {
ScheduledRequest scheduledRequest = new ScheduledRequest();
scheduledRequest.setCronName("ioCollectOrderUploadTask");
ScheduledEntity scheduledEntity = scheduledDao.findScheduled(scheduledRequest);
String cron = scheduledEntity != null ? scheduledEntity.getCron() : "0 */10 * * * ?";
// 使用设置的轮询时间为准 这边进行转换
IoCollectSet ioCollectSet = collectSetService.getSet();
String cron = null;
if(ioCollectSet!= null
&& ioCollectSet.getStartUploadHour() !=null
&& ioCollectSet.getStartUploadHour() >0
){
if(ioCollectSet.getStartUploadHour() <= 24){
cron = "0 0 */"+ioCollectSet.getStartUploadHour()+" * * ? ";
}
}else {
cron = "0 0 0 */1 * ?";
}
logger.info("已完成单据自动上传轮询设置cron表达式==="+cron);
if (cron.isEmpty()) {
logger.error("cron is null");
}
@ -61,6 +76,7 @@ public class AsyncIoCollectOrderUploadTask implements SchedulingConfigurer {
private void process() {
ThreadUtil.execAsync(() -> {
//获取下载的起始时间
IoCollectSet ioCollectSet = collectSetService.getSet();
Date startUploadTime = ioCollectSet.getStartUploadTime();
@ -75,7 +91,10 @@ public class AsyncIoCollectOrderUploadTask implements SchedulingConfigurer {
collectOrderRequest.setStartTime(paramValue);
collectOrderRequest.setEndTime(nowTime);
collectOrderRequest.setUploadStatus(1); //未上传
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(3);
collectOrderRequest.setUploadStatusList(list);
//调用上传单据
List<IoCollectOrderResponse> orderResponses = ioCollectOrderBackupService.filterList(collectOrderRequest);
@ -84,9 +103,9 @@ public class AsyncIoCollectOrderUploadTask implements SchedulingConfigurer {
ioCollectOrderBackupService.orderUpload(item.getBillNo(),null);
});
}
ioCollectSet.setStartUploadTime(MsDateUtil.parseDate(nowTime));
collectSetService.updateById(ioCollectSet);
// 无限循环去上传单据不做限制了
// ioCollectSet.setStartUploadTime(MsDateUtil.parseDate(nowTime));
// collectSetService.updateById(ioCollectSet);
}
});

@ -128,6 +128,14 @@
and icob.billTime <= DATE_FORMAT(#{endTime}, '%Y-%m-%d %H:%i:%S')
]]>
</if>
<if test="uploadStatusList!= null and uploadStatusList.size() > 0">
and uploadStatus IN
<foreach collection="uploadStatusList" item="id" index="index" open="(" close=")" separator=",">
#{id}
</foreach>
</if>
</where>
GROUP BY icob.billNo
order by case when icob.orderTime is null then icob.createTime else icob.orderTime end desc

@ -4832,3 +4832,7 @@ CREATE TABLE IF NOT EXISTS`third_ali_drug`
CALL Pro_Temp_ColumnWork('sync_data_set', 'drugDataTask',
' tinyint NULL DEFAULT NULL COMMENT ''药品关联关系同步''',
1);
CALL Pro_Temp_ColumnWork('io_collect_set', 'startUploadHour',
' int DEFAULT NULL COMMENT ''自动上传已完成单据轮询时间''',
1);

Loading…
Cancel
Save