Selaa lähdekoodia

MES同步功能开发

wukai 1 kuukausi sitten
vanhempi
commit
69723cc3e5

+ 62 - 0
jjt-biz/src/main/java/com/jjt/biz/controller/ApiThirdController.java

@@ -0,0 +1,62 @@
+package com.jjt.biz.controller;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.jjt.biz.vo.KnittingEmpVO;
+import com.jjt.common.core.controller.BaseController;
+import com.jjt.common.core.domain.AjaxResult;
+import com.jjt.wkEmp.domain.TwinWkEmpSync;
+import com.jjt.wkEmp.service.ITwinWkEmpRotaService;
+import com.jjt.wkEmp.service.ITwinWkEmpSyncService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.CrossOrigin;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+/**
+ * 第三方数据接口
+ *
+ * @author wukai
+ */
+@Api(tags = "第三方数据接口")
+@RestController
+@Slf4j
+public class ApiThirdController extends BaseController {
+
+    @Resource
+    ITwinWkEmpSyncService syncService;
+
+    @Resource
+    ITwinWkEmpRotaService rotaService;
+
+    @ApiOperation("经编车间员工排班")
+    @PostMapping("/api/knitting/emp/schedule")
+    @CrossOrigin(origins = "*")
+    public AjaxResult empSchedule(@RequestBody KnittingEmpVO vo) {
+        TwinWkEmpSync sync = new TwinWkEmpSync();
+        Date s = new Date();
+        sync.setRecordTime(s);
+        sync.setStatus("N");
+        ObjectMapper objectMapper = new ObjectMapper();
+        try {
+            String jsonString = objectMapper.writeValueAsString(vo);
+            sync.setContent(jsonString);
+            syncService.insertTwinWkEmpSync(sync);
+            rotaService.sync(vo);
+            Date e = new Date();
+            long time = e.getTime() - s.getTime();
+            sync.setTime(time);
+            sync.setStatus("Y");
+            syncService.updateTwinWkEmpSync(sync);
+        } catch (Exception e) {
+            e.printStackTrace();
+            AjaxResult.error(e.getMessage());
+        }
+        return AjaxResult.success();
+    }
+}

+ 41 - 0
jjt-biz/src/main/java/com/jjt/biz/vo/KnittingEmpVO.java

