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