add: 实现工位能力维护、生产工艺路线维护、班组排班维、工单备注与异常记录、生产任务池
parent
d07d8946ce
commit
8d9cd0d896
@ -0,0 +1,76 @@
|
||||
package com.aucma.production.controller;
|
||||
|
||||
import java.util.List;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
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.aucma.common.annotation.Log;
|
||||
import com.aucma.common.core.controller.BaseController;
|
||||
import com.aucma.common.core.domain.AjaxResult;
|
||||
import com.aucma.common.enums.BusinessType;
|
||||
import com.aucma.production.domain.ProdOrderNote;
|
||||
import com.aucma.production.service.IProdOrderNoteService;
|
||||
import com.aucma.common.utils.poi.ExcelUtil;
|
||||
import com.aucma.common.core.page.TableDataInfo;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/production/orderNote")
|
||||
public class ProdOrderNoteController extends BaseController {
|
||||
@Autowired
|
||||
private IProdOrderNoteService prodOrderNoteService;
|
||||
|
||||
@PreAuthorize("@ss.hasPermi('production:orderNote:list')")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(ProdOrderNote prodOrderNote) {
|
||||
startPage();
|
||||
List<ProdOrderNote> list = prodOrderNoteService.selectProdOrderNoteList(prodOrderNote);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
@PreAuthorize("@ss.hasPermi('production:orderNote:export')")
|
||||
@Log(title = "工单备注与异常记录", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(HttpServletResponse response, ProdOrderNote prodOrderNote) {
|
||||
List<ProdOrderNote> list = prodOrderNoteService.selectProdOrderNoteList(prodOrderNote);
|
||||
ExcelUtil<ProdOrderNote> util = new ExcelUtil<ProdOrderNote>(ProdOrderNote.class);
|
||||
util.exportExcel(response, list, "工单备注与异常记录数据");
|
||||
}
|
||||
|
||||
@PreAuthorize("@ss.hasPermi('production:orderNote:query')")
|
||||
@GetMapping(value = "/{objId}")
|
||||
public AjaxResult getInfo(@PathVariable("objId") Long objId) {
|
||||
return success(prodOrderNoteService.selectProdOrderNoteByObjId(objId));
|
||||
}
|
||||
|
||||
@PreAuthorize("@ss.hasPermi('production:orderNote:add')")
|
||||
@Log(title = "工单备注与异常记录", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public AjaxResult add(@RequestBody ProdOrderNote prodOrderNote) {
|
||||
prodOrderNote.setCreatedBy(getUsername());
|
||||
return toAjax(prodOrderNoteService.insertProdOrderNote(prodOrderNote));
|
||||
}
|
||||
|
||||
@PreAuthorize("@ss.hasPermi('production:orderNote:edit')")
|
||||
@Log(title = "工单备注与异常记录", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody ProdOrderNote prodOrderNote) {
|
||||
prodOrderNote.setUpdatedBy(getUsername());
|
||||
return toAjax(prodOrderNoteService.updateProdOrderNote(prodOrderNote));
|
||||
}
|
||||
|
||||
@PreAuthorize("@ss.hasPermi('production:orderNote:remove')")
|
||||
@Log(title = "工单备注与异常记录", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{objIds}")
|
||||
public AjaxResult remove(@PathVariable Long[] objIds) {
|
||||
return toAjax(prodOrderNoteService.deleteProdOrderNoteByObjIds(objIds));
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,76 @@
|
||||
package com.aucma.production.controller;
|
||||
|
||||
import java.util.List;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
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.aucma.common.annotation.Log;
|
||||
import com.aucma.common.core.controller.BaseController;
|
||||
import com.aucma.common.core.domain.AjaxResult;
|
||||
import com.aucma.common.enums.BusinessType;
|
||||
import com.aucma.production.domain.ProdRoute;
|
||||
import com.aucma.production.service.IProdRouteService;
|
||||
import com.aucma.common.utils.poi.ExcelUtil;
|
||||
import com.aucma.common.core.page.TableDataInfo;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/production/processRoute")
|
||||
public class ProdRouteController extends BaseController {
|
||||
@Autowired
|
||||
private IProdRouteService prodRouteService;
|
||||
|
||||
@PreAuthorize("@ss.hasPermi('production:processRoute:list')")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(ProdRoute prodRoute) {
|
||||
startPage();
|
||||
List<ProdRoute> list = prodRouteService.selectProdRouteList(prodRoute);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
@PreAuthorize("@ss.hasPermi('production:processRoute:export')")
|
||||
@Log(title = "生产工艺路线", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(HttpServletResponse response, ProdRoute prodRoute) {
|
||||
List<ProdRoute> list = prodRouteService.selectProdRouteList(prodRoute);
|
||||
ExcelUtil<ProdRoute> util = new ExcelUtil<ProdRoute>(ProdRoute.class);
|
||||
util.exportExcel(response, list, "生产工艺路线数据");
|
||||
}
|
||||
|
||||
@PreAuthorize("@ss.hasPermi('production:processRoute:query')")
|
||||
@GetMapping(value = "/{objId}")
|
||||
public AjaxResult getInfo(@PathVariable("objId") Long objId) {
|
||||
return success(prodRouteService.selectProdRouteByObjId(objId));
|
||||
}
|
||||
|
||||
@PreAuthorize("@ss.hasPermi('production:processRoute:add')")
|
||||
@Log(title = "生产工艺路线", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public AjaxResult add(@RequestBody ProdRoute prodRoute) {
|
||||
prodRoute.setCreatedBy(getUsername());
|
||||
return toAjax(prodRouteService.insertProdRoute(prodRoute));
|
||||
}
|
||||
|
||||
@PreAuthorize("@ss.hasPermi('production:processRoute:edit')")
|
||||
@Log(title = "生产工艺路线", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody ProdRoute prodRoute) {
|
||||
prodRoute.setUpdatedBy(getUsername());
|
||||
return toAjax(prodRouteService.updateProdRoute(prodRoute));
|
||||
}
|
||||
|
||||
@PreAuthorize("@ss.hasPermi('production:processRoute:remove')")
|
||||
@Log(title = "生产工艺路线", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{objIds}")
|
||||
public AjaxResult remove(@PathVariable Long[] objIds) {
|
||||
return toAjax(prodRouteService.deleteProdRouteByObjIds(objIds));
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,76 @@
|
||||
package com.aucma.production.controller;
|
||||
|
||||
import java.util.List;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
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.aucma.common.annotation.Log;
|
||||
import com.aucma.common.core.controller.BaseController;
|
||||
import com.aucma.common.core.domain.AjaxResult;
|
||||
import com.aucma.common.enums.BusinessType;
|
||||
import com.aucma.production.domain.ProdStationCapability;
|
||||
import com.aucma.production.service.IProdStationCapabilityService;
|
||||
import com.aucma.common.utils.poi.ExcelUtil;
|
||||
import com.aucma.common.core.page.TableDataInfo;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/production/stationCapability")
|
||||
public class ProdStationCapabilityController extends BaseController {
|
||||
@Autowired
|
||||
private IProdStationCapabilityService prodStationCapabilityService;
|
||||
|
||||
@PreAuthorize("@ss.hasPermi('production:stationCapability:list')")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(ProdStationCapability prodStationCapability) {
|
||||
startPage();
|
||||
List<ProdStationCapability> list = prodStationCapabilityService.selectProdStationCapabilityList(prodStationCapability);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
@PreAuthorize("@ss.hasPermi('production:stationCapability:export')")
|
||||
@Log(title = "工位能力维护", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(HttpServletResponse response, ProdStationCapability prodStationCapability) {
|
||||
List<ProdStationCapability> list = prodStationCapabilityService.selectProdStationCapabilityList(prodStationCapability);
|
||||
ExcelUtil<ProdStationCapability> util = new ExcelUtil<ProdStationCapability>(ProdStationCapability.class);
|
||||
util.exportExcel(response, list, "工位能力维护数据");
|
||||
}
|
||||
|
||||
@PreAuthorize("@ss.hasPermi('production:stationCapability:query')")
|
||||
@GetMapping(value = "/{objId}")
|
||||
public AjaxResult getInfo(@PathVariable("objId") Long objId) {
|
||||
return success(prodStationCapabilityService.selectProdStationCapabilityByObjId(objId));
|
||||
}
|
||||
|
||||
@PreAuthorize("@ss.hasPermi('production:stationCapability:add')")
|
||||
@Log(title = "工位能力维护", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public AjaxResult add(@RequestBody ProdStationCapability prodStationCapability) {
|
||||
prodStationCapability.setCreatedBy(getUsername());
|
||||
return toAjax(prodStationCapabilityService.insertProdStationCapability(prodStationCapability));
|
||||
}
|
||||
|
||||
@PreAuthorize("@ss.hasPermi('production:stationCapability:edit')")
|
||||
@Log(title = "工位能力维护", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody ProdStationCapability prodStationCapability) {
|
||||
prodStationCapability.setUpdatedBy(getUsername());
|
||||
return toAjax(prodStationCapabilityService.updateProdStationCapability(prodStationCapability));
|
||||
}
|
||||
|
||||
@PreAuthorize("@ss.hasPermi('production:stationCapability:remove')")
|
||||
@Log(title = "工位能力维护", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{objIds}")
|
||||
public AjaxResult remove(@PathVariable Long[] objIds) {
|
||||
return toAjax(prodStationCapabilityService.deleteProdStationCapabilityByObjIds(objIds));
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,83 @@
|
||||
package com.aucma.production.controller;
|
||||
|
||||
import java.util.List;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
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.aucma.common.annotation.Log;
|
||||
import com.aucma.common.core.controller.BaseController;
|
||||
import com.aucma.common.core.domain.AjaxResult;
|
||||
import com.aucma.common.enums.BusinessType;
|
||||
import com.aucma.production.domain.ProdTaskPool;
|
||||
import com.aucma.production.service.IProdTaskPoolService;
|
||||
import com.aucma.common.utils.poi.ExcelUtil;
|
||||
import com.aucma.common.core.page.TableDataInfo;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/production/taskPool")
|
||||
public class ProdTaskPoolController extends BaseController {
|
||||
@Autowired
|
||||
private IProdTaskPoolService prodTaskPoolService;
|
||||
|
||||
@PreAuthorize("@ss.hasPermi('production:taskPool:list')")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(ProdTaskPool prodTaskPool) {
|
||||
startPage();
|
||||
List<ProdTaskPool> list = prodTaskPoolService.selectProdTaskPoolList(prodTaskPool);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
@PreAuthorize("@ss.hasPermi('production:taskPool:export')")
|
||||
@Log(title = "生产任务池", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(HttpServletResponse response, ProdTaskPool prodTaskPool) {
|
||||
List<ProdTaskPool> list = prodTaskPoolService.selectProdTaskPoolList(prodTaskPool);
|
||||
ExcelUtil<ProdTaskPool> util = new ExcelUtil<ProdTaskPool>(ProdTaskPool.class);
|
||||
util.exportExcel(response, list, "生产任务池数据");
|
||||
}
|
||||
|
||||
@PreAuthorize("@ss.hasPermi('production:taskPool:query')")
|
||||
@GetMapping(value = "/{orderCode}")
|
||||
public AjaxResult getInfo(@PathVariable("orderCode") String orderCode) {
|
||||
return success(prodTaskPoolService.selectProdTaskPoolByOrderCode(orderCode));
|
||||
}
|
||||
|
||||
@PreAuthorize("@ss.hasPermi('production:taskPool:add')")
|
||||
@Log(title = "生产任务池", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public AjaxResult add(@RequestBody ProdTaskPool prodTaskPool) {
|
||||
prodTaskPool.setCreatedBy(getUsername());
|
||||
return toAjax(prodTaskPoolService.insertProdTaskPool(prodTaskPool));
|
||||
}
|
||||
|
||||
@PreAuthorize("@ss.hasPermi('production:taskPool:edit')")
|
||||
@Log(title = "生产任务池", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody ProdTaskPool prodTaskPool) {
|
||||
prodTaskPool.setUpdatedBy(getUsername());
|
||||
return toAjax(prodTaskPoolService.updateProdTaskPool(prodTaskPool));
|
||||
}
|
||||
|
||||
@PreAuthorize("@ss.hasPermi('production:taskPool:edit')")
|
||||
@Log(title = "生产任务池状态切换", businessType = BusinessType.UPDATE)
|
||||
@PutMapping("/changeStatus")
|
||||
public AjaxResult changeStatus(@RequestBody ProdTaskPool prodTaskPool) {
|
||||
return toAjax(prodTaskPoolService.changeTaskStatus(prodTaskPool));
|
||||
}
|
||||
|
||||
@PreAuthorize("@ss.hasPermi('production:taskPool:remove')")
|
||||
@Log(title = "生产任务池", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{orderCodes}")
|
||||
public AjaxResult remove(@PathVariable String[] orderCodes) {
|
||||
return toAjax(prodTaskPoolService.deleteProdTaskPoolByOrderCodes(orderCodes));
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,76 @@
|
||||
package com.aucma.production.controller;
|
||||
|
||||
import java.util.List;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
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.aucma.common.annotation.Log;
|
||||
import com.aucma.common.core.controller.BaseController;
|
||||
import com.aucma.common.core.domain.AjaxResult;
|
||||
import com.aucma.common.enums.BusinessType;
|
||||
import com.aucma.production.domain.ProdTeamShift;
|
||||
import com.aucma.production.service.IProdTeamShiftService;
|
||||
import com.aucma.common.utils.poi.ExcelUtil;
|
||||
import com.aucma.common.core.page.TableDataInfo;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/production/teamShift")
|
||||
public class ProdTeamShiftController extends BaseController {
|
||||
@Autowired
|
||||
private IProdTeamShiftService prodTeamShiftService;
|
||||
|
||||
@PreAuthorize("@ss.hasPermi('production:teamShift:list')")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(ProdTeamShift prodTeamShift) {
|
||||
startPage();
|
||||
List<ProdTeamShift> list = prodTeamShiftService.selectProdTeamShiftList(prodTeamShift);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
@PreAuthorize("@ss.hasPermi('production:teamShift:export')")
|
||||
@Log(title = "班组排班维护", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(HttpServletResponse response, ProdTeamShift prodTeamShift) {
|
||||
List<ProdTeamShift> list = prodTeamShiftService.selectProdTeamShiftList(prodTeamShift);
|
||||
ExcelUtil<ProdTeamShift> util = new ExcelUtil<ProdTeamShift>(ProdTeamShift.class);
|
||||
util.exportExcel(response, list, "班组排班维护数据");
|
||||
}
|
||||
|
||||
@PreAuthorize("@ss.hasPermi('production:teamShift:query')")
|
||||
@GetMapping(value = "/{objId}")
|
||||
public AjaxResult getInfo(@PathVariable("objId") Long objId) {
|
||||
return success(prodTeamShiftService.selectProdTeamShiftByObjId(objId));
|
||||
}
|
||||
|
||||
@PreAuthorize("@ss.hasPermi('production:teamShift:add')")
|
||||
@Log(title = "班组排班维护", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public AjaxResult add(@RequestBody ProdTeamShift prodTeamShift) {
|
||||
prodTeamShift.setCreatedBy(getUsername());
|
||||
return toAjax(prodTeamShiftService.insertProdTeamShift(prodTeamShift));
|
||||
}
|
||||
|
||||
@PreAuthorize("@ss.hasPermi('production:teamShift:edit')")
|
||||
@Log(title = "班组排班维护", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody ProdTeamShift prodTeamShift) {
|
||||
prodTeamShift.setUpdatedBy(getUsername());
|
||||
return toAjax(prodTeamShiftService.updateProdTeamShift(prodTeamShift));
|
||||
}
|
||||
|
||||
@PreAuthorize("@ss.hasPermi('production:teamShift:remove')")
|
||||
@Log(title = "班组排班维护", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{objIds}")
|
||||
public AjaxResult remove(@PathVariable Long[] objIds) {
|
||||
return toAjax(prodTeamShiftService.deleteProdTeamShiftByObjIds(objIds));
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,156 @@
|
||||
package com.aucma.production.domain;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||
import com.aucma.common.annotation.Excel;
|
||||
import com.aucma.common.core.domain.BaseEntity;
|
||||
|
||||
/**
|
||||
* 工单备注与异常记录对象 prod_order_note
|
||||
*
|
||||
* @author Codex
|
||||
* @date 2026-03-18
|
||||
*/
|
||||
public class ProdOrderNote extends BaseEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private Long objId;
|
||||
@Excel(name = "工单编号")
|
||||
private String orderCode;
|
||||
@Excel(name = "物料编码")
|
||||
private String materialCode;
|
||||
@Excel(name = "物料名称")
|
||||
private String materialName;
|
||||
@Excel(name = "工单状态")
|
||||
private String executionStatus;
|
||||
@Excel(name = "记录类型")
|
||||
private String noteType;
|
||||
@Excel(name = "记录内容")
|
||||
private String noteContent;
|
||||
@Excel(name = "状态")
|
||||
private String status;
|
||||
@Excel(name = "创建人")
|
||||
private String createdBy;
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date createdTime;
|
||||
@Excel(name = "更新人")
|
||||
private String updatedBy;
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date updatedTime;
|
||||
|
||||
public Long getObjId() {
|
||||
return objId;
|
||||
}
|
||||
|
||||
public void setObjId(Long objId) {
|
||||
this.objId = objId;
|
||||
}
|
||||
|
||||
public String getOrderCode() {
|
||||
return orderCode;
|
||||
}
|
||||
|
||||
public void setOrderCode(String orderCode) {
|
||||
this.orderCode = orderCode;
|
||||
}
|
||||
|
||||
public String getMaterialCode() {
|
||||
return materialCode;
|
||||
}
|
||||
|
||||
public void setMaterialCode(String materialCode) {
|
||||
this.materialCode = materialCode;
|
||||
}
|
||||
|
||||
public String getMaterialName() {
|
||||
return materialName;
|
||||
}
|
||||
|
||||
public void setMaterialName(String materialName) {
|
||||
this.materialName = materialName;
|
||||
}
|
||||
|
||||
public String getExecutionStatus() {
|
||||
return executionStatus;
|
||||
}
|
||||
|
||||
public void setExecutionStatus(String executionStatus) {
|
||||
this.executionStatus = executionStatus;
|
||||
}
|
||||
|
||||
public String getNoteType() {
|
||||
return noteType;
|
||||
}
|
||||
|
||||
public void setNoteType(String noteType) {
|
||||
this.noteType = noteType;
|
||||
}
|
||||
|
||||
public String getNoteContent() {
|
||||
return noteContent;
|
||||
}
|
||||
|
||||
public void setNoteContent(String noteContent) {
|
||||
this.noteContent = noteContent;
|
||||
}
|
||||
|
||||
public String getStatus() {
|
||||
return status;
|
||||
}
|
||||
|
||||
public void setStatus(String status) {
|
||||
this.status = status;
|
||||
}
|
||||
|
||||
public String getCreatedBy() {
|
||||
return createdBy;
|
||||
}
|
||||
|
||||
public void setCreatedBy(String createdBy) {
|
||||
this.createdBy = createdBy;
|
||||
}
|
||||
|
||||
public Date getCreatedTime() {
|
||||
return createdTime;
|
||||
}
|
||||
|
||||
public void setCreatedTime(Date createdTime) {
|
||||
this.createdTime = createdTime;
|
||||
}
|
||||
|
||||
public String getUpdatedBy() {
|
||||
return updatedBy;
|
||||
}
|
||||
|
||||
public void setUpdatedBy(String updatedBy) {
|
||||
this.updatedBy = updatedBy;
|
||||
}
|
||||
|
||||
public Date getUpdatedTime() {
|
||||
return updatedTime;
|
||||
}
|
||||
|
||||
public void setUpdatedTime(Date updatedTime) {
|
||||
this.updatedTime = updatedTime;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
|
||||
.append("objId", getObjId())
|
||||
.append("orderCode", getOrderCode())
|
||||
.append("materialCode", getMaterialCode())
|
||||
.append("materialName", getMaterialName())
|
||||
.append("executionStatus", getExecutionStatus())
|
||||
.append("noteType", getNoteType())
|
||||
.append("noteContent", getNoteContent())
|
||||
.append("status", getStatus())
|
||||
.append("remark", getRemark())
|
||||
.toString();
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,157 @@
|
||||
package com.aucma.production.domain;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||
import com.aucma.common.annotation.Excel;
|
||||
import com.aucma.common.core.domain.BaseEntity;
|
||||
|
||||
/**
|
||||
* 生产工艺路线对象 prod_route
|
||||
*
|
||||
* @author Codex
|
||||
* @date 2026-03-18
|
||||
*/
|
||||
public class ProdRoute extends BaseEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private Long objId;
|
||||
@Excel(name = "路线编码")
|
||||
private String routeCode;
|
||||
@Excel(name = "路线名称")
|
||||
private String routeName;
|
||||
@Excel(name = "物料编码")
|
||||
private String materialCode;
|
||||
@Excel(name = "物料名称")
|
||||
private String materialName;
|
||||
@Excel(name = "版本号")
|
||||
private String versionNo;
|
||||
@Excel(name = "状态")
|
||||
private String status;
|
||||
@Excel(name = "创建人")
|
||||
private String createdBy;
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date createdTime;
|
||||
@Excel(name = "更新人")
|
||||
private String updatedBy;
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date updatedTime;
|
||||
private List<ProdRouteDetail> detailList = new ArrayList<ProdRouteDetail>();
|
||||
|
||||
public Long getObjId() {
|
||||
return objId;
|
||||
}
|
||||
|
||||
public void setObjId(Long objId) {
|
||||
this.objId = objId;
|
||||
}
|
||||
|
||||
public String getRouteCode() {
|
||||
return routeCode;
|
||||
}
|
||||
|
||||
public void setRouteCode(String routeCode) {
|
||||
this.routeCode = routeCode;
|
||||
}
|
||||
|
||||
public String getRouteName() {
|
||||
return routeName;
|
||||
}
|
||||
|
||||
public void setRouteName(String routeName) {
|
||||
this.routeName = routeName;
|
||||
}
|
||||
|
||||
public String getMaterialCode() {
|
||||
return materialCode;
|
||||
}
|
||||
|
||||
public void setMaterialCode(String materialCode) {
|
||||
this.materialCode = materialCode;
|
||||
}
|
||||
|
||||
public String getMaterialName() {
|
||||
return materialName;
|
||||
}
|
||||
|
||||
public void setMaterialName(String materialName) {
|
||||
this.materialName = materialName;
|
||||
}
|
||||
|
||||
public String getVersionNo() {
|
||||
return versionNo;
|
||||
}
|
||||
|
||||
public void setVersionNo(String versionNo) {
|
||||
this.versionNo = versionNo;
|
||||
}
|
||||
|
||||
public String getStatus() {
|
||||
return status;
|
||||
}
|
||||
|
||||
public void setStatus(String status) {
|
||||
this.status = status;
|
||||
}
|
||||
|
||||
public String getCreatedBy() {
|
||||
return createdBy;
|
||||
}
|
||||
|
||||
public void setCreatedBy(String createdBy) {
|
||||
this.createdBy = createdBy;
|
||||
}
|
||||
|
||||
public Date getCreatedTime() {
|
||||
return createdTime;
|
||||
}
|
||||
|
||||
public void setCreatedTime(Date createdTime) {
|
||||
this.createdTime = createdTime;
|
||||
}
|
||||
|
||||
public String getUpdatedBy() {
|
||||
return updatedBy;
|
||||
}
|
||||
|
||||
public void setUpdatedBy(String updatedBy) {
|
||||
this.updatedBy = updatedBy;
|
||||
}
|
||||
|
||||
public Date getUpdatedTime() {
|
||||
return updatedTime;
|
||||
}
|
||||
|
||||
public void setUpdatedTime(Date updatedTime) {
|
||||
this.updatedTime = updatedTime;
|
||||
}
|
||||
|
||||
public List<ProdRouteDetail> getDetailList() {
|
||||
return detailList;
|
||||
}
|
||||
|
||||
public void setDetailList(List<ProdRouteDetail> detailList) {
|
||||
this.detailList = detailList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
|
||||
.append("objId", getObjId())
|
||||
.append("routeCode", getRouteCode())
|
||||
.append("routeName", getRouteName())
|
||||
.append("materialCode", getMaterialCode())
|
||||
.append("materialName", getMaterialName())
|
||||
.append("versionNo", getVersionNo())
|
||||
.append("status", getStatus())
|
||||
.append("remark", getRemark())
|
||||
.append("detailList", getDetailList())
|
||||
.toString();
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,141 @@
|
||||
package com.aucma.production.domain;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||
import com.aucma.common.annotation.Excel;
|
||||
import com.aucma.common.core.domain.BaseEntity;
|
||||
|
||||
/**
|
||||
* 工艺路线明细对象 prod_route_dtl
|
||||
*
|
||||
* @author Codex
|
||||
* @date 2026-03-18
|
||||
*/
|
||||
public class ProdRouteDetail extends BaseEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private Long objId;
|
||||
private String routeCode;
|
||||
@Excel(name = "工序编码")
|
||||
private String processCode;
|
||||
@Excel(name = "工序名称")
|
||||
private String processName;
|
||||
@Excel(name = "顺序号")
|
||||
private Long sortNo;
|
||||
@Excel(name = "是否必经")
|
||||
private String requiredFlag;
|
||||
@Excel(name = "标准工时")
|
||||
private BigDecimal standardWorkTime;
|
||||
private String createdBy;
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date createdTime;
|
||||
private String updatedBy;
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date updatedTime;
|
||||
|
||||
public Long getObjId() {
|
||||
return objId;
|
||||
}
|
||||
|
||||
public void setObjId(Long objId) {
|
||||
this.objId = objId;
|
||||
}
|
||||
|
||||
public String getRouteCode() {
|
||||
return routeCode;
|
||||
}
|
||||
|
||||
public void setRouteCode(String routeCode) {
|
||||
this.routeCode = routeCode;
|
||||
}
|
||||
|
||||
public String getProcessCode() {
|
||||
return processCode;
|
||||
}
|
||||
|
||||
public void setProcessCode(String processCode) {
|
||||
this.processCode = processCode;
|
||||
}
|
||||
|
||||
public String getProcessName() {
|
||||
return processName;
|
||||
}
|
||||
|
||||
public void setProcessName(String processName) {
|
||||
this.processName = processName;
|
||||
}
|
||||
|
||||
public Long getSortNo() {
|
||||
return sortNo;
|
||||
}
|
||||
|
||||
public void setSortNo(Long sortNo) {
|
||||
this.sortNo = sortNo;
|
||||
}
|
||||
|
||||
public String getRequiredFlag() {
|
||||
return requiredFlag;
|
||||
}
|
||||
|
||||
public void setRequiredFlag(String requiredFlag) {
|
||||
this.requiredFlag = requiredFlag;
|
||||
}
|
||||
|
||||
public BigDecimal getStandardWorkTime() {
|
||||
return standardWorkTime;
|
||||
}
|
||||
|
||||
public void setStandardWorkTime(BigDecimal standardWorkTime) {
|
||||
this.standardWorkTime = standardWorkTime;
|
||||
}
|
||||
|
||||
public String getCreatedBy() {
|
||||
return createdBy;
|
||||
}
|
||||
|
||||
public void setCreatedBy(String createdBy) {
|
||||
this.createdBy = createdBy;
|
||||
}
|
||||
|
||||
public Date getCreatedTime() {
|
||||
return createdTime;
|
||||
}
|
||||
|
||||
public void setCreatedTime(Date createdTime) {
|
||||
this.createdTime = createdTime;
|
||||
}
|
||||
|
||||
public String getUpdatedBy() {
|
||||
return updatedBy;
|
||||
}
|
||||
|
||||
public void setUpdatedBy(String updatedBy) {
|
||||
this.updatedBy = updatedBy;
|
||||
}
|
||||
|
||||
public Date getUpdatedTime() {
|
||||
return updatedTime;
|
||||
}
|
||||
|
||||
public void setUpdatedTime(Date updatedTime) {
|
||||
this.updatedTime = updatedTime;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
|
||||
.append("objId", getObjId())
|
||||
.append("routeCode", getRouteCode())
|
||||
.append("processCode", getProcessCode())
|
||||
.append("processName", getProcessName())
|
||||
.append("sortNo", getSortNo())
|
||||
.append("requiredFlag", getRequiredFlag())
|
||||
.append("standardWorkTime", getStandardWorkTime())
|
||||
.append("remark", getRemark())
|
||||
.toString();
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,205 @@
|
||||
package com.aucma.production.domain;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||
import com.aucma.common.annotation.Excel;
|
||||
import com.aucma.common.core.domain.BaseEntity;
|
||||
|
||||
/**
|
||||
* 工位能力维护对象 prod_sta_cap
|
||||
*
|
||||
* @author Codex
|
||||
* @date 2026-03-18
|
||||
*/
|
||||
public class ProdStationCapability extends BaseEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private Long objId;
|
||||
@Excel(name = "工位编码")
|
||||
private String stationCode;
|
||||
@Excel(name = "工位名称")
|
||||
private String stationName;
|
||||
@Excel(name = "物料编码")
|
||||
private String materialCode;
|
||||
@Excel(name = "物料名称")
|
||||
private String materialName;
|
||||
@Excel(name = "标准节拍")
|
||||
private BigDecimal standardCt;
|
||||
@Excel(name = "班产能")
|
||||
private BigDecimal shiftCap;
|
||||
@Excel(name = "日产能")
|
||||
private BigDecimal dayCap;
|
||||
@Excel(name = "切换时长(分钟)")
|
||||
private Long changeoverMin;
|
||||
@Excel(name = "责任班组")
|
||||
private String teamCode;
|
||||
@Excel(name = "班组名称")
|
||||
private String teamName;
|
||||
@Excel(name = "状态")
|
||||
private String status;
|
||||
@Excel(name = "创建人")
|
||||
private String createdBy;
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date createdTime;
|
||||
@Excel(name = "更新人")
|
||||
private String updatedBy;
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date updatedTime;
|
||||
|
||||
public Long getObjId() {
|
||||
return objId;
|
||||
}
|
||||
|
||||
public void setObjId(Long objId) {
|
||||
this.objId = objId;
|
||||
}
|
||||
|
||||
public String getStationCode() {
|
||||
return stationCode;
|
||||
}
|
||||
|
||||
public void setStationCode(String stationCode) {
|
||||
this.stationCode = stationCode;
|
||||
}
|
||||
|
||||
public String getStationName() {
|
||||
return stationName;
|
||||
}
|
||||
|
||||
public void setStationName(String stationName) {
|
||||
this.stationName = stationName;
|
||||
}
|
||||
|
||||
public String getMaterialCode() {
|
||||
return materialCode;
|
||||
}
|
||||
|
||||
public void setMaterialCode(String materialCode) {
|
||||
this.materialCode = materialCode;
|
||||
}
|
||||
|
||||
public String getMaterialName() {
|
||||
return materialName;
|
||||
}
|
||||
|
||||
public void setMaterialName(String materialName) {
|
||||
this.materialName = materialName;
|
||||
}
|
||||
|
||||
public BigDecimal getStandardCt() {
|
||||
return standardCt;
|
||||
}
|
||||
|
||||
public void setStandardCt(BigDecimal standardCt) {
|
||||
this.standardCt = standardCt;
|
||||
}
|
||||
|
||||
public BigDecimal getShiftCap() {
|
||||
return shiftCap;
|
||||
}
|
||||
|
||||
public void setShiftCap(BigDecimal shiftCap) {
|
||||
this.shiftCap = shiftCap;
|
||||
}
|
||||
|
||||
public BigDecimal getDayCap() {
|
||||
return dayCap;
|
||||
}
|
||||
|
||||
public void setDayCap(BigDecimal dayCap) {
|
||||
this.dayCap = dayCap;
|
||||
}
|
||||
|
||||
public Long getChangeoverMin() {
|
||||
return changeoverMin;
|
||||
}
|
||||
|
||||
public void setChangeoverMin(Long changeoverMin) {
|
||||
this.changeoverMin = changeoverMin;
|
||||
}
|
||||
|
||||
public String getTeamCode() {
|
||||
return teamCode;
|
||||
}
|
||||
|
||||
public void setTeamCode(String teamCode) {
|
||||
this.teamCode = teamCode;
|
||||
}
|
||||
|
||||
public String getTeamName() {
|
||||
return teamName;
|
||||
}
|
||||
|
||||
public void setTeamName(String teamName) {
|
||||
this.teamName = teamName;
|
||||
}
|
||||
|
||||
public String getStatus() {
|
||||
return status;
|
||||
}
|
||||
|
||||
public void setStatus(String status) {
|
||||
this.status = status;
|
||||
}
|
||||
|
||||
public String getCreatedBy() {
|
||||
return createdBy;
|
||||
}
|
||||
|
||||
public void setCreatedBy(String createdBy) {
|
||||
this.createdBy = createdBy;
|
||||
}
|
||||
|
||||
public Date getCreatedTime() {
|
||||
return createdTime;
|
||||
}
|
||||
|
||||
public void setCreatedTime(Date createdTime) {
|
||||
this.createdTime = createdTime;
|
||||
}
|
||||
|
||||
public String getUpdatedBy() {
|
||||
return updatedBy;
|
||||
}
|
||||
|
||||
public void setUpdatedBy(String updatedBy) {
|
||||
this.updatedBy = updatedBy;
|
||||
}
|
||||
|
||||
public Date getUpdatedTime() {
|
||||
return updatedTime;
|
||||
}
|
||||
|
||||
public void setUpdatedTime(Date updatedTime) {
|
||||
this.updatedTime = updatedTime;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
|
||||
.append("objId", getObjId())
|
||||
.append("stationCode", getStationCode())
|
||||
.append("stationName", getStationName())
|
||||
.append("materialCode", getMaterialCode())
|
||||
.append("materialName", getMaterialName())
|
||||
.append("standardCt", getStandardCt())
|
||||
.append("shiftCap", getShiftCap())
|
||||
.append("dayCap", getDayCap())
|
||||
.append("changeoverMin", getChangeoverMin())
|
||||
.append("teamCode", getTeamCode())
|
||||
.append("teamName", getTeamName())
|
||||
.append("status", getStatus())
|
||||
.append("remark", getRemark())
|
||||
.append("createdBy", getCreatedBy())
|
||||
.append("createdTime", getCreatedTime())
|
||||
.append("updatedBy", getUpdatedBy())
|
||||
.append("updatedTime", getUpdatedTime())
|
||||
.toString();
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,237 @@
|
||||
package com.aucma.production.domain;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||
import com.aucma.common.annotation.Excel;
|
||||
import com.aucma.common.core.domain.BaseEntity;
|
||||
|
||||
/**
|
||||
* 生产任务池对象 prod_task_pool
|
||||
*
|
||||
* @author Codex
|
||||
* @date 2026-03-18
|
||||
*/
|
||||
public class ProdTaskPool extends BaseEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private Long objId;
|
||||
@Excel(name = "工单编号")
|
||||
private String orderCode;
|
||||
@Excel(name = "物料编码")
|
||||
private String materialCode;
|
||||
@Excel(name = "物料名称")
|
||||
private String materialName;
|
||||
@Excel(name = "计划数量")
|
||||
private BigDecimal orderAmount;
|
||||
@Excel(name = "已完工数量")
|
||||
private Long completeAmount;
|
||||
@Excel(name = "执行状态")
|
||||
private String executionStatus;
|
||||
@Excel(name = "任务分组")
|
||||
private String taskBucket;
|
||||
@Excel(name = "负责人")
|
||||
private Long ownerUserId;
|
||||
@Excel(name = "负责人姓名")
|
||||
private String ownerUserName;
|
||||
@Excel(name = "优先级")
|
||||
private String priorityLevel;
|
||||
@Excel(name = "设备编码")
|
||||
private String deviceCode;
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "计划结束日期", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date endDate;
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@Excel(name = "开始生产时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date startTime;
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@Excel(name = "完工时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date finishTime;
|
||||
@Excel(name = "创建人")
|
||||
private String createdBy;
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date createdTime;
|
||||
@Excel(name = "更新人")
|
||||
private String updatedBy;
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date updatedTime;
|
||||
|
||||
public Long getObjId() {
|
||||
return objId;
|
||||
}
|
||||
|
||||
public void setObjId(Long objId) {
|
||||
this.objId = objId;
|
||||
}
|
||||
|
||||
public String getOrderCode() {
|
||||
return orderCode;
|
||||
}
|
||||
|
||||
public void setOrderCode(String orderCode) {
|
||||
this.orderCode = orderCode;
|
||||
}
|
||||
|
||||
public String getMaterialCode() {
|
||||
return materialCode;
|
||||
}
|
||||
|
||||
public void setMaterialCode(String materialCode) {
|
||||
this.materialCode = materialCode;
|
||||
}
|
||||
|
||||
public String getMaterialName() {
|
||||
return materialName;
|
||||
}
|
||||
|
||||
public void setMaterialName(String materialName) {
|
||||
this.materialName = materialName;
|
||||
}
|
||||
|
||||
public BigDecimal getOrderAmount() {
|
||||
return orderAmount;
|
||||
}
|
||||
|
||||
public void setOrderAmount(BigDecimal orderAmount) {
|
||||
this.orderAmount = orderAmount;
|
||||
}
|
||||
|
||||
public Long getCompleteAmount() {
|
||||
return completeAmount;
|
||||
}
|
||||
|
||||
public void setCompleteAmount(Long completeAmount) {
|
||||
this.completeAmount = completeAmount;
|
||||
}
|
||||
|
||||
public String getExecutionStatus() {
|
||||
return executionStatus;
|
||||
}
|
||||
|
||||
public void setExecutionStatus(String executionStatus) {
|
||||
this.executionStatus = executionStatus;
|
||||
}
|
||||
|
||||
public String getTaskBucket() {
|
||||
return taskBucket;
|
||||
}
|
||||
|
||||
public void setTaskBucket(String taskBucket) {
|
||||
this.taskBucket = taskBucket;
|
||||
}
|
||||
|
||||
public Long getOwnerUserId() {
|
||||
return ownerUserId;
|
||||
}
|
||||
|
||||
public void setOwnerUserId(Long ownerUserId) {
|
||||
this.ownerUserId = ownerUserId;
|
||||
}
|
||||
|
||||
public String getOwnerUserName() {
|
||||
return ownerUserName;
|
||||
}
|
||||
|
||||
public void setOwnerUserName(String ownerUserName) {
|
||||
this.ownerUserName = ownerUserName;
|
||||
}
|
||||
|
||||
public String getPriorityLevel() {
|
||||
return priorityLevel;
|
||||
}
|
||||
|
||||
public void setPriorityLevel(String priorityLevel) {
|
||||
this.priorityLevel = priorityLevel;
|
||||
}
|
||||
|
||||
public String getDeviceCode() {
|
||||
return deviceCode;
|
||||
}
|
||||
|
||||
public void setDeviceCode(String deviceCode) {
|
||||
this.deviceCode = deviceCode;
|
||||
}
|
||||
|
||||
public Date getEndDate() {
|
||||
return endDate;
|
||||
}
|
||||
|
||||
public void setEndDate(Date endDate) {
|
||||
this.endDate = endDate;
|
||||
}
|
||||
|
||||
public Date getStartTime() {
|
||||
return startTime;
|
||||
}
|
||||
|
||||
public void setStartTime(Date startTime) {
|
||||
this.startTime = startTime;
|
||||
}
|
||||
|
||||
public Date getFinishTime() {
|
||||
return finishTime;
|
||||
}
|
||||
|
||||
public void setFinishTime(Date finishTime) {
|
||||
this.finishTime = finishTime;
|
||||
}
|
||||
|
||||
public String getCreatedBy() {
|
||||
return createdBy;
|
||||
}
|
||||
|
||||
public void setCreatedBy(String createdBy) {
|
||||
this.createdBy = createdBy;
|
||||
}
|
||||
|
||||
public Date getCreatedTime() {
|
||||
return createdTime;
|
||||
}
|
||||
|
||||
public void setCreatedTime(Date createdTime) {
|
||||
this.createdTime = createdTime;
|
||||
}
|
||||
|
||||
public String getUpdatedBy() {
|
||||
return updatedBy;
|
||||
}
|
||||
|
||||
public void setUpdatedBy(String updatedBy) {
|
||||
this.updatedBy = updatedBy;
|
||||
}
|
||||
|
||||
public Date getUpdatedTime() {
|
||||
return updatedTime;
|
||||
}
|
||||
|
||||
public void setUpdatedTime(Date updatedTime) {
|
||||
this.updatedTime = updatedTime;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
|
||||
.append("objId", getObjId())
|
||||
.append("orderCode", getOrderCode())
|
||||
.append("materialCode", getMaterialCode())
|
||||
.append("materialName", getMaterialName())
|
||||
.append("orderAmount", getOrderAmount())
|
||||
.append("completeAmount", getCompleteAmount())
|
||||
.append("executionStatus", getExecutionStatus())
|
||||
.append("taskBucket", getTaskBucket())
|
||||
.append("ownerUserId", getOwnerUserId())
|
||||
.append("ownerUserName", getOwnerUserName())
|
||||
.append("priorityLevel", getPriorityLevel())
|
||||
.append("deviceCode", getDeviceCode())
|
||||
.append("endDate", getEndDate())
|
||||
.append("startTime", getStartTime())
|
||||
.append("finishTime", getFinishTime())
|
||||
.append("remark", getRemark())
|
||||
.toString();
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,190 @@
|
||||
package com.aucma.production.domain;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||
import com.aucma.common.annotation.Excel;
|
||||
import com.aucma.common.core.domain.BaseEntity;
|
||||
|
||||
/**
|
||||
* 班组排班维护对象 prod_team_sch
|
||||
*
|
||||
* @author Codex
|
||||
* @date 2026-03-18
|
||||
*/
|
||||
public class ProdTeamShift extends BaseEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private Long objId;
|
||||
@Excel(name = "班组编码")
|
||||
private String teamCode;
|
||||
@Excel(name = "班组名称")
|
||||
private String teamName;
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
@Excel(name = "排班日期", width = 30, dateFormat = "yyyy-MM-dd")
|
||||
private Date shiftDate;
|
||||
@Excel(name = "班次编码")
|
||||
private String shiftCode;
|
||||
@Excel(name = "负责人")
|
||||
private Long leaderUserId;
|
||||
@Excel(name = "负责人姓名")
|
||||
private String leaderUserName;
|
||||
@Excel(name = "责任产线")
|
||||
private String lineCode;
|
||||
@Excel(name = "产线名称")
|
||||
private String lineName;
|
||||
@Excel(name = "责任区域")
|
||||
private String areaDesc;
|
||||
@Excel(name = "状态")
|
||||
private String status;
|
||||
@Excel(name = "创建人")
|
||||
private String createdBy;
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date createdTime;
|
||||
@Excel(name = "更新人")
|
||||
private String updatedBy;
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date updatedTime;
|
||||
|
||||
public Long getObjId() {
|
||||
return objId;
|
||||
}
|
||||
|
||||
public void setObjId(Long objId) {
|
||||
this.objId = objId;
|
||||
}
|
||||
|
||||
public String getTeamCode() {
|
||||
return teamCode;
|
||||
}
|
||||
|
||||
public void setTeamCode(String teamCode) {
|
||||
this.teamCode = teamCode;
|
||||
}
|
||||
|
||||
public String getTeamName() {
|
||||
return teamName;
|
||||
}
|
||||
|
||||
public void setTeamName(String teamName) {
|
||||
this.teamName = teamName;
|
||||
}
|
||||
|
||||
public Date getShiftDate() {
|
||||
return shiftDate;
|
||||
}
|
||||
|
||||
public void setShiftDate(Date shiftDate) {
|
||||
this.shiftDate = shiftDate;
|
||||
}
|
||||
|
||||
public String getShiftCode() {
|
||||
return shiftCode;
|
||||
}
|
||||
|
||||
public void setShiftCode(String shiftCode) {
|
||||
this.shiftCode = shiftCode;
|
||||
}
|
||||
|
||||
public Long getLeaderUserId() {
|
||||
return leaderUserId;
|
||||
}
|
||||
|
||||
public void setLeaderUserId(Long leaderUserId) {
|
||||
this.leaderUserId = leaderUserId;
|
||||
}
|
||||
|
||||
public String getLeaderUserName() {
|
||||
return leaderUserName;
|
||||
}
|
||||
|
||||
public void setLeaderUserName(String leaderUserName) {
|
||||
this.leaderUserName = leaderUserName;
|
||||
}
|
||||
|
||||
public String getLineCode() {
|
||||
return lineCode;
|
||||
}
|
||||
|
||||
public void setLineCode(String lineCode) {
|
||||
this.lineCode = lineCode;
|
||||
}
|
||||
|
||||
public String getLineName() {
|
||||
return lineName;
|
||||
}
|
||||
|
||||
public void setLineName(String lineName) {
|
||||
this.lineName = lineName;
|
||||
}
|
||||
|
||||
public String getAreaDesc() {
|
||||
return areaDesc;
|
||||
}
|
||||
|
||||
public void setAreaDesc(String areaDesc) {
|
||||
this.areaDesc = areaDesc;
|
||||
}
|
||||
|
||||
public String getStatus() {
|
||||
return status;
|
||||
}
|
||||
|
||||
public void setStatus(String status) {
|
||||
this.status = status;
|
||||
}
|
||||
|
||||
public String getCreatedBy() {
|
||||
return createdBy;
|
||||
}
|
||||
|
||||
public void setCreatedBy(String createdBy) {
|
||||
this.createdBy = createdBy;
|
||||
}
|
||||
|
||||
public Date getCreatedTime() {
|
||||
return createdTime;
|
||||
}
|
||||
|
||||
public void setCreatedTime(Date createdTime) {
|
||||
this.createdTime = createdTime;
|
||||
}
|
||||
|
||||
public String getUpdatedBy() {
|
||||
return updatedBy;
|
||||
}
|
||||
|
||||
public void setUpdatedBy(String updatedBy) {
|
||||
this.updatedBy = updatedBy;
|
||||
}
|
||||
|
||||
public Date getUpdatedTime() {
|
||||
return updatedTime;
|
||||
}
|
||||
|
||||
public void setUpdatedTime(Date updatedTime) {
|
||||
this.updatedTime = updatedTime;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
|
||||
.append("objId", getObjId())
|
||||
.append("teamCode", getTeamCode())
|
||||
.append("teamName", getTeamName())
|
||||
.append("shiftDate", getShiftDate())
|
||||
.append("shiftCode", getShiftCode())
|
||||
.append("leaderUserId", getLeaderUserId())
|
||||
.append("leaderUserName", getLeaderUserName())
|
||||
.append("lineCode", getLineCode())
|
||||
.append("lineName", getLineName())
|
||||
.append("areaDesc", getAreaDesc())
|
||||
.append("status", getStatus())
|
||||
.append("remark", getRemark())
|
||||
.toString();
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,25 @@
|
||||
package com.aucma.production.mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.aucma.production.domain.ProdOrderNote;
|
||||
|
||||
/**
|
||||
* 工单备注与异常记录Mapper接口
|
||||
*
|
||||
* @author Codex
|
||||
* @date 2026-03-18
|
||||
*/
|
||||
public interface ProdOrderNoteMapper {
|
||||
ProdOrderNote selectProdOrderNoteByObjId(Long objId);
|
||||
|
||||
List<ProdOrderNote> selectProdOrderNoteList(ProdOrderNote prodOrderNote);
|
||||
|
||||
int insertProdOrderNote(ProdOrderNote prodOrderNote);
|
||||
|
||||
int updateProdOrderNote(ProdOrderNote prodOrderNote);
|
||||
|
||||
int deleteProdOrderNoteByObjId(Long objId);
|
||||
|
||||
int deleteProdOrderNoteByObjIds(Long[] objIds);
|
||||
}
|
||||
@ -0,0 +1,34 @@
|
||||
package com.aucma.production.mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.aucma.production.domain.ProdRoute;
|
||||
import com.aucma.production.domain.ProdRouteDetail;
|
||||
|
||||
/**
|
||||
* 生产工艺路线Mapper接口
|
||||
*
|
||||
* @author Codex
|
||||
* @date 2026-03-18
|
||||
*/
|
||||
public interface ProdRouteMapper {
|
||||
ProdRoute selectProdRouteByObjId(Long objId);
|
||||
|
||||
ProdRoute selectProdRouteByRouteCode(String routeCode);
|
||||
|
||||
List<ProdRoute> selectProdRouteList(ProdRoute prodRoute);
|
||||
|
||||
List<ProdRouteDetail> selectProdRouteDetailListByRouteCode(String routeCode);
|
||||
|
||||
int insertProdRoute(ProdRoute prodRoute);
|
||||
|
||||
int updateProdRoute(ProdRoute prodRoute);
|
||||
|
||||
int deleteProdRouteByObjId(Long objId);
|
||||
|
||||
int deleteProdRouteByObjIds(Long[] objIds);
|
||||
|
||||
int insertProdRouteDetail(ProdRouteDetail detail);
|
||||
|
||||
int deleteProdRouteDetailByRouteCode(String routeCode);
|
||||
}
|
||||
@ -0,0 +1,27 @@
|
||||
package com.aucma.production.mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.aucma.production.domain.ProdStationCapability;
|
||||
|
||||
/**
|
||||
* 工位能力维护Mapper接口
|
||||
*
|
||||
* @author Codex
|
||||
* @date 2026-03-18
|
||||
*/
|
||||
public interface ProdStationCapabilityMapper {
|
||||
ProdStationCapability selectProdStationCapabilityByObjId(Long objId);
|
||||
|
||||
List<ProdStationCapability> selectProdStationCapabilityList(ProdStationCapability prodStationCapability);
|
||||
|
||||
ProdStationCapability selectByStationCodeAndMaterialCode(ProdStationCapability prodStationCapability);
|
||||
|
||||
int insertProdStationCapability(ProdStationCapability prodStationCapability);
|
||||
|
||||
int updateProdStationCapability(ProdStationCapability prodStationCapability);
|
||||
|
||||
int deleteProdStationCapabilityByObjId(Long objId);
|
||||
|
||||
int deleteProdStationCapabilityByObjIds(Long[] objIds);
|
||||
}
|
||||
@ -0,0 +1,25 @@
|
||||
package com.aucma.production.mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.aucma.production.domain.ProdTaskPool;
|
||||
|
||||
/**
|
||||
* 生产任务池Mapper接口
|
||||
*
|
||||
* @author Codex
|
||||
* @date 2026-03-18
|
||||
*/
|
||||
public interface ProdTaskPoolMapper {
|
||||
ProdTaskPool selectProdTaskPoolByOrderCode(String orderCode);
|
||||
|
||||
List<ProdTaskPool> selectProdTaskPoolList(ProdTaskPool prodTaskPool);
|
||||
|
||||
int insertProdTaskPool(ProdTaskPool prodTaskPool);
|
||||
|
||||
int updateProdTaskPool(ProdTaskPool prodTaskPool);
|
||||
|
||||
int deleteProdTaskPoolByOrderCodes(String[] orderCodes);
|
||||
|
||||
int updateOrderExecutionStatus(ProdTaskPool prodTaskPool);
|
||||
}
|
||||
@ -0,0 +1,27 @@
|
||||
package com.aucma.production.mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.aucma.production.domain.ProdTeamShift;
|
||||
|
||||
/**
|
||||
* 班组排班维护Mapper接口
|
||||
*
|
||||
* @author Codex
|
||||
* @date 2026-03-18
|
||||
*/
|
||||
public interface ProdTeamShiftMapper {
|
||||
ProdTeamShift selectProdTeamShiftByObjId(Long objId);
|
||||
|
||||
List<ProdTeamShift> selectProdTeamShiftList(ProdTeamShift prodTeamShift);
|
||||
|
||||
ProdTeamShift selectUniqueShift(ProdTeamShift prodTeamShift);
|
||||
|
||||
int insertProdTeamShift(ProdTeamShift prodTeamShift);
|
||||
|
||||
int updateProdTeamShift(ProdTeamShift prodTeamShift);
|
||||
|
||||
int deleteProdTeamShiftByObjId(Long objId);
|
||||
|
||||
int deleteProdTeamShiftByObjIds(Long[] objIds);
|
||||
}
|
||||
@ -0,0 +1,17 @@
|
||||
package com.aucma.production.service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.aucma.production.domain.ProdOrderNote;
|
||||
|
||||
public interface IProdOrderNoteService {
|
||||
ProdOrderNote selectProdOrderNoteByObjId(Long objId);
|
||||
|
||||
List<ProdOrderNote> selectProdOrderNoteList(ProdOrderNote prodOrderNote);
|
||||
|
||||
int insertProdOrderNote(ProdOrderNote prodOrderNote);
|
||||
|
||||
int updateProdOrderNote(ProdOrderNote prodOrderNote);
|
||||
|
||||
int deleteProdOrderNoteByObjIds(Long[] objIds);
|
||||
}
|
||||
@ -0,0 +1,17 @@
|
||||
package com.aucma.production.service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.aucma.production.domain.ProdRoute;
|
||||
|
||||
public interface IProdRouteService {
|
||||
ProdRoute selectProdRouteByObjId(Long objId);
|
||||
|
||||
List<ProdRoute> selectProdRouteList(ProdRoute prodRoute);
|
||||
|
||||
int insertProdRoute(ProdRoute prodRoute);
|
||||
|
||||
int updateProdRoute(ProdRoute prodRoute);
|
||||
|
||||
int deleteProdRouteByObjIds(Long[] objIds);
|
||||
}
|
||||
@ -0,0 +1,17 @@
|
||||
package com.aucma.production.service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.aucma.production.domain.ProdStationCapability;
|
||||
|
||||
public interface IProdStationCapabilityService {
|
||||
ProdStationCapability selectProdStationCapabilityByObjId(Long objId);
|
||||
|
||||
List<ProdStationCapability> selectProdStationCapabilityList(ProdStationCapability prodStationCapability);
|
||||
|
||||
int insertProdStationCapability(ProdStationCapability prodStationCapability);
|
||||
|
||||
int updateProdStationCapability(ProdStationCapability prodStationCapability);
|
||||
|
||||
int deleteProdStationCapabilityByObjIds(Long[] objIds);
|
||||
}
|
||||
@ -0,0 +1,19 @@
|
||||
package com.aucma.production.service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.aucma.production.domain.ProdTaskPool;
|
||||
|
||||
public interface IProdTaskPoolService {
|
||||
ProdTaskPool selectProdTaskPoolByOrderCode(String orderCode);
|
||||
|
||||
List<ProdTaskPool> selectProdTaskPoolList(ProdTaskPool prodTaskPool);
|
||||
|
||||
int insertProdTaskPool(ProdTaskPool prodTaskPool);
|
||||
|
||||
int updateProdTaskPool(ProdTaskPool prodTaskPool);
|
||||
|
||||
int deleteProdTaskPoolByOrderCodes(String[] orderCodes);
|
||||
|
||||
int changeTaskStatus(ProdTaskPool prodTaskPool);
|
||||
}
|
||||
@ -0,0 +1,17 @@
|
||||
package com.aucma.production.service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.aucma.production.domain.ProdTeamShift;
|
||||
|
||||
public interface IProdTeamShiftService {
|
||||
ProdTeamShift selectProdTeamShiftByObjId(Long objId);
|
||||
|
||||
List<ProdTeamShift> selectProdTeamShiftList(ProdTeamShift prodTeamShift);
|
||||
|
||||
int insertProdTeamShift(ProdTeamShift prodTeamShift);
|
||||
|
||||
int updateProdTeamShift(ProdTeamShift prodTeamShift);
|
||||
|
||||
int deleteProdTeamShiftByObjIds(Long[] objIds);
|
||||
}
|
||||
@ -0,0 +1,75 @@
|
||||
package com.aucma.production.service.impl;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.aucma.common.exception.ServiceException;
|
||||
import com.aucma.common.utils.DateUtils;
|
||||
import com.aucma.common.utils.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.aucma.production.domain.ProdOrderNote;
|
||||
import com.aucma.production.domain.ProdTaskPool;
|
||||
import com.aucma.production.mapper.ProdOrderNoteMapper;
|
||||
import com.aucma.production.mapper.ProdTaskPoolMapper;
|
||||
import com.aucma.production.service.IProdOrderNoteService;
|
||||
|
||||
@Service
|
||||
public class ProdOrderNoteServiceImpl implements IProdOrderNoteService {
|
||||
@Autowired
|
||||
private ProdOrderNoteMapper prodOrderNoteMapper;
|
||||
|
||||
@Autowired
|
||||
private ProdTaskPoolMapper prodTaskPoolMapper;
|
||||
|
||||
@Override
|
||||
public ProdOrderNote selectProdOrderNoteByObjId(Long objId) {
|
||||
return prodOrderNoteMapper.selectProdOrderNoteByObjId(objId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ProdOrderNote> selectProdOrderNoteList(ProdOrderNote prodOrderNote) {
|
||||
return prodOrderNoteMapper.selectProdOrderNoteList(prodOrderNote);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int insertProdOrderNote(ProdOrderNote prodOrderNote) {
|
||||
validateNote(prodOrderNote);
|
||||
prodOrderNote.setCreatedTime(DateUtils.getNowDate());
|
||||
return prodOrderNoteMapper.insertProdOrderNote(prodOrderNote);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int updateProdOrderNote(ProdOrderNote prodOrderNote) {
|
||||
validateNote(prodOrderNote);
|
||||
prodOrderNote.setUpdatedTime(DateUtils.getNowDate());
|
||||
return prodOrderNoteMapper.updateProdOrderNote(prodOrderNote);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int deleteProdOrderNoteByObjIds(Long[] objIds) {
|
||||
return prodOrderNoteMapper.deleteProdOrderNoteByObjIds(objIds);
|
||||
}
|
||||
|
||||
private void validateNote(ProdOrderNote prodOrderNote) {
|
||||
if (prodOrderNote == null) {
|
||||
throw new ServiceException("工单记录不能为空");
|
||||
}
|
||||
if (StringUtils.isBlank(prodOrderNote.getOrderCode())) {
|
||||
throw new ServiceException("工单编号不能为空");
|
||||
}
|
||||
if (StringUtils.isBlank(prodOrderNote.getNoteType())) {
|
||||
throw new ServiceException("记录类型不能为空");
|
||||
}
|
||||
if (StringUtils.isBlank(prodOrderNote.getNoteContent())) {
|
||||
throw new ServiceException("记录内容不能为空");
|
||||
}
|
||||
// 为什么新增备注前先校验工单存在:备注和异常记录属于工单执行过程资产,不能允许孤儿记录进入系统。
|
||||
ProdTaskPool orderSnapshot = prodTaskPoolMapper.selectProdTaskPoolByOrderCode(prodOrderNote.getOrderCode());
|
||||
if (orderSnapshot == null) {
|
||||
throw new ServiceException("工单不存在,无法登记备注或异常");
|
||||
}
|
||||
if (StringUtils.isBlank(prodOrderNote.getStatus())) {
|
||||
prodOrderNote.setStatus("0");
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,132 @@
|
||||
package com.aucma.production.service.impl;
|
||||
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import com.aucma.common.exception.ServiceException;
|
||||
import com.aucma.common.utils.DateUtils;
|
||||
import com.aucma.common.utils.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import com.aucma.production.domain.ProdRoute;
|
||||
import com.aucma.production.domain.ProdRouteDetail;
|
||||
import com.aucma.production.mapper.ProdRouteMapper;
|
||||
import com.aucma.production.service.IProdRouteService;
|
||||
|
||||
@Service
|
||||
public class ProdRouteServiceImpl implements IProdRouteService {
|
||||
@Autowired
|
||||
private ProdRouteMapper prodRouteMapper;
|
||||
|
||||
@Override
|
||||
public ProdRoute selectProdRouteByObjId(Long objId) {
|
||||
ProdRoute route = prodRouteMapper.selectProdRouteByObjId(objId);
|
||||
if (route != null) {
|
||||
route.setDetailList(prodRouteMapper.selectProdRouteDetailListByRouteCode(route.getRouteCode()));
|
||||
}
|
||||
return route;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ProdRoute> selectProdRouteList(ProdRoute prodRoute) {
|
||||
return prodRouteMapper.selectProdRouteList(prodRoute);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public int insertProdRoute(ProdRoute prodRoute) {
|
||||
validateRoute(prodRoute);
|
||||
ensureRouteCodeUnique(prodRoute);
|
||||
prodRoute.setCreatedTime(DateUtils.getNowDate());
|
||||
int rows = prodRouteMapper.insertProdRoute(prodRoute);
|
||||
saveRouteDetails(prodRoute, true);
|
||||
return rows;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public int updateProdRoute(ProdRoute prodRoute) {
|
||||
validateRoute(prodRoute);
|
||||
ensureRouteCodeUnique(prodRoute);
|
||||
prodRoute.setUpdatedTime(DateUtils.getNowDate());
|
||||
int rows = prodRouteMapper.updateProdRoute(prodRoute);
|
||||
// 为什么更新时整单重建明细:首版路线维护优先保证“前端表格提交即数据库最终态”,避免逐行 diff 漏删旧工序。
|
||||
prodRouteMapper.deleteProdRouteDetailByRouteCode(prodRoute.getRouteCode());
|
||||
saveRouteDetails(prodRoute, false);
|
||||
return rows;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public int deleteProdRouteByObjIds(Long[] objIds) {
|
||||
for (Long objId : objIds) {
|
||||
ProdRoute route = prodRouteMapper.selectProdRouteByObjId(objId);
|
||||
if (route != null) {
|
||||
prodRouteMapper.deleteProdRouteDetailByRouteCode(route.getRouteCode());
|
||||
}
|
||||
}
|
||||
return prodRouteMapper.deleteProdRouteByObjIds(objIds);
|
||||
}
|
||||
|
||||
private void validateRoute(ProdRoute prodRoute) {
|
||||
if (prodRoute == null) {
|
||||
throw new ServiceException("工艺路线数据不能为空");
|
||||
}
|
||||
if (StringUtils.isBlank(prodRoute.getRouteCode())) {
|
||||
throw new ServiceException("路线编码不能为空");
|
||||
}
|
||||
if (StringUtils.isBlank(prodRoute.getRouteName())) {
|
||||
throw new ServiceException("路线名称不能为空");
|
||||
}
|
||||
if (StringUtils.isBlank(prodRoute.getMaterialCode())) {
|
||||
throw new ServiceException("物料不能为空");
|
||||
}
|
||||
if (StringUtils.isBlank(prodRoute.getVersionNo())) {
|
||||
prodRoute.setVersionNo("V1");
|
||||
}
|
||||
if (StringUtils.isBlank(prodRoute.getStatus())) {
|
||||
prodRoute.setStatus("0");
|
||||
}
|
||||
if (prodRoute.getDetailList() == null || prodRoute.getDetailList().isEmpty()) {
|
||||
throw new ServiceException("工艺路线至少需要一条工序明细");
|
||||
}
|
||||
}
|
||||
|
||||
private void ensureRouteCodeUnique(ProdRoute prodRoute) {
|
||||
ProdRoute existed = prodRouteMapper.selectProdRouteByRouteCode(prodRoute.getRouteCode());
|
||||
if (existed != null && !existed.getObjId().equals(prodRoute.getObjId())) {
|
||||
throw new ServiceException("路线编码已存在");
|
||||
}
|
||||
}
|
||||
|
||||
private void saveRouteDetails(ProdRoute prodRoute, boolean insertMode) {
|
||||
Set<String> processCodeSet = new LinkedHashSet<String>();
|
||||
long sortNo = 1L;
|
||||
for (ProdRouteDetail detail : prodRoute.getDetailList()) {
|
||||
if (detail == null || StringUtils.isBlank(detail.getProcessCode())) {
|
||||
throw new ServiceException("工序明细不能为空");
|
||||
}
|
||||
if (!processCodeSet.add(detail.getProcessCode())) {
|
||||
throw new ServiceException("工艺路线中存在重复工序:" + detail.getProcessCode());
|
||||
}
|
||||
detail.setRouteCode(prodRoute.getRouteCode());
|
||||
if (detail.getSortNo() == null) {
|
||||
detail.setSortNo(sortNo);
|
||||
}
|
||||
if (StringUtils.isBlank(detail.getRequiredFlag())) {
|
||||
detail.setRequiredFlag("1");
|
||||
}
|
||||
if (insertMode) {
|
||||
detail.setCreatedBy(prodRoute.getCreatedBy());
|
||||
detail.setCreatedTime(DateUtils.getNowDate());
|
||||
} else {
|
||||
detail.setUpdatedBy(prodRoute.getUpdatedBy());
|
||||
detail.setUpdatedTime(DateUtils.getNowDate());
|
||||
}
|
||||
prodRouteMapper.insertProdRouteDetail(detail);
|
||||
sortNo++;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,72 @@
|
||||
package com.aucma.production.service.impl;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.aucma.common.exception.ServiceException;
|
||||
import com.aucma.common.utils.DateUtils;
|
||||
import com.aucma.common.utils.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.aucma.production.domain.ProdStationCapability;
|
||||
import com.aucma.production.mapper.ProdStationCapabilityMapper;
|
||||
import com.aucma.production.service.IProdStationCapabilityService;
|
||||
|
||||
@Service
|
||||
public class ProdStationCapabilityServiceImpl implements IProdStationCapabilityService {
|
||||
@Autowired
|
||||
private ProdStationCapabilityMapper prodStationCapabilityMapper;
|
||||
|
||||
@Override
|
||||
public ProdStationCapability selectProdStationCapabilityByObjId(Long objId) {
|
||||
return prodStationCapabilityMapper.selectProdStationCapabilityByObjId(objId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ProdStationCapability> selectProdStationCapabilityList(ProdStationCapability prodStationCapability) {
|
||||
return prodStationCapabilityMapper.selectProdStationCapabilityList(prodStationCapability);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int insertProdStationCapability(ProdStationCapability prodStationCapability) {
|
||||
validateCapability(prodStationCapability);
|
||||
// 为什么按“工位+物料”做唯一控制:这两个维度共同定义一条能力口径,重复落库会让排产和产能维护出现冲突。
|
||||
ensureUnique(prodStationCapability);
|
||||
prodStationCapability.setCreatedTime(DateUtils.getNowDate());
|
||||
return prodStationCapabilityMapper.insertProdStationCapability(prodStationCapability);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int updateProdStationCapability(ProdStationCapability prodStationCapability) {
|
||||
validateCapability(prodStationCapability);
|
||||
ensureUnique(prodStationCapability);
|
||||
prodStationCapability.setUpdatedTime(DateUtils.getNowDate());
|
||||
return prodStationCapabilityMapper.updateProdStationCapability(prodStationCapability);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int deleteProdStationCapabilityByObjIds(Long[] objIds) {
|
||||
return prodStationCapabilityMapper.deleteProdStationCapabilityByObjIds(objIds);
|
||||
}
|
||||
|
||||
private void validateCapability(ProdStationCapability prodStationCapability) {
|
||||
if (prodStationCapability == null) {
|
||||
throw new ServiceException("工位能力数据不能为空");
|
||||
}
|
||||
if (StringUtils.isBlank(prodStationCapability.getStationCode())) {
|
||||
throw new ServiceException("工位不能为空");
|
||||
}
|
||||
if (StringUtils.isBlank(prodStationCapability.getMaterialCode())) {
|
||||
throw new ServiceException("物料不能为空");
|
||||
}
|
||||
if (StringUtils.isBlank(prodStationCapability.getStatus())) {
|
||||
prodStationCapability.setStatus("0");
|
||||
}
|
||||
}
|
||||
|
||||
private void ensureUnique(ProdStationCapability prodStationCapability) {
|
||||
ProdStationCapability existed = prodStationCapabilityMapper.selectByStationCodeAndMaterialCode(prodStationCapability);
|
||||
if (existed != null && !existed.getObjId().equals(prodStationCapability.getObjId())) {
|
||||
throw new ServiceException("同一工位下该物料的能力维护已存在");
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,96 @@
|
||||
package com.aucma.production.service.impl;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.aucma.common.exception.ServiceException;
|
||||
import com.aucma.common.utils.DateUtils;
|
||||
import com.aucma.common.utils.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import com.aucma.production.domain.ProdTaskPool;
|
||||
import com.aucma.production.mapper.ProdTaskPoolMapper;
|
||||
import com.aucma.production.service.IProdTaskPoolService;
|
||||
|
||||
@Service
|
||||
public class ProdTaskPoolServiceImpl implements IProdTaskPoolService {
|
||||
@Autowired
|
||||
private ProdTaskPoolMapper prodTaskPoolMapper;
|
||||
|
||||
@Override
|
||||
public ProdTaskPool selectProdTaskPoolByOrderCode(String orderCode) {
|
||||
return prodTaskPoolMapper.selectProdTaskPoolByOrderCode(orderCode);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ProdTaskPool> selectProdTaskPoolList(ProdTaskPool prodTaskPool) {
|
||||
return prodTaskPoolMapper.selectProdTaskPoolList(prodTaskPool);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public int insertProdTaskPool(ProdTaskPool prodTaskPool) {
|
||||
validateTask(prodTaskPool);
|
||||
ProdTaskPool existed = prodTaskPoolMapper.selectProdTaskPoolByOrderCode(prodTaskPool.getOrderCode());
|
||||
if (existed != null && existed.getObjId() != null) {
|
||||
prodTaskPool.setObjId(existed.getObjId());
|
||||
prodTaskPool.setUpdatedTime(DateUtils.getNowDate());
|
||||
return prodTaskPoolMapper.updateProdTaskPool(prodTaskPool);
|
||||
}
|
||||
prodTaskPool.setCreatedTime(DateUtils.getNowDate());
|
||||
return prodTaskPoolMapper.insertProdTaskPool(prodTaskPool);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public int updateProdTaskPool(ProdTaskPool prodTaskPool) {
|
||||
validateTask(prodTaskPool);
|
||||
ProdTaskPool existed = prodTaskPoolMapper.selectProdTaskPoolByOrderCode(prodTaskPool.getOrderCode());
|
||||
if (existed == null || existed.getObjId() == null) {
|
||||
prodTaskPool.setCreatedTime(DateUtils.getNowDate());
|
||||
return prodTaskPoolMapper.insertProdTaskPool(prodTaskPool);
|
||||
}
|
||||
prodTaskPool.setObjId(existed.getObjId());
|
||||
prodTaskPool.setUpdatedTime(DateUtils.getNowDate());
|
||||
return prodTaskPoolMapper.updateProdTaskPool(prodTaskPool);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int deleteProdTaskPoolByOrderCodes(String[] orderCodes) {
|
||||
return prodTaskPoolMapper.deleteProdTaskPoolByOrderCodes(orderCodes);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public int changeTaskStatus(ProdTaskPool prodTaskPool) {
|
||||
if (prodTaskPool == null || StringUtils.isBlank(prodTaskPool.getOrderCode())) {
|
||||
throw new ServiceException("工单编号不能为空");
|
||||
}
|
||||
if (StringUtils.isBlank(prodTaskPool.getExecutionStatus())) {
|
||||
throw new ServiceException("执行状态不能为空");
|
||||
}
|
||||
ProdTaskPool snapshot = prodTaskPoolMapper.selectProdTaskPoolByOrderCode(prodTaskPool.getOrderCode());
|
||||
if (snapshot == null) {
|
||||
throw new ServiceException("工单不存在,无法变更任务状态");
|
||||
}
|
||||
// 为什么任务池状态直接回写工单执行状态:任务池只是执行视图,不能再维护一套脱离工单主表的状态副本。
|
||||
prodTaskPool.setUpdatedTime(DateUtils.getNowDate());
|
||||
return prodTaskPoolMapper.updateOrderExecutionStatus(prodTaskPool);
|
||||
}
|
||||
|
||||
private void validateTask(ProdTaskPool prodTaskPool) {
|
||||
if (prodTaskPool == null) {
|
||||
throw new ServiceException("任务池数据不能为空");
|
||||
}
|
||||
if (StringUtils.isBlank(prodTaskPool.getOrderCode())) {
|
||||
throw new ServiceException("工单编号不能为空");
|
||||
}
|
||||
ProdTaskPool snapshot = prodTaskPoolMapper.selectProdTaskPoolByOrderCode(prodTaskPool.getOrderCode());
|
||||
if (snapshot == null) {
|
||||
throw new ServiceException("工单不存在,无法维护任务池");
|
||||
}
|
||||
if (StringUtils.isBlank(prodTaskPool.getPriorityLevel())) {
|
||||
prodTaskPool.setPriorityLevel("NORMAL");
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,74 @@
|
||||
package com.aucma.production.service.impl;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.aucma.common.exception.ServiceException;
|
||||
import com.aucma.common.utils.DateUtils;
|
||||
import com.aucma.common.utils.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.aucma.production.domain.ProdTeamShift;
|
||||
import com.aucma.production.mapper.ProdTeamShiftMapper;
|
||||
import com.aucma.production.service.IProdTeamShiftService;
|
||||
|
||||
@Service
|
||||
public class ProdTeamShiftServiceImpl implements IProdTeamShiftService {
|
||||
@Autowired
|
||||
private ProdTeamShiftMapper prodTeamShiftMapper;
|
||||
|
||||
@Override
|
||||
public ProdTeamShift selectProdTeamShiftByObjId(Long objId) {
|
||||
return prodTeamShiftMapper.selectProdTeamShiftByObjId(objId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ProdTeamShift> selectProdTeamShiftList(ProdTeamShift prodTeamShift) {
|
||||
return prodTeamShiftMapper.selectProdTeamShiftList(prodTeamShift);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int insertProdTeamShift(ProdTeamShift prodTeamShift) {
|
||||
validateShift(prodTeamShift);
|
||||
ensureShiftUnique(prodTeamShift);
|
||||
prodTeamShift.setCreatedTime(DateUtils.getNowDate());
|
||||
return prodTeamShiftMapper.insertProdTeamShift(prodTeamShift);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int updateProdTeamShift(ProdTeamShift prodTeamShift) {
|
||||
validateShift(prodTeamShift);
|
||||
ensureShiftUnique(prodTeamShift);
|
||||
prodTeamShift.setUpdatedTime(DateUtils.getNowDate());
|
||||
return prodTeamShiftMapper.updateProdTeamShift(prodTeamShift);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int deleteProdTeamShiftByObjIds(Long[] objIds) {
|
||||
return prodTeamShiftMapper.deleteProdTeamShiftByObjIds(objIds);
|
||||
}
|
||||
|
||||
private void validateShift(ProdTeamShift prodTeamShift) {
|
||||
if (prodTeamShift == null) {
|
||||
throw new ServiceException("排班数据不能为空");
|
||||
}
|
||||
if (StringUtils.isBlank(prodTeamShift.getTeamCode())) {
|
||||
throw new ServiceException("班组不能为空");
|
||||
}
|
||||
if (prodTeamShift.getShiftDate() == null) {
|
||||
throw new ServiceException("排班日期不能为空");
|
||||
}
|
||||
if (StringUtils.isBlank(prodTeamShift.getShiftCode())) {
|
||||
throw new ServiceException("班次不能为空");
|
||||
}
|
||||
if (StringUtils.isBlank(prodTeamShift.getStatus())) {
|
||||
prodTeamShift.setStatus("0");
|
||||
}
|
||||
}
|
||||
|
||||
private void ensureShiftUnique(ProdTeamShift prodTeamShift) {
|
||||
ProdTeamShift existed = prodTeamShiftMapper.selectUniqueShift(prodTeamShift);
|
||||
if (existed != null && !existed.getObjId().equals(prodTeamShift.getObjId())) {
|
||||
throw new ServiceException("该班组在指定日期与班次下已存在排班记录");
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,95 @@
|
||||
<?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.aucma.production.mapper.ProdOrderNoteMapper">
|
||||
|
||||
<resultMap id="ProdOrderNoteResult" type="ProdOrderNote">
|
||||
<result property="objId" column="obj_id"/>
|
||||
<result property="orderCode" column="order_code"/>
|
||||
<result property="materialCode" column="material_code"/>
|
||||
<result property="materialName" column="material_name"/>
|
||||
<result property="executionStatus" column="execution_status"/>
|
||||
<result property="noteType" column="note_type"/>
|
||||
<result property="noteContent" column="note_content"/>
|
||||
<result property="status" column="status"/>
|
||||
<result property="remark" column="remark"/>
|
||||
<result property="createdBy" column="create_by"/>
|
||||
<result property="createdTime" column="create_time"/>
|
||||
<result property="updatedBy" column="update_by"/>
|
||||
<result property="updatedTime" column="update_time"/>
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectProdOrderNoteVo">
|
||||
select pn.obj_id,
|
||||
pn.order_code,
|
||||
oi.material_code,
|
||||
oi.material_name,
|
||||
nvl(oi.execution_status, 'PENDING') as execution_status,
|
||||
pn.note_type,
|
||||
pn.note_content,
|
||||
pn.status,
|
||||
pn.remark,
|
||||
pn.create_by,
|
||||
pn.create_time,
|
||||
pn.update_by,
|
||||
pn.update_time
|
||||
from prod_order_note pn
|
||||
left join base_orderinfo oi on oi.order_code = pn.order_code
|
||||
</sql>
|
||||
|
||||
<select id="selectProdOrderNoteByObjId" parameterType="Long" resultMap="ProdOrderNoteResult">
|
||||
<include refid="selectProdOrderNoteVo"/>
|
||||
where pn.obj_id = #{objId}
|
||||
</select>
|
||||
|
||||
<select id="selectProdOrderNoteList" parameterType="ProdOrderNote" resultMap="ProdOrderNoteResult">
|
||||
<include refid="selectProdOrderNoteVo"/>
|
||||
<where>
|
||||
<if test="orderCode != null and orderCode != ''">and pn.order_code = #{orderCode}</if>
|
||||
<if test="noteType != null and noteType != ''">and pn.note_type = #{noteType}</if>
|
||||
<if test="status != null and status != ''">and pn.status = #{status}</if>
|
||||
<if test="materialName != null and materialName != ''">and oi.material_name like concat(concat('%', #{materialName}), '%')</if>
|
||||
<if test="executionStatus != null and executionStatus != ''">and nvl(oi.execution_status, 'PENDING') = #{executionStatus}</if>
|
||||
</where>
|
||||
order by pn.create_time desc, pn.obj_id desc
|
||||
</select>
|
||||
|
||||
<insert id="insertProdOrderNote" parameterType="ProdOrderNote">
|
||||
<selectKey keyProperty="objId" resultType="long" order="BEFORE">
|
||||
select seq_prod_order_note.nextval as objId from dual
|
||||
</selectKey>
|
||||
insert into prod_order_note (
|
||||
obj_id, order_code, note_type, note_content, status, remark,
|
||||
create_by, create_time, update_by, update_time
|
||||
) values (
|
||||
#{objId}, #{orderCode}, #{noteType}, #{noteContent}, #{status}, #{remark},
|
||||
#{createdBy}, #{createdTime}, #{updatedBy}, #{updatedTime}
|
||||
)
|
||||
</insert>
|
||||
|
||||
<update id="updateProdOrderNote" parameterType="ProdOrderNote">
|
||||
update prod_order_note
|
||||
<set>
|
||||
order_code = #{orderCode},
|
||||
note_type = #{noteType},
|
||||
note_content = #{noteContent},
|
||||
status = #{status},
|
||||
remark = #{remark},
|
||||
update_by = #{updatedBy},
|
||||
update_time = #{updatedTime}
|
||||
</set>
|
||||
where obj_id = #{objId}
|
||||
</update>
|
||||
|
||||
<delete id="deleteProdOrderNoteByObjId" parameterType="Long">
|
||||
delete from prod_order_note where obj_id = #{objId}
|
||||
</delete>
|
||||
|
||||
<delete id="deleteProdOrderNoteByObjIds" parameterType="Long">
|
||||
delete from prod_order_note where obj_id in
|
||||
<foreach collection="array" item="objId" open="(" separator="," close=")">
|
||||
#{objId}
|
||||
</foreach>
|
||||
</delete>
|
||||
</mapper>
|
||||
@ -0,0 +1,150 @@
|
||||
<?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.aucma.production.mapper.ProdRouteMapper">
|
||||
|
||||
<resultMap id="ProdRouteResult" type="ProdRoute">
|
||||
<result property="objId" column="obj_id"/>
|
||||
<result property="routeCode" column="route_code"/>
|
||||
<result property="routeName" column="route_name"/>
|
||||
<result property="materialCode" column="material_code"/>
|
||||
<result property="materialName" column="material_name"/>
|
||||
<result property="versionNo" column="version_no"/>
|
||||
<result property="status" column="status"/>
|
||||
<result property="remark" column="remark"/>
|
||||
<result property="createdBy" column="create_by"/>
|
||||
<result property="createdTime" column="create_time"/>
|
||||
<result property="updatedBy" column="update_by"/>
|
||||
<result property="updatedTime" column="update_time"/>
|
||||
</resultMap>
|
||||
|
||||
<resultMap id="ProdRouteDetailResult" type="ProdRouteDetail">
|
||||
<result property="objId" column="obj_id"/>
|
||||
<result property="routeCode" column="route_code"/>
|
||||
<result property="processCode" column="process_code"/>
|
||||
<result property="processName" column="process_name"/>
|
||||
<result property="sortNo" column="sort_no"/>
|
||||
<result property="requiredFlag" column="required_flag"/>
|
||||
<result property="standardWorkTime" column="standard_work_time"/>
|
||||
<result property="remark" column="remark"/>
|
||||
<result property="createdBy" column="create_by"/>
|
||||
<result property="createdTime" column="create_time"/>
|
||||
<result property="updatedBy" column="update_by"/>
|
||||
<result property="updatedTime" column="update_time"/>
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectProdRouteVo">
|
||||
select pr.obj_id,
|
||||
pr.route_code,
|
||||
pr.route_name,
|
||||
pr.material_code,
|
||||
mi.material_name,
|
||||
pr.version_no,
|
||||
pr.status,
|
||||
pr.remark,
|
||||
pr.create_by,
|
||||
pr.create_time,
|
||||
pr.update_by,
|
||||
pr.update_time
|
||||
from prod_route pr
|
||||
left join base_materialinfo mi on mi.material_code = pr.material_code
|
||||
</sql>
|
||||
|
||||
<select id="selectProdRouteByObjId" parameterType="Long" resultMap="ProdRouteResult">
|
||||
<include refid="selectProdRouteVo"/>
|
||||
where pr.obj_id = #{objId}
|
||||
</select>
|
||||
|
||||
<select id="selectProdRouteByRouteCode" parameterType="String" resultMap="ProdRouteResult">
|
||||
<include refid="selectProdRouteVo"/>
|
||||
where pr.route_code = #{routeCode}
|
||||
</select>
|
||||
|
||||
<select id="selectProdRouteList" parameterType="ProdRoute" resultMap="ProdRouteResult">
|
||||
<include refid="selectProdRouteVo"/>
|
||||
<where>
|
||||
<if test="routeCode != null and routeCode != ''">and pr.route_code like concat(concat('%', #{routeCode}), '%')</if>
|
||||
<if test="routeName != null and routeName != ''">and pr.route_name like concat(concat('%', #{routeName}), '%')</if>
|
||||
<if test="materialCode != null and materialCode != ''">and pr.material_code = #{materialCode}</if>
|
||||
<if test="materialName != null and materialName != ''">and mi.material_name like concat(concat('%', #{materialName}), '%')</if>
|
||||
<if test="status != null and status != ''">and pr.status = #{status}</if>
|
||||
</where>
|
||||
order by pr.route_code
|
||||
</select>
|
||||
|
||||
<select id="selectProdRouteDetailListByRouteCode" parameterType="String" resultMap="ProdRouteDetailResult">
|
||||
select rd.obj_id,
|
||||
rd.route_code,
|
||||
rd.process_code,
|
||||
ps.process_name,
|
||||
rd.sort_no,
|
||||
rd.required_flag,
|
||||
rd.standard_work_time,
|
||||
rd.remark,
|
||||
rd.create_by,
|
||||
rd.create_time,
|
||||
rd.update_by,
|
||||
rd.update_time
|
||||
from prod_route_dtl rd
|
||||
left join base_process_station ps on ps.process_code = rd.process_code
|
||||
where rd.route_code = #{routeCode}
|
||||
order by rd.sort_no, rd.obj_id
|
||||
</select>
|
||||
|
||||
<insert id="insertProdRoute" parameterType="ProdRoute">
|
||||
<selectKey keyProperty="objId" resultType="long" order="BEFORE">
|
||||
select seq_prod_route.nextval as objId from dual
|
||||
</selectKey>
|
||||
insert into prod_route (
|
||||
obj_id, route_code, route_name, material_code, version_no, status, remark,
|
||||
create_by, create_time, update_by, update_time
|
||||
) values (
|
||||
#{objId}, #{routeCode}, #{routeName}, #{materialCode}, #{versionNo}, #{status}, #{remark},
|
||||
#{createdBy}, #{createdTime}, #{updatedBy}, #{updatedTime}
|
||||
)
|
||||
</insert>
|
||||
|
||||
<update id="updateProdRoute" parameterType="ProdRoute">
|
||||
update prod_route
|
||||
<set>
|
||||
route_code = #{routeCode},
|
||||
route_name = #{routeName},
|
||||
material_code = #{materialCode},
|
||||
version_no = #{versionNo},
|
||||
status = #{status},
|
||||
remark = #{remark},
|
||||
update_by = #{updatedBy},
|
||||
update_time = #{updatedTime}
|
||||
</set>
|
||||
where obj_id = #{objId}
|
||||
</update>
|
||||
|
||||
<delete id="deleteProdRouteByObjId" parameterType="Long">
|
||||
delete from prod_route where obj_id = #{objId}
|
||||
</delete>
|
||||
|
||||
<delete id="deleteProdRouteByObjIds" parameterType="Long">
|
||||
delete from prod_route where obj_id in
|
||||
<foreach collection="array" item="objId" open="(" separator="," close=")">
|
||||
#{objId}
|
||||
</foreach>
|
||||
</delete>
|
||||
|
||||
<insert id="insertProdRouteDetail" parameterType="ProdRouteDetail">
|
||||
<selectKey keyProperty="objId" resultType="long" order="BEFORE">
|
||||
select seq_prod_route_dtl.nextval as objId from dual
|
||||
</selectKey>
|
||||
insert into prod_route_dtl (
|
||||
obj_id, route_code, process_code, sort_no, required_flag, standard_work_time, remark,
|
||||
create_by, create_time, update_by, update_time
|
||||
) values (
|
||||
#{objId}, #{routeCode}, #{processCode}, #{sortNo}, #{requiredFlag}, #{standardWorkTime}, #{remark},
|
||||
#{createdBy}, #{createdTime}, #{updatedBy}, #{updatedTime}
|
||||
)
|
||||
</insert>
|
||||
|
||||
<delete id="deleteProdRouteDetailByRouteCode" parameterType="String">
|
||||
delete from prod_route_dtl where route_code = #{routeCode}
|
||||
</delete>
|
||||
</mapper>
|
||||
@ -0,0 +1,115 @@
|
||||
<?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.aucma.production.mapper.ProdStationCapabilityMapper">
|
||||
|
||||
<resultMap id="ProdStationCapabilityResult" type="ProdStationCapability">
|
||||
<result property="objId" column="obj_id"/>
|
||||
<result property="stationCode" column="station_code"/>
|
||||
<result property="stationName" column="station_name"/>
|
||||
<result property="materialCode" column="material_code"/>
|
||||
<result property="materialName" column="material_name"/>
|
||||
<result property="standardCt" column="standard_ct"/>
|
||||
<result property="shiftCap" column="shift_cap"/>
|
||||
<result property="dayCap" column="day_cap"/>
|
||||
<result property="changeoverMin" column="changeover_min"/>
|
||||
<result property="teamCode" column="team_code"/>
|
||||
<result property="teamName" column="team_name"/>
|
||||
<result property="status" column="status"/>
|
||||
<result property="remark" column="remark"/>
|
||||
<result property="createdBy" column="create_by"/>
|
||||
<result property="createdTime" column="create_time"/>
|
||||
<result property="updatedBy" column="update_by"/>
|
||||
<result property="updatedTime" column="update_time"/>
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectProdStationCapabilityVo">
|
||||
select sc.obj_id,
|
||||
sc.station_code,
|
||||
st.product_line_name as station_name,
|
||||
sc.material_code,
|
||||
mi.material_name,
|
||||
sc.standard_ct,
|
||||
sc.shift_cap,
|
||||
sc.day_cap,
|
||||
sc.changeover_min,
|
||||
sc.team_code,
|
||||
tm.team_name,
|
||||
sc.status,
|
||||
sc.remark,
|
||||
sc.create_by,
|
||||
sc.create_time,
|
||||
sc.update_by,
|
||||
sc.update_time
|
||||
from prod_sta_cap sc
|
||||
left join base_productline st on st.product_line_code = sc.station_code
|
||||
left join base_materialinfo mi on mi.material_code = sc.material_code
|
||||
left join base_teammembers tm on tm.team_code = sc.team_code
|
||||
</sql>
|
||||
|
||||
<select id="selectProdStationCapabilityByObjId" parameterType="Long" resultMap="ProdStationCapabilityResult">
|
||||
<include refid="selectProdStationCapabilityVo"/>
|
||||
where sc.obj_id = #{objId}
|
||||
</select>
|
||||
|
||||
<select id="selectProdStationCapabilityList" parameterType="ProdStationCapability" resultMap="ProdStationCapabilityResult">
|
||||
<include refid="selectProdStationCapabilityVo"/>
|
||||
<where>
|
||||
<if test="stationCode != null and stationCode != ''">and sc.station_code = #{stationCode}</if>
|
||||
<if test="materialCode != null and materialCode != ''">and sc.material_code = #{materialCode}</if>
|
||||
<if test="materialName != null and materialName != ''">and mi.material_name like concat(concat('%', #{materialName}), '%')</if>
|
||||
<if test="teamCode != null and teamCode != ''">and sc.team_code = #{teamCode}</if>
|
||||
<if test="status != null and status != ''">and sc.status = #{status}</if>
|
||||
</where>
|
||||
order by sc.station_code, sc.material_code
|
||||
</select>
|
||||
|
||||
<select id="selectByStationCodeAndMaterialCode" parameterType="ProdStationCapability" resultMap="ProdStationCapabilityResult">
|
||||
<include refid="selectProdStationCapabilityVo"/>
|
||||
where sc.station_code = #{stationCode}
|
||||
and sc.material_code = #{materialCode}
|
||||
</select>
|
||||
|
||||
<insert id="insertProdStationCapability" parameterType="ProdStationCapability">
|
||||
<selectKey keyProperty="objId" resultType="long" order="BEFORE">
|
||||
select seq_prod_sta_cap.nextval as objId from dual
|
||||
</selectKey>
|
||||
insert into prod_sta_cap (
|
||||
obj_id, station_code, material_code, standard_ct, shift_cap, day_cap, changeover_min,
|
||||
team_code, status, remark, create_by, create_time, update_by, update_time
|
||||
) values (
|
||||
#{objId}, #{stationCode}, #{materialCode}, #{standardCt}, #{shiftCap}, #{dayCap}, #{changeoverMin},
|
||||
#{teamCode}, #{status}, #{remark}, #{createdBy}, #{createdTime}, #{updatedBy}, #{updatedTime}
|
||||
)
|
||||
</insert>
|
||||
|
||||
<update id="updateProdStationCapability" parameterType="ProdStationCapability">
|
||||
update prod_sta_cap
|
||||
<set>
|
||||
station_code = #{stationCode},
|
||||
material_code = #{materialCode},
|
||||
standard_ct = #{standardCt},
|
||||
shift_cap = #{shiftCap},
|
||||
day_cap = #{dayCap},
|
||||
changeover_min = #{changeoverMin},
|
||||
team_code = #{teamCode},
|
||||
status = #{status},
|
||||
remark = #{remark},
|
||||
update_by = #{updatedBy},
|
||||
update_time = #{updatedTime}
|
||||
</set>
|
||||
where obj_id = #{objId}
|
||||
</update>
|
||||
|
||||
<delete id="deleteProdStationCapabilityByObjId" parameterType="Long">
|
||||
delete from prod_sta_cap where obj_id = #{objId}
|
||||
</delete>
|
||||
|
||||
<delete id="deleteProdStationCapabilityByObjIds" parameterType="Long">
|
||||
delete from prod_sta_cap where obj_id in
|
||||
<foreach collection="array" item="objId" open="(" separator="," close=")">
|
||||
#{objId}
|
||||
</foreach>
|
||||
</delete>
|
||||
</mapper>
|
||||
@ -0,0 +1,152 @@
|
||||
<?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.aucma.production.mapper.ProdTaskPoolMapper">
|
||||
|
||||
<resultMap id="ProdTaskPoolResult" type="ProdTaskPool">
|
||||
<result property="objId" column="obj_id"/>
|
||||
<result property="orderCode" column="order_code"/>
|
||||
<result property="materialCode" column="material_code"/>
|
||||
<result property="materialName" column="material_name"/>
|
||||
<result property="orderAmount" column="order_amount"/>
|
||||
<result property="completeAmount" column="complete_amount"/>
|
||||
<result property="executionStatus" column="execution_status"/>
|
||||
<result property="taskBucket" column="task_bucket"/>
|
||||
<result property="ownerUserId" column="owner_user_id"/>
|
||||
<result property="ownerUserName" column="owner_user_name"/>
|
||||
<result property="priorityLevel" column="priority_level"/>
|
||||
<result property="deviceCode" column="device_code"/>
|
||||
<result property="endDate" column="end_date"/>
|
||||
<result property="startTime" column="start_time"/>
|
||||
<result property="finishTime" column="finish_time"/>
|
||||
<result property="remark" column="task_remark"/>
|
||||
<result property="createdBy" column="create_by"/>
|
||||
<result property="createdTime" column="create_time"/>
|
||||
<result property="updatedBy" column="update_by"/>
|
||||
<result property="updatedTime" column="update_time"/>
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectProdTaskPoolVo">
|
||||
select tp.obj_id,
|
||||
oi.order_code,
|
||||
oi.material_code,
|
||||
oi.material_name,
|
||||
oi.order_amount,
|
||||
oi.complete_amount,
|
||||
nvl(oi.execution_status, 'PENDING') as execution_status,
|
||||
case
|
||||
when exists (
|
||||
select 1
|
||||
from prod_order_note pn
|
||||
where pn.order_code = oi.order_code
|
||||
and pn.status = '0'
|
||||
and pn.note_type in ('ABNORMAL', 'LACK_MATERIAL', 'DELAY', 'LINE_CHANGE', 'CLOSE_REASON')
|
||||
) then 'ABNORMAL'
|
||||
when nvl(oi.execution_status, 'PENDING') = 'COMPLETED' then 'COMPLETED'
|
||||
when nvl(oi.execution_status, 'PENDING') = 'RUNNING' then 'RUNNING'
|
||||
when oi.end_date is not null and oi.end_date < trunc(sysdate) and nvl(oi.execution_status, 'PENDING') <> 'COMPLETED' then 'OVERTIME'
|
||||
else 'PENDING'
|
||||
end as task_bucket,
|
||||
tp.owner_user_id,
|
||||
su.nick_name as owner_user_name,
|
||||
nvl(tp.priority_level, 'NORMAL') as priority_level,
|
||||
oi.device_code,
|
||||
oi.end_date,
|
||||
oi.start_time,
|
||||
oi.end_time as finish_time,
|
||||
tp.task_remark,
|
||||
tp.create_by,
|
||||
tp.create_time,
|
||||
tp.update_by,
|
||||
tp.update_time
|
||||
from base_orderinfo oi
|
||||
left join prod_task_pool tp on tp.order_code = oi.order_code
|
||||
left join z_sys_user su on su.user_id = tp.owner_user_id
|
||||
</sql>
|
||||
|
||||
<select id="selectProdTaskPoolByOrderCode" parameterType="String" resultMap="ProdTaskPoolResult">
|
||||
<include refid="selectProdTaskPoolVo"/>
|
||||
where oi.order_code = #{orderCode}
|
||||
</select>
|
||||
|
||||
<select id="selectProdTaskPoolList" parameterType="ProdTaskPool" resultMap="ProdTaskPoolResult">
|
||||
<include refid="selectProdTaskPoolVo"/>
|
||||
<where>
|
||||
<if test="orderCode != null and orderCode != ''">and oi.order_code = #{orderCode}</if>
|
||||
<if test="materialCode != null and materialCode != ''">and oi.material_code = #{materialCode}</if>
|
||||
<if test="materialName != null and materialName != ''">and oi.material_name like concat(concat('%', #{materialName}), '%')</if>
|
||||
<if test="executionStatus != null and executionStatus != ''">and nvl(oi.execution_status, 'PENDING') = #{executionStatus}</if>
|
||||
<if test="ownerUserId != null">and tp.owner_user_id = #{ownerUserId}</if>
|
||||
<if test="priorityLevel != null and priorityLevel != ''">and nvl(tp.priority_level, 'NORMAL') = #{priorityLevel}</if>
|
||||
<if test="taskBucket != null and taskBucket != ''">
|
||||
and (
|
||||
case
|
||||
when exists (
|
||||
select 1
|
||||
from prod_order_note pn
|
||||
where pn.order_code = oi.order_code
|
||||
and pn.status = '0'
|
||||
and pn.note_type in ('ABNORMAL', 'LACK_MATERIAL', 'DELAY', 'LINE_CHANGE', 'CLOSE_REASON')
|
||||
) then 'ABNORMAL'
|
||||
when nvl(oi.execution_status, 'PENDING') = 'COMPLETED' then 'COMPLETED'
|
||||
when nvl(oi.execution_status, 'PENDING') = 'RUNNING' then 'RUNNING'
|
||||
when oi.end_date is not null and oi.end_date < trunc(sysdate) and nvl(oi.execution_status, 'PENDING') <> 'COMPLETED' then 'OVERTIME'
|
||||
else 'PENDING'
|
||||
end
|
||||
) = #{taskBucket}
|
||||
</if>
|
||||
</where>
|
||||
order by
|
||||
case nvl(tp.priority_level, 'NORMAL')
|
||||
when 'URGENT' then 1
|
||||
when 'HIGH' then 2
|
||||
when 'NORMAL' then 3
|
||||
else 4
|
||||
end,
|
||||
oi.end_date,
|
||||
oi.order_code
|
||||
</select>
|
||||
|
||||
<insert id="insertProdTaskPool" parameterType="ProdTaskPool">
|
||||
<selectKey keyProperty="objId" resultType="long" order="BEFORE">
|
||||
select seq_prod_task_pool.nextval as objId from dual
|
||||
</selectKey>
|
||||
insert into prod_task_pool (
|
||||
obj_id, order_code, owner_user_id, priority_level, task_remark,
|
||||
create_by, create_time, update_by, update_time
|
||||
) values (
|
||||
#{objId}, #{orderCode}, #{ownerUserId}, #{priorityLevel}, #{remark},
|
||||
#{createdBy}, #{createdTime}, #{updatedBy}, #{updatedTime}
|
||||
)
|
||||
</insert>
|
||||
|
||||
<update id="updateProdTaskPool" parameterType="ProdTaskPool">
|
||||
update prod_task_pool
|
||||
<set>
|
||||
owner_user_id = #{ownerUserId},
|
||||
priority_level = #{priorityLevel},
|
||||
task_remark = #{remark},
|
||||
update_by = #{updatedBy},
|
||||
update_time = #{updatedTime}
|
||||
</set>
|
||||
where order_code = #{orderCode}
|
||||
</update>
|
||||
|
||||
<delete id="deleteProdTaskPoolByOrderCodes" parameterType="String">
|
||||
delete from prod_task_pool where order_code in
|
||||
<foreach collection="array" item="orderCode" open="(" separator="," close=")">
|
||||
#{orderCode}
|
||||
</foreach>
|
||||
</delete>
|
||||
|
||||
<update id="updateOrderExecutionStatus" parameterType="ProdTaskPool">
|
||||
update base_orderinfo
|
||||
set execution_status = #{executionStatus},
|
||||
start_time = case when #{executionStatus} = 'RUNNING' and start_time is null then sysdate else start_time end,
|
||||
end_time = case when #{executionStatus} = 'COMPLETED' then sysdate else end_time end,
|
||||
complete_date = case when #{executionStatus} = 'COMPLETED' then trunc(sysdate) else complete_date end,
|
||||
updated_time = #{updatedTime}
|
||||
where order_code = #{orderCode}
|
||||
</update>
|
||||
</mapper>
|
||||
@ -0,0 +1,116 @@
|
||||
<?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.aucma.production.mapper.ProdTeamShiftMapper">
|
||||
|
||||
<resultMap id="ProdTeamShiftResult" type="ProdTeamShift">
|
||||
<result property="objId" column="obj_id"/>
|
||||
<result property="teamCode" column="team_code"/>
|
||||
<result property="teamName" column="team_name"/>
|
||||
<result property="shiftDate" column="shift_date"/>
|
||||
<result property="shiftCode" column="shift_code"/>
|
||||
<result property="leaderUserId" column="leader_user_id"/>
|
||||
<result property="leaderUserName" column="leader_user_name"/>
|
||||
<result property="lineCode" column="line_code"/>
|
||||
<result property="lineName" column="line_name"/>
|
||||
<result property="areaDesc" column="area_desc"/>
|
||||
<result property="status" column="status"/>
|
||||
<result property="remark" column="remark"/>
|
||||
<result property="createdBy" column="create_by"/>
|
||||
<result property="createdTime" column="create_time"/>
|
||||
<result property="updatedBy" column="update_by"/>
|
||||
<result property="updatedTime" column="update_time"/>
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectProdTeamShiftVo">
|
||||
select ts.obj_id,
|
||||
ts.team_code,
|
||||
tm.team_name,
|
||||
ts.shift_date,
|
||||
ts.shift_code,
|
||||
ts.leader_user_id,
|
||||
su.nick_name as leader_user_name,
|
||||
ts.line_code,
|
||||
pl.product_line_name as line_name,
|
||||
ts.area_desc,
|
||||
ts.status,
|
||||
ts.remark,
|
||||
ts.create_by,
|
||||
ts.create_time,
|
||||
ts.update_by,
|
||||
ts.update_time
|
||||
from prod_team_sch ts
|
||||
left join base_teammembers tm on tm.team_code = ts.team_code
|
||||
left join z_sys_user su on su.user_id = ts.leader_user_id
|
||||
left join base_productline pl on pl.product_line_code = ts.line_code
|
||||
</sql>
|
||||
|
||||
<select id="selectProdTeamShiftByObjId" parameterType="Long" resultMap="ProdTeamShiftResult">
|
||||
<include refid="selectProdTeamShiftVo"/>
|
||||
where ts.obj_id = #{objId}
|
||||
</select>
|
||||
|
||||
<select id="selectProdTeamShiftList" parameterType="ProdTeamShift" resultMap="ProdTeamShiftResult">
|
||||
<include refid="selectProdTeamShiftVo"/>
|
||||
<where>
|
||||
<if test="teamCode != null and teamCode != ''">and ts.team_code = #{teamCode}</if>
|
||||
<if test="shiftCode != null and shiftCode != ''">and ts.shift_code = #{shiftCode}</if>
|
||||
<if test="leaderUserId != null">and ts.leader_user_id = #{leaderUserId}</if>
|
||||
<if test="lineCode != null and lineCode != ''">and ts.line_code = #{lineCode}</if>
|
||||
<if test="status != null and status != ''">and ts.status = #{status}</if>
|
||||
<if test="params.beginShiftDate != null and params.endShiftDate != null">
|
||||
and ts.shift_date between to_date(#{params.beginShiftDate}, 'yyyy-mm-dd') and to_date(#{params.endShiftDate}, 'yyyy-mm-dd')
|
||||
</if>
|
||||
</where>
|
||||
order by ts.shift_date desc, ts.team_code
|
||||
</select>
|
||||
|
||||
<select id="selectUniqueShift" parameterType="ProdTeamShift" resultMap="ProdTeamShiftResult">
|
||||
<include refid="selectProdTeamShiftVo"/>
|
||||
where ts.team_code = #{teamCode}
|
||||
and ts.shift_date = #{shiftDate}
|
||||
and ts.shift_code = #{shiftCode}
|
||||
</select>
|
||||
|
||||
<insert id="insertProdTeamShift" parameterType="ProdTeamShift">
|
||||
<selectKey keyProperty="objId" resultType="long" order="BEFORE">
|
||||
select seq_prod_team_sch.nextval as objId from dual
|
||||
</selectKey>
|
||||
insert into prod_team_sch (
|
||||
obj_id, team_code, shift_date, shift_code, leader_user_id, line_code, area_desc, status,
|
||||
remark, create_by, create_time, update_by, update_time
|
||||
) values (
|
||||
#{objId}, #{teamCode}, #{shiftDate}, #{shiftCode}, #{leaderUserId}, #{lineCode}, #{areaDesc}, #{status},
|
||||
#{remark}, #{createdBy}, #{createdTime}, #{updatedBy}, #{updatedTime}
|
||||
)
|
||||
</insert>
|
||||
|
||||
<update id="updateProdTeamShift" parameterType="ProdTeamShift">
|
||||
update prod_team_sch
|
||||
<set>
|
||||
team_code = #{teamCode},
|
||||
shift_date = #{shiftDate},
|
||||
shift_code = #{shiftCode},
|
||||
leader_user_id = #{leaderUserId},
|
||||
line_code = #{lineCode},
|
||||
area_desc = #{areaDesc},
|
||||
status = #{status},
|
||||
remark = #{remark},
|
||||
update_by = #{updatedBy},
|
||||
update_time = #{updatedTime}
|
||||
</set>
|
||||
where obj_id = #{objId}
|
||||
</update>
|
||||
|
||||
<delete id="deleteProdTeamShiftByObjId" parameterType="Long">
|
||||
delete from prod_team_sch where obj_id = #{objId}
|
||||
</delete>
|
||||
|
||||
<delete id="deleteProdTeamShiftByObjIds" parameterType="Long">
|
||||
delete from prod_team_sch where obj_id in
|
||||
<foreach collection="array" item="objId" open="(" separator="," close=")">
|
||||
#{objId}
|
||||
</foreach>
|
||||
</delete>
|
||||
</mapper>
|
||||
Loading…
Reference in New Issue