近期修改

This commit is contained in:
z 2025-08-30 15:44:28 +08:00
parent cc3b2441e6
commit 7f720de18d
8 changed files with 97 additions and 67 deletions

View File

@ -151,7 +151,7 @@ public class bdgzsomthingController {
BeanUtils.toBean(list, bdgzsomthingRespVO.class));
}
// @Scheduled(fixedRate = 10800000)
@Scheduled(fixedRate = 10800000)
public void scheduledTask() {
bdgzsomthingService.selectds();
}
@ -159,8 +159,8 @@ public class bdgzsomthingController {
//@Scheduled(cron = "0 2 0 * * ?") //每天十天执行一次
@PostConstruct
public void init() {
// selectHasPrice();
// selectSafeStorageAndDeliverOneYear();
selectHasPrice();
selectSafeStorageAndDeliverOneYear();
// bdgzsomthingService.selectds();
}
@Scheduled(cron = "0 0 2 * * ?")

View File

@ -71,6 +71,7 @@ public interface ProcessDesignMapper extends BaseMapperX<ProcessDesignDO> {
.like(!StringUtils.isEmpty(reqVO.getTwoDimOwnerName()), "u4.nickname", reqVO.getTwoDimOwnerName())
.like(!StringUtils.isEmpty(reqVO.getBlankOwnerName()), "u3.nickname", reqVO.getBlankOwnerName())
.like(!StringUtils.isEmpty(reqVO.getCastOwnerName()), "u6.nickname", reqVO.getCastOwnerName())
.ne(ObjectUtil.isNotEmpty(reqVO.getIsOverProcess()), ProcessDesignDO::getIsOverProcess, reqVO.getIsOverProcess())
.like(!StringUtils.isEmpty(reqVO.getProjectSubName()), ProjectOrderSubDO::getName, reqVO.getProjectSubName())
.eq(!StringUtils.isEmpty(reqVO.getProcessDesignType()), ProcessDesignDO::getProcessDesignType, reqVO.getProcessDesignType())
.in(reqVO.getProcessDesignTypeList() != null && !reqVO.getProcessDesignTypeList().isEmpty(), ProcessDesignDO::getProcessDesignType, reqVO.getProcessDesignTypeList())
@ -91,6 +92,7 @@ public interface ProcessDesignMapper extends BaseMapperX<ProcessDesignDO> {
if(reqVO.getUncompletedDesign() != null && reqVO.getUncompletedDesign()){
query.and(QueryWrapper -> QueryWrapper.apply("COALESCE(z.progress, 0) < {0}", 100).ne(PlanDO::getStatus, ProjectPlanStatusEnum.TERMINATE.getCode()));
}
if(reqVO.getPgType() != null){
if(reqVO.getPgType()==0){
query.eq(ProcessDesignDO::getIsOverProcess,0);

View File

@ -457,6 +457,7 @@ public class ProcessDesignServiceImpl implements ProcessDesignService {
Long userId = SecurityFrameworkUtils.getLoginUser().getId();
ProcessDesignPageReqVO reqVO = new ProcessDesignPageReqVO();
reqVO.setUncompletedDesign(true).setOwner(userId).setPageSize(99);
reqVO.setIsOverProcess(1);
PageResult<ProcessDesignDO> result = processDesignMapper.selectPage(reqVO);
if(result.getTotal() > 0){
LocalDateTime now = LocalDateTime.now();

View File

@ -219,12 +219,12 @@ v-for="dict in getIntDictOptions(DICT_TYPE.HELI_PROJECT_PLAN_STATUS)" :key="dict
</el-col> -->
<el-col :span="6" >
<el-form-item label="设计工时" prop="delayReason">
<el-input class="!w-260px" :placeholder="getWorkTime(1)" :disabled="true"/>
<el-input class="!w-260px" v-model="formData.workTime" :disabled="true"/>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="设计工期" prop="delayReason">
<el-input class="!w-260px" :placeholder="getWorkTime(2)" :disabled="true"/>
<el-input class="!w-260px" v-model="formData.work" :disabled="true"/>
</el-form-item>
</el-col>
<el-col :span="6" >
@ -377,13 +377,15 @@ v-if="scope.row.isOver == 0 && active != 'detail'"
</template>
<script setup lang="ts">
import { getIntDictOptions, getStrDictOptions, DICT_TYPE, } from '@/utils/dict'
import {dateFormatter, } from "@/utils/formatTime";
import {dateFormatter, formatDate,} from "@/utils/formatTime";
import {ref} from "vue";
import * as ProcessDesignApi from "@/api/heli/processdesign";
import { inject } from 'vue'
import {useUserStore} from "@/store/modules/user";
import {useCommonStore} from "@/store/modules/common";
import {ElMessageBox} from "element-plus";
import * as PlanSubApi from "@/api/heli/plansub";
import {getPgMasterLineListByZlPgId} from "@/api/heli/pgmaster";
defineOptions({ name: 'ProcessDesignDetail' })
@ -520,7 +522,7 @@ const handleClose = (done: () => void) => {
.catch(() => {
})
}
const getWorkTime = (type) =>{
const getWorkTime = async (type) =>{
var beginTime = null ;
var endTime = null
if(processDesignType.value == 'BLUEPRINT_WORKBLANK'){
@ -528,7 +530,6 @@ const getWorkTime = (type) =>{
beginTime = formData.value.startBlankDate;
endTime = formData.value.blankDate
}
}
if(processDesignType.value == 'BLUEPRINT_2D'){
if(formData.value.twoDimDate != null && formData.value.startTwoDimDate ){
@ -540,37 +541,34 @@ const getWorkTime = (type) =>{
if(formData.value.threeDimDate != null && formData.value.startThreeDimDate != null){
beginTime = formData.value.startThreeDimDate;
endTime = formData.value.threeDimDate;
}
}
if(processDesignType.value == 'BLUEPRINT_FOUNDRY_TECHNOLOGY'){
if(formData.value.craftStartDate != null && formData.value.craftEndDate != null ){
beginTime = formData.value.craftStartDate;
endTime = formData.value.craftEndDate
}
}
if(processDesignType.value == 'CASTING_DRAWING'){
if(formData.value.castStartDate != null && formData.value.castEndDate != null ){
beginTime = formData.value.castStartDate;
endTime = formData.value.castEndDate
}
}
if(beginTime != null && endTime != null){
const start = new Date(beginTime ).getTime();
const end = new Date(endTime).getTime();
const diffTime = Math.abs(end - start);
var day = Math.floor(diffTime / (1000 * 60 * 60 * 24));
if(day == 0){
day += 1
}
if(type == 1){
return day * 8 + '小时';
// const start = new Date(beginTime ).getTime();
// const end = new Date(endTime).getTime();
// const diffTime = Math.abs(end - start);
// var day = Math.floor(diffTime / (1000 * 60 * 60 * 24));
// day += 1
var day
await PlanSubApi.getSearchRlTsS(formatDate(beginTime,'YYYY-MM-DD'),formatDate(endTime,'YYYY-MM-DD')).then(data=>{
day=data
});
if(type == 1){
formData.value.workTime= day * 8 + '小时';
}else{
return day +'天'
formData.value.work= day +'天';
}
}else{return ''
}
@ -590,7 +588,6 @@ const endTimeChange = (e , row) =>{
row.workTime = timeDiff / (1000 * 60 * 60);
row.maxTime = row.workTime;
}
}else{
row.workTime = null
row.maxTime = row.workTime;
@ -739,6 +736,10 @@ const overProcess = () =>{
message.error("已做时间不能为空!请确认")
return
}
if(new Date(item.beginTime) > new Date(item.endTime)){
message.error("开始时间不能大于结束时间!请确认!")
return
}
}
item.isOver = 1;
}
@ -815,6 +816,8 @@ const queryData = async (id?: number) => {
formLoading.value = true
try {
formData.value = await ProcessDesignApi.getProcessDesign(id)
getWorkTime(1)
getWorkTime(2)
formData.value.processDesignProgressList = await ProcessDesignApi.getProcessDesignProgressListByProcessDesignId(id)
if( formData.value.processDesignProgressList != null && formData.value.processDesignProgressList.length > 0){
var maxTime = null;

View File

@ -61,6 +61,7 @@
"@dcloudio/uni-ui": "^1.4.28",
"pinia": "2.0.27",
"pinia-plugin-persistedstate": "^3.2.0",
"uview-ui": "^2.0.38",
"vue": "3.4.21",
"vue-i18n": "9.10.1"
},
@ -85,7 +86,7 @@
"lint-staged": "^13.0.3",
"miniprogram-api-typings": "^3.12.0",
"prettier": "^2.7.1",
"sass": "^1.56.1",
"sass": "^1.89.2",
"typescript": "^5.1.6",
"vite": "4.0.3",
"vue-tsc": "^1.8.8"

View File

@ -28,7 +28,7 @@ const categoryList = ref([
name: "品质异常通知",
auth: false,
imgUrl: "/static/images/unqualifiedNotification.png",
defaultImgUrl: "/static/images/unqualifiedNotification-default.png",
defaultImgUrl: "/static/images/assembleReport-default.png",
},
{
path: "productionReport",
@ -85,7 +85,7 @@ const categoryList = ref([
name: "品质异常确认",
auth: false,
imgUrl: "/static/images/unqualifiedNotificationConfirm.png",
defaultImgUrl: "/static/images/unqualifiedNotification-default.png",
defaultImgUrl: "/static/images/assembleReport-default.png",
},
{
path: "receivingGoods",

View File

@ -24,12 +24,12 @@
pageNo: 1,
pageSize: 5,
subOrDetailName: "",
projectName: undefined,
projectSubName: undefined,
supplierName: undefined,
boomName: undefined,
procedureName: undefined,
blueprintNo: undefined,
projectName: "",
projectSubName: "",
supplierName: "",
boomName: "",
procedureName: "",
blueprintNo: "",
};
const dataList = ref([]);
const list = ref([]);
@ -135,6 +135,9 @@
estimatedPrice.value = ""
purchaseRemAmounts.value = ""
popup.value?.close()
queryParams.pageNo = 1;
isFinish.value = false;
dataList.value = [];
await getListData()
}
@ -143,7 +146,11 @@
estimatedPrice.value = ""
purchaseRemAmounts.value = ""
popup.value?.close()
}
queryParams.pageNo = 1;
isFinish.value = false;
dataList.value = [];
getListData()
}
const filterData : Required<any> = ({
projectName: '',
subProjectName: '',
@ -220,10 +227,10 @@
<view class="md">
<view class="product-row">
<view class="row-item">
<view class="label">零件名称: {{ item.boomName }}</view>
<view class="label">零件名称: <span style="font-weight: bold;">{{ item.boomName }}</span></view>
</view>
<view class="row-item">
<view class="label">派工工序: {{ item.procedureName }}</view>
<view class="label">派工工序: <span style="font-weight: bold;">{{ item.procedureName }}</span></view>
</view>
</view>
<view class="product-row">
@ -247,9 +254,17 @@
<view class="label">完成日期: {{ item.requireTimes }}</view>
</view>
<view class="row-item">
<view class="label">供应商: {{ item.supplierName }}</view>
<view class="label">&emsp;供应商: {{ item.supplierName }}</view>
</view>
</view>
<view class="product-row">
<view class="row-item">
<view class="label">预估总价: {{ item.estimatedPrice }}</view>
</view>
<view class="row-item">
<view class="label">&emsp;&emsp;材质: {{ item.boomSpec }}</view>
</view>
</view>
<view class="product-row">
<view>
<view class="label">子项目编码: {{ item.projectSubCode }}</view>
@ -263,32 +278,33 @@
<view class="loading-text" :style="{ paddingBottom: safeAreaInsets?.bottom + 'px' }">
{{ isFinish ? "没有更多数据~" : "正在加载..." }}
</view>
<uni-popup class="popup" ref="popup" :mask-click="false" type="bottom" background-color="#fff">
<view class="title">
<view class="text">填写信息</view>
</view>
<view class="cont">
<view class="item">
<view class="label"><span class="star">*</span>入库数量</view>
<uni-easyinput class="val" type="digit" v-model="purchaseRemAmounts"
placeholder="请输入本次入库数量"></uni-easyinput>
</view>
<view class="item">
<view class="label"><span class="star">*</span>预估总价</view>
<uni-easyinput class="val" type="number" v-model="estimatedPrice"
placeholder="请输入本次预估总价"></uni-easyinput>
</view>
</view>
<view class="button-group">
<view class="ok" @click="handleOk">确定</view>
<view class="cancel" @click="cancel">取消</view>
</view>
</uni-popup>
</scroll-view>
<uni-popup class="popup" ref="popup" :mask-click="false" type="bottom" background-color="#fff">
<view class="title">
<view class="text">填写信息</view>
</view>
<view class="cont">
<view class="item">
<view class="label"><span class="star">*</span>入库数量</view>
<uni-easyinput class="val" type="number" v-model="purchaseRemAmounts"
placeholder="请输入本次入库数量"></uni-easyinput>
</view>
<view class="item">
<view class="label"><span class="star">*</span>预估总价</view>
<uni-easyinput class="val" type="number" v-model="estimatedPrice"
placeholder="请输入本次预估总价"></uni-easyinput>
</view>
</view>
<view class="button-group">
<view class="ok" @click="handleOk">确定</view>
<view class="cancel" @click="cancel">取消</view>
</view>
</uni-popup>
<uni-popup class="popup" ref="showPop" :mask-click="false" type="top" background-color="#fff">
<view style="margin-top: 6%;">
<uni-forms :modelValue="queryParams">
<uni-forms :modelValue="queryParams" label-align="right" label-width="90px">
<uni-forms-item label="项目名称" name="projectName">
<uni-easyinput type="text" v-model="queryParams.projectName" placeholder="请输入项目名称" />
</uni-forms-item>
@ -311,8 +327,8 @@
</view>
<view class="filter-buttons">
<view class="ok" @click="confirmFilter">确认</view>
<view class="button-group">
<view class="ok" @click="confirmFilter">查询</view>
<view class="cancel" @click="cancelFilter">取消</view>
</view>
@ -321,6 +337,13 @@
</template>
<style lang="scss">
.fixed-bottom-modal {
position: fixed !important; /* 覆盖框架默认定位 */
bottom: 0; /* 紧贴屏幕底部 */
left: 0;
right: 0;
z-index: 9999 !important; /* 确保最高层级 */
}
.filter-buttons {
display: flex;
width: 100%;
@ -620,7 +643,7 @@
}
.popup {
.title {
.title {
line-height: 1;
padding: 40rpx;
font-size: 32rpx;
@ -687,17 +710,17 @@
/* 修正原有 .ok 样式 */
.ok,
.cancel {
font-size: 32rpx;
font-size: 40rpx;
text-align: center;
width: 200rpx;
border-radius: 10rpx;
padding: 8rpx 0;
width: 250rpx;
border-radius: 24rpx;
padding: 10rpx 0;
background-color: #3C8AF7;
color: #fff;
line-height:40px;
margin: 20rpx auto 80rpx;
/* 移除原有的 margin: 20rpx auto 80rpx; */
}
/* 可选:为取消按钮添加不同样式 */
.cancel {
background: linear-gradient(157deg, #A9A9A9 -3%, #A9A9A9 90%);

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB