From 7165632fcb7b3b782b8959cfe1e7e1c51872e228 Mon Sep 17 00:00:00 2001
From: Fancy <Fancy.fx@outlook.com>
Date: 星期二, 25 六月 2024 16:34:18 +0800
Subject: [PATCH] station used list and delete

---
 pms-parent/pms-web-station/src/main/java/com/dy/pmsStation/workOrder/QueryVo.java          |    3 
 pms-parent/pms-web-product/src/main/java/com/dy/pmsProduct/workStation/WorkStationSv.java  |   65 ++++++++++
 pms-parent/pms-web-product/src/main/java/com/dy/pmsProduct/workStation/QueryVo.java        |   43 +++++++
 pms-parent/pms-global/src/main/resources/mapper/StaAssemblyWorkLastMapper.xml              |  147 ++++++++++++++++++++++++
 pms-parent/pms-web-product/src/main/java/com/dy/pmsProduct/workStation/WorkStationCtl.java |   56 +++++++++
 pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/daoSta/StaAssemblyWorkLastMapper.java |    5 
 6 files changed, 316 insertions(+), 3 deletions(-)

diff --git a/pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/daoSta/StaAssemblyWorkLastMapper.java b/pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/daoSta/StaAssemblyWorkLastMapper.java
index 82d532f..b228f00 100644
--- a/pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/daoSta/StaAssemblyWorkLastMapper.java
+++ b/pms-parent/pms-global/src/main/java/com/dy/pmsGlobal/daoSta/StaAssemblyWorkLastMapper.java
@@ -5,6 +5,7 @@
 import org.apache.ibatis.annotations.Options;
 
 import java.util.List;
+import java.util.Map;
 
 /**
 * @author User
@@ -29,4 +30,8 @@
     int updateByPrimaryKey(StaAssemblyWorkLast record);
 
     List<StaAssemblyWorkLast> selectList(StaAssemblyWorkLast record);
+
+    Long selectSomeCount(Map<String, Object> params);
+
+    List<StaAssemblyWorkLast> selectSome(Map<String, Object> params);
 }
diff --git a/pms-parent/pms-global/src/main/resources/mapper/StaAssemblyWorkLastMapper.xml b/pms-parent/pms-global/src/main/resources/mapper/StaAssemblyWorkLastMapper.xml
index fc2e21a..44d81c0 100644
--- a/pms-parent/pms-global/src/main/resources/mapper/StaAssemblyWorkLastMapper.xml
+++ b/pms-parent/pms-global/src/main/resources/mapper/StaAssemblyWorkLastMapper.xml
@@ -37,7 +37,20 @@
         node_id,dt,status,
         start_time,end_time,assistants
     </sql>
-
+    <sql id="part_Column_List">
+        ${alias}.id,
+        ${alias}.user_id,
+        ${alias}.line_id,
+        ${alias}.station_id,
+        ${alias}.plan_id,
+        ${alias}.process_id,
+        ${alias}.node_id,
+        ${alias}.dt,
+        ${alias}.status,
+        ${alias}.start_time,
+        ${alias}.end_time,
+        ${alias}.assistants
+    </sql>
     <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
         select
         <include refid="Base_Column_List" />
@@ -98,7 +111,7 @@
             <if test="startTime != null and startTime !=''">
                 and start_time = #{startTime,jdbcType=TIMESTAMP},
             </if>
-            <if test="endTime != null and userId !=''">
+            <if test="endTime != null and endTime !=''">
                 and  end_time = #{endTime,jdbcType=TIMESTAMP},
             </if>
             <if test="assistants != null and assistants !=''">
@@ -107,6 +120,136 @@
         </where>
         order by id desc
     </select>
+    <select id="selectSome" resultMap="BaseResultMap">
+        select
+        <include refid="part_Column_List" >
+            <property name="alias" value="l"/>
+        </include>
+        from sta_assembly_work_last l
+        left join ba_user u on l.user_id = u.id
+        left join plt_station s on l.station_id = s.id
+        left join pr_assembly_plan p on l.plan_id = p.id
+        left join pr_production_process pp on l.process_id = pp.id
+        left join pr_production_node n on l.node_id = n.id
+        left join plt_production_line ll on l.line_id = ll.id
+        <where>
+            <if test="userName != null and userName != ''">
+                and u.name like concat('%', #{userName}, '%')
+            </if>
+            <if test="stationName != null and stationName != '' ">
+                and s.name like concat('%', #{stationName}, '%')
+            </if>
+            <if test="planName != null and planName != '' ">
+                and  p.name like concat('%', #{planName}, '%')
+            </if>
+            <if test="processName != null and processName != '' ">
+                and pp.name like concat('%', #{processName}, '%')
+            </if>
+            <if test="nodeName != null and nodeName != '' ">
+                and n.content like concat('%', #{nodeName}, '%')
+            </if>
+            <if test="lineName != null and lineName != '' ">
+                and ll.name like concat('%', #{lineName}, '%')
+            </if>
+            <if test="startTime != null and startTime !=''">
+                and l.start_time <![CDATA[ > ]]> #{startTime}
+            </if>
+            <if test="endTime != null and endTime !=''">
+                and l.start_time <![CDATA[ < ]]> #{endTime}
+            </if>
+            <if test="userId != null and userId !=''">
+                and l.user_id = #{userId,jdbcType=BIGINT}
+            </if>
+            <if test="lineId != null and lineId !=''">
+                and l.line_id = #{lineId,jdbcType=BIGINT}
+            </if>
+            <if test="stationId != null and stationId !=''">
+                and l.station_id = #{stationId,jdbcType=BIGINT}
+            </if>
+            <if test="planId != null and planId !=''">
+                and l.plan_id = #{planId,jdbcType=BIGINT}
+            </if>
+            <if test="processId != null and processId !=''">
+                and l.process_id = #{processId,jdbcType=BIGINT}
+            </if>
+            <if test="nodeId != null and nodeId !=''">
+                and l.node_id = #{nodeId,jdbcType=BIGINT}
+            </if>
+            <if test="status != null and status !=''">
+                and l.status = #{status,jdbcType=TINYINT}
+            </if>
+            <if test="assistants != null and assistants !=''">
+                and l.assistants = #{assistants,jdbcType=VARCHAR}
+            </if>
+        </where>
+        order by id desc
+        <trim prefix="limit " >
+            <if test="start != null and count != null">
+                #{start}, #{count}
+            </if>
+        </trim>
+    </select>
+
+    <select id="selectSomeCount" resultType="java.lang.Long">
+        select count(1)
+        from sta_assembly_work_last l
+        left join ba_user u on l.user_id = u.id
+        left join plt_station s on l.station_id = s.id
+        left join pr_assembly_plan p on l.plan_id = p.id
+        left join pr_production_process pp on l.process_id = pp.id
+        left join pr_production_node n on l.node_id = n.id
+        left join plt_production_line ll on l.line_id = ll.id
+        <where>
+            <if test="userName != null and userName != ''">
+                and u.name like concat('%', #{userName}, '%')
+            </if>
+            <if test="stationName != null and stationName != '' ">
+                and s.name like concat('%', #{stationName}, '%')
+            </if>
+            <if test="planName != null and planName != '' ">
+                and  p.name like concat('%', #{planName}, '%')
+            </if>
+            <if test="processName != null and processName != '' ">
+                and pp.name like concat('%', #{processName}, '%')
+            </if>
+            <if test="nodeName != null and nodeName != '' ">
+                and n.content like concat('%', #{nodeName}, '%')
+            </if>
+            <if test="lineName != null and lineName != '' ">
+                and ll.name like concat('%', #{lineName}, '%')
+            </if>
+            <if test="startTime != null and startTime !=''">
+                and l.start_time <![CDATA[ > ]]> #{startTime,jdbcType=TIMESTAMP}
+            </if>
+            <if test="endTime != null and endTime !=''">
+                and l.start_time <![CDATA[ < ]]> #{endTime,jdbcType=TIMESTAMP}
+            </if>
+            <if test="userId != null and userId !=''">
+                and l.user_id = #{userId,jdbcType=BIGINT}
+            </if>
+            <if test="lineId != null and lineId !=''">
+                and l.line_id = #{lineId,jdbcType=BIGINT}
+            </if>
+            <if test="stationId != null and stationId !=''">
+                and l.station_id = #{stationId,jdbcType=BIGINT}
+            </if>
+            <if test="planId != null and planId !=''">
+                and l.plan_id = #{planId,jdbcType=BIGINT}
+            </if>
+            <if test="processId != null and processId !=''">
+                and l.process_id = #{processId,jdbcType=BIGINT}
+            </if>
+            <if test="nodeId != null and nodeId !=''">
+                and l.node_id = #{nodeId,jdbcType=BIGINT}
+            </if>
+            <if test="status != null and status !=''">
+                and l.status = #{status,jdbcType=TINYINT}
+            </if>
+            <if test="assistants != null and assistants !=''">
+                and l.assistants = #{assistants,jdbcType=VARCHAR}
+            </if>
+        </where>
+    </select>
 
     <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
         delete from sta_assembly_work_last
diff --git a/pms-parent/pms-web-product/src/main/java/com/dy/pmsProduct/workStation/QueryVo.java b/pms-parent/pms-web-product/src/main/java/com/dy/pmsProduct/workStation/QueryVo.java
new file mode 100644
index 0000000..5ac6c54
--- /dev/null
+++ b/pms-parent/pms-web-product/src/main/java/com/dy/pmsProduct/workStation/QueryVo.java
@@ -0,0 +1,43 @@
+package com.dy.pmsProduct.workStation;
+
+import com.alibaba.fastjson2.annotation.JSONField;
+import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.dy.common.webUtil.QueryConditionVo;
+import jakarta.validation.constraints.NotNull;
+import lombok.*;
+
+import java.util.Date;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@ToString(callSuper = true)
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+public class QueryVo extends QueryConditionVo {
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    public Long id;
+    public String userId;
+    public String userName;
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    public Long lineId;
+    public String lineName;
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    public Long stationId;
+    public String stationName;
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    public Long planId;
+    public String planName;
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    public Long processId;
+    public String processName;
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    public Long nodeId;
+    public String nodeName;
+    public Date dt;
+    public Integer status;
+    public String startTime;
+    public String endTime;
+    public String assistants;
+}
diff --git a/pms-parent/pms-web-product/src/main/java/com/dy/pmsProduct/workStation/WorkStationCtl.java b/pms-parent/pms-web-product/src/main/java/com/dy/pmsProduct/workStation/WorkStationCtl.java
new file mode 100644
index 0000000..2acc575
--- /dev/null
+++ b/pms-parent/pms-web-product/src/main/java/com/dy/pmsProduct/workStation/WorkStationCtl.java
@@ -0,0 +1,56 @@
+package com.dy.pmsProduct.workStation;
+
+import com.dy.common.aop.SsoPowerAop;
+import com.dy.common.webUtil.BaseResponse;
+import com.dy.common.webUtil.BaseResponseUtils;
+import com.dy.common.webUtil.QueryResultVo;
+import com.dy.pmsGlobal.aop.Log;
+import com.dy.pmsGlobal.pojoSta.StaAssemblyWorkLast;
+import com.dy.pmsProduct.workStation.QueryVo;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+/**
+ * 宸ョ珯浣跨敤鎯呭喌
+ */
+@Slf4j
+@RestController
+@RequestMapping(path="workStation")
+public class WorkStationCtl {
+    private WorkStationSv sv;
+    @Autowired
+    public void setSv(WorkStationSv workStationSv){
+        sv = workStationSv;
+    }
+    /**
+     * 鍒嗛〉鏌ヨ
+     * @param vo
+     * @return
+     */
+    @PostMapping(path="some")
+    @SsoPowerAop(power = "-1")
+    @Log("鍒嗛〉鏌ヨ宸ョ珯浣跨敤鎯呭喌")
+    public BaseResponse<QueryResultVo<List<StaAssemblyWorkLast>>> some(@RequestBody QueryVo vo){
+        QueryResultVo<List<StaAssemblyWorkLast>> list = sv.selectSome(vo) ;
+        return BaseResponseUtils.buildSuccess(list);
+    }
+    /**
+     * 鍒犻櫎姝e湪琚娇鐢ㄧ殑宸ョ珯淇℃伅,灏嗗伐绔欓棽缃�
+     * @param id
+     * @return
+     */
+    @GetMapping(path="delete")
+    @SsoPowerAop(power = "10300001")
+    @Log("鍒犻櫎浜у搧淇℃伅")
+    public BaseResponse<Boolean> delete(String id){
+        int count = sv.delete(Long.parseLong(id));
+        if (count <= 0) {
+            return BaseResponseUtils.buildFail("鏁版嵁搴撳瓨鍌ㄥけ璐�");
+        } else {
+            return BaseResponseUtils.buildSuccess(true);
+        }
+    }
+}
\ No newline at end of file
diff --git a/pms-parent/pms-web-product/src/main/java/com/dy/pmsProduct/workStation/WorkStationSv.java b/pms-parent/pms-web-product/src/main/java/com/dy/pmsProduct/workStation/WorkStationSv.java
new file mode 100644
index 0000000..40e67b6
--- /dev/null
+++ b/pms-parent/pms-web-product/src/main/java/com/dy/pmsProduct/workStation/WorkStationSv.java
@@ -0,0 +1,65 @@
+package com.dy.pmsProduct.workStation;
+
+import com.dy.common.webUtil.QueryResultVo;
+import com.dy.pmsGlobal.daoSta.StaAssemblyWorkHistoryMapper;
+import com.dy.pmsGlobal.daoSta.StaAssemblyWorkLastMapper;
+import com.dy.pmsGlobal.pojoSta.StaAssemblyWorkHistory;
+import com.dy.pmsGlobal.pojoSta.StaAssemblyWorkLast;
+import com.dy.pmsProduct.workStation.QueryVo;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.dubbo.common.utils.PojoUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+@Slf4j
+@Service
+public class WorkStationSv {
+    private StaAssemblyWorkLastMapper assemblyWorkLastDao;
+    private StaAssemblyWorkHistoryMapper assemblyWorkHistoryDao;
+    @Autowired
+    private void setStaAssemblyWorkHistoryDao(StaAssemblyWorkHistoryMapper assemblyWorkHistoryDao){
+        this.assemblyWorkHistoryDao = assemblyWorkHistoryDao;
+    }
+    @Autowired
+    private void setStaAssemblyWorkLastDao(StaAssemblyWorkLastMapper assemblyWorkLastDao){
+        this.assemblyWorkLastDao = assemblyWorkLastDao;
+    }
+    public QueryResultVo<List<StaAssemblyWorkLast>> selectSome(QueryVo queryVo){
+        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo);
+
+        //鏌ヨ绗﹀悎鏉′欢鐨勮褰曟�绘暟
+        Long itemTotal = assemblyWorkLastDao.selectSomeCount(params);
+
+        QueryResultVo<List<StaAssemblyWorkLast>> rsVo = new QueryResultVo<>(queryVo.pageSize, queryVo.pageCurr) ;
+        //璁$畻鍒嗛〉绛変俊鎭�
+        rsVo.calculateAndSet(itemTotal, params);
+
+        //鏌ヨ绗﹀悎鏉′欢鐨勮褰�
+        rsVo.obj = assemblyWorkLastDao.selectSome(params);
+        return rsVo ;
+    }
+    @Transactional
+    public int delete(Long id){
+        //鎵惧埌鐧诲綍璁板綍
+        StaAssemblyWorkLast workLast = assemblyWorkLastDao.selectByPrimaryKey(id);
+        if(workLast == null){
+            throw new RuntimeException("绯荤粺涓病鏈夎鏉$櫥褰曚俊鎭�,璇峰埛鏂伴〉闈�");
+        }
+        //鏇存柊鐧诲綍璁板綍
+        workLast.setStatus(2);
+        workLast.setEndTime(new Date());
+        // 淇濆瓨history
+        StaAssemblyWorkHistory history = new StaAssemblyWorkHistory();
+        BeanUtils.copyProperties(workLast,history);
+        history.setId(null);
+        int count = assemblyWorkHistoryDao.insertSelective(history);
+        //鍒犻櫎last
+        assemblyWorkLastDao.deleteByPrimaryKey(id);
+        return count;
+    }
+}
\ No newline at end of file
diff --git a/pms-parent/pms-web-station/src/main/java/com/dy/pmsStation/workOrder/QueryVo.java b/pms-parent/pms-web-station/src/main/java/com/dy/pmsStation/workOrder/QueryVo.java
index d5abea5..14bcea8 100644
--- a/pms-parent/pms-web-station/src/main/java/com/dy/pmsStation/workOrder/QueryVo.java
+++ b/pms-parent/pms-web-station/src/main/java/com/dy/pmsStation/workOrder/QueryVo.java
@@ -32,7 +32,8 @@
      * 宸ョ珯瀹炰綋缂栧彿
      */
     @NotNull(message="[宸ョ珯瀹炰綋缂栧彿]涓嶈兘涓虹┖")
-    public String stationId;
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    public Long stationId;
     /**
      * 缁勮鐢熶骇浠诲姟瀹炰綋缂栧彿
      */

--
Gitblit v1.8.0