|
|
@ -1,14 +1,22 @@ |
|
|
|
package com.ruoyi.quality.service.impl; |
|
|
|
|
|
|
|
import java.text.DecimalFormat; |
|
|
|
import java.text.SimpleDateFormat; |
|
|
|
import java.util.Date; |
|
|
|
import java.util.List; |
|
|
|
|
|
|
|
import com.ruoyi.common.exception.BusinessException; |
|
|
|
import com.ruoyi.common.utils.DateUtils; |
|
|
|
import com.ruoyi.common.utils.ShiroUtils; |
|
|
|
import com.ruoyi.common.utils.StringUtils; |
|
|
|
import io.swagger.models.auth.In; |
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
import com.ruoyi.quality.mapper.QualityManufacturingProcessMapper; |
|
|
|
import com.ruoyi.quality.domain.QualityManufacturingProcess; |
|
|
|
import com.ruoyi.quality.service.IQualityManufacturingProcessService; |
|
|
|
import com.ruoyi.common.core.text.Convert; |
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
|
|
|
|
/** |
|
|
|
* 品质管理制程工序Service业务层处理 |
|
|
@ -52,15 +60,53 @@ public class QualityManufacturingProcessServiceImpl implements IQualityManufactu |
|
|
|
* @param qualityManufacturingProcess 品质管理制程工序 |
|
|
|
* @return 结果 |
|
|
|
*/ |
|
|
|
@Transactional |
|
|
|
@Override |
|
|
|
public int insertQualityManufacturingProcess(QualityManufacturingProcess qualityManufacturingProcess) |
|
|
|
{ |
|
|
|
|
|
|
|
//更改日期格式,以提高可读性
|
|
|
|
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); |
|
|
|
String dataPart = df.format(new Date()); |
|
|
|
|
|
|
|
//移除日期中的分隔符以便于后续处理
|
|
|
|
String prefix = "ZCGX"+dataPart.replace("-",""); |
|
|
|
|
|
|
|
//查询数据库中最大的编号
|
|
|
|
String maxCode = qualityManufacturingProcessMapper.findMaxRoundCode(prefix); |
|
|
|
String newCode = generateNewCode(prefix,maxCode); |
|
|
|
|
|
|
|
qualityManufacturingProcess.setManufacturingProcessId(newCode); |
|
|
|
String loginName = ShiroUtils.getLoginName(); |
|
|
|
qualityManufacturingProcess.setCreateBy(loginName); |
|
|
|
qualityManufacturingProcess.setCreateTime(DateUtils.getNowDate()); |
|
|
|
return qualityManufacturingProcessMapper.insertQualityManufacturingProcess(qualityManufacturingProcess); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
*制程工序ID生产规则 |
|
|
|
*系统自动生成,按照特定编码,编码暂用【ZCGX+年月日+001】, |
|
|
|
*自增长,如:ZCGX20231111001,ZCGX20231111002 |
|
|
|
* |
|
|
|
*/ |
|
|
|
private String generateNewCode(String prefix, String maxCode) { |
|
|
|
if (StringUtils.isEmpty(maxCode)){ |
|
|
|
return prefix+"001"; |
|
|
|
} |
|
|
|
//解析并递增编号
|
|
|
|
int sequence = Integer.parseInt(maxCode.substring(4)) + 1 ; |
|
|
|
|
|
|
|
//检查序列号是否溢出
|
|
|
|
if (sequence>9999){ |
|
|
|
throw new BusinessException("当日编号已达到最大值999,请检查或调整策略"); |
|
|
|
} |
|
|
|
|
|
|
|
//格式化序列号,自动补零至三位
|
|
|
|
DecimalFormat df = new DecimalFormat("000"); |
|
|
|
|
|
|
|
return prefix + df.format(sequence); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 修改品质管理制程工序 |
|
|
|
* |
|
|
|