[ROSSOGARGANO]

modifica ordini di lavorazione
This commit is contained in:
2024-09-02 17:06:30 +02:00
parent 859c50334a
commit 0d77488056
9 changed files with 76 additions and 17 deletions

View File

@@ -937,6 +937,7 @@ public abstract class EntityBase implements Serializable, Cloneable, EntityInter
final List<Field> childs = entityHolder.getEntityChildrenFields(getClass());
for (Field entityChildField : childs) {
entityChildField.setAccessible(true);
Object entityChildRef = entityChildField.get(clonedEntity);
if (entityChildRef instanceof List) {
for (EntityBase entityChild : (List<EntityBase>) entityChildRef) {

View File

@@ -82,6 +82,9 @@ public class OrdiniImporter extends BaseEntityImporter<List<EntityBase>> impleme
case GSE:
result = getContextBean(OrdiniImportService.class).importGSEOrder(type, format, requestDto);
break;
case TOSCA:
result = getContextBean(OrdiniImportService.class).importOrdiniToscaExcel(type, format, requestDto);
break;
default:
throw new Exception("Tipo " + format + " non supportato");
@@ -111,7 +114,8 @@ public class OrdiniImporter extends BaseEntityImporter<List<EntityBase>> impleme
MAGENTO("MAGENTO"),
EURITMO("EURITMO"),
GS("GS"),
GSE("GSE");
GSE("GSE"),
TOSCA("TOSCA");
private String text;

View File

@@ -275,4 +275,10 @@ public class OrdiniImportService {
return entityBases;
}
public List<EntityBase> importOrdiniToscaExcel(String type, String format, ImportRequestDTO requestDTO) throws Exception {
Connection conn = multiDBTransactionManager.getPrimaryConnection();
HashMap<String, String> setup = setupGest.getImportSetupSection(conn, type, format);
return new ArrayList<>();
}
}

View File

@@ -78,10 +78,10 @@ public class ProductionController {
return ServiceRestResponse.createPositiveResponse(productionService.chiudiOrdineLavorazione(chiusuraLavorazioneDTO));
}
@RequestMapping(value = "/creaOrdineProd", method = RequestMethod.POST)
@RequestMapping(value = "/saveOrdineProd", method = RequestMethod.POST)
public @ResponseBody
ServiceRestResponse creaOrdineProd(@RequestBody CreaOrdineProdDTO creaOrdineProdDTO) throws Exception {
return ServiceRestResponse.createPositiveResponse(productionService.creaOrdineProd(creaOrdineProdDTO));
ServiceRestResponse saveOrdineProd(@RequestBody CreaOrdineProdDTO creaOrdineProdDTO) throws Exception {
return ServiceRestResponse.createPositiveResponse(productionService.saveOrdineProd(creaOrdineProdDTO));
}
@RequestMapping(value = "/getArtsProdByCodMart", method = RequestMethod.GET)

View File

@@ -7,6 +7,7 @@ import java.util.List;
public class CreaOrdineProdDTO {
private LocalDate dataOrd;
private Integer numOrd;
private String codAnag;
private String codVdes;
private String codMdep;
@@ -15,6 +16,7 @@ public class CreaOrdineProdDTO {
private BigDecimal numCnf;
private BigDecimal valUnt;
private BigDecimal colliPedana;
private BigDecimal qtaOrd;
private String untOrd;
private List<ModificheDistintaDTO> modificheDistinta = new ArrayList<>();
private String descrizionePartita;
@@ -28,6 +30,15 @@ public class CreaOrdineProdDTO {
return this;
}
public Integer getNumOrd() {
return numOrd;
}
public CreaOrdineProdDTO setNumOrd(Integer numOrd) {
this.numOrd = numOrd;
return this;
}
public String getCodAnag() {
return codAnag;
}
@@ -126,4 +137,13 @@ public class CreaOrdineProdDTO {
this.descrizionePartita = descrizionePartita;
return this;
}
public BigDecimal getQtaOrd() {
return qtaOrd;
}
public CreaOrdineProdDTO setQtaOrd(BigDecimal qtaOrd) {
this.qtaOrd = qtaOrd;
return this;
}
}

View File

@@ -142,13 +142,14 @@ public class OrtoFruttaProductionService {
List<MtbPartitaMagCarat> datiPartita;
MtbPartitaMagCarat lottoProd = new MtbPartitaMagCarat();
MtbPartitaMagCarat modalitaRaccolta = new MtbPartitaMagCarat();
MtbPartitaMagCarat varietaRaccolta = new MtbPartitaMagCarat();
String caratLottoProd = "Lotto Produttore";
String caratModalitaRaccolta = "Modalita Raccolta";
String caratVarietaRaccolta = "Varieta";
if (dto.getOriginal() != null) {
datiPartita = UtilityDB.executeSimpleQueryDTO(
multiDBTransactionManager.getPrimaryConnection(),
Query.format("SELECT * from mtb_partita_mag_carat where cod_mart = {} and partita_mag = {} and carat in ({},{})", dto.getCodMart(), dto.getPartitaRaccolta(), caratLottoProd, caratModalitaRaccolta),
Query.format("SELECT * from mtb_partita_mag_carat where cod_mart = {} and partita_mag = {} and carat in ({},{},{})", dto.getCodMart(), dto.getPartitaRaccolta(), caratLottoProd, caratModalitaRaccolta,caratVarietaRaccolta),
MtbPartitaMagCarat.class);
if (!UtilityList.isNullOrEmpty(datiPartita)) {
if (!UtilityString.streNull(dto.getOriginal().getLottoProduttore()).equalsIgnoreCase(UtilityString.streNull(dto.getLottoProduttore()))) {
@@ -158,6 +159,9 @@ public class OrtoFruttaProductionService {
if (!UtilityString.streNull(dto.getOriginal().getModalitaRaccolta()).equalsIgnoreCase(UtilityString.streNull(dto.getModalitaRaccolta()))) {
modalitaRaccolta = datiPartita.stream().filter(x -> x.getCarat().equalsIgnoreCase(caratModalitaRaccolta)).findFirst().orElse(new MtbPartitaMagCarat());
}
if (!UtilityString.streNull(dto.getOriginal().getModalitaRaccolta()).equalsIgnoreCase(UtilityString.streNull(dto.getModalitaRaccolta()))) {
varietaRaccolta = datiPartita.stream().filter(x -> x.getCarat().equalsIgnoreCase(caratVarietaRaccolta)).findFirst().orElse(new MtbPartitaMagCarat());
}
}
}
lottoProd
@@ -173,7 +177,7 @@ public class OrtoFruttaProductionService {
.setActivityId(activityId)
.setDataRilevazione(LocalDateTime.now())
.setOperation(OperationType.INSERT_OR_UPDATE);
modalitaRaccolta
varietaRaccolta
.setCarat(caratVarietaRaccolta)
.setValCarat(dto.getVarieta())
.setActivityId(activityId)
@@ -182,6 +186,7 @@ public class OrtoFruttaProductionService {
datiPartita = new ArrayList<>();
datiPartita.add(lottoProd);
datiPartita.add(modalitaRaccolta);
datiPartita.add(varietaRaccolta);
MtbPartitaMag part = new MtbPartitaMag();
part

View File

@@ -10,8 +10,6 @@ import it.integry.ems.exception.PrimaryDatabaseNotPresentException;
import it.integry.ems.production.dto.*;
import it.integry.ems.rules.businessLogic.LoadColliService;
import it.integry.ems.rules.businessLogic.dto.LoadColliDTO;
import it.integry.ems.rules.completing.PartitaMagRules;
import it.integry.ems.rules.completing.dto.DatiPartitaMagDTO;
import it.integry.ems.service.EntityProcessor;
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
import it.integry.ems.utility.UtilityEntity;
@@ -965,7 +963,7 @@ public class ProductionService {
return ordineLav;
}
public DtbOrdt creaOrdineProd(CreaOrdineProdDTO creaOrdineProdDTO) throws Exception {
public DtbOrdt saveOrdineProd(CreaOrdineProdDTO creaOrdineProdDTO) throws Exception {
if (ObjectUtils.anyNull(
creaOrdineProdDTO.getDataOrd(),
creaOrdineProdDTO.getCodAnag(),
@@ -979,26 +977,31 @@ public class ProductionService {
Date dataOrd = Date.from(creaOrdineProdDTO.getDataOrd().atStartOfDay(ZoneId.systemDefault()).toInstant());
DtbOrdr rigaOrdProd = new DtbOrdr()
.setCodMart(creaOrdineProdDTO.getCodMart())
DtbOrdr rigaOrdProd = getRigaOrdProdFromOrdLav(dataOrd, creaOrdineProdDTO.getNumOrd());
if (rigaOrdProd == null) {
rigaOrdProd = new DtbOrdr();
}
rigaOrdProd.setCodMart(creaOrdineProdDTO.getCodMart())
.setPartitaMag(creaOrdineProdDTO.getPartitaMag())
.setValUnt(creaOrdineProdDTO.getValUnt())
.setNumCnf(creaOrdineProdDTO.getNumCnf())
.setQtaOrd(creaOrdineProdDTO.getQtaOrd())
.setColliPedana(creaOrdineProdDTO.getColliPedana())
.setUntOrd(creaOrdineProdDTO.getUntOrd());
.setUntOrd(creaOrdineProdDTO.getUntOrd())
.setOperation(creaOrdineProdDTO.getNumOrd() != null ? OperationType.UPDATE : OperationType.INSERT_OR_UPDATE);
rigaOrdProd.setOperation(OperationType.INSERT);
DtbOrdt testataOrdProd = new DtbOrdt()
.setGestione("A")
.setGestione(UtilityString.isNull(rigaOrdProd.getGestione(), "A"))
.setGestioneRif("A")
.setDataOrd(dataOrd)
.setNumOrd(rigaOrdProd.getNumOrd())
.setCodAnag(creaOrdineProdDTO.getCodAnag())
.setCodVdes(creaOrdineProdDTO.getCodVdes())
.setCodMdep(creaOrdineProdDTO.getCodMdep())
.addDtbOrdr(rigaOrdProd);
testataOrdProd.setOperation(OperationType.INSERT);
testataOrdProd.setOperation(creaOrdineProdDTO.getNumOrd() != null ? OperationType.UPDATE : OperationType.INSERT_OR_UPDATE);
entityProcessor.processEntity(testataOrdProd, multiDBTransactionManager);
UtilityEntity.throwEntityException(testataOrdProd);
@@ -1036,6 +1039,22 @@ public class ProductionService {
return testataOrdProd;
}
private DtbOrdr getRigaOrdProdFromOrdLav(Date dataOrd, Integer numOrd) throws Exception {
String sql = Query.format(
"SELECT rowProd.*\n" +
"FROM dtb_ordr rowProd\n" +
" INNER JOIN dtb_ordt ordLav ON\n" +
" ordLav.data_ord_rif = rowProd.data_ord\n" +
" AND ordLav.num_ord_rif = rowProd.num_ord\n" +
" AND rowProd.gestione = 'A'\n" +
" AND ordLav.gestione = 'L'\n" +
" AND ordLav.riga_ord_rif = rowProd.riga_ord\n" +
"WHERE ordLav.data_ord = %s and ordLav.num_ord = %s",
UtilityDate.formatDate(dataOrd, CommonConstants.DATE_FORMAT_YMD), numOrd);
return UtilityDB.executeSimpleQueryOnlyFirstRowDTO(multiDBTransactionManager.getPrimaryConnection(), sql, DtbOrdr.class);
}
public List<MtbAart> getArtsProdByCodMart(String codMart) throws SQLException, IOException, PrimaryDatabaseNotPresentException, DataConverterNotFoundException, InstantiationException, IllegalAccessException {
String sql = Query.format(
"SELECT cod_prod AS cod_mart,\n" +

View File

@@ -28,6 +28,7 @@ import it.integry.ems.service.PrinterService;
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
import it.integry.ems.user.UserSession;
import it.integry.ems.utility.UtilityEntity;
import it.integry.ems.utility.UtilityLogger;
import it.integry.ems_model.base.EntityBase;
import it.integry.ems_model.db.ResultSetMapper;
import it.integry.ems_model.entity.*;
@@ -2182,9 +2183,11 @@ public class WMSGenericService {
}
if (!UtilityBigDecimal.equalsTo(qtaScaricata, qtaDaScaricare)) {
anomalieList.add(AnomalieDTO.warning("Non è stato possibile scaricare tutta la quantita di materia prima richiesta dalla posizione " + scaricoMateriaPrimaDTO.getPosizione() +
String warning = "Non è stato possibile scaricare tutta la quantita di materia prima richiesta dalla posizione " + scaricoMateriaPrimaDTO.getPosizione() +
" dell'articolo " + giacInPosizioneMapByCodMart.getKey() + ". " +
"E' stata richiesta una quantità di " + UtilityBigDecimal.round(qtaDaScaricare, 3) + " e non è stato possibile scaricarne " + UtilityBigDecimal.round(qtaDaScaricare.subtract(qtaScaricata), 3)));
"E' stata richiesta una quantità di " + UtilityBigDecimal.round(qtaDaScaricare, 3) + " e non è stato possibile scaricarne " + UtilityBigDecimal.round(qtaDaScaricare.subtract(qtaScaricata), 3);
logger.error(warning);
anomalieList.add(AnomalieDTO.warning(warning));
}
}

View File

@@ -200,6 +200,7 @@ public class SystemService {
" stb_user.password_endtime," +
" stb_user.e_mail," +
" stb_user.Last_access_datetime," +
" stb_user.cod_lang," +
" stb_user.flag_password_expiring," +
" CASE WHEN stb_user.key_group = '3' AND stb_user.user_code IS NULL THEN wtb_clie.cod_anag ELSE stb_user.user_code END AS user_code," +
" wtb_depo.cod_mdep," +