添加工序

This commit is contained in:
cwchen 2025-05-19 17:35:12 +08:00
parent fa1eb4023c
commit a9636fa199
20 changed files with 307 additions and 90 deletions

View File

@ -122,4 +122,31 @@ public interface ProProgressDao {
* @date 2025/4/23 14:46 * @date 2025/4/23 14:46
*/ */
void updateTower(ProProgressVo.UpdateRecordVo vo); void updateTower(ProProgressVo.UpdateRecordVo vo);
/**
* 杆塔基础开挖完成后自动生成A腿B腿C腿D腿
* @param vo
* @return void
* @author cwchen
* @date 2025/5/19 13:35
*/
void addTowerPouring(ProProgressVo.UpdateRecordVo vo);
/**
* 更新杆塔基础浇筑ABCD四个腿的数据
* @param vo
* @return void
* @author cwchen
* @date 2025/5/19 14:44
*/
void updatetTowerPouring(ProProgressVo.UpdateRecordVo vo);
/**
* 查询已经完成4个腿都浇筑完成的杆塔
* @param list
* @return List<Long>
* @author cwchen
* @date 2025/5/19 14:52
*/
List<Long> getTowerPouring(List<Long> list);
} }

View File

@ -10,9 +10,7 @@ import lombok.Data;
import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size; import javax.validation.constraints.Size;
import java.util.Date; import java.util.*;
import java.util.List;
import java.util.Optional;
/** /**
* @className:ProProgressVo * @className:ProProgressVo
@ -109,33 +107,42 @@ public class ProProgressVo {
*/ */
private double proProgress; private double proProgress;
/** /**
* 基础开挖 * 协调完成
*/ */
private int num1; private int num1;
/** /**
* 基础开挖完成 * 基础开挖
*/ */
private int num2; private int num2;
/** /**
* 基础浇筑完成 * 基础开挖完成
*/ */
private int num3; private int num3;
/** /**
* 铁塔组立 * 基础浇筑
*/ */
private int num4; private int num4;
/** /**
* 铁塔组立完成 * 基础浇筑完成
*/ * */
private int num5; private int num5;
/** /**
* 架线施工完成 * 铁塔组立
*/ */
private int num6; private int num6;
/** /**
* 附件安装完成 * 铁塔组立完成
*/ */
private int num7; private int num7;
/**
* 架线施工完成
*/
private int num8;
/**
* 附件安装完成
*/
private int num9;
} }
@Data @Data
@ -193,7 +200,7 @@ public class ProProgressVo {
* 工序类型 1.基础开挖 2.基础开挖完成 3.基础浇筑完成 4.铁塔组立 5.铁塔组立完成 6.架线施工完成 7.附件安装完成 * 工序类型 1.基础开挖 2.基础开挖完成 3.基础浇筑完成 4.铁塔组立 5.铁塔组立完成 6.架线施工完成 7.附件安装完成
*/ */
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY) @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
private int progressType; private Integer progressType;
/** /**
* 创建人id * 创建人id
@ -215,6 +222,13 @@ public class ProProgressVo {
@Size(min = 1, message = "至少选择一个杆塔数据", groups = {Update.class}) @Size(min = 1, message = "至少选择一个杆塔数据", groups = {Update.class})
private List<Long> towerIds; private List<Long> towerIds;
private List<Long> towerLegIds = new ArrayList<>();
private List<TowerDetailVo> towerDetailVos;
/**杆塔腿*/
private List<String> innerLoops = Arrays.asList("A", "B", "C", "D");
/** /**
* 修改条件限制 * 修改条件限制
*/ */

View File

