|
@@ -15,6 +15,8 @@ class SchtimeService extends CrudService {
|
|
|
|
|
|
async updateschtimes(data) {
|
|
|
assert(data, '缺少信息项');
|
|
|
+ console.log(_.isArray(data));
|
|
|
+
|
|
|
for (const elm of data) {
|
|
|
const schtime = await this.model.findById(elm.id);
|
|
|
if (schtime) {
|
|
@@ -23,14 +25,43 @@ class SchtimeService extends CrudService {
|
|
|
schtime.planid = elm.planid;
|
|
|
schtime.remark = elm.remark;
|
|
|
schtime.daterange = elm.daterange;
|
|
|
- schtime.term.splice(0, schtime.term.length);
|
|
|
- schtime.term = elm.term;
|
|
|
- await schtime.save();
|
|
|
+ const { deletearray, updatearray, addarray } = await this.filterarray(schtime.term, elm.term);
|
|
|
+ let termInfo = _.difference(schtime.term, deletearray);
|
|
|
+ console.log(termInfo);
|
|
|
+ for (const terminfo of termInfo) {
|
|
|
+ const updateinfo = _.filter(updatearray, item => item.id === terminfo.id);
|
|
|
+ terminfo.termnum = updateinfo.termnum;
|
|
|
+ terminfo.termid = updateinfo.termid;
|
|
|
+ if (updateinfo.number) terminfo.number = updateinfo.number;
|
|
|
+ if (updateinfo.type) terminfo.type = updateinfo.type;
|
|
|
+ if (updateinfo.carnum) terminfo.carnum = updateinfo.carnum;
|
|
|
+ }
|
|
|
+ console.log(termInfo);
|
|
|
+
|
|
|
+ termInfo = _.concat(termInfo, addarray);
|
|
|
+ // schtime.term = termInfo;
|
|
|
+ // await schtime.save();
|
|
|
}
|
|
|
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ async filterarray(oldarray, newarray) {
|
|
|
+ const _oldarray = _.cloneDeep(oldarray);
|
|
|
+ const updatearray = [];
|
|
|
+ const addarray = [];
|
|
|
+ for (const _newarray of newarray) {
|
|
|
+ if (_newarray.id) {
|
|
|
+ updatearray.push(_newarray);
|
|
|
+ } else {
|
|
|
+ addarray.push(_newarray);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ const deletearray = _.pullAllBy(_oldarray, updatearray, 'id');
|
|
|
+ console.log('deletearray' + deletearray);
|
|
|
+ return { deletearray, updatearray, addarray };
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
module.exports = SchtimeService;
|