@@ -0,0 +1,41 @@
+package com.jjt.biz.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 经编员工排班
+ *
+ * @author wukai
+ * @date 2025-01-18
+ */
+@ApiModel(value = "KnittingEmpVO", description = "经编员工排班")
+@Data
+public class KnittingEmpVO {
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("日期(yyyy-MM-dd)")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date date;
+    @ApiModelProperty("员工号")
+    private String id;
+    @ApiModelProperty("员工姓名")
+    private String name;
+    @ApiModelProperty("班组(A/B)")
+    private String team;
+    @ApiModelProperty("上班时间(yyyy-MM-dd HH:mm:ss)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date in;
+    @ApiModelProperty("下班时间(yyyy-MM-dd HH:mm:ss)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date out;
+    @ApiModelProperty("机台号")
+    private List<String> devices;
+}

+ 113 - 0
jjt-biz/src/main/java/com/jjt/wkEmp/controller/TwinWkEmpRotaController.java

@@ -0,0 +1,113 @@
+package com.jjt.wkEmp.controller;
+
+import java.util.List;
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.jjt.common.annotation.Log;
+import com.jjt.common.core.controller.BaseController;
+import com.jjt.common.core.domain.AjaxResult;
+import com.jjt.common.enums.BusinessType;
+import com.jjt.wkEmp.domain.TwinWkEmpRota;
+import com.jjt.wkEmp.service.ITwinWkEmpRotaService;
+import com.jjt.common.utils.poi.ExcelUtil;
+import com.jjt.common.core.page.TableDataInfo;
+
+/**
+ * 经编车间员工排班Controller
+ *
+ * @author wukai
+ * @date 2025-04-28
+ */
+@Api(tags="经编车间员工排班")
+@RestController
+@RequestMapping("/wkEmp/rota")
+public class TwinWkEmpRotaController extends BaseController{
+    @Resource
+    private ITwinWkEmpRotaService twinWkEmpRotaService;
+
+    /**
+     * 查询经编车间员工排班列表
+     */
+    @ApiOperation("查询经编车间员工排班列表")
+    //@PreAuthorize("@ss.hasPermi('wkEmp:rota:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(TwinWkEmpRota twinWkEmpRota)
+    {
+        startPage();
+        List<TwinWkEmpRota> list = twinWkEmpRotaService.selectTwinWkEmpRotaList(twinWkEmpRota);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出经编车间员工排班列表
+     */
+    @ApiOperation("导出经编车间员工排班列表")
+    //@PreAuthorize("@ss.hasPermi('wkEmp:rota:export')")
+    @Log(title = "经编车间员工排班", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, TwinWkEmpRota twinWkEmpRota)
+    {
+        List<TwinWkEmpRota> list = twinWkEmpRotaService.selectTwinWkEmpRotaList(twinWkEmpRota);
+        ExcelUtil<TwinWkEmpRota> util = new ExcelUtil<TwinWkEmpRota>(TwinWkEmpRota.class);
+        util.exportExcel(response, list, "经编车间员工排班数据");
+    }
+
+    /**
+     * 获取经编车间员工排班详细信息
+     */
+    @ApiOperation("获取经编车间员工排班详细信息")
+    //@PreAuthorize("@ss.hasPermi('wkEmp:rota:query')")
+    @GetMapping(value = "/{shiftId}")
+    public AjaxResult getInfo(@PathVariable("shiftId") Long shiftId)
+    {
+        return success(twinWkEmpRotaService.selectTwinWkEmpRotaByShiftId(shiftId));
+    }
+
+    /**
+     * 新增经编车间员工排班
+     */
+    @ApiOperation("新增经编车间员工排班")
+    //@PreAuthorize("@ss.hasPermi('wkEmp:rota:add')")
+    @Log(title = "经编车间员工排班", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody TwinWkEmpRota twinWkEmpRota)
+    {
+        return toAjax(twinWkEmpRotaService.insertTwinWkEmpRota(twinWkEmpRota));
+    }
+
+    /**
+     * 修改经编车间员工排班
+     */
+    @ApiOperation("修改经编车间员工排班")
+    //@PreAuthorize("@ss.hasPermi('wkEmp:rota:edit')")
+    @Log(title = "经编车间员工排班", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody TwinWkEmpRota twinWkEmpRota)
+    {
+        return toAjax(twinWkEmpRotaService.updateTwinWkEmpRota(twinWkEmpRota));
+    }
+
+    /**
+     * 删除经编车间员工排班
+     */
+    @ApiOperation("删除经编车间员工排班")
+    //@PreAuthorize("@ss.hasPermi('wkEmp:rota:remove')")
+    @Log(title = "经编车间员工排班", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{shiftIds}")
+    public AjaxResult remove(@PathVariable Long[] shiftIds)
+    {
+        return toAjax(twinWkEmpRotaService.deleteTwinWkEmpRotaByShiftIds(shiftIds));
+    }
+}

+ 106 - 0
jjt-biz/src/main/java/com/jjt/wkEmp/controller/TwinWkEmpSyncController.java

@@ -0,0 +1,106 @@
+package com.jjt.wkEmp.controller;
+
+import com.jjt.common.annotation.Log;
+import com.jjt.common.core.controller.BaseController;
+import com.jjt.common.core.domain.AjaxResult;
+import com.jjt.common.core.page.TableDataInfo;
+import com.jjt.common.enums.BusinessType;
+import com.jjt.common.utils.poi.ExcelUtil;
+import com.jjt.wkEmp.domain.TwinWkEmpSync;
+import com.jjt.wkEmp.service.ITwinWkEmpSyncService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 经编车间排班同步记录Controller
+ *
+ * @author wukai
+ * @date 2025-04-28
+ */
+@Api(tags = "经编车间排班同步记录")
+@RestController
+@RequestMapping("/wkEmp/sync")
+public class TwinWkEmpSyncController extends BaseController {
+    @Resource
+    private ITwinWkEmpSyncService twinWkEmpSyncService;
+
+    /**
+     * 查询经编车间排班同步记录列表
+     */
+    @ApiOperation("查询经编车间排班同步记录列表")
+    //@PreAuthorize("@ss.hasPermi('wkEmp:sync:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(TwinWkEmpSync twinWkEmpSync) {
+        startPage();
+        List<TwinWkEmpSync> list = twinWkEmpSyncService.selectTwinWkEmpSyncList(twinWkEmpSync);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出经编车间排班同步记录列表
+     */
+    @ApiOperation("导出经编车间排班同步记录列表")
+    //@PreAuthorize("@ss.hasPermi('wkEmp:sync:export')")
+    @Log(title = "经编车间排班同步记录", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, TwinWkEmpSync twinWkEmpSync) {
+        List<TwinWkEmpSync> list = twinWkEmpSyncService.selectTwinWkEmpSyncList(twinWkEmpSync);
+        ExcelUtil<TwinWkEmpSync> util = new ExcelUtil<TwinWkEmpSync>(TwinWkEmpSync.class);
+        util.exportExcel(response, list, "经编车间排班同步记录数据");
+    }
+
+    /**
+     * 获取经编车间排班同步记录详细信息
+     */
+    @ApiOperation("获取经编车间排班同步记录详细信息")
+    //@PreAuthorize("@ss.hasPermi('wkEmp:sync:query')")
+    @GetMapping(value = "/{syncId}")
+    public AjaxResult getInfo(@PathVariable("syncId") Long syncId) {
+        return success(twinWkEmpSyncService.selectTwinWkEmpSyncBySyncId(syncId));
+    }
+
+    /**
+     * 新增经编车间排班同步记录
+     */
+    @ApiOperation("新增经编车间排班同步记录")
+    //@PreAuthorize("@ss.hasPermi('wkEmp:sync:add')")
+    @Log(title = "经编车间排班同步记录", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody TwinWkEmpSync twinWkEmpSync) {
+        return toAjax(twinWkEmpSyncService.insertTwinWkEmpSync(twinWkEmpSync));
+    }
+    @ApiOperation("清空记录")
+    @PostMapping("/clean")
+    public AjaxResult clean() {
+        twinWkEmpSyncService.clean();
+        return success();
+    }
+
+
+    /**
+     * 修改经编车间排班同步记录
+     */
+    @ApiOperation("修改经编车间排班同步记录")
+    //@PreAuthorize("@ss.hasPermi('wkEmp:sync:edit')")
+    @Log(title = "经编车间排班同步记录", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody TwinWkEmpSync twinWkEmpSync) {
+        return toAjax(twinWkEmpSyncService.updateTwinWkEmpSync(twinWkEmpSync));
+    }
+
+    /**
+     * 删除经编车间排班同步记录
+     */
+    @ApiOperation("删除经编车间排班同步记录")
+    //@PreAuthorize("@ss.hasPermi('wkEmp:sync:remove')")
+    @Log(title = "经编车间排班同步记录", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{syncIds}")
+    public AjaxResult remove(@PathVariable Long[] syncIds) {
+        return toAjax(twinWkEmpSyncService.deleteTwinWkEmpSyncBySyncIds(syncIds));
+    }
+}

+ 78 - 0
jjt-biz/src/main/java/com/jjt/wkEmp/domain/TwinWkEmpRota.java

@@ -0,0 +1,78 @@
+package com.jjt.wkEmp.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.jjt.common.annotation.Excel;
+import com.jjt.common.core.domain.BaseEntity;
+
+/**
+ * 经编车间员工排班对象 TWIN_WK_EMP_ROTA
+ *
+ * @author wukai
+ * @date 2025-04-28
+ */
+@ApiModel(value = "TwinWkEmpRota", description = "经编车间员工排班")
+@Data
+public class TwinWkEmpRota extends BaseEntity{
+    private static final long serialVersionUID = 1L;
+
+    /** 班次ID */
+    @ApiModelProperty("班次ID")
+    @TableId
+    private Long shiftId;
+
+    /** 时间 */
+    @ApiModelProperty("时间")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date empDate;
+
+    /** 员工号 */
+    @ApiModelProperty("员工号")
+    @Excel(name = "员工号")
+    private String empId;
+
+    /** 员工姓名 */
+    @ApiModelProperty("员工姓名")
+    @Excel(name = "员工姓名")
+    private String empName;
+
+    /** 班组 */
+    @ApiModelProperty("班组")
+    @Excel(name = "班组")
+    private String empTeam;
+
+    /** 机台号 */
+    @ApiModelProperty("机台号")
+    @Excel(name = "机台号")
+    private String devices;
+
+    /** 创建人 */
+    @ApiModelProperty("创建人")
+    @Excel(name = "创建人")
+    private String createdBy;
+
+    /** 创建时间 */
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date createdTime;
+
+    /** 更新人 */
+    @ApiModelProperty("更新人")
+    @Excel(name = "更新人")
+    private String updatedBy;
+
+    /** 更新时间 */
+    @ApiModelProperty("更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date updatedTime;
+
+}

+ 51 - 0
jjt-biz/src/main/java/com/jjt/wkEmp/domain/TwinWkEmpSync.java

@@ -0,0 +1,51 @@
+package com.jjt.wkEmp.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.jjt.common.annotation.Excel;
+import com.jjt.common.core.domain.BaseEntity;
+
+/**
+ * 经编车间排班同步记录对象 TWIN_WK_EMP_SYNC
+ *
+ * @author wukai
+ * @date 2025-04-28
+ */
+@ApiModel(value = "TwinWkEmpSync", description = "经编车间排班同步记录")
+@Data
+public class TwinWkEmpSync extends BaseEntity{
+    private static final long serialVersionUID = 1L;
+
+    /** 同步ID */
+    @ApiModelProperty("同步ID")
+    @TableId
+    private Long syncId;
+
+    /** 同步内容 */
+    @ApiModelProperty("同步内容")
+    @Excel(name = "同步内容")
+    private String content;
+
+    /** 数据处理时间 */
+    @ApiModelProperty("数据处理时间")
+    @Excel(name = "数据处理时间")
+    private Long time;
+
+    /** 处理状态 */
+    @ApiModelProperty("处理状态")
+    @Excel(name = "处理状态")
+    private String status;
+
+    /** 记录时间 */
+    @ApiModelProperty("记录时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "记录时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date recordTime;
+
+}

+ 62 - 0
jjt-biz/src/main/java/com/jjt/wkEmp/mapper/TwinWkEmpRotaMapper.java

@@ -0,0 +1,62 @@
+package com.jjt.wkEmp.mapper;
+
+import java.util.List;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jjt.wkEmp.domain.TwinWkEmpRota;
+
+/**
+ * 经编车间员工排班Mapper接口
+ * 
+ * @author wukai
+ * @date 2025-04-28
+ */
+public interface TwinWkEmpRotaMapper extends BaseMapper<TwinWkEmpRota>
+{
+    /**
+     * 查询经编车间员工排班
+     * 
+     * @param shiftId 经编车间员工排班主键
+     * @return 经编车间员工排班
+     */
+    public TwinWkEmpRota selectTwinWkEmpRotaByShiftId(Long shiftId);
+
+    /**
+     * 查询经编车间员工排班列表
+     * 
+     * @param twinWkEmpRota 经编车间员工排班
+     * @return 经编车间员工排班集合
+     */
+    public List<TwinWkEmpRota> selectTwinWkEmpRotaList(TwinWkEmpRota twinWkEmpRota);
+
+    /**
+     * 新增经编车间员工排班
+     * 
+     * @param twinWkEmpRota 经编车间员工排班
+     * @return 结果
+     */
+    public int insertTwinWkEmpRota(TwinWkEmpRota twinWkEmpRota);
+
+    /**
+     * 修改经编车间员工排班
+     * 
+     * @param twinWkEmpRota 经编车间员工排班
+     * @return 结果
+     */
+    public int updateTwinWkEmpRota(TwinWkEmpRota twinWkEmpRota);
+
+    /**
+     * 删除经编车间员工排班
+     * 
+     * @param shiftId 经编车间员工排班主键
+     * @return 结果
+     */
+    public int deleteTwinWkEmpRotaByShiftId(Long shiftId);
+
+    /**
+     * 批量删除经编车间员工排班
+     * 
+     * @param shiftIds 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteTwinWkEmpRotaByShiftIds(Long[] shiftIds);
+}

+ 68 - 0
jjt-biz/src/main/java/com/jjt/wkEmp/mapper/TwinWkEmpSyncMapper.java

@@ -0,0 +1,68 @@
+package com.jjt.wkEmp.mapper;
+
+import java.util.List;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.jjt.wkEmp.domain.TwinWkEmpSync;
+
+/**
+ * 经编车间排班同步记录Mapper接口
+ *
+ * @author wukai
+ * @date 2025-04-28
+ */
+public interface TwinWkEmpSyncMapper extends BaseMapper<TwinWkEmpSync>
+{
+    /**
+     * 查询经编车间排班同步记录
+     *
+     * @param syncId 经编车间排班同步记录主键
+     * @return 经编车间排班同步记录
+     */
+    public TwinWkEmpSync selectTwinWkEmpSyncBySyncId(Long syncId);
+
+    /**
+     * 查询经编车间排班同步记录列表
+     *
+     * @param twinWkEmpSync 经编车间排班同步记录
+     * @return 经编车间排班同步记录集合
+     */
+    public List<TwinWkEmpSync> selectTwinWkEmpSyncList(TwinWkEmpSync twinWkEmpSync);
+
+    /**
+     * 新增经编车间排班同步记录
+     *
+     * @param twinWkEmpSync 经编车间排班同步记录
+     * @return 结果
+     */
+    public int insertTwinWkEmpSync(TwinWkEmpSync twinWkEmpSync);
+
+    /**
+     * 修改经编车间排班同步记录
+     *
+     * @param twinWkEmpSync 经编车间排班同步记录
+     * @return 结果
+     */
+    public int updateTwinWkEmpSync(TwinWkEmpSync twinWkEmpSync);
+
+    /**
+     * 删除经编车间排班同步记录
+     *
+     * @param syncId 经编车间排班同步记录主键
+     * @return 结果
+     */
+    public int deleteTwinWkEmpSyncBySyncId(Long syncId);
+
+    /**
+     * 批量删除经编车间排班同步记录
+     *
+     * @param syncIds 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteTwinWkEmpSyncBySyncIds(Long[] syncIds);
+    /**
+     * 清空记录
+     *
+     * @return 结果
+     */
+    void clean();
+}

+ 69 - 0
jjt-biz/src/main/java/com/jjt/wkEmp/service/ITwinWkEmpRotaService.java

@@ -0,0 +1,69 @@
+package com.jjt.wkEmp.service;
+
+import com.jjt.biz.vo.KnittingEmpVO;
+import com.jjt.wkEmp.domain.TwinWkEmpRota;
+
+import java.util.List;
+
+/**
+ * 经编车间员工排班Service接口
+ *
+ * @author wukai
+ * @date 2025-04-28
+ */
+public interface ITwinWkEmpRotaService {
+    /**
+     * 查询经编车间员工排班
+     *
+     * @param shiftId 经编车间员工排班主键
+     * @return 经编车间员工排班
+     */
+    public TwinWkEmpRota selectTwinWkEmpRotaByShiftId(Long shiftId);
+
+    /**
+     * 查询经编车间员工排班列表
+     *
+     * @param twinWkEmpRota 经编车间员工排班
+     * @return 经编车间员工排班集合
+     */
+    public List<TwinWkEmpRota> selectTwinWkEmpRotaList(TwinWkEmpRota twinWkEmpRota);
+
+    /**
+     * 新增经编车间员工排班
+     *
+     * @param twinWkEmpRota 经编车间员工排班
+     * @return 结果
+     */
+    public int insertTwinWkEmpRota(TwinWkEmpRota twinWkEmpRota);
+
+    /**
+     * 修改经编车间员工排班
+     *
+     * @param twinWkEmpRota 经编车间员工排班
+     * @return 结果
+     */
+    public int updateTwinWkEmpRota(TwinWkEmpRota twinWkEmpRota);
+
+    /**
+     * 批量删除经编车间员工排班
+     *
+     * @param shiftIds 需要删除的经编车间员工排班主键集合
+     * @return 结果
+     */
+    public int deleteTwinWkEmpRotaByShiftIds(Long[] shiftIds);
+
+    /**
+     * 删除经编车间员工排班信息
+     *
+     * @param shiftId 经编车间员工排班主键
+     * @return 结果
+     */
+    public int deleteTwinWkEmpRotaByShiftId(Long shiftId);
+
+    /**
+     * 数据同步
+     *
+     * @param data 接口数据
+     */
+    void sync(KnittingEmpVO data);
+}

+ 66 - 0
jjt-biz/src/main/java/com/jjt/wkEmp/service/ITwinWkEmpSyncService.java

@@ -0,0 +1,66 @@
+package com.jjt.wkEmp.service;
+
+import java.util.List;
+import com.jjt.wkEmp.domain.TwinWkEmpSync;
+
+/**
+ * 经编车间排班同步记录Service接口
+ *
+ * @author wukai
+ * @date 2025-04-28
+ */
+public interface ITwinWkEmpSyncService {
+    /**
+     * 查询经编车间排班同步记录
+     *
+     * @param syncId 经编车间排班同步记录主键
+     * @return 经编车间排班同步记录
+     */
+    public TwinWkEmpSync selectTwinWkEmpSyncBySyncId(Long syncId);
+
+    /**
+     * 查询经编车间排班同步记录列表
+     *
+     * @param twinWkEmpSync 经编车间排班同步记录
+     * @return 经编车间排班同步记录集合
+     */
+    public List<TwinWkEmpSync> selectTwinWkEmpSyncList(TwinWkEmpSync twinWkEmpSync);
+
+    /**
+     * 新增经编车间排班同步记录
+     *
+     * @param twinWkEmpSync 经编车间排班同步记录
+     * @return 结果
+     */
+    public int insertTwinWkEmpSync(TwinWkEmpSync twinWkEmpSync);
+
+    /**
+     * 修改经编车间排班同步记录
+     *
+     * @param twinWkEmpSync 经编车间排班同步记录
+     * @return 结果
+     */
+    public int updateTwinWkEmpSync(TwinWkEmpSync twinWkEmpSync);
+
+    /**
+     * 批量删除经编车间排班同步记录
+     *
+     * @param syncIds 需要删除的经编车间排班同步记录主键集合
+     * @return 结果
+     */
+    public int deleteTwinWkEmpSyncBySyncIds(Long[] syncIds);
+
+    /**
+     * 删除经编车间排班同步记录信息
+     *
+     * @param syncId 经编车间排班同步记录主键
+     * @return 结果
+     */
+    public int deleteTwinWkEmpSyncBySyncId(Long syncId);
+
+    /**
+     * 清空记录
+     * @return 结果
+     */
+    void clean();
+}

+ 138 - 0
jjt-biz/src/main/java/com/jjt/wkEmp/service/impl/TwinWkEmpRotaServiceImpl.java

@@ -0,0 +1,138 @@
+package com.jjt.wkEmp.service.impl;
+
+import com.jjt.biz.vo.KnittingEmpVO;
+import com.jjt.wkEmp.domain.TwinWkEmpRota;
+import com.jjt.wkEmp.mapper.TwinWkEmpRotaMapper;
+import com.jjt.wkEmp.service.ITwinWkEmpRotaService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+import java.util.Set;
+import java.util.TreeSet;
+import java.util.stream.Collectors;
+
+/**
+ * 经编车间员工排班Service业务层处理
+ *
+ * @author wukai
+ * @date 2025-04-28
+ */
+@Service
+public class TwinWkEmpRotaServiceImpl implements ITwinWkEmpRotaService {
+    @Resource
+    private TwinWkEmpRotaMapper twinWkEmpRotaMapper;
+
+    /**
+     * 查询经编车间员工排班
+     *
+     * @param shiftId 经编车间员工排班主键
+     * @return 经编车间员工排班
+     */
+    @Override
+    public TwinWkEmpRota selectTwinWkEmpRotaByShiftId(Long shiftId) {
+        return twinWkEmpRotaMapper.selectTwinWkEmpRotaByShiftId(shiftId);
+    }
+
+    /**
+     * 查询经编车间员工排班列表
+     *
+     * @param twinWkEmpRota 经编车间员工排班
+     * @return 经编车间员工排班
+     */
+    @Override
+    public List<TwinWkEmpRota> selectTwinWkEmpRotaList(TwinWkEmpRota twinWkEmpRota) {
+        return twinWkEmpRotaMapper.selectTwinWkEmpRotaList(twinWkEmpRota);
+    }
+
+    /**
+     * 新增经编车间员工排班
+     *
+     * @param twinWkEmpRota 经编车间员工排班
+     * @return 结果
+     */
+    @Override
+    public int insertTwinWkEmpRota(TwinWkEmpRota twinWkEmpRota) {
+        twinWkEmpRota.setCreatedTime(new Date());
+        return twinWkEmpRotaMapper.insertTwinWkEmpRota(twinWkEmpRota);
+    }
+
+    /**
+     * 修改经编车间员工排班
+     *
+     * @param twinWkEmpRota 经编车间员工排班
+     * @return 结果
+     */
+    @Override
+    public int updateTwinWkEmpRota(TwinWkEmpRota twinWkEmpRota) {
+        twinWkEmpRota.setUpdatedTime(new Date());
+        return twinWkEmpRotaMapper.updateTwinWkEmpRota(twinWkEmpRota);
+    }
+
+    /**
+     * 批量删除经编车间员工排班
+     *
+     * @param shiftIds 需要删除的经编车间员工排班主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTwinWkEmpRotaByShiftIds(Long[] shiftIds) {
+        return twinWkEmpRotaMapper.deleteTwinWkEmpRotaByShiftIds(shiftIds);
+    }
+
+    /**
+     * 删除经编车间员工排班信息
+     *
+     * @param shiftId 经编车间员工排班主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTwinWkEmpRotaByShiftId(Long shiftId) {
+        return twinWkEmpRotaMapper.deleteTwinWkEmpRotaByShiftId(shiftId);
+    }
+
+    /**
+     * 数据同步
+     *
+     * @param data 接口数据
+     */
+    @Override
+    public void sync(KnittingEmpVO data) {
+        TwinWkEmpRota rota = selectByEmp(data.getDate(), data.getId());
+        rota.setEmpId(data.getId());
+        rota.setEmpName(data.getName());
+        rota.setEmpTeam(data.getTeam());
+        Set<Integer> deviceSet = new TreeSet<>();
+        for (String s : data.getDevices()) {
+            String id = s.replace("J", "");
+            deviceSet.add(Integer.parseInt(id));
+        }
+        String devices = deviceSet.stream().map(String::valueOf).collect(Collectors.joining(","));
+        rota.setDevices(devices);
+        if (rota.getShiftId() != null) {
+            updateTwinWkEmpRota(rota);
+        } else {
+            insertTwinWkEmpRota(rota);
+        }
+    }
+
+    /**
+     * 按时间和员工号查询记录
+     */
+
+    private TwinWkEmpRota selectByEmp(Date date, String empId) {
+        TwinWkEmpRota search = new TwinWkEmpRota();
+        search.setEmpDate(date);
+        search.setEmpId(empId);
+
+        List<TwinWkEmpRota> list = selectTwinWkEmpRotaList(search);
+        TwinWkEmpRota rota;
+        if (list.size() > 0) {
+            rota = list.get(0);
+        } else {
+            rota = search;
+        }
+        return rota;
+    }
+}

+ 96 - 0
jjt-biz/src/main/java/com/jjt/wkEmp/service/impl/TwinWkEmpSyncServiceImpl.java

@@ -0,0 +1,96 @@
+package com.jjt.wkEmp.service.impl;
+
+import java.util.List;
+import org.springframework.stereotype.Service;
+import com.jjt.wkEmp.mapper.TwinWkEmpSyncMapper;
+import com.jjt.wkEmp.domain.TwinWkEmpSync;
+import com.jjt.wkEmp.service.ITwinWkEmpSyncService;
+import javax.annotation.Resource;
+
+/**
+ * 经编车间排班同步记录Service业务层处理
+ *
+ * @author wukai
+ * @date 2025-04-28
+ */
+@Service
+public class TwinWkEmpSyncServiceImpl implements ITwinWkEmpSyncService {
+    @Resource
+    private TwinWkEmpSyncMapper twinWkEmpSyncMapper;
+
+    /**
+     * 查询经编车间排班同步记录
+     *
+     * @param syncId 经编车间排班同步记录主键
+     * @return 经编车间排班同步记录
+     */
+    @Override
+    public TwinWkEmpSync selectTwinWkEmpSyncBySyncId(Long syncId) {
+        return twinWkEmpSyncMapper.selectTwinWkEmpSyncBySyncId(syncId);
+    }
+
+    /**
+     * 查询经编车间排班同步记录列表
+     *
+     * @param twinWkEmpSync 经编车间排班同步记录
+     * @return 经编车间排班同步记录
+     */
+    @Override
+    public List<TwinWkEmpSync> selectTwinWkEmpSyncList(TwinWkEmpSync twinWkEmpSync) {
+        return twinWkEmpSyncMapper.selectTwinWkEmpSyncList(twinWkEmpSync);
+    }
+
+    /**
+     * 新增经编车间排班同步记录
+     *
+     * @param twinWkEmpSync 经编车间排班同步记录
+     * @return 结果
+     */
+    @Override
+    public int insertTwinWkEmpSync(TwinWkEmpSync twinWkEmpSync) {
+            return twinWkEmpSyncMapper.insertTwinWkEmpSync(twinWkEmpSync);
+    }
+
+    /**
+     * 修改经编车间排班同步记录
+     *
+     * @param twinWkEmpSync 经编车间排班同步记录
+     * @return 结果
+     */
+    @Override
+    public int updateTwinWkEmpSync(TwinWkEmpSync twinWkEmpSync) {
+        return twinWkEmpSyncMapper.updateTwinWkEmpSync(twinWkEmpSync);
+    }
+
+    /**
+     * 批量删除经编车间排班同步记录
+     *
+     * @param syncIds 需要删除的经编车间排班同步记录主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTwinWkEmpSyncBySyncIds(Long[] syncIds) {
+        return twinWkEmpSyncMapper.deleteTwinWkEmpSyncBySyncIds(syncIds);
+    }
+
+    /**
+     * 删除经编车间排班同步记录信息
+     *
+     * @param syncId 经编车间排班同步记录主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTwinWkEmpSyncBySyncId(Long syncId) {
+        return twinWkEmpSyncMapper.deleteTwinWkEmpSyncBySyncId(syncId);
+    }
+
+    /**
+     * 清空记录
+     *
+     * @return 结果
+     */
+    @Override
+    public void clean() {
+        twinWkEmpSyncMapper.clean();
+    }
+}

+ 102 - 0
jjt-biz/src/main/resources/mapper/wkEmp/TwinWkEmpRotaMapper.xml

@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.jjt.wkEmp.mapper.TwinWkEmpRotaMapper">
+
+    <resultMap type="TwinWkEmpRota" id="TwinWkEmpRotaResult">
+        <result property="shiftId"    column="SHIFT_ID"    />
+        <result property="empDate"    column="EMP_DATE"    />
+        <result property="empId"    column="EMP_ID"    />
+        <result property="empName"    column="EMP_NAME"    />
+        <result property="empTeam"    column="EMP_TEAM"    />
+        <result property="devices"    column="DEVICES"    />
+        <result property="createdBy"    column="CREATED_BY"    />
+        <result property="createdTime"    column="CREATED_TIME"    />
+        <result property="updatedBy"    column="UPDATED_BY"    />
+        <result property="updatedTime"    column="UPDATED_TIME"    />
+        <result property="remark"    column="REMARK"    />
+    </resultMap>
+
+    <sql id="selectTwinWkEmpRotaVo">
+        select SHIFT_ID, EMP_DATE, EMP_ID, EMP_NAME, EMP_TEAM, DEVICES, CREATED_BY, CREATED_TIME, UPDATED_BY, UPDATED_TIME, REMARK from TWIN_WK_EMP_ROTA
+    </sql>
+
+    <select id="selectTwinWkEmpRotaList" parameterType="TwinWkEmpRota" resultMap="TwinWkEmpRotaResult">
+        <include refid="selectTwinWkEmpRotaVo"/>
+        <where>
+            <if test="empDate != null "> and EMP_DATE = #{empDate}</if>
+            <if test="empId != null  and empId != ''"> and EMP_ID = #{empId}</if>
+            <if test="empName != null  and empName != ''"> and EMP_NAME like concat('%', #{empName}, '%')</if>
+            <if test="empTeam != null  and empTeam != ''"> and EMP_TEAM = #{empTeam}</if>
+            <if test="devices != null  and devices != ''"> and DEVICES = #{devices}</if>
+            <if test="createdBy != null  and createdBy != ''"> and CREATED_BY = #{createdBy}</if>
+            <if test="createdTime != null "> and CREATED_TIME = #{createdTime}</if>
+            <if test="updatedBy != null  and updatedBy != ''"> and UPDATED_BY = #{updatedBy}</if>
+            <if test="updatedTime != null "> and UPDATED_TIME = #{updatedTime}</if>
+            <if test="remark != null  and remark != ''"> and REMARK = #{remark}</if>
+        </where>
+        order by emp_date desc,updated_time desc
+    </select>
+
+    <select id="selectTwinWkEmpRotaByShiftId" parameterType="Long" resultMap="TwinWkEmpRotaResult">
+        <include refid="selectTwinWkEmpRotaVo"/>
+        where SHIFT_ID = #{shiftId}
+    </select>
+
+    <insert id="insertTwinWkEmpRota" parameterType="TwinWkEmpRota" useGeneratedKeys="true" keyProperty="shiftId">
+        insert into TWIN_WK_EMP_ROTA
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="empDate != null">EMP_DATE,</if>
+            <if test="empId != null">EMP_ID,</if>
+            <if test="empName != null">EMP_NAME,</if>
+            <if test="empTeam != null">EMP_TEAM,</if>
+            <if test="devices != null">DEVICES,</if>
+            <if test="createdBy != null">CREATED_BY,</if>
+            <if test="createdTime != null">CREATED_TIME,</if>
+            <if test="updatedBy != null">UPDATED_BY,</if>
+            <if test="updatedTime != null">UPDATED_TIME,</if>
+            <if test="remark != null">REMARK,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="empDate != null">#{empDate},</if>
+            <if test="empId != null">#{empId},</if>
+            <if test="empName != null">#{empName},</if>
+            <if test="empTeam != null">#{empTeam},</if>
+            <if test="devices != null">#{devices},</if>
+            <if test="createdBy != null">#{createdBy},</if>
+            <if test="createdTime != null">#{createdTime},</if>
+            <if test="updatedBy != null">#{updatedBy},</if>
+            <if test="updatedTime != null">#{updatedTime},</if>
+            <if test="remark != null">#{remark},</if>
+         </trim>
+    </insert>
+
+    <update id="updateTwinWkEmpRota" parameterType="TwinWkEmpRota">
+        update TWIN_WK_EMP_ROTA
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="empDate != null">EMP_DATE = #{empDate},</if>
+            <if test="empId != null">EMP_ID = #{empId},</if>
+            <if test="empName != null">EMP_NAME = #{empName},</if>
+            <if test="empTeam != null">EMP_TEAM = #{empTeam},</if>
+            <if test="devices != null">DEVICES = #{devices},</if>
+            <if test="createdBy != null">CREATED_BY = #{createdBy},</if>
+            <if test="createdTime != null">CREATED_TIME = #{createdTime},</if>
+            <if test="updatedBy != null">UPDATED_BY = #{updatedBy},</if>
+            <if test="updatedTime != null">UPDATED_TIME = #{updatedTime},</if>
+            <if test="remark != null">REMARK = #{remark},</if>
+        </trim>
+        where SHIFT_ID = #{shiftId}
+    </update>
+
+    <delete id="deleteTwinWkEmpRotaByShiftId" parameterType="Long">
+        delete from TWIN_WK_EMP_ROTA where SHIFT_ID = #{shiftId}
+    </delete>
+
+    <delete id="deleteTwinWkEmpRotaByShiftIds" parameterType="String">
+        delete from TWIN_WK_EMP_ROTA where SHIFT_ID in
+        <foreach item="shiftId" collection="array" open="(" separator="," close=")">
+            #{shiftId}
+        </foreach>
+    </delete>
+</mapper>

+ 78 - 0
jjt-biz/src/main/resources/mapper/wkEmp/TwinWkEmpSyncMapper.xml

@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.jjt.wkEmp.mapper.TwinWkEmpSyncMapper">
+
+    <resultMap type="TwinWkEmpSync" id="TwinWkEmpSyncResult">
+        <result property="syncId" column="SYNC_ID"/>
+        <result property="content" column="CONTENT"/>
+        <result property="time" column="TIME"/>
+        <result property="status" column="STATUS"/>
+        <result property="recordTime" column="RECORD_TIME"/>
+    </resultMap>
+
+    <sql id="selectTwinWkEmpSyncVo">
+        select SYNC_ID, CONTENT, TIME, STATUS, RECORD_TIME
+        from TWIN_WK_EMP_SYNC
+    </sql>
+
+    <select id="selectTwinWkEmpSyncList" parameterType="TwinWkEmpSync" resultMap="TwinWkEmpSyncResult">
+        <include refid="selectTwinWkEmpSyncVo"/>
+        <where>
+            <if test="status != null  and status != ''">and STATUS = #{status}</if>
+            <if test="params.beginRecordTime != null and params.beginRecordTime != '' and params.endRecordTime != null and params.endRecordTime != ''">
+                and RECORD_TIME between #{params.beginRecordTime} and #{params.endRecordTime}
+            </if>
+        </where>
+        order by RECORD_TIME desc
+    </select>
+
+    <select id="selectTwinWkEmpSyncBySyncId" parameterType="Long" resultMap="TwinWkEmpSyncResult">
+        <include refid="selectTwinWkEmpSyncVo"/>
+        where SYNC_ID = #{syncId}
+    </select>
+
+    <insert id="insertTwinWkEmpSync" parameterType="TwinWkEmpSync" useGeneratedKeys="true" keyProperty="syncId">
+        insert into TWIN_WK_EMP_SYNC
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="content != null">CONTENT,</if>
+            <if test="time != null">TIME,</if>
+            <if test="status != null">STATUS,</if>
+            <if test="recordTime != null">RECORD_TIME,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="content != null">#{content},</if>
+            <if test="time != null">#{time},</if>
+            <if test="status != null">#{status},</if>
+            <if test="recordTime != null">#{recordTime},</if>
+        </trim>
+    </insert>
+
+    <update id="updateTwinWkEmpSync" parameterType="TwinWkEmpSync">
+        update TWIN_WK_EMP_SYNC
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="content != null">CONTENT = #{content},</if>
+            <if test="time != null">TIME = #{time},</if>
+            <if test="status != null">STATUS = #{status},</if>
+            <if test="recordTime != null">RECORD_TIME = #{recordTime},</if>
+        </trim>
+        where SYNC_ID = #{syncId}
+    </update>
+
+    <delete id="deleteTwinWkEmpSyncBySyncId" parameterType="Long">
+        delete
+        from TWIN_WK_EMP_SYNC
+        where SYNC_ID = #{syncId}
+    </delete>
+
+    <delete id="deleteTwinWkEmpSyncBySyncIds" parameterType="String">
+        delete from TWIN_WK_EMP_SYNC where SYNC_ID in
+        <foreach item="syncId" collection="array" open="(" separator="," close=")">
+            #{syncId}
+        </foreach>
+    </delete>
+    <delete id="clean">
+        truncate table TWIN_WK_EMP_SYNC
+    </delete>
+</mapper>