进度更新
This commit is contained in:
parent
b7618fd2e8
commit
102dd6e315
|
|
@ -89,4 +89,11 @@ public class ProProgressController {
|
||||||
public ServerResponse updateProgressData(EncryptedReq<ProProgressVo.UpdateRecordVo> dto) {
|
public ServerResponse updateProgressData(EncryptedReq<ProProgressVo.UpdateRecordVo> dto) {
|
||||||
return service.updateProgressData(dto.getData());
|
return service.updateProgressData(dto.getData());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation("工程进度更新-更新进度-取消回退")
|
||||||
|
@PostMapping("towerGxBack")
|
||||||
|
@DecryptAndVerify(decryptedClass = ProProgressVo.BackTowerGxVo.class)//加解密统一管理
|
||||||
|
public ServerResponse towerGxBack(EncryptedReq<ProProgressVo.BackTowerGxVo> dto) {
|
||||||
|
return service.towerGxBack(dto.getData());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -123,24 +123,6 @@ public interface ProProgressDao {
|
||||||
*/
|
*/
|
||||||
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);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 更新杆塔基础浇筑A、B、C、D四个腿的数据
|
|
||||||
* @param vo
|
|
||||||
* @return void
|
|
||||||
* @author cwchen
|
|
||||||
* @date 2025/5/19 14:44
|
|
||||||
*/
|
|
||||||
void updatetTowerPouring(ProProgressVo.UpdateRecordVo vo);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询已经完成4个腿都浇筑完成的杆塔
|
* 查询已经完成4个腿都浇筑完成的杆塔
|
||||||
* @param list
|
* @param list
|
||||||
|
|
@ -149,4 +131,40 @@ public interface ProProgressDao {
|
||||||
* @date 2025/5/19 14:52
|
* @date 2025/5/19 14:52
|
||||||
*/
|
*/
|
||||||
List<Long> getTowerPouring(List<Long> list);
|
List<Long> getTowerPouring(List<Long> list);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 回退杆塔工序
|
||||||
|
* @param vo
|
||||||
|
* @return void
|
||||||
|
* @author cwchen
|
||||||
|
* @date 2025/6/9 16:16
|
||||||
|
*/
|
||||||
|
void updateTowerProgress(ProProgressVo.BackTowerGxVo vo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除回退杆塔进度记录
|
||||||
|
* @param vo
|
||||||
|
* @return void
|
||||||
|
* @author cwchen
|
||||||
|
* @date 2025/6/9 16:20
|
||||||
|
*/
|
||||||
|
void delTowerProgress(ProProgressVo.BackTowerGxVo vo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询杆塔工序进度
|
||||||
|
* @param vo
|
||||||
|
* @return List<Long>
|
||||||
|
* @author cwchen
|
||||||
|
* @date 2025/6/9 16:29
|
||||||
|
*/
|
||||||
|
List<Long> countTowerProgress(ProProgressVo.BackTowerGxVo vo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新回退后的工程进度
|
||||||
|
* @param vo
|
||||||
|
* @return void
|
||||||
|
* @author cwchen
|
||||||
|
* @date 2025/6/9 16:36
|
||||||
|
*/
|
||||||
|
void updateProgress(ProProgressVo.BackTowerGxVo vo);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -136,13 +136,18 @@ public class ProProgressVo {
|
||||||
*/
|
*/
|
||||||
private int num7;
|
private int num7;
|
||||||
/**
|
/**
|
||||||
* 架线施工完成
|
* 架线施工工序
|
||||||
*/
|
*/
|
||||||
private int num8;
|
private int num8;
|
||||||
/**
|
/**
|
||||||
* 附件安装完成
|
* 架线施工完成
|
||||||
*/
|
*/
|
||||||
private int num9;
|
private int num9;
|
||||||
|
/**
|
||||||
|
* 附件安装完成
|
||||||
|
*/
|
||||||
|
private int num10;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
|
|
@ -154,7 +159,7 @@ public class ProProgressVo {
|
||||||
*/
|
*/
|
||||||
private String towerName;
|
private String towerName;
|
||||||
/**
|
/**
|
||||||
* 杆塔完成进度 1.基础开挖 2.基础开挖完成 3.基础浇筑完成 4.铁塔组立 5.铁塔组立完成 6.架线施工完成 7.附件安装完成
|
* 杆塔完成进度 1.协调完成 2.基础开挖 3.基础开挖完成 4.基础浇筑 5.基础浇筑完成 6.铁塔组立 7.铁塔组立完成 8.架线施工 9.架线施工完成 10.附件安装完成
|
||||||
*/
|
*/
|
||||||
private int towerProgress;
|
private int towerProgress;
|
||||||
|
|
||||||
|
|
@ -197,7 +202,7 @@ public class ProProgressVo {
|
||||||
private Date updateDate;
|
private Date updateDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 工序类型 1.基础开挖 2.基础开挖完成 3.基础浇筑完成 4.铁塔组立 5.铁塔组立完成 6.架线施工完成 7.附件安装完成
|
* 工序类型 1.协调完成 2.基础开挖 3.基础开挖完成 4.基础浇筑 5.基础浇筑完成 6.铁塔组立 7.铁塔组立完成 8.架线施工 9.架线施工完成 10.附件安装完成
|
||||||
*/
|
*/
|
||||||
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
|
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
|
||||||
private Integer progressType;
|
private Integer progressType;
|
||||||
|
|
@ -222,12 +227,8 @@ 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<TowerDetailVo> towerDetailVos;
|
||||||
|
|
||||||
/**杆塔腿*/
|
|
||||||
private List<String> innerLoops = Arrays.asList("A", "B", "C", "D");
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改条件限制
|
* 修改条件限制
|
||||||
|
|
@ -237,4 +238,21 @@ public class ProProgressVo {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public static class BackTowerGxVo{
|
||||||
|
@NotNull(message = "工程不能为空", groups = {Update.class})
|
||||||
|
private Long proId;
|
||||||
|
@NotNull(message = "杆塔不能为空", groups = {Update.class})
|
||||||
|
private Long towerId;
|
||||||
|
@NotNull(message = "回退工序不能为空", groups = {Update.class})
|
||||||
|
private Integer towerProgress;
|
||||||
|
/**进度*/
|
||||||
|
private double progress;
|
||||||
|
/**
|
||||||
|
* 修改条件限制
|
||||||
|
*/
|
||||||
|
public interface Update {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -77,4 +77,13 @@ public interface ProProgressService {
|
||||||
* @date 2025/4/22 13:38
|
* @date 2025/4/22 13:38
|
||||||
*/
|
*/
|
||||||
ServerResponse updateProgressData(ProProgressVo.UpdateRecordVo vo);
|
ServerResponse updateProgressData(ProProgressVo.UpdateRecordVo vo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 工程进度更新-更新进度-取消回退
|
||||||
|
* @param data
|
||||||
|
* @return ServerResponse
|
||||||
|
* @author cwchen
|
||||||
|
* @date 2025/6/9 16:07
|
||||||
|
*/
|
||||||
|
ServerResponse towerGxBack(ProProgressVo.BackTowerGxVo data);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -92,6 +92,7 @@ public class ProProgressServiceImpl implements ProProgressService {
|
||||||
vo.setNum7(vo2.getNum7());
|
vo.setNum7(vo2.getNum7());
|
||||||
vo.setNum8(vo2.getNum8());
|
vo.setNum8(vo2.getNum8());
|
||||||
vo.setNum9(vo2.getNum9());
|
vo.setNum9(vo2.getNum9());
|
||||||
|
vo.setNum10(vo2.getNum10());
|
||||||
return ServerResponse.createSuccess(vo);
|
return ServerResponse.createSuccess(vo);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error(e.toString(), e);
|
log.error(e.toString(), e);
|
||||||
|
|
@ -157,33 +158,13 @@ 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) {
|
|
||||||
// 更新杆塔基础浇筑A、B、C、D四个腿的数据
|
|
||||||
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.getProgressType() != 4 ? vo.getTowerIds().size():vo.getTowerLegIds().size());
|
double progress = handleProgress(1,finishTowerNum, towerNum, vo.getTowerIds().size());
|
||||||
vo.setFinishProgress(progress);
|
vo.setFinishProgress(progress);
|
||||||
// 添加杆塔进度、杆塔进度关系表、更新工程整体进度、更新杆塔进度
|
// 添加杆塔进度、杆塔进度关系表、更新工程整体进度、更新杆塔进度
|
||||||
dao.addProgress(vo);
|
dao.addProgress(vo);
|
||||||
if (vo.getProgressType() == 4 && CollectionUtils.isNotEmpty(vo.getTowerLegIds())) {
|
dao.addTowerProgress(vo);
|
||||||
dao.addTowerProgress(vo);
|
dao.updateTower(vo);
|
||||||
dao.updateTower(vo);
|
|
||||||
}
|
|
||||||
if (vo.getProgressType() != 4) {
|
|
||||||
dao.addTowerProgress(vo);
|
|
||||||
dao.updateTower(vo);
|
|
||||||
}
|
|
||||||
dao.updateProProgress(vo);
|
dao.updateProProgress(vo);
|
||||||
return ServerResponse.createBySuccessMsg("操作成功");
|
return ServerResponse.createBySuccessMsg("操作成功");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
|
@ -193,6 +174,33 @@ public class ProProgressServiceImpl implements ProProgressService {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public ServerResponse towerGxBack(ProProgressVo.BackTowerGxVo vo) {
|
||||||
|
try {
|
||||||
|
// 校验数据是否合法
|
||||||
|
String validResult = validatorsUtils.valid(vo, ProProgressVo.BackTowerGxVo.Update.class);
|
||||||
|
if (StringUtils.isNotBlank(validResult)) {
|
||||||
|
return ServerResponse.createErroe(validResult);
|
||||||
|
}
|
||||||
|
vo.setTowerProgress(vo.getTowerProgress() - 1);
|
||||||
|
dao.updateTowerProgress(vo);
|
||||||
|
dao.delTowerProgress(vo);
|
||||||
|
// 查询杆塔工序进度
|
||||||
|
List<Long> countTowerProgress = Optional.ofNullable(dao.countTowerProgress(vo)).orElseGet(ArrayList::new);
|
||||||
|
// 计算更新后的进度
|
||||||
|
double progress = handleProgress(2,countTowerProgress.get(1), countTowerProgress.get(0), 0);
|
||||||
|
vo.setProgress(progress);
|
||||||
|
// 更新工程进度
|
||||||
|
dao.updateProgress(vo);
|
||||||
|
return ServerResponse.createBySuccessMsg("操作成功");
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error(e.toString(), e);
|
||||||
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
||||||
|
return ServerResponse.createErroe("操作失败");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 计算进度
|
* 计算进度
|
||||||
*
|
*
|
||||||
|
|
@ -203,9 +211,14 @@ public class ProProgressServiceImpl implements ProProgressService {
|
||||||
* @author cwchen
|
* @author cwchen
|
||||||
* @date 2025/4/22 14:57
|
* @date 2025/4/22 14:57
|
||||||
*/
|
*/
|
||||||
public static double handleProgress(Long nowProgress, Long towerNum, int towerNum2) {
|
public static double handleProgress(int type,Long nowProgress, Long towerNum, int towerNum2) {
|
||||||
BigDecimal bigDecimal = BigDecimal.valueOf(nowProgress + (long) towerNum2).multiply(BigDecimal.valueOf(100));
|
BigDecimal bigDecimal = null;
|
||||||
BigDecimal bigDecimal2 = BigDecimal.valueOf(towerNum * 9);
|
if(type == 1){ // 工序更新
|
||||||
|
bigDecimal = BigDecimal.valueOf(nowProgress + (long) towerNum2).multiply(BigDecimal.valueOf(100));
|
||||||
|
}else{ // 工序回退
|
||||||
|
bigDecimal = BigDecimal.valueOf(nowProgress).multiply(BigDecimal.valueOf(100));
|
||||||
|
}
|
||||||
|
BigDecimal bigDecimal2 = BigDecimal.valueOf(towerNum * 10);
|
||||||
BigDecimal result = bigDecimal.divide(bigDecimal2, 2, RoundingMode.HALF_UP);
|
BigDecimal result = bigDecimal.divide(bigDecimal2, 2, RoundingMode.HALF_UP);
|
||||||
return result.doubleValue();
|
return result.doubleValue();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -21,22 +21,12 @@
|
||||||
</insert>
|
</insert>
|
||||||
<!--杆塔进度关系表-->
|
<!--杆塔进度关系表-->
|
||||||
<insert id="addTowerProgress">
|
<insert id="addTowerProgress">
|
||||||
<if test="progressType == 4">
|
INSERT INTO tb_tower_progress(tower_id,progress_id,progress_type,pro_id) VALUES
|
||||||
INSERT INTO tb_tower_progress(tower_id,progress_id,progress_type,pro_id) VALUES
|
<foreach collection="towerIds" separator="," item="item">
|
||||||
<foreach collection="towerLegIds" separator="," item="item">
|
(
|
||||||
(
|
#{item},#{dataId},#{progressType},#{id}
|
||||||
#{item},#{dataId},#{progressType},#{id}
|
)
|
||||||
)
|
</foreach>
|
||||||
</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>
|
</insert>
|
||||||
<!--杆塔基础开挖完成后,自动生成A腿B腿C腿D腿-->
|
<!--杆塔基础开挖完成后,自动生成A腿B腿C腿D腿-->
|
||||||
<insert id="addTowerPouring">
|
<insert id="addTowerPouring">
|
||||||
|
|
@ -56,32 +46,26 @@
|
||||||
</update>
|
</update>
|
||||||
<!--更新杆塔进度-->
|
<!--更新杆塔进度-->
|
||||||
<update id="updateTower">
|
<update id="updateTower">
|
||||||
<if test="progressType == 4">
|
<foreach collection="towerIds" item="item" index="index" separator=";">
|
||||||
<foreach collection="towerLegIds" item="item" index="index" separator=";">
|
UPDATE tb_tower
|
||||||
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
|
||||||
finish_status = '1'
|
tower_progress = #{progressType}
|
||||||
WHERE tower_id = #{item.id} AND leg = #{item.towerName}
|
WHERE id = #{item}
|
||||||
</foreach>
|
</foreach>
|
||||||
</update>
|
</update>
|
||||||
|
<!--回退杆塔工序-->
|
||||||
|
<update id="updateTowerProgress">
|
||||||
|
UPDATE tb_tower SET tower_progress = #{towerProgress} WHERE id = #{towerId}
|
||||||
|
</update>
|
||||||
|
<!--更新回退后的工程进度-->
|
||||||
|
<update id="updateProgress">
|
||||||
|
UPDATE tb_project SET pro_progress = #{progress} WHERE id = #{proId}
|
||||||
|
</update>
|
||||||
|
<!--删除回退杆塔进度记录-->
|
||||||
|
<delete id="delTowerProgress">
|
||||||
|
DELETE FROM tb_tower_progress WHERE tower_id = #{towerId} AND progress_type > #{towerProgress}
|
||||||
|
</delete>
|
||||||
|
|
||||||
|
|
||||||
<!--工程进度更新-查询列表-->
|
<!--工程进度更新-查询列表-->
|
||||||
<select id="getList" resultType="com.bonus.digitalSignage.backstage.entity.vo.ProProgressVo">
|
<select id="getList" resultType="com.bonus.digitalSignage.backstage.entity.vo.ProProgressVo">
|
||||||
|
|
@ -174,6 +158,7 @@
|
||||||
COUNT(IF(tower_progress >= 7, 1, NULL)) AS num7,
|
COUNT(IF(tower_progress >= 7, 1, NULL)) AS num7,
|
||||||
COUNT(IF(tower_progress >= 8, 1, NULL)) AS num8,
|
COUNT(IF(tower_progress >= 8, 1, NULL)) AS num8,
|
||||||
COUNT(IF(tower_progress >= 9, 1, NULL)) AS num9,
|
COUNT(IF(tower_progress >= 9, 1, NULL)) AS num9,
|
||||||
|
COUNT(IF(tower_progress >= 10, 1, NULL)) AS num10,
|
||||||
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>
|
||||||
|
|
@ -194,50 +179,20 @@
|
||||||
<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 tt.id,
|
SELECT id,
|
||||||
<if test="type == 4">
|
tower_name AS towerName,
|
||||||
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,
|
||||||
tt.sort
|
sort,
|
||||||
FROM tb_tower tt
|
tower_progress AS towerProgress
|
||||||
<if test="type == 4">
|
FROM tb_tower WHERE pro_id = #{id} AND tower_progress = #{type} - 1 AND is_actvice = '1'
|
||||||
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 tt.id,
|
SELECT id,
|
||||||
<if test="type == 4">
|
tower_name AS towerName,
|
||||||
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,
|
||||||
tt.sort
|
sort,
|
||||||
FROM tb_tower tt
|
tower_progress AS towerProgress
|
||||||
<if test="type == 4">
|
FROM tb_tower WHERE pro_id = #{id} AND tower_progress >= #{type} AND is_actvice = '1'
|
||||||
LEFT JOIN tb_tower_pouring ttp ON tt.id = ttp.tower_id AND tt.tower_progress >= #{type} - 1
|
) A ORDER BY sort
|
||||||
</if>
|
|
||||||
WHERE tt.pro_id = #{id} AND tt.is_actvice = '1'
|
|
||||||
<if test="type != 4">
|
|
||||||
AND tt.tower_progress >= #{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">
|
||||||
|
|
@ -270,4 +225,14 @@
|
||||||
GROUP BY ttp.tower_id
|
GROUP BY ttp.tower_id
|
||||||
HAVING COUNT(DISTINCT ttp.leg) = 4
|
HAVING COUNT(DISTINCT ttp.leg) = 4
|
||||||
</select>
|
</select>
|
||||||
|
<!--查询杆塔工序进度-->
|
||||||
|
<select id="countTowerProgress" resultType="java.lang.Long">
|
||||||
|
SELECT COUNT(*)
|
||||||
|
FROM tb_tower
|
||||||
|
WHERE pro_id = #{proId} AND is_actvice = '1'
|
||||||
|
UNION ALL
|
||||||
|
SELECT IFNULL(SUM(tower_progress),0)
|
||||||
|
FROM tb_tower
|
||||||
|
WHERE pro_id = #{proId} AND is_actvice = '1'
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
|
||||||
|
|
@ -119,6 +119,10 @@ body {
|
||||||
color: #1afa29;
|
color: #1afa29;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.num-box:nth-child(11) > p:nth-child(2) {
|
||||||
|
color: #7dc5eb;
|
||||||
|
}
|
||||||
|
|
||||||
.layui-tab-brief > .layui-tab-title .layui-this {
|
.layui-tab-brief > .layui-tab-title .layui-this {
|
||||||
color: #409eff;
|
color: #409eff;
|
||||||
}
|
}
|
||||||
|
|
@ -188,7 +192,7 @@ body {
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tower-info {
|
.tower-info,.tower-progress {
|
||||||
min-width: 70px;
|
min-width: 70px;
|
||||||
height: 40px;
|
height: 40px;
|
||||||
margin: 10px;
|
margin: 10px;
|
||||||
|
|
@ -198,7 +202,7 @@ body {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tower-info p{
|
.tower-info p,.tower-progress p{
|
||||||
padding: 0 5px;
|
padding: 0 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -237,3 +241,19 @@ a:focus {
|
||||||
.layui-tab-item {
|
.layui-tab-item {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.box-title{
|
||||||
|
width: 100%;
|
||||||
|
height: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tower-progress-box{
|
||||||
|
width: 100%;
|
||||||
|
height: 60px;
|
||||||
|
justify-content: start;
|
||||||
|
}
|
||||||
|
|
||||||
|
.box-title p{
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 18px;
|
||||||
|
}
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 399 B |
|
|
@ -0,0 +1,79 @@
|
||||||
|
let form, layer, element, table, tableIns;
|
||||||
|
let objParams = {},checkType = 1;
|
||||||
|
|
||||||
|
function setParams(obj) {
|
||||||
|
objParams = JSON.parse(obj);
|
||||||
|
layui.use(['form', 'layer', 'element', 'table'], function () {
|
||||||
|
form = layui.form;
|
||||||
|
layer = layui.layer;
|
||||||
|
table = layui.table;
|
||||||
|
element = layui.element;
|
||||||
|
getBackGxData();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
// 工序进度
|
||||||
|
let towerProgressList = [{name:'协调完成',value:1},{name:'基础开挖',value:2},{name:'基础开挖完成',value:3},{name:'基础浇筑',value:4},{name:'基础浇筑完成',value:5},{name:'铁塔组立',value:6},{name:'铁塔组立完成',value:7},{name:'架线施工',value:8},{name:'架线施工完成',value:9},{name:'附件安装完成',value: 10}];
|
||||||
|
// 选中回退的杆塔
|
||||||
|
function checkData(that){
|
||||||
|
$('.tower-info').each(function(){
|
||||||
|
if ($(this).hasClass('choose')) {
|
||||||
|
$(this).removeClass('choose');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
$(that).addClass('choose');
|
||||||
|
let towerProgress = $(that).attr('towerProgress');
|
||||||
|
getTowerProgressName(towerProgress);
|
||||||
|
|
||||||
|
function getTowerProgressName(towerProgress) {
|
||||||
|
let filterList = towerProgressList.filter(item => {
|
||||||
|
if(item.value <= parseInt(towerProgress)){
|
||||||
|
return item;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
let html = '';
|
||||||
|
$.each(filterList, function (index, item) {
|
||||||
|
html += '<div class="tower-progress layout" name="'+item.name+'" value="' + item.value + '" onclick="checkData2(this)"><p>' + item.name + '</p></div>';
|
||||||
|
})
|
||||||
|
$('.tower-progress-box').empty().append(html);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 选中需要回退的工序
|
||||||
|
function checkData2(that){
|
||||||
|
$('.tower-progress').each(function(){
|
||||||
|
if ($(this).hasClass('choose')) {
|
||||||
|
$(this).removeClass('choose');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
$(that).addClass('choose');
|
||||||
|
}
|
||||||
|
|
||||||
|
function saveData2() {
|
||||||
|
let obj = {};
|
||||||
|
$('.tower-info.choose').each(function(){
|
||||||
|
obj = {
|
||||||
|
towerId: $(this).attr('dataId'),
|
||||||
|
towerName: $(this).attr('towerName')
|
||||||
|
}
|
||||||
|
});
|
||||||
|
$('.tower-progress.choose').each(function(){
|
||||||
|
obj.towerProgress = $(this).attr('value');
|
||||||
|
obj.name = $(this).attr('name');
|
||||||
|
});
|
||||||
|
console.error(obj)
|
||||||
|
if(!obj.towerId){
|
||||||
|
return layer.msg('请选择杆塔',{icon:7});
|
||||||
|
}
|
||||||
|
if(!obj.towerProgress){
|
||||||
|
return layer.msg('请选择回退工序',{icon:7});
|
||||||
|
}
|
||||||
|
layer.confirm('回退杆塔:'+obj.towerName+',工序:'+obj.name+',是否确认?', {title:'操作提示'},function(){
|
||||||
|
towerBackAjax(obj);
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 关闭页面
|
||||||
|
function closePage() {
|
||||||
|
let index = parent.layer.getFrameIndex(window.name); //先得到当前 iframe层的索引
|
||||||
|
parent.layer.close(index); //再执行关闭
|
||||||
|
}
|
||||||
|
|
@ -92,13 +92,13 @@ function initTable(dataList, limit, page) {
|
||||||
return (page - 1) * limit + d.LAY_NUM;
|
return (page - 1) * limit + d.LAY_NUM;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{field: "towerName", title: "杆塔", width: "14%", unresize: true, align: "center"},
|
{field: "towerName", title: "杆塔", width: "10%", unresize: true, align: "center"},
|
||||||
{title: "协调完成",width: "10%",unresize: true,align: "center",
|
{title: "协调完成",width: "8%",unresize: true,align: "center",
|
||||||
templet: function (d) {
|
templet: function (d) {
|
||||||
return setTowerProgress(d.towerProgress,1);
|
return setTowerProgress(d.towerProgress,1);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{title: "基础开挖",width: "9%",unresize: true,align: "center",
|
{title: "基础开挖",width: "8%",unresize: true,align: "center",
|
||||||
templet: function (d) {
|
templet: function (d) {
|
||||||
return setTowerProgress(d.towerProgress,2);
|
return setTowerProgress(d.towerProgress,2);
|
||||||
}
|
}
|
||||||
|
|
@ -108,7 +108,7 @@ function initTable(dataList, limit, page) {
|
||||||
return setTowerProgress(d.towerProgress,3);
|
return setTowerProgress(d.towerProgress,3);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{title: "基础浇筑",width: "9%",unresize: true,align: "center",
|
{title: "基础浇筑",width: "8%",unresize: true,align: "center",
|
||||||
templet: function (d) {
|
templet: function (d) {
|
||||||
return setTowerProgress(d.towerProgress,4);
|
return setTowerProgress(d.towerProgress,4);
|
||||||
}
|
}
|
||||||
|
|
@ -118,7 +118,7 @@ function initTable(dataList, limit, page) {
|
||||||
return setTowerProgress(d.towerProgress,5);
|
return setTowerProgress(d.towerProgress,5);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{title: "铁塔组立",width: "9%",unresize: true,align: "center",
|
{title: "铁塔组立",width: "8%",unresize: true,align: "center",
|
||||||
templet: function (d) {
|
templet: function (d) {
|
||||||
return setTowerProgress(d.towerProgress,6);
|
return setTowerProgress(d.towerProgress,6);
|
||||||
}
|
}
|
||||||
|
|
@ -128,16 +128,21 @@ function initTable(dataList, limit, page) {
|
||||||
return setTowerProgress(d.towerProgress,7);
|
return setTowerProgress(d.towerProgress,7);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{title: "架线施工完成",width: "9%",unresize: true,align: "center",
|
{title: "架线施工",width: "9%",unresize: true,align: "center",
|
||||||
templet: function (d) {
|
templet: function (d) {
|
||||||
return setTowerProgress(d.towerProgress,8);
|
return setTowerProgress(d.towerProgress,8);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{title: "附件安装完成",width: "9%",unresize: true,align: "center",
|
{title: "架线施工完成",width: "9%",unresize: true,align: "center",
|
||||||
templet: function (d) {
|
templet: function (d) {
|
||||||
return setTowerProgress(d.towerProgress,9);
|
return setTowerProgress(d.towerProgress,9);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{title: "附件安装完成",width: "9%",unresize: true,align: "center",
|
||||||
|
templet: function (d) {
|
||||||
|
return setTowerProgress(d.towerProgress,10);
|
||||||
|
}
|
||||||
|
},
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
done: function (res, curr, count) {
|
done: function (res, curr, count) {
|
||||||
|
|
@ -200,6 +205,8 @@ function setTowerProgress(value,type){
|
||||||
html = '<img src="../../img/synthesisQuery/num8.png" alt="">'
|
html = '<img src="../../img/synthesisQuery/num8.png" alt="">'
|
||||||
}else if(value >= 9 && type === 9){
|
}else if(value >= 9 && type === 9){
|
||||||
html = '<img src="../../img/synthesisQuery/num9.png" alt="">'
|
html = '<img src="../../img/synthesisQuery/num9.png" alt="">'
|
||||||
|
}else if(value >= 10 && type === 10){
|
||||||
|
html = '<img src="../../img/synthesisQuery/num10.png" alt="">'
|
||||||
}else {
|
}else {
|
||||||
html = '';
|
html = '';
|
||||||
}
|
}
|
||||||
|
|
@ -211,6 +218,10 @@ function updatePro(){
|
||||||
openIframeByParamObj("updatePro", "更新项目", "./updateProForm.html", "92%", "95%", objParams,'updatePro');
|
openIframeByParamObj("updatePro", "更新项目", "./updateProForm.html", "92%", "95%", objParams,'updatePro');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function backGx(){
|
||||||
|
openIframeByParamObj("updatePro", "取消回退", "./backGxForm.html", "92%", "95%", objParams,'updatePro');
|
||||||
|
}
|
||||||
|
|
||||||
function reloadData(){
|
function reloadData(){
|
||||||
if(checkType === '1'){
|
if(checkType === '1'){
|
||||||
initSetProData();
|
initSetProData();
|
||||||
|
|
|
||||||
|
|
@ -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 <= 9; i++) {
|
for (let i = 1; i <= 10; i++) {
|
||||||
$('#num' + i).html(obj['num' + i]);
|
$('#num' + i).html(obj['num' + i]);
|
||||||
}
|
}
|
||||||
element.render();
|
element.render();
|
||||||
|
|
@ -135,7 +135,7 @@ 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 <= 9; i++) {
|
for (let i = 1; i <= 10; i++) {
|
||||||
$('#num' + i).html(obj['num' + i]);
|
$('#num' + i).html(obj['num' + i]);
|
||||||
}
|
}
|
||||||
let html = '';
|
let html = '';
|
||||||
|
|
@ -181,8 +181,10 @@ function chooseData(that) {
|
||||||
} else if (checkType === 7) {
|
} else if (checkType === 7) {
|
||||||
return towerName + '-' + '铁塔组立完成;';
|
return towerName + '-' + '铁塔组立完成;';
|
||||||
} else if (checkType === 8) {
|
} else if (checkType === 8) {
|
||||||
|
return towerName + '-' + '架线施工;';
|
||||||
|
}else if (checkType === 9) {
|
||||||
return towerName + '-' + '架线施工完成;';
|
return towerName + '-' + '架线施工完成;';
|
||||||
} else if (checkType === 9) {
|
} else if (checkType === 10) {
|
||||||
return towerName + '-' + '附件安装完成;';
|
return towerName + '-' + '附件安装完成;';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -221,3 +223,68 @@ function saveData(data, towers, towerNames) {
|
||||||
error(xhr)
|
error(xhr)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**取消回退*/
|
||||||
|
function getBackGxData() {
|
||||||
|
let url = dataUrl + "/backstage/proProgress/getGxData"
|
||||||
|
let obj = {
|
||||||
|
id: objParams.id,
|
||||||
|
type: 0
|
||||||
|
}
|
||||||
|
let params = {
|
||||||
|
encryptedData: encryptCBC(JSON.stringify(obj))
|
||||||
|
}
|
||||||
|
let loadingMsg = layer.msg("数据加载中,请稍候...", {icon: 16, scrollbar: false, time: 0,});
|
||||||
|
ajaxRequest(url, "POST", params, true, function () {
|
||||||
|
}, function (result) {
|
||||||
|
layer.close(loadingMsg);
|
||||||
|
if (result.status === 200) {
|
||||||
|
setData(result.data);
|
||||||
|
} else {
|
||||||
|
layer.msg(result.msg, {icon: 2})
|
||||||
|
}
|
||||||
|
}, function (xhr) {
|
||||||
|
layer.close(loadingMsg);
|
||||||
|
error(xhr)
|
||||||
|
});
|
||||||
|
|
||||||
|
function setData(data) {
|
||||||
|
let list = data.list;
|
||||||
|
let html = '';
|
||||||
|
$.each(list, function (index, item) {
|
||||||
|
html += '<div class="tower-info layout" dataId="' + item.id + '" towerName="' + item.towerName + '" towerProgress="'+item.towerProgress+'" onclick="checkData(this)"><p>' + item.towerName + '</p></div>';
|
||||||
|
})
|
||||||
|
$('.tower-box').empty().append(html);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 杆塔回退
|
||||||
|
function towerBackAjax(obj) {
|
||||||
|
obj.proId = objParams.id;
|
||||||
|
let url = dataUrl + "/backstage/proProgress/towerGxBack";
|
||||||
|
let paramsObj = obj;
|
||||||
|
let params = {
|
||||||
|
encryptedData: encryptCBC(JSON.stringify(paramsObj))
|
||||||
|
}
|
||||||
|
let loadingMsg = layer.msg('数据上传中,请稍候...', {icon: 16, scrollbar: false, time: 0});
|
||||||
|
ajaxRequest(url, "POST", params, true, function () {
|
||||||
|
$('.save').addClass("layui-btn-disabled").attr("disabled", true);
|
||||||
|
$('.cancel').addClass("layui-btn-disabled").attr("disabled", true);
|
||||||
|
}, function (result) {
|
||||||
|
layer.close(loadingMsg); // 关闭提示层
|
||||||
|
$('.save').removeClass("layui-btn-disabled").attr("disabled", false);
|
||||||
|
$('.cancel').removeClass("layui-btn-disabled").attr("disabled", false);
|
||||||
|
if (result.code === 200) {
|
||||||
|
parent.layer.msg(result.msg, {icon: 1});
|
||||||
|
getBackGxData();
|
||||||
|
$('.tower-progress-box').empty();
|
||||||
|
} else {
|
||||||
|
layer.msg(result.msg, {icon: 2})
|
||||||
|
}
|
||||||
|
}, function (xhr) {
|
||||||
|
layer.close(loadingMsg); // 关闭提示层
|
||||||
|
$('.save').removeClass("layui-btn-disabled").attr("disabled", false);
|
||||||
|
$('.cancel').removeClass("layui-btn-disabled").attr("disabled", false);
|
||||||
|
error(xhr)
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,61 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<link rel="stylesheet" href="../../js/layui-v2.9.14/layui/css/layui.css">
|
||||||
|
<link rel="stylesheet" href="../../css/font.css">
|
||||||
|
<link rel="stylesheet" href="../../css/synthesisQuery/proProgressUpdateDetail.css">
|
||||||
|
<script src="../../js/libs/jquery-3.7.0.min.js" charset="UTF-8" type="text/javascript"></script>
|
||||||
|
<script src="../../js/layui-v2.9.14/layui/layui.js" charset="UTF-8" type="text/javascript"></script>
|
||||||
|
<script src="../../js/publicJs.js"></script>
|
||||||
|
<script src="../../js/commonUtils.js"></script>
|
||||||
|
<script src="../../js/openIframe.js"></script>
|
||||||
|
<script src="../../js/my/aes.js"></script>
|
||||||
|
<script src="../../js/ajaxRequest.js"></script>
|
||||||
|
<title>更新项目</title>
|
||||||
|
</head>
|
||||||
|
<style>
|
||||||
|
#data-box {
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#data-box-content {
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.tower-box {
|
||||||
|
max-height: calc(100% - 340px);
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
|
<body>
|
||||||
|
<div id="main-box">
|
||||||
|
<div id="data-box">
|
||||||
|
<div class="layui-tab layui-tab-brief" style="height: 98%;" lay-filter="demo-filter-tab">
|
||||||
|
<div class="layui-tab-content" style="height: calc(100% - 60px);" id="layui-tab-content">
|
||||||
|
<div class="layui-tab-item layui-show">
|
||||||
|
<div class="data-box-content" id="data-box-content">
|
||||||
|
<div class="box-title">
|
||||||
|
<p>杆塔:</p>
|
||||||
|
</div>
|
||||||
|
<div class="tower-box layout">
|
||||||
|
</div>
|
||||||
|
<div class="box-title">
|
||||||
|
<p>当前杆塔已完成工序:</p>
|
||||||
|
</div>
|
||||||
|
<div class="tower-progress-box layout">
|
||||||
|
</div>
|
||||||
|
<div class="btn-box">
|
||||||
|
<button class="layui-btn layui-btn-norma save" onclick="saveData2()">回退</button>
|
||||||
|
<button class="layui-btn layui-btn-primary cancel" onclick="closePage()">取消</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
<script src="../../js/synthesisQuery/proProgressUpdateDetailAjax.js" charset="UTF-8" type="text/javascript"></script>
|
||||||
|
<script src="../../js/synthesisQuery/backGxForm.js" charset="UTF-8" type="text/javascript"></script>
|
||||||
|
</html>
|
||||||
|
|
@ -29,6 +29,9 @@
|
||||||
<button type="button" class="layui-btn layui-bg-blue no-print" onclick="updatePro()"><i
|
<button type="button" class="layui-btn layui-bg-blue no-print" onclick="updatePro()"><i
|
||||||
class="layui-icon layui-icon-edit"></i>更新项目
|
class="layui-icon layui-icon-edit"></i>更新项目
|
||||||
</button>
|
</button>
|
||||||
|
<button type="button" class="layui-btn layui-bg-blue no-print" onclick="backGx()"><i
|
||||||
|
class="layui-icon layui-icon-return"></i>取消回退
|
||||||
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="pro-basic-detail-box" class="layout">
|
<div id="pro-basic-detail-box" class="layout">
|
||||||
|
|
@ -107,13 +110,17 @@
|
||||||
<p id="num7">0</p>
|
<p id="num7">0</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="layout num-box">
|
<div class="layout num-box">
|
||||||
<p>架线施工完成</p>
|
<p>架线施工</p>
|
||||||
<p id="num8">0</p>
|
<p id="num8">0</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="layout num-box">
|
<div class="layout num-box">
|
||||||
<p>附件安装完成</p>
|
<p>架线施工完成</p>
|
||||||
<p id="num9">0</p>
|
<p id="num9">0</p>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="layout num-box">
|
||||||
|
<p>附件安装完成</p>
|
||||||
|
<p id="num10">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>
|
||||||
|
|
|
||||||
|
|
@ -37,8 +37,9 @@
|
||||||
<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="8">架线施工</li>
|
||||||
<li value="9">附件安装完成</li>
|
<li value="9">架线施工完成</li>
|
||||||
|
<li value="10">附件安装完成</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">
|
||||||
|
|
@ -77,13 +78,18 @@
|
||||||
<p id="num7">0</p>
|
<p id="num7">0</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="layout num-box">
|
<div class="layout num-box">
|
||||||
<p>架线施工完成</p>
|
<p>架线施工</p>
|
||||||
<p id="num8">0</p>
|
<p id="num8">0</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="layout num-box">
|
<div class="layout num-box">
|
||||||
<p>附件安装完成</p>
|
<p>架线施工完成</p>
|
||||||
<p id="num9">0</p>
|
<p id="num9">0</p>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="layout num-box">
|
||||||
|
<p>附件安装完成</p>
|
||||||
|
<p id="num10">0</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="tower-box layout">
|
<div class="tower-box layout">
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue