package com.jcdm.main.om.productionOrde.controller;
|
|
import cn.hutool.core.util.StrUtil;
|
import com.jcdm.common.annotation.Log;
|
import com.jcdm.common.core.controller.BaseController;
|
import com.jcdm.common.core.domain.AjaxResult;
|
import com.jcdm.common.core.page.TableDataInfo;
|
import com.jcdm.common.enums.BusinessType;
|
import com.jcdm.common.exception.ServiceException;
|
import com.jcdm.common.utils.poi.ExcelUtil;
|
import com.jcdm.main.bs.modelNumber.domain.BsModelNumber;
|
import com.jcdm.main.bs.modelNumber.service.IBsModelNumberService;
|
import com.jcdm.main.bs.orderScheduling.domain.BsOrderScheduling;
|
import com.jcdm.main.bs.orderScheduling.service.IBsOrderSchedulingService;
|
import com.jcdm.main.om.productionOrde.domain.OmProductionOrdeInfo;
|
import com.jcdm.main.om.productionOrde.service.IOmProductionOrdeInfoService;
|
import com.jcdm.main.webservice.service.ReceivingServices;
|
import org.apache.commons.lang3.StringUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.security.access.prepost.PreAuthorize;
|
import org.springframework.web.bind.annotation.*;
|
|
import javax.servlet.http.HttpServletResponse;
|
import java.time.LocalDateTime;
|
import java.time.format.DateTimeFormatter;
|
import java.util.List;
|
|
import static org.apache.commons.lang3.SystemUtils.getUserName;
|
|
/**
|
* 生产工单Controller
|
*
|
* @author ruimin
|
* @date 2023-12-11
|
*/
|
@RestController
|
@RequestMapping("/om/productionOrde")
|
public class OmProductionOrdeInfoController extends BaseController
|
{
|
@Autowired
|
private IOmProductionOrdeInfoService omProductionOrdeInfoService;
|
|
@Autowired
|
private IBsOrderSchedulingService bsOrderSchedulingService;
|
|
@Autowired
|
private IBsModelNumberService bsModelNumberService;
|
|
/**
|
* 查询生产工单列表
|
*/
|
@PreAuthorize("@ss.hasPermi('om:productionOrde:list')")
|
@GetMapping("/list")
|
public TableDataInfo list(OmProductionOrdeInfo omProductionOrdeInfo)
|
{
|
startPage();
|
List<OmProductionOrdeInfo> list = omProductionOrdeInfoService.selectOmProductionOrdeInfoList(omProductionOrdeInfo);
|
return getDataTable(list);
|
}
|
|
/**
|
* 导出生产工单列表
|
*/
|
@PreAuthorize("@ss.hasPermi('om:productionOrde:export')")
|
@Log(title = "生产工单", businessType = BusinessType.EXPORT)
|
@PostMapping("/export")
|
public void export(HttpServletResponse response, OmProductionOrdeInfo omProductionOrdeInfo)
|
{
|
List<OmProductionOrdeInfo> list = omProductionOrdeInfoService.selectOmProductionOrdeInfoList(omProductionOrdeInfo);
|
ExcelUtil<OmProductionOrdeInfo> util = new ExcelUtil<OmProductionOrdeInfo>(OmProductionOrdeInfo.class);
|
util.exportExcel(response, list, "生产工单数据");
|
}
|
|
/**
|
* 获取生产工单详细信息
|
*/
|
@PreAuthorize("@ss.hasPermi('om:productionOrde:query')")
|
@GetMapping(value = "/{id}")
|
public AjaxResult getInfo(@PathVariable("id") Long id)
|
{
|
return success(omProductionOrdeInfoService.selectOmProductionOrdeInfoById(id));
|
}
|
|
/**
|
* 获取生产工单详细信息
|
*/
|
@PreAuthorize("@ss.hasPermi('om:productionOrde:query')")
|
@GetMapping("/ids/{ids}")
|
public AjaxResult getInfo(@PathVariable Long[] ids)
|
{
|
return success(omProductionOrdeInfoService.selectOmProductionOrdeInfoByIds(ids));
|
}
|
|
/**
|
* 新增生产工单
|
*/
|
@PreAuthorize("@ss.hasPermi('om:productionOrde:add')")
|
@Log(title = "生产工单", businessType = BusinessType.INSERT)
|
@PostMapping
|
public AjaxResult add(@RequestBody OmProductionOrdeInfo omProductionOrdeInfo)
|
{
|
return toAjax(omProductionOrdeInfoService.insertOmProductionOrdeInfo(omProductionOrdeInfo));
|
}
|
|
/**
|
* 生成按钮
|
*/
|
@PostMapping("/orderSchedulingForBoxCode")
|
public AjaxResult addOrderSchedulingForBoxCode(@RequestBody OmProductionOrdeInfo omProductionOrdeInfo)
|
{
|
|
//获取当前时间
|
LocalDateTime date= LocalDateTime.now();
|
//创建日期时间对象格式化器,日期格式类似: 2023-05-23 22:18:38
|
DateTimeFormatter formatter= DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
//将时间转化为对应格式的字符串
|
String fomateDate=date.format(formatter).toString();
|
|
Integer startCode = Integer.parseInt(omProductionOrdeInfo.getStartCode());//开始编号
|
|
String dateTimeRule = omProductionOrdeInfo.getDateTimeRule();
|
|
Long[] id=omProductionOrdeInfo.getIdNums();
|
OmProductionOrdeInfo ProductionOrde = new OmProductionOrdeInfo();
|
for (int a=0;a<id.length;a++){
|
ProductionOrde=omProductionOrdeInfoService.selectOmProductionOrdeInfoById(id[a]);
|
Integer planQty = Math.toIntExact(ProductionOrde.getPlanQty());//计划数量
|
if(planQty>0) {
|
for (int i = 0; i < planQty; i++) {
|
String engineNo = omProductionOrdeInfo.getTypeZ() + " " + dateTimeRule + StringUtils.leftPad(String.valueOf(startCode), 3, "0");
|
BsOrderScheduling bsOrderScheduling = new BsOrderScheduling();
|
bsOrderScheduling.setOrderNo(ProductionOrde.getWorkOrderNo());
|
bsOrderScheduling.setWorkingHours(String.valueOf(i+1));
|
bsOrderScheduling.setModel(ProductionOrde.getTypeZ());
|
bsOrderScheduling.setEngineNo(engineNo);
|
bsOrderScheduling.setProductionStatus("1");
|
bsOrderScheduling.setOperator(getUserName());
|
bsOrderScheduling.setOperateTime(fomateDate);
|
bsOrderScheduling.setProductType(ProductionOrde.getTypeL());//产品类型
|
bsOrderScheduling.setWhetherOrPrint("0");
|
bsOrderSchedulingService.insertBsOrderScheduling(bsOrderScheduling);
|
startCode++;
|
}
|
}
|
//更新工单状态
|
ProductionOrde.setOrderStatus("2");
|
omProductionOrdeInfoService.updateOmProductionOrdeInfo(ProductionOrde);
|
}
|
//新增机型序号
|
BsModelNumber bsModelNumber = new BsModelNumber();
|
bsModelNumber.setModel(omProductionOrdeInfo.getTypeZ());
|
bsModelNumber.setModelDate(dateTimeRule);
|
bsModelNumber.setMaxnumValue((startCode - 1) + "");
|
bsModelNumber.setSaveTime(fomateDate);
|
bsModelNumber.setLastNumber((startCode - 1) + "");
|
bsModelNumberService.insertBsModelNumber(bsModelNumber);
|
return toAjax(1);
|
}
|
|
/**
|
* 修改生产工单
|
*/
|
@PreAuthorize("@ss.hasPermi('om:productionOrde:edit')")
|
@Log(title = "生产工单", businessType = BusinessType.UPDATE)
|
@PutMapping
|
public AjaxResult edit(@RequestBody OmProductionOrdeInfo omProductionOrdeInfo)
|
{
|
return toAjax(omProductionOrdeInfoService.updateOmProductionOrdeInfo(omProductionOrdeInfo));
|
}
|
|
/**
|
* 删除生产工单
|
*/
|
@PreAuthorize("@ss.hasPermi('om:productionOrde:remove')")
|
@Log(title = "生产工单", businessType = BusinessType.DELETE)
|
@DeleteMapping("/{ids}")
|
public AjaxResult remove(@PathVariable Long[] ids)
|
{
|
return toAjax(omProductionOrdeInfoService.deleteOmProductionOrdeInfoByIds(ids));
|
}
|
|
/**
|
* table列上移下移
|
*/
|
@Log(title = "生产工单", businessType = BusinessType.DELETE)
|
@GetMapping("/upDownMove")
|
public AjaxResult upDownMove(OmProductionOrdeInfo omProductionOrdeInfo)
|
{
|
return omProductionOrdeInfoService.upDownMove(omProductionOrdeInfo);
|
}
|
|
/**
|
* 接收工单
|
*/
|
@PreAuthorize("@ss.hasPermi('om:productionOrde:receive')")
|
@GetMapping("/getProductionNotice")
|
public AjaxResult getProductionNotice(OmProductionOrdeInfo omProductionOrdeInfo)
|
{
|
String factory = omProductionOrdeInfo.getWorkshopCode();
|
String productionNotice = omProductionOrdeInfo.getProductionNotice();
|
if (StrUtil.isBlank(productionNotice)){
|
throw new ServiceException("请输入生产通知单号");
|
}
|
if (StrUtil.isBlank(factory)){
|
throw new ServiceException("请选择工厂编号");
|
}
|
List<OmProductionOrdeInfo> omProductionOrdeInfos = omProductionOrdeInfoService.selectOmProductionOrdeInfoList(omProductionOrdeInfo);
|
if(omProductionOrdeInfos.size() == 0){
|
try {
|
logger.info("接收工单号:,{}",productionNotice);
|
ReceivingServices.insertWebserviceData(factory,productionNotice);
|
} catch (Exception e) {
|
return error("接收失败!请检查通知单号");
|
}
|
}else {
|
return warn("该通知单已经接收完毕,不能重复接收!");
|
}
|
return AjaxResult.success("接收成功!");
|
}
|
}
|