@ -11,6 +11,7 @@ import com.bonus.digitalSignage.backstage.service.ProProgressService;
import com.bonus.digitalSignage.utils.ServerResponse; import com.bonus.digitalSignage.utils.ServerResponse;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -88,6 +89,9 @@ public class ProProgressServiceImpl implements ProProgressService {
vo.setNum5(vo2.getNum5()); vo.setNum5(vo2.getNum5());
vo.setNum6(vo2.getNum6()); vo.setNum6(vo2.getNum6());
vo.setNum7(vo2.getNum7()); vo.setNum7(vo2.getNum7());
vo.setNum7(vo2.getNum7());
vo.setNum8(vo2.getNum8());
vo.setNum9(vo2.getNum9());
return ServerResponse.createSuccess(vo); return ServerResponse.createSuccess(vo);
} catch (Exception e) { } catch (Exception e) {
log.error(e.toString(), e); log.error(e.toString(), e);
@ -153,14 +157,34 @@ public class ProProgressServiceImpl implements ProProgressService {
List<Long> progressAndTowers = Optional.ofNullable(dao.getNowProProgress(vo)).orElseGet(ArrayList::new); List<Long> progressAndTowers = Optional.ofNullable(dao.getNowProProgress(vo)).orElseGet(ArrayList::new);
Long finishTowerNum = progressAndTowers.get(0); Long finishTowerNum = progressAndTowers.get(0);
Long towerNum = progressAndTowers.get(1); Long towerNum = progressAndTowers.get(1);
// 杆塔基础开挖完成后自动生成A腿B腿C腿D腿
if (vo.getProgressType() == 3) {
dao.addTowerPouring(vo);
}
// 工序进度为基础浇筑时
if (vo.getProgressType() == 4) {
// 更新杆塔基础浇筑ABCD四个腿的数据
dao.updatetTowerPouring(vo);
// 查询已经完成4个腿都浇筑完成的杆塔
Set<Long> set = new HashSet<>(vo.getTowerIds());
List<Long> distinctList = new ArrayList<>(set);
List<Long> towerPourings = Optional.ofNullable(dao.getTowerPouring(distinctList)).orElseGet(ArrayList::new);
vo.setTowerLegIds(towerPourings);
}
// 计算更新后的进度 // 计算更新后的进度
double progress = handleProgress(finishTowerNum, towerNum, vo.getTowerIds().size()); double progress = handleProgress(finishTowerNum, towerNum, vo.getProgressType() != 4 ? vo.getTowerIds().size():vo.getTowerLegIds().size());
vo.setFinishProgress(progress); vo.setFinishProgress(progress);
// 添加杆塔进度杆塔进度关系表更新工程整体进度更新杆塔进度 // 添加杆塔进度杆塔进度关系表更新工程整体进度更新杆塔进度
dao.addProgress(vo); dao.addProgress(vo);
dao.addTowerProgress(vo); if (vo.getProgressType() == 4 && CollectionUtils.isNotEmpty(vo.getTowerLegIds())) {
dao.addTowerProgress(vo);
dao.updateTower(vo);
}
if (vo.getProgressType() != 4) {
dao.addTowerProgress(vo);
dao.updateTower(vo);
}
dao.updateProProgress(vo); dao.updateProProgress(vo);
dao.updateTower(vo);
return ServerResponse.createBySuccessMsg("操作成功"); return ServerResponse.createBySuccessMsg("操作成功");
} catch (Exception e) { } catch (Exception e) {
log.error(e.toString(), e); log.error(e.toString(), e);
@ -171,6 +195,7 @@ public class ProProgressServiceImpl implements ProProgressService {
/** /**
* 计算进度 * 计算进度
*
* @param nowProgress * @param nowProgress
* @param towerNum * @param towerNum
* @param towerNum2 * @param towerNum2
@ -180,7 +205,7 @@ public class ProProgressServiceImpl implements ProProgressService {
*/ */
public static double handleProgress(Long nowProgress, Long towerNum, int towerNum2) { public static double handleProgress(Long nowProgress, Long towerNum, int towerNum2) {
BigDecimal bigDecimal = BigDecimal.valueOf(nowProgress + (long) towerNum2).multiply(BigDecimal.valueOf(100)); BigDecimal bigDecimal = BigDecimal.valueOf(nowProgress + (long) towerNum2).multiply(BigDecimal.valueOf(100));
BigDecimal bigDecimal2 = BigDecimal.valueOf(towerNum * 7); BigDecimal bigDecimal2 = BigDecimal.valueOf(towerNum * 9);
BigDecimal result = bigDecimal.divide(bigDecimal2, 2, RoundingMode.HALF_UP); BigDecimal result = bigDecimal.divide(bigDecimal2, 2, RoundingMode.HALF_UP);
return result.doubleValue(); return result.doubleValue();
} }

View File

@ -21,11 +21,32 @@
</insert> </insert>
<!--杆塔进度关系表--> <!--杆塔进度关系表-->
<insert id="addTowerProgress"> <insert id="addTowerProgress">
INSERT INTO tb_tower_progress(tower_id,progress_id,progress_type,pro_id) VALUES <if test="progressType == 4">
INSERT INTO tb_tower_progress(tower_id,progress_id,progress_type,pro_id) VALUES
<foreach collection="towerLegIds" separator="," item="item">
(
#{item},#{dataId},#{progressType},#{id}
)
</foreach>
</if>
<if test="progressType != 4">
INSERT INTO tb_tower_progress(tower_id,progress_id,progress_type,pro_id) VALUES
<foreach collection="towerIds" separator="," item="item">
(
#{item},#{dataId},#{progressType},#{id}
)
</foreach>
</if>
</insert>
<!--杆塔基础开挖完成后自动生成A腿B腿C腿D腿-->
<insert id="addTowerPouring">
INSERT INTO tb_tower_pouring(tower_id,leg,finish_status) VALUES
<foreach collection="towerIds" separator="," item="item"> <foreach collection="towerIds" separator="," item="item">
( <foreach item="innerItem" collection="innerLoops" separator=",">
#{item},#{dataId},#{progressType},#{id} (
) ${item},#{innerItem},0
)
</foreach>
</foreach> </foreach>
</insert> </insert>
<!--更新工程整体进度--> <!--更新工程整体进度-->
@ -35,11 +56,30 @@
</update> </update>
<!--更新杆塔进度--> <!--更新杆塔进度-->
<update id="updateTower"> <update id="updateTower">
<foreach collection="towerIds" item="item" index="index" separator=";"> <if test="progressType == 4">
UPDATE tb_tower <foreach collection="towerLegIds" item="item" index="index" separator=";">
UPDATE tb_tower
SET
tower_progress = #{progressType}
WHERE id = #{item}
</foreach>
</if>
<if test="progressType != 4">
<foreach collection="towerIds" item="item" index="index" separator=";">
UPDATE tb_tower
SET
tower_progress = #{progressType}
WHERE id = #{item}
</foreach>
</if>
</update>
<!--更新杆塔基础浇筑A、B、C、D四个腿的数据-->
<update id="updatetTowerPouring">
<foreach collection="towerDetailVos" item="item" index="index" separator=";">
UPDATE tb_tower_pouring
SET SET
tower_progress = #{progressType} finish_status = '1'
WHERE id = #{item} WHERE tower_id = #{item.id} AND leg = #{item.towerName}
</foreach> </foreach>
</update> </update>
@ -132,6 +172,8 @@
COUNT(IF(tower_progress &gt;= 5, 1, NULL)) AS num5, COUNT(IF(tower_progress &gt;= 5, 1, NULL)) AS num5,
COUNT(IF(tower_progress &gt;= 6, 1, NULL)) AS num6, COUNT(IF(tower_progress &gt;= 6, 1, NULL)) AS num6,
COUNT(IF(tower_progress &gt;= 7, 1, NULL)) AS num7, COUNT(IF(tower_progress &gt;= 7, 1, NULL)) AS num7,
COUNT(IF(tower_progress &gt;= 8, 1, NULL)) AS num8,
COUNT(IF(tower_progress &gt;= 9, 1, NULL)) AS num9,
COUNT(*) AS towerNum COUNT(*) AS towerNum
FROM tb_tower WHERE pro_id = #{id} AND is_actvice = '1' FROM tb_tower WHERE pro_id = #{id} AND is_actvice = '1'
</select> </select>
@ -152,18 +194,50 @@
<select id="getGxData" <select id="getGxData"
resultType="com.bonus.digitalSignage.backstage.entity.vo.ProProgressVo$TowerDetailVo"> resultType="com.bonus.digitalSignage.backstage.entity.vo.ProProgressVo$TowerDetailVo">
SELECT * FROM ( SELECT * FROM (
SELECT id, SELECT tt.id,
tower_name AS towerName, <if test="type == 4">
CONCAT(tt.tower_name,'-',ttp.leg) AS towerName,
ttp.leg,
</if>
<if test="type != 4">
tt.tower_name AS towerName,
0 AS leg,
</if>
1 AS chooseStatus, 1 AS chooseStatus,
sort tt.sort
FROM tb_tower WHERE pro_id = #{id} AND tower_progress = #{type} - 1 AND is_actvice = '1' FROM tb_tower tt
<if test="type == 4">
LEFT JOIN tb_tower_pouring ttp ON tt.id = ttp.tower_id AND tt.tower_progress = 3
</if>
WHERE tt.pro_id = #{id} AND tt.tower_progress = #{type} - 1 AND tt.is_actvice = '1'
<if test="type == 4">
AND ttp.finish_status = '0'
</if>
UNION ALL UNION ALL
SELECT id, SELECT tt.id,
tower_name AS towerName, <if test="type == 4">
CONCAT(tt.tower_name,'-',ttp.leg) AS towerName,
ttp.leg,
</if>
<if test="type != 4">
tt.tower_name AS towerName,
0 AS leg,
</if>
0 AS chooseStatus, 0 AS chooseStatus,
sort tt.sort
FROM tb_tower WHERE pro_id = #{id} AND tower_progress &gt;= #{type} AND is_actvice = '1' FROM tb_tower tt
) A ORDER BY sort <if test="type == 4">
LEFT JOIN tb_tower_pouring ttp ON tt.id = ttp.tower_id AND tt.tower_progress = 3
</if>
WHERE tt.pro_id = #{id} AND tt.is_actvice = '1'
<if test="type != 4">
AND tt.tower_progress &gt;= #{type}
</if>
<if test="type == 4">
AND tt.tower_progress = #{type} - 1
AND ttp.finish_status = '1'
</if>
) A ORDER BY sort,leg
</select> </select>
<!--查询杆塔进度是否被重复更新--> <!--查询杆塔进度是否被重复更新-->
<select id="getIsRepeatUpdate" resultType="java.lang.Integer"> <select id="getIsRepeatUpdate" resultType="java.lang.Integer">
@ -184,4 +258,16 @@
FROM tb_tower FROM tb_tower
WHERE pro_id = #{id} AND is_actvice = '1' WHERE pro_id = #{id} AND is_actvice = '1'
</select> </select>
<!--查询已经完成4个腿都浇筑完成的杆塔-->
<select id="getTowerPouring" resultType="java.lang.Long">
SELECT ttp.tower_id AS towerId
FROM tb_tower_pouring ttp
WHERE ttp.tower_id IN
<foreach collection="list" item="towerId" open="(" separator="," close=")">
#{towerId}
</foreach>
AND ttp.finish_status = '1'
GROUP BY ttp.tower_id
HAVING COUNT(DISTINCT ttp.leg) = 4
</select>
</mapper> </mapper>

View File

@ -67,7 +67,7 @@ body {
.num-box { .num-box {
width: 10%; width: 10%;
height: 100%; height: 100%;
margin-right: 2%; /*margin-right: 1%;*/
justify-content: space-around; justify-content: space-around;
} }
@ -112,6 +112,13 @@ body {
color: #00bfbf; color: #00bfbf;
} }
.num-box:nth-child(9) > p:nth-child(2) {
color: #13227a;
}
.num-box:nth-child(10) > p:nth-child(2) {
color: #1afa29;
}
.layui-tab-brief > .layui-tab-title .layui-this { .layui-tab-brief > .layui-tab-title .layui-this {
color: #409eff; color: #409eff;
} }
@ -191,6 +198,10 @@ body {
cursor: pointer; cursor: pointer;
} }
.tower-info p{
padding: 0 5px;
}
.biddenChoose{ .biddenChoose{
background-color: #ffff00; background-color: #ffff00;
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 375 B

After

Width:  |  Height:  |  Size: 339 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 433 B

After

Width:  |  Height:  |  Size: 338 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 436 B

After

Width:  |  Height:  |  Size: 343 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 408 B

After

Width:  |  Height:  |  Size: 319 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 442 B

After

Width:  |  Height:  |  Size: 358 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 405 B

After

Width:  |  Height:  |  Size: 317 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 373 B

After

Width:  |  Height:  |  Size: 300 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 356 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 347 B

View File

@ -19,6 +19,9 @@ function setParams(params) {
// $('.coordinate-option[data-system="WGS-84"]').addClass('active').trigger('click'); // $('.coordinate-option[data-system="WGS-84"]').addClass('active').trigger('click');
$('#wgs84Fields').show(); $('#wgs84Fields').show();
$('#2000Fields').hide(); $('#2000Fields').hide();
$('input[name="centralMeridian"]').removeAttr('lay-verify');
$('input[name="longitude2000"]').removeAttr('lay-verify');
$('input[name="latitude2000"]').removeAttr('lay-verify');
// 设置验证规则 // 设置验证规则
/* $('input[name^="longitude2000"], input[name^="latitude2000"], input[name="centralMeridian"]').removeAttr('lay-verify'); /* $('input[name^="longitude2000"], input[name^="latitude2000"], input[name="centralMeridian"]').removeAttr('lay-verify');
$('input[name="longitude"]').attr('lay-verify', 'required|longitude'); $('input[name="longitude"]').attr('lay-verify', 'required|longitude');
@ -44,6 +47,7 @@ function setParams(params) {
$('input[name="longitude"]').attr('lay-verify', 'required|longitude'); $('input[name="longitude"]').attr('lay-verify', 'required|longitude');
$('input[name="latitude"]').attr('lay-verify', 'required|latitude'); $('input[name="latitude"]').attr('lay-verify', 'required|latitude');
// $('input[name="longitude"], input[name="latitude"]').attr('lay-verify', 'required|number'); // $('input[name="longitude"], input[name="latitude"]').attr('lay-verify', 'required|number');
$('input[name="centralMeridian"]').removeAttr('lay-verify');
} else { } else {
$('#wgs84Fields').hide(); $('#wgs84Fields').hide();
$('#2000Fields').show(); $('#2000Fields').show();

View File

@ -92,42 +92,52 @@ function initTable(dataList, limit, page) {
return (page - 1) * limit + d.LAY_NUM; return (page - 1) * limit + d.LAY_NUM;
} }
}, },
{field: "towerName", title: "杆塔", width: "18%", unresize: true, align: "center"}, {field: "towerName", title: "杆塔", width: "14%", unresize: true, align: "center"},
{title: "基础开挖",width: "10%",unresize: true,align: "center", {title: "协调完成",width: "10%",unresize: true,align: "center",
templet: function (d) { templet: function (d) {
return setTowerProgress(d.towerProgress,1); return setTowerProgress(d.towerProgress,1);
} }
}, },
{title: "基础开挖完成",width: "11%",unresize: true,align: "center", {title: "基础开挖",width: "9%",unresize: true,align: "center",
templet: function (d) { templet: function (d) {
return setTowerProgress(d.towerProgress,2); return setTowerProgress(d.towerProgress,2);
} }
}, },
{title: "基础浇筑完成",width: "11%",unresize: true,align: "center", {title: "基础开挖完成",width: "9%",unresize: true,align: "center",
templet: function (d) { templet: function (d) {
return setTowerProgress(d.towerProgress,3); return setTowerProgress(d.towerProgress,3);
} }
}, },
{title: "铁塔组立",width: "11%",unresize: true,align: "center", {title: "基础浇筑",width: "9%",unresize: true,align: "center",
templet: function (d) { templet: function (d) {
return setTowerProgress(d.towerProgress,4); return setTowerProgress(d.towerProgress,4);
} }
}, },
{title: "铁塔组立完成",width: "11%",unresize: true,align: "center", {title: "基础浇筑完成",width: "9%",unresize: true,align: "center",
templet: function (d) { templet: function (d) {
return setTowerProgress(d.towerProgress,5); return setTowerProgress(d.towerProgress,5);
} }
}, },
{title: "架线施工完成",width: "11%",unresize: true,align: "center", {title: "铁塔组立",width: "9%",unresize: true,align: "center",
templet: function (d) { templet: function (d) {
return setTowerProgress(d.towerProgress,6); return setTowerProgress(d.towerProgress,6);
} }
}, },
{title: "附件安装完成",width: "11%",unresize: true,align: "center", {title: "铁塔组立完成",width: "9%",unresize: true,align: "center",
templet: function (d) { templet: function (d) {
return setTowerProgress(d.towerProgress,7); return setTowerProgress(d.towerProgress,7);
} }
}, },
{title: "架线施工完成",width: "9%",unresize: true,align: "center",
templet: function (d) {
return setTowerProgress(d.towerProgress,8);
}
},
{title: "附件安装完成",width: "9%",unresize: true,align: "center",
templet: function (d) {
return setTowerProgress(d.towerProgress,9);
}
},
], ],
], ],
done: function (res, curr, count) { done: function (res, curr, count) {
@ -186,6 +196,10 @@ function setTowerProgress(value,type){
html = '<img src="../../img/synthesisQuery/num6.png" alt="">' html = '<img src="../../img/synthesisQuery/num6.png" alt="">'
}else if(value >= 7 && type === 7){ }else if(value >= 7 && type === 7){
html = '<img src="../../img/synthesisQuery/num7.png" alt="">' html = '<img src="../../img/synthesisQuery/num7.png" alt="">'
}else if(value >= 8 && type === 8){
html = '<img src="../../img/synthesisQuery/num8.png" alt="">'
}else if(value >= 9 && type === 9){
html = '<img src="../../img/synthesisQuery/num9.png" alt="">'
}else { }else {
html = ''; html = '';
} }

View File

@ -3,7 +3,7 @@ function initSetProData() {
let url = dataUrl + "/backstage/proProgress/detailQuery" let url = dataUrl + "/backstage/proProgress/detailQuery"
let obj = { let obj = {
id: objParams.id, id: objParams.id,
departId:objParams.departId departId: objParams.departId
} }
let params = { let params = {
encryptedData: encryptCBC(JSON.stringify(obj)) encryptedData: encryptCBC(JSON.stringify(obj))
@ -25,7 +25,7 @@ function initSetProData() {
$('#companyName').html(obj.companyName); $('#companyName').html(obj.companyName);
$('#proStatus').html('<span style="color: #51d351;"> ● </span>' + obj.proStatus); $('#proStatus').html('<span style="color: #51d351;"> ● </span>' + obj.proStatus);
$('#voltageLevel').html(obj.voltageLevel); $('#voltageLevel').html(obj.voltageLevel);
$('#lineLength').html((obj.lineLength || '/') + 'km'); $('#lineLength').html((obj.lineLength || '/') + 'km');
$('#towerNum').html(obj.towerNum); $('#towerNum').html(obj.towerNum);
$('#towerNum2').html(obj.towerNum); $('#towerNum2').html(obj.towerNum);
$('#planStartTime').html(obj.planStartTime); $('#planStartTime').html(obj.planStartTime);
@ -36,7 +36,7 @@ function initSetProData() {
<div class="layui-progress-bar layui-bg-blue" lay-percent="${obj.proProgress}%"></div> <div class="layui-progress-bar layui-bg-blue" lay-percent="${obj.proProgress}%"></div>
</div> </div>
`); `);
for (let i = 1; i <= 7 ; i++) { for (let i = 1; i <= 9; i++) {
$('#num' + i).html(obj['num' + i]); $('#num' + i).html(obj['num' + i]);
} }
element.render(); element.render();
@ -44,7 +44,7 @@ function initSetProData() {
} }
/**更新记录*/ /**更新记录*/
function setUpdateRecord(){ function setUpdateRecord() {
let url = dataUrl + "/backstage/proProgress/updateRecord" let url = dataUrl + "/backstage/proProgress/updateRecord"
let obj = { let obj = {
id: objParams.id id: objParams.id
@ -65,6 +65,7 @@ function setUpdateRecord(){
layer.close(loadingMsg); layer.close(loadingMsg);
error(xhr) error(xhr)
}); });
function setUpdateRecordInfo(list, obj) { function setUpdateRecordInfo(list, obj) {
let html = ''; let html = '';
if (list && list.length > 0) { if (list && list.length > 0) {
@ -111,7 +112,7 @@ function setUpdateProData(value) {
let url = dataUrl + "/backstage/proProgress/getGxData" let url = dataUrl + "/backstage/proProgress/getGxData"
let obj = { let obj = {
id: objParams.id, id: objParams.id,
type:value type: value
} }
let params = { let params = {
encryptedData: encryptCBC(JSON.stringify(obj)) encryptedData: encryptCBC(JSON.stringify(obj))
@ -134,60 +135,65 @@ function setUpdateProData(value) {
let obj = data.vo; let obj = data.vo;
let list = data.list; let list = data.list;
$('#towerNum2').html(obj.towerNum); $('#towerNum2').html(obj.towerNum);
for (let i = 1; i <= 7 ; i++) { for (let i = 1; i <= 9; i++) {
$('#num' + i).html(obj['num' + i]); $('#num' + i).html(obj['num' + i]);
} }
let html = ''; let html = '';
$.each(list,function (index,item) { $.each(list, function (index, item) {
if(item.chooseStatus === 1){ if (item.chooseStatus === 1) {
html += '<div class="tower-info layout" dataId="'+item.id+'" onclick="chooseData(this)"><p>'+item.towerName+'</p></div>'; html += '<div class="tower-info layout" dataId="' + item.id + '" towerName="' + item.towerName + '" onclick="chooseData(this)"><p>' + item.towerName + '</p></div>';
}else if(item.chooseStatus === 0){ } else if (item.chooseStatus === 0) {
html += '<div class="tower-info layout biddenChoose" dataId="'+item.id+'"><p>'+item.towerName+'</p></div>'; html += '<div class="tower-info layout biddenChoose" dataId="' + item.id + '" towerName="' + item.towerName + '"><p>' + item.towerName + '</p></div>';
} }
}) })
$('.tower-box').empty().append(html); $('.tower-box').empty().append(html);
} }
} }
function chooseData(that){ function chooseData(that) {
let towerName = $(that).find('p').eq(0).html(); let towerName = $(that).find('p').eq(0).html();
if($(that).hasClass('choose')){ if ($(that).hasClass('choose')) {
$(that).removeClass('choose'); $(that).removeClass('choose');
let oldData = $('#updateDesc').val(); let oldData = $('#updateDesc').val();
let dataArr = oldData.split(';'); let dataArr = oldData.split(';');
const filteredArray = dataArr.filter(item => !item.includes(towerName)); const filteredArray = dataArr.filter(item => !item.includes(towerName));
$('#updateDesc').val(filteredArray.join(';')); $('#updateDesc').val(filteredArray.join(';'));
}else{ } else {
$(that).addClass('choose'); $(that).addClass('choose');
let oldData = $('#updateDesc').val(); let oldData = $('#updateDesc').val();
let value = getTypeName(towerName); let value = getTypeName(towerName);
$('#updateDesc').val(oldData + value); $('#updateDesc').val(oldData + value);
} }
function getTypeName(towerName){ function getTypeName(towerName) {
if(checkType === 1){ if (checkType === 1) {
return towerName + '-' + '协调完成;';
} else if (checkType === 2) {
return towerName + '-' + '基础开挖;'; return towerName + '-' + '基础开挖;';
}else if(checkType === 2){ } else if (checkType === 3) {
return towerName + '-' + '基础开挖完成;'; return towerName + '-' + '基础开挖完成;';
}else if(checkType === 3){ }else if (checkType === 4) {
return towerName + '-' + '基础浇筑;';
} else if (checkType === 5) {
return towerName + '-' + '基础浇筑完成;'; return towerName + '-' + '基础浇筑完成;';
}else if(checkType === 4){ } else if (checkType === 6) {
return towerName + '-' + '铁塔组立;'; return towerName + '-' + '铁塔组立;';
}else if(checkType === 5){ } else if (checkType === 7) {
return towerName + '-' + '铁塔组立完成;'; return towerName + '-' + '铁塔组立完成;';
}else if(checkType === 6){ } else if (checkType === 8) {
return towerName + '-' + '架线施工完成;'; return towerName + '-' + '架线施工完成;';
}else if(checkType === 7){ } else if (checkType === 9) {
return towerName + '-' + '附件安装完成;'; return towerName + '-' + '附件安装完成;';
} }
} }
} }
// 更新项目保存数据 // 更新项目保存数据
function saveData(data,towers) { function saveData(data, towers, towerNames) {
let url = dataUrl + "/backstage/proProgress/updateProgressData"; let url = dataUrl + "/backstage/proProgress/updateProgressData";
let paramsObj = data.field; let paramsObj = data.field;
paramsObj.towerIds = towers; paramsObj.towerIds = towers;
paramsObj.towerDetailVos = towerNames;
paramsObj.id = objParams.id; paramsObj.id = objParams.id;
paramsObj.progressType = checkType; paramsObj.progressType = checkType;
let params = { let params = {

View File

@ -17,19 +17,31 @@ function setParams(obj) {
setUpdateProData(1); setUpdateProData(1);
element.render(); element.render();
form.on('submit(formData)', function (data) { form.on('submit(formData)', function (data) {
let towers = getChooseData(); let towers = getChooseData('dataId');
let towerNames = getChooseData('towerName');
if(!towers.length){ if(!towers.length){
return layer.msg("请选择杆塔", {icon: 7}) return layer.msg("请选择杆塔", {icon: 7})
} }
saveData(data,towers); saveData(data,towers,towerNames);
}); });
}); });
} }
function getChooseData(){ function getChooseData(attr){
let towers = []; let towers = [];
$('.tower-info.choose').each(function(){ $('.tower-info.choose').each(function(){
towers.push($(this).attr('dataId')); let value = $(this).attr(attr);
if(attr === 'towerName'){
const lastDashIndex = value.lastIndexOf("-"); // 找到最后一个 - 的位置
const result = value.slice(lastDashIndex + 1); // 从 - 后一位开始截取
let obj = {
towerName: result,
id: $(this).attr('dataId')
}
towers.push(obj);
}else{
towers.push(value);
}
}); });
return towers; return towers;
} }

View File

@ -79,33 +79,41 @@
<p id="towerNum2"></p> <p id="towerNum2"></p>
</div> </div>
<div class="layout num-box"> <div class="layout num-box">
<p>基础开挖</p> <p>协调完成</p>
<p id="num1">0</p> <p id="num1">0</p>
</div> </div>
<div class="layout num-box"> <div class="layout num-box">
<p>基础开挖完成</p> <p>基础开挖</p>
<p id="num2">0</p> <p id="num2">0</p>
</div> </div>
<div class="layout num-box"> <div class="layout num-box">
<p>基础浇筑完成</p> <p>基础开挖完成</p>
<p id="num3">0</p> <p id="num3">0</p>
</div> </div>
<div class="layout num-box"> <div class="layout num-box">
<p>铁塔组立</p> <p>基础浇筑</p>
<p id="num4">0</p> <p id="num4">0</p>
</div> </div>
<div class="layout num-box"> <div class="layout num-box">
<p>铁塔组立完成</p> <p>基础浇筑完成</p>
<p id="num5">0</p> <p id="num5">0</p>
</div> </div>
<div class="layout num-box"> <div class="layout num-box">
<p>架线施工完成</p> <p>铁塔组立</p>
<p id="num6">0</p> <p id="num6">0</p>
</div> </div>
<div class="layout num-box"> <div class="layout num-box">
<p>附件安装完成</p> <p>铁塔组立完成</p>
<p id="num7">0</p> <p id="num7">0</p>
</div> </div>
<div class="layout num-box">
<p>架线施工完成</p>
<p id="num8">0</p>
</div>
<div class="layout num-box">
<p>附件安装完成</p>
<p id="num9">0</p>
</div>
</div> </div>
<div class="table-box" table-responsive style="z-index: 1;"> <div class="table-box" table-responsive style="z-index: 1;">
<table id="table_data" class="table" lay-filter="table_data"></table> <table id="table_data" class="table" lay-filter="table_data"></table>

View File

@ -30,13 +30,15 @@
<div id="data-box"> <div id="data-box">
<div class="layui-tab layui-tab-brief" style="height: 98%;" lay-filter="demo-filter-tab"> <div class="layui-tab layui-tab-brief" style="height: 98%;" lay-filter="demo-filter-tab">
<ul class="layui-tab-title" id="layui-tab-title"> <ul class="layui-tab-title" id="layui-tab-title">
<li class="layui-this" value="1">基础开挖</li> <li class="layui-this" value="1">协调完成</li>
<li value="2">基础开挖完成</li> <li value="2">基础开挖</li>
<li value="3">基础浇筑完成</li> <li value="3">基础开挖完成</li>
<li value="4">铁塔组立</li> <li value="4">基础浇筑</li>
<li value="5">铁塔组立完成</li> <li value="5">基础浇筑完成</li>
<li value="6">架线施工完成</li> <li value="6">铁塔组立</li>
<li value="7">附件安装完成</li> <li value="7">铁塔组立完成</li>
<li value="8">架线施工完成</li>
<li value="9">附件安装完成</li>
</ul> </ul>
<div class="layui-tab-content" style="height: calc(100% - 60px);" id="layui-tab-content"> <div class="layui-tab-content" style="height: calc(100% - 60px);" id="layui-tab-content">
<div class="layui-tab-item layui-show"> <div class="layui-tab-item layui-show">
@ -47,33 +49,41 @@
<p id="towerNum2"></p> <p id="towerNum2"></p>
</div> </div>
<div class="layout num-box"> <div class="layout num-box">
<p>基础开挖</p> <p>协调完成</p>
<p id="num1">0</p> <p id="num1">0</p>
</div> </div>
<div class="layout num-box"> <div class="layout num-box">
<p>基础开挖完成</p> <p>基础开挖</p>
<p id="num2">0</p> <p id="num2">0</p>
</div> </div>
<div class="layout num-box"> <div class="layout num-box">
<p>基础浇筑完成</p> <p>基础开挖完成</p>
<p id="num3">0</p> <p id="num3">0</p>
</div> </div>
<div class="layout num-box"> <div class="layout num-box">
<p>铁塔组立</p> <p>基础浇筑</p>
<p id="num4">0</p> <p id="num4">0</p>
</div> </div>
<div class="layout num-box"> <div class="layout num-box">
<p>铁塔组立完成</p> <p>基础浇筑完成</p>
<p id="num5">0</p> <p id="num5">0</p>
</div> </div>
<div class="layout num-box"> <div class="layout num-box">
<p>架线施工完成</p> <p>铁塔组立</p>
<p id="num6">0</p> <p id="num6">0</p>
</div> </div>
<div class="layout num-box"> <div class="layout num-box">
<p>附件安装完成</p> <p>铁塔组立完成</p>
<p id="num7">0</p> <p id="num7">0</p>
</div> </div>
<div class="layout num-box">
<p>架线施工完成</p>
<p id="num8">0</p>
</div>
<div class="layout num-box">
<p>附件安装完成</p>
<p id="num9">0</p>
</div>
</div> </div>
<div class="tower-box layout"> <div class="tower-box layout">
</div> </